texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: * tp/Texinfo/Structuring.pm (sectioning_structure


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/Structuring.pm (sectioning_structure) (_print_sectioning_tree, section_level_adjusted_command_name) (split_pages, elements_directions), tp/Texinfo/Common.pm (debug_print_element), tp/Texinfo/Convert/DocBook.pm (_docbook_section_element), tp/Texinfo/Convert/HTML.pm (command_text, _convert_heading_command) (_prepare_tree_units_global_targets, _default_format_contents), tp/Texinfo/Convert/LaTeX.pm (_convert), tp/Texinfo/Convert/Plaintext.pm (format_contents, _convert), tp/Texinfo [...]
Date: Fri, 31 Dec 2021 12:39:50 -0500

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 d791fc1070 * tp/Texinfo/Structuring.pm (sectioning_structure) 
(_print_sectioning_tree, section_level_adjusted_command_name) (split_pages, 
elements_directions), tp/Texinfo/Common.pm (debug_print_element), 
tp/Texinfo/Convert/DocBook.pm (_docbook_section_element), 
tp/Texinfo/Convert/HTML.pm (command_text, _convert_heading_command) 
(_prepare_tree_units_global_targets, _default_format_contents), 
tp/Texinfo/Convert/LaTeX.pm (_convert), tp/Texinfo/Convert/Plaintext.pm 
(format_contents,  [...]
d791fc1070 is described below

commit d791fc1070c7c1478a11272f7854ba86622ff94e
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Fri Dec 31 18:39:36 2021 +0100

    * tp/Texinfo/Structuring.pm (sectioning_structure)
    (_print_sectioning_tree, section_level_adjusted_command_name)
    (split_pages, elements_directions), tp/Texinfo/Common.pm 
(debug_print_element),
    tp/Texinfo/Convert/DocBook.pm (_docbook_section_element),
    tp/Texinfo/Convert/HTML.pm (command_text, _convert_heading_command)
    (_prepare_tree_units_global_targets, _default_format_contents),
    tp/Texinfo/Convert/LaTeX.pm (_convert),
    tp/Texinfo/Convert/Plaintext.pm (format_contents, _convert),
    tp/Texinfo/Convert/Text.pm (heading),
    tp/Texinfo/Convert/Utils.pm (numbered_heading),
    tp/init/book.pm (book_convert_heading_command), tp/init/chm.pm
    (chm_init), tp/init/epub3.pm (epub_finish): put level in structure.
---
 ChangeLog                                          |  16 +-
 tp/Texinfo/Common.pm                               |   3 +-
 tp/Texinfo/Convert/DocBook.pm                      |   2 +-
 tp/Texinfo/Convert/HTML.pm                         |  31 +-
 tp/Texinfo/Convert/LaTeX.pm                        |   2 +-
 tp/Texinfo/Convert/Plaintext.pm                    |  15 +-
 tp/Texinfo/Convert/Text.pm                         |  11 +-
 tp/Texinfo/Convert/Utils.pm                        |   6 +-
 tp/Texinfo/Structuring.pm                          |  72 +--
 tp/init/book.pm                                    |   6 +-
 tp/init/chm.pm                                     |  10 +-
 tp/init/epub3.pm                                   |  10 +-
 tp/t/results/converters_tests/ref_in_sectioning.pl | 198 +++++---
 tp/t/results/converters_tests/refs_formatting.pl   |  24 +-
 .../some_at_commands_in_ref_nodes.pl               |  38 +-
 .../converters_tests/test_deftypefnnewline.pl      |  38 +-
 .../converters_tests/things_before_setfilename.pl  |  22 +-
 tp/t/results/coverage/commands.pl                  |   4 +-
 .../coverage/punctuation_in_line_commands.pl       |  30 +-
 tp/t/results/coverage_braces/footnote_no_node.pl   |  18 +-
 .../results/coverage_braces/heading_in_footnote.pl |   4 +-
 .../coverage_braces/two_footnotes_in_nodes.pl      |  38 +-
 .../two_footnotes_in_nodes_separate.pl             |  38 +-
 .../def/all_commands_delimiters_printindex.pl      |  12 +-
 tp/t/results/def/all_commands_printindex.pl        |  12 +-
 .../docbook_tests/multiple_documentlanguage.pl     |  78 ++-
 .../docbook_tests/special_docbook_unnumbered.pl    |  80 +++-
 tp/t/results/float/complex_float.pl                |  48 +-
 tp/t/results/float/float_copying.pl                |  38 +-
 .../float/numbering_captions_listoffloats.pl       | 188 +++++---
 tp/t/results/formats_encodings/accent.pl           |  22 +-
 .../formats_encodings/accent_enable_encoding.pl    |  22 +-
 tp/t/results/formats_encodings/accentenc.pl        |  22 +-
 .../formats_encodings/accentenc_enable_encoding.pl |  22 +-
 .../formats_encodings/at_commands_in_refs.pl       | 454 ++++++++++++------
 .../at_commands_in_refs_latin1.pl                  | 454 ++++++++++++------
 .../formats_encodings/at_commands_in_refs_utf8.pl  | 454 ++++++++++++------
 .../char_latin1_latin1_in_refs.pl                  | 102 ++--
 .../formats_encodings/char_latin1_utf8_in_refs.pl  | 102 ++--
 .../char_latin2_latin2_in_refs.pl                  |  38 +-
 .../formats_encodings/japanese_shift_jis.pl        |  54 ++-
 tp/t/results/formats_encodings/sample_utf8.pl      |  68 ++-
 tp/t/results/formats_encodings/weird_accents.pl    |  22 +-
 .../weird_accents_disable_encoding.pl              |  22 +-
 .../formatting/direntry_dircategory_info_split.pl  |  38 +-
 .../formatting/documentlanguage_set_option.pl      |  22 +-
 .../formatting/documentlanguage_set_option_info.pl |  22 +-
 .../formatting/documentlanguage_set_unknown.pl     |  22 +-
 tp/t/results/formatting/float_copying.pl           |  46 +-
 tp/t/results/formatting/split_nocopying.pl         |  38 +-
 tp/t/results/formatting/split_nocopying_split.pl   |  38 +-
 tp/t/results/formatting/texi_bib_example.pl        |  54 ++-
 tp/t/results/formatting/texi_glossary.pl           |  38 +-
 tp/t/results/heading/heading_in_copying.pl         |   8 +-
 tp/t/results/heading/heading_in_example.pl         |   4 +-
 tp/t/results/heading/heading_in_quotation.pl       |   4 +-
 .../character_number_leading_toc_stoc.pl           |  50 +-
 tp/t/results/html_tests/check_htmlxref.pl          |  22 +-
 .../deftypefnnewline_for_copying_after.pl          |  22 +-
 .../deftypefnnewline_for_copying_before.pl         |  22 +-
 tp/t/results/html_tests/documentdescription.pl     |  18 +-
 .../empty_lines_at_beginning_no_setfilename.pl     |  22 +-
 .../html_tests/footnotestyle_separate_late.pl      |  70 ++-
 tp/t/results/html_tests/html_in_copying.pl         |  22 +-
 .../results/html_tests/index_and_node_same_name.pl |  18 +-
 tp/t/results/html_tests/index_below.pl             |  56 ++-
 tp/t/results/html_tests/redirection_same_labels.pl |  70 ++-
 tp/t/results/html_tests/shortcontents_no_top.pl    |  40 +-
 tp/t/results/html_tests/simple_menu.pl             |  22 +-
 .../html_tests/test_xrefautomaticsectiontitle.pl   |  38 +-
 .../test_xrefautomaticsectiontitle_off_first.pl    |  38 +-
 .../text_before_top_and_contents_after_title.pl    |  32 +-
 ...t_before_top_and_summarycontents_after_title.pl |  32 +-
 tp/t/results/html_tests/titles.pl                  |  22 +-
 tp/t/results/htmlxref/htmlxref.pl                  |  50 +-
 tp/t/results/htmlxref/htmlxref_nodes.pl            |  50 +-
 tp/t/results/htmlxref/htmlxref_only_mono.pl        |  50 +-
 tp/t/results/htmlxref/htmlxref_only_mono_nodes.pl  |  50 +-
 tp/t/results/htmlxref/htmlxref_only_split.pl       |  50 +-
 tp/t/results/htmlxref/htmlxref_only_split_nodes.pl |  50 +-
 .../macro_and_commands_in_early_commands.pl        |  22 +-
 tp/t/results/include/macro_in_early_commands.pl    |  22 +-
 tp/t/results/indices/def_syn_indices.pl            |  38 +-
 tp/t/results/indices/double_seeentry_seealso.pl    |  38 +-
 tp/t/results/indices/encoding_index_ascii.pl       |  22 +-
 .../encoding_index_ascii_enable_encoding.pl        |  22 +-
 tp/t/results/indices/encoding_index_latin1.pl      |  22 +-
 .../encoding_index_latin1_enable_encoding.pl       |  22 +-
 tp/t/results/indices/encoding_index_utf8.pl        |  22 +-
 .../indices/encoding_index_utf8_enable_encoding.pl |  22 +-
 tp/t/results/indices/explicit_sort_key.pl          |  22 +-
 .../indices/printindex_index_entry_in_copying.pl   |  38 +-
 ...rintindex_index_entry_in_copying_in_footnote.pl |  38 +-
 ...ndex_index_entry_in_copying_no_insertcopying.pl |  38 +-
 .../indices/same_index_entry_merged_indices.pl     |  22 +-
 tp/t/results/indices/seeentry.pl                   |  38 +-
 tp/t/results/indices/subentries.pl                 |  38 +-
 tp/t/results/indices/subentry_and_sortas.pl        |  38 +-
 tp/t/results/indices/syncode_index_print_both.pl   |  38 +-
 tp/t/results/indices/transparent_sort_chars.pl     |  22 +-
 tp/t/results/indices/w_lines_count.pl              |  22 +-
 tp/t/results/info_tests/anchor_and_spaces.pl       |  22 +-
 tp/t/results/info_tests/before_node_and_section.pl |  38 +-
 tp/t/results/info_tests/def_in_copying.pl          |  22 +-
 .../direntry_dircategory_and_commands.pl           |  22 +-
 tp/t/results/info_tests/index_entry_at_end_node.pl |  54 ++-
 tp/t/results/info_tests/no_node_but_top.pl         |  18 +-
 .../info_tests/paragraphindent_and_preamble.pl     |  22 +-
 tp/t/results/info_tests/space_in_menu.pl           |  38 +-
 tp/t/results/info_tests/split_no_copying.pl        |  38 +-
 .../info_tests/split_test_before_first_node.pl     |  38 +-
 .../split_test_before_first_node_no_empty_line.pl  |  38 +-
 tp/t/results/info_tests/test_index.pl              | 114 +++--
 tp/t/results/info_tests/text_before_node.pl        |  38 +-
 .../invalid_nestings/node_in_copying_not_closed.pl |  22 +-
 tp/t/results/invalid_nestings/on_section_line.pl   |  18 +-
 .../results/invalid_nestings/on_subheading_line.pl |   4 +-
 .../results/invalid_nestings/section_in_copying.pl |  18 +-
 .../invalid_nestings/section_in_flushright.pl      |  18 +-
 .../invalid_nestings/section_in_footnote.pl        |  18 +-
 tp/t/results/invalid_nestings/section_in_math.pl   |  28 +-
 .../section_in_nested_block_commands.pl            |  18 +-
 tp/t/results/invalid_nestings/section_in_table.pl  |  18 +-
 .../invalid_nestings/section_on_def_line.pl        |  18 +-
 .../invalid_nestings/section_on_defx_line.pl       |  18 +-
 .../section_on_index_entry_line.pl                 |  18 +-
 .../style_not_closed_no_newline_root_commands.pl   |  38 +-
 .../style_not_closed_root_commands.pl              |  38 +-
 .../unclosed_verb_on_section_line.pl               |  18 +-
 .../itemize/inter_item_commands_in_enumerate.pl    |  38 +-
 .../itemize/inter_item_commands_in_itemize.pl      |  38 +-
 tp/t/results/languages/appendix_translated.pl      |  32 +-
 tp/t/results/languages/command_translated.pl       |  22 +-
 tp/t/results/languages/multiple_lang_chapters.pl   | 102 ++--
 .../languages/multiple_lang_chapters_latex.pl      | 102 ++--
 .../languages/multiple_lang_chapters_texi2html.pl  | 102 ++--
 tp/t/results/languages/unknown_language.pl         |  22 +-
 .../anchor_links_xref_xrefautomaticsectiontitle.pl |  38 +-
 tp/t/results/latex_tests/custom_headings.pl        |  70 ++-
 tp/t/results/latex_tests/float_and_refs.pl         |  64 ++-
 tp/t/results/latex_tests/fonttextsize.pl           |  98 ++--
 tp/t/results/latex_tests/indices.pl                |  38 +-
 tp/t/results/latex_tests/pagesizes.pl              |  48 +-
 tp/t/results/latex_tests/pagetype.pl               |  48 +-
 tp/t/results/latex_tests/settitle_and_headings.pl  |  18 +-
 tp/t/results/latex_tests/shorttitlepage.pl         |  38 +-
 tp/t/results/latex_tests/titlepage_classical.pl    |  38 +-
 tp/t/results/latex_tests/titlepage_in_top_node.pl  |  38 +-
 tp/t/results/latex_tests/titlepage_long_title.pl   |  38 +-
 tp/t/results/latex_tests/titlepage_no_author.pl    |  38 +-
 tp/t/results/latex_tests/titlepage_no_title.pl     |  38 +-
 .../titlepage_with_commands_classical.pl           |  38 +-
 tp/t/results/layout/navigation.pl                  |  74 ++-
 tp/t/results/layout/navigation_chapter.pl          |  74 ++-
 .../results/layout/navigation_chapter_no_header.pl |  74 ++-
 .../navigation_chapter_no_header_vertical.pl       |  74 ++-
 tp/t/results/layout/navigation_chapter_vertical.pl |  74 ++-
 tp/t/results/layout/navigation_no_header.pl        |  74 ++-
 .../layout/navigation_no_header_vertical.pl        |  74 ++-
 tp/t/results/layout/navigation_node.pl             |  74 ++-
 tp/t/results/layout/navigation_node_no_header.pl   |  74 ++-
 .../layout/navigation_node_no_header_vertical.pl   |  74 ++-
 tp/t/results/layout/navigation_node_vertical.pl    |  74 ++-
 tp/t/results/layout/navigation_section.pl          |  74 ++-
 .../results/layout/navigation_section_no_header.pl |  74 ++-
 .../navigation_section_no_header_vertical.pl       |  74 ++-
 tp/t/results/layout/navigation_section_vertical.pl |  74 ++-
 tp/t/results/layout/navigation_vertical.pl         |  74 ++-
 tp/t/results/layout/no_monolithic.pl               |  38 +-
 tp/t/results/macro/macro_in_misc_commands.pl       |  42 +-
 .../menu/block_commands_in_menu_description.pl     |  22 +-
 tp/t/results/menu/comment_on_menu_line.pl          |  24 +-
 tp/t/results/menu/detailmenu_on_subnodes.pl        | 106 +++--
 .../menu/direntry_dircategory_after_first_node.pl  |  22 +-
 tp/t/results/menu/example_in_menu_description.pl   |  22 +-
 tp/t/results/menu/inlineraw_in_menu_description.pl |  22 +-
 tp/t/results/menu/menu_pointing_to_anchor.pl       |  22 +-
 tp/t/results/menu/submenu_in_example.pl            |   4 +-
 tp/t/results/menu/verb_in_menu_description.pl      |  22 +-
 tp/t/results/misc_commands/also_not_line.pl        |   4 +-
 .../codequoteundirected_codequotebacktick.pl       |  22 +-
 .../misc_commands/comment_space_command_on_line.pl |  30 +-
 .../no_empty_line_between_headings.pl              |  44 +-
 .../misc_commands/text_before_line_command.pl      |  24 +-
 tp/t/results/morecoverage/formatting_fr.pl         | 100 ++--
 tp/t/results/morecoverage/texi_formatting.pl       | 100 ++--
 tp/t/results/moreindices/index_no_node.pl          |  60 ++-
 tp/t/results/moreindices/index_split.pl            | 144 ++++--
 tp/t/results/moreindices/index_split_nodes.pl      | 144 ++++--
 .../nodes_before_top_and_sections_monolithic.pl    |  32 +-
 tp/t/results/moreindices/split_chapter_index.pl    |  74 ++-
 .../moresectioning/more_sections_than_nodes.pl     | 180 ++++---
 tp/t/results/moresectioning/node_footnote_end.pl   |  24 +-
 .../moresectioning/node_footnote_separated.pl      |  24 +-
 .../moresectioning/node_footnote_use_node.pl       |  24 +-
 .../nodes_after_top_before_chapter.pl              |  24 +-
 ...s_after_top_before_chapter_use_nodes_chapter.pl |  24 +-
 .../nodes_after_top_before_section.pl              |  24 +-
 .../nodes_after_top_before_section_use_nodes.pl    |  24 +-
 ...s_after_top_before_section_use_nodes_chapter.pl |  24 +-
 .../moresectioning/placed_things_before_element.pl |  18 +-
 tp/t/results/moresectioning/sectioning_frames.pl   | 188 +++++---
 .../results/moresectioning/top_node_up_explicit.pl |  38 +-
 .../results/moresectioning/top_node_up_implicit.pl |  38 +-
 .../moresectioning/two_footnotes_in_nodes.pl       |  38 +-
 .../two_footnotes_in_nodes_separated.pl            |  38 +-
 tp/t/results/plaintext_tests/japanese_utf8.pl      |  54 ++-
 .../plaintext_tests/no_empty_line_after_section.pl |  52 +-
 tp/t/results/plaintext_tests/quote_node_names.pl   |  86 ++--
 .../plaintext_tests/settitle_and_empty_top.pl      |  18 +-
 tp/t/results/regions/anchor_in_titlepage.pl        |  18 +-
 .../regions/anchor_in_titlepage_titlepage.pl       |  18 +-
 tp/t/results/regions/ref_in_copying.pl             |  38 +-
 tp/t/results/regions/today_in_copying.pl           |  22 +-
 tp/t/results/sectioning/anchor_in_footnote.pl      |  38 +-
 .../sectioning/anchor_in_footnote_separate.pl      |  38 +-
 .../sectioning/chapter_before_and_after_part.pl    |  56 ++-
 tp/t/results/sectioning/chapter_before_part.pl     |  40 +-
 tp/t/results/sectioning/chapter_between_nodes.pl   |  50 +-
 .../chapter_node_before_and_after_part.pl          |  56 ++-
 tp/t/results/sectioning/chapter_sections.pl        | 142 ++++--
 .../sectioning/character_and_spaces_in_refs.pl     |  46 +-
 .../sectioning/character_and_spaces_in_refs_out.pl |  56 ++-
 tp/t/results/sectioning/complex.pl                 | 256 +++++++---
 tp/t/results/sectioning/complex_split_at_node.pl   | 256 +++++++---
 tp/t/results/sectioning/contents.pl                | 128 +++--
 .../sectioning/contents_and_shortcontents.pl       | 128 +++--
 .../sectioning/contents_at_document_begin.pl       |  32 +-
 .../results/sectioning/contents_at_end_document.pl |  32 +-
 .../contents_at_end_document_after_node.pl         |  32 +-
 tp/t/results/sectioning/contents_in_document.pl    |  32 +-
 tp/t/results/sectioning/contents_in_html_text.pl   |  50 +-
 tp/t/results/sectioning/double_part.pl             |  84 +++-
 tp/t/results/sectioning/double_top_section.pl      |  28 +-
 tp/t/results/sectioning/empty_top_node_up.pl       |  22 +-
 tp/t/results/sectioning/external_node_in_menu.pl   |  54 ++-
 tp/t/results/sectioning/hole_in_sectioning.pl      |  64 ++-
 tp/t/results/sectioning/internal_top_node_up.pl    |  26 +-
 tp/t/results/sectioning/lone_Top_node.pl           |  30 +-
 tp/t/results/sectioning/loop_nodes.pl              |  22 +-
 tp/t/results/sectioning/lowered_subsubsection.pl   | 128 +++--
 tp/t/results/sectioning/loweredheading.pl          |  22 +-
 tp/t/results/sectioning/menutextorder.pl           | 130 +++--
 .../results/sectioning/more_sections_than_nodes.pl | 180 ++++---
 tp/t/results/sectioning/next_in_menu_is_below.pl   |  74 ++-
 .../results/sectioning/no_argument_and_contents.pl |  28 +-
 tp/t/results/sectioning/no_menu.pl                 |  70 ++-
 .../sectioning/node_part_chapter_after_chapter.pl  |  90 ++--
 .../sectioning/node_part_chapter_after_top.pl      |  68 ++-
 .../node_sectop_before_chapter_no_node.pl          |  32 +-
 .../sectioning/node_sectop_before_lone_node_Top.pl |  38 +-
 tp/t/results/sectioning/nodename_parentheses.pl    |  70 ++-
 .../nodes_after_top_before_chapter_nodes.pl        |  30 +-
 .../nodes_after_top_before_chapter_not_split.pl    |  24 +-
 ...ore_chapter_not_split_no_use_node_directions.pl |  24 +-
 .../nodes_after_top_before_chapter_sections.pl     |  30 +-
 .../nodes_after_top_before_section_nodes.pl        |  30 +-
 .../nodes_after_top_before_section_sections.pl     |  30 +-
 tp/t/results/sectioning/nodes_before_after_top.pl  |  38 +-
 .../sectioning/nodes_before_after_top_xref.pl      |  38 +-
 tp/t/results/sectioning/nodes_before_top.pl        |  38 +-
 .../non_automatic_internal_top_node_up.pl          |  26 +-
 .../non_automatic_top_node_up_and_url.pl           |  26 +-
 .../sectioning/non_automatic_top_node_up_url.pl    |  26 +-
 tp/t/results/sectioning/one_subsection.pl          |  18 +-
 tp/t/results/sectioning/one_subsection_and_node.pl |  24 +-
 tp/t/results/sectioning/part_before_chapter.pl     |  40 +-
 tp/t/results/sectioning/part_before_section.pl     |  40 +-
 tp/t/results/sectioning/part_before_top.pl         |  38 +-
 tp/t/results/sectioning/part_chapter_after_top.pl  |  68 ++-
 tp/t/results/sectioning/part_chapter_appendix.pl   |  40 +-
 tp/t/results/sectioning/part_node_after_top.pl     |  42 +-
 tp/t/results/sectioning/part_node_before_top.pl    |  46 +-
 .../sectioning/part_node_chapter_after_top.pl      |  68 ++-
 .../sectioning/part_node_chapter_appendix.pl       |  84 +++-
 .../sectioning/part_node_chapter_node_appendix.pl  |  90 ++--
 .../sectioning/part_node_node_part_appendix.pl     | 110 +++--
 tp/t/results/sectioning/part_node_part_appendix.pl | 100 ++--
 .../sectioning/part_node_part_node_appendix.pl     | 110 +++--
 .../sectioning/placed_things_before_element.pl     |  18 +-
 .../sectioning/placed_things_before_node.pl        |  22 +-
 .../sectioning/protected_node_parentheses.pl       |  22 +-
 tp/t/results/sectioning/raiselowersections.pl      | 108 +++--
 tp/t/results/sectioning/ref_to_top.pl              |  22 +-
 .../sectioning/section_before_after_top_node.pl    |  42 +-
 .../section_before_after_top_node_last_node.pl     |  42 +-
 tp/t/results/sectioning/section_before_chapter.pl  |  28 +-
 tp/t/results/sectioning/section_before_part.pl     |  30 +-
 tp/t/results/sectioning/section_before_top.pl      |  38 +-
 .../sectioning/section_before_top_no_node.pl       |  28 +-
 .../results/sectioning/section_below_unnumbered.pl |  52 +-
 .../sectioning/section_below_unnumbered_no_top.pl  |  30 +-
 .../sectioning/section_chapter_before_top.pl       |  38 +-
 .../sectioning/section_chapter_before_top_nodes.pl |  54 ++-
 .../sectioning/section_in_unnumbered_info.pl       | 522 ++++++++++++++-------
 .../sectioning/section_in_unnumbered_plaintext.pl  | 522 ++++++++++++++-------
 .../results/sectioning/section_node_before_part.pl |  36 +-
 .../results/sectioning/sectioning_part_appendix.pl | 188 +++++---
 .../sectioning/sectioning_part_appendix_no_top.pl  | 174 ++++---
 tp/t/results/sectioning/sections.pl                |  18 +-
 tp/t/results/sectioning/sections_test.pl           | 128 +++--
 .../sectioning/sections_test_no_use_nodes.pl       | 128 +++--
 ...ctions_test_no_use_nodes_use_node_directions.pl | 128 +++--
 tp/t/results/sectioning/semi_auto.pl               |  74 ++-
 .../setfilename_on_top_and_after_node.pl           |  22 +-
 tp/t/results/sectioning/shortcontents.pl           | 128 +++--
 tp/t/results/sectioning/top_chapter_sections.pl    | 156 ++++--
 .../sectioning/top_no_argument_and_content.pl      |  18 +-
 .../results/sectioning/top_no_argument_and_node.pl |  22 +-
 .../sectioning/top_no_argument_and_top_node.pl     |  22 +-
 tp/t/results/sectioning/top_node_part_top.pl       |  46 +-
 tp/t/results/sectioning/top_node_up_url.pl         |  26 +-
 tp/t/results/sectioning/top_part_chapter.pl        |  54 ++-
 tp/t/results/sectioning/top_without_node_nodes.pl  |  40 +-
 .../sectioning/top_without_node_sections.pl        |  44 +-
 tp/t/results/sectioning/two_nodes_at_the_end.pl    |  48 +-
 .../sectioning/two_nodes_between_chapters.pl       |  70 ++-
 .../sectioning/two_unnumbered_no_argument.pl       |  28 +-
 .../sectioning/unnumbered_before_node_top_top.pl   |  40 +-
 tp/t/results/sectioning/unnumbered_before_top.pl   |  28 +-
 .../sectioning/unnumbered_before_top_node.pl       |  22 +-
 tp/t/results/sectioning/unnumbered_no_argument.pl  |  18 +-
 .../unnumbered_top_without_node_nodes.pl           |  52 +-
 .../unnumbered_top_without_node_sections.pl        |  56 ++-
 tp/t/results/value/value_in_misc_commands.pl       |  26 +-
 tp/t/results/value/value_in_node.pl                |  38 +-
 tp/t/results/value/value_node_directions.pl        |  54 ++-
 tp/t/results/xml_tests/image_inline_or_not.pl      |  44 +-
 tp/t/results/xtable/block_commands_in_table.pl     |  22 +-
 .../results/xtable/inter_item_commands_in_table.pl |  38 +-
 330 files changed, 12069 insertions(+), 5699 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b387c6fd6b..bc8d9b6ce3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2021-12-31  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/Structuring.pm (sectioning_structure)
+       (_print_sectioning_tree, section_level_adjusted_command_name)
+       (split_pages, elements_directions), tp/Texinfo/Common.pm 
(debug_print_element),
+       tp/Texinfo/Convert/DocBook.pm (_docbook_section_element),
+       tp/Texinfo/Convert/HTML.pm (command_text, _convert_heading_command)
+       (_prepare_tree_units_global_targets, _default_format_contents),
+       tp/Texinfo/Convert/LaTeX.pm (_convert),
+       tp/Texinfo/Convert/Plaintext.pm (format_contents, _convert),
+       tp/Texinfo/Convert/Text.pm (heading),
+       tp/Texinfo/Convert/Utils.pm (numbered_heading),
+       tp/init/book.pm (book_convert_heading_command), tp/init/chm.pm
+       (chm_init), tp/init/epub3.pm (epub_finish): put level in structure.
+
 2021-12-31  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/Convert/HTML.pm (_default_format_element_header)
@@ -6,7 +21,6 @@
        (split_by_section, elements_directions, elements_file_directions):
        put unit_prev and unit_next in structure.
 
-
 2021-12-31  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/Convert/HTML.pm (from_element_direction)
diff --git a/tp/Texinfo/Common.pm b/tp/Texinfo/Common.pm
index a3068b4cc3..96a71fd302 100644
--- a/tp/Texinfo/Common.pm
+++ b/tp/Texinfo/Common.pm
@@ -2433,7 +2433,8 @@ sub debug_print_element($)
   my $text = '';
   $type = "($current->{'type'})" if (defined($current->{'type'}));
   $cmd = "\@$current->{'cmdname'}" if (defined($current->{'cmdname'}));
-  $cmd .= "($current->{'level'})" if (defined($current->{'level'}));
+  $cmd .= "($current->{'structure'}->{'level'})"
+        if (defined($current->{'structure'}->{'level'}));
   if (defined($current->{'text'})) {
     my $text_str = $current->{'text'};
     $text_str =~ s/\n/\\n/g;
diff --git a/tp/Texinfo/Convert/DocBook.pm b/tp/Texinfo/Convert/DocBook.pm
index 995b105fdb..7b018241e5 100644
--- a/tp/Texinfo/Convert/DocBook.pm
+++ b/tp/Texinfo/Convert/DocBook.pm
@@ -389,7 +389,7 @@ sub _docbook_section_element($$)
   my $self = shift;
   my $element = shift;
 
-  my $heading_level = $element->{'level'};
+  my $heading_level = $element->{'structure'}->{'level'};
   if (exists $docbook_sections{$heading_level}) {
     return $docbook_sections{$heading_level};
   }
diff --git a/tp/Texinfo/Convert/HTML.pm b/tp/Texinfo/Convert/HTML.pm
index 9c35befe9e..bbe6ddcf39 100644
--- a/tp/Texinfo/Convert/HTML.pm
+++ b/tp/Texinfo/Convert/HTML.pm
@@ -699,7 +699,8 @@ sub command_text($$;$)
         if (defined($command->{'number'})
             and ($self->get_conf('NUMBER_SECTIONS')
                  or !defined($self->get_conf('NUMBER_SECTIONS')))) {
-          if ($command->{'cmdname'} eq 'appendix' and $command->{'level'} == 
1) {
+          if ($command->{'cmdname'} eq 'appendix'
+              and $command->{'structure'}->{'level'} == 1) {
             $tree = $self->gdt('Appendix {number} {section_title}',
                              {'number' => {'text' => $command->{'number'}},
                               'section_title'
@@ -2856,7 +2857,7 @@ sub _convert_heading_command($$$$$)
   # if set, the id is associated to the heading text
   my $heading_id;
   if ($section) {
-    my $level = $section->{'level'};
+    my $level = $section->{'structure'}->{'level'};
     $result .= join('', $self->close_registered_sections_level($level));
     $self->register_opened_section_level($level, "</div>\n");
 
@@ -2893,8 +2894,8 @@ sub _convert_heading_command($$$$$)
         $heading_level = 3;
       }
     }
-  } elsif (defined $element->{'level'}) {
-    $heading_level = $element->{'level'};
+  } elsif (defined $element->{'structure'}->{'level'}) {
+    $heading_level = $element->{'structure'}->{'level'};
     # if the level was changed, set the command name right
     $cmdname_for_heading
       = Texinfo::Structuring::section_level_adjusted_command_name($element);
@@ -6612,7 +6613,7 @@ sub _prepare_tree_units_global_targets($$)
       }
       # find the first level 1 sectioning element to associate the printindex 
with
       if ($root_command and $root_command->{'cmdname'} ne 'node') {
-        while ($root_command->{'level'} > 1
+        while ($root_command->{'structure'}->{'level'} > 1
                and $root_command->{'section_up'}
                and $root_command->{'section_up'}->{'parent'}) {
           $root_command = $root_command->{'section_up'};
@@ -6904,13 +6905,13 @@ sub _default_format_contents($$;$$)
   my $contents;
   $contents = 1 if ($cmdname eq 'contents');
 
-  my $min_root_level = $section_root->{'section_childs'}->[0]->{'level'};
-  my $max_root_level = $section_root->{'section_childs'}->[0]->{'level'};
+  my $min_root_level = 
$section_root->{'section_childs'}->[0]->{'structure'}->{'level'};
+  my $max_root_level = 
$section_root->{'section_childs'}->[0]->{'structure'}->{'level'};
   foreach my $top_section(@{$section_root->{'section_childs'}}) {
-    $min_root_level = $top_section->{'level'}
-      if ($top_section->{'level'} < $min_root_level);
-    $max_root_level = $top_section->{'level'}
-      if ($top_section->{'level'} > $max_root_level);
+    $min_root_level = $top_section->{'structure'}->{'level'}
+      if ($top_section->{'structure'}->{'level'} < $min_root_level);
+    $max_root_level = $top_section->{'structure'}->{'level'}
+      if ($top_section->{'structure'}->{'level'} > $max_root_level);
   }
   # chapter level elements are considered top-level here.
   $max_root_level = 1 if ($max_root_level < 1);
@@ -6949,7 +6950,7 @@ sub _default_format_contents($$;$$)
         my $toc_id = $self->command_contents_target($section, $cmdname);
         if ($text ne '') {
           # no indenting for shortcontents
-          $result .= (' ' x (2*($section->{'level'} - $min_root_level))) 
+          $result .= (' ' x (2*($section->{'structure'}->{'level'} - 
$min_root_level)))
             if ($contents);
           if ($toc_id ne '' or $href ne '') {
             my $toc_name_attribute = '';
@@ -6977,9 +6978,9 @@ sub _default_format_contents($$;$$)
       }
       # for shortcontents don't do child if child is not toplevel
       if ($section->{'section_childs'}
-          and ($contents or $section->{'level'} < $max_root_level)) {
+          and ($contents or $section->{'structure'}->{'level'} < 
$max_root_level)) {
         # no indenting for shortcontents
-        $result .= "\n". ' ' x (2*($section->{'level'} - $min_root_level))
+        $result .= "\n". ' ' x (2*($section->{'structure'}->{'level'} - 
$min_root_level))
           if ($contents);
         $result .= $self->html_attribute_class('ul', $ul_class) .">\n";
         $section = $section->{'section_childs'}->[0];
@@ -6995,7 +6996,7 @@ sub _default_format_contents($$;$$)
         }
         while ($section->{'section_up'}) {
           $section = $section->{'section_up'};
-          $result .= "</li>\n". ' ' x (2*($section->{'level'} - 
$min_root_level))
+          $result .= "</li>\n". ' ' x (2*($section->{'structure'}->{'level'} - 
$min_root_level))
             . "</ul>";
           if ($section eq $top_section) {
             $result .= "</li>\n" if ($toplevel_contents);
diff --git a/tp/Texinfo/Convert/LaTeX.pm b/tp/Texinfo/Convert/LaTeX.pm
index 9df8566cdc..177b01b763 100644
--- a/tp/Texinfo/Convert/LaTeX.pm
+++ b/tp/Texinfo/Convert/LaTeX.pm
@@ -2381,7 +2381,7 @@ sub _convert($$)
             # If an unwanted comma is added, follow the argument with a 
command such as @:
             if ($reference->{'cmdname'} and $reference->{'cmdname'} eq 'node'
                 and $section_command) {
-              if ($section_command->{'level'} > 1) {
+              if ($section_command->{'structure'}->{'level'} > 1) {
                 # TODO command that could be used for translation \sectionname 
does
                 # not exist in the default case.  it is defined in the 
pagenote package together with 
                 # \pagename which is page in the default case, but it is 
unclear if this
diff --git a/tp/Texinfo/Convert/Plaintext.pm b/tp/Texinfo/Convert/Plaintext.pm
index 81829fcfcb..effa69c020 100644
--- a/tp/Texinfo/Convert/Plaintext.pm
+++ b/tp/Texinfo/Convert/Plaintext.pm
@@ -1063,10 +1063,10 @@ sub format_contents($$$)
 
   # no sections
   return ('', 0) if (!$section_root or !$section_root->{'section_childs'});
-  my $root_level = $section_root->{'section_childs'}->[0]->{'level'};
+  my $root_level = 
$section_root->{'section_childs'}->[0]->{'structure'}->{'level'};
   foreach my $top_section(@{$section_root->{'section_childs'}}) {
-    $root_level = $top_section->{'level'} 
-      if ($top_section->{'level'} < $root_level);
+    $root_level = $top_section->{'structure'}->{'level'} 
+      if ($top_section->{'structure'}->{'level'} < $root_level);
   }
 
   my $result = '';
@@ -1082,7 +1082,8 @@ sub format_contents($$$)
       if (defined($section->{'number'}) 
           and ($self->get_conf('NUMBER_SECTIONS')
                or !defined($self->get_conf('NUMBER_SECTIONS')))) {
-        if ($section->{'cmdname'} eq 'appendix' and $section->{'level'} == 1) {
+        if ($section->{'cmdname'} eq 'appendix'
+            and $section->{'structure'}->{'level'} == 1) {
           $section_title_tree = $self->gdt('Appendix {number} {section_title}',
                            {'number' => {'text' => $section->{'number'}},
                             'section_title' 
@@ -1103,12 +1104,12 @@ sub format_contents($$$)
       my $text = $section_title;
       chomp ($text);
       $text .= "\n";
-      my $repeat_count = 2 * ($section->{'level'} - ($root_level+1));
+      my $repeat_count = 2 * ($section->{'structure'}->{'level'} - 
($root_level+1));
       ($result .= (' ' x $repeat_count)) if $repeat_count > 0;
       $result .= $text;
       $lines_count++;
       if ($section->{'section_childs'} 
-          and ($contents or $section->{'level'} < $root_level+1)) {
+          and ($contents or $section->{'structure'}->{'level'} < 
$root_level+1)) {
         $section = $section->{'section_childs'}->[0];
       } elsif ($section->{'section_next'}) {
         last if ($section eq $top_section);
@@ -2263,7 +2264,7 @@ sub _convert($$)
       $result = $self->convert_line ({'type' => 'frenchspacing',
                'contents' => [$element->{'args'}->[0]]});
       pop @{$self->{'count_context'}};
-      $result = Texinfo::Convert::Text::heading({'level' => 0, 
+      $result = Texinfo::Convert::Text::heading({'structure' => {'level' => 0},
         'cmdname' => 'titlefont'}, $result, $self, 
         $self->get_conf('NUMBER_SECTIONS'),
         ($self->{'format_context'}->[-1]->{'indent_level'}) * $indent_length);
diff --git a/tp/Texinfo/Convert/Text.pm b/tp/Texinfo/Convert/Text.pm
index 97ee80f15d..51d4140c4f 100644
--- a/tp/Texinfo/Convert/Text.pm
+++ b/tp/Texinfo/Convert/Text.pm
@@ -30,6 +30,8 @@ use Texinfo::Convert::Texinfo;
 # misc functions and data
 use Texinfo::Convert::Utils;
 
+#use Texinfo::Structuring;
+
 use Data::Dumper;
 use Carp qw(cluck carp);
 
@@ -310,10 +312,13 @@ sub heading($$$;$$)
   } else {
     $indent_length = 0;
   }
-  if (!defined $current->{'level'}) {
-    $current->{'level'} = Texinfo::Structuring::section_level($current);
+  my $section_level;
+  if (!defined($current->{'structure'}->{'level'})) {
+    $section_level = Texinfo::Structuring::section_level($current);
+  } else {
+    $section_level = $current->{'structure'}->{'level'};
   }
-  $result .=($underline_symbol{$current->{'level'}} 
+  $result .= ($underline_symbol{$section_level}
      x (Texinfo::Convert::Unicode::string_width($text) - $indent_length))."\n";
   return $result;
 }
diff --git a/tp/Texinfo/Convert/Utils.pm b/tp/Texinfo/Convert/Utils.pm
index 8d4c663bae..df12968099 100644
--- a/tp/Texinfo/Convert/Utils.pm
+++ b/tp/Texinfo/Convert/Utils.pm
@@ -255,7 +255,8 @@ sub numbered_heading($$$;$)
   my $result;
   if ($self) {
     if (defined($number)) {
-      if ($current->{'cmdname'} eq 'appendix' and $current->{'level'} == 1) {
+      if ($current->{'cmdname'} eq 'appendix'
+          and $current->{'structure'}->{'level'} == 1) {
         $result = $self->gdt('Appendix {number} {section_title}',
                    {'number' => $number, 'section_title' => $text},
                    'translated_text');
@@ -270,7 +271,8 @@ sub numbered_heading($$$;$)
   } else {
     $result = $text;
     $result = $number.' '.$result if (defined($number));
-    if ($current->{'cmdname'} eq 'appendix' and $current->{'level'} == 1) {
+    if ($current->{'cmdname'} eq 'appendix'
+        and $current->{'structure'}->{'level'} == 1) {
       $result = 'Appendix '.$result;
     }
   }
diff --git a/tp/Texinfo/Structuring.pm b/tp/Texinfo/Structuring.pm
index 16518c63bd..6737792d09 100644
--- a/tp/Texinfo/Structuring.pm
+++ b/tp/Texinfo/Structuring.pm
@@ -158,20 +158,20 @@ sub sectioning_structure($$$)
       }
     }
     my $level;
-    $level = $content->{'level'} = section_level($content);
+    $level = $content->{'structure'}->{'level'} = section_level($content);
     if (!defined($level)) {
       warn "bug: level not defined for $content->{'cmdname'}\n";
-      $level = $content->{'level'} = 0;
+      $level = $content->{'structure'}->{'level'} = 0;
     }
 
     if ($previous_section) {
       # new command is below
-      if ($previous_section->{'level'} < $level) {
-        if ($level - $previous_section->{'level'} > 1) {
+      if ($previous_section->{'structure'}->{'level'} < $level) {
+        if ($level - $previous_section->{'structure'}->{'level'} > 1) {
           $registrar->line_error($configuration_informations,
            sprintf(__("raising the section level of \@%s which is too low"), 
               $content->{'cmdname'}), $content->{'line_nr'});
-          $content->{'level'} = $previous_section->{'level'} + 1;
+          $content->{'structure'}->{'level'} = 
$previous_section->{'structure'}->{'level'} + 1;
         }
         $previous_section->{'section_childs'} = [$content];
         $content->{'section_up'} = $previous_section;
@@ -179,27 +179,27 @@ sub sectioning_structure($$$)
         # if the up is unnumbered, the number information has to be kept,
         # to avoid reusing an already used number.
         if (!$unnumbered_commands{$previous_section->{'cmdname'}}) {
-          $command_numbers[$content->{'level'}] = undef;
+          $command_numbers[$content->{'structure'}->{'level'}] = undef;
         } elsif (!$unnumbered_commands{$content->{'cmdname'}}) {
-          $command_numbers[$content->{'level'}]++;
+          $command_numbers[$content->{'structure'}->{'level'}]++;
         }
         if ($unnumbered_commands{$content->{'cmdname'}}) {
-          $command_unnumbered[$content->{'level'}] = 1;
+          $command_unnumbered[$content->{'structure'}->{'level'}] = 1;
         } else {
-          $command_unnumbered[$content->{'level'}] = 0;
+          $command_unnumbered[$content->{'structure'}->{'level'}] = 0;
         }
       } else {
         my $up = $previous_section->{'section_up'};
         my $new_upper_part_element;
-        if ($previous_section->{'level'} != $level) {
+        if ($previous_section->{'structure'}->{'level'} != $level) {
           # means it is above the previous command, the up is to be found
-          while ($up->{'section_up'} and $up->{'level'} >= $level) {
+          while ($up->{'section_up'} and $up->{'structure'}->{'level'} >= 
$level) {
             $up = $up->{'section_up'};
           }
-          if ($level <= $up->{'level'}) {
+          if ($level <= $up->{'structure'}->{'level'}) {
             if ($content->{'cmdname'} eq 'part') {
               $new_upper_part_element = 1;
-              if ($level < $up->{'level'}) {
+              if ($level < $up->{'structure'}->{'level'}) {
                 $registrar->line_warn($configuration_informations,
                  sprintf(__("no chapter-level command before \@%s"),
                     $content->{'cmdname'}), $content->{'line_nr'});
@@ -208,19 +208,19 @@ sub sectioning_structure($$$)
               $registrar->line_warn($configuration_informations,
   sprintf(__("lowering the section level of \@%s appearing after a lower 
element"), 
                   $content->{'cmdname'}), $content->{'line_nr'});
-              $content->{'level'} = $up->{'level'} + 1;
+              $content->{'structure'}->{'level'} = 
$up->{'structure'}->{'level'} + 1;
             }
           }
         }
         if ($appendix_commands{$content->{'cmdname'}} and !$in_appendix
-            and $content->{'level'} <= $number_top_level 
+            and $content->{'structure'}->{'level'} <= $number_top_level 
             and $up->{'cmdname'} and $up->{'cmdname'} eq 'part') {
           $up = $up->{'section_up'};
         }
         if ($new_upper_part_element) {
           # In that case the root has to be updated because the first 
           # 'part' just appeared
-          $sec_root->{'level'} = $level - 1;
+          $sec_root->{'structure'}->{'level'} = $level - 1;
           push @{$sec_root->{'section_childs'}}, $content;
           $content->{'section_up'} = $sec_root;
           $number_top_level = $level;
@@ -232,15 +232,15 @@ sub sectioning_structure($$$)
           $content->{'section_prev'}->{'section_next'} = $content;
         }
         if (!$unnumbered_commands{$content->{'cmdname'}}) {
-          $command_numbers[$content->{'level'}]++;
-          $command_unnumbered[$content->{'level'}] = 0;
+          $command_numbers[$content->{'structure'}->{'level'}]++;
+          $command_unnumbered[$content->{'structure'}->{'level'}] = 0;
         } else {
-          $command_unnumbered[$content->{'level'}] = 1;
+          $command_unnumbered[$content->{'structure'}->{'level'}] = 1;
         }
       }
     } else { # first section determines the level of the root.  It is 
       # typically -1 when there is a @top.
-      $sec_root->{'level'} = $level - 1;
+      $sec_root->{'structure'}->{'level'} = $level - 1;
       $sec_root->{'section_childs'} = [$content];
       $content->{'section_up'} = $sec_root;
       $number_top_level = $level;
@@ -250,28 +250,28 @@ sub sectioning_structure($$$)
       $number_top_level++ if (!$number_top_level);
       if ($content->{'cmdname'} ne 'top') {
         if (!$unnumbered_commands{$content->{'cmdname'}}) {
-          $command_unnumbered[$content->{'level'}] = 0;
+          $command_unnumbered[$content->{'structure'}->{'level'}] = 0;
         } else {
-          $command_unnumbered[$content->{'level'}] = 1;
+          $command_unnumbered[$content->{'structure'}->{'level'}] = 1;
         }
       }
     }
-    if (!defined($command_numbers[$content->{'level'}])) {
+    if (!defined($command_numbers[$content->{'structure'}->{'level'}])) {
       if ($unnumbered_commands{$content->{'cmdname'}}) {
-        $command_numbers[$content->{'level'}] = 0;
+        $command_numbers[$content->{'structure'}->{'level'}] = 0;
       } else {
-        $command_numbers[$content->{'level'}] = 1;
+        $command_numbers[$content->{'structure'}->{'level'}] = 1;
       }
     }
     if ($appendix_commands{$content->{'cmdname'}} and !$in_appendix) {
       $in_appendix = 1;
-      $command_numbers[$content->{'level'}] = 'A';
+      $command_numbers[$content->{'structure'}->{'level'}] = 'A';
     }
     if (!$unnumbered_commands{$content->{'cmdname'}}) {
       # construct the number, if not below an unnumbered
       if (!$command_unnumbered[$number_top_level]) {
         $content->{'number'} = $command_numbers[$number_top_level];
-        for (my $i = $number_top_level+1; $i <= $content->{'level'}; $i++) {
+        for (my $i = $number_top_level+1; $i <= 
$content->{'structure'}->{'level'}; $i++) {
           $content->{'number'} .= ".$command_numbers[$i]";
           # If there is an unnumbered above, then no number is added.
           if ($command_unnumbered[$i]) {
@@ -283,7 +283,7 @@ sub sectioning_structure($$$)
     }
     $previous_section = $content;
     if ($content->{'cmdname'} ne 'part' 
-        and $content->{'level'} <= $number_top_level) {
+        and $content->{'structure'}->{'level'} <= $number_top_level) {
       if ($previous_toplevel) {
         $previous_toplevel->{'toplevel_next'} = $content;
         $content->{'toplevel_prev'} = $previous_toplevel;
@@ -307,7 +307,7 @@ sub _print_sectioning_tree($);
 sub _print_sectioning_tree($)
 {
   my $current = shift;
-  my $result = ' ' x $current->{'level'}
+  my $result = ' ' x $current->{'structure'}->{'level'}
      . 
Texinfo::Convert::Texinfo::root_element_command_to_texinfo($current)."\n";
   foreach my $child (@{$current->{'section_childs'}}) {
     $result .= _print_sectioning_tree($child);
@@ -814,7 +814,7 @@ sub section_level_adjusted_command_name($)
 {
   my $element = shift;
 
-  my $heading_level = $element->{'level'};
+  my $heading_level = $element->{'structure'}->{'level'};
   my $command;
   if ($heading_level ne 
$Texinfo::Common::command_structuring_level{$element->{'cmdname'}}) {
     $command
@@ -954,10 +954,10 @@ sub split_pages ($$)
   foreach my $tree_unit (@$tree_units) {
     my $level;
     if ($tree_unit->{'extra'}->{'section'}) {
-      $level = $tree_unit->{'extra'}->{'section'}->{'level'};
+      $level = $tree_unit->{'extra'}->{'section'}->{'structure'}->{'level'};
     } elsif ($tree_unit->{'extra'}->{'node'}
              and $tree_unit->{'extra'}->{'node'}->{'associated_section'}) {
-      $level = 
$tree_unit->{'extra'}->{'node'}->{'associated_section'}->{'level'};
+      $level = 
$tree_unit->{'extra'}->{'node'}->{'associated_section'}->{'structure'}->{'level'};
     }
     #print STDERR "level($split_level) $level 
".root_or_external_element_cmd_texi($tree_unit)."\n";
     if (!defined($split_level) or (defined($level) and $split_level >= $level)
@@ -1080,7 +1080,7 @@ sub elements_directions($$$)
           $directions->{'FastForward'} 
             = $section_element->{'structure'}->{'directions'}->{'FastForward'};
         }
-        if ($section_element->{'extra'}->{'section'}->{'level'} <= 1) {
+        if ($section_element->{'extra'}->{'section'}->{'structure'}->{'level'} 
<= 1) {
           $directions->{'FastBack'} = $section_element;
         } elsif 
($section_element->{'structure'}->{'directions'}->{'Fastback'}) {
           $directions->{'FastBack'} 
@@ -1104,13 +1104,13 @@ sub elements_directions($$$)
       }
 
       my $up = $section;
-      while ($up->{'level'} > 1 and $up->{'section_up'}) {
+      while ($up->{'structure'}->{'level'} > 1 and $up->{'section_up'}) {
         $up = $up->{'section_up'};
       }
 
       # fastforward is the next element on same level than the upper parent
       # element.
-      if ($up->{'level'} < 1 and $up->{'cmdname'} and $up->{'cmdname'} eq 'top'
+      if ($up->{'structure'}->{'level'} < 1 and $up->{'cmdname'} and 
$up->{'cmdname'} eq 'top'
           and $up->{'section_childs'} and @{$up->{'section_childs'}}) {
         $directions->{'FastForward'} = 
$up->{'section_childs'}->[0]->{'parent'};
       } elsif ($up->{'toplevel_next'}) {
@@ -1122,7 +1122,7 @@ sub elements_directions($$$)
       # highest parent element
       if ($up and $up ne $section) {
         $directions->{'FastBack'} = $up->{'parent'};
-      } elsif ($section->{'level'} <= 1) {
+      } elsif ($section->{'structure'}->{'level'} <= 1) {
         # the element is a top level element, we adjust the next
         # toplevel element fastback
         
$directions->{'FastForward'}->{'structure'}->{'directions'}->{'FastBack'}  
diff --git a/tp/init/book.pm b/tp/init/book.pm
index 571b0785b1..9f800c84ed 100644
--- a/tp/init/book.pm
+++ b/tp/init/book.pm
@@ -195,7 +195,7 @@ sub book_convert_heading_command($$$$$)
   # if set, the id is associated to the heading text
   my $heading_id;
   if ($section) {
-    my $level = $section->{'level'};
+    my $level = $section->{'structure'}->{'level'};
     $result .= join('', $self->close_registered_sections_level($level));
     $self->register_opened_section_level($level, "</div>\n");
 
@@ -232,8 +232,8 @@ sub book_convert_heading_command($$$$$)
         $heading_level = 3;
       }
     }
-  } elsif (defined $element->{'level'}) {
-    $heading_level = $element->{'level'};
+  } elsif (defined $element->{'structure'}->{'level'}) {
+    $heading_level = $element->{'structure'}->{'level'};
     # if the level was changed, set the command name right
     $cmdname_for_heading
       = Texinfo::Structuring::section_level_adjusted_command_name($element);
diff --git a/tp/init/chm.pm b/tp/init/chm.pm
index 6a6eb25af7..bb49a20965 100644
--- a/tp/init/chm.pm
+++ b/tp/init/chm.pm
@@ -307,24 +307,24 @@ sub chm_init($)
 
   if ($self->{'structuring'} and $self->{'structuring'}->{'sectioning_root'}) {
     my $section_root = $self->{'structuring'}->{'sectioning_root'};
-    my $upper_level = $section_root->{'section_childs'}->[0]->{'level'};
+    my $upper_level = 
$section_root->{'section_childs'}->[0]->{'structure'}->{'level'};
     foreach my $top_section(@{$section_root->{'section_childs'}}) {
-      $upper_level = $top_section->{'level'}
-      if ($top_section->{'level'} < $upper_level);
+      $upper_level = $top_section->{'structure'}->{'level'}
+      if ($top_section->{'structure'}->{'level'} < $upper_level);
     }
     $upper_level = 1 if ($upper_level <= 0);
     my $root_level = $upper_level - 1;
     my $level = $root_level;
     foreach my $section (@{$self->{'structuring'}->{'sections_list'}}) {
       next if ($section->{'cmdname'} eq 'part');
-      my $section_level = $section->{'level'};
+      my $section_level = $section->{'structure'}->{'level'};
       $section_level = 1 if ($section_level == 0);
       if ($level < $section_level) {
         while ($level < $section_level) {
           print $hhc_fh "<UL>\n";
           $level++;
         }
-      } elsif ($level > $section->{'level'}) {
+      } elsif ($level > $section->{'structure'}->{'level'}) {
         while ($level > $section_level) {
           print $hhc_fh "</UL>\n";
           $level--;
diff --git a/tp/init/epub3.pm b/tp/init/epub3.pm
index a40aeb09e9..62b43a7c93 100644
--- a/tp/init/epub3.pm
+++ b/tp/init/epub3.pm
@@ -430,17 +430,17 @@ EOT
 
     # similar code as in chm.pm
     my $section_root = $self->{'structuring'}->{'sectioning_root'};
-    my $upper_level = $section_root->{'section_childs'}->[0]->{'level'};
+    my $upper_level = 
$section_root->{'section_childs'}->[0]->{'structure'}->{'level'};
     foreach my $top_section(@{$section_root->{'section_childs'}}) {
-      $upper_level = $top_section->{'level'}
-      if ($top_section->{'level'} < $upper_level);
+      $upper_level = $top_section->{'structure'}->{'level'}
+      if ($top_section->{'structure'}->{'level'} < $upper_level);
     }
     $upper_level = 1 if ($upper_level <= 0);
     my $root_level = $upper_level - 1;
     my $level = $root_level;
     foreach my $section (@{$self->{'structuring'}->{'sections_list'}}) {
       next if ($section->{'cmdname'} eq 'part');
-      my $section_level = $section->{'level'};
+      my $section_level = $section->{'structure'}->{'level'};
       $section_level = 1 if ($section_level == 0);
       # FIXME with gaps in sectioning there could be nesting issues?
       if ($level < $section_level) {
@@ -449,7 +449,7 @@ EOT
           print $nav_fh "\n". " " x $level . "<ol>\n";
           $level++;
         }
-      } elsif ($level > $section->{'level'}) {
+      } elsif ($level > $section->{'structure'}->{'level'}) {
         # on the same line as the a element for the first </li>
         print $nav_fh "</li>\n". " " x ($level -1) . "</ol>\n";
         $level--;
diff --git a/tp/t/results/converters_tests/ref_in_sectioning.pl 
b/tp/t/results/converters_tests/ref_in_sectioning.pl
index 7a725f5d19..baa2ff4862 100644
--- a/tp/t/results/converters_tests/ref_in_sectioning.pl
+++ b/tp/t/results/converters_tests/ref_in_sectioning.pl
@@ -458,13 +458,15 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {},
     {
@@ -566,14 +568,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 12,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -676,14 +680,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -758,14 +764,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => '2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -881,14 +889,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => '2.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -989,14 +999,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => '2.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1085,14 +1097,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 23,
         'macro' => ''
       },
       'number' => '2.4',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1181,14 +1195,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => '2.5',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1266,14 +1282,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 27,
         'macro' => ''
       },
       'number' => '2.6',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1345,14 +1363,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 29,
         'macro' => ''
       },
       'number' => '2.7',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1438,14 +1458,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => '2.8',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1537,14 +1559,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => '2.9',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1621,14 +1645,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 35,
         'macro' => ''
       },
       'number' => '2.10',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1708,14 +1734,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 37,
         'macro' => ''
       },
       'number' => '2.11',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1784,14 +1812,16 @@ $result_trees{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 39,
         'macro' => ''
       },
       'number' => '2.12',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -2136,7 +2166,6 @@ for example node (node) (Top)
 ';
 
 $result_sectioning{'ref_in_sectioning'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -2150,7 +2179,6 @@ $result_sectioning{'ref_in_sectioning'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -2164,9 +2192,11 @@ $result_sectioning{'ref_in_sectioning'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2182,7 +2212,6 @@ $result_sectioning{'ref_in_sectioning'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -2190,130 +2219,163 @@ $result_sectioning{'ref_in_sectioning'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.3',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.4',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.5',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.6',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.7',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.8',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.9',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.10',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.11',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.12',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'ref_in_sectioning'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'ref_in_sectioning'}{'section_childs'}[0];
 
$result_sectioning{'ref_in_sectioning'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'ref_in_sectioning'}{'section_childs'}[0];
@@ -2355,7 +2417,9 @@ $result_nodes{'ref_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -2368,8 +2432,10 @@ $result_nodes{'ref_in_sectioning'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'node',
       'spaces_before_argument' => ' '
@@ -2382,8 +2448,10 @@ $result_nodes{'ref_in_sectioning'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chap',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/converters_tests/refs_formatting.pl 
b/tp/t/results/converters_tests/refs_formatting.pl
index fbd7547012..f1aea7b0ef 100644
--- a/tp/t/results/converters_tests/refs_formatting.pl
+++ b/tp/t/results/converters_tests/refs_formatting.pl
@@ -3588,14 +3588,16 @@ $result_trees{'refs_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -4330,7 +4332,6 @@ $result_texts{'refs_formatting'} = '1 chapter
 ';
 
 $result_sectioning{'refs_formatting'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -4344,11 +4345,16 @@ $result_sectioning{'refs_formatting'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'refs_formatting'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'refs_formatting'};
 
@@ -4360,8 +4366,10 @@ $result_nodes{'refs_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'chapter',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl 
b/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl
index eab7cd8803..1ef5fd9210 100644
--- a/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl
+++ b/tp/t/results/converters_tests/some_at_commands_in_ref_nodes.pl
@@ -504,13 +504,15 @@ $result_trees{'some_at_commands_in_ref_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1410,14 +1412,16 @@ $result_trees{'some_at_commands_in_ref_nodes'} = {
       'extra' => {
         'spaces_before_argument' => '  '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1693,7 +1697,6 @@ see a strong ref with SC, a i trema i", a dotless i trema 
i" E=` and exclamdown
 ';
 
 $result_sectioning{'some_at_commands_in_ref_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1707,7 +1710,6 @@ $result_sectioning{'some_at_commands_in_ref_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1721,16 +1723,24 @@ $result_sectioning{'some_at_commands_in_ref_nodes'} = {
             },
             'spaces_before_argument' => '  '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'some_at_commands_in_ref_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'some_at_commands_in_ref_nodes'}{'section_childs'}[0];
 
$result_sectioning{'some_at_commands_in_ref_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'some_at_commands_in_ref_nodes'}{'section_childs'}[0];
@@ -1745,7 +1755,9 @@ $result_nodes{'some_at_commands_in_ref_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1758,8 +1770,10 @@ $result_nodes{'some_at_commands_in_ref_nodes'} = {
         'extra' => {
           'spaces_before_argument' => '  '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 
'A-SC-_00d1-_00c5-TeX-node-_00ef-_00ef-_1e14-_0142-_1e08-_00a1',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/converters_tests/test_deftypefnnewline.pl 
b/tp/t/results/converters_tests/test_deftypefnnewline.pl
index 9d13fb355b..0aececece3 100644
--- a/tp/t/results/converters_tests/test_deftypefnnewline.pl
+++ b/tp/t/results/converters_tests/test_deftypefnnewline.pl
@@ -155,13 +155,15 @@ $result_trees{'test_deftypefnnewline'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2694,14 +2696,16 @@ $result_trees{'test_deftypefnnewline'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -3228,7 +3232,6 @@ fff2
 ';
 
 $result_sectioning{'test_deftypefnnewline'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3242,7 +3245,6 @@ $result_sectioning{'test_deftypefnnewline'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3256,16 +3258,24 @@ $result_sectioning{'test_deftypefnnewline'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'test_deftypefnnewline'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'test_deftypefnnewline'}{'section_childs'}[0];
 
$result_sectioning{'test_deftypefnnewline'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'test_deftypefnnewline'}{'section_childs'}[0];
@@ -3280,7 +3290,9 @@ $result_nodes{'test_deftypefnnewline'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3293,8 +3305,10 @@ $result_nodes{'test_deftypefnnewline'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/converters_tests/things_before_setfilename.pl 
b/tp/t/results/converters_tests/things_before_setfilename.pl
index e29d550c15..ffb74b544d 100644
--- a/tp/t/results/converters_tests/things_before_setfilename.pl
+++ b/tp/t/results/converters_tests/things_before_setfilename.pl
@@ -1083,13 +1083,15 @@ $result_trees{'things_before_setfilename'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'things_before_setfilename.texi',
         'line_nr' => 47,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -1353,7 +1355,6 @@ Anchor in footnote
 ';
 
 $result_sectioning{'things_before_setfilename'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1367,10 +1368,15 @@ $result_sectioning{'things_before_setfilename'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'things_before_setfilename'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'things_before_setfilename'};
 
@@ -1382,7 +1388,9 @@ $result_nodes{'things_before_setfilename'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/coverage/commands.pl 
b/tp/t/results/coverage/commands.pl
index 55b51ee062..3b289a35fb 100644
--- a/tp/t/results/coverage/commands.pl
+++ b/tp/t/results/coverage/commands.pl
@@ -439,13 +439,13 @@ $result_trees{'commands'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 9,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         }
       ],
       'parent' => {},
diff --git a/tp/t/results/coverage/punctuation_in_line_commands.pl 
b/tp/t/results/coverage/punctuation_in_line_commands.pl
index 8aca601b17..6937e6565c 100644
--- a/tp/t/results/coverage/punctuation_in_line_commands.pl
+++ b/tp/t/results/coverage/punctuation_in_line_commands.pl
@@ -691,13 +691,13 @@ $result_trees{'punctuation_in_line_commands'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 28,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -836,13 +836,15 @@ $result_trees{'punctuation_in_line_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -1035,7 +1037,6 @@ center! After punc
 ';
 
 $result_sectioning{'punctuation_in_line_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1050,10 +1051,15 @@ $result_sectioning{'punctuation_in_line_commands'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'punctuation_in_line_commands'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'punctuation_in_line_commands'};
 
@@ -1065,7 +1071,9 @@ $result_nodes{'punctuation_in_line_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'node_0021-After-punc',
@@ -1103,7 +1111,9 @@ $result_floats{'punctuation_in_line_commands'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 0
+          'structure' => {
+            'level' => 0
+          }
         },
         'normalized' => 'float-label_0021-After-punc',
         'shortcaption' => {
diff --git a/tp/t/results/coverage_braces/footnote_no_node.pl 
b/tp/t/results/coverage_braces/footnote_no_node.pl
index 2782e2c1ff..a43f3cbf84 100644
--- a/tp/t/results/coverage_braces/footnote_no_node.pl
+++ b/tp/t/results/coverage_braces/footnote_no_node.pl
@@ -84,13 +84,15 @@ $result_trees{'footnote_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -121,17 +123,21 @@ F.
 ';
 
 $result_sectioning{'footnote_no_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'footnote_no_node'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'footnote_no_node'};
 
diff --git a/tp/t/results/coverage_braces/heading_in_footnote.pl 
b/tp/t/results/coverage_braces/heading_in_footnote.pl
index 5e705dc312..836b099806 100644
--- a/tp/t/results/coverage_braces/heading_in_footnote.pl
+++ b/tp/t/results/coverage_braces/heading_in_footnote.pl
@@ -51,13 +51,13 @@ $result_trees{'heading_in_footnote'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 2,
                       'line_nr' => {
                         'file_name' => '',
                         'line_nr' => 3,
                         'macro' => ''
                       },
-                      'parent' => {}
+                      'parent' => {},
+                      'structure' => {}
                     },
                     {
                       'args' => [
diff --git a/tp/t/results/coverage_braces/two_footnotes_in_nodes.pl 
b/tp/t/results/coverage_braces/two_footnotes_in_nodes.pl
index 02bf913fa7..004a8d582c 100644
--- a/tp/t/results/coverage_braces/two_footnotes_in_nodes.pl
+++ b/tp/t/results/coverage_braces/two_footnotes_in_nodes.pl
@@ -330,13 +330,15 @@ $result_trees{'two_footnotes_in_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -540,14 +542,16 @@ $result_trees{'two_footnotes_in_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -682,7 +686,6 @@ D
 ';
 
 $result_sectioning{'two_footnotes_in_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -696,7 +699,6 @@ $result_sectioning{'two_footnotes_in_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -710,16 +712,24 @@ $result_sectioning{'two_footnotes_in_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0];
 
$result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0];
@@ -734,7 +744,9 @@ $result_nodes{'two_footnotes_in_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -747,8 +759,10 @@ $result_nodes{'two_footnotes_in_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/coverage_braces/two_footnotes_in_nodes_separate.pl 
b/tp/t/results/coverage_braces/two_footnotes_in_nodes_separate.pl
index 405790e344..b4f6a72dfb 100644
--- a/tp/t/results/coverage_braces/two_footnotes_in_nodes_separate.pl
+++ b/tp/t/results/coverage_braces/two_footnotes_in_nodes_separate.pl
@@ -362,13 +362,15 @@ $result_trees{'two_footnotes_in_nodes_separate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -572,14 +574,16 @@ $result_trees{'two_footnotes_in_nodes_separate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -718,7 +722,6 @@ D
 ';
 
 $result_sectioning{'two_footnotes_in_nodes_separate'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -732,7 +735,6 @@ $result_sectioning{'two_footnotes_in_nodes_separate'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -746,16 +748,24 @@ $result_sectioning{'two_footnotes_in_nodes_separate'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'two_footnotes_in_nodes_separate'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'two_footnotes_in_nodes_separate'}{'section_childs'}[0];
 
$result_sectioning{'two_footnotes_in_nodes_separate'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'two_footnotes_in_nodes_separate'}{'section_childs'}[0];
@@ -770,7 +780,9 @@ $result_nodes{'two_footnotes_in_nodes_separate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -783,8 +795,10 @@ $result_nodes{'two_footnotes_in_nodes_separate'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/def/all_commands_delimiters_printindex.pl 
b/tp/t/results/def/all_commands_delimiters_printindex.pl
index ad9bd6ae46..22f7951fa4 100644
--- a/tp/t/results/def/all_commands_delimiters_printindex.pl
+++ b/tp/t/results/def/all_commands_delimiters_printindex.pl
@@ -13474,13 +13474,13 @@ $result_trees{'all_commands_delimiters_printindex'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 153,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
@@ -13540,13 +13540,13 @@ $result_trees{'all_commands_delimiters_printindex'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 156,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
@@ -13606,13 +13606,13 @@ $result_trees{'all_commands_delimiters_printindex'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 159,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
diff --git a/tp/t/results/def/all_commands_printindex.pl 
b/tp/t/results/def/all_commands_printindex.pl
index d5e0312acc..863a66ccf4 100644
--- a/tp/t/results/def/all_commands_printindex.pl
+++ b/tp/t/results/def/all_commands_printindex.pl
@@ -4557,13 +4557,13 @@ $result_trees{'all_commands_printindex'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 110,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
@@ -4623,13 +4623,13 @@ $result_trees{'all_commands_printindex'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 113,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
@@ -4689,13 +4689,13 @@ $result_trees{'all_commands_printindex'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 116,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
diff --git a/tp/t/results/docbook_tests/multiple_documentlanguage.pl 
b/tp/t/results/docbook_tests/multiple_documentlanguage.pl
index e1ec83c270..02b959c50a 100644
--- a/tp/t/results/docbook_tests/multiple_documentlanguage.pl
+++ b/tp/t/results/docbook_tests/multiple_documentlanguage.pl
@@ -118,13 +118,15 @@ $result_trees{'multiple_documentlanguage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -225,14 +227,16 @@ $result_trees{'multiple_documentlanguage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -333,14 +337,16 @@ $result_trees{'multiple_documentlanguage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -441,14 +447,16 @@ $result_trees{'multiple_documentlanguage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => '2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -520,14 +528,16 @@ $result_trees{'multiple_documentlanguage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => '2.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -634,7 +644,6 @@ top
 ';
 
 $result_sectioning{'multiple_documentlanguage'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -648,7 +657,6 @@ $result_sectioning{'multiple_documentlanguage'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -662,9 +670,11 @@ $result_sectioning{'multiple_documentlanguage'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -680,7 +690,6 @@ $result_sectioning{'multiple_documentlanguage'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -695,9 +704,11 @@ $result_sectioning{'multiple_documentlanguage'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -711,21 +722,32 @@ $result_sectioning{'multiple_documentlanguage'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'multiple_documentlanguage'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'multiple_documentlanguage'}{'section_childs'}[0];
 
$result_sectioning{'multiple_documentlanguage'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'multiple_documentlanguage'}{'section_childs'}[0];
@@ -747,7 +769,9 @@ $result_nodes{'multiple_documentlanguage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -760,8 +784,10 @@ $result_nodes{'multiple_documentlanguage'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap',
       'spaces_before_argument' => ' '
@@ -774,8 +800,10 @@ $result_nodes{'multiple_documentlanguage'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chapter-fr',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/docbook_tests/special_docbook_unnumbered.pl 
b/tp/t/results/docbook_tests/special_docbook_unnumbered.pl
index 6c097bb8fb..57a18a89b0 100644
--- a/tp/t/results/docbook_tests/special_docbook_unnumbered.pl
+++ b/tp/t/results/docbook_tests/special_docbook_unnumbered.pl
@@ -386,13 +386,15 @@ $result_trees{'special_docbook_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -481,13 +483,15 @@ $result_trees{'special_docbook_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -576,13 +580,15 @@ $result_trees{'special_docbook_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -671,13 +677,15 @@ $result_trees{'special_docbook_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 24,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -760,14 +768,16 @@ $result_trees{'special_docbook_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 29,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -947,7 +957,6 @@ Ack!
 ';
 
 $result_sectioning{'special_docbook_unnumbered'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -961,7 +970,6 @@ $result_sectioning{'special_docbook_unnumbered'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'unnumbered',
@@ -975,8 +983,10 @@ $result_sectioning{'special_docbook_unnumbered'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -992,9 +1002,11 @@ $result_sectioning{'special_docbook_unnumbered'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1010,9 +1022,11 @@ $result_sectioning{'special_docbook_unnumbered'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1028,17 +1042,25 @@ $result_sectioning{'special_docbook_unnumbered'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'special_docbook_unnumbered'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'special_docbook_unnumbered'}{'section_childs'}[0];
 
$result_sectioning{'special_docbook_unnumbered'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'special_docbook_unnumbered'}{'section_childs'}[0];
@@ -1065,7 +1087,9 @@ $result_nodes{'special_docbook_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1078,7 +1102,9 @@ $result_nodes{'special_docbook_unnumbered'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Dedication',
       'spaces_before_argument' => ' '
@@ -1091,7 +1117,9 @@ $result_nodes{'special_docbook_unnumbered'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'preface',
         'spaces_before_argument' => ' '
@@ -1104,7 +1132,9 @@ $result_nodes{'special_docbook_unnumbered'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'colophon',
           'spaces_before_argument' => ' '
@@ -1117,8 +1147,10 @@ $result_nodes{'special_docbook_unnumbered'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'acknowledgements',
             'spaces_before_argument' => ' '
diff --git a/tp/t/results/float/complex_float.pl 
b/tp/t/results/float/complex_float.pl
index bfc96a70a8..e9040930f8 100644
--- a/tp/t/results/float/complex_float.pl
+++ b/tp/t/results/float/complex_float.pl
@@ -2485,13 +2485,15 @@ $result_trees{'complex_float'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -3818,14 +3820,16 @@ $result_trees{'complex_float'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 92,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -4563,7 +4567,6 @@ text with a lot of features.
 ';
 
 $result_sectioning{'complex_float'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -4577,7 +4580,6 @@ $result_sectioning{'complex_float'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -4591,16 +4593,24 @@ $result_sectioning{'complex_float'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'complex_float'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'complex_float'}{'section_childs'}[0];
 
$result_sectioning{'complex_float'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'complex_float'}{'section_childs'}[0];
@@ -4615,7 +4625,9 @@ $result_nodes{'complex_float'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -4628,8 +4640,10 @@ $result_nodes{'complex_float'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -4706,7 +4720,9 @@ $result_floats{'complex_float'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 0
+          'structure' => {
+            'level' => 0
+          }
         },
         'normalized' => 'text-with-a-lot-of-features',
         'shortcaption' => {
@@ -4750,8 +4766,10 @@ $result_floats{'complex_float'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'float-with-a-lot-of-features-and-no-shortcaption',
         'spaces_before_argument' => ' ',
diff --git a/tp/t/results/float/float_copying.pl 
b/tp/t/results/float/float_copying.pl
index 2d42d808f3..6ff9dc9000 100644
--- a/tp/t/results/float/float_copying.pl
+++ b/tp/t/results/float/float_copying.pl
@@ -823,13 +823,15 @@ $result_trees{'float_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 27,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {},
     {
@@ -1003,14 +1005,16 @@ $result_trees{'float_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 36,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1223,7 +1227,6 @@ Appendix A Copying and floats
 ';
 
 $result_sectioning{'float_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1237,7 +1240,6 @@ $result_sectioning{'float_copying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'appendix',
@@ -1252,16 +1254,24 @@ $result_sectioning{'float_copying'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'float_copying'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'float_copying'}{'section_childs'}[0];
 
$result_sectioning{'float_copying'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'float_copying'}{'section_childs'}[0];
@@ -1276,7 +1286,9 @@ $result_nodes{'float_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1289,8 +1301,10 @@ $result_nodes{'float_copying'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 'A'
+        'number' => 'A',
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'Copying-and-floats',
diff --git a/tp/t/results/float/numbering_captions_listoffloats.pl 
b/tp/t/results/float/numbering_captions_listoffloats.pl
index 34315b043f..a2abd0b489 100644
--- a/tp/t/results/float/numbering_captions_listoffloats.pl
+++ b/tp/t/results/float/numbering_captions_listoffloats.pl
@@ -1659,13 +1659,15 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2799,14 +2801,16 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 65,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -2991,14 +2995,16 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 102,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3527,13 +3533,15 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 111,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3786,13 +3794,15 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 130,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -4149,14 +4159,16 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 140,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -4575,13 +4587,15 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 152,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -4834,14 +4848,16 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 168,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5487,13 +5503,15 @@ $result_trees{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 178,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6739,7 +6757,6 @@ A ref to float without type label but no type.
 ';
 
 $result_sectioning{'numbering_captions_listoffloats'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -6753,7 +6770,6 @@ $result_sectioning{'numbering_captions_listoffloats'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -6767,7 +6783,6 @@ $result_sectioning{'numbering_captions_listoffloats'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -6782,12 +6797,17 @@ $result_sectioning{'numbering_captions_listoffloats'} = 
{
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6803,7 +6823,6 @@ $result_sectioning{'numbering_captions_listoffloats'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_childs' => [
             {
               'cmdname' => 'section',
@@ -6817,12 +6836,17 @@ $result_sectioning{'numbering_captions_listoffloats'} = 
{
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6838,7 +6862,6 @@ $result_sectioning{'numbering_captions_listoffloats'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -6853,12 +6876,17 @@ $result_sectioning{'numbering_captions_listoffloats'} = 
{
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6874,10 +6902,12 @@ $result_sectioning{'numbering_captions_listoffloats'} = 
{
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6893,16 +6923,24 @@ $result_sectioning{'numbering_captions_listoffloats'} = 
{
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'numbering_captions_listoffloats'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'numbering_captions_listoffloats'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'numbering_captions_listoffloats'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'numbering_captions_listoffloats'}{'section_childs'}[0];
@@ -6936,7 +6974,9 @@ $result_nodes{'numbering_captions_listoffloats'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -6949,8 +6989,10 @@ $result_nodes{'numbering_captions_listoffloats'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -6963,8 +7005,10 @@ $result_nodes{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -6994,7 +7038,9 @@ $result_nodes{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'Unnumbered',
         'spaces_before_argument' => ' '
@@ -7007,7 +7053,9 @@ $result_nodes{'numbering_captions_listoffloats'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'Section-within-unnumbered',
           'spaces_before_argument' => ' '
@@ -7037,8 +7085,10 @@ $result_nodes{'numbering_captions_listoffloats'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 2
+            'number' => 2,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'Chapter-with-unnumbsubsec',
           'spaces_before_argument' => ' '
@@ -7051,7 +7101,9 @@ $result_nodes{'numbering_captions_listoffloats'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'unnumbered-sec',
             'spaces_before_argument' => ' '
@@ -7081,8 +7133,10 @@ $result_nodes{'numbering_captions_listoffloats'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 'A'
+              'number' => 'A',
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'Appendix-for-float',
             'spaces_before_argument' => ' '
@@ -7095,7 +7149,9 @@ $result_nodes{'numbering_captions_listoffloats'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 'list-of-floats',
               'spaces_before_argument' => ' '
@@ -7286,7 +7342,9 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 0
+          'structure' => {
+            'level' => 0
+          }
         },
         'normalized' => 'label-but-no-type',
         'shortcaption' => {
@@ -7422,8 +7480,10 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'label-but-no-type-in-chapter',
         'shortcaption' => {
@@ -7461,7 +7521,9 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'label-but-no-type-in-unnumbered',
         'shortcaption' => {
@@ -7499,7 +7561,9 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'label-but-no-type-in-unnumbered-subsec-in-chapter',
         'shortcaption' => {
@@ -7669,8 +7733,10 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'text-in-section',
         'spaces_before_argument' => ' ',
@@ -7744,7 +7810,9 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'Section-within-unnumbered-float',
         'shortcaption' => {
@@ -7787,8 +7855,10 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'Chapter-with-subsec-float',
         'shortcaption' => {
@@ -7868,8 +7938,10 @@ $result_floats{'numbering_captions_listoffloats'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 'A'
+          'number' => 'A',
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'appendix-sec-float',
         'shortcaption' => {
diff --git a/tp/t/results/formats_encodings/accent.pl 
b/tp/t/results/formats_encodings/accent.pl
index 6633609d0e..a5198408bd 100644
--- a/tp/t/results/formats_encodings/accent.pl
+++ b/tp/t/results/formats_encodings/accent.pl
@@ -2558,13 +2558,15 @@ $result_trees{'accent'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -3120,7 +3122,6 @@ should be dotless j": j"
 ';
 
 $result_sectioning{'accent'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3134,10 +3135,15 @@ $result_sectioning{'accent'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'accent'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'accent'};
 
@@ -3149,7 +3155,9 @@ $result_nodes{'accent'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top-node',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/accent_enable_encoding.pl 
b/tp/t/results/formats_encodings/accent_enable_encoding.pl
index 4fb04e8a0d..469e0a8088 100644
--- a/tp/t/results/formats_encodings/accent_enable_encoding.pl
+++ b/tp/t/results/formats_encodings/accent_enable_encoding.pl
@@ -2558,13 +2558,15 @@ $result_trees{'accent_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -3120,7 +3122,6 @@ should be dotless j": j"
 ';
 
 $result_sectioning{'accent_enable_encoding'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3134,10 +3135,15 @@ $result_sectioning{'accent_enable_encoding'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'accent_enable_encoding'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'accent_enable_encoding'};
 
@@ -3149,7 +3155,9 @@ $result_nodes{'accent_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top-node',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/accentenc.pl 
b/tp/t/results/formats_encodings/accentenc.pl
index d23c1cedee..5f491a06b3 100644
--- a/tp/t/results/formats_encodings/accentenc.pl
+++ b/tp/t/results/formats_encodings/accentenc.pl
@@ -2596,13 +2596,15 @@ $result_trees{'accentenc'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -3165,7 +3167,6 @@ should be dotless j": j"
 ';
 
 $result_sectioning{'accentenc'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3179,10 +3180,15 @@ $result_sectioning{'accentenc'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'accentenc'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'accentenc'};
 
@@ -3194,7 +3200,9 @@ $result_nodes{'accentenc'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top-node',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/accentenc_enable_encoding.pl 
b/tp/t/results/formats_encodings/accentenc_enable_encoding.pl
index 4df5d8b492..ecaebf3a7a 100644
--- a/tp/t/results/formats_encodings/accentenc_enable_encoding.pl
+++ b/tp/t/results/formats_encodings/accentenc_enable_encoding.pl
@@ -2596,13 +2596,15 @@ $result_trees{'accentenc_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -3165,7 +3167,6 @@ should be dotless j": j"
 ';
 
 $result_sectioning{'accentenc_enable_encoding'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3179,10 +3180,15 @@ $result_sectioning{'accentenc_enable_encoding'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'accentenc_enable_encoding'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'accentenc_enable_encoding'};
 
@@ -3194,7 +3200,9 @@ $result_nodes{'accentenc_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top-node',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs.pl 
b/tp/t/results/formats_encodings/at_commands_in_refs.pl
index 4d1dcdc0e0..8356d73408 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs.pl
@@ -4759,13 +4759,15 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -4877,14 +4879,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 35,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5116,14 +5120,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 38,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5405,14 +5411,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 41,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5786,14 +5794,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 44,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6121,14 +6131,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 47,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6318,14 +6330,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 50,
         'macro' => ''
       },
       'number' => 6,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6699,14 +6713,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 53,
         'macro' => ''
       },
       'number' => 7,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6988,14 +7004,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 56,
         'macro' => ''
       },
       'number' => 8,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -7691,14 +7709,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 59,
         'macro' => ''
       },
       'number' => 9,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -8402,14 +8422,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => '  '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 62,
         'macro' => ''
       },
       'number' => 10,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -8853,14 +8875,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 65,
         'macro' => ''
       },
       'number' => 11,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9152,14 +9176,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 12,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9487,14 +9513,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 71,
         'macro' => ''
       },
       'number' => 13,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9822,14 +9850,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 74,
         'macro' => ''
       },
       'number' => 14,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9901,14 +9931,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 77,
         'macro' => ''
       },
       'number' => 15,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10166,14 +10198,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 80,
         'macro' => ''
       },
       'number' => 16,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10431,14 +10465,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 84,
         'macro' => ''
       },
       'number' => 17,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10660,14 +10696,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 88,
         'macro' => ''
       },
       'number' => 18,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10923,14 +10961,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 92,
         'macro' => ''
       },
       'number' => 19,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -11046,14 +11086,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 97,
         'macro' => ''
       },
       'number' => 20,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -11713,14 +11755,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 101,
         'macro' => ''
       },
       'number' => 21,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12208,14 +12252,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 104,
         'macro' => ''
       },
       'number' => 22,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12333,14 +12379,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 107,
         'macro' => ''
       },
       'number' => 23,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12504,14 +12552,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 110,
         'macro' => ''
       },
       'number' => 24,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12619,14 +12669,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 113,
         'macro' => ''
       },
       'number' => 25,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12790,14 +12842,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 116,
         'macro' => ''
       },
       'number' => 26,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -17460,14 +17514,16 @@ $result_trees{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 119,
         'macro' => ''
       },
       'number' => 27,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -21076,7 +21132,6 @@ http://somewhere_aaa url (text) ls
 ';
 
 $result_sectioning{'at_commands_in_refs'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -21090,7 +21145,6 @@ $result_sectioning{'at_commands_in_refs'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -21104,9 +21158,11 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21122,10 +21178,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21141,10 +21199,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21160,10 +21220,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21179,10 +21241,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21198,10 +21262,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 6,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21217,10 +21283,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 7,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21236,10 +21304,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 8,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21255,10 +21325,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 9,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21274,10 +21346,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => '  '
           },
-          'level' => 1,
           'number' => 10,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21293,10 +21367,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 11,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21312,10 +21388,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 12,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21331,10 +21409,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 13,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21350,10 +21430,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 14,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21369,10 +21451,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 15,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21388,10 +21472,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 16,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21407,10 +21493,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 17,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21426,10 +21514,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 18,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21445,10 +21535,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 19,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21464,10 +21556,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 20,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21483,10 +21577,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 21,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21502,10 +21598,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 22,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21521,10 +21619,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 23,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21540,10 +21640,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 24,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21559,10 +21661,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 25,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21578,10 +21682,12 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 26,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21597,17 +21703,25 @@ $result_sectioning{'at_commands_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 27,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'at_commands_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'at_commands_in_refs'}{'section_childs'}[0];
 
$result_sectioning{'at_commands_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'at_commands_in_refs'}{'section_childs'}[0];
@@ -21726,7 +21840,9 @@ $result_nodes{'at_commands_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -21739,8 +21855,10 @@ $result_nodes{'at_commands_in_refs'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => '-_007b-_007d',
       'spaces_before_argument' => ' '
@@ -21753,8 +21871,10 @@ $result_nodes{'at_commands_in_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => '----_0021---_002e--_002e-_003f-_0040',
         'spaces_before_argument' => ' '
@@ -21767,8 +21887,10 @@ $result_nodes{'at_commands_in_refs'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => '_0040-_007b-_007d-_005c-_0023',
           'spaces_before_argument' => ' '
@@ -21781,8 +21903,10 @@ $result_nodes{'at_commands_in_refs'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 
'LaTeX-TeX-_2022-_002c-_00a9-_2026-_002e_002e_002e',
             'spaces_before_argument' => ' '
@@ -21795,8 +21919,10 @@ $result_nodes{'at_commands_in_refs'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 
'_2261-error_002d_002d_003e-_20ac-_00a1-_21a6-_2212',
               'spaces_before_argument' => ' '
@@ -21809,8 +21935,10 @@ $result_nodes{'at_commands_in_refs'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 1,
-                  'number' => 6
+                  'number' => 6,
+                  'structure' => {
+                    'level' => 1
+                  }
                 },
                 'normalized' => '_2265-_2264-_2192',
                 'spaces_before_argument' => ' '
@@ -21823,8 +21951,10 @@ $result_nodes{'at_commands_in_refs'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 7
+                    'number' => 7,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'normalized' => '_00aa-_00ba-_2605-_00a3-_22a3-_00bf-_00ae',
                   'spaces_before_argument' => ' '
@@ -21837,8 +21967,10 @@ $result_nodes{'at_commands_in_refs'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 1,
-                      'number' => 8
+                      'number' => 8,
+                      'structure' => {
+                        'level' => 1
+                      }
                     },
                     'normalized' => '_21d2-_00b0-a-b--_00e5',
                     'spaces_before_argument' => ' '
@@ -21851,8 +21983,10 @@ $result_nodes{'at_commands_in_refs'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 1,
-                        'number' => 9
+                        'number' => 9,
+                        'structure' => {
+                          'level' => 1
+                        }
                       },
                       'normalized' => 
'_00c5-_00e6-_0153-_00c6-_0152-_00f8-_00d8-_00df-_0142-_0141-_00d0-_00f0-_00de-_00fe',
                       'spaces_before_argument' => ' '
@@ -21865,8 +21999,10 @@ $result_nodes{'at_commands_in_refs'} = {
                           'extra' => {
                             'spaces_before_argument' => '  '
                           },
-                          'level' => 1,
-                          'number' => 10
+                          'number' => 10,
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'normalized' => 
'_00e4-_1ebd-_00ee-_00e2-_00e0-_00e9-_00e7-_0113-e_030a-e_030b-_0119',
                         'spaces_before_argument' => ' '
@@ -21879,8 +22015,10 @@ $result_nodes{'at_commands_in_refs'} = {
                             'extra' => {
                               'spaces_before_argument' => ' '
                             },
-                            'level' => 1,
-                            'number' => 11
+                            'number' => 11,
+                            'structure' => {
+                              'level' => 1
+                            }
                           },
                           'normalized' => 
'_0117-_0115-e_0332-_1eb9-_011b-j-e_0361e',
                           'spaces_before_argument' => ' '
@@ -21893,8 +22031,10 @@ $result_nodes{'at_commands_in_refs'} = {
                               'extra' => {
                                 'spaces_before_argument' => ' '
                               },
-                              'level' => 1,
-                              'number' => 12
+                              'number' => 12,
+                              'structure' => {
+                                'level' => 1
+                              }
                             },
                             'normalized' => '_0131-_1e14-_1e08',
                             'spaces_before_argument' => ' '
@@ -21907,8 +22047,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1,
-                                'number' => 13
+                                'number' => 13,
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'normalized' => 
'_201c-_201d-_2018-_2019-_201e-_201a',
                               'spaces_before_argument' => ' '
@@ -21921,8 +22063,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                   'extra' => {
                                     'spaces_before_argument' => ' '
                                   },
-                                  'level' => 1,
-                                  'number' => 14
+                                  'number' => 14,
+                                  'structure' => {
+                                    'level' => 1
+                                  }
                                 },
                                 'normalized' => 
'_00ab-_00bb-_00ab-_00bb-_2039-_203a',
                                 'spaces_before_argument' => ' '
@@ -21935,8 +22079,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                     'extra' => {
                                       'spaces_before_argument' => ' '
                                     },
-                                    'level' => 1,
-                                    'number' => 15
+                                    'number' => 15,
+                                    'structure' => {
+                                      'level' => 1
+                                    }
                                   },
                                   'normalized' => 
'_0060_0060-_0027_0027-_002d_002d_002d-_002d_002d-_0060-_0027',
                                   'spaces_before_argument' => ' '
@@ -21949,8 +22095,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 1,
-                                      'number' => 16
+                                      'number' => 16,
+                                      'structure' => {
+                                        'level' => 1
+                                      }
                                     },
                                     'normalized' => 'AAA-AAA-BBB',
                                     'spaces_before_argument' => ' '
@@ -21963,8 +22111,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                         'extra' => {
                                           'spaces_before_argument' => ' '
                                         },
-                                        'level' => 1,
-                                        'number' => 17
+                                        'number' => 17,
+                                        'structure' => {
+                                          'level' => 1
+                                        }
                                       },
                                       'normalized' => 'CCC-CCC-DDD',
                                       'spaces_before_argument' => ' '
@@ -21977,8 +22127,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                           'extra' => {
                                             'spaces_before_argument' => ' '
                                           },
-                                          'level' => 1,
-                                          'number' => 18
+                                          'number' => 18,
+                                          'structure' => {
+                                            'level' => 1
+                                          }
                                         },
                                         'normalized' => 
'someone_0040somewher-no_005fexplain_0040there',
                                         'spaces_before_argument' => ' '
@@ -21991,8 +22143,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 1,
-                                            'number' => 19
+                                            'number' => 19,
+                                            'structure' => {
+                                              'level' => 1
+                                            }
                                           },
                                           'normalized' => 
'f_002d_002dile1-f_002d_002dile',
                                           'spaces_before_argument' => ' '
@@ -22005,8 +22159,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                               'extra' => {
                                                 'spaces_before_argument' => ' '
                                               },
-                                              'level' => 1,
-                                              'number' => 20
+                                              'number' => 20,
+                                              'structure' => {
+                                                'level' => 1
+                                              }
                                             },
                                             'normalized' => 
'-_0040-_007b_007d-_002e-',
                                             'spaces_before_argument' => ' '
@@ -22019,8 +22175,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                                 'extra' => {
                                                   'spaces_before_argument' => 
' '
                                                 },
-                                                'level' => 1,
-                                                'number' => 21
+                                                'number' => 21,
+                                                'structure' => {
+                                                  'level' => 1
+                                                }
                                               },
                                               'normalized' => 
'cite-asis-in-_0040w-b-in-r-SC-str-t-var-dfn-i',
                                               'spaces_before_argument' => ' '
@@ -22033,8 +22191,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                                   'extra' => {
                                                     'spaces_before_argument' 
=> ' '
                                                   },
-                                                  'level' => 1,
-                                                  'number' => 22
+                                                  'number' => 22,
+                                                  'structure' => {
+                                                    'level' => 1
+                                                  }
                                                 },
                                                 'normalized' => 
'env-code-option-samp-command-file-C_002dx-ESC',
                                                 'spaces_before_argument' => ' '
@@ -22047,8 +22207,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                                     'extra' => {
                                                       'spaces_before_argument' 
=> ' '
                                                     },
-                                                    'level' => 1,
-                                                    'number' => 23
+                                                    'number' => 23,
+                                                    'structure' => {
+                                                      'level' => 1
+                                                    }
                                                   },
                                                   'normalized' => '8_002e27in',
                                                   'spaces_before_argument' => 
' '
@@ -22061,8 +22223,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                                       'extra' => {
                                                         
'spaces_before_argument' => ' '
                                                       },
-                                                      'level' => 1,
-                                                      'number' => 24
+                                                      'number' => 24,
+                                                      'structure' => {
+                                                        'level' => 1
+                                                      }
                                                     },
                                                     'normalized' => 
'sansserif-slanted',
                                                     'spaces_before_argument' 
=> ' '
@@ -22075,8 +22239,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                                         'extra' => {
                                                           
'spaces_before_argument' => ' '
                                                         },
-                                                        'level' => 1,
-                                                        'number' => 25
+                                                        'number' => 25,
+                                                        'structure' => {
+                                                          'level' => 1
+                                                        }
                                                       },
                                                       'normalized' => 
'indicateurl',
                                                       'spaces_before_argument' 
=> ' '
@@ -22089,8 +22255,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                                           'extra' => {
                                                             
'spaces_before_argument' => ' '
                                                           },
-                                                          'level' => 1,
-                                                          'number' => 26
+                                                          'number' => 26,
+                                                          'structure' => {
+                                                            'level' => 1
+                                                          }
                                                         },
                                                         'normalized' => 
'gH-3rd',
                                                         
'spaces_before_argument' => ' '
@@ -22103,8 +22271,10 @@ $result_nodes{'at_commands_in_refs'} = {
                                                             'extra' => {
                                                               
'spaces_before_argument' => ' '
                                                             },
-                                                            'level' => 1,
-                                                            'number' => 27
+                                                            'number' => 27,
+                                                            'structure' => {
+                                                              'level' => 1
+                                                            }
                                                           },
                                                           'normalized' => 
'http_003a_002f_002fsomewhere_005faaa-url-_002fman_002ecgi_002f1_002fls',
                                                           
'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl 
b/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl
index fa6094fb50..7789e67561 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs_latin1.pl
@@ -4826,13 +4826,15 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -4944,14 +4946,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 38,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5183,14 +5187,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 41,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5472,14 +5478,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 44,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5853,14 +5861,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 47,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6188,14 +6198,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 50,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6385,14 +6397,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 53,
         'macro' => ''
       },
       'number' => 6,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6766,14 +6780,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 56,
         'macro' => ''
       },
       'number' => 7,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -7055,14 +7071,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 59,
         'macro' => ''
       },
       'number' => 8,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -7758,14 +7776,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 62,
         'macro' => ''
       },
       'number' => 9,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -8469,14 +8489,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => '  '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 65,
         'macro' => ''
       },
       'number' => 10,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -8920,14 +8942,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 11,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9219,14 +9243,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 71,
         'macro' => ''
       },
       'number' => 12,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9554,14 +9580,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 74,
         'macro' => ''
       },
       'number' => 13,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9889,14 +9917,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 77,
         'macro' => ''
       },
       'number' => 14,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9968,14 +9998,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 80,
         'macro' => ''
       },
       'number' => 15,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10233,14 +10265,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 83,
         'macro' => ''
       },
       'number' => 16,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10498,14 +10532,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 87,
         'macro' => ''
       },
       'number' => 17,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10727,14 +10763,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 91,
         'macro' => ''
       },
       'number' => 18,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10990,14 +11028,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 95,
         'macro' => ''
       },
       'number' => 19,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -11113,14 +11153,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 100,
         'macro' => ''
       },
       'number' => 20,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -11780,14 +11822,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 104,
         'macro' => ''
       },
       'number' => 21,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12275,14 +12319,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 107,
         'macro' => ''
       },
       'number' => 22,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12400,14 +12446,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 110,
         'macro' => ''
       },
       'number' => 23,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12571,14 +12619,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 113,
         'macro' => ''
       },
       'number' => 24,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12686,14 +12736,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 116,
         'macro' => ''
       },
       'number' => 25,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12857,14 +12909,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 119,
         'macro' => ''
       },
       'number' => 26,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -17527,14 +17581,16 @@ $result_trees{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 122,
         'macro' => ''
       },
       'number' => 27,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -21154,7 +21210,6 @@ http://somewhere_aaa url (text) ls
 ';
 
 $result_sectioning{'at_commands_in_refs_latin1'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -21168,7 +21223,6 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -21182,9 +21236,11 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21200,10 +21256,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21219,10 +21277,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21238,10 +21298,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21257,10 +21319,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21276,10 +21340,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 6,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21295,10 +21361,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 7,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21314,10 +21382,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 8,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21333,10 +21403,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 9,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21352,10 +21424,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => '  '
           },
-          'level' => 1,
           'number' => 10,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21371,10 +21445,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 11,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21390,10 +21466,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 12,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21409,10 +21487,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 13,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21428,10 +21508,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 14,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21447,10 +21529,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 15,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21466,10 +21550,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 16,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21485,10 +21571,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 17,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21504,10 +21592,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 18,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21523,10 +21613,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 19,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21542,10 +21634,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 20,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21561,10 +21655,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 21,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21580,10 +21676,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 22,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21599,10 +21697,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 23,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21618,10 +21718,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 24,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21637,10 +21739,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 25,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21656,10 +21760,12 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 26,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21675,17 +21781,25 @@ $result_sectioning{'at_commands_in_refs_latin1'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 27,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'at_commands_in_refs_latin1'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'at_commands_in_refs_latin1'}{'section_childs'}[0];
 
$result_sectioning{'at_commands_in_refs_latin1'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'at_commands_in_refs_latin1'}{'section_childs'}[0];
@@ -21804,7 +21918,9 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -21817,8 +21933,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => '-_007b-_007d',
       'spaces_before_argument' => ' '
@@ -21831,8 +21949,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => '----_0021---_002e--_002e-_003f-_0040',
         'spaces_before_argument' => ' '
@@ -21845,8 +21965,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => '_0040-_007b-_007d-_005c-_0023',
           'spaces_before_argument' => ' '
@@ -21859,8 +21981,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 
'LaTeX-TeX-_2022-_002c-_00a9-_2026-_002e_002e_002e',
             'spaces_before_argument' => ' '
@@ -21873,8 +21997,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 
'_2261-error_002d_002d_003e-_20ac-_00a1-_21a6-_2212',
               'spaces_before_argument' => ' '
@@ -21887,8 +22013,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 1,
-                  'number' => 6
+                  'number' => 6,
+                  'structure' => {
+                    'level' => 1
+                  }
                 },
                 'normalized' => '_2265-_2264-_2192',
                 'spaces_before_argument' => ' '
@@ -21901,8 +22029,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 7
+                    'number' => 7,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'normalized' => '_00aa-_00ba-_2605-_00a3-_22a3-_00bf-_00ae',
                   'spaces_before_argument' => ' '
@@ -21915,8 +22045,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 1,
-                      'number' => 8
+                      'number' => 8,
+                      'structure' => {
+                        'level' => 1
+                      }
                     },
                     'normalized' => '_21d2-_00b0-a-b--_00e5',
                     'spaces_before_argument' => ' '
@@ -21929,8 +22061,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 1,
-                        'number' => 9
+                        'number' => 9,
+                        'structure' => {
+                          'level' => 1
+                        }
                       },
                       'normalized' => 
'_00c5-_00e6-_0153-_00c6-_0152-_00f8-_00d8-_00df-_0142-_0141-_00d0-_00f0-_00de-_00fe',
                       'spaces_before_argument' => ' '
@@ -21943,8 +22077,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                           'extra' => {
                             'spaces_before_argument' => '  '
                           },
-                          'level' => 1,
-                          'number' => 10
+                          'number' => 10,
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'normalized' => 
'_00e4-_1ebd-_00ee-_00e2-_00e0-_00e9-_00e7-_0113-e_030a-e_030b-_0119',
                         'spaces_before_argument' => ' '
@@ -21957,8 +22093,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                             'extra' => {
                               'spaces_before_argument' => ' '
                             },
-                            'level' => 1,
-                            'number' => 11
+                            'number' => 11,
+                            'structure' => {
+                              'level' => 1
+                            }
                           },
                           'normalized' => 
'_0117-_0115-e_0332-_1eb9-_011b-j-e_0361e',
                           'spaces_before_argument' => ' '
@@ -21971,8 +22109,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                               'extra' => {
                                 'spaces_before_argument' => ' '
                               },
-                              'level' => 1,
-                              'number' => 12
+                              'number' => 12,
+                              'structure' => {
+                                'level' => 1
+                              }
                             },
                             'normalized' => '_0131-_1e14-_1e08',
                             'spaces_before_argument' => ' '
@@ -21985,8 +22125,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1,
-                                'number' => 13
+                                'number' => 13,
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'normalized' => 
'_201c-_201d-_2018-_2019-_201e-_201a',
                               'spaces_before_argument' => ' '
@@ -21999,8 +22141,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                   'extra' => {
                                     'spaces_before_argument' => ' '
                                   },
-                                  'level' => 1,
-                                  'number' => 14
+                                  'number' => 14,
+                                  'structure' => {
+                                    'level' => 1
+                                  }
                                 },
                                 'normalized' => 
'_00ab-_00bb-_00ab-_00bb-_2039-_203a',
                                 'spaces_before_argument' => ' '
@@ -22013,8 +22157,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                     'extra' => {
                                       'spaces_before_argument' => ' '
                                     },
-                                    'level' => 1,
-                                    'number' => 15
+                                    'number' => 15,
+                                    'structure' => {
+                                      'level' => 1
+                                    }
                                   },
                                   'normalized' => 
'_0060_0060-_0027_0027-_002d_002d_002d-_002d_002d-_0060-_0027',
                                   'spaces_before_argument' => ' '
@@ -22027,8 +22173,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 1,
-                                      'number' => 16
+                                      'number' => 16,
+                                      'structure' => {
+                                        'level' => 1
+                                      }
                                     },
                                     'normalized' => 'AAA-AAA-BBB',
                                     'spaces_before_argument' => ' '
@@ -22041,8 +22189,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                         'extra' => {
                                           'spaces_before_argument' => ' '
                                         },
-                                        'level' => 1,
-                                        'number' => 17
+                                        'number' => 17,
+                                        'structure' => {
+                                          'level' => 1
+                                        }
                                       },
                                       'normalized' => 'CCC-CCC-DDD',
                                       'spaces_before_argument' => ' '
@@ -22055,8 +22205,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                           'extra' => {
                                             'spaces_before_argument' => ' '
                                           },
-                                          'level' => 1,
-                                          'number' => 18
+                                          'number' => 18,
+                                          'structure' => {
+                                            'level' => 1
+                                          }
                                         },
                                         'normalized' => 
'someone_0040somewher-no_005fexplain_0040there',
                                         'spaces_before_argument' => ' '
@@ -22069,8 +22221,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 1,
-                                            'number' => 19
+                                            'number' => 19,
+                                            'structure' => {
+                                              'level' => 1
+                                            }
                                           },
                                           'normalized' => 
'f_002d_002dile1-f_002d_002dile',
                                           'spaces_before_argument' => ' '
@@ -22083,8 +22237,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                               'extra' => {
                                                 'spaces_before_argument' => ' '
                                               },
-                                              'level' => 1,
-                                              'number' => 20
+                                              'number' => 20,
+                                              'structure' => {
+                                                'level' => 1
+                                              }
                                             },
                                             'normalized' => 
'-_0040-_007b_007d-_002e-',
                                             'spaces_before_argument' => ' '
@@ -22097,8 +22253,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                                 'extra' => {
                                                   'spaces_before_argument' => 
' '
                                                 },
-                                                'level' => 1,
-                                                'number' => 21
+                                                'number' => 21,
+                                                'structure' => {
+                                                  'level' => 1
+                                                }
                                               },
                                               'normalized' => 
'cite-asis-in-_0040w-b-in-r-SC-str-t-var-dfn-i',
                                               'spaces_before_argument' => ' '
@@ -22111,8 +22269,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                                   'extra' => {
                                                     'spaces_before_argument' 
=> ' '
                                                   },
-                                                  'level' => 1,
-                                                  'number' => 22
+                                                  'number' => 22,
+                                                  'structure' => {
+                                                    'level' => 1
+                                                  }
                                                 },
                                                 'normalized' => 
'env-code-option-samp-command-file-C_002dx-ESC',
                                                 'spaces_before_argument' => ' '
@@ -22125,8 +22285,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                                     'extra' => {
                                                       'spaces_before_argument' 
=> ' '
                                                     },
-                                                    'level' => 1,
-                                                    'number' => 23
+                                                    'number' => 23,
+                                                    'structure' => {
+                                                      'level' => 1
+                                                    }
                                                   },
                                                   'normalized' => '8_002e27in',
                                                   'spaces_before_argument' => 
' '
@@ -22139,8 +22301,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                                       'extra' => {
                                                         
'spaces_before_argument' => ' '
                                                       },
-                                                      'level' => 1,
-                                                      'number' => 24
+                                                      'number' => 24,
+                                                      'structure' => {
+                                                        'level' => 1
+                                                      }
                                                     },
                                                     'normalized' => 
'sansserif-slanted',
                                                     'spaces_before_argument' 
=> ' '
@@ -22153,8 +22317,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                                         'extra' => {
                                                           
'spaces_before_argument' => ' '
                                                         },
-                                                        'level' => 1,
-                                                        'number' => 25
+                                                        'number' => 25,
+                                                        'structure' => {
+                                                          'level' => 1
+                                                        }
                                                       },
                                                       'normalized' => 
'indicateurl',
                                                       'spaces_before_argument' 
=> ' '
@@ -22167,8 +22333,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                                           'extra' => {
                                                             
'spaces_before_argument' => ' '
                                                           },
-                                                          'level' => 1,
-                                                          'number' => 26
+                                                          'number' => 26,
+                                                          'structure' => {
+                                                            'level' => 1
+                                                          }
                                                         },
                                                         'normalized' => 
'gH-3rd',
                                                         
'spaces_before_argument' => ' '
@@ -22181,8 +22349,10 @@ $result_nodes{'at_commands_in_refs_latin1'} = {
                                                             'extra' => {
                                                               
'spaces_before_argument' => ' '
                                                             },
-                                                            'level' => 1,
-                                                            'number' => 27
+                                                            'number' => 27,
+                                                            'structure' => {
+                                                              'level' => 1
+                                                            }
                                                           },
                                                           'normalized' => 
'http_003a_002f_002fsomewhere_005faaa-url-_002fman_002ecgi_002f1_002fls',
                                                           
'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl 
b/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl
index 92876a4465..c03cd907a7 100644
--- a/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl
+++ b/tp/t/results/formats_encodings/at_commands_in_refs_utf8.pl
@@ -4826,13 +4826,15 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -4944,14 +4946,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 38,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5183,14 +5187,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 41,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5472,14 +5478,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 44,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5853,14 +5861,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 47,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6188,14 +6198,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 50,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6385,14 +6397,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 53,
         'macro' => ''
       },
       'number' => 6,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -6766,14 +6780,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 56,
         'macro' => ''
       },
       'number' => 7,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -7055,14 +7071,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 59,
         'macro' => ''
       },
       'number' => 8,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -7758,14 +7776,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 62,
         'macro' => ''
       },
       'number' => 9,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -8469,14 +8489,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => '  '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 65,
         'macro' => ''
       },
       'number' => 10,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -8920,14 +8942,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 11,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9219,14 +9243,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 71,
         'macro' => ''
       },
       'number' => 12,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9554,14 +9580,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 74,
         'macro' => ''
       },
       'number' => 13,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9889,14 +9917,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 77,
         'macro' => ''
       },
       'number' => 14,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -9968,14 +9998,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 80,
         'macro' => ''
       },
       'number' => 15,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10233,14 +10265,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 83,
         'macro' => ''
       },
       'number' => 16,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10498,14 +10532,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 87,
         'macro' => ''
       },
       'number' => 17,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10727,14 +10763,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 91,
         'macro' => ''
       },
       'number' => 18,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -10990,14 +11028,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 95,
         'macro' => ''
       },
       'number' => 19,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -11113,14 +11153,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 100,
         'macro' => ''
       },
       'number' => 20,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -11780,14 +11822,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 104,
         'macro' => ''
       },
       'number' => 21,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12275,14 +12319,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 107,
         'macro' => ''
       },
       'number' => 22,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12400,14 +12446,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 110,
         'macro' => ''
       },
       'number' => 23,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12571,14 +12619,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 113,
         'macro' => ''
       },
       'number' => 24,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12686,14 +12736,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 116,
         'macro' => ''
       },
       'number' => 25,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -12857,14 +12909,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 119,
         'macro' => ''
       },
       'number' => 26,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -17527,14 +17581,16 @@ $result_trees{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 122,
         'macro' => ''
       },
       'number' => 27,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -21154,7 +21210,6 @@ http://somewhere_aaa url (text) ls
 ';
 
 $result_sectioning{'at_commands_in_refs_utf8'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -21168,7 +21223,6 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -21182,9 +21236,11 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21200,10 +21256,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21219,10 +21277,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21238,10 +21298,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21257,10 +21319,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21276,10 +21340,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 6,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21295,10 +21361,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 7,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21314,10 +21382,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 8,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21333,10 +21403,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 9,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21352,10 +21424,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => '  '
           },
-          'level' => 1,
           'number' => 10,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21371,10 +21445,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 11,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21390,10 +21466,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 12,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21409,10 +21487,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 13,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21428,10 +21508,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 14,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21447,10 +21529,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 15,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21466,10 +21550,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 16,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21485,10 +21571,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 17,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21504,10 +21592,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 18,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21523,10 +21613,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 19,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21542,10 +21634,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 20,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21561,10 +21655,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 21,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21580,10 +21676,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 22,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21599,10 +21697,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 23,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21618,10 +21718,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 24,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21637,10 +21739,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 25,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21656,10 +21760,12 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 26,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -21675,17 +21781,25 @@ $result_sectioning{'at_commands_in_refs_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 27,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'at_commands_in_refs_utf8'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'at_commands_in_refs_utf8'}{'section_childs'}[0];
 
$result_sectioning{'at_commands_in_refs_utf8'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'at_commands_in_refs_utf8'}{'section_childs'}[0];
@@ -21804,7 +21918,9 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -21817,8 +21933,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => '-_007b-_007d',
       'spaces_before_argument' => ' '
@@ -21831,8 +21949,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => '----_0021---_002e--_002e-_003f-_0040',
         'spaces_before_argument' => ' '
@@ -21845,8 +21965,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => '_0040-_007b-_007d-_005c-_0023',
           'spaces_before_argument' => ' '
@@ -21859,8 +21981,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 
'LaTeX-TeX-_2022-_002c-_00a9-_2026-_002e_002e_002e',
             'spaces_before_argument' => ' '
@@ -21873,8 +21997,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 
'_2261-error_002d_002d_003e-_20ac-_00a1-_21a6-_2212',
               'spaces_before_argument' => ' '
@@ -21887,8 +22013,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 1,
-                  'number' => 6
+                  'number' => 6,
+                  'structure' => {
+                    'level' => 1
+                  }
                 },
                 'normalized' => '_2265-_2264-_2192',
                 'spaces_before_argument' => ' '
@@ -21901,8 +22029,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 7
+                    'number' => 7,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'normalized' => '_00aa-_00ba-_2605-_00a3-_22a3-_00bf-_00ae',
                   'spaces_before_argument' => ' '
@@ -21915,8 +22045,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 1,
-                      'number' => 8
+                      'number' => 8,
+                      'structure' => {
+                        'level' => 1
+                      }
                     },
                     'normalized' => '_21d2-_00b0-a-b--_00e5',
                     'spaces_before_argument' => ' '
@@ -21929,8 +22061,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 1,
-                        'number' => 9
+                        'number' => 9,
+                        'structure' => {
+                          'level' => 1
+                        }
                       },
                       'normalized' => 
'_00c5-_00e6-_0153-_00c6-_0152-_00f8-_00d8-_00df-_0142-_0141-_00d0-_00f0-_00de-_00fe',
                       'spaces_before_argument' => ' '
@@ -21943,8 +22077,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                           'extra' => {
                             'spaces_before_argument' => '  '
                           },
-                          'level' => 1,
-                          'number' => 10
+                          'number' => 10,
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'normalized' => 
'_00e4-_1ebd-_00ee-_00e2-_00e0-_00e9-_00e7-_0113-e_030a-e_030b-_0119',
                         'spaces_before_argument' => ' '
@@ -21957,8 +22093,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                             'extra' => {
                               'spaces_before_argument' => ' '
                             },
-                            'level' => 1,
-                            'number' => 11
+                            'number' => 11,
+                            'structure' => {
+                              'level' => 1
+                            }
                           },
                           'normalized' => 
'_0117-_0115-e_0332-_1eb9-_011b-j-e_0361e',
                           'spaces_before_argument' => ' '
@@ -21971,8 +22109,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                               'extra' => {
                                 'spaces_before_argument' => ' '
                               },
-                              'level' => 1,
-                              'number' => 12
+                              'number' => 12,
+                              'structure' => {
+                                'level' => 1
+                              }
                             },
                             'normalized' => '_0131-_1e14-_1e08',
                             'spaces_before_argument' => ' '
@@ -21985,8 +22125,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1,
-                                'number' => 13
+                                'number' => 13,
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'normalized' => 
'_201c-_201d-_2018-_2019-_201e-_201a',
                               'spaces_before_argument' => ' '
@@ -21999,8 +22141,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                   'extra' => {
                                     'spaces_before_argument' => ' '
                                   },
-                                  'level' => 1,
-                                  'number' => 14
+                                  'number' => 14,
+                                  'structure' => {
+                                    'level' => 1
+                                  }
                                 },
                                 'normalized' => 
'_00ab-_00bb-_00ab-_00bb-_2039-_203a',
                                 'spaces_before_argument' => ' '
@@ -22013,8 +22157,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                     'extra' => {
                                       'spaces_before_argument' => ' '
                                     },
-                                    'level' => 1,
-                                    'number' => 15
+                                    'number' => 15,
+                                    'structure' => {
+                                      'level' => 1
+                                    }
                                   },
                                   'normalized' => 
'_0060_0060-_0027_0027-_002d_002d_002d-_002d_002d-_0060-_0027',
                                   'spaces_before_argument' => ' '
@@ -22027,8 +22173,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 1,
-                                      'number' => 16
+                                      'number' => 16,
+                                      'structure' => {
+                                        'level' => 1
+                                      }
                                     },
                                     'normalized' => 'AAA-AAA-BBB',
                                     'spaces_before_argument' => ' '
@@ -22041,8 +22189,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                         'extra' => {
                                           'spaces_before_argument' => ' '
                                         },
-                                        'level' => 1,
-                                        'number' => 17
+                                        'number' => 17,
+                                        'structure' => {
+                                          'level' => 1
+                                        }
                                       },
                                       'normalized' => 'CCC-CCC-DDD',
                                       'spaces_before_argument' => ' '
@@ -22055,8 +22205,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                           'extra' => {
                                             'spaces_before_argument' => ' '
                                           },
-                                          'level' => 1,
-                                          'number' => 18
+                                          'number' => 18,
+                                          'structure' => {
+                                            'level' => 1
+                                          }
                                         },
                                         'normalized' => 
'someone_0040somewher-no_005fexplain_0040there',
                                         'spaces_before_argument' => ' '
@@ -22069,8 +22221,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 1,
-                                            'number' => 19
+                                            'number' => 19,
+                                            'structure' => {
+                                              'level' => 1
+                                            }
                                           },
                                           'normalized' => 
'f_002d_002dile1-f_002d_002dile',
                                           'spaces_before_argument' => ' '
@@ -22083,8 +22237,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                               'extra' => {
                                                 'spaces_before_argument' => ' '
                                               },
-                                              'level' => 1,
-                                              'number' => 20
+                                              'number' => 20,
+                                              'structure' => {
+                                                'level' => 1
+                                              }
                                             },
                                             'normalized' => 
'-_0040-_007b_007d-_002e-',
                                             'spaces_before_argument' => ' '
@@ -22097,8 +22253,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                                 'extra' => {
                                                   'spaces_before_argument' => 
' '
                                                 },
-                                                'level' => 1,
-                                                'number' => 21
+                                                'number' => 21,
+                                                'structure' => {
+                                                  'level' => 1
+                                                }
                                               },
                                               'normalized' => 
'cite-asis-in-_0040w-b-in-r-SC-str-t-var-dfn-i',
                                               'spaces_before_argument' => ' '
@@ -22111,8 +22269,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                                   'extra' => {
                                                     'spaces_before_argument' 
=> ' '
                                                   },
-                                                  'level' => 1,
-                                                  'number' => 22
+                                                  'number' => 22,
+                                                  'structure' => {
+                                                    'level' => 1
+                                                  }
                                                 },
                                                 'normalized' => 
'env-code-option-samp-command-file-C_002dx-ESC',
                                                 'spaces_before_argument' => ' '
@@ -22125,8 +22285,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                                     'extra' => {
                                                       'spaces_before_argument' 
=> ' '
                                                     },
-                                                    'level' => 1,
-                                                    'number' => 23
+                                                    'number' => 23,
+                                                    'structure' => {
+                                                      'level' => 1
+                                                    }
                                                   },
                                                   'normalized' => '8_002e27in',
                                                   'spaces_before_argument' => 
' '
@@ -22139,8 +22301,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                                       'extra' => {
                                                         
'spaces_before_argument' => ' '
                                                       },
-                                                      'level' => 1,
-                                                      'number' => 24
+                                                      'number' => 24,
+                                                      'structure' => {
+                                                        'level' => 1
+                                                      }
                                                     },
                                                     'normalized' => 
'sansserif-slanted',
                                                     'spaces_before_argument' 
=> ' '
@@ -22153,8 +22317,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                                         'extra' => {
                                                           
'spaces_before_argument' => ' '
                                                         },
-                                                        'level' => 1,
-                                                        'number' => 25
+                                                        'number' => 25,
+                                                        'structure' => {
+                                                          'level' => 1
+                                                        }
                                                       },
                                                       'normalized' => 
'indicateurl',
                                                       'spaces_before_argument' 
=> ' '
@@ -22167,8 +22333,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                                           'extra' => {
                                                             
'spaces_before_argument' => ' '
                                                           },
-                                                          'level' => 1,
-                                                          'number' => 26
+                                                          'number' => 26,
+                                                          'structure' => {
+                                                            'level' => 1
+                                                          }
                                                         },
                                                         'normalized' => 
'gH-3rd',
                                                         
'spaces_before_argument' => ' '
@@ -22181,8 +22349,10 @@ $result_nodes{'at_commands_in_refs_utf8'} = {
                                                             'extra' => {
                                                               
'spaces_before_argument' => ' '
                                                             },
-                                                            'level' => 1,
-                                                            'number' => 27
+                                                            'number' => 27,
+                                                            'structure' => {
+                                                              'level' => 1
+                                                            }
                                                           },
                                                           'normalized' => 
'http_003a_002f_002fsomewhere_005faaa-url-_002fman_002ecgi_002f1_002fls',
                                                           
'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/char_latin1_latin1_in_refs.pl 
b/tp/t/results/formats_encodings/char_latin1_latin1_in_refs.pl
index 59961de3c4..eb64680ea7 100644
--- a/tp/t/results/formats_encodings/char_latin1_latin1_in_refs.pl
+++ b/tp/t/results/formats_encodings/char_latin1_latin1_in_refs.pl
@@ -561,13 +561,15 @@ $result_trees{'char_latin1_latin1_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'char_latin1_latin1_in_refs.texi',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -639,14 +641,16 @@ $result_trees{'char_latin1_latin1_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_latin1_in_refs.texi',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -718,14 +722,16 @@ $result_trees{'char_latin1_latin1_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_latin1_in_refs.texi',
         'line_nr' => 24,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -797,14 +803,16 @@ $result_trees{'char_latin1_latin1_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_latin1_in_refs.texi',
         'line_nr' => 27,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -876,14 +884,16 @@ $result_trees{'char_latin1_latin1_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_latin1_in_refs.texi',
         'line_nr' => 30,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1399,14 +1409,16 @@ $result_trees{'char_latin1_latin1_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_latin1_in_refs.texi',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1718,7 +1730,6 @@ top
 ';
 
 $result_sectioning{'char_latin1_latin1_in_refs'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1733,7 +1744,6 @@ $result_sectioning{'char_latin1_latin1_in_refs'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1747,9 +1757,11 @@ $result_sectioning{'char_latin1_latin1_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1765,10 +1777,12 @@ $result_sectioning{'char_latin1_latin1_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1784,10 +1798,12 @@ $result_sectioning{'char_latin1_latin1_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1803,10 +1819,12 @@ $result_sectioning{'char_latin1_latin1_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1822,17 +1840,25 @@ $result_sectioning{'char_latin1_latin1_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'char_latin1_latin1_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'char_latin1_latin1_in_refs'}{'section_childs'}[0];
 
$result_sectioning{'char_latin1_latin1_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'char_latin1_latin1_in_refs'}{'section_childs'}[0];
@@ -1863,7 +1889,9 @@ $result_nodes{'char_latin1_latin1_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -1877,8 +1905,10 @@ $result_nodes{'char_latin1_latin1_in_refs'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 
'_00e4-_00eb-_00ef-_00f6-_00fc-_00ff-_00c4-_00cb-_00cf-_00d6-_00dc',
       'spaces_before_argument' => ' '
@@ -1891,8 +1921,10 @@ $result_nodes{'char_latin1_latin1_in_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => '_00e9',
         'spaces_before_argument' => ' '
@@ -1905,8 +1937,10 @@ $result_nodes{'char_latin1_latin1_in_refs'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => '_00e0-_00e8-_00f9',
           'spaces_before_argument' => ' '
@@ -1919,8 +1953,10 @@ $result_nodes{'char_latin1_latin1_in_refs'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 
'_00e2-_00ea-_00ee-_00f4-_00fb-_00c2-_00ca-_00ce-_00d4-_00db',
             'spaces_before_argument' => ' '
@@ -1933,8 +1969,10 @@ $result_nodes{'char_latin1_latin1_in_refs'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => '_00e7',
               'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/char_latin1_utf8_in_refs.pl 
b/tp/t/results/formats_encodings/char_latin1_utf8_in_refs.pl
index 581a9b59b4..132cb5dd25 100644
--- a/tp/t/results/formats_encodings/char_latin1_utf8_in_refs.pl
+++ b/tp/t/results/formats_encodings/char_latin1_utf8_in_refs.pl
@@ -561,13 +561,15 @@ $result_trees{'char_latin1_utf8_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'char_latin1_utf8_in_refs.texi',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -639,14 +641,16 @@ $result_trees{'char_latin1_utf8_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_utf8_in_refs.texi',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -718,14 +722,16 @@ $result_trees{'char_latin1_utf8_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_utf8_in_refs.texi',
         'line_nr' => 24,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -797,14 +803,16 @@ $result_trees{'char_latin1_utf8_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_utf8_in_refs.texi',
         'line_nr' => 27,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -876,14 +884,16 @@ $result_trees{'char_latin1_utf8_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_utf8_in_refs.texi',
         'line_nr' => 30,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1399,14 +1409,16 @@ $result_trees{'char_latin1_utf8_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin1_utf8_in_refs.texi',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1718,7 +1730,6 @@ top
 ';
 
 $result_sectioning{'char_latin1_utf8_in_refs'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1733,7 +1744,6 @@ $result_sectioning{'char_latin1_utf8_in_refs'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1747,9 +1757,11 @@ $result_sectioning{'char_latin1_utf8_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1765,10 +1777,12 @@ $result_sectioning{'char_latin1_utf8_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1784,10 +1798,12 @@ $result_sectioning{'char_latin1_utf8_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1803,10 +1819,12 @@ $result_sectioning{'char_latin1_utf8_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1822,17 +1840,25 @@ $result_sectioning{'char_latin1_utf8_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'char_latin1_utf8_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'char_latin1_utf8_in_refs'}{'section_childs'}[0];
 
$result_sectioning{'char_latin1_utf8_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'char_latin1_utf8_in_refs'}{'section_childs'}[0];
@@ -1863,7 +1889,9 @@ $result_nodes{'char_latin1_utf8_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -1877,8 +1905,10 @@ $result_nodes{'char_latin1_utf8_in_refs'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 
'_00e4-_00eb-_00ef-_00f6-_00fc-_00ff-_00c4-_00cb-_00cf-_00d6-_00dc',
       'spaces_before_argument' => ' '
@@ -1891,8 +1921,10 @@ $result_nodes{'char_latin1_utf8_in_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => '_00e9',
         'spaces_before_argument' => ' '
@@ -1905,8 +1937,10 @@ $result_nodes{'char_latin1_utf8_in_refs'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => '_00e0-_00e8-_00f9',
           'spaces_before_argument' => ' '
@@ -1919,8 +1953,10 @@ $result_nodes{'char_latin1_utf8_in_refs'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 
'_00e2-_00ea-_00ee-_00f4-_00fb-_00c2-_00ca-_00ce-_00d4-_00db',
             'spaces_before_argument' => ' '
@@ -1933,8 +1969,10 @@ $result_nodes{'char_latin1_utf8_in_refs'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => '_00e7',
               'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/char_latin2_latin2_in_refs.pl 
b/tp/t/results/formats_encodings/char_latin2_latin2_in_refs.pl
index 4fe83bfe15..46c4e43d06 100644
--- a/tp/t/results/formats_encodings/char_latin2_latin2_in_refs.pl
+++ b/tp/t/results/formats_encodings/char_latin2_latin2_in_refs.pl
@@ -433,13 +433,15 @@ $result_trees{'char_latin2_latin2_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'char_latin2_latin2_in_refs.texi',
         'line_nr' => 7,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {},
     {
@@ -518,14 +520,16 @@ $result_trees{'char_latin2_latin2_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'char_latin2_latin2_in_refs.texi',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -658,7 +662,6 @@ top
 ';
 
 $result_sectioning{'char_latin2_latin2_in_refs'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -673,7 +676,6 @@ $result_sectioning{'char_latin2_latin2_in_refs'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -687,16 +689,24 @@ $result_sectioning{'char_latin2_latin2_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'char_latin2_latin2_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'char_latin2_latin2_in_refs'}{'section_childs'}[0];
 
$result_sectioning{'char_latin2_latin2_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'char_latin2_latin2_in_refs'}{'section_childs'}[0];
@@ -711,7 +721,9 @@ $result_nodes{'char_latin2_latin2_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -725,8 +737,10 @@ $result_nodes{'char_latin2_latin2_in_refs'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => '_0104-_0105-_02db-_0118-_0119',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/japanese_shift_jis.pl 
b/tp/t/results/formats_encodings/japanese_shift_jis.pl
index f219e82f0c..af78301599 100644
--- a/tp/t/results/formats_encodings/japanese_shift_jis.pl
+++ b/tp/t/results/formats_encodings/japanese_shift_jis.pl
@@ -610,13 +610,15 @@ $result_trees{'japanese_shift_jis'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'japanese_shift_jis.texi',
         'line_nr' => 9,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -711,14 +713,16 @@ $result_trees{'japanese_shift_jis'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'japanese_shift_jis.texi',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -807,14 +811,16 @@ $result_trees{'japanese_shift_jis'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'japanese_shift_jis.texi',
         'line_nr' => 37,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1016,7 +1022,6 @@ GNU LilyPond -- 学習マニュアル
 ';
 
 $result_sectioning{'japanese_shift_jis'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1030,7 +1035,6 @@ $result_sectioning{'japanese_shift_jis'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1044,9 +1048,11 @@ $result_sectioning{'japanese_shift_jis'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1062,17 +1068,25 @@ $result_sectioning{'japanese_shift_jis'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'japanese_shift_jis'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'japanese_shift_jis'}{'section_childs'}[0];
 
$result_sectioning{'japanese_shift_jis'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'japanese_shift_jis'}{'section_childs'}[0];
@@ -1091,7 +1105,9 @@ $result_nodes{'japanese_shift_jis'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1104,8 +1120,10 @@ $result_nodes{'japanese_shift_jis'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Preface',
       'spaces_before_argument' => ' '
@@ -1118,8 +1136,10 @@ $result_nodes{'japanese_shift_jis'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'Introduction',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/sample_utf8.pl 
b/tp/t/results/formats_encodings/sample_utf8.pl
index e0f22b51f9..157dad42af 100644
--- a/tp/t/results/formats_encodings/sample_utf8.pl
+++ b/tp/t/results/formats_encodings/sample_utf8.pl
@@ -773,13 +773,15 @@ $result_trees{'sample_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'sample_utf8.texi',
         'line_nr' => 28,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1183,14 +1185,16 @@ $result_trees{'sample_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'sample_utf8.texi',
         'line_nr' => 42,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1279,14 +1283,16 @@ $result_trees{'sample_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'sample_utf8.texi',
         'line_nr' => 62,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1396,13 +1402,15 @@ $result_trees{'sample_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'sample_utf8.texi',
         'line_nr' => 67,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1728,7 +1736,6 @@ Index
 ';
 
 $result_sectioning{'sample_utf8'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1742,7 +1749,6 @@ $result_sectioning{'sample_utf8'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1756,9 +1762,11 @@ $result_sectioning{'sample_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1774,10 +1782,12 @@ $result_sectioning{'sample_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1794,16 +1804,24 @@ $result_sectioning{'sample_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'sample_utf8'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'sample_utf8'}{'section_childs'}[0];
 
$result_sectioning{'sample_utf8'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'sample_utf8'}{'section_childs'}[0];
@@ -1826,7 +1844,9 @@ $result_nodes{'sample_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1839,8 +1859,10 @@ $result_nodes{'sample_utf8'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => '_7b2c_4e00_7ae0_ff08First-Chapter_ff09',
       'spaces_before_argument' => ' '
@@ -1853,8 +1875,10 @@ $result_nodes{'sample_utf8'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'Second-Chapter-AE-_0104_0118-ae-_0105_0119',
         'spaces_before_argument' => ' '
@@ -1867,7 +1891,9 @@ $result_nodes{'sample_utf8'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1
+            'structure' => {
+              'level' => 1
+            }
           },
           'isindex' => 1,
           'normalized' => 'Index-node',
diff --git a/tp/t/results/formats_encodings/weird_accents.pl 
b/tp/t/results/formats_encodings/weird_accents.pl
index 72dfa0fca2..3d40e6bbbb 100644
--- a/tp/t/results/formats_encodings/weird_accents.pl
+++ b/tp/t/results/formats_encodings/weird_accents.pl
@@ -471,13 +471,15 @@ $result_trees{'weird_accents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -577,7 +579,6 @@ r`\'=
 ';
 
 $result_sectioning{'weird_accents'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -591,10 +592,15 @@ $result_sectioning{'weird_accents'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'weird_accents'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'weird_accents'};
 
@@ -606,7 +612,9 @@ $result_nodes{'weird_accents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formats_encodings/weird_accents_disable_encoding.pl 
b/tp/t/results/formats_encodings/weird_accents_disable_encoding.pl
index 99ef849113..6af61df879 100644
--- a/tp/t/results/formats_encodings/weird_accents_disable_encoding.pl
+++ b/tp/t/results/formats_encodings/weird_accents_disable_encoding.pl
@@ -471,13 +471,15 @@ $result_trees{'weird_accents_disable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -577,7 +579,6 @@ r`\'=
 ';
 
 $result_sectioning{'weird_accents_disable_encoding'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -591,10 +592,15 @@ $result_sectioning{'weird_accents_disable_encoding'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'weird_accents_disable_encoding'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'weird_accents_disable_encoding'};
 
@@ -606,7 +612,9 @@ $result_nodes{'weird_accents_disable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/direntry_dircategory_info_split.pl 
b/tp/t/results/formatting/direntry_dircategory_info_split.pl
index 18c72eb7ab..73966a5165 100644
--- a/tp/t/results/formatting/direntry_dircategory_info_split.pl
+++ b/tp/t/results/formatting/direntry_dircategory_info_split.pl
@@ -839,13 +839,15 @@ $result_trees{'direntry_dircategory_info_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'direntry_dircategory.texi',
         'line_nr' => 20,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -934,14 +936,16 @@ $result_trees{'direntry_dircategory_info_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'direntry_dircategory.texi',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1167,7 +1171,6 @@ In chapter
 ';
 
 $result_sectioning{'direntry_dircategory_info_split'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1181,7 +1184,6 @@ $result_sectioning{'direntry_dircategory_info_split'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1195,16 +1197,24 @@ $result_sectioning{'direntry_dircategory_info_split'} = 
{
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'direntry_dircategory_info_split'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'direntry_dircategory_info_split'}{'section_childs'}[0];
 
$result_sectioning{'direntry_dircategory_info_split'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'direntry_dircategory_info_split'}{'section_childs'}[0];
@@ -1219,7 +1229,9 @@ $result_nodes{'direntry_dircategory_info_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1232,8 +1244,10 @@ $result_nodes{'direntry_dircategory_info_split'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/documentlanguage_set_option.pl 
b/tp/t/results/formatting/documentlanguage_set_option.pl
index f54c033b64..c184ddc84f 100644
--- a/tp/t/results/formatting/documentlanguage_set_option.pl
+++ b/tp/t/results/formatting/documentlanguage_set_option.pl
@@ -240,13 +240,15 @@ $result_trees{'documentlanguage_set_option'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'documentlanguage_set.texi',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -321,7 +323,6 @@ Text.
 ';
 
 $result_sectioning{'documentlanguage_set_option'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -335,10 +336,15 @@ $result_sectioning{'documentlanguage_set_option'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'documentlanguage_set_option'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'documentlanguage_set_option'};
 
@@ -350,7 +356,9 @@ $result_nodes{'documentlanguage_set_option'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/documentlanguage_set_option_info.pl 
b/tp/t/results/formatting/documentlanguage_set_option_info.pl
index 52fbce7528..c3ccf5d662 100644
--- a/tp/t/results/formatting/documentlanguage_set_option_info.pl
+++ b/tp/t/results/formatting/documentlanguage_set_option_info.pl
@@ -240,13 +240,15 @@ $result_trees{'documentlanguage_set_option_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'documentlanguage_set.texi',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -321,7 +323,6 @@ Text.
 ';
 
 $result_sectioning{'documentlanguage_set_option_info'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -335,10 +336,15 @@ $result_sectioning{'documentlanguage_set_option_info'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'documentlanguage_set_option_info'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'documentlanguage_set_option_info'};
 
@@ -350,7 +356,9 @@ $result_nodes{'documentlanguage_set_option_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/documentlanguage_set_unknown.pl 
b/tp/t/results/formatting/documentlanguage_set_unknown.pl
index 6f438e9f3c..e8a95ecd16 100644
--- a/tp/t/results/formatting/documentlanguage_set_unknown.pl
+++ b/tp/t/results/formatting/documentlanguage_set_unknown.pl
@@ -240,13 +240,15 @@ $result_trees{'documentlanguage_set_unknown'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'documentlanguage_set.texi',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -321,7 +323,6 @@ Text.
 ';
 
 $result_sectioning{'documentlanguage_set_unknown'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -335,10 +336,15 @@ $result_sectioning{'documentlanguage_set_unknown'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'documentlanguage_set_unknown'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'documentlanguage_set_unknown'};
 
@@ -350,7 +356,9 @@ $result_nodes{'documentlanguage_set_unknown'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/float_copying.pl 
b/tp/t/results/formatting/float_copying.pl
index f953adb33b..34abad99ea 100644
--- a/tp/t/results/formatting/float_copying.pl
+++ b/tp/t/results/formatting/float_copying.pl
@@ -1033,13 +1033,15 @@ $result_trees{'float_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'float_copying.texi',
         'line_nr' => 31,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {},
     {
@@ -1301,13 +1303,13 @@ $result_trees{'float_copying'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'float_copying.texi',
             'line_nr' => 60,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
@@ -1370,13 +1372,13 @@ $result_trees{'float_copying'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'float_copying.texi',
             'line_nr' => 63,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'args' => [
@@ -1450,14 +1452,16 @@ $result_trees{'float_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'float_copying.texi',
         'line_nr' => 46,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1797,7 +1801,6 @@ printindex
 ';
 
 $result_sectioning{'float_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1811,7 +1814,6 @@ $result_sectioning{'float_copying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'appendix',
@@ -1826,16 +1828,24 @@ $result_sectioning{'float_copying'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'float_copying'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'float_copying'}{'section_childs'}[0];
 
$result_sectioning{'float_copying'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'float_copying'}{'section_childs'}[0];
@@ -1850,7 +1860,9 @@ $result_nodes{'float_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1863,8 +1875,10 @@ $result_nodes{'float_copying'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 'A'
+        'number' => 'A',
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'Copying-and-floats',
diff --git a/tp/t/results/formatting/split_nocopying.pl 
b/tp/t/results/formatting/split_nocopying.pl
index bc7e796fb0..d11dc7369d 100644
--- a/tp/t/results/formatting/split_nocopying.pl
+++ b/tp/t/results/formatting/split_nocopying.pl
@@ -269,13 +269,15 @@ $result_trees{'split_nocopying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'split_nocopying.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -364,14 +366,16 @@ $result_trees{'split_nocopying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'split_nocopying.texi',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -478,7 +482,6 @@ First chapter.
 ';
 
 $result_sectioning{'split_nocopying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -492,7 +495,6 @@ $result_sectioning{'split_nocopying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -506,16 +508,24 @@ $result_sectioning{'split_nocopying'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'split_nocopying'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'split_nocopying'}{'section_childs'}[0];
 
$result_sectioning{'split_nocopying'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'split_nocopying'}{'section_childs'}[0];
@@ -530,7 +540,9 @@ $result_nodes{'split_nocopying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -543,8 +555,10 @@ $result_nodes{'split_nocopying'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Ch1',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/split_nocopying_split.pl 
b/tp/t/results/formatting/split_nocopying_split.pl
index f488c11e40..d143bb58b3 100644
--- a/tp/t/results/formatting/split_nocopying_split.pl
+++ b/tp/t/results/formatting/split_nocopying_split.pl
@@ -269,13 +269,15 @@ $result_trees{'split_nocopying_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'split_nocopying.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -364,14 +366,16 @@ $result_trees{'split_nocopying_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'split_nocopying.texi',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -478,7 +482,6 @@ First chapter.
 ';
 
 $result_sectioning{'split_nocopying_split'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -492,7 +495,6 @@ $result_sectioning{'split_nocopying_split'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -506,16 +508,24 @@ $result_sectioning{'split_nocopying_split'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'split_nocopying_split'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'split_nocopying_split'}{'section_childs'}[0];
 
$result_sectioning{'split_nocopying_split'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'split_nocopying_split'}{'section_childs'}[0];
@@ -530,7 +540,9 @@ $result_nodes{'split_nocopying_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -543,8 +555,10 @@ $result_nodes{'split_nocopying_split'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Ch1',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/texi_bib_example.pl 
b/tp/t/results/formatting/texi_bib_example.pl
index c4fbef2a3d..cc502a97b5 100644
--- a/tp/t/results/formatting/texi_bib_example.pl
+++ b/tp/t/results/formatting/texi_bib_example.pl
@@ -4005,13 +4005,15 @@ $result_trees{'texi_bib_example'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'bib-example.texi',
         'line_nr' => 32,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -4225,14 +4227,16 @@ $result_trees{'texi_bib_example'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'bib-example.texi',
         'line_nr' => 41,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {
@@ -4452,14 +4456,16 @@ $result_trees{'texi_bib_example'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'bib-example.texi',
         'line_nr' => 48,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -5408,7 +5414,6 @@ Massachusetts, 1994.
 ';
 
 $result_sectioning{'texi_bib_example'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -5422,7 +5427,6 @@ $result_sectioning{'texi_bib_example'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -5436,9 +5440,11 @@ $result_sectioning{'texi_bib_example'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -5454,17 +5460,25 @@ $result_sectioning{'texi_bib_example'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'texi_bib_example'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'texi_bib_example'}{'section_childs'}[0];
 
$result_sectioning{'texi_bib_example'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'texi_bib_example'}{'section_childs'}[0];
@@ -5483,7 +5497,9 @@ $result_nodes{'texi_bib_example'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -5496,8 +5512,10 @@ $result_nodes{'texi_bib_example'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Introduction',
       'spaces_before_argument' => ' '
@@ -5510,8 +5528,10 @@ $result_nodes{'texi_bib_example'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'References',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/formatting/texi_glossary.pl 
b/tp/t/results/formatting/texi_glossary.pl
index dbae8a11c4..1df0607182 100644
--- a/tp/t/results/formatting/texi_glossary.pl
+++ b/tp/t/results/formatting/texi_glossary.pl
@@ -864,14 +864,16 @@ $result_trees{'texi_glossary'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 1,
                       'line_nr' => {
                         'file_name' => 'glossary.texi',
                         'line_nr' => 46,
                         'macro' => ''
                       },
                       'number' => 1,
-                      'parent' => {}
+                      'parent' => {},
+                      'structure' => {
+                        'level' => 1
+                      }
                     },
                     'type' => 'paragraph'
                   }
@@ -1079,13 +1081,15 @@ $result_trees{'texi_glossary'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'glossary.texi',
         'line_nr' => 36,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1402,7 +1406,6 @@ name2 text2
 ';
 
 $result_sectioning{'texi_glossary'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1416,7 +1419,6 @@ $result_sectioning{'texi_glossary'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1430,16 +1432,24 @@ $result_sectioning{'texi_glossary'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'texi_glossary'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'texi_glossary'}{'section_childs'}[0];
 
$result_sectioning{'texi_glossary'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'texi_glossary'}{'section_childs'}[0];
@@ -1454,7 +1464,9 @@ $result_nodes{'texi_glossary'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1467,8 +1479,10 @@ $result_nodes{'texi_glossary'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'glossary',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/heading/heading_in_copying.pl 
b/tp/t/results/heading/heading_in_copying.pl
index 2bd66d17c8..1434f8277a 100644
--- a/tp/t/results/heading/heading_in_copying.pl
+++ b/tp/t/results/heading/heading_in_copying.pl
@@ -78,13 +78,13 @@ $result_trees{'heading_in_copying'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'line_nr' => {
                 'file_name' => '',
                 'line_nr' => 3,
                 'macro' => ''
               },
-              'parent' => {}
+              'parent' => {},
+              'structure' => {}
             },
             {
               'args' => [
@@ -184,13 +184,13 @@ $result_trees{'heading_in_copying'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3,
               'line_nr' => {
                 'file_name' => '',
                 'line_nr' => 6,
                 'macro' => ''
               },
-              'parent' => {}
+              'parent' => {},
+              'structure' => {}
             },
             {
               'args' => [
diff --git a/tp/t/results/heading/heading_in_example.pl 
b/tp/t/results/heading/heading_in_example.pl
index e9fca1e419..e389dd58c9 100644
--- a/tp/t/results/heading/heading_in_example.pl
+++ b/tp/t/results/heading/heading_in_example.pl
@@ -72,13 +72,13 @@ $result_trees{'heading_in_example'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'line_nr' => {
                 'file_name' => '',
                 'line_nr' => 2,
                 'macro' => ''
               },
-              'parent' => {}
+              'parent' => {},
+              'structure' => {}
             },
             {
               'args' => [
diff --git a/tp/t/results/heading/heading_in_quotation.pl 
b/tp/t/results/heading/heading_in_quotation.pl
index 77fe42a145..779422f7f5 100644
--- a/tp/t/results/heading/heading_in_quotation.pl
+++ b/tp/t/results/heading/heading_in_quotation.pl
@@ -78,13 +78,13 @@ $result_trees{'heading_in_quotation'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'line_nr' => {
                 'file_name' => '',
                 'line_nr' => 3,
                 'macro' => ''
               },
-              'parent' => {}
+              'parent' => {},
+              'structure' => {}
             },
             {
               'parent' => {},
diff --git a/tp/t/results/html_tests/character_number_leading_toc_stoc.pl 
b/tp/t/results/html_tests/character_number_leading_toc_stoc.pl
index 883a59873c..2cdc8b2413 100644
--- a/tp/t/results/html_tests/character_number_leading_toc_stoc.pl
+++ b/tp/t/results/html_tests/character_number_leading_toc_stoc.pl
@@ -34,13 +34,15 @@ $result_trees{'character_number_leading_toc_stoc'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -64,14 +66,16 @@ $result_trees{'character_number_leading_toc_stoc'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -95,13 +99,15 @@ $result_trees{'character_number_leading_toc_stoc'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -178,13 +184,15 @@ $result_trees{'character_number_leading_toc_stoc'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -236,23 +244,23 @@ _
 ';
 
 $result_sectioning{'character_number_leading_toc_stoc'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -261,26 +269,36 @@ $result_sectioning{'character_number_leading_toc_stoc'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_childs' => [
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'character_number_leading_toc_stoc'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'character_number_leading_toc_stoc'}{'section_childs'}[0];
 
$result_sectioning{'character_number_leading_toc_stoc'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'character_number_leading_toc_stoc'}{'section_childs'}[0];
diff --git a/tp/t/results/html_tests/check_htmlxref.pl 
b/tp/t/results/html_tests/check_htmlxref.pl
index 76efa8e12a..19b8799964 100644
--- a/tp/t/results/html_tests/check_htmlxref.pl
+++ b/tp/t/results/html_tests/check_htmlxref.pl
@@ -496,13 +496,15 @@ $result_trees{'check_htmlxref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -690,7 +692,6 @@ a
 ';
 
 $result_sectioning{'check_htmlxref'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -704,10 +705,15 @@ $result_sectioning{'check_htmlxref'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'check_htmlxref'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'check_htmlxref'};
 
@@ -719,7 +725,9 @@ $result_nodes{'check_htmlxref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/html_tests/deftypefnnewline_for_copying_after.pl 
b/tp/t/results/html_tests/deftypefnnewline_for_copying_after.pl
index 20c486634f..5ce8b61fa1 100644
--- a/tp/t/results/html_tests/deftypefnnewline_for_copying_after.pl
+++ b/tp/t/results/html_tests/deftypefnnewline_for_copying_after.pl
@@ -573,13 +573,15 @@ $result_trees{'deftypefnnewline_for_copying_after'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -701,7 +703,6 @@ do something with input
 ';
 
 $result_sectioning{'deftypefnnewline_for_copying_after'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -715,10 +716,15 @@ $result_sectioning{'deftypefnnewline_for_copying_after'} 
= {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'deftypefnnewline_for_copying_after'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'deftypefnnewline_for_copying_after'};
 
@@ -730,7 +736,9 @@ $result_nodes{'deftypefnnewline_for_copying_after'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/html_tests/deftypefnnewline_for_copying_before.pl 
b/tp/t/results/html_tests/deftypefnnewline_for_copying_before.pl
index 083891dbbf..4201ab14d9 100644
--- a/tp/t/results/html_tests/deftypefnnewline_for_copying_before.pl
+++ b/tp/t/results/html_tests/deftypefnnewline_for_copying_before.pl
@@ -533,13 +533,15 @@ $result_trees{'deftypefnnewline_for_copying_before'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -652,7 +654,6 @@ do something with input
 ';
 
 $result_sectioning{'deftypefnnewline_for_copying_before'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -666,10 +667,15 @@ $result_sectioning{'deftypefnnewline_for_copying_before'} 
= {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'deftypefnnewline_for_copying_before'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'deftypefnnewline_for_copying_before'};
 
@@ -681,7 +687,9 @@ $result_nodes{'deftypefnnewline_for_copying_before'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/html_tests/documentdescription.pl 
b/tp/t/results/html_tests/documentdescription.pl
index e7a0f85d8e..7a60ba6b4a 100644
--- a/tp/t/results/html_tests/documentdescription.pl
+++ b/tp/t/results/html_tests/documentdescription.pl
@@ -316,13 +316,15 @@ $result_trees{'documentdescription'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -386,17 +388,21 @@ top
 ';
 
 $result_sectioning{'documentdescription'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'documentdescription'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'documentdescription'};
 
diff --git a/tp/t/results/html_tests/empty_lines_at_beginning_no_setfilename.pl 
b/tp/t/results/html_tests/empty_lines_at_beginning_no_setfilename.pl
index 8a776ee21b..8904073271 100644
--- a/tp/t/results/html_tests/empty_lines_at_beginning_no_setfilename.pl
+++ b/tp/t/results/html_tests/empty_lines_at_beginning_no_setfilename.pl
@@ -131,13 +131,15 @@ $result_trees{'empty_lines_at_beginning_no_setfilename'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'empty_lines_at_beginning_no_setfilename.texi',
         'line_nr' => 7,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -193,7 +195,6 @@ top
 ';
 
 $result_sectioning{'empty_lines_at_beginning_no_setfilename'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -207,10 +208,15 @@ 
$result_sectioning{'empty_lines_at_beginning_no_setfilename'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'empty_lines_at_beginning_no_setfilename'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'empty_lines_at_beginning_no_setfilename'};
 
@@ -222,7 +228,9 @@ $result_nodes{'empty_lines_at_beginning_no_setfilename'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/html_tests/footnotestyle_separate_late.pl 
b/tp/t/results/html_tests/footnotestyle_separate_late.pl
index 0ca620827e..4c895db9d5 100644
--- a/tp/t/results/html_tests/footnotestyle_separate_late.pl
+++ b/tp/t/results/html_tests/footnotestyle_separate_late.pl
@@ -119,13 +119,15 @@ $result_trees{'footnotestyle_separate_late'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 4,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -253,14 +255,16 @@ $result_trees{'footnotestyle_separate_late'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 7,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -421,14 +425,16 @@ $result_trees{'footnotestyle_separate_late'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 12,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -539,7 +545,6 @@ top
 ';
 
 $result_sectioning{'footnotestyle_separate_late'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -553,7 +558,6 @@ $result_sectioning{'footnotestyle_separate_late'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -567,9 +571,11 @@ $result_sectioning{'footnotestyle_separate_late'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -585,17 +591,25 @@ $result_sectioning{'footnotestyle_separate_late'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'footnotestyle_separate_late'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'footnotestyle_separate_late'}{'section_childs'}[0];
 
$result_sectioning{'footnotestyle_separate_late'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'footnotestyle_separate_late'}{'section_childs'}[0];
@@ -614,7 +628,9 @@ $result_nodes{'footnotestyle_separate_late'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -627,8 +643,10 @@ $result_nodes{'footnotestyle_separate_late'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap-f',
       'spaces_before_argument' => ' '
@@ -641,8 +659,10 @@ $result_nodes{'footnotestyle_separate_late'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chap-s',
         'spaces_before_argument' => ' '
@@ -688,7 +708,9 @@ $result_elements{'footnotestyle_separate_late'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -708,8 +730,10 @@ $result_elements{'footnotestyle_separate_late'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -731,8 +755,10 @@ $result_elements{'footnotestyle_separate_late'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/html_tests/html_in_copying.pl 
b/tp/t/results/html_tests/html_in_copying.pl
index 922062c7e6..bbfecb2f87 100644
--- a/tp/t/results/html_tests/html_in_copying.pl
+++ b/tp/t/results/html_tests/html_in_copying.pl
@@ -229,13 +229,15 @@ $result_trees{'html_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -295,7 +297,6 @@ top
 ';
 
 $result_sectioning{'html_in_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -309,10 +310,15 @@ $result_sectioning{'html_in_copying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'html_in_copying'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'html_in_copying'};
 
@@ -324,7 +330,9 @@ $result_nodes{'html_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/html_tests/index_and_node_same_name.pl 
b/tp/t/results/html_tests/index_and_node_same_name.pl
index fc24ed4430..fa05a6d4a7 100644
--- a/tp/t/results/html_tests/index_and_node_same_name.pl
+++ b/tp/t/results/html_tests/index_and_node_same_name.pl
@@ -34,13 +34,15 @@ $result_trees{'index_and_node_same_name'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -210,17 +212,21 @@ $result_texts{'index_and_node_same_name'} = 'top
 ';
 
 $result_sectioning{'index_and_node_same_name'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'index_and_node_same_name'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'index_and_node_same_name'};
 
diff --git a/tp/t/results/html_tests/index_below.pl 
b/tp/t/results/html_tests/index_below.pl
index cd2b49db17..2b3487144d 100644
--- a/tp/t/results/html_tests/index_below.pl
+++ b/tp/t/results/html_tests/index_below.pl
@@ -42,13 +42,15 @@ $result_trees{'index_below'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -89,14 +91,16 @@ $result_trees{'index_below'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -210,14 +214,16 @@ $result_trees{'index_below'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => '1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -284,21 +290,18 @@ $result_texts{'index_below'} = 'top
 ';
 
 $result_sectioning{'index_below'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -306,19 +309,30 @@ $result_sectioning{'index_below'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'index_below'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'index_below'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'index_below'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'index_below'}{'section_childs'}[0];
@@ -347,7 +361,9 @@ $result_elements{'index_below'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -360,8 +376,10 @@ $result_elements{'index_below'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -376,8 +394,10 @@ $result_elements{'index_below'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 2,
-                    'number' => '1.1'
+                    'number' => '1.1',
+                    'structure' => {
+                      'level' => 2
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/html_tests/redirection_same_labels.pl 
b/tp/t/results/html_tests/redirection_same_labels.pl
index 357edddaf3..661aa75d6b 100644
--- a/tp/t/results/html_tests/redirection_same_labels.pl
+++ b/tp/t/results/html_tests/redirection_same_labels.pl
@@ -358,13 +358,15 @@ $result_trees{'redirection_same_labels'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 4,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -674,14 +676,16 @@ $result_trees{'redirection_same_labels'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       },
       {
         'args' => [
@@ -1050,14 +1054,16 @@ $result_trees{'redirection_same_labels'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 27,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       },
       {
         'args' => [
@@ -1348,7 +1354,6 @@ the top
 ';
 
 $result_sectioning{'redirection_same_labels'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1362,7 +1367,6 @@ $result_sectioning{'redirection_same_labels'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1376,9 +1380,11 @@ $result_sectioning{'redirection_same_labels'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1394,17 +1400,25 @@ $result_sectioning{'redirection_same_labels'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'redirection_same_labels'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'redirection_same_labels'}{'section_childs'}[0];
 
$result_sectioning{'redirection_same_labels'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'redirection_same_labels'}{'section_childs'}[0];
@@ -1423,7 +1437,9 @@ $result_nodes{'redirection_same_labels'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1436,8 +1452,10 @@ $result_nodes{'redirection_same_labels'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'umlaut',
       'spaces_before_argument' => ' '
@@ -1482,8 +1500,10 @@ $result_nodes{'redirection_same_labels'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'circumflex',
         'spaces_before_argument' => ' '
@@ -1694,7 +1714,9 @@ $result_elements{'redirection_same_labels'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -1708,8 +1730,10 @@ $result_elements{'redirection_same_labels'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -1725,8 +1749,10 @@ $result_elements{'redirection_same_labels'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/html_tests/shortcontents_no_top.pl 
b/tp/t/results/html_tests/shortcontents_no_top.pl
index f4c41865d0..8ec8ef2d10 100644
--- a/tp/t/results/html_tests/shortcontents_no_top.pl
+++ b/tp/t/results/html_tests/shortcontents_no_top.pl
@@ -41,14 +41,16 @@ $result_trees{'shortcontents_no_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -79,14 +81,16 @@ $result_trees{'shortcontents_no_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -134,14 +138,16 @@ $result_trees{'shortcontents_no_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -184,23 +190,23 @@ $result_texts{'shortcontents_no_top'} = '1 chap
 ';
 
 $result_sectioning{'shortcontents_no_top'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 2,
       'section_childs' => [
         {
@@ -208,16 +214,24 @@ $result_sectioning{'shortcontents_no_top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '2.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'shortcontents_no_top'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'shortcontents_no_top'};
 
$result_sectioning{'shortcontents_no_top'}{'section_childs'}[1]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'shortcontents_no_top'}{'section_childs'}[1];
diff --git a/tp/t/results/html_tests/simple_menu.pl 
b/tp/t/results/html_tests/simple_menu.pl
index e1d1f3e0a8..f9e600535c 100644
--- a/tp/t/results/html_tests/simple_menu.pl
+++ b/tp/t/results/html_tests/simple_menu.pl
@@ -1684,13 +1684,15 @@ $result_trees{'simple_menu'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -2084,7 +2086,6 @@ in detaildescription
 ';
 
 $result_sectioning{'simple_menu'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -2097,10 +2098,15 @@ $result_sectioning{'simple_menu'} = {
           }
         }
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'simple_menu'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'simple_menu'};
 
@@ -2110,7 +2116,9 @@ $result_nodes{'simple_menu'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/html_tests/test_xrefautomaticsectiontitle.pl 
b/tp/t/results/html_tests/test_xrefautomaticsectiontitle.pl
index 6a9b3167ea..95b4a88d03 100644
--- a/tp/t/results/html_tests/test_xrefautomaticsectiontitle.pl
+++ b/tp/t/results/html_tests/test_xrefautomaticsectiontitle.pl
@@ -198,13 +198,15 @@ $result_trees{'test_xrefautomaticsectiontitle'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -440,14 +442,16 @@ $result_trees{'test_xrefautomaticsectiontitle'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -549,7 +553,6 @@ chap.
 ';
 
 $result_sectioning{'test_xrefautomaticsectiontitle'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -563,7 +566,6 @@ $result_sectioning{'test_xrefautomaticsectiontitle'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -577,16 +579,24 @@ $result_sectioning{'test_xrefautomaticsectiontitle'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'test_xrefautomaticsectiontitle'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'test_xrefautomaticsectiontitle'}{'section_childs'}[0];
 
$result_sectioning{'test_xrefautomaticsectiontitle'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'test_xrefautomaticsectiontitle'}{'section_childs'}[0];
@@ -601,7 +611,9 @@ $result_nodes{'test_xrefautomaticsectiontitle'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -614,8 +626,10 @@ $result_nodes{'test_xrefautomaticsectiontitle'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap',
       'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/html_tests/test_xrefautomaticsectiontitle_off_first.pl 
b/tp/t/results/html_tests/test_xrefautomaticsectiontitle_off_first.pl
index af4c33473f..f082481c2f 100644
--- a/tp/t/results/html_tests/test_xrefautomaticsectiontitle_off_first.pl
+++ b/tp/t/results/html_tests/test_xrefautomaticsectiontitle_off_first.pl
@@ -242,13 +242,15 @@ $result_trees{'test_xrefautomaticsectiontitle_off_first'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -447,14 +449,16 @@ $result_trees{'test_xrefautomaticsectiontitle_off_first'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 12,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -559,7 +563,6 @@ chap.
 ';
 
 $result_sectioning{'test_xrefautomaticsectiontitle_off_first'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -573,7 +576,6 @@ 
$result_sectioning{'test_xrefautomaticsectiontitle_off_first'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -587,16 +589,24 @@ 
$result_sectioning{'test_xrefautomaticsectiontitle_off_first'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'test_xrefautomaticsectiontitle_off_first'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'test_xrefautomaticsectiontitle_off_first'}{'section_childs'}[0];
 
$result_sectioning{'test_xrefautomaticsectiontitle_off_first'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'test_xrefautomaticsectiontitle_off_first'}{'section_childs'}[0];
@@ -611,7 +621,9 @@ $result_nodes{'test_xrefautomaticsectiontitle_off_first'} = 
{
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -624,8 +636,10 @@ $result_nodes{'test_xrefautomaticsectiontitle_off_first'} 
= {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap',
       'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/html_tests/text_before_top_and_contents_after_title.pl 
b/tp/t/results/html_tests/text_before_top_and_contents_after_title.pl
index 9556e5b158..ea254ca456 100644
--- a/tp/t/results/html_tests/text_before_top_and_contents_after_title.pl
+++ b/tp/t/results/html_tests/text_before_top_and_contents_after_title.pl
@@ -123,13 +123,15 @@ $result_trees{'text_before_top_and_contents_after_title'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -183,14 +185,16 @@ $result_trees{'text_before_top_and_contents_after_title'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -250,7 +254,6 @@ In top.
 ';
 
 $result_sectioning{'text_before_top_and_contents_after_title'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -264,23 +267,30 @@ 
$result_sectioning{'text_before_top_and_contents_after_title'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'text_before_top_and_contents_after_title'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'text_before_top_and_contents_after_title'}{'section_childs'}[0];
 
$result_sectioning{'text_before_top_and_contents_after_title'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'text_before_top_and_contents_after_title'}{'section_childs'}[0];
@@ -295,7 +305,9 @@ $result_nodes{'text_before_top_and_contents_after_title'} = 
{
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/html_tests/text_before_top_and_summarycontents_after_title.pl 
b/tp/t/results/html_tests/text_before_top_and_summarycontents_after_title.pl
index 7a3bed6a22..e52786e217 100644
--- a/tp/t/results/html_tests/text_before_top_and_summarycontents_after_title.pl
+++ b/tp/t/results/html_tests/text_before_top_and_summarycontents_after_title.pl
@@ -123,13 +123,15 @@ 
$result_trees{'text_before_top_and_summarycontents_after_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -183,14 +185,16 @@ 
$result_trees{'text_before_top_and_summarycontents_after_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -250,7 +254,6 @@ In top.
 ';
 
 $result_sectioning{'text_before_top_and_summarycontents_after_title'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -264,23 +267,30 @@ 
$result_sectioning{'text_before_top_and_summarycontents_after_title'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'text_before_top_and_summarycontents_after_title'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'text_before_top_and_summarycontents_after_title'}{'section_childs'}[0];
 
$result_sectioning{'text_before_top_and_summarycontents_after_title'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'text_before_top_and_summarycontents_after_title'}{'section_childs'}[0];
@@ -295,7 +305,9 @@ 
$result_nodes{'text_before_top_and_summarycontents_after_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/html_tests/titles.pl 
b/tp/t/results/html_tests/titles.pl
index 5d2ca163b1..f880ccd74d 100644
--- a/tp/t/results/html_tests/titles.pl
+++ b/tp/t/results/html_tests/titles.pl
@@ -282,13 +282,15 @@ $result_trees{'titles'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -355,7 +357,6 @@ Second paragraph.
 ';
 
 $result_sectioning{'titles'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -369,10 +370,15 @@ $result_sectioning{'titles'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'titles'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'titles'};
 
@@ -384,7 +390,9 @@ $result_nodes{'titles'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/htmlxref/htmlxref.pl 
b/tp/t/results/htmlxref/htmlxref.pl
index 4048c40efe..8f89f26418 100644
--- a/tp/t/results/htmlxref/htmlxref.pl
+++ b/tp/t/results/htmlxref/htmlxref.pl
@@ -269,13 +269,13 @@ $result_trees{'htmlxref'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 11,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -981,13 +981,13 @@ $result_trees{'htmlxref'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 37,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -1188,13 +1188,13 @@ $result_trees{'htmlxref'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 45,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -2259,13 +2259,15 @@ $result_trees{'htmlxref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2837,14 +2839,16 @@ $result_trees{'htmlxref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {},
@@ -3458,7 +3462,6 @@ id: local-node
 ';
 
 $result_sectioning{'htmlxref'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3472,7 +3475,6 @@ $result_sectioning{'htmlxref'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3486,16 +3488,24 @@ $result_sectioning{'htmlxref'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'htmlxref'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'htmlxref'}{'section_childs'}[0];
 
$result_sectioning{'htmlxref'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'htmlxref'}{'section_childs'}[0];
@@ -3510,7 +3520,9 @@ $result_nodes{'htmlxref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3523,8 +3535,10 @@ $result_nodes{'htmlxref'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/htmlxref/htmlxref_nodes.pl 
b/tp/t/results/htmlxref/htmlxref_nodes.pl
index d91dc0e913..f031257438 100644
--- a/tp/t/results/htmlxref/htmlxref_nodes.pl
+++ b/tp/t/results/htmlxref/htmlxref_nodes.pl
@@ -269,13 +269,13 @@ $result_trees{'htmlxref_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 11,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -981,13 +981,13 @@ $result_trees{'htmlxref_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 37,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -1188,13 +1188,13 @@ $result_trees{'htmlxref_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 45,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -2259,13 +2259,15 @@ $result_trees{'htmlxref_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2837,14 +2839,16 @@ $result_trees{'htmlxref_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {},
@@ -3458,7 +3462,6 @@ id: local-node
 ';
 
 $result_sectioning{'htmlxref_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3472,7 +3475,6 @@ $result_sectioning{'htmlxref_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3486,16 +3488,24 @@ $result_sectioning{'htmlxref_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'htmlxref_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'htmlxref_nodes'}{'section_childs'}[0];
 
$result_sectioning{'htmlxref_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'htmlxref_nodes'}{'section_childs'}[0];
@@ -3510,7 +3520,9 @@ $result_nodes{'htmlxref_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3523,8 +3535,10 @@ $result_nodes{'htmlxref_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/htmlxref/htmlxref_only_mono.pl 
b/tp/t/results/htmlxref/htmlxref_only_mono.pl
index c2d68fbcf0..70b2f869fc 100644
--- a/tp/t/results/htmlxref/htmlxref_only_mono.pl
+++ b/tp/t/results/htmlxref/htmlxref_only_mono.pl
@@ -269,13 +269,13 @@ $result_trees{'htmlxref_only_mono'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 11,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -981,13 +981,13 @@ $result_trees{'htmlxref_only_mono'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 37,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -1188,13 +1188,13 @@ $result_trees{'htmlxref_only_mono'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 45,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -2259,13 +2259,15 @@ $result_trees{'htmlxref_only_mono'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2837,14 +2839,16 @@ $result_trees{'htmlxref_only_mono'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {},
@@ -3458,7 +3462,6 @@ id: local-node
 ';
 
 $result_sectioning{'htmlxref_only_mono'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3472,7 +3475,6 @@ $result_sectioning{'htmlxref_only_mono'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3486,16 +3488,24 @@ $result_sectioning{'htmlxref_only_mono'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'htmlxref_only_mono'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'htmlxref_only_mono'}{'section_childs'}[0];
 
$result_sectioning{'htmlxref_only_mono'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'htmlxref_only_mono'}{'section_childs'}[0];
@@ -3510,7 +3520,9 @@ $result_nodes{'htmlxref_only_mono'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3523,8 +3535,10 @@ $result_nodes{'htmlxref_only_mono'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/htmlxref/htmlxref_only_mono_nodes.pl 
b/tp/t/results/htmlxref/htmlxref_only_mono_nodes.pl
index 28e88ae50c..b6c9c43034 100644
--- a/tp/t/results/htmlxref/htmlxref_only_mono_nodes.pl
+++ b/tp/t/results/htmlxref/htmlxref_only_mono_nodes.pl
@@ -269,13 +269,13 @@ $result_trees{'htmlxref_only_mono_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 11,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -981,13 +981,13 @@ $result_trees{'htmlxref_only_mono_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 37,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -1188,13 +1188,13 @@ $result_trees{'htmlxref_only_mono_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 45,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -2259,13 +2259,15 @@ $result_trees{'htmlxref_only_mono_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2837,14 +2839,16 @@ $result_trees{'htmlxref_only_mono_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {},
@@ -3458,7 +3462,6 @@ id: local-node
 ';
 
 $result_sectioning{'htmlxref_only_mono_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3472,7 +3475,6 @@ $result_sectioning{'htmlxref_only_mono_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3486,16 +3488,24 @@ $result_sectioning{'htmlxref_only_mono_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'htmlxref_only_mono_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'htmlxref_only_mono_nodes'}{'section_childs'}[0];
 
$result_sectioning{'htmlxref_only_mono_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'htmlxref_only_mono_nodes'}{'section_childs'}[0];
@@ -3510,7 +3520,9 @@ $result_nodes{'htmlxref_only_mono_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3523,8 +3535,10 @@ $result_nodes{'htmlxref_only_mono_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/htmlxref/htmlxref_only_split.pl 
b/tp/t/results/htmlxref/htmlxref_only_split.pl
index 46bd9cb820..03b7eea95d 100644
--- a/tp/t/results/htmlxref/htmlxref_only_split.pl
+++ b/tp/t/results/htmlxref/htmlxref_only_split.pl
@@ -269,13 +269,13 @@ $result_trees{'htmlxref_only_split'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 11,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -981,13 +981,13 @@ $result_trees{'htmlxref_only_split'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 37,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -1188,13 +1188,13 @@ $result_trees{'htmlxref_only_split'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 45,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -2259,13 +2259,15 @@ $result_trees{'htmlxref_only_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2837,14 +2839,16 @@ $result_trees{'htmlxref_only_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {},
@@ -3458,7 +3462,6 @@ id: local-node
 ';
 
 $result_sectioning{'htmlxref_only_split'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3472,7 +3475,6 @@ $result_sectioning{'htmlxref_only_split'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3486,16 +3488,24 @@ $result_sectioning{'htmlxref_only_split'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'htmlxref_only_split'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'htmlxref_only_split'}{'section_childs'}[0];
 
$result_sectioning{'htmlxref_only_split'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'htmlxref_only_split'}{'section_childs'}[0];
@@ -3510,7 +3520,9 @@ $result_nodes{'htmlxref_only_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3523,8 +3535,10 @@ $result_nodes{'htmlxref_only_split'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/htmlxref/htmlxref_only_split_nodes.pl 
b/tp/t/results/htmlxref/htmlxref_only_split_nodes.pl
index 18cfd0e3e6..31e2ab327e 100644
--- a/tp/t/results/htmlxref/htmlxref_only_split_nodes.pl
+++ b/tp/t/results/htmlxref/htmlxref_only_split_nodes.pl
@@ -269,13 +269,13 @@ $result_trees{'htmlxref_only_split_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 11,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -981,13 +981,13 @@ $result_trees{'htmlxref_only_split_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 37,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -1188,13 +1188,13 @@ $result_trees{'htmlxref_only_split_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => 'test_refs.texi',
             'line_nr' => 45,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -2259,13 +2259,15 @@ $result_trees{'htmlxref_only_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2837,14 +2839,16 @@ $result_trees{'htmlxref_only_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'test_refs.texi',
         'line_nr' => 68,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {},
@@ -3458,7 +3462,6 @@ id: local-node
 ';
 
 $result_sectioning{'htmlxref_only_split_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3472,7 +3475,6 @@ $result_sectioning{'htmlxref_only_split_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3486,16 +3488,24 @@ $result_sectioning{'htmlxref_only_split_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'htmlxref_only_split_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'htmlxref_only_split_nodes'}{'section_childs'}[0];
 
$result_sectioning{'htmlxref_only_split_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'htmlxref_only_split_nodes'}{'section_childs'}[0];
@@ -3510,7 +3520,9 @@ $result_nodes{'htmlxref_only_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3523,8 +3535,10 @@ $result_nodes{'htmlxref_only_split_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/include/macro_and_commands_in_early_commands.pl 
b/tp/t/results/include/macro_and_commands_in_early_commands.pl
index 4258c6f396..c75af48d68 100644
--- a/tp/t/results/include/macro_and_commands_in_early_commands.pl
+++ b/tp/t/results/include/macro_and_commands_in_early_commands.pl
@@ -417,13 +417,15 @@ $result_trees{'macro_and_commands_in_early_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -531,7 +533,6 @@ in themacro
 ';
 
 $result_sectioning{'macro_and_commands_in_early_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -545,10 +546,15 @@ 
$result_sectioning{'macro_and_commands_in_early_commands'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'macro_and_commands_in_early_commands'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'macro_and_commands_in_early_commands'};
 
@@ -560,7 +566,9 @@ $result_nodes{'macro_and_commands_in_early_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/include/macro_in_early_commands.pl 
b/tp/t/results/include/macro_in_early_commands.pl
index 3cbfd5e072..5f44da5b5c 100644
--- a/tp/t/results/include/macro_in_early_commands.pl
+++ b/tp/t/results/include/macro_in_early_commands.pl
@@ -490,13 +490,15 @@ $result_trees{'macro_in_early_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 26,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -626,7 +628,6 @@ texi_commands.info
 ';
 
 $result_sectioning{'macro_in_early_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -640,10 +641,15 @@ $result_sectioning{'macro_in_early_commands'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'macro_in_early_commands'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'macro_in_early_commands'};
 
@@ -655,7 +661,9 @@ $result_nodes{'macro_in_early_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/indices/def_syn_indices.pl 
b/tp/t/results/indices/def_syn_indices.pl
index bc8a4a3e84..0230d900fc 100644
--- a/tp/t/results/indices/def_syn_indices.pl
+++ b/tp/t/results/indices/def_syn_indices.pl
@@ -156,13 +156,15 @@ $result_trees{'def_syn_indices'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1380,14 +1382,16 @@ $result_trees{'def_syn_indices'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1684,7 +1688,6 @@ fn
 ';
 
 $result_sectioning{'def_syn_indices'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1698,7 +1701,6 @@ $result_sectioning{'def_syn_indices'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1713,16 +1715,24 @@ $result_sectioning{'def_syn_indices'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'def_syn_indices'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'def_syn_indices'}{'section_childs'}[0];
 
$result_sectioning{'def_syn_indices'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'def_syn_indices'}{'section_childs'}[0];
@@ -1737,7 +1747,9 @@ $result_nodes{'def_syn_indices'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1750,8 +1762,10 @@ $result_nodes{'def_syn_indices'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'Chapter-index',
diff --git a/tp/t/results/indices/double_seeentry_seealso.pl 
b/tp/t/results/indices/double_seeentry_seealso.pl
index 102f5b7eee..39b9c1f577 100644
--- a/tp/t/results/indices/double_seeentry_seealso.pl
+++ b/tp/t/results/indices/double_seeentry_seealso.pl
@@ -118,13 +118,15 @@ $result_trees{'double_seeentry_seealso'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -636,14 +638,16 @@ $result_trees{'double_seeentry_seealso'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -772,7 +776,6 @@ top
 ';
 
 $result_sectioning{'double_seeentry_seealso'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -786,7 +789,6 @@ $result_sectioning{'double_seeentry_seealso'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -801,16 +803,24 @@ $result_sectioning{'double_seeentry_seealso'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'double_seeentry_seealso'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'double_seeentry_seealso'}{'section_childs'}[0];
 
$result_sectioning{'double_seeentry_seealso'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'double_seeentry_seealso'}{'section_childs'}[0];
@@ -825,7 +835,9 @@ $result_nodes{'double_seeentry_seealso'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -838,8 +850,10 @@ $result_nodes{'double_seeentry_seealso'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'node-index',
diff --git a/tp/t/results/indices/encoding_index_ascii.pl 
b/tp/t/results/indices/encoding_index_ascii.pl
index 8ecadf6d7e..bde247e6d5 100644
--- a/tp/t/results/indices/encoding_index_ascii.pl
+++ b/tp/t/results/indices/encoding_index_ascii.pl
@@ -2978,13 +2978,15 @@ $result_trees{'encoding_index_ascii'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -3536,7 +3538,6 @@ top
 ';
 
 $result_sectioning{'encoding_index_ascii'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3551,10 +3552,15 @@ $result_sectioning{'encoding_index_ascii'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'encoding_index_ascii'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'encoding_index_ascii'};
 
@@ -3566,7 +3572,9 @@ $result_nodes{'encoding_index_ascii'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/encoding_index_ascii_enable_encoding.pl 
b/tp/t/results/indices/encoding_index_ascii_enable_encoding.pl
index 15e262b92b..ca37f74f3c 100644
--- a/tp/t/results/indices/encoding_index_ascii_enable_encoding.pl
+++ b/tp/t/results/indices/encoding_index_ascii_enable_encoding.pl
@@ -2978,13 +2978,15 @@ $result_trees{'encoding_index_ascii_enable_encoding'} = 
{
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -3536,7 +3538,6 @@ top
 ';
 
 $result_sectioning{'encoding_index_ascii_enable_encoding'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3551,10 +3552,15 @@ 
$result_sectioning{'encoding_index_ascii_enable_encoding'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'encoding_index_ascii_enable_encoding'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'encoding_index_ascii_enable_encoding'};
 
@@ -3566,7 +3572,9 @@ $result_nodes{'encoding_index_ascii_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/encoding_index_latin1.pl 
b/tp/t/results/indices/encoding_index_latin1.pl
index 51c12ceaab..8703f6336f 100644
--- a/tp/t/results/indices/encoding_index_latin1.pl
+++ b/tp/t/results/indices/encoding_index_latin1.pl
@@ -2946,13 +2946,15 @@ $result_trees{'encoding_index_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'encoding_index_latin1.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -3514,7 +3516,6 @@ top
 ';
 
 $result_sectioning{'encoding_index_latin1'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3529,10 +3530,15 @@ $result_sectioning{'encoding_index_latin1'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'encoding_index_latin1'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'encoding_index_latin1'};
 
@@ -3544,7 +3550,9 @@ $result_nodes{'encoding_index_latin1'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/encoding_index_latin1_enable_encoding.pl 
b/tp/t/results/indices/encoding_index_latin1_enable_encoding.pl
index 4c357f7dbf..d239db330e 100644
--- a/tp/t/results/indices/encoding_index_latin1_enable_encoding.pl
+++ b/tp/t/results/indices/encoding_index_latin1_enable_encoding.pl
@@ -2946,13 +2946,15 @@ $result_trees{'encoding_index_latin1_enable_encoding'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'encoding_index_latin1.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -3514,7 +3516,6 @@ top
 ';
 
 $result_sectioning{'encoding_index_latin1_enable_encoding'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3529,10 +3530,15 @@ 
$result_sectioning{'encoding_index_latin1_enable_encoding'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'encoding_index_latin1_enable_encoding'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'encoding_index_latin1_enable_encoding'};
 
@@ -3544,7 +3550,9 @@ $result_nodes{'encoding_index_latin1_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/encoding_index_utf8.pl 
b/tp/t/results/indices/encoding_index_utf8.pl
index d3cf9627fb..92f28efd90 100644
--- a/tp/t/results/indices/encoding_index_utf8.pl
+++ b/tp/t/results/indices/encoding_index_utf8.pl
@@ -2946,13 +2946,15 @@ $result_trees{'encoding_index_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'encoding_index_utf8.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -3514,7 +3516,6 @@ top
 ';
 
 $result_sectioning{'encoding_index_utf8'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3529,10 +3530,15 @@ $result_sectioning{'encoding_index_utf8'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'encoding_index_utf8'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'encoding_index_utf8'};
 
@@ -3544,7 +3550,9 @@ $result_nodes{'encoding_index_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/encoding_index_utf8_enable_encoding.pl 
b/tp/t/results/indices/encoding_index_utf8_enable_encoding.pl
index 2caab3e39e..070e2c862e 100644
--- a/tp/t/results/indices/encoding_index_utf8_enable_encoding.pl
+++ b/tp/t/results/indices/encoding_index_utf8_enable_encoding.pl
@@ -2946,13 +2946,15 @@ $result_trees{'encoding_index_utf8_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'encoding_index_utf8.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -3514,7 +3516,6 @@ top
 ';
 
 $result_sectioning{'encoding_index_utf8_enable_encoding'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3529,10 +3530,15 @@ 
$result_sectioning{'encoding_index_utf8_enable_encoding'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'encoding_index_utf8_enable_encoding'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'encoding_index_utf8_enable_encoding'};
 
@@ -3544,7 +3550,9 @@ $result_nodes{'encoding_index_utf8_enable_encoding'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/explicit_sort_key.pl 
b/tp/t/results/indices/explicit_sort_key.pl
index d4260637bb..3f379d3c70 100644
--- a/tp/t/results/indices/explicit_sort_key.pl
+++ b/tp/t/results/indices/explicit_sort_key.pl
@@ -662,13 +662,15 @@ $result_trees{'explicit_sort_key'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -800,7 +802,6 @@ and cmd.
 ';
 
 $result_sectioning{'explicit_sort_key'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -814,10 +815,15 @@ $result_sectioning{'explicit_sort_key'} = {
           }
         }
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'explicit_sort_key'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'explicit_sort_key'};
 
@@ -827,7 +833,9 @@ $result_nodes{'explicit_sort_key'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/printindex_index_entry_in_copying.pl 
b/tp/t/results/indices/printindex_index_entry_in_copying.pl
index 3f2d2d6c03..201afad7e0 100644
--- a/tp/t/results/indices/printindex_index_entry_in_copying.pl
+++ b/tp/t/results/indices/printindex_index_entry_in_copying.pl
@@ -805,13 +805,15 @@ $result_trees{'printindex_index_entry_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 20,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -944,14 +946,16 @@ $result_trees{'printindex_index_entry_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 30,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1145,7 +1149,6 @@ Top.
 ';
 
 $result_sectioning{'printindex_index_entry_in_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1159,7 +1162,6 @@ $result_sectioning{'printindex_index_entry_in_copying'} = 
{
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1174,16 +1176,24 @@ $result_sectioning{'printindex_index_entry_in_copying'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'printindex_index_entry_in_copying'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'printindex_index_entry_in_copying'}{'section_childs'}[0];
 
$result_sectioning{'printindex_index_entry_in_copying'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'printindex_index_entry_in_copying'}{'section_childs'}[0];
@@ -1198,7 +1208,9 @@ $result_nodes{'printindex_index_entry_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1211,8 +1223,10 @@ $result_nodes{'printindex_index_entry_in_copying'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter',
diff --git 
a/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl 
b/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl
index 27951f7085..07087eb5ee 100644
--- a/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl
+++ b/tp/t/results/indices/printindex_index_entry_in_copying_in_footnote.pl
@@ -436,13 +436,15 @@ 
$result_trees{'printindex_index_entry_in_copying_in_footnote'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -537,14 +539,16 @@ 
$result_trees{'printindex_index_entry_in_copying_in_footnote'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 24,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -669,7 +673,6 @@ Top.
 ';
 
 $result_sectioning{'printindex_index_entry_in_copying_in_footnote'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -683,7 +686,6 @@ 
$result_sectioning{'printindex_index_entry_in_copying_in_footnote'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -697,16 +699,24 @@ 
$result_sectioning{'printindex_index_entry_in_copying_in_footnote'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'printindex_index_entry_in_copying_in_footnote'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'printindex_index_entry_in_copying_in_footnote'}{'section_childs'}[0];
 
$result_sectioning{'printindex_index_entry_in_copying_in_footnote'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'printindex_index_entry_in_copying_in_footnote'}{'section_childs'}[0];
@@ -721,7 +731,9 @@ 
$result_nodes{'printindex_index_entry_in_copying_in_footnote'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -734,8 +746,10 @@ 
$result_nodes{'printindex_index_entry_in_copying_in_footnote'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl 
b/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl
index 90af2ec03b..5272fb4e43 100644
--- a/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl
+++ b/tp/t/results/indices/printindex_index_entry_in_copying_no_insertcopying.pl
@@ -788,13 +788,15 @@ 
$result_trees{'printindex_index_entry_in_copying_no_insertcopying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 20,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -910,14 +912,16 @@ 
$result_trees{'printindex_index_entry_in_copying_no_insertcopying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 29,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1105,7 +1109,6 @@ Top.
 ';
 
 $result_sectioning{'printindex_index_entry_in_copying_no_insertcopying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1119,7 +1122,6 @@ 
$result_sectioning{'printindex_index_entry_in_copying_no_insertcopying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1134,16 +1136,24 @@ 
$result_sectioning{'printindex_index_entry_in_copying_no_insertcopying'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'printindex_index_entry_in_copying_no_insertcopying'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'printindex_index_entry_in_copying_no_insertcopying'}{'section_childs'}[0];
 
$result_sectioning{'printindex_index_entry_in_copying_no_insertcopying'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'printindex_index_entry_in_copying_no_insertcopying'}{'section_childs'}[0];
@@ -1158,7 +1168,9 @@ 
$result_nodes{'printindex_index_entry_in_copying_no_insertcopying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1171,8 +1183,10 @@ 
$result_nodes{'printindex_index_entry_in_copying_no_insertcopying'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter',
diff --git a/tp/t/results/indices/same_index_entry_merged_indices.pl 
b/tp/t/results/indices/same_index_entry_merged_indices.pl
index 00a8cf7b49..9b4fb94b6a 100644
--- a/tp/t/results/indices/same_index_entry_merged_indices.pl
+++ b/tp/t/results/indices/same_index_entry_merged_indices.pl
@@ -482,13 +482,15 @@ $result_trees{'same_index_entry_merged_indices'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -592,7 +594,6 @@ This variable represents MMM Mode.
 ';
 
 $result_sectioning{'same_index_entry_merged_indices'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -606,10 +607,15 @@ $result_sectioning{'same_index_entry_merged_indices'} = {
           }
         }
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'same_index_entry_merged_indices'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'same_index_entry_merged_indices'};
 
@@ -619,7 +625,9 @@ $result_nodes{'same_index_entry_merged_indices'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/seeentry.pl b/tp/t/results/indices/seeentry.pl
index ebb4714ce3..847002fa30 100644
--- a/tp/t/results/indices/seeentry.pl
+++ b/tp/t/results/indices/seeentry.pl
@@ -111,13 +111,15 @@ $result_trees{'seeentry'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -536,14 +538,16 @@ $result_trees{'seeentry'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -656,7 +660,6 @@ $result_texts{'seeentry'} = '
 ';
 
 $result_sectioning{'seeentry'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -669,7 +672,6 @@ $result_sectioning{'seeentry'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -684,16 +686,24 @@ $result_sectioning{'seeentry'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'seeentry'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'seeentry'}{'section_childs'}[0];
 
$result_sectioning{'seeentry'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'seeentry'}{'section_childs'}[0];
@@ -706,7 +716,9 @@ $result_nodes{'seeentry'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -719,8 +731,10 @@ $result_nodes{'seeentry'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter-index',
diff --git a/tp/t/results/indices/subentries.pl 
b/tp/t/results/indices/subentries.pl
index 52c1fe8e1d..cc9d9b8be9 100644
--- a/tp/t/results/indices/subentries.pl
+++ b/tp/t/results/indices/subentries.pl
@@ -111,13 +111,15 @@ $result_trees{'subentries'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -940,14 +942,16 @@ $result_trees{'subentries'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1120,7 +1124,6 @@ $result_texts{'subentries'} = '
 ';
 
 $result_sectioning{'subentries'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1133,7 +1136,6 @@ $result_sectioning{'subentries'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1148,16 +1150,24 @@ $result_sectioning{'subentries'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'subentries'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'subentries'}{'section_childs'}[0];
 
$result_sectioning{'subentries'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'subentries'}{'section_childs'}[0];
@@ -1170,7 +1180,9 @@ $result_nodes{'subentries'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1183,8 +1195,10 @@ $result_nodes{'subentries'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter-index',
diff --git a/tp/t/results/indices/subentry_and_sortas.pl 
b/tp/t/results/indices/subentry_and_sortas.pl
index 73c605adf0..8558f451bc 100644
--- a/tp/t/results/indices/subentry_and_sortas.pl
+++ b/tp/t/results/indices/subentry_and_sortas.pl
@@ -111,13 +111,15 @@ $result_trees{'subentry_and_sortas'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -518,14 +520,16 @@ $result_trees{'subentry_and_sortas'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -626,7 +630,6 @@ $result_texts{'subentry_and_sortas'} = '
 ';
 
 $result_sectioning{'subentry_and_sortas'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -639,7 +642,6 @@ $result_sectioning{'subentry_and_sortas'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -654,16 +656,24 @@ $result_sectioning{'subentry_and_sortas'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'subentry_and_sortas'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'subentry_and_sortas'}{'section_childs'}[0];
 
$result_sectioning{'subentry_and_sortas'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'subentry_and_sortas'}{'section_childs'}[0];
@@ -676,7 +686,9 @@ $result_nodes{'subentry_and_sortas'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -689,8 +701,10 @@ $result_nodes{'subentry_and_sortas'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter-index',
diff --git a/tp/t/results/indices/syncode_index_print_both.pl 
b/tp/t/results/indices/syncode_index_print_both.pl
index 8e8a246d25..eda7909052 100644
--- a/tp/t/results/indices/syncode_index_print_both.pl
+++ b/tp/t/results/indices/syncode_index_print_both.pl
@@ -156,13 +156,15 @@ $result_trees{'syncode_index_print_both'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -437,14 +439,16 @@ $result_trees{'syncode_index_print_both'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -551,7 +555,6 @@ Print cp
 ';
 
 $result_sectioning{'syncode_index_print_both'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -565,7 +568,6 @@ $result_sectioning{'syncode_index_print_both'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -580,16 +582,24 @@ $result_sectioning{'syncode_index_print_both'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'syncode_index_print_both'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'syncode_index_print_both'}{'section_childs'}[0];
 
$result_sectioning{'syncode_index_print_both'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'syncode_index_print_both'}{'section_childs'}[0];
@@ -604,7 +614,9 @@ $result_nodes{'syncode_index_print_both'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -617,8 +629,10 @@ $result_nodes{'syncode_index_print_both'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter-index',
diff --git a/tp/t/results/indices/transparent_sort_chars.pl 
b/tp/t/results/indices/transparent_sort_chars.pl
index ac59fc0fc8..23a9c9ab0c 100644
--- a/tp/t/results/indices/transparent_sort_chars.pl
+++ b/tp/t/results/indices/transparent_sort_chars.pl
@@ -317,13 +317,15 @@ $result_trees{'transparent_sort_chars'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -392,7 +394,6 @@ $result_texts{'transparent_sort_chars'} = '
 ';
 
 $result_sectioning{'transparent_sort_chars'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -406,10 +407,15 @@ $result_sectioning{'transparent_sort_chars'} = {
           }
         }
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'transparent_sort_chars'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'transparent_sort_chars'};
 
@@ -419,7 +425,9 @@ $result_nodes{'transparent_sort_chars'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/indices/w_lines_count.pl 
b/tp/t/results/indices/w_lines_count.pl
index fd65b861ab..d0ef43db79 100644
--- a/tp/t/results/indices/w_lines_count.pl
+++ b/tp/t/results/indices/w_lines_count.pl
@@ -275,13 +275,15 @@ $result_trees{'w_lines_count'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -347,7 +349,6 @@ Compilation mode also defines the keys SPC and DEL to
 ';
 
 $result_sectioning{'w_lines_count'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -361,10 +362,15 @@ $result_sectioning{'w_lines_count'} = {
           }
         }
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'w_lines_count'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'w_lines_count'};
 
@@ -374,7 +380,9 @@ $result_nodes{'w_lines_count'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/info_tests/anchor_and_spaces.pl 
b/tp/t/results/info_tests/anchor_and_spaces.pl
index f3b7b945f7..925b0053bd 100644
--- a/tp/t/results/info_tests/anchor_and_spaces.pl
+++ b/tp/t/results/info_tests/anchor_and_spaces.pl
@@ -208,13 +208,15 @@ $result_trees{'anchor_and_spaces'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -269,7 +271,6 @@ No space.
 ';
 
 $result_sectioning{'anchor_and_spaces'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -283,10 +284,15 @@ $result_sectioning{'anchor_and_spaces'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'anchor_and_spaces'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'anchor_and_spaces'};
 
@@ -298,7 +304,9 @@ $result_nodes{'anchor_and_spaces'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/info_tests/before_node_and_section.pl 
b/tp/t/results/info_tests/before_node_and_section.pl
index c73d72461e..11467a0d08 100644
--- a/tp/t/results/info_tests/before_node_and_section.pl
+++ b/tp/t/results/info_tests/before_node_and_section.pl
@@ -591,13 +591,15 @@ $result_trees{'before_node_and_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 12,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -707,14 +709,16 @@ $result_trees{'before_node_and_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -874,7 +878,6 @@ ref to anchor1, which is before @node Top: anchor1.
 ';
 
 $result_sectioning{'before_node_and_section'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -888,7 +891,6 @@ $result_sectioning{'before_node_and_section'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -903,16 +905,24 @@ $result_sectioning{'before_node_and_section'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'before_node_and_section'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'before_node_and_section'}{'section_childs'}[0];
 
$result_sectioning{'before_node_and_section'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'before_node_and_section'}{'section_childs'}[0];
@@ -927,7 +937,9 @@ $result_nodes{'before_node_and_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -940,8 +952,10 @@ $result_nodes{'before_node_and_section'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'node1',
diff --git a/tp/t/results/info_tests/def_in_copying.pl 
b/tp/t/results/info_tests/def_in_copying.pl
index 4ce7572b91..0eb53f004d 100644
--- a/tp/t/results/info_tests/def_in_copying.pl
+++ b/tp/t/results/info_tests/def_in_copying.pl
@@ -741,13 +741,15 @@ $result_trees{'def_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -901,7 +903,6 @@ deffnx lines
 ';
 
 $result_sectioning{'def_in_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -916,10 +917,15 @@ $result_sectioning{'def_in_copying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'def_in_copying'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'def_in_copying'};
 
@@ -931,7 +937,9 @@ $result_nodes{'def_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/info_tests/direntry_dircategory_and_commands.pl 
b/tp/t/results/info_tests/direntry_dircategory_and_commands.pl
index 8d35aca732..040d89adc3 100644
--- a/tp/t/results/info_tests/direntry_dircategory_and_commands.pl
+++ b/tp/t/results/info_tests/direntry_dircategory_and_commands.pl
@@ -497,13 +497,15 @@ $result_trees{'direntry_dircategory_and_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 16,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -621,7 +623,6 @@ Text
 ';
 
 $result_sectioning{'direntry_dircategory_and_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -635,10 +636,15 @@ $result_sectioning{'direntry_dircategory_and_commands'} = 
{
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'direntry_dircategory_and_commands'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'direntry_dircategory_and_commands'};
 
@@ -650,7 +656,9 @@ $result_nodes{'direntry_dircategory_and_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/info_tests/index_entry_at_end_node.pl 
b/tp/t/results/info_tests/index_entry_at_end_node.pl
index 468ffeb2f2..63af332d46 100644
--- a/tp/t/results/info_tests/index_entry_at_end_node.pl
+++ b/tp/t/results/info_tests/index_entry_at_end_node.pl
@@ -261,13 +261,15 @@ $result_trees{'index_entry_at_end_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -398,14 +400,16 @@ $result_trees{'index_entry_at_end_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -509,14 +513,16 @@ $result_trees{'index_entry_at_end_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -634,7 +640,6 @@ Appendix A indices
 ';
 
 $result_sectioning{'index_entry_at_end_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -648,7 +653,6 @@ $result_sectioning{'index_entry_at_end_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -662,9 +666,11 @@ $result_sectioning{'index_entry_at_end_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -681,17 +687,25 @@ $result_sectioning{'index_entry_at_end_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'index_entry_at_end_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'index_entry_at_end_node'}{'section_childs'}[0];
 
$result_sectioning{'index_entry_at_end_node'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'index_entry_at_end_node'}{'section_childs'}[0];
@@ -710,7 +724,9 @@ $result_nodes{'index_entry_at_end_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -723,8 +739,10 @@ $result_nodes{'index_entry_at_end_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -737,8 +755,10 @@ $result_nodes{'index_entry_at_end_node'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 'A'
+          'number' => 'A',
+          'structure' => {
+            'level' => 1
+          }
         },
         'isindex' => 1,
         'normalized' => 'indices',
diff --git a/tp/t/results/info_tests/no_node_but_top.pl 
b/tp/t/results/info_tests/no_node_but_top.pl
index 3a0cd5f26b..4daa24f50f 100644
--- a/tp/t/results/info_tests/no_node_but_top.pl
+++ b/tp/t/results/info_tests/no_node_but_top.pl
@@ -34,13 +34,15 @@ $result_trees{'no_node_but_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -59,17 +61,21 @@ $result_texts{'no_node_but_top'} = 'top
 ';
 
 $result_sectioning{'no_node_but_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'no_node_but_top'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'no_node_but_top'};
 
diff --git a/tp/t/results/info_tests/paragraphindent_and_preamble.pl 
b/tp/t/results/info_tests/paragraphindent_and_preamble.pl
index 05a24c342b..226043b4ca 100644
--- a/tp/t/results/info_tests/paragraphindent_and_preamble.pl
+++ b/tp/t/results/info_tests/paragraphindent_and_preamble.pl
@@ -266,13 +266,15 @@ $result_trees{'paragraphindent_and_preamble'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -365,7 +367,6 @@ After paragraphindent.
 ';
 
 $result_sectioning{'paragraphindent_and_preamble'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -379,10 +380,15 @@ $result_sectioning{'paragraphindent_and_preamble'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'paragraphindent_and_preamble'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'paragraphindent_and_preamble'};
 
@@ -394,7 +400,9 @@ $result_nodes{'paragraphindent_and_preamble'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/info_tests/space_in_menu.pl 
b/tp/t/results/info_tests/space_in_menu.pl
index 595009f326..c279589c97 100644
--- a/tp/t/results/info_tests/space_in_menu.pl
+++ b/tp/t/results/info_tests/space_in_menu.pl
@@ -215,13 +215,15 @@ $result_trees{'space_in_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -304,14 +306,16 @@ $result_trees{'space_in_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -389,7 +393,6 @@ in chapter.
 ';
 
 $result_sectioning{'space_in_menu'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -403,7 +406,6 @@ $result_sectioning{'space_in_menu'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -417,16 +419,24 @@ $result_sectioning{'space_in_menu'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'space_in_menu'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'space_in_menu'}{'section_childs'}[0];
 
$result_sectioning{'space_in_menu'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'space_in_menu'}{'section_childs'}[0];
@@ -441,7 +451,9 @@ $result_nodes{'space_in_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -454,8 +466,10 @@ $result_nodes{'space_in_menu'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'node',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/info_tests/split_no_copying.pl 
b/tp/t/results/info_tests/split_no_copying.pl
index 376c79630a..ffde01a012 100644
--- a/tp/t/results/info_tests/split_no_copying.pl
+++ b/tp/t/results/info_tests/split_no_copying.pl
@@ -262,13 +262,15 @@ $result_trees{'split_no_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -357,14 +359,16 @@ $result_trees{'split_no_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -471,7 +475,6 @@ First chapter.
 ';
 
 $result_sectioning{'split_no_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -485,7 +488,6 @@ $result_sectioning{'split_no_copying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -499,16 +501,24 @@ $result_sectioning{'split_no_copying'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'split_no_copying'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'split_no_copying'}{'section_childs'}[0];
 
$result_sectioning{'split_no_copying'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'split_no_copying'}{'section_childs'}[0];
@@ -523,7 +533,9 @@ $result_nodes{'split_no_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -536,8 +548,10 @@ $result_nodes{'split_no_copying'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Ch1',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/info_tests/split_test_before_first_node.pl 
b/tp/t/results/info_tests/split_test_before_first_node.pl
index b40c607d22..baa71544a2 100644
--- a/tp/t/results/info_tests/split_test_before_first_node.pl
+++ b/tp/t/results/info_tests/split_test_before_first_node.pl
@@ -268,13 +268,15 @@ $result_trees{'split_test_before_first_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -363,14 +365,16 @@ $result_trees{'split_test_before_first_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -465,7 +469,6 @@ In chap1.
 ';
 
 $result_sectioning{'split_test_before_first_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -479,7 +482,6 @@ $result_sectioning{'split_test_before_first_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -493,16 +495,24 @@ $result_sectioning{'split_test_before_first_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'split_test_before_first_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'split_test_before_first_node'}{'section_childs'}[0];
 
$result_sectioning{'split_test_before_first_node'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'split_test_before_first_node'}{'section_childs'}[0];
@@ -517,7 +527,9 @@ $result_nodes{'split_test_before_first_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -530,8 +542,10 @@ $result_nodes{'split_test_before_first_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap1',
       'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/info_tests/split_test_before_first_node_no_empty_line.pl 
b/tp/t/results/info_tests/split_test_before_first_node_no_empty_line.pl
index 9905a47fc0..1b191115f0 100644
--- a/tp/t/results/info_tests/split_test_before_first_node_no_empty_line.pl
+++ b/tp/t/results/info_tests/split_test_before_first_node_no_empty_line.pl
@@ -262,13 +262,15 @@ 
$result_trees{'split_test_before_first_node_no_empty_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -357,14 +359,16 @@ 
$result_trees{'split_test_before_first_node_no_empty_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -456,7 +460,6 @@ In chap1.
 ';
 
 $result_sectioning{'split_test_before_first_node_no_empty_line'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -470,7 +473,6 @@ 
$result_sectioning{'split_test_before_first_node_no_empty_line'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -484,16 +486,24 @@ 
$result_sectioning{'split_test_before_first_node_no_empty_line'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'split_test_before_first_node_no_empty_line'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'split_test_before_first_node_no_empty_line'}{'section_childs'}[0];
 
$result_sectioning{'split_test_before_first_node_no_empty_line'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'split_test_before_first_node_no_empty_line'}{'section_childs'}[0];
@@ -508,7 +518,9 @@ $result_nodes{'split_test_before_first_node_no_empty_line'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -521,8 +533,10 @@ 
$result_nodes{'split_test_before_first_node_no_empty_line'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap1',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/info_tests/test_index.pl 
b/tp/t/results/info_tests/test_index.pl
index 3e7bb0954c..e0a2955f31 100644
--- a/tp/t/results/info_tests/test_index.pl
+++ b/tp/t/results/info_tests/test_index.pl
@@ -252,14 +252,16 @@ $result_trees{'test_index'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
                     'line_nr' => {
                       'file_name' => '',
                       'line_nr' => 229,
                       'macro' => ''
                     },
                     'number' => 'B',
-                    'parent' => {}
+                    'parent' => {},
+                    'structure' => {
+                      'level' => 1
+                    }
                   }
                 },
                 'node_argument' => {
@@ -1203,13 +1205,15 @@ $result_trees{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2886,14 +2890,16 @@ $result_trees{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 32,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {
@@ -3126,14 +3132,16 @@ $result_trees{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 206,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3164,14 +3172,16 @@ $result_trees{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 219,
         'macro' => ''
       },
       'number' => 'A.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3202,14 +3212,16 @@ $result_trees{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 221,
         'macro' => ''
       },
       'number' => 'A.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3257,13 +3269,13 @@ $result_trees{'test_index'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 225,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -3275,14 +3287,16 @@ $result_trees{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 223,
         'macro' => ''
       },
       'number' => 'A.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -3313,13 +3327,15 @@ $result_trees{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 227,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {
@@ -4329,7 +4345,6 @@ B chapter end
 ';
 
 $result_sectioning{'test_index'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -4343,7 +4358,6 @@ $result_sectioning{'test_index'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -4357,9 +4371,11 @@ $result_sectioning{'test_index'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -4376,7 +4392,6 @@ $result_sectioning{'test_index'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_childs' => [
             {
@@ -4384,7 +4399,6 @@ $result_sectioning{'test_index'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => 'A.1',
               'section_childs' => [
                 {
@@ -4392,7 +4406,6 @@ $result_sectioning{'test_index'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => 'A.1.1',
                   'section_childs' => [
                     {
@@ -4400,19 +4413,30 @@ $result_sectioning{'test_index'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => 'A.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -4421,9 +4445,11 @@ $result_sectioning{'test_index'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -4432,17 +4458,25 @@ $result_sectioning{'test_index'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'B',
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'test_index'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'test_index'}{'section_childs'}[0];
 
$result_sectioning{'test_index'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'test_index'}{'section_childs'}[0];
@@ -4472,7 +4506,9 @@ $result_nodes{'test_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -4485,8 +4521,10 @@ $result_nodes{'test_index'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'name',
       'spaces_before_argument' => ' '
@@ -4499,8 +4537,10 @@ $result_nodes{'test_index'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 'A'
+          'number' => 'A',
+          'structure' => {
+            'level' => 1
+          }
         },
         'isindex' => 1,
         'normalized' => 
'name1-looooooooooooooooooooooooooooooooooooooooooooooooooooooooong',
diff --git a/tp/t/results/info_tests/text_before_node.pl 
b/tp/t/results/info_tests/text_before_node.pl
index 6480770821..e8dbdd4991 100644
--- a/tp/t/results/info_tests/text_before_node.pl
+++ b/tp/t/results/info_tests/text_before_node.pl
@@ -209,13 +209,15 @@ $result_trees{'text_before_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -276,14 +278,16 @@ $result_trees{'text_before_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -350,7 +354,6 @@ text.
 ';
 
 $result_sectioning{'text_before_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -364,7 +367,6 @@ $result_sectioning{'text_before_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -378,16 +380,24 @@ $result_sectioning{'text_before_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'text_before_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'text_before_node'}{'section_childs'}[0];
 
$result_sectioning{'text_before_node'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'text_before_node'}{'section_childs'}[0];
@@ -402,7 +412,9 @@ $result_nodes{'text_before_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -415,8 +427,10 @@ $result_nodes{'text_before_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/invalid_nestings/node_in_copying_not_closed.pl 
b/tp/t/results/invalid_nestings/node_in_copying_not_closed.pl
index a05871c0f0..ae4d0756be 100644
--- a/tp/t/results/invalid_nestings/node_in_copying_not_closed.pl
+++ b/tp/t/results/invalid_nestings/node_in_copying_not_closed.pl
@@ -149,13 +149,15 @@ $result_trees{'node_in_copying_not_closed'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -199,7 +201,6 @@ $result_texts{'node_in_copying_not_closed'} = 'Top section
 ';
 
 $result_sectioning{'node_in_copying_not_closed'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -213,10 +214,15 @@ $result_sectioning{'node_in_copying_not_closed'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'node_in_copying_not_closed'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'node_in_copying_not_closed'};
 
@@ -228,7 +234,9 @@ $result_nodes{'node_in_copying_not_closed'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/invalid_nestings/on_section_line.pl 
b/tp/t/results/invalid_nestings/on_section_line.pl
index 091de0f854..8705c60617 100644
--- a/tp/t/results/invalid_nestings/on_section_line.pl
+++ b/tp/t/results/invalid_nestings/on_section_line.pl
@@ -161,14 +161,16 @@ $result_trees{'on_section_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -206,18 +208,22 @@ $result_texts{'on_section_line'} = '1 Text in titlefont  
exdent
 ';
 
 $result_sectioning{'on_section_line'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'on_section_line'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'on_section_line'};
 
diff --git a/tp/t/results/invalid_nestings/on_subheading_line.pl 
b/tp/t/results/invalid_nestings/on_subheading_line.pl
index 4d611beded..d952831cf4 100644
--- a/tp/t/results/invalid_nestings/on_subheading_line.pl
+++ b/tp/t/results/invalid_nestings/on_subheading_line.pl
@@ -157,13 +157,13 @@ $result_trees{'on_subheading_line'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 1,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         }
       ],
       'parent' => {},
diff --git a/tp/t/results/invalid_nestings/section_in_copying.pl 
b/tp/t/results/invalid_nestings/section_in_copying.pl
index a8f4ba6a11..06c21f2550 100644
--- a/tp/t/results/invalid_nestings/section_in_copying.pl
+++ b/tp/t/results/invalid_nestings/section_in_copying.pl
@@ -78,14 +78,16 @@ $result_trees{'section_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -115,18 +117,22 @@ $result_texts{'section_in_copying'} = '1 section
 ';
 
 $result_sectioning{'section_in_copying'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_in_copying'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'section_in_copying'};
 
diff --git a/tp/t/results/invalid_nestings/section_in_flushright.pl 
b/tp/t/results/invalid_nestings/section_in_flushright.pl
index 23b16a4c19..26c3c11a66 100644
--- a/tp/t/results/invalid_nestings/section_in_flushright.pl
+++ b/tp/t/results/invalid_nestings/section_in_flushright.pl
@@ -78,14 +78,16 @@ $result_trees{'section_in_flushright'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -118,18 +120,22 @@ text flushed right
 ';
 
 $result_sectioning{'section_in_flushright'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_in_flushright'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'section_in_flushright'};
 
diff --git a/tp/t/results/invalid_nestings/section_in_footnote.pl 
b/tp/t/results/invalid_nestings/section_in_footnote.pl
index 1016dc5f43..0247dad53c 100644
--- a/tp/t/results/invalid_nestings/section_in_footnote.pl
+++ b/tp/t/results/invalid_nestings/section_in_footnote.pl
@@ -79,14 +79,16 @@ $result_trees{'section_in_footnote'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -115,18 +117,22 @@ Text1 a section
 ';
 
 $result_sectioning{'section_in_footnote'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_in_footnote'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'section_in_footnote'};
 
diff --git a/tp/t/results/invalid_nestings/section_in_math.pl 
b/tp/t/results/invalid_nestings/section_in_math.pl
index 0aa30d0891..c1fa84837d 100644
--- a/tp/t/results/invalid_nestings/section_in_math.pl
+++ b/tp/t/results/invalid_nestings/section_in_math.pl
@@ -144,14 +144,16 @@ $result_trees{'section_in_math'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -175,14 +177,16 @@ $result_trees{'section_in_math'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -235,29 +239,35 @@ More in math
 ';
 
 $result_sectioning{'section_in_math'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_in_math'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'section_in_math'};
 $result_sectioning{'section_in_math'}{'section_childs'}[1]{'section_prev'} = 
$result_sectioning{'section_in_math'}{'section_childs'}[0];
diff --git a/tp/t/results/invalid_nestings/section_in_nested_block_commands.pl 
b/tp/t/results/invalid_nestings/section_in_nested_block_commands.pl
index f290c2d80b..c8687a6cd5 100644
--- a/tp/t/results/invalid_nestings/section_in_nested_block_commands.pl
+++ b/tp/t/results/invalid_nestings/section_in_nested_block_commands.pl
@@ -179,14 +179,16 @@ $result_trees{'section_in_nested_block_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -239,18 +241,22 @@ in quotation
 ';
 
 $result_sectioning{'section_in_nested_block_commands'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'section_in_nested_block_commands'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_in_nested_block_commands'};
 
diff --git a/tp/t/results/invalid_nestings/section_in_table.pl 
b/tp/t/results/invalid_nestings/section_in_table.pl
index 79044e350e..065065d63a 100644
--- a/tp/t/results/invalid_nestings/section_in_table.pl
+++ b/tp/t/results/invalid_nestings/section_in_table.pl
@@ -154,14 +154,16 @@ $result_trees{'section_in_table'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -207,18 +209,22 @@ After
 ';
 
 $result_sectioning{'section_in_table'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_in_table'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'section_in_table'};
 
diff --git a/tp/t/results/invalid_nestings/section_on_def_line.pl 
b/tp/t/results/invalid_nestings/section_on_def_line.pl
index ef800dfb11..f6fca910b4 100644
--- a/tp/t/results/invalid_nestings/section_on_def_line.pl
+++ b/tp/t/results/invalid_nestings/section_on_def_line.pl
@@ -98,14 +98,16 @@ $result_trees{'section_on_def_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -138,18 +140,22 @@ Something
 ';
 
 $result_sectioning{'section_on_def_line'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_on_def_line'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'section_on_def_line'};
 
diff --git a/tp/t/results/invalid_nestings/section_on_defx_line.pl 
b/tp/t/results/invalid_nestings/section_on_defx_line.pl
index 6640763370..78a98defbb 100644
--- a/tp/t/results/invalid_nestings/section_on_defx_line.pl
+++ b/tp/t/results/invalid_nestings/section_on_defx_line.pl
@@ -201,14 +201,16 @@ $result_trees{'section_on_defx_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -258,18 +260,22 @@ Something
 ';
 
 $result_sectioning{'section_on_defx_line'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_on_defx_line'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'section_on_defx_line'};
 
diff --git a/tp/t/results/invalid_nestings/section_on_index_entry_line.pl 
b/tp/t/results/invalid_nestings/section_on_index_entry_line.pl
index f5a074cc68..ee2a51118e 100644
--- a/tp/t/results/invalid_nestings/section_on_index_entry_line.pl
+++ b/tp/t/results/invalid_nestings/section_on_index_entry_line.pl
@@ -77,14 +77,16 @@ $result_trees{'section_on_index_entry_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -113,18 +115,22 @@ Somethin
 ';
 
 $result_sectioning{'section_on_index_entry_line'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'section_on_index_entry_line'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_on_index_entry_line'};
 
diff --git 
a/tp/t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl 
b/tp/t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl
index 7fe7292fbf..74905aa08a 100644
--- a/tp/t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl
+++ b/tp/t/results/invalid_nestings/style_not_closed_no_newline_root_commands.pl
@@ -227,13 +227,15 @@ 
$result_trees{'style_not_closed_no_newline_root_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -334,14 +336,16 @@ 
$result_trees{'style_not_closed_no_newline_root_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -435,7 +439,6 @@ still not closed
 ';
 
 $result_sectioning{'style_not_closed_no_newline_root_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -449,7 +452,6 @@ 
$result_sectioning{'style_not_closed_no_newline_root_commands'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -463,16 +465,24 @@ 
$result_sectioning{'style_not_closed_no_newline_root_commands'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'style_not_closed_no_newline_root_commands'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'style_not_closed_no_newline_root_commands'}{'section_childs'}[0];
 
$result_sectioning{'style_not_closed_no_newline_root_commands'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'style_not_closed_no_newline_root_commands'}{'section_childs'}[0];
@@ -487,7 +497,9 @@ $result_nodes{'style_not_closed_no_newline_root_commands'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -500,8 +512,10 @@ $result_nodes{'style_not_closed_no_newline_root_commands'} 
= {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/invalid_nestings/style_not_closed_root_commands.pl 
b/tp/t/results/invalid_nestings/style_not_closed_root_commands.pl
index bf1284b968..e7301506f5 100644
--- a/tp/t/results/invalid_nestings/style_not_closed_root_commands.pl
+++ b/tp/t/results/invalid_nestings/style_not_closed_root_commands.pl
@@ -233,13 +233,15 @@ $result_trees{'style_not_closed_root_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -346,14 +348,16 @@ $result_trees{'style_not_closed_root_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -453,7 +457,6 @@ still not closed
 ';
 
 $result_sectioning{'style_not_closed_root_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -467,7 +470,6 @@ $result_sectioning{'style_not_closed_root_commands'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -481,16 +483,24 @@ $result_sectioning{'style_not_closed_root_commands'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'style_not_closed_root_commands'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'style_not_closed_root_commands'}{'section_childs'}[0];
 
$result_sectioning{'style_not_closed_root_commands'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'style_not_closed_root_commands'}{'section_childs'}[0];
@@ -505,7 +515,9 @@ $result_nodes{'style_not_closed_root_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -518,8 +530,10 @@ $result_nodes{'style_not_closed_root_commands'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/invalid_nestings/unclosed_verb_on_section_line.pl 
b/tp/t/results/invalid_nestings/unclosed_verb_on_section_line.pl
index dfad4ba7df..98dc70a64e 100644
--- a/tp/t/results/invalid_nestings/unclosed_verb_on_section_line.pl
+++ b/tp/t/results/invalid_nestings/unclosed_verb_on_section_line.pl
@@ -69,14 +69,16 @@ $result_trees{'unclosed_verb_on_section_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -104,18 +106,22 @@ Now text.
 ';
 
 $result_sectioning{'unclosed_verb_on_section_line'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'unclosed_verb_on_section_line'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'unclosed_verb_on_section_line'};
 
diff --git a/tp/t/results/itemize/inter_item_commands_in_enumerate.pl 
b/tp/t/results/itemize/inter_item_commands_in_enumerate.pl
index c5de0475e2..6f68ed3db3 100644
--- a/tp/t/results/itemize/inter_item_commands_in_enumerate.pl
+++ b/tp/t/results/itemize/inter_item_commands_in_enumerate.pl
@@ -118,13 +118,15 @@ $result_trees{'inter_item_commands_in_enumerate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1112,14 +1114,16 @@ $result_trees{'inter_item_commands_in_enumerate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1358,7 +1362,6 @@ Title
 ';
 
 $result_sectioning{'inter_item_commands_in_enumerate'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1372,7 +1375,6 @@ $result_sectioning{'inter_item_commands_in_enumerate'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1386,16 +1388,24 @@ $result_sectioning{'inter_item_commands_in_enumerate'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'inter_item_commands_in_enumerate'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'inter_item_commands_in_enumerate'}{'section_childs'}[0];
 
$result_sectioning{'inter_item_commands_in_enumerate'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'inter_item_commands_in_enumerate'}{'section_childs'}[0];
@@ -1410,7 +1420,9 @@ $result_nodes{'inter_item_commands_in_enumerate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1423,8 +1435,10 @@ $result_nodes{'inter_item_commands_in_enumerate'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/itemize/inter_item_commands_in_itemize.pl 
b/tp/t/results/itemize/inter_item_commands_in_itemize.pl
index 4084db3b15..b50aef99e2 100644
--- a/tp/t/results/itemize/inter_item_commands_in_itemize.pl
+++ b/tp/t/results/itemize/inter_item_commands_in_itemize.pl
@@ -118,13 +118,15 @@ $result_trees{'inter_item_commands_in_itemize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -749,14 +751,16 @@ $result_trees{'inter_item_commands_in_itemize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -910,7 +914,6 @@ bullet item
 ';
 
 $result_sectioning{'inter_item_commands_in_itemize'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -924,7 +927,6 @@ $result_sectioning{'inter_item_commands_in_itemize'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -938,16 +940,24 @@ $result_sectioning{'inter_item_commands_in_itemize'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'inter_item_commands_in_itemize'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'inter_item_commands_in_itemize'}{'section_childs'}[0];
 
$result_sectioning{'inter_item_commands_in_itemize'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'inter_item_commands_in_itemize'}{'section_childs'}[0];
@@ -962,7 +972,9 @@ $result_nodes{'inter_item_commands_in_itemize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -975,8 +987,10 @@ $result_nodes{'inter_item_commands_in_itemize'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/languages/appendix_translated.pl 
b/tp/t/results/languages/appendix_translated.pl
index cd36fbc5d7..efa4616e8c 100644
--- a/tp/t/results/languages/appendix_translated.pl
+++ b/tp/t/results/languages/appendix_translated.pl
@@ -118,13 +118,15 @@ $result_trees{'appendix_translated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -172,14 +174,16 @@ $result_trees{'appendix_translated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -226,7 +230,6 @@ Appendix A dernier
 ';
 
 $result_sectioning{'appendix_translated'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -240,23 +243,30 @@ $result_sectioning{'appendix_translated'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'appendix',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'appendix_translated'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'appendix_translated'}{'section_childs'}[0];
 
$result_sectioning{'appendix_translated'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'appendix_translated'}{'section_childs'}[0];
@@ -271,7 +281,9 @@ $result_nodes{'appendix_translated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/languages/command_translated.pl 
b/tp/t/results/languages/command_translated.pl
index fd4f291b4c..d289d1df54 100644
--- a/tp/t/results/languages/command_translated.pl
+++ b/tp/t/results/languages/command_translated.pl
@@ -163,13 +163,15 @@ $result_trees{'command_translated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -212,7 +214,6 @@ error-->
 ';
 
 $result_sectioning{'command_translated'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -226,10 +227,15 @@ $result_sectioning{'command_translated'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'command_translated'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'command_translated'};
 
@@ -241,7 +247,9 @@ $result_nodes{'command_translated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/languages/multiple_lang_chapters.pl 
b/tp/t/results/languages/multiple_lang_chapters.pl
index c708f804c5..bb74a0c742 100644
--- a/tp/t/results/languages/multiple_lang_chapters.pl
+++ b/tp/t/results/languages/multiple_lang_chapters.pl
@@ -575,13 +575,15 @@ $result_trees{'multiple_lang_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -899,14 +901,16 @@ $result_trees{'multiple_lang_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1224,14 +1228,16 @@ $result_trees{'multiple_lang_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1503,14 +1509,16 @@ $result_trees{'multiple_lang_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 41,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1611,14 +1619,16 @@ $result_trees{'multiple_lang_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 48,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1736,14 +1746,16 @@ $result_trees{'multiple_lang_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 52,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -2076,7 +2088,6 @@ In brazilian. chapter ja.
 ';
 
 $result_sectioning{'multiple_lang_chapters'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -2090,7 +2101,6 @@ $result_sectioning{'multiple_lang_chapters'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -2104,9 +2114,11 @@ $result_sectioning{'multiple_lang_chapters'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2122,10 +2134,12 @@ $result_sectioning{'multiple_lang_chapters'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2141,10 +2155,12 @@ $result_sectioning{'multiple_lang_chapters'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2160,10 +2176,12 @@ $result_sectioning{'multiple_lang_chapters'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2179,17 +2197,25 @@ $result_sectioning{'multiple_lang_chapters'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'multiple_lang_chapters'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'multiple_lang_chapters'}{'section_childs'}[0];
 
$result_sectioning{'multiple_lang_chapters'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'multiple_lang_chapters'}{'section_childs'}[0];
@@ -2220,7 +2246,9 @@ $result_nodes{'multiple_lang_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -2233,8 +2261,10 @@ $result_nodes{'multiple_lang_chapters'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-ja',
       'spaces_before_argument' => ' '
@@ -2247,8 +2277,10 @@ $result_nodes{'multiple_lang_chapters'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chapter-en',
         'spaces_before_argument' => ' '
@@ -2261,8 +2293,10 @@ $result_nodes{'multiple_lang_chapters'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter-fr_005fFR',
           'spaces_before_argument' => ' '
@@ -2275,8 +2309,10 @@ $result_nodes{'multiple_lang_chapters'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'chapter-de',
             'spaces_before_argument' => ' '
@@ -2289,8 +2325,10 @@ $result_nodes{'multiple_lang_chapters'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 'chapter-pt_005fBR',
               'spaces_before_argument' => ' '
diff --git a/tp/t/results/languages/multiple_lang_chapters_latex.pl 
b/tp/t/results/languages/multiple_lang_chapters_latex.pl
index 09101d8b8b..756df41580 100644
--- a/tp/t/results/languages/multiple_lang_chapters_latex.pl
+++ b/tp/t/results/languages/multiple_lang_chapters_latex.pl
@@ -575,13 +575,15 @@ $result_trees{'multiple_lang_chapters_latex'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -899,14 +901,16 @@ $result_trees{'multiple_lang_chapters_latex'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1224,14 +1228,16 @@ $result_trees{'multiple_lang_chapters_latex'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1503,14 +1509,16 @@ $result_trees{'multiple_lang_chapters_latex'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 41,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1611,14 +1619,16 @@ $result_trees{'multiple_lang_chapters_latex'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 48,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1736,14 +1746,16 @@ $result_trees{'multiple_lang_chapters_latex'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 52,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -2076,7 +2088,6 @@ In brazilian. chapter ja.
 ';
 
 $result_sectioning{'multiple_lang_chapters_latex'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -2090,7 +2101,6 @@ $result_sectioning{'multiple_lang_chapters_latex'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -2104,9 +2114,11 @@ $result_sectioning{'multiple_lang_chapters_latex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2122,10 +2134,12 @@ $result_sectioning{'multiple_lang_chapters_latex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2141,10 +2155,12 @@ $result_sectioning{'multiple_lang_chapters_latex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2160,10 +2176,12 @@ $result_sectioning{'multiple_lang_chapters_latex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2179,17 +2197,25 @@ $result_sectioning{'multiple_lang_chapters_latex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'multiple_lang_chapters_latex'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'multiple_lang_chapters_latex'}{'section_childs'}[0];
 
$result_sectioning{'multiple_lang_chapters_latex'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'multiple_lang_chapters_latex'}{'section_childs'}[0];
@@ -2220,7 +2246,9 @@ $result_nodes{'multiple_lang_chapters_latex'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -2233,8 +2261,10 @@ $result_nodes{'multiple_lang_chapters_latex'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-ja',
       'spaces_before_argument' => ' '
@@ -2247,8 +2277,10 @@ $result_nodes{'multiple_lang_chapters_latex'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chapter-en',
         'spaces_before_argument' => ' '
@@ -2261,8 +2293,10 @@ $result_nodes{'multiple_lang_chapters_latex'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter-fr_005fFR',
           'spaces_before_argument' => ' '
@@ -2275,8 +2309,10 @@ $result_nodes{'multiple_lang_chapters_latex'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'chapter-de',
             'spaces_before_argument' => ' '
@@ -2289,8 +2325,10 @@ $result_nodes{'multiple_lang_chapters_latex'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 'chapter-pt_005fBR',
               'spaces_before_argument' => ' '
diff --git a/tp/t/results/languages/multiple_lang_chapters_texi2html.pl 
b/tp/t/results/languages/multiple_lang_chapters_texi2html.pl
index 9249a42615..76a96445c3 100644
--- a/tp/t/results/languages/multiple_lang_chapters_texi2html.pl
+++ b/tp/t/results/languages/multiple_lang_chapters_texi2html.pl
@@ -546,13 +546,15 @@ $result_trees{'multiple_lang_chapters_texi2html'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -870,14 +872,16 @@ $result_trees{'multiple_lang_chapters_texi2html'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1195,14 +1199,16 @@ $result_trees{'multiple_lang_chapters_texi2html'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1474,14 +1480,16 @@ $result_trees{'multiple_lang_chapters_texi2html'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 41,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1582,14 +1590,16 @@ $result_trees{'multiple_lang_chapters_texi2html'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 48,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1707,14 +1717,16 @@ $result_trees{'multiple_lang_chapters_texi2html'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 52,
         'macro' => ''
       },
       'number' => 5,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -2043,7 +2055,6 @@ In brazilian. chapter ja.
 ';
 
 $result_sectioning{'multiple_lang_chapters_texi2html'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -2057,7 +2068,6 @@ $result_sectioning{'multiple_lang_chapters_texi2html'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -2071,9 +2081,11 @@ $result_sectioning{'multiple_lang_chapters_texi2html'} = 
{
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2089,10 +2101,12 @@ $result_sectioning{'multiple_lang_chapters_texi2html'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2108,10 +2122,12 @@ $result_sectioning{'multiple_lang_chapters_texi2html'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2127,10 +2143,12 @@ $result_sectioning{'multiple_lang_chapters_texi2html'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2146,17 +2164,25 @@ $result_sectioning{'multiple_lang_chapters_texi2html'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 5,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'multiple_lang_chapters_texi2html'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'multiple_lang_chapters_texi2html'}{'section_childs'}[0];
 
$result_sectioning{'multiple_lang_chapters_texi2html'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'multiple_lang_chapters_texi2html'}{'section_childs'}[0];
@@ -2187,7 +2213,9 @@ $result_nodes{'multiple_lang_chapters_texi2html'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -2200,8 +2228,10 @@ $result_nodes{'multiple_lang_chapters_texi2html'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-ja',
       'spaces_before_argument' => ' '
@@ -2214,8 +2244,10 @@ $result_nodes{'multiple_lang_chapters_texi2html'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chapter-en',
         'spaces_before_argument' => ' '
@@ -2228,8 +2260,10 @@ $result_nodes{'multiple_lang_chapters_texi2html'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter-fr_005fFR',
           'spaces_before_argument' => ' '
@@ -2242,8 +2276,10 @@ $result_nodes{'multiple_lang_chapters_texi2html'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'chapter-de',
             'spaces_before_argument' => ' '
@@ -2256,8 +2292,10 @@ $result_nodes{'multiple_lang_chapters_texi2html'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1,
-                'number' => 5
+                'number' => 5,
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 'chapter-pt_005fBR',
               'spaces_before_argument' => ' '
diff --git a/tp/t/results/languages/unknown_language.pl 
b/tp/t/results/languages/unknown_language.pl
index 31733ff8e3..65c612bfbb 100644
--- a/tp/t/results/languages/unknown_language.pl
+++ b/tp/t/results/languages/unknown_language.pl
@@ -251,13 +251,15 @@ $result_trees{'unknown_language'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -322,7 +324,6 @@ Another unknown language. Top.
 ';
 
 $result_sectioning{'unknown_language'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -336,10 +337,15 @@ $result_sectioning{'unknown_language'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'unknown_language'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'unknown_language'};
 
@@ -351,7 +357,9 @@ $result_nodes{'unknown_language'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle.pl 
b/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle.pl
index ec24892b96..abd3200162 100644
--- a/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle.pl
+++ b/tp/t/results/latex_tests/anchor_links_xref_xrefautomaticsectiontitle.pl
@@ -268,13 +268,15 @@ 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -864,14 +866,16 @@ 
$result_trees{'anchor_links_xref_xrefautomaticsectiontitle'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1068,7 +1072,6 @@ anch: in chap.
 ';
 
 $result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1082,7 +1085,6 @@ 
$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1096,16 +1098,24 @@ 
$result_sectioning{'anchor_links_xref_xrefautomaticsectiontitle'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$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];
@@ -1120,7 +1130,9 @@ 
$result_nodes{'anchor_links_xref_xrefautomaticsectiontitle'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1133,8 +1145,10 @@ 
$result_nodes{'anchor_links_xref_xrefautomaticsectiontitle'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/custom_headings.pl 
b/tp/t/results/latex_tests/custom_headings.pl
index b28f33a98a..ddbf6dd7a3 100644
--- a/tp/t/results/latex_tests/custom_headings.pl
+++ b/tp/t/results/latex_tests/custom_headings.pl
@@ -294,13 +294,15 @@ $result_trees{'custom_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -442,14 +444,16 @@ $result_trees{'custom_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -480,14 +484,16 @@ $result_trees{'custom_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -630,14 +636,16 @@ $result_trees{'custom_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 22,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -744,14 +752,16 @@ $result_trees{'custom_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 34,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -945,7 +955,6 @@ after everyheading before chap 3 second page
 ';
 
 $result_sectioning{'custom_headings'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -959,7 +968,6 @@ $result_sectioning{'custom_headings'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -973,7 +981,6 @@ $result_sectioning{'custom_headings'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -981,12 +988,17 @@ $result_sectioning{'custom_headings'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -995,10 +1007,12 @@ $result_sectioning{'custom_headings'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1007,17 +1021,25 @@ $result_sectioning{'custom_headings'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'custom_headings'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'custom_headings'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'custom_headings'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'custom_headings'}{'section_childs'}[0];
@@ -1041,7 +1063,9 @@ $result_nodes{'custom_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1054,8 +1078,10 @@ $result_nodes{'custom_headings'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/float_and_refs.pl 
b/tp/t/results/latex_tests/float_and_refs.pl
index faf3190d39..d11f44717f 100644
--- a/tp/t/results/latex_tests/float_and_refs.pl
+++ b/tp/t/results/latex_tests/float_and_refs.pl
@@ -118,13 +118,15 @@ $result_trees{'float_and_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -713,14 +715,16 @@ $result_trees{'float_and_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1705,14 +1709,16 @@ $result_trees{'float_and_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 27,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1842,14 +1848,16 @@ $result_trees{'float_and_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 47,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -2237,7 +2245,6 @@ my figure.
 ';
 
 $result_sectioning{'float_and_refs'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -2251,7 +2258,6 @@ $result_sectioning{'float_and_refs'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -2265,9 +2271,11 @@ $result_sectioning{'float_and_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2276,10 +2284,12 @@ $result_sectioning{'float_and_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -2288,17 +2298,25 @@ $result_sectioning{'float_and_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'float_and_refs'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'float_and_refs'}{'section_childs'}[0];
 
$result_sectioning{'float_and_refs'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'float_and_refs'}{'section_childs'}[0];
@@ -2321,7 +2339,9 @@ $result_nodes{'float_and_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -2334,8 +2354,10 @@ $result_nodes{'float_and_refs'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -2382,8 +2404,10 @@ $result_floats{'float_and_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'no-type',
         'shortcaption' => {
diff --git a/tp/t/results/latex_tests/fonttextsize.pl 
b/tp/t/results/latex_tests/fonttextsize.pl
index e03cb9175b..b7780fb395 100644
--- a/tp/t/results/latex_tests/fonttextsize.pl
+++ b/tp/t/results/latex_tests/fonttextsize.pl
@@ -155,13 +155,15 @@ $result_trees{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -233,14 +235,16 @@ $result_trees{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -271,14 +275,16 @@ $result_trees{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -351,14 +357,16 @@ $result_trees{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -435,14 +443,16 @@ $result_trees{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => '1.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -519,14 +529,16 @@ $result_trees{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 22,
         'macro' => ''
       },
       'number' => '1.1.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -568,14 +580,16 @@ $result_trees{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 27,
         'macro' => ''
       },
       'number' => '1.1.4',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
   ],
   'type' => 'document_root'
@@ -711,7 +725,6 @@ In 15pts
 ';
 
 $result_sectioning{'fonttextsize'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -725,7 +738,6 @@ $result_sectioning{'fonttextsize'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -739,7 +751,6 @@ $result_sectioning{'fonttextsize'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -747,7 +758,6 @@ $result_sectioning{'fonttextsize'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -755,52 +765,72 @@ $result_sectioning{'fonttextsize'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.2',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.3',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.4',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'fonttextsize'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'fonttextsize'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'fonttextsize'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'fonttextsize'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -823,7 +853,9 @@ $result_nodes{'fonttextsize'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -836,8 +868,10 @@ $result_nodes{'fonttextsize'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/indices.pl 
b/tp/t/results/latex_tests/indices.pl
index 8a07d44fbf..46db7013d1 100644
--- a/tp/t/results/latex_tests/indices.pl
+++ b/tp/t/results/latex_tests/indices.pl
@@ -148,13 +148,15 @@ $result_trees{'indices'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1019,14 +1021,16 @@ $result_trees{'indices'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1223,7 +1227,6 @@ top section
 ';
 
 $result_sectioning{'indices'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1237,7 +1240,6 @@ $result_sectioning{'indices'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1252,16 +1254,24 @@ $result_sectioning{'indices'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'indices'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'indices'}{'section_childs'}[0];
 
$result_sectioning{'indices'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'indices'}{'section_childs'}[0];
@@ -1276,7 +1286,9 @@ $result_nodes{'indices'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1289,8 +1301,10 @@ $result_nodes{'indices'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter',
diff --git a/tp/t/results/latex_tests/pagesizes.pl 
b/tp/t/results/latex_tests/pagesizes.pl
index 2fd40fdea1..d080d77a17 100644
--- a/tp/t/results/latex_tests/pagesizes.pl
+++ b/tp/t/results/latex_tests/pagesizes.pl
@@ -152,13 +152,15 @@ $result_trees{'pagesizes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -264,14 +266,16 @@ $result_trees{'pagesizes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -364,14 +368,16 @@ $result_trees{'pagesizes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -455,7 +461,6 @@ section top
 ';
 
 $result_sectioning{'pagesizes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -469,7 +474,6 @@ $result_sectioning{'pagesizes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -483,9 +487,11 @@ $result_sectioning{'pagesizes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -494,17 +500,25 @@ $result_sectioning{'pagesizes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'pagesizes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'pagesizes'}{'section_childs'}[0];
 
$result_sectioning{'pagesizes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'pagesizes'}{'section_childs'}[0];
@@ -523,7 +537,9 @@ $result_nodes{'pagesizes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -536,8 +552,10 @@ $result_nodes{'pagesizes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/pagetype.pl 
b/tp/t/results/latex_tests/pagetype.pl
index 85b6f814d4..f1aaf97f07 100644
--- a/tp/t/results/latex_tests/pagetype.pl
+++ b/tp/t/results/latex_tests/pagetype.pl
@@ -154,13 +154,15 @@ $result_trees{'pagetype'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -313,14 +315,16 @@ $result_trees{'pagetype'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -362,14 +366,16 @@ $result_trees{'pagetype'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 22,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -474,7 +480,6 @@ In afourpaper reset
 ';
 
 $result_sectioning{'pagetype'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -488,7 +493,6 @@ $result_sectioning{'pagetype'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -502,9 +506,11 @@ $result_sectioning{'pagetype'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -513,17 +519,25 @@ $result_sectioning{'pagetype'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'pagetype'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'pagetype'}{'section_childs'}[0];
 
$result_sectioning{'pagetype'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'pagetype'}{'section_childs'}[0];
@@ -542,7 +556,9 @@ $result_nodes{'pagetype'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -555,8 +571,10 @@ $result_nodes{'pagetype'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/settitle_and_headings.pl 
b/tp/t/results/latex_tests/settitle_and_headings.pl
index 886442798b..152eb603ee 100644
--- a/tp/t/results/latex_tests/settitle_and_headings.pl
+++ b/tp/t/results/latex_tests/settitle_and_headings.pl
@@ -214,14 +214,16 @@ $result_trees{'settitle_and_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -286,18 +288,22 @@ Another page
 ';
 
 $result_sectioning{'settitle_and_headings'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'settitle_and_headings'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'settitle_and_headings'};
 
diff --git a/tp/t/results/latex_tests/shorttitlepage.pl 
b/tp/t/results/latex_tests/shorttitlepage.pl
index eda9891e57..9c11fa7759 100644
--- a/tp/t/results/latex_tests/shorttitlepage.pl
+++ b/tp/t/results/latex_tests/shorttitlepage.pl
@@ -160,13 +160,15 @@ $result_trees{'shorttitlepage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -249,14 +251,16 @@ $result_trees{'shorttitlepage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -319,7 +323,6 @@ In chapter
 ';
 
 $result_sectioning{'shorttitlepage'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -333,7 +336,6 @@ $result_sectioning{'shorttitlepage'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -347,16 +349,24 @@ $result_sectioning{'shorttitlepage'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'shorttitlepage'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'shorttitlepage'}{'section_childs'}[0];
 
$result_sectioning{'shorttitlepage'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'shorttitlepage'}{'section_childs'}[0];
@@ -371,7 +381,9 @@ $result_nodes{'shorttitlepage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -384,8 +396,10 @@ $result_nodes{'shorttitlepage'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/titlepage_classical.pl 
b/tp/t/results/latex_tests/titlepage_classical.pl
index 2999250198..2e2b054663 100644
--- a/tp/t/results/latex_tests/titlepage_classical.pl
+++ b/tp/t/results/latex_tests/titlepage_classical.pl
@@ -472,13 +472,15 @@ $result_trees{'titlepage_classical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 22,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -567,14 +569,16 @@ $result_trees{'titlepage_classical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -697,7 +701,6 @@ In chapter
 ';
 
 $result_sectioning{'titlepage_classical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -711,7 +714,6 @@ $result_sectioning{'titlepage_classical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -725,16 +727,24 @@ $result_sectioning{'titlepage_classical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'titlepage_classical'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'titlepage_classical'}{'section_childs'}[0];
 
$result_sectioning{'titlepage_classical'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'titlepage_classical'}{'section_childs'}[0];
@@ -749,7 +759,9 @@ $result_nodes{'titlepage_classical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -762,8 +774,10 @@ $result_nodes{'titlepage_classical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/titlepage_in_top_node.pl 
b/tp/t/results/latex_tests/titlepage_in_top_node.pl
index 35ce942380..5598bfcd98 100644
--- a/tp/t/results/latex_tests/titlepage_in_top_node.pl
+++ b/tp/t/results/latex_tests/titlepage_in_top_node.pl
@@ -222,13 +222,15 @@ $result_trees{'titlepage_in_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -311,14 +313,16 @@ $result_trees{'titlepage_in_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -395,7 +399,6 @@ in chap
 ';
 
 $result_sectioning{'titlepage_in_top_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -409,7 +412,6 @@ $result_sectioning{'titlepage_in_top_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -423,16 +425,24 @@ $result_sectioning{'titlepage_in_top_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'titlepage_in_top_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'titlepage_in_top_node'}{'section_childs'}[0];
 
$result_sectioning{'titlepage_in_top_node'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'titlepage_in_top_node'}{'section_childs'}[0];
@@ -447,7 +457,9 @@ $result_nodes{'titlepage_in_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -460,8 +472,10 @@ $result_nodes{'titlepage_in_top_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/titlepage_long_title.pl 
b/tp/t/results/latex_tests/titlepage_long_title.pl
index 8b00d0c9ac..349ab2e6d5 100644
--- a/tp/t/results/latex_tests/titlepage_long_title.pl
+++ b/tp/t/results/latex_tests/titlepage_long_title.pl
@@ -213,13 +213,15 @@ $result_trees{'titlepage_long_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -302,14 +304,16 @@ $result_trees{'titlepage_long_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -380,7 +384,6 @@ In chapter
 ';
 
 $result_sectioning{'titlepage_long_title'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -394,7 +397,6 @@ $result_sectioning{'titlepage_long_title'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -408,16 +410,24 @@ $result_sectioning{'titlepage_long_title'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'titlepage_long_title'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'titlepage_long_title'}{'section_childs'}[0];
 
$result_sectioning{'titlepage_long_title'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'titlepage_long_title'}{'section_childs'}[0];
@@ -432,7 +442,9 @@ $result_nodes{'titlepage_long_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -445,8 +457,10 @@ $result_nodes{'titlepage_long_title'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/titlepage_no_author.pl 
b/tp/t/results/latex_tests/titlepage_no_author.pl
index 2f344c9445..4e03610d20 100644
--- a/tp/t/results/latex_tests/titlepage_no_author.pl
+++ b/tp/t/results/latex_tests/titlepage_no_author.pl
@@ -199,13 +199,15 @@ $result_trees{'titlepage_no_author'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -288,14 +290,16 @@ $result_trees{'titlepage_no_author'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -362,7 +366,6 @@ In chapter
 ';
 
 $result_sectioning{'titlepage_no_author'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -376,7 +379,6 @@ $result_sectioning{'titlepage_no_author'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -390,16 +392,24 @@ $result_sectioning{'titlepage_no_author'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'titlepage_no_author'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'titlepage_no_author'}{'section_childs'}[0];
 
$result_sectioning{'titlepage_no_author'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'titlepage_no_author'}{'section_childs'}[0];
@@ -414,7 +424,9 @@ $result_nodes{'titlepage_no_author'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -427,8 +439,10 @@ $result_nodes{'titlepage_no_author'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/titlepage_no_title.pl 
b/tp/t/results/latex_tests/titlepage_no_title.pl
index 197019d036..a5bb141a98 100644
--- a/tp/t/results/latex_tests/titlepage_no_title.pl
+++ b/tp/t/results/latex_tests/titlepage_no_title.pl
@@ -233,13 +233,15 @@ $result_trees{'titlepage_no_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -322,14 +324,16 @@ $result_trees{'titlepage_no_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 12,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -404,7 +408,6 @@ In chapter
 ';
 
 $result_sectioning{'titlepage_no_title'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -418,7 +421,6 @@ $result_sectioning{'titlepage_no_title'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -432,16 +434,24 @@ $result_sectioning{'titlepage_no_title'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'titlepage_no_title'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'titlepage_no_title'}{'section_childs'}[0];
 
$result_sectioning{'titlepage_no_title'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'titlepage_no_title'}{'section_childs'}[0];
@@ -456,7 +466,9 @@ $result_nodes{'titlepage_no_title'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -469,8 +481,10 @@ $result_nodes{'titlepage_no_title'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/latex_tests/titlepage_with_commands_classical.pl 
b/tp/t/results/latex_tests/titlepage_with_commands_classical.pl
index 1f1ca0aab2..7e6ee7fa47 100644
--- a/tp/t/results/latex_tests/titlepage_with_commands_classical.pl
+++ b/tp/t/results/latex_tests/titlepage_with_commands_classical.pl
@@ -649,13 +649,15 @@ $result_trees{'titlepage_with_commands_classical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 28,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -744,14 +746,16 @@ $result_trees{'titlepage_with_commands_classical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -910,7 +914,6 @@ In chapter
 ';
 
 $result_sectioning{'titlepage_with_commands_classical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -924,7 +927,6 @@ $result_sectioning{'titlepage_with_commands_classical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -938,16 +940,24 @@ $result_sectioning{'titlepage_with_commands_classical'} = 
{
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'titlepage_with_commands_classical'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'titlepage_with_commands_classical'}{'section_childs'}[0];
 
$result_sectioning{'titlepage_with_commands_classical'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'titlepage_with_commands_classical'}{'section_childs'}[0];
@@ -962,7 +972,9 @@ $result_nodes{'titlepage_with_commands_classical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -975,8 +987,10 @@ $result_nodes{'titlepage_with_commands_classical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation.pl 
b/tp/t/results/layout/navigation.pl
index cb0c18fa7b..2c42fbebc0 100644
--- a/tp/t/results/layout/navigation.pl
+++ b/tp/t/results/layout/navigation.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'navigation'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_chapter.pl 
b/tp/t/results/layout/navigation_chapter.pl
index a1c62af828..633f3f2546 100644
--- a/tp/t/results/layout/navigation_chapter.pl
+++ b/tp/t/results/layout/navigation_chapter.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_chapter'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_chapter'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_chapter'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_chapter'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_chapter'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_chapter'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_chapter'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_chapter'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_chapter'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_chapter'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_chapter_no_header.pl 
b/tp/t/results/layout/navigation_chapter_no_header.pl
index ed8c6897b7..2d74dffa1e 100644
--- a/tp/t/results/layout/navigation_chapter_no_header.pl
+++ b/tp/t/results/layout/navigation_chapter_no_header.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_chapter_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_chapter_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_chapter_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_chapter_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_chapter_no_header'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_chapter_no_header'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_chapter_no_header'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_chapter_no_header'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_chapter_no_header'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_chapter_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_chapter_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter_no_header'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_chapter_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_chapter_no_header'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_chapter_no_header'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_chapter_no_header'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_chapter_no_header_vertical.pl 
b/tp/t/results/layout/navigation_chapter_no_header_vertical.pl
index 0b5b26d929..a633cb9786 100644
--- a/tp/t/results/layout/navigation_chapter_no_header_vertical.pl
+++ b/tp/t/results/layout/navigation_chapter_no_header_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_chapter_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_chapter_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_chapter_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_chapter_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_chapter_no_header_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ 
$result_sectioning{'navigation_chapter_no_header_vertical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ 
$result_sectioning{'navigation_chapter_no_header_vertical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ 
$result_sectioning{'navigation_chapter_no_header_vertical'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ 
$result_sectioning{'navigation_chapter_no_header_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_chapter_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_chapter_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_chapter_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_chapter_no_header_vertical'} = 
{
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_chapter_no_header_vertical'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_chapter_no_header_vertical'} = 
{
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_chapter_vertical.pl 
b/tp/t/results/layout/navigation_chapter_vertical.pl
index 6f92b4291c..94c4a99301 100644
--- a/tp/t/results/layout/navigation_chapter_vertical.pl
+++ b/tp/t/results/layout/navigation_chapter_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_chapter_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_chapter_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_chapter_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_chapter_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_chapter_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_chapter_vertical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_chapter_vertical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_chapter_vertical'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_chapter_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_chapter_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_chapter_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_chapter_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_chapter_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_chapter_vertical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_chapter_vertical'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_chapter_vertical'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_no_header.pl 
b/tp/t/results/layout/navigation_no_header.pl
index 0b166d40b5..be98b9870a 100644
--- a/tp/t/results/layout/navigation_no_header.pl
+++ b/tp/t/results/layout/navigation_no_header.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_no_header'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_no_header'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_no_header'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_no_header'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_no_header'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_no_header'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_no_header'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_no_header'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_no_header'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_no_header_vertical.pl 
b/tp/t/results/layout/navigation_no_header_vertical.pl
index 7b31468165..d6fc9fed0d 100644
--- a/tp/t/results/layout/navigation_no_header_vertical.pl
+++ b/tp/t/results/layout/navigation_no_header_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_no_header_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_no_header_vertical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_no_header_vertical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_no_header_vertical'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_no_header_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_no_header_vertical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_no_header_vertical'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_no_header_vertical'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_node.pl 
b/tp/t/results/layout/navigation_node.pl
index 8e578ccd6f..18282c4e4d 100644
--- a/tp/t/results/layout/navigation_node.pl
+++ b/tp/t/results/layout/navigation_node.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_node'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_node'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_node'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_node'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_node_no_header.pl 
b/tp/t/results/layout/navigation_node_no_header.pl
index 75da91dee6..a97da91f18 100644
--- a/tp/t/results/layout/navigation_node_no_header.pl
+++ b/tp/t/results/layout/navigation_node_no_header.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_node_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_node_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_node_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_node_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_node_no_header'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_node_no_header'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_node_no_header'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_node_no_header'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_node_no_header'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_node_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_node_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node_no_header'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_node_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_node_no_header'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_node_no_header'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_node_no_header'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_node_no_header_vertical.pl 
b/tp/t/results/layout/navigation_node_no_header_vertical.pl
index efa412cb26..1645957b2c 100644
--- a/tp/t/results/layout/navigation_node_no_header_vertical.pl
+++ b/tp/t/results/layout/navigation_node_no_header_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_node_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_node_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_node_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_node_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_node_no_header_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_node_no_header_vertical'} 
= {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_node_no_header_vertical'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_node_no_header_vertical'} 
= {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ 
$result_sectioning{'navigation_node_no_header_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_node_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_node_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_node_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_node_no_header_vertical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_node_no_header_vertical'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_node_no_header_vertical'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_node_vertical.pl 
b/tp/t/results/layout/navigation_node_vertical.pl
index f9a8b17192..b4349a16d0 100644
--- a/tp/t/results/layout/navigation_node_vertical.pl
+++ b/tp/t/results/layout/navigation_node_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_node_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_node_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_node_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_node_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_node_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_node_vertical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_node_vertical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_node_vertical'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_node_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_node_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_node_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_node_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_node_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_node_vertical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_node_vertical'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_node_vertical'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_section.pl 
b/tp/t/results/layout/navigation_section.pl
index 22822e049e..fae8c491eb 100644
--- a/tp/t/results/layout/navigation_section.pl
+++ b/tp/t/results/layout/navigation_section.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_section'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_section'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_section'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_section'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_section'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_section'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_section'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_section'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_section'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_section'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_section_no_header.pl 
b/tp/t/results/layout/navigation_section_no_header.pl
index 44391c8131..64caff1ad1 100644
--- a/tp/t/results/layout/navigation_section_no_header.pl
+++ b/tp/t/results/layout/navigation_section_no_header.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_section_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_section_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_section_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_section_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_section_no_header'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_section_no_header'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_section_no_header'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_section_no_header'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_section_no_header'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_section_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_section_no_header'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section_no_header'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_section_no_header'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_section_no_header'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_section_no_header'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_section_no_header'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_section_no_header_vertical.pl 
b/tp/t/results/layout/navigation_section_no_header_vertical.pl
index 95d6489b8b..9d90740bc1 100644
--- a/tp/t/results/layout/navigation_section_no_header_vertical.pl
+++ b/tp/t/results/layout/navigation_section_no_header_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_section_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_section_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_section_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_section_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_section_no_header_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ 
$result_sectioning{'navigation_section_no_header_vertical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ 
$result_sectioning{'navigation_section_no_header_vertical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ 
$result_sectioning{'navigation_section_no_header_vertical'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ 
$result_sectioning{'navigation_section_no_header_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_section_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_section_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section_no_header_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_section_no_header_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_section_no_header_vertical'} = 
{
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_section_no_header_vertical'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_section_no_header_vertical'} = 
{
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_section_vertical.pl 
b/tp/t/results/layout/navigation_section_vertical.pl
index c51497ec5f..73988d63b5 100644
--- a/tp/t/results/layout/navigation_section_vertical.pl
+++ b/tp/t/results/layout/navigation_section_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_section_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_section_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_section_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_section_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_section_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_section_vertical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_section_vertical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_section_vertical'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_section_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_section_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_section_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_section_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_section_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_section_vertical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_section_vertical'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_section_vertical'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/navigation_vertical.pl 
b/tp/t/results/layout/navigation_vertical.pl
index 4e5779e215..e9be9d7476 100644
--- a/tp/t/results/layout/navigation_vertical.pl
+++ b/tp/t/results/layout/navigation_vertical.pl
@@ -258,13 +258,15 @@ $result_trees{'navigation_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -452,14 +454,16 @@ $result_trees{'navigation_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,14 +877,16 @@ $result_trees{'navigation_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -975,14 +981,16 @@ $result_trees{'navigation_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'navigation.texi',
         'line_nr' => 54,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1255,7 +1263,6 @@ b b b b b b b b b b b b b b b b  b b b b b bb b b b b b b 
 bb  b bb.
 ';
 
 $result_sectioning{'navigation_vertical'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1269,7 +1276,6 @@ $result_sectioning{'navigation_vertical'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1283,7 +1289,6 @@ $result_sectioning{'navigation_vertical'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1298,7 +1303,6 @@ $result_sectioning{'navigation_vertical'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1313,22 +1317,36 @@ $result_sectioning{'navigation_vertical'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'navigation_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'navigation_vertical'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'navigation_vertical'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1345,7 +1363,9 @@ $result_nodes{'navigation_vertical'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1358,8 +1378,10 @@ $result_nodes{'navigation_vertical'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1372,8 +1394,10 @@ $result_nodes{'navigation_vertical'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1386,8 +1410,10 @@ $result_nodes{'navigation_vertical'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/layout/no_monolithic.pl 
b/tp/t/results/layout/no_monolithic.pl
index ecd7762de9..48e61c3b2a 100644
--- a/tp/t/results/layout/no_monolithic.pl
+++ b/tp/t/results/layout/no_monolithic.pl
@@ -354,13 +354,15 @@ $result_trees{'no_monolithic'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'no_monolithic.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -521,14 +523,16 @@ $result_trees{'no_monolithic'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'no_monolithic.texi',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -666,7 +670,6 @@ Chapter.
 ';
 
 $result_sectioning{'no_monolithic'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -680,7 +683,6 @@ $result_sectioning{'no_monolithic'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -695,16 +697,24 @@ $result_sectioning{'no_monolithic'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'no_monolithic'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'no_monolithic'}{'section_childs'}[0];
 
$result_sectioning{'no_monolithic'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'no_monolithic'}{'section_childs'}[0];
@@ -719,7 +729,9 @@ $result_nodes{'no_monolithic'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -732,8 +744,10 @@ $result_nodes{'no_monolithic'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'chapter',
diff --git a/tp/t/results/macro/macro_in_misc_commands.pl 
b/tp/t/results/macro/macro_in_misc_commands.pl
index e3b4dfa20e..3c686796a3 100644
--- a/tp/t/results/macro/macro_in_misc_commands.pl
+++ b/tp/t/results/macro/macro_in_misc_commands.pl
@@ -184,13 +184,13 @@ $result_trees{'macro_in_misc_commands'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 11,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -3282,13 +3282,15 @@ $result_trees{'macro_in_misc_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -3490,14 +3492,16 @@ $result_trees{'macro_in_misc_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 204,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -4269,7 +4273,6 @@ line after exdent
 ';
 
 $result_sectioning{'macro_in_misc_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -4283,7 +4286,6 @@ $result_sectioning{'macro_in_misc_commands'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -4297,16 +4299,24 @@ $result_sectioning{'macro_in_misc_commands'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'macro_in_misc_commands'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'macro_in_misc_commands'}{'section_childs'}[0];
 
$result_sectioning{'macro_in_misc_commands'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'macro_in_misc_commands'}{'section_childs'}[0];
@@ -4321,7 +4331,9 @@ $result_nodes{'macro_in_misc_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -4334,8 +4346,10 @@ $result_nodes{'macro_in_misc_commands'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'node-atext',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/block_commands_in_menu_description.pl 
b/tp/t/results/menu/block_commands_in_menu_description.pl
index 13bc4ceb4a..c2a4c885da 100644
--- a/tp/t/results/menu/block_commands_in_menu_description.pl
+++ b/tp/t/results/menu/block_commands_in_menu_description.pl
@@ -582,13 +582,15 @@ $result_trees{'block_commands_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -722,7 +724,6 @@ Text.
 ';
 
 $result_sectioning{'block_commands_in_menu_description'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -736,10 +737,15 @@ $result_sectioning{'block_commands_in_menu_description'} 
= {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'block_commands_in_menu_description'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'block_commands_in_menu_description'};
 
@@ -751,7 +757,9 @@ $result_nodes{'block_commands_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/comment_on_menu_line.pl 
b/tp/t/results/menu/comment_on_menu_line.pl
index 245ed346c1..7401ddd337 100644
--- a/tp/t/results/menu/comment_on_menu_line.pl
+++ b/tp/t/results/menu/comment_on_menu_line.pl
@@ -217,14 +217,16 @@ $result_trees{'comment_on_menu_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -324,7 +326,6 @@ $result_texts{'comment_on_menu_line'} = '
 ';
 
 $result_sectioning{'comment_on_menu_line'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -338,11 +339,16 @@ $result_sectioning{'comment_on_menu_line'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'comment_on_menu_line'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'comment_on_menu_line'};
 
@@ -354,8 +360,10 @@ $result_nodes{'comment_on_menu_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/detailmenu_on_subnodes.pl 
b/tp/t/results/menu/detailmenu_on_subnodes.pl
index 1184277072..ac32def457 100644
--- a/tp/t/results/menu/detailmenu_on_subnodes.pl
+++ b/tp/t/results/menu/detailmenu_on_subnodes.pl
@@ -591,13 +591,15 @@ $result_trees{'detailmenu_on_subnodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -785,14 +787,16 @@ $result_trees{'detailmenu_on_subnodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -864,14 +868,16 @@ $result_trees{'detailmenu_on_subnodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 28,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1116,14 +1122,16 @@ $result_trees{'detailmenu_on_subnodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1195,14 +1203,16 @@ $result_trees{'detailmenu_on_subnodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 39,
         'macro' => ''
       },
       'number' => '2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1267,13 +1277,15 @@ $result_trees{'detailmenu_on_subnodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 42,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -1541,7 +1553,6 @@ unnumberedsec
 ';
 
 $result_sectioning{'detailmenu_on_subnodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1555,7 +1566,6 @@ $result_sectioning{'detailmenu_on_subnodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1569,7 +1579,6 @@ $result_sectioning{'detailmenu_on_subnodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1584,12 +1593,17 @@ $result_sectioning{'detailmenu_on_subnodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1605,7 +1619,6 @@ $result_sectioning{'detailmenu_on_subnodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -1620,9 +1633,11 @@ $result_sectioning{'detailmenu_on_subnodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -1636,20 +1651,31 @@ $result_sectioning{'detailmenu_on_subnodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'detailmenu_on_subnodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'detailmenu_on_subnodes'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'detailmenu_on_subnodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'detailmenu_on_subnodes'}{'section_childs'}[0];
@@ -1672,7 +1698,9 @@ $result_nodes{'detailmenu_on_subnodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1685,8 +1713,10 @@ $result_nodes{'detailmenu_on_subnodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -1699,8 +1729,10 @@ $result_nodes{'detailmenu_on_subnodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1730,8 +1762,10 @@ $result_nodes{'detailmenu_on_subnodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chapter-2',
         'spaces_before_argument' => ' '
@@ -1744,8 +1778,10 @@ $result_nodes{'detailmenu_on_subnodes'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2,
-            'number' => '2.1'
+            'number' => '2.1',
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'section-chap-2',
           'spaces_before_argument' => ' '
@@ -1758,7 +1794,9 @@ $result_nodes{'detailmenu_on_subnodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'unnumberedsec',
             'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/direntry_dircategory_after_first_node.pl 
b/tp/t/results/menu/direntry_dircategory_after_first_node.pl
index 035d9d80b3..4d2d1b4a6a 100644
--- a/tp/t/results/menu/direntry_dircategory_after_first_node.pl
+++ b/tp/t/results/menu/direntry_dircategory_after_first_node.pl
@@ -243,13 +243,15 @@ $result_trees{'direntry_dircategory_after_first_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -308,7 +310,6 @@ $result_texts{'direntry_dircategory_after_first_node'} = 
'direntry direcategory
 ';
 
 $result_sectioning{'direntry_dircategory_after_first_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -322,10 +323,15 @@ 
$result_sectioning{'direntry_dircategory_after_first_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'direntry_dircategory_after_first_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'direntry_dircategory_after_first_node'};
 
@@ -337,7 +343,9 @@ $result_nodes{'direntry_dircategory_after_first_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/example_in_menu_description.pl 
b/tp/t/results/menu/example_in_menu_description.pl
index f2aee18732..b93446ec9e 100644
--- a/tp/t/results/menu/example_in_menu_description.pl
+++ b/tp/t/results/menu/example_in_menu_description.pl
@@ -292,13 +292,15 @@ $result_trees{'example_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -373,7 +375,6 @@ example
 ';
 
 $result_sectioning{'example_in_menu_description'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -387,10 +388,15 @@ $result_sectioning{'example_in_menu_description'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'example_in_menu_description'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'example_in_menu_description'};
 
@@ -402,7 +408,9 @@ $result_nodes{'example_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/inlineraw_in_menu_description.pl 
b/tp/t/results/menu/inlineraw_in_menu_description.pl
index 81c4e28909..a4f4fa9949 100644
--- a/tp/t/results/menu/inlineraw_in_menu_description.pl
+++ b/tp/t/results/menu/inlineraw_in_menu_description.pl
@@ -272,13 +272,15 @@ $result_trees{'inlineraw_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -346,7 +348,6 @@ $result_texts{'inlineraw_in_menu_description'} = 'top
 ';
 
 $result_sectioning{'inlineraw_in_menu_description'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -360,10 +361,15 @@ $result_sectioning{'inlineraw_in_menu_description'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'inlineraw_in_menu_description'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'inlineraw_in_menu_description'};
 
@@ -375,7 +381,9 @@ $result_nodes{'inlineraw_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/menu_pointing_to_anchor.pl 
b/tp/t/results/menu/menu_pointing_to_anchor.pl
index 4cc6315184..e5fc3ef219 100644
--- a/tp/t/results/menu/menu_pointing_to_anchor.pl
+++ b/tp/t/results/menu/menu_pointing_to_anchor.pl
@@ -249,13 +249,15 @@ $result_trees{'menu_pointing_to_anchor'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -320,7 +322,6 @@ Text
 ';
 
 $result_sectioning{'menu_pointing_to_anchor'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -334,10 +335,15 @@ $result_sectioning{'menu_pointing_to_anchor'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'menu_pointing_to_anchor'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'menu_pointing_to_anchor'};
 
@@ -349,7 +355,9 @@ $result_nodes{'menu_pointing_to_anchor'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/menu/submenu_in_example.pl 
b/tp/t/results/menu/submenu_in_example.pl
index 508268bbe0..5b8a8d584a 100644
--- a/tp/t/results/menu/submenu_in_example.pl
+++ b/tp/t/results/menu/submenu_in_example.pl
@@ -424,13 +424,13 @@ $result_trees{'submenu_in_example'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3,
                       'line_nr' => {
                         'file_name' => '',
                         'line_nr' => 23,
                         'macro' => ''
                       },
-                      'parent' => {}
+                      'parent' => {},
+                      'structure' => {}
                     },
                     {
                       'contents' => [
diff --git a/tp/t/results/menu/verb_in_menu_description.pl 
b/tp/t/results/menu/verb_in_menu_description.pl
index 138829ac3a..a4ef57f55c 100644
--- a/tp/t/results/menu/verb_in_menu_description.pl
+++ b/tp/t/results/menu/verb_in_menu_description.pl
@@ -255,13 +255,15 @@ $result_trees{'verb_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -328,7 +330,6 @@ $result_texts{'verb_in_menu_description'} = 'top
 ';
 
 $result_sectioning{'verb_in_menu_description'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -342,10 +343,15 @@ $result_sectioning{'verb_in_menu_description'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'verb_in_menu_description'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'verb_in_menu_description'};
 
@@ -357,7 +363,9 @@ $result_nodes{'verb_in_menu_description'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/misc_commands/also_not_line.pl 
b/tp/t/results/misc_commands/also_not_line.pl
index 7b32e3571d..4ef37fea0a 100644
--- a/tp/t/results/misc_commands/also_not_line.pl
+++ b/tp/t/results/misc_commands/also_not_line.pl
@@ -320,13 +320,13 @@ $result_trees{'also_not_line'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 18,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
diff --git 
a/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl 
b/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
index c92d8504a5..e74e17e975 100644
--- a/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
+++ b/tp/t/results/misc_commands/codequoteundirected_codequotebacktick.pl
@@ -4212,13 +4212,15 @@ $result_trees{'codequoteundirected_codequotebacktick'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 40,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -5111,7 +5113,6 @@ samp: ``simple-double--three---four----\'\' `simple\' 
quotedblleft: "
 ';
 
 $result_sectioning{'codequoteundirected_codequotebacktick'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -5125,10 +5126,15 @@ 
$result_sectioning{'codequoteundirected_codequotebacktick'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'codequoteundirected_codequotebacktick'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'codequoteundirected_codequotebacktick'};
 
@@ -5140,7 +5146,9 @@ $result_nodes{'codequoteundirected_codequotebacktick'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/misc_commands/comment_space_command_on_line.pl 
b/tp/t/results/misc_commands/comment_space_command_on_line.pl
index 69c3dfd825..93c8e14f7b 100644
--- a/tp/t/results/misc_commands/comment_space_command_on_line.pl
+++ b/tp/t/results/misc_commands/comment_space_command_on_line.pl
@@ -336,13 +336,13 @@ $result_trees{'comment_space_command_on_line'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 10,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -587,13 +587,15 @@ $result_trees{'comment_space_command_on_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -731,7 +733,6 @@ float
 ';
 
 $result_sectioning{'comment_space_command_on_line'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -746,10 +747,15 @@ $result_sectioning{'comment_space_command_on_line'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'comment_space_command_on_line'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'comment_space_command_on_line'};
 
@@ -761,7 +767,9 @@ $result_nodes{'comment_space_command_on_line'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -799,7 +807,9 @@ $result_floats{'comment_space_command_on_line'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 0
+          'structure' => {
+            'level' => 0
+          }
         },
         'normalized' => 'label',
         'spaces_before_argument' => ' ',
diff --git a/tp/t/results/misc_commands/no_empty_line_between_headings.pl 
b/tp/t/results/misc_commands/no_empty_line_between_headings.pl
index f000f8aa53..fc166fd45d 100644
--- a/tp/t/results/misc_commands/no_empty_line_between_headings.pl
+++ b/tp/t/results/misc_commands/no_empty_line_between_headings.pl
@@ -52,25 +52,27 @@ $result_trees{'no_empty_line_between_headings'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 2,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         }
       ],
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -94,14 +96,16 @@ $result_trees{'no_empty_line_between_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -125,14 +129,16 @@ $result_trees{'no_empty_line_between_headings'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -169,21 +175,18 @@ Subheading
 ';
 
 $result_sectioning{'no_empty_line_between_headings'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -191,19 +194,30 @@ $result_sectioning{'no_empty_line_between_headings'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'no_empty_line_between_headings'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'no_empty_line_between_headings'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'no_empty_line_between_headings'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'no_empty_line_between_headings'}{'section_childs'}[0];
diff --git a/tp/t/results/misc_commands/text_before_line_command.pl 
b/tp/t/results/misc_commands/text_before_line_command.pl
index ff7cd09a4d..b77bb69030 100644
--- a/tp/t/results/misc_commands/text_before_line_command.pl
+++ b/tp/t/results/misc_commands/text_before_line_command.pl
@@ -281,14 +281,16 @@ $result_trees{'text_before_line_command'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -357,7 +359,6 @@ aaa quotation
 ';
 
 $result_sectioning{'text_before_line_command'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -371,11 +372,16 @@ $result_sectioning{'text_before_line_command'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'text_before_line_command'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'text_before_line_command'};
 
@@ -387,8 +393,10 @@ $result_nodes{'text_before_line_command'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'LD-Version-Scripts',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/morecoverage/formatting_fr.pl 
b/tp/t/results/morecoverage/formatting_fr.pl
index 92384b6635..696a5e2c90 100644
--- a/tp/t/results/morecoverage/formatting_fr.pl
+++ b/tp/t/results/morecoverage/formatting_fr.pl
@@ -2085,13 +2085,15 @@ $result_trees{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2463,14 +2465,16 @@ $result_trees{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 85,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -2891,14 +2895,16 @@ $result_trees{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 100,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3183,14 +3189,16 @@ $result_trees{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 114,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3262,14 +3270,16 @@ $result_trees{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 124,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -3341,14 +3351,16 @@ $result_trees{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 127,
         'macro' => ''
       },
       'number' => '1.1.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -3523,13 +3535,15 @@ $result_trees{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 130,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -4292,7 +4306,6 @@ chapter 2
 ';
 
 $result_sectioning{'formatting_fr'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -4307,7 +4320,6 @@ $result_sectioning{'formatting_fr'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -4321,7 +4333,6 @@ $result_sectioning{'formatting_fr'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -4336,7 +4347,6 @@ $result_sectioning{'formatting_fr'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -4351,7 +4361,6 @@ $result_sectioning{'formatting_fr'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -4366,9 +4375,11 @@ $result_sectioning{'formatting_fr'} = {
                         },
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     },
                     {
                       'cmdname' => 'subsubsection',
@@ -4382,19 +4393,30 @@ $result_sectioning{'formatting_fr'} = {
                         },
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.2',
                       'section_prev' => {},
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -4411,16 +4433,24 @@ $result_sectioning{'formatting_fr'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'formatting_fr'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'formatting_fr'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'formatting_fr'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'formatting_fr'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -4444,7 +4474,9 @@ $result_nodes{'formatting_fr'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -4458,8 +4490,10 @@ $result_nodes{'formatting_fr'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -4472,7 +4506,9 @@ $result_nodes{'formatting_fr'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1
+          'structure' => {
+            'level' => 1
+          }
         },
         'isindex' => 1,
         'normalized' => 'chapter2',
diff --git a/tp/t/results/morecoverage/texi_formatting.pl 
b/tp/t/results/morecoverage/texi_formatting.pl
index f97b727f2b..2db99002ae 100644
--- a/tp/t/results/morecoverage/texi_formatting.pl
+++ b/tp/t/results/morecoverage/texi_formatting.pl
@@ -2085,13 +2085,15 @@ $result_trees{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2463,14 +2465,16 @@ $result_trees{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 85,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -2891,14 +2895,16 @@ $result_trees{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 100,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3183,14 +3189,16 @@ $result_trees{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 114,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3262,14 +3270,16 @@ $result_trees{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 124,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -3341,14 +3351,16 @@ $result_trees{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 127,
         'macro' => ''
       },
       'number' => '1.1.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -3523,13 +3535,15 @@ $result_trees{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'formatting.texi',
         'line_nr' => 130,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -4292,7 +4306,6 @@ chapter 2
 ';
 
 $result_sectioning{'texi_formatting'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -4307,7 +4320,6 @@ $result_sectioning{'texi_formatting'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -4321,7 +4333,6 @@ $result_sectioning{'texi_formatting'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -4336,7 +4347,6 @@ $result_sectioning{'texi_formatting'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -4351,7 +4361,6 @@ $result_sectioning{'texi_formatting'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -4366,9 +4375,11 @@ $result_sectioning{'texi_formatting'} = {
                         },
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     },
                     {
                       'cmdname' => 'subsubsection',
@@ -4382,19 +4393,30 @@ $result_sectioning{'texi_formatting'} = {
                         },
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.2',
                       'section_prev' => {},
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -4411,16 +4433,24 @@ $result_sectioning{'texi_formatting'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'texi_formatting'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'texi_formatting'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'texi_formatting'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'texi_formatting'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -4444,7 +4474,9 @@ $result_nodes{'texi_formatting'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -4458,8 +4490,10 @@ $result_nodes{'texi_formatting'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -4472,7 +4506,9 @@ $result_nodes{'texi_formatting'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1
+          'structure' => {
+            'level' => 1
+          }
         },
         'isindex' => 1,
         'normalized' => 'chapter2',
diff --git a/tp/t/results/moreindices/index_no_node.pl 
b/tp/t/results/moreindices/index_no_node.pl
index 0b846192a9..6d87b95447 100644
--- a/tp/t/results/moreindices/index_no_node.pl
+++ b/tp/t/results/moreindices/index_no_node.pl
@@ -357,13 +357,15 @@ $result_trees{'index_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_no_node.texi',
         'line_nr' => 10,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -740,13 +742,15 @@ $result_trees{'index_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_no_node.texi',
         'line_nr' => 19,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -936,13 +940,15 @@ $result_trees{'index_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'index_no_node.texi',
         'line_nr' => 34,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1101,14 +1107,16 @@ $result_trees{'index_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_no_node.texi',
         'line_nr' => 42,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1156,14 +1164,16 @@ $result_trees{'index_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_no_node.texi',
         'line_nr' => 49,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1432,34 +1442,39 @@ In chapter 2
 ';
 
 $result_sectioning{'index_no_node'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_childs' => [
         {
           'cmdname' => 'section',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     },
     {
@@ -1467,10 +1482,12 @@ $result_sectioning{'index_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     },
@@ -1479,14 +1496,19 @@ $result_sectioning{'index_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'index_no_node'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'index_no_node'};
 
$result_sectioning{'index_no_node'}{'section_childs'}[1]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'index_no_node'}{'section_childs'}[1];
diff --git a/tp/t/results/moreindices/index_split.pl 
b/tp/t/results/moreindices/index_split.pl
index d566e6d0bc..cf30829573 100644
--- a/tp/t/results/moreindices/index_split.pl
+++ b/tp/t/results/moreindices/index_split.pl
@@ -542,13 +542,15 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1454,14 +1456,16 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 37,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1849,14 +1853,16 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 52,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1945,14 +1951,16 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 67,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2173,14 +2181,16 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 72,
         'macro' => ''
       },
       'number' => '1.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2269,14 +2279,16 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 83,
         'macro' => ''
       },
       'number' => '1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -2433,14 +2445,16 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 88,
         'macro' => ''
       },
       'number' => '1.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3099,14 +3113,16 @@ $result_trees{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 117,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3791,7 +3807,6 @@ Second chapter
 ';
 
 $result_sectioning{'index_split'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3806,7 +3821,6 @@ $result_sectioning{'index_split'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3821,7 +3835,6 @@ $result_sectioning{'index_split'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -3837,7 +3850,6 @@ $result_sectioning{'index_split'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -3852,9 +3864,11 @@ $result_sectioning{'index_split'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3869,13 +3883,18 @@ $result_sectioning{'index_split'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.2',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -3889,10 +3908,12 @@ $result_sectioning{'index_split'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -3907,13 +3928,18 @@ $result_sectioning{'index_split'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.3',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3929,17 +3955,25 @@ $result_sectioning{'index_split'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'index_split'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'index_split'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'index_split'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'index_split'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -3966,7 +4000,9 @@ $result_nodes{'index_split'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -3996,8 +4032,10 @@ $result_nodes{'index_split'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'first',
@@ -4011,8 +4049,10 @@ $result_nodes{'index_split'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'isindex' => 1,
         'normalized' => 'section-1',
@@ -4026,8 +4066,10 @@ $result_nodes{'index_split'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection-1',
           'spaces_before_argument' => ' '
@@ -4040,8 +4082,10 @@ $result_nodes{'index_split'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3,
-              'number' => '1.1.2'
+              'number' => '1.1.2',
+              'structure' => {
+                'level' => 3
+              }
             },
             'isindex' => 1,
             'normalized' => 'subsection-2',
@@ -4075,8 +4119,10 @@ $result_nodes{'index_split'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2,
-            'number' => '1.2'
+            'number' => '1.2',
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'section-2',
           'spaces_before_argument' => ' '
@@ -4089,8 +4135,10 @@ $result_nodes{'index_split'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'number' => '1.3'
+              'number' => '1.3',
+              'structure' => {
+                'level' => 2
+              }
             },
             'isindex' => 1,
             'normalized' => 'section-3',
@@ -4136,8 +4184,10 @@ $result_nodes{'index_split'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'second-chapter',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/moreindices/index_split_nodes.pl 
b/tp/t/results/moreindices/index_split_nodes.pl
index ac703c68be..a8ba1ab123 100644
--- a/tp/t/results/moreindices/index_split_nodes.pl
+++ b/tp/t/results/moreindices/index_split_nodes.pl
@@ -542,13 +542,15 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1454,14 +1456,16 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 37,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1849,14 +1853,16 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 52,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1945,14 +1951,16 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 67,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2173,14 +2181,16 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 72,
         'macro' => ''
       },
       'number' => '1.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2269,14 +2279,16 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 83,
         'macro' => ''
       },
       'number' => '1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -2433,14 +2445,16 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 88,
         'macro' => ''
       },
       'number' => '1.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3099,14 +3113,16 @@ $result_trees{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'index_split.texi',
         'line_nr' => 117,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3791,7 +3807,6 @@ Second chapter
 ';
 
 $result_sectioning{'index_split_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3806,7 +3821,6 @@ $result_sectioning{'index_split_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3821,7 +3835,6 @@ $result_sectioning{'index_split_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -3837,7 +3850,6 @@ $result_sectioning{'index_split_nodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -3852,9 +3864,11 @@ $result_sectioning{'index_split_nodes'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3869,13 +3883,18 @@ $result_sectioning{'index_split_nodes'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.2',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -3889,10 +3908,12 @@ $result_sectioning{'index_split_nodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -3907,13 +3928,18 @@ $result_sectioning{'index_split_nodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.3',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3929,17 +3955,25 @@ $result_sectioning{'index_split_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'index_split_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'index_split_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'index_split_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'index_split_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -3966,7 +4000,9 @@ $result_nodes{'index_split_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
@@ -3996,8 +4032,10 @@ $result_nodes{'index_split_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'first',
@@ -4011,8 +4049,10 @@ $result_nodes{'index_split_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'isindex' => 1,
         'normalized' => 'section-1',
@@ -4026,8 +4066,10 @@ $result_nodes{'index_split_nodes'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection-1',
           'spaces_before_argument' => ' '
@@ -4040,8 +4082,10 @@ $result_nodes{'index_split_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3,
-              'number' => '1.1.2'
+              'number' => '1.1.2',
+              'structure' => {
+                'level' => 3
+              }
             },
             'isindex' => 1,
             'normalized' => 'subsection-2',
@@ -4075,8 +4119,10 @@ $result_nodes{'index_split_nodes'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2,
-            'number' => '1.2'
+            'number' => '1.2',
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'section-2',
           'spaces_before_argument' => ' '
@@ -4089,8 +4135,10 @@ $result_nodes{'index_split_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'number' => '1.3'
+              'number' => '1.3',
+              'structure' => {
+                'level' => 2
+              }
             },
             'isindex' => 1,
             'normalized' => 'section-3',
@@ -4136,8 +4184,10 @@ $result_nodes{'index_split_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'second-chapter',
         'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/moreindices/nodes_before_top_and_sections_monolithic.pl 
b/tp/t/results/moreindices/nodes_before_top_and_sections_monolithic.pl
index 6cc6718b0f..4df9adcae5 100644
--- a/tp/t/results/moreindices/nodes_before_top_and_sections_monolithic.pl
+++ b/tp/t/results/moreindices/nodes_before_top_and_sections_monolithic.pl
@@ -1225,13 +1225,15 @@ 
$result_trees{'nodes_before_top_and_sections_monolithic'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'nodes_before_top_and_sections.texi',
         'line_nr' => 39,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2553,14 +2555,16 @@ 
$result_trees{'nodes_before_top_and_sections_monolithic'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'nodes_before_top_and_sections.texi',
         'line_nr' => 87,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3268,7 +3272,6 @@ Text and then index entries
 ';
 
 $result_sectioning{'nodes_before_top_and_sections_monolithic'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3283,7 +3286,6 @@ 
$result_sectioning{'nodes_before_top_and_sections_monolithic'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3298,16 +3300,24 @@ 
$result_sectioning{'nodes_before_top_and_sections_monolithic'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'nodes_before_top_and_sections_monolithic'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'nodes_before_top_and_sections_monolithic'}{'section_childs'}[0];
 
$result_sectioning{'nodes_before_top_and_sections_monolithic'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'nodes_before_top_and_sections_monolithic'}{'section_childs'}[0];
@@ -3322,7 +3332,9 @@ $result_nodes{'nodes_before_top_and_sections_monolithic'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'isindex' => 1,
     'normalized' => 'Top',
diff --git a/tp/t/results/moreindices/split_chapter_index.pl 
b/tp/t/results/moreindices/split_chapter_index.pl
index 6f76ee9446..3afbc7d983 100644
--- a/tp/t/results/moreindices/split_chapter_index.pl
+++ b/tp/t/results/moreindices/split_chapter_index.pl
@@ -322,13 +322,15 @@ $result_trees{'split_chapter_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'split_chapter_index.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -911,14 +913,16 @@ $result_trees{'split_chapter_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'split_chapter_index.texi',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1200,14 +1204,16 @@ $result_trees{'split_chapter_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'split_chapter_index.texi',
         'line_nr' => 38,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1343,14 +1349,16 @@ $result_trees{'split_chapter_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'split_chapter_index.texi',
         'line_nr' => 49,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1665,7 +1673,6 @@ In subsection 1
 ';
 
 $result_sectioning{'split_chapter_index'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1679,7 +1686,6 @@ $result_sectioning{'split_chapter_index'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1694,7 +1700,6 @@ $result_sectioning{'split_chapter_index'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1709,7 +1714,6 @@ $result_sectioning{'split_chapter_index'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1724,22 +1728,36 @@ $result_sectioning{'split_chapter_index'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'split_chapter_index'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'split_chapter_index'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'split_chapter_index'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'split_chapter_index'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1756,7 +1774,9 @@ $result_nodes{'split_chapter_index'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1769,8 +1789,10 @@ $result_nodes{'split_chapter_index'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'isindex' => 1,
       'normalized' => 'first',
@@ -1784,8 +1806,10 @@ $result_nodes{'split_chapter_index'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section-1',
         'spaces_before_argument' => ' '
@@ -1798,8 +1822,10 @@ $result_nodes{'split_chapter_index'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection-1',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/more_sections_than_nodes.pl 
b/tp/t/results/moresectioning/more_sections_than_nodes.pl
index affbc3a173..39168535c9 100644
--- a/tp/t/results/moresectioning/more_sections_than_nodes.pl
+++ b/tp/t/results/moresectioning/more_sections_than_nodes.pl
@@ -372,13 +372,15 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -409,14 +411,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -488,14 +492,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -526,14 +532,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => '2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -776,14 +784,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 22,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -814,14 +824,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 28,
         'macro' => ''
       },
       'number' => '3.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -893,14 +905,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => '3.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -931,14 +945,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => '3.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -969,14 +985,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 35,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1007,14 +1025,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 37,
         'macro' => ''
       },
       'number' => '4.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1045,14 +1065,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 39,
         'macro' => ''
       },
       'number' => '4.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1162,14 +1184,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 42,
         'macro' => ''
       },
       'number' => '4.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1200,14 +1224,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'more_sections_than_nodes.texi',
         'line_nr' => 44,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1483,7 +1509,6 @@ Appendix A appendix
 ';
 
 $result_sectioning{'more_sections_than_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1497,16 +1522,17 @@ $result_sectioning{'more_sections_than_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1522,7 +1548,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -1530,13 +1555,18 @@ $result_sectioning{'more_sections_than_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1552,7 +1582,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_childs' => [
             {
@@ -1560,9 +1589,11 @@ $result_sectioning{'more_sections_than_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -1576,24 +1607,31 @@ $result_sectioning{'more_sections_than_nodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.3',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1602,7 +1640,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_childs' => [
             {
@@ -1610,7 +1647,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '4.1',
               'section_childs' => [
                 {
@@ -1618,9 +1654,11 @@ $result_sectioning{'more_sections_than_nodes'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '4.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -1634,17 +1672,25 @@ $result_sectioning{'more_sections_than_nodes'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '4.1.2',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1653,17 +1699,25 @@ $result_sectioning{'more_sections_than_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0];
 
$result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0];
@@ -1704,7 +1758,9 @@ $result_nodes{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1717,8 +1773,10 @@ $result_nodes{'more_sections_than_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 2
+        'number' => 2,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'n-c2',
       'spaces_before_argument' => ' '
@@ -1731,8 +1789,10 @@ $result_nodes{'more_sections_than_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 3
+          'number' => 3,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'n-c3',
         'spaces_before_argument' => ' '
@@ -1745,8 +1805,10 @@ $result_nodes{'more_sections_than_nodes'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2,
-            'number' => '3.2'
+            'number' => '3.2',
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'n-c3-s-2',
           'spaces_before_argument' => ' '
@@ -1776,8 +1838,10 @@ $result_nodes{'more_sections_than_nodes'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '4.1.2'
+            'number' => '4.1.2',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'n-c3-s1-s2',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/node_footnote_end.pl 
b/tp/t/results/moresectioning/node_footnote_end.pl
index 87cee5ac26..52642f9d8f 100644
--- a/tp/t/results/moresectioning/node_footnote_end.pl
+++ b/tp/t/results/moresectioning/node_footnote_end.pl
@@ -1001,14 +1001,16 @@ $result_trees{'node_footnote_end'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'node_footnote.texi',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1432,7 +1434,6 @@ Footnote 3.
 ';
 
 $result_sectioning{'node_footnote_end'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -1446,11 +1447,16 @@ $result_sectioning{'node_footnote_end'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'node_footnote_end'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'node_footnote_end'};
 
@@ -1480,8 +1486,10 @@ $result_nodes{'node_footnote_end'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 1
+            'number' => 1,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/node_footnote_separated.pl 
b/tp/t/results/moresectioning/node_footnote_separated.pl
index 6efbd2ff81..e509efc659 100644
--- a/tp/t/results/moresectioning/node_footnote_separated.pl
+++ b/tp/t/results/moresectioning/node_footnote_separated.pl
@@ -1001,14 +1001,16 @@ $result_trees{'node_footnote_separated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'node_footnote.texi',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1432,7 +1434,6 @@ Footnote 3.
 ';
 
 $result_sectioning{'node_footnote_separated'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -1446,11 +1447,16 @@ $result_sectioning{'node_footnote_separated'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'node_footnote_separated'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'node_footnote_separated'};
 
@@ -1480,8 +1486,10 @@ $result_nodes{'node_footnote_separated'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 1
+            'number' => 1,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/node_footnote_use_node.pl 
b/tp/t/results/moresectioning/node_footnote_use_node.pl
index 180664c81a..e49e4eb449 100644
--- a/tp/t/results/moresectioning/node_footnote_use_node.pl
+++ b/tp/t/results/moresectioning/node_footnote_use_node.pl
@@ -1001,14 +1001,16 @@ $result_trees{'node_footnote_use_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'node_footnote.texi',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1432,7 +1434,6 @@ Footnote 3.
 ';
 
 $result_sectioning{'node_footnote_use_node'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -1446,11 +1447,16 @@ $result_sectioning{'node_footnote_use_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'node_footnote_use_node'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'node_footnote_use_node'};
 
@@ -1480,8 +1486,10 @@ $result_nodes{'node_footnote_use_node'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 1
+            'number' => 1,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/nodes_after_top_before_chapter.pl 
b/tp/t/results/moresectioning/nodes_after_top_before_chapter.pl
index 2729c42a62..77b30b2694 100644
--- a/tp/t/results/moresectioning/nodes_after_top_before_chapter.pl
+++ b/tp/t/results/moresectioning/nodes_after_top_before_chapter.pl
@@ -534,14 +534,16 @@ $result_trees{'nodes_after_top_before_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'nodes_after_top_before_chapter.texi',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -681,7 +683,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_chapter'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -695,11 +696,16 @@ $result_sectioning{'nodes_after_top_before_chapter'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'nodes_after_top_before_chapter'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_chapter'};
 
@@ -723,8 +729,10 @@ $result_nodes{'nodes_after_top_before_chapter'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/moresectioning/nodes_after_top_before_chapter_use_nodes_chapter.pl
 
b/tp/t/results/moresectioning/nodes_after_top_before_chapter_use_nodes_chapter.pl
index b6785a932a..a265f4c715 100644
--- 
a/tp/t/results/moresectioning/nodes_after_top_before_chapter_use_nodes_chapter.pl
+++ 
b/tp/t/results/moresectioning/nodes_after_top_before_chapter_use_nodes_chapter.pl
@@ -534,14 +534,16 @@ 
$result_trees{'nodes_after_top_before_chapter_use_nodes_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'nodes_after_top_before_chapter.texi',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -681,7 +683,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_chapter_use_nodes_chapter'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -695,11 +696,16 @@ 
$result_sectioning{'nodes_after_top_before_chapter_use_nodes_chapter'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'nodes_after_top_before_chapter_use_nodes_chapter'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_chapter_use_nodes_chapter'};
 
@@ -723,8 +729,10 @@ 
$result_nodes{'nodes_after_top_before_chapter_use_nodes_chapter'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/nodes_after_top_before_section.pl 
b/tp/t/results/moresectioning/nodes_after_top_before_section.pl
index 44dffe0858..fa8a968926 100644
--- a/tp/t/results/moresectioning/nodes_after_top_before_section.pl
+++ b/tp/t/results/moresectioning/nodes_after_top_before_section.pl
@@ -534,14 +534,16 @@ $result_trees{'nodes_after_top_before_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'nodes_after_top_before_section.texi',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -681,7 +683,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_section'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'subsection',
@@ -695,11 +696,16 @@ $result_sectioning{'nodes_after_top_before_section'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 
$result_sectioning{'nodes_after_top_before_section'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_section'};
 
@@ -723,8 +729,10 @@ $result_nodes{'nodes_after_top_before_section'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 3
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes.pl 
b/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes.pl
index 511d8806b6..21ec1df492 100644
--- a/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes.pl
+++ b/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes.pl
@@ -534,14 +534,16 @@ $result_trees{'nodes_after_top_before_section_use_nodes'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'nodes_after_top_before_section.texi',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -681,7 +683,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_section_use_nodes'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'subsection',
@@ -695,11 +696,16 @@ 
$result_sectioning{'nodes_after_top_before_section_use_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 
$result_sectioning{'nodes_after_top_before_section_use_nodes'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_section_use_nodes'};
 
@@ -723,8 +729,10 @@ $result_nodes{'nodes_after_top_before_section_use_nodes'} 
= {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 3
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes_chapter.pl
 
b/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes_chapter.pl
index 0b95fc1007..f4c8ef4b63 100644
--- 
a/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes_chapter.pl
+++ 
b/tp/t/results/moresectioning/nodes_after_top_before_section_use_nodes_chapter.pl
@@ -534,14 +534,16 @@ 
$result_trees{'nodes_after_top_before_section_use_nodes_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'nodes_after_top_before_section.texi',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -681,7 +683,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_section_use_nodes_chapter'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'subsection',
@@ -695,11 +696,16 @@ 
$result_sectioning{'nodes_after_top_before_section_use_nodes_chapter'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 
$result_sectioning{'nodes_after_top_before_section_use_nodes_chapter'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_section_use_nodes_chapter'};
 
@@ -723,8 +729,10 @@ 
$result_nodes{'nodes_after_top_before_section_use_nodes_chapter'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 3
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/placed_things_before_element.pl 
b/tp/t/results/moresectioning/placed_things_before_element.pl
index 848877a419..fd11c6b3ff 100644
--- a/tp/t/results/moresectioning/placed_things_before_element.pl
+++ b/tp/t/results/moresectioning/placed_things_before_element.pl
@@ -827,14 +827,16 @@ $result_trees{'placed_things_before_element'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'placed_things_before_element.texi',
         'line_nr' => 35,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1058,18 +1060,22 @@ Anchor in footnote
 ';
 
 $result_sectioning{'placed_things_before_element'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'placed_things_before_element'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'placed_things_before_element'};
 
diff --git a/tp/t/results/moresectioning/sectioning_frames.pl 
b/tp/t/results/moresectioning/sectioning_frames.pl
index 16a7a879d5..56a4b6ba0c 100644
--- a/tp/t/results/moresectioning/sectioning_frames.pl
+++ b/tp/t/results/moresectioning/sectioning_frames.pl
@@ -675,13 +675,15 @@ $result_trees{'sectioning_frames'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1050,14 +1052,16 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 30,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1416,13 +1420,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 41,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1494,13 +1500,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 51,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1572,13 +1580,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 54,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1650,13 +1660,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 57,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1728,13 +1740,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 60,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1922,13 +1936,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 63,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -2006,13 +2022,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 70,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2084,14 +2102,16 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => '  '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 74,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -2335,14 +2355,16 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 84,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -2437,13 +2459,15 @@ $result_trees{'sectioning_frames'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'sectioning.texi',
         'line_nr' => 89,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3124,7 +3148,6 @@ unnumbered chapter text.
 ';
 
 $result_sectioning{'sectioning_frames'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3137,7 +3160,6 @@ $result_sectioning{'sectioning_frames'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3151,7 +3173,6 @@ $result_sectioning{'sectioning_frames'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -3166,7 +3187,6 @@ $result_sectioning{'sectioning_frames'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -3180,8 +3200,10 @@ $result_sectioning{'sectioning_frames'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3195,9 +3217,11 @@ $result_sectioning{'sectioning_frames'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -3211,9 +3235,11 @@ $result_sectioning{'sectioning_frames'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3227,12 +3253,17 @@ $result_sectioning{'sectioning_frames'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -3246,7 +3277,6 @@ $result_sectioning{'sectioning_frames'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -3260,12 +3290,17 @@ $result_sectioning{'sectioning_frames'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -3279,13 +3314,18 @@ $result_sectioning{'sectioning_frames'} = {
                 },
                 'spaces_before_argument' => '  '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3301,10 +3341,12 @@ $result_sectioning{'sectioning_frames'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3320,16 +3362,24 @@ $result_sectioning{'sectioning_frames'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'sectioning_frames'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sectioning_frames'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'sectioning_frames'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'sectioning_frames'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -3363,7 +3413,9 @@ $result_nodes{'sectioning_frames'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3376,8 +3428,10 @@ $result_nodes{'sectioning_frames'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'First-node',
       'spaces_before_argument' => ' '
@@ -3390,7 +3444,9 @@ $result_nodes{'sectioning_frames'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'unnumbered',
         'spaces_before_argument' => ' '
@@ -3403,7 +3459,9 @@ $result_nodes{'sectioning_frames'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'unnumbered-sub',
           'spaces_before_argument' => ' '
@@ -3416,7 +3474,9 @@ $result_nodes{'sectioning_frames'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3
+              'structure' => {
+                'level' => 3
+              }
             },
             'normalized' => 'numbered-sub',
             'spaces_before_argument' => ' '
@@ -3429,7 +3489,9 @@ $result_nodes{'sectioning_frames'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 3
+                'structure' => {
+                  'level' => 3
+                }
               },
               'normalized' => 'unnumbered-sub2',
               'spaces_before_argument' => ' '
@@ -3442,7 +3504,9 @@ $result_nodes{'sectioning_frames'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'numbered-sub2',
                 'spaces_before_argument' => ' '
@@ -3481,7 +3545,9 @@ $result_nodes{'sectioning_frames'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'unnumbered2',
           'spaces_before_argument' => ' '
@@ -3494,7 +3560,9 @@ $result_nodes{'sectioning_frames'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3
+              'structure' => {
+                'level' => 3
+              }
             },
             'normalized' => 'numbered-sub3',
             'spaces_before_argument' => ' '
@@ -3524,8 +3592,10 @@ $result_nodes{'sectioning_frames'} = {
               'extra' => {
                 'spaces_before_argument' => '  '
               },
-              'level' => 2,
-              'number' => '1.1'
+              'number' => '1.1',
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'numbered',
             'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/top_node_up_explicit.pl 
b/tp/t/results/moresectioning/top_node_up_explicit.pl
index 7015865fea..faa1da7cf4 100644
--- a/tp/t/results/moresectioning/top_node_up_explicit.pl
+++ b/tp/t/results/moresectioning/top_node_up_explicit.pl
@@ -387,13 +387,15 @@ $result_trees{'top_node_up_explicit'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'top_node_up_explicit.texi',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -482,14 +484,16 @@ $result_trees{'top_node_up_explicit'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'top_node_up_explicit.texi',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -620,7 +624,6 @@ Without the chapter, no up node from top is generated.
 ';
 
 $result_sectioning{'top_node_up_explicit'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -634,7 +637,6 @@ $result_sectioning{'top_node_up_explicit'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -648,16 +650,24 @@ $result_sectioning{'top_node_up_explicit'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_node_up_explicit'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_node_up_explicit'}{'section_childs'}[0];
 
$result_sectioning{'top_node_up_explicit'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'top_node_up_explicit'}{'section_childs'}[0];
@@ -672,7 +682,9 @@ $result_nodes{'top_node_up_explicit'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -685,8 +697,10 @@ $result_nodes{'top_node_up_explicit'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Chap',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/top_node_up_implicit.pl 
b/tp/t/results/moresectioning/top_node_up_implicit.pl
index 9dacf327b6..5623a3adbe 100644
--- a/tp/t/results/moresectioning/top_node_up_implicit.pl
+++ b/tp/t/results/moresectioning/top_node_up_implicit.pl
@@ -293,13 +293,15 @@ $result_trees{'top_node_up_implicit'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'top_node_up_implicit.texi',
         'line_nr' => 7,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -388,14 +390,16 @@ $result_trees{'top_node_up_implicit'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'top_node_up_implicit.texi',
         'line_nr' => 16,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -508,7 +512,6 @@ Without the chapter, no up node from top is generated.
 ';
 
 $result_sectioning{'top_node_up_implicit'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -522,7 +525,6 @@ $result_sectioning{'top_node_up_implicit'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -536,16 +538,24 @@ $result_sectioning{'top_node_up_implicit'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_node_up_implicit'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_node_up_implicit'}{'section_childs'}[0];
 
$result_sectioning{'top_node_up_implicit'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'top_node_up_implicit'}{'section_childs'}[0];
@@ -560,7 +570,9 @@ $result_nodes{'top_node_up_implicit'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -573,8 +585,10 @@ $result_nodes{'top_node_up_implicit'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Chap',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/two_footnotes_in_nodes.pl 
b/tp/t/results/moresectioning/two_footnotes_in_nodes.pl
index 03a31dab75..b56fb67ba2 100644
--- a/tp/t/results/moresectioning/two_footnotes_in_nodes.pl
+++ b/tp/t/results/moresectioning/two_footnotes_in_nodes.pl
@@ -390,13 +390,15 @@ $result_trees{'two_footnotes_in_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'two_footnotes_in_nodes.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -600,14 +602,16 @@ $result_trees{'two_footnotes_in_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'two_footnotes_in_nodes.texi',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -770,7 +774,6 @@ D
 ';
 
 $result_sectioning{'two_footnotes_in_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -784,7 +787,6 @@ $result_sectioning{'two_footnotes_in_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -798,16 +800,24 @@ $result_sectioning{'two_footnotes_in_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0];
 
$result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'two_footnotes_in_nodes'}{'section_childs'}[0];
@@ -822,7 +832,9 @@ $result_nodes{'two_footnotes_in_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -835,8 +847,10 @@ $result_nodes{'two_footnotes_in_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/moresectioning/two_footnotes_in_nodes_separated.pl 
b/tp/t/results/moresectioning/two_footnotes_in_nodes_separated.pl
index b03e1db52f..62e51fff1d 100644
--- a/tp/t/results/moresectioning/two_footnotes_in_nodes_separated.pl
+++ b/tp/t/results/moresectioning/two_footnotes_in_nodes_separated.pl
@@ -390,13 +390,15 @@ $result_trees{'two_footnotes_in_nodes_separated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'two_footnotes_in_nodes.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -600,14 +602,16 @@ $result_trees{'two_footnotes_in_nodes_separated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'two_footnotes_in_nodes.texi',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -770,7 +774,6 @@ D
 ';
 
 $result_sectioning{'two_footnotes_in_nodes_separated'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -784,7 +787,6 @@ $result_sectioning{'two_footnotes_in_nodes_separated'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -798,16 +800,24 @@ $result_sectioning{'two_footnotes_in_nodes_separated'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'two_footnotes_in_nodes_separated'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'two_footnotes_in_nodes_separated'}{'section_childs'}[0];
 
$result_sectioning{'two_footnotes_in_nodes_separated'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'two_footnotes_in_nodes_separated'}{'section_childs'}[0];
@@ -822,7 +832,9 @@ $result_nodes{'two_footnotes_in_nodes_separated'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -835,8 +847,10 @@ $result_nodes{'two_footnotes_in_nodes_separated'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/plaintext_tests/japanese_utf8.pl 
b/tp/t/results/plaintext_tests/japanese_utf8.pl
index e4961ec5d9..9453caccfd 100644
--- a/tp/t/results/plaintext_tests/japanese_utf8.pl
+++ b/tp/t/results/plaintext_tests/japanese_utf8.pl
@@ -610,13 +610,15 @@ $result_trees{'japanese_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'japanese_utf8.texi',
         'line_nr' => 9,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -711,14 +713,16 @@ $result_trees{'japanese_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'japanese_utf8.texi',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -807,14 +811,16 @@ $result_trees{'japanese_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'japanese_utf8.texi',
         'line_nr' => 37,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1016,7 +1022,6 @@ GNU LilyPond -- 学習マニュアル
 ';
 
 $result_sectioning{'japanese_utf8'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1030,7 +1035,6 @@ $result_sectioning{'japanese_utf8'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1044,9 +1048,11 @@ $result_sectioning{'japanese_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1062,17 +1068,25 @@ $result_sectioning{'japanese_utf8'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'japanese_utf8'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'japanese_utf8'}{'section_childs'}[0];
 
$result_sectioning{'japanese_utf8'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'japanese_utf8'}{'section_childs'}[0];
@@ -1091,7 +1105,9 @@ $result_nodes{'japanese_utf8'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1104,8 +1120,10 @@ $result_nodes{'japanese_utf8'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Preface',
       'spaces_before_argument' => ' '
@@ -1118,8 +1136,10 @@ $result_nodes{'japanese_utf8'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'Introduction',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/plaintext_tests/no_empty_line_after_section.pl 
b/tp/t/results/plaintext_tests/no_empty_line_after_section.pl
index a0b6553b9e..6e120287a8 100644
--- a/tp/t/results/plaintext_tests/no_empty_line_after_section.pl
+++ b/tp/t/results/plaintext_tests/no_empty_line_after_section.pl
@@ -64,13 +64,15 @@ $result_trees{'no_empty_line_after_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -148,14 +150,16 @@ $result_trees{'no_empty_line_after_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -250,14 +254,16 @@ $result_trees{'no_empty_line_after_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -320,14 +326,16 @@ $result_trees{'no_empty_line_after_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => '1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -416,21 +424,18 @@ Para indented.
 ';
 
 $result_sectioning{'no_empty_line_after_section'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -438,29 +443,42 @@ $result_sectioning{'no_empty_line_after_section'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'no_empty_line_after_section'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'no_empty_line_after_section'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'no_empty_line_after_section'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'no_empty_line_after_section'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git a/tp/t/results/plaintext_tests/quote_node_names.pl 
b/tp/t/results/plaintext_tests/quote_node_names.pl
index d88c60bd94..d95f0b9973 100644
--- a/tp/t/results/plaintext_tests/quote_node_names.pl
+++ b/tp/t/results/plaintext_tests/quote_node_names.pl
@@ -1186,13 +1186,15 @@ $result_trees{'quote_node_names'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'nodequote.texi',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {},
     {
@@ -1241,14 +1243,16 @@ $result_trees{'quote_node_names'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'nodequote.texi',
         'line_nr' => 28,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {
@@ -1280,14 +1284,16 @@ $result_trees{'quote_node_names'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'nodequote.texi',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {
@@ -1319,14 +1325,16 @@ $result_trees{'quote_node_names'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'nodequote.texi',
         'line_nr' => 36,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {
@@ -1376,14 +1384,16 @@ $result_trees{'quote_node_names'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'nodequote.texi',
         'line_nr' => 39,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1753,7 +1763,6 @@ stuff here.
 ';
 
 $result_sectioning{'quote_node_names'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1766,7 +1775,6 @@ $result_sectioning{'quote_node_names'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1780,9 +1788,11 @@ $result_sectioning{'quote_node_names'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1798,10 +1808,12 @@ $result_sectioning{'quote_node_names'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1817,10 +1829,12 @@ $result_sectioning{'quote_node_names'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1836,17 +1850,25 @@ $result_sectioning{'quote_node_names'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'quote_node_names'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'quote_node_names'}{'section_childs'}[0];
 
$result_sectioning{'quote_node_names'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'quote_node_names'}{'section_childs'}[0];
@@ -1871,7 +1893,9 @@ $result_nodes{'quote_node_names'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1884,8 +1908,10 @@ $result_nodes{'quote_node_names'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'blah_003ablah',
       'spaces_before_argument' => ' '
@@ -1898,8 +1924,10 @@ $result_nodes{'quote_node_names'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'blumpty_002efump',
         'spaces_before_argument' => ' '
@@ -1912,8 +1940,10 @@ $result_nodes{'quote_node_names'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'normal-node',
           'spaces_before_argument' => ' '
@@ -1926,8 +1956,10 @@ $result_nodes{'quote_node_names'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 4
+              'number' => 4,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'secret_002cnode',
             'spaces_before_argument' => ' '
diff --git a/tp/t/results/plaintext_tests/settitle_and_empty_top.pl 
b/tp/t/results/plaintext_tests/settitle_and_empty_top.pl
index 7ccca811dd..a0c07334c8 100644
--- a/tp/t/results/plaintext_tests/settitle_and_empty_top.pl
+++ b/tp/t/results/plaintext_tests/settitle_and_empty_top.pl
@@ -68,13 +68,15 @@ $result_trees{'settitle_and_empty_top'} = {
           'type' => 'empty_line'
         }
       ],
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -100,14 +102,18 @@ $result_texts{'settitle_and_empty_top'} = '
 ';
 
 $result_sectioning{'settitle_and_empty_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'settitle_and_empty_top'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'settitle_and_empty_top'};
 
diff --git a/tp/t/results/regions/anchor_in_titlepage.pl 
b/tp/t/results/regions/anchor_in_titlepage.pl
index be2f936afe..74315f3f49 100644
--- a/tp/t/results/regions/anchor_in_titlepage.pl
+++ b/tp/t/results/regions/anchor_in_titlepage.pl
@@ -137,13 +137,15 @@ $result_trees{'anchor_in_titlepage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -291,17 +293,21 @@ in titlepage.
 ';
 
 $result_sectioning{'anchor_in_titlepage'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'anchor_in_titlepage'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'anchor_in_titlepage'};
 
diff --git a/tp/t/results/regions/anchor_in_titlepage_titlepage.pl 
b/tp/t/results/regions/anchor_in_titlepage_titlepage.pl
index 3aac8b329a..80cf6cfa87 100644
--- a/tp/t/results/regions/anchor_in_titlepage_titlepage.pl
+++ b/tp/t/results/regions/anchor_in_titlepage_titlepage.pl
@@ -137,13 +137,15 @@ $result_trees{'anchor_in_titlepage_titlepage'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -291,17 +293,21 @@ in titlepage.
 ';
 
 $result_sectioning{'anchor_in_titlepage_titlepage'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'anchor_in_titlepage_titlepage'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'anchor_in_titlepage_titlepage'};
 
diff --git a/tp/t/results/regions/ref_in_copying.pl 
b/tp/t/results/regions/ref_in_copying.pl
index 204b5b8840..0b98d59dbd 100644
--- a/tp/t/results/regions/ref_in_copying.pl
+++ b/tp/t/results/regions/ref_in_copying.pl
@@ -363,13 +363,15 @@ $result_trees{'ref_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {},
     {
@@ -401,14 +403,16 @@ $result_trees{'ref_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -501,7 +505,6 @@ top
 ';
 
 $result_sectioning{'ref_in_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -515,7 +518,6 @@ $result_sectioning{'ref_in_copying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -529,16 +531,24 @@ $result_sectioning{'ref_in_copying'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'ref_in_copying'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'ref_in_copying'}{'section_childs'}[0];
 
$result_sectioning{'ref_in_copying'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'ref_in_copying'}{'section_childs'}[0];
@@ -553,7 +563,9 @@ $result_nodes{'ref_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -566,8 +578,10 @@ $result_nodes{'ref_in_copying'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'GFDL',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/regions/today_in_copying.pl 
b/tp/t/results/regions/today_in_copying.pl
index 06dff8b0e8..75eec2a1bb 100644
--- a/tp/t/results/regions/today_in_copying.pl
+++ b/tp/t/results/regions/today_in_copying.pl
@@ -187,13 +187,15 @@ $result_trees{'today_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -241,7 +243,6 @@ top
 ';
 
 $result_sectioning{'today_in_copying'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -255,10 +256,15 @@ $result_sectioning{'today_in_copying'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'today_in_copying'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'today_in_copying'};
 
@@ -270,7 +276,9 @@ $result_nodes{'today_in_copying'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/anchor_in_footnote.pl 
b/tp/t/results/sectioning/anchor_in_footnote.pl
index f082614511..5fd0595e29 100644
--- a/tp/t/results/sectioning/anchor_in_footnote.pl
+++ b/tp/t/results/sectioning/anchor_in_footnote.pl
@@ -281,13 +281,15 @@ $result_trees{'anchor_in_footnote'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -401,14 +403,16 @@ $result_trees{'anchor_in_footnote'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -503,7 +507,6 @@ Anchor in footnote.
 ';
 
 $result_sectioning{'anchor_in_footnote'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -517,7 +520,6 @@ $result_sectioning{'anchor_in_footnote'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -531,16 +533,24 @@ $result_sectioning{'anchor_in_footnote'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'anchor_in_footnote'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'anchor_in_footnote'}{'section_childs'}[0];
 
$result_sectioning{'anchor_in_footnote'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'anchor_in_footnote'}{'section_childs'}[0];
@@ -555,7 +565,9 @@ $result_nodes{'anchor_in_footnote'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -568,8 +580,10 @@ $result_nodes{'anchor_in_footnote'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/anchor_in_footnote_separate.pl 
b/tp/t/results/sectioning/anchor_in_footnote_separate.pl
index 2e7048f501..7ad7f53b5f 100644
--- a/tp/t/results/sectioning/anchor_in_footnote_separate.pl
+++ b/tp/t/results/sectioning/anchor_in_footnote_separate.pl
@@ -313,13 +313,15 @@ $result_trees{'anchor_in_footnote_separate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -433,14 +435,16 @@ $result_trees{'anchor_in_footnote_separate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -539,7 +543,6 @@ Anchor in footnote.
 ';
 
 $result_sectioning{'anchor_in_footnote_separate'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -553,7 +556,6 @@ $result_sectioning{'anchor_in_footnote_separate'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -567,16 +569,24 @@ $result_sectioning{'anchor_in_footnote_separate'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'anchor_in_footnote_separate'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'anchor_in_footnote_separate'}{'section_childs'}[0];
 
$result_sectioning{'anchor_in_footnote_separate'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'anchor_in_footnote_separate'}{'section_childs'}[0];
@@ -591,7 +601,9 @@ $result_nodes{'anchor_in_footnote_separate'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -604,8 +616,10 @@ $result_nodes{'anchor_in_footnote_separate'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/chapter_before_and_after_part.pl 
b/tp/t/results/sectioning/chapter_before_and_after_part.pl
index 7c0f695cda..9a269fdabe 100644
--- a/tp/t/results/sectioning/chapter_before_and_after_part.pl
+++ b/tp/t/results/sectioning/chapter_before_and_after_part.pl
@@ -42,14 +42,16 @@ $result_trees{'chapter_before_and_after_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -90,13 +92,15 @@ $result_trees{'chapter_before_and_after_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -145,14 +149,16 @@ $result_trees{'chapter_before_and_after_part'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -209,16 +215,17 @@ part
 ';
 
 $result_sectioning{'chapter_before_and_after_part'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'part',
@@ -229,20 +236,27 @@ $result_sectioning{'chapter_before_and_after_part'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'chapter_before_and_after_part'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'chapter_before_and_after_part'};
 
$result_sectioning{'chapter_before_and_after_part'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'chapter_before_and_after_part'}{'section_childs'}[1];
@@ -265,8 +279,10 @@ $result_elements{'chapter_before_and_after_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
@@ -282,12 +298,16 @@ $result_elements{'chapter_before_and_after_part'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 2
+              'number' => 2,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/chapter_before_part.pl 
b/tp/t/results/sectioning/chapter_before_part.pl
index 32c07c0f94..3e0c970eb4 100644
--- a/tp/t/results/sectioning/chapter_before_part.pl
+++ b/tp/t/results/sectioning/chapter_before_part.pl
@@ -42,14 +42,16 @@ $result_trees{'chapter_before_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -83,13 +85,15 @@ $result_trees{'chapter_before_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -130,26 +134,32 @@ part
 ';
 
 $result_sectioning{'chapter_before_part'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'part',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'chapter_before_part'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'chapter_before_part'};
 $result_sectioning{'chapter_before_part'}{'section_childs'}[1]{'section_up'} = 
$result_sectioning{'chapter_before_part'};
@@ -178,8 +188,10 @@ $result_elements{'chapter_before_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
@@ -192,7 +204,9 @@ $result_elements{'chapter_before_part'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 0
+              'structure' => {
+                'level' => 0
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/chapter_between_nodes.pl 
b/tp/t/results/sectioning/chapter_between_nodes.pl
index 9820db7d9b..d90c22fc0c 100644
--- a/tp/t/results/sectioning/chapter_between_nodes.pl
+++ b/tp/t/results/sectioning/chapter_between_nodes.pl
@@ -245,13 +245,15 @@ $result_trees{'chapter_between_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -299,14 +301,16 @@ $result_trees{'chapter_between_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -440,14 +444,16 @@ $result_trees{'chapter_between_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 16,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -556,7 +562,6 @@ section.
 ';
 
 $result_sectioning{'chapter_between_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -570,14 +575,12 @@ $result_sectioning{'chapter_between_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -592,19 +595,30 @@ $result_sectioning{'chapter_between_nodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'chapter_between_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'chapter_between_nodes'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'chapter_between_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'chapter_between_nodes'}{'section_childs'}[0];
@@ -620,7 +634,9 @@ $result_nodes{'chapter_between_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -633,8 +649,10 @@ $result_nodes{'chapter_between_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
-        'number' => '1.1'
+        'number' => '1.1',
+        'structure' => {
+          'level' => 2
+        }
       },
       'normalized' => 'section-node',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/chapter_node_before_and_after_part.pl 
b/tp/t/results/sectioning/chapter_node_before_and_after_part.pl
index f6a490bfa0..fce9e6c14e 100644
--- a/tp/t/results/sectioning/chapter_node_before_and_after_part.pl
+++ b/tp/t/results/sectioning/chapter_node_before_and_after_part.pl
@@ -205,14 +205,16 @@ $result_trees{'chapter_node_before_and_after_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -243,13 +245,15 @@ $result_trees{'chapter_node_before_and_after_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -339,14 +343,16 @@ $result_trees{'chapter_node_before_and_after_part'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 12,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -429,7 +435,6 @@ part
 ';
 
 $result_sectioning{'chapter_node_before_and_after_part'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -443,9 +448,11 @@ $result_sectioning{'chapter_node_before_and_after_part'} = 
{
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'part',
@@ -463,20 +470,27 @@ $result_sectioning{'chapter_node_before_and_after_part'} 
= {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'chapter_node_before_and_after_part'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'chapter_node_before_and_after_part'};
 
$result_sectioning{'chapter_node_before_and_after_part'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = 
$result_sectioning{'chapter_node_before_and_after_part'}{'section_childs'}[1];
@@ -493,8 +507,10 @@ $result_nodes{'chapter_node_before_and_after_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -510,12 +526,16 @@ $result_nodes{'chapter_node_before_and_after_part'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 2
+        'number' => 2,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'after',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/chapter_sections.pl 
b/tp/t/results/sectioning/chapter_sections.pl
index 99ea8140c7..30a3e689b8 100644
--- a/tp/t/results/sectioning/chapter_sections.pl
+++ b/tp/t/results/sectioning/chapter_sections.pl
@@ -42,13 +42,15 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -89,14 +91,16 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -139,14 +143,16 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => '1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -189,14 +195,16 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 7,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -239,14 +247,16 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
         'number' => '2.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -289,14 +299,16 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => '2.1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -339,14 +351,16 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => '2.1.2',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -382,14 +396,16 @@ $result_trees{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => 3,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -502,22 +518,22 @@ $result_texts{'chapter_sections'} = 'unnumbered
 ';
 
 $result_sectioning{'chapter_sections'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_childs' => [
         {
@@ -525,13 +541,18 @@ $result_sectioning{'chapter_sections'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '1.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     },
     {
@@ -539,7 +560,6 @@ $result_sectioning{'chapter_sections'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 2,
       'section_childs' => [
         {
@@ -547,7 +567,6 @@ $result_sectioning{'chapter_sections'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '2.1',
           'section_childs' => [
             {
@@ -555,26 +574,36 @@ $result_sectioning{'chapter_sections'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3,
               'number' => '2.1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 3
+              }
             },
             {
               'cmdname' => 'subsection',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3,
               'number' => '2.1.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 3
+              }
             }
           ],
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     },
     {
@@ -582,13 +611,18 @@ $result_sectioning{'chapter_sections'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 3,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'chapter_sections'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'chapter_sections'};
 
$result_sectioning{'chapter_sections'}{'section_childs'}[1]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'chapter_sections'}{'section_childs'}[1];
@@ -620,7 +654,9 @@ $result_elements{'chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
@@ -633,8 +669,10 @@ $result_elements{'chapter_sections'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -649,8 +687,10 @@ $result_elements{'chapter_sections'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
@@ -663,8 +703,10 @@ $result_elements{'chapter_sections'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 2,
-                          'number' => '1.1'
+                          'number' => '1.1',
+                          'structure' => {
+                            'level' => 2
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -688,8 +730,10 @@ $result_elements{'chapter_sections'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 1,
-                          'number' => 3
+                          'number' => 3,
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -702,8 +746,10 @@ $result_elements{'chapter_sections'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 3,
-                                'number' => '2.1.2'
+                                'number' => '2.1.2',
+                                'structure' => {
+                                  'level' => 3
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -716,8 +762,10 @@ $result_elements{'chapter_sections'} = [
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 3,
-                                      'number' => '2.1.1'
+                                      'number' => '2.1.1',
+                                      'structure' => {
+                                        'level' => 3
+                                      }
                                     },
                                     'unit_command' => {}
                                   },
@@ -730,8 +778,10 @@ $result_elements{'chapter_sections'} = [
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 2,
-                                            'number' => '2.1'
+                                            'number' => '2.1',
+                                            'structure' => {
+                                              'level' => 2
+                                            }
                                           },
                                           'unit_command' => {}
                                         },
diff --git a/tp/t/results/sectioning/character_and_spaces_in_refs.pl 
b/tp/t/results/sectioning/character_and_spaces_in_refs.pl
index 8960d4d339..c8b57f2a82 100644
--- a/tp/t/results/sectioning/character_and_spaces_in_refs.pl
+++ b/tp/t/results/sectioning/character_and_spaces_in_refs.pl
@@ -215,13 +215,13 @@ $result_trees{'character_and_spaces_in_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 8,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -544,13 +544,13 @@ $result_trees{'character_and_spaces_in_refs'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 16,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -1007,13 +1007,15 @@ $result_trees{'character_and_spaces_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1370,14 +1372,16 @@ $result_trees{'character_and_spaces_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 24,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {},
     {},
@@ -1684,7 +1688,6 @@ local   node
 ';
 
 $result_sectioning{'character_and_spaces_in_refs'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1698,7 +1701,6 @@ $result_sectioning{'character_and_spaces_in_refs'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1712,16 +1714,24 @@ $result_sectioning{'character_and_spaces_in_refs'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'character_and_spaces_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'character_and_spaces_in_refs'}{'section_childs'}[0];
 
$result_sectioning{'character_and_spaces_in_refs'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'character_and_spaces_in_refs'}{'section_childs'}[0];
@@ -1736,7 +1746,9 @@ $result_nodes{'character_and_spaces_in_refs'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1749,8 +1761,10 @@ $result_nodes{'character_and_spaces_in_refs'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/character_and_spaces_in_refs_out.pl 
b/tp/t/results/sectioning/character_and_spaces_in_refs_out.pl
index 56b2a4093a..a9d52b7cc3 100644
--- a/tp/t/results/sectioning/character_and_spaces_in_refs_out.pl
+++ b/tp/t/results/sectioning/character_and_spaces_in_refs_out.pl
@@ -216,13 +216,13 @@ $result_trees{'character_and_spaces_in_refs_out'} = [
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
             'line_nr' => {
               'file_name' => '',
               'line_nr' => 8,
               'macro' => ''
             },
-            'parent' => {}
+            'parent' => {},
+            'structure' => {}
           },
           {
             'parent' => {},
@@ -545,13 +545,13 @@ $result_trees{'character_and_spaces_in_refs_out'} = [
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
             'line_nr' => {
               'file_name' => '',
               'line_nr' => 16,
               'macro' => ''
             },
-            'parent' => {}
+            'parent' => {},
+            'structure' => {}
           },
           {
             'parent' => {},
@@ -1044,14 +1044,16 @@ $result_trees{'character_and_spaces_in_refs_out'} = [
                               'extra' => {
                                 'spaces_before_argument' => ' '
                               },
-                              'level' => 1,
                               'line_nr' => {
                                 'file_name' => '',
                                 'line_nr' => 24,
                                 'macro' => ''
                               },
                               'number' => 1,
-                              'parent' => {}
+                              'parent' => {},
+                              'structure' => {
+                                'level' => 1
+                              }
                             }
                           ],
                           'extra' => {
@@ -1432,13 +1434,15 @@ $result_trees{'character_and_spaces_in_refs_out'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -1757,7 +1761,6 @@ local   node
 ';
 
 $result_sectioning{'character_and_spaces_in_refs_out'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1771,7 +1774,6 @@ $result_sectioning{'character_and_spaces_in_refs_out'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1785,16 +1787,24 @@ $result_sectioning{'character_and_spaces_in_refs_out'} 
= {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'character_and_spaces_in_refs_out'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'character_and_spaces_in_refs_out'}{'section_childs'}[0];
 
$result_sectioning{'character_and_spaces_in_refs_out'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'character_and_spaces_in_refs_out'}{'section_childs'}[0];
@@ -1809,7 +1819,9 @@ $result_nodes{'character_and_spaces_in_refs_out'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1822,8 +1834,10 @@ $result_nodes{'character_and_spaces_in_refs_out'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'other-nodes',
       'spaces_before_argument' => ' '
@@ -2029,7 +2043,9 @@ $result_elements{'character_and_spaces_in_refs_out'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -2043,8 +2059,10 @@ $result_elements{'character_and_spaces_in_refs_out'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/complex.pl 
b/tp/t/results/sectioning/complex.pl
index d4bd334c11..100e074167 100644
--- a/tp/t/results/sectioning/complex.pl
+++ b/tp/t/results/sectioning/complex.pl
@@ -510,13 +510,15 @@ $result_trees{'complex'} = [
           }
         ],
         'extra' => {},
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -896,14 +898,16 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -1275,13 +1279,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 24,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -1366,13 +1372,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 34,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1457,13 +1465,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 37,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1548,13 +1558,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 40,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1639,13 +1651,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 43,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1846,13 +1860,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 46,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -1943,13 +1959,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 53,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -2034,14 +2052,16 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => '  '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 57,
           'macro' => ''
         },
         'number' => '1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       },
       {
         'args' => [
@@ -2298,14 +2318,16 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 67,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -2407,13 +2429,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 72,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -2575,13 +2599,15 @@ $result_trees{'complex'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 77,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       },
       {
         'args' => [
@@ -3294,7 +3320,6 @@ directions and lone node.
 ';
 
 $result_sectioning{'complex'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3307,7 +3332,6 @@ $result_sectioning{'complex'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3321,7 +3345,6 @@ $result_sectioning{'complex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -3336,7 +3359,6 @@ $result_sectioning{'complex'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -3350,8 +3372,10 @@ $result_sectioning{'complex'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3365,9 +3389,11 @@ $result_sectioning{'complex'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -3381,9 +3407,11 @@ $result_sectioning{'complex'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3397,12 +3425,17 @@ $result_sectioning{'complex'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -3416,7 +3449,6 @@ $result_sectioning{'complex'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -3430,12 +3462,17 @@ $result_sectioning{'complex'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -3449,13 +3486,18 @@ $result_sectioning{'complex'} = {
                 },
                 'spaces_before_argument' => '  '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3471,10 +3513,12 @@ $result_sectioning{'complex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3490,9 +3534,11 @@ $result_sectioning{'complex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3508,16 +3554,24 @@ $result_sectioning{'complex'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'complex'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'complex'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'complex'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'complex'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -3555,7 +3609,9 @@ $result_nodes{'complex'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3568,8 +3624,10 @@ $result_nodes{'complex'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'First-node',
       'spaces_before_argument' => ' '
@@ -3582,7 +3640,9 @@ $result_nodes{'complex'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'unnumbered',
         'spaces_before_argument' => ' '
@@ -3595,7 +3655,9 @@ $result_nodes{'complex'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'unnumbered-sub',
           'spaces_before_argument' => ' '
@@ -3608,7 +3670,9 @@ $result_nodes{'complex'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3
+              'structure' => {
+                'level' => 3
+              }
             },
             'normalized' => 'numbered-sub',
             'spaces_before_argument' => ' '
@@ -3621,7 +3685,9 @@ $result_nodes{'complex'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 3
+                'structure' => {
+                  'level' => 3
+                }
               },
               'normalized' => 'unnumbered-sub2',
               'spaces_before_argument' => ' '
@@ -3634,7 +3700,9 @@ $result_nodes{'complex'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'numbered-sub2',
                 'spaces_before_argument' => ' '
@@ -3673,7 +3741,9 @@ $result_nodes{'complex'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'unnumbered2',
           'spaces_before_argument' => ' '
@@ -3686,7 +3756,9 @@ $result_nodes{'complex'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3
+              'structure' => {
+                'level' => 3
+              }
             },
             'normalized' => 'numbered-sub3',
             'spaces_before_argument' => ' '
@@ -3716,8 +3788,10 @@ $result_nodes{'complex'} = {
               'extra' => {
                 'spaces_before_argument' => '  '
               },
-              'level' => 2,
-              'number' => '1.1'
+              'number' => '1.1',
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'numbered',
             'spaces_before_argument' => ' '
@@ -4170,7 +4244,9 @@ $result_elements{'complex'} = [
       'section' => {
         'cmdname' => 'top',
         'extra' => {},
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -4184,8 +4260,10 @@ $result_elements{'complex'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -4201,8 +4279,10 @@ $result_elements{'complex'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
@@ -4216,8 +4296,10 @@ $result_elements{'complex'} = [
                           'extra' => {
                             'spaces_before_argument' => '  '
                           },
-                          'level' => 2,
-                          'number' => '1.1'
+                          'number' => '1.1',
+                          'structure' => {
+                            'level' => 2
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -4231,7 +4313,9 @@ $result_elements{'complex'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 3
+                                'structure' => {
+                                  'level' => 3
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -4245,7 +4329,9 @@ $result_elements{'complex'} = [
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 2
+                                      'structure' => {
+                                        'level' => 2
+                                      }
                                     },
                                     'unit_command' => {}
                                   },
@@ -4259,7 +4345,9 @@ $result_elements{'complex'} = [
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 3
+                                            'structure' => {
+                                              'level' => 3
+                                            }
                                           },
                                           'unit_command' => {}
                                         },
@@ -4273,7 +4361,9 @@ $result_elements{'complex'} = [
                                                   'extra' => {
                                                     'spaces_before_argument' 
=> ' '
                                                   },
-                                                  'level' => 3
+                                                  'structure' => {
+                                                    'level' => 3
+                                                  }
                                                 },
                                                 'unit_command' => {}
                                               },
@@ -4287,7 +4377,9 @@ $result_elements{'complex'} = [
                                                         'extra' => {
                                                           
'spaces_before_argument' => ' '
                                                         },
-                                                        'level' => 3
+                                                        'structure' => {
+                                                          'level' => 3
+                                                        }
                                                       },
                                                       'unit_command' => {}
                                                     },
@@ -4301,7 +4393,9 @@ $result_elements{'complex'} = [
                                                               'extra' => {
                                                                 
'spaces_before_argument' => ' '
                                                               },
-                                                              'level' => 3
+                                                              'structure' => {
+                                                                'level' => 3
+                                                              }
                                                             },
                                                             'unit_command' => 
{}
                                                           },
@@ -4315,7 +4409,9 @@ $result_elements{'complex'} = [
                                                                     'extra' => 
{
                                                                       
'spaces_before_argument' => ' '
                                                                     },
-                                                                    'level' => 
2
+                                                                    
'structure' => {
+                                                                      'level' 
=> 2
+                                                                    }
                                                                   },
                                                                   
'unit_command' => {}
                                                                 },
@@ -4446,7 +4542,9 @@ $result_elements{'complex'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 1
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -4462,7 +4560,9 @@ $result_elements{'complex'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'unit_command' => {}
                             },
diff --git a/tp/t/results/sectioning/complex_split_at_node.pl 
b/tp/t/results/sectioning/complex_split_at_node.pl
index 843db4a4ab..a81082bb01 100644
--- a/tp/t/results/sectioning/complex_split_at_node.pl
+++ b/tp/t/results/sectioning/complex_split_at_node.pl
@@ -510,13 +510,15 @@ $result_trees{'complex_split_at_node'} = [
           }
         ],
         'extra' => {},
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -896,14 +898,16 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -1275,13 +1279,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 24,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -1366,13 +1372,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 34,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1457,13 +1465,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 37,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1548,13 +1558,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 40,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1639,13 +1651,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 43,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -1846,13 +1860,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 46,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -1943,13 +1959,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 53,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -2034,14 +2052,16 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => '  '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 57,
           'macro' => ''
         },
         'number' => '1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -2310,14 +2330,16 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 67,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -2419,13 +2441,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 72,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -2587,13 +2611,15 @@ $result_trees{'complex_split_at_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 77,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -3324,7 +3350,6 @@ directions and lone node.
 ';
 
 $result_sectioning{'complex_split_at_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3337,7 +3362,6 @@ $result_sectioning{'complex_split_at_node'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3351,7 +3375,6 @@ $result_sectioning{'complex_split_at_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -3366,7 +3389,6 @@ $result_sectioning{'complex_split_at_node'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -3380,8 +3402,10 @@ $result_sectioning{'complex_split_at_node'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3395,9 +3419,11 @@ $result_sectioning{'complex_split_at_node'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -3411,9 +3437,11 @@ $result_sectioning{'complex_split_at_node'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -3427,12 +3455,17 @@ $result_sectioning{'complex_split_at_node'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -3446,7 +3479,6 @@ $result_sectioning{'complex_split_at_node'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -3460,12 +3492,17 @@ $result_sectioning{'complex_split_at_node'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -3479,13 +3516,18 @@ $result_sectioning{'complex_split_at_node'} = {
                 },
                 'spaces_before_argument' => '  '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3501,10 +3543,12 @@ $result_sectioning{'complex_split_at_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3520,9 +3564,11 @@ $result_sectioning{'complex_split_at_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -3538,16 +3584,24 @@ $result_sectioning{'complex_split_at_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'complex_split_at_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'complex_split_at_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'complex_split_at_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'complex_split_at_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -3585,7 +3639,9 @@ $result_nodes{'complex_split_at_node'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3598,8 +3654,10 @@ $result_nodes{'complex_split_at_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'First-node',
       'spaces_before_argument' => ' '
@@ -3612,7 +3670,9 @@ $result_nodes{'complex_split_at_node'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'unnumbered',
         'spaces_before_argument' => ' '
@@ -3625,7 +3685,9 @@ $result_nodes{'complex_split_at_node'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'unnumbered-sub',
           'spaces_before_argument' => ' '
@@ -3638,7 +3700,9 @@ $result_nodes{'complex_split_at_node'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3
+              'structure' => {
+                'level' => 3
+              }
             },
             'normalized' => 'numbered-sub',
             'spaces_before_argument' => ' '
@@ -3651,7 +3715,9 @@ $result_nodes{'complex_split_at_node'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 3
+                'structure' => {
+                  'level' => 3
+                }
               },
               'normalized' => 'unnumbered-sub2',
               'spaces_before_argument' => ' '
@@ -3664,7 +3730,9 @@ $result_nodes{'complex_split_at_node'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'numbered-sub2',
                 'spaces_before_argument' => ' '
@@ -3703,7 +3771,9 @@ $result_nodes{'complex_split_at_node'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'unnumbered2',
           'spaces_before_argument' => ' '
@@ -3716,7 +3786,9 @@ $result_nodes{'complex_split_at_node'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3
+              'structure' => {
+                'level' => 3
+              }
             },
             'normalized' => 'numbered-sub3',
             'spaces_before_argument' => ' '
@@ -3746,8 +3818,10 @@ $result_nodes{'complex_split_at_node'} = {
               'extra' => {
                 'spaces_before_argument' => '  '
               },
-              'level' => 2,
-              'number' => '1.1'
+              'number' => '1.1',
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'numbered',
             'spaces_before_argument' => ' '
@@ -4200,7 +4274,9 @@ $result_elements{'complex_split_at_node'} = [
       'section' => {
         'cmdname' => 'top',
         'extra' => {},
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -4214,8 +4290,10 @@ $result_elements{'complex_split_at_node'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -4231,8 +4309,10 @@ $result_elements{'complex_split_at_node'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
@@ -4253,8 +4333,10 @@ $result_elements{'complex_split_at_node'} = [
                                 'extra' => {
                                   'spaces_before_argument' => '  '
                                 },
-                                'level' => 2,
-                                'number' => '1.1'
+                                'number' => '1.1',
+                                'structure' => {
+                                  'level' => 2
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -4268,7 +4350,9 @@ $result_elements{'complex_split_at_node'} = [
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 3
+                                      'structure' => {
+                                        'level' => 3
+                                      }
                                     },
                                     'unit_command' => {}
                                   },
@@ -4282,7 +4366,9 @@ $result_elements{'complex_split_at_node'} = [
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 2
+                                            'structure' => {
+                                              'level' => 2
+                                            }
                                           },
                                           'unit_command' => {}
                                         },
@@ -4296,7 +4382,9 @@ $result_elements{'complex_split_at_node'} = [
                                                   'extra' => {
                                                     'spaces_before_argument' 
=> ' '
                                                   },
-                                                  'level' => 3
+                                                  'structure' => {
+                                                    'level' => 3
+                                                  }
                                                 },
                                                 'unit_command' => {}
                                               },
@@ -4310,7 +4398,9 @@ $result_elements{'complex_split_at_node'} = [
                                                         'extra' => {
                                                           
'spaces_before_argument' => ' '
                                                         },
-                                                        'level' => 3
+                                                        'structure' => {
+                                                          'level' => 3
+                                                        }
                                                       },
                                                       'unit_command' => {}
                                                     },
@@ -4324,7 +4414,9 @@ $result_elements{'complex_split_at_node'} = [
                                                               'extra' => {
                                                                 
'spaces_before_argument' => ' '
                                                               },
-                                                              'level' => 3
+                                                              'structure' => {
+                                                                'level' => 3
+                                                              }
                                                             },
                                                             'unit_command' => 
{}
                                                           },
@@ -4338,7 +4430,9 @@ $result_elements{'complex_split_at_node'} = [
                                                                     'extra' => 
{
                                                                       
'spaces_before_argument' => ' '
                                                                     },
-                                                                    'level' => 
3
+                                                                    
'structure' => {
+                                                                      'level' 
=> 3
+                                                                    }
                                                                   },
                                                                   
'unit_command' => {}
                                                                 },
@@ -4352,7 +4446,9 @@ $result_elements{'complex_split_at_node'} = [
                                                                           
'extra' => {
                                                                             
'spaces_before_argument' => ' '
                                                                           },
-                                                                          
'level' => 2
+                                                                          
'structure' => {
+                                                                            
'level' => 2
+                                                                          }
                                                                         },
                                                                         
'unit_command' => {}
                                                                       },
@@ -4491,7 +4587,9 @@ $result_elements{'complex_split_at_node'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 1
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -4507,7 +4605,9 @@ $result_elements{'complex_split_at_node'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'unit_command' => {}
                             },
diff --git a/tp/t/results/sectioning/contents.pl 
b/tp/t/results/sectioning/contents.pl
index 3a7329605e..3803cde3d8 100644
--- a/tp/t/results/sectioning/contents.pl
+++ b/tp/t/results/sectioning/contents.pl
@@ -41,13 +41,15 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -154,14 +160,16 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -192,14 +200,16 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -230,13 +240,15 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -268,14 +280,16 @@ $result_trees{'contents'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -306,14 +320,16 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -344,13 +360,15 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -381,14 +399,16 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -436,14 +456,16 @@ $result_trees{'contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 'A.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -559,21 +581,18 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'contents'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -581,7 +600,6 @@ $result_sectioning{'contents'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -589,7 +607,6 @@ $result_sectioning{'contents'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -597,23 +614,37 @@ $result_sectioning{'contents'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -624,15 +655,16 @@ $result_sectioning{'contents'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -640,10 +672,12 @@ $result_sectioning{'contents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -652,22 +686,26 @@ $result_sectioning{'contents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -675,17 +713,25 @@ $result_sectioning{'contents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'contents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'contents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'contents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'contents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/contents_and_shortcontents.pl 
b/tp/t/results/sectioning/contents_and_shortcontents.pl
index 053631c34b..c887c8cc41 100644
--- a/tp/t/results/sectioning/contents_and_shortcontents.pl
+++ b/tp/t/results/sectioning/contents_and_shortcontents.pl
@@ -41,13 +41,15 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -154,14 +160,16 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -192,14 +200,16 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -230,13 +240,15 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -268,14 +280,16 @@ $result_trees{'contents_and_shortcontents'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -306,14 +320,16 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -344,13 +360,15 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -381,14 +399,16 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -459,14 +479,16 @@ $result_trees{'contents_and_shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 'A.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -588,21 +610,18 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'contents_and_shortcontents'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -610,7 +629,6 @@ $result_sectioning{'contents_and_shortcontents'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -618,7 +636,6 @@ $result_sectioning{'contents_and_shortcontents'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -626,23 +643,37 @@ $result_sectioning{'contents_and_shortcontents'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -653,15 +684,16 @@ $result_sectioning{'contents_and_shortcontents'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -669,10 +701,12 @@ $result_sectioning{'contents_and_shortcontents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -681,22 +715,26 @@ $result_sectioning{'contents_and_shortcontents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -704,17 +742,25 @@ $result_sectioning{'contents_and_shortcontents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'contents_and_shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'contents_and_shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'contents_and_shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'contents_and_shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/contents_at_document_begin.pl 
b/tp/t/results/sectioning/contents_at_document_begin.pl
index 2947fb8790..f8297a1efa 100644
--- a/tp/t/results/sectioning/contents_at_document_begin.pl
+++ b/tp/t/results/sectioning/contents_at_document_begin.pl
@@ -165,13 +165,15 @@ $result_trees{'contents_at_document_begin'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'contents_at_document_begin.texi',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -202,14 +204,16 @@ $result_trees{'contents_at_document_begin'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'contents_at_document_begin.texi',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -280,7 +284,6 @@ top
 ';
 
 $result_sectioning{'contents_at_document_begin'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -294,23 +297,30 @@ $result_sectioning{'contents_at_document_begin'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'contents_at_document_begin'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'contents_at_document_begin'}{'section_childs'}[0];
 
$result_sectioning{'contents_at_document_begin'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'contents_at_document_begin'}{'section_childs'}[0];
@@ -325,7 +335,9 @@ $result_nodes{'contents_at_document_begin'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/contents_at_end_document.pl 
b/tp/t/results/sectioning/contents_at_end_document.pl
index bb9911281a..ee7e5ba64a 100644
--- a/tp/t/results/sectioning/contents_at_end_document.pl
+++ b/tp/t/results/sectioning/contents_at_end_document.pl
@@ -142,13 +142,15 @@ $result_trees{'contents_at_end_document'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'contents_at_end_document.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -202,14 +204,16 @@ $result_trees{'contents_at_end_document'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'contents_at_end_document.texi',
         'line_nr' => 8,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -280,7 +284,6 @@ top
 ';
 
 $result_sectioning{'contents_at_end_document'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -294,23 +297,30 @@ $result_sectioning{'contents_at_end_document'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'contents_at_end_document'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'contents_at_end_document'}{'section_childs'}[0];
 
$result_sectioning{'contents_at_end_document'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'contents_at_end_document'}{'section_childs'}[0];
@@ -325,7 +335,9 @@ $result_nodes{'contents_at_end_document'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/contents_at_end_document_after_node.pl 
b/tp/t/results/sectioning/contents_at_end_document_after_node.pl
index ba75656748..cf60e4100d 100644
--- a/tp/t/results/sectioning/contents_at_end_document_after_node.pl
+++ b/tp/t/results/sectioning/contents_at_end_document_after_node.pl
@@ -258,13 +258,15 @@ $result_trees{'contents_at_end_document_after_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'contents_at_end_document_after_node.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -295,14 +297,16 @@ $result_trees{'contents_at_end_document_after_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'contents_at_end_document_after_node.texi',
         'line_nr' => 12,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -510,7 +514,6 @@ top
 ';
 
 $result_sectioning{'contents_at_end_document_after_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -524,23 +527,30 @@ $result_sectioning{'contents_at_end_document_after_node'} 
= {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'contents_at_end_document_after_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'contents_at_end_document_after_node'}{'section_childs'}[0];
 
$result_sectioning{'contents_at_end_document_after_node'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'contents_at_end_document_after_node'}{'section_childs'}[0];
@@ -555,7 +565,9 @@ $result_nodes{'contents_at_end_document_after_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/contents_in_document.pl 
b/tp/t/results/sectioning/contents_in_document.pl
index 3c85789041..4f7e92bb7a 100644
--- a/tp/t/results/sectioning/contents_in_document.pl
+++ b/tp/t/results/sectioning/contents_in_document.pl
@@ -165,13 +165,15 @@ $result_trees{'contents_in_document'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => 'contents_in_document.texi',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -202,14 +204,16 @@ $result_trees{'contents_in_document'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => 'contents_in_document.texi',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -280,7 +284,6 @@ top
 ';
 
 $result_sectioning{'contents_in_document'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -294,23 +297,30 @@ $result_sectioning{'contents_in_document'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'contents_in_document'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'contents_in_document'}{'section_childs'}[0];
 
$result_sectioning{'contents_in_document'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'contents_in_document'}{'section_childs'}[0];
@@ -325,7 +335,9 @@ $result_nodes{'contents_in_document'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/contents_in_html_text.pl 
b/tp/t/results/sectioning/contents_in_html_text.pl
index 5648d57ce9..8bdadf68f2 100644
--- a/tp/t/results/sectioning/contents_in_html_text.pl
+++ b/tp/t/results/sectioning/contents_in_html_text.pl
@@ -41,13 +41,15 @@ $result_trees{'contents_in_html_text'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ $result_trees{'contents_in_html_text'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ $result_trees{'contents_in_html_text'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -188,14 +194,16 @@ $result_trees{'contents_in_html_text'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -250,21 +258,18 @@ $result_texts{'contents_in_html_text'} = 'top
 ';
 
 $result_sectioning{'contents_in_html_text'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -272,12 +277,17 @@ $result_sectioning{'contents_in_html_text'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -286,17 +296,25 @@ $result_sectioning{'contents_in_html_text'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'contents_in_html_text'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'contents_in_html_text'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'contents_in_html_text'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'contents_in_html_text'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/double_part.pl 
b/tp/t/results/sectioning/double_part.pl
index fe4daacedc..889421f5ef 100644
--- a/tp/t/results/sectioning/double_part.pl
+++ b/tp/t/results/sectioning/double_part.pl
@@ -199,13 +199,15 @@ $result_trees{'double_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -259,13 +261,15 @@ $result_trees{'double_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 8,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -320,13 +324,15 @@ $result_trees{'double_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -399,14 +405,16 @@ $result_trees{'double_part'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -523,7 +531,6 @@ Text part second.
 ';
 
 $result_sectioning{'double_part'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -537,17 +544,21 @@ $result_sectioning{'double_part'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -565,22 +576,29 @@ $result_sectioning{'double_part'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'double_part'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'double_part'};
 $result_sectioning{'double_part'}{'section_childs'}[1]{'section_prev'} = 
$result_sectioning{'double_part'}{'section_childs'}[0];
@@ -601,7 +619,9 @@ $result_nodes{'double_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -617,12 +637,16 @@ $result_nodes{'double_part'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'node-chapter',
       'spaces_before_argument' => ' '
@@ -732,7 +756,9 @@ $result_elements{'double_part'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -750,12 +776,16 @@ $result_elements{'double_part'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -769,7 +799,9 @@ $result_elements{'double_part'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 0
+                    'structure' => {
+                      'level' => 0
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/double_top_section.pl 
b/tp/t/results/sectioning/double_top_section.pl
index cabcbd18c1..18ba7994eb 100644
--- a/tp/t/results/sectioning/double_top_section.pl
+++ b/tp/t/results/sectioning/double_top_section.pl
@@ -58,13 +58,15 @@ $result_trees{'double_top_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -106,13 +108,15 @@ $result_trees{'double_top_section'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -154,28 +158,34 @@ Second top.
 ';
 
 $result_sectioning{'double_top_section'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 0
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'double_top_section'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'double_top_section'};
 $result_sectioning{'double_top_section'}{'section_childs'}[1]{'section_prev'} 
= $result_sectioning{'double_top_section'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/empty_top_node_up.pl 
b/tp/t/results/sectioning/empty_top_node_up.pl
index 334e22bc44..eef8ebe35b 100644
--- a/tp/t/results/sectioning/empty_top_node_up.pl
+++ b/tp/t/results/sectioning/empty_top_node_up.pl
@@ -198,13 +198,15 @@ $result_trees{'empty_top_node_up'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -303,7 +305,6 @@ $result_texts{'empty_top_node_up'} = 'empty top node up
 ';
 
 $result_sectioning{'empty_top_node_up'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -317,10 +318,15 @@ $result_sectioning{'empty_top_node_up'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'empty_top_node_up'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'empty_top_node_up'};
 
@@ -332,7 +338,9 @@ $result_nodes{'empty_top_node_up'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/external_node_in_menu.pl 
b/tp/t/results/sectioning/external_node_in_menu.pl
index 3da904f13e..bc36070422 100644
--- a/tp/t/results/sectioning/external_node_in_menu.pl
+++ b/tp/t/results/sectioning/external_node_in_menu.pl
@@ -327,13 +327,15 @@ $result_trees{'external_node_in_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -405,14 +407,16 @@ $result_trees{'external_node_in_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -477,14 +481,16 @@ $result_trees{'external_node_in_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -591,7 +597,6 @@ $result_texts{'external_node_in_menu'} = 'top
 ';
 
 $result_sectioning{'external_node_in_menu'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -605,7 +610,6 @@ $result_sectioning{'external_node_in_menu'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -619,9 +623,11 @@ $result_sectioning{'external_node_in_menu'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -637,17 +643,25 @@ $result_sectioning{'external_node_in_menu'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'external_node_in_menu'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'external_node_in_menu'}{'section_childs'}[0];
 
$result_sectioning{'external_node_in_menu'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'external_node_in_menu'}{'section_childs'}[0];
@@ -666,7 +680,9 @@ $result_nodes{'external_node_in_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -679,8 +695,10 @@ $result_nodes{'external_node_in_menu'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'nchapter1',
       'spaces_before_argument' => ' '
@@ -693,8 +711,10 @@ $result_nodes{'external_node_in_menu'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'nchapter2',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/hole_in_sectioning.pl 
b/tp/t/results/sectioning/hole_in_sectioning.pl
index 173e2a0f42..b1c3934345 100644
--- a/tp/t/results/sectioning/hole_in_sectioning.pl
+++ b/tp/t/results/sectioning/hole_in_sectioning.pl
@@ -41,13 +41,15 @@ $result_trees{'hole_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ $result_trees{'hole_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ $result_trees{'hole_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -154,14 +160,16 @@ $result_trees{'hole_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -185,14 +193,16 @@ $result_trees{'hole_in_sectioning'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => '1.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
   ],
   'type' => 'document_root'
@@ -247,21 +257,18 @@ $result_texts{'hole_in_sectioning'} = 'Top
 ';
 
 $result_sectioning{'hole_in_sectioning'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -269,7 +276,6 @@ $result_sectioning{'hole_in_sectioning'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -277,32 +283,48 @@ $result_sectioning{'hole_in_sectioning'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.2',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'hole_in_sectioning'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'hole_in_sectioning'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'hole_in_sectioning'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'hole_in_sectioning'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/internal_top_node_up.pl 
b/tp/t/results/sectioning/internal_top_node_up.pl
index aca60e4de9..935a4627ed 100644
--- a/tp/t/results/sectioning/internal_top_node_up.pl
+++ b/tp/t/results/sectioning/internal_top_node_up.pl
@@ -199,13 +199,15 @@ $result_trees{'internal_top_node_up'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -329,7 +331,6 @@ $result_texts{'internal_top_node_up'} = 'internal top node 
up
 ';
 
 $result_sectioning{'internal_top_node_up'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -343,10 +344,15 @@ $result_sectioning{'internal_top_node_up'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'internal_top_node_up'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'internal_top_node_up'};
 
@@ -358,7 +364,9 @@ $result_nodes{'internal_top_node_up'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -445,7 +453,9 @@ $result_elements{'internal_top_node_up'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/lone_Top_node.pl 
b/tp/t/results/sectioning/lone_Top_node.pl
index dd7b784974..67515b19ab 100644
--- a/tp/t/results/sectioning/lone_Top_node.pl
+++ b/tp/t/results/sectioning/lone_Top_node.pl
@@ -276,14 +276,16 @@ $result_trees{'lone_Top_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 10,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -358,7 +360,6 @@ $result_texts{'lone_Top_node'} = '
 ';
 
 $result_sectioning{'lone_Top_node'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -372,11 +373,16 @@ $result_sectioning{'lone_Top_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'lone_Top_node'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'lone_Top_node'};
 
@@ -394,8 +400,10 @@ $result_nodes{'lone_Top_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'First',
       'spaces_before_argument' => ' '
@@ -486,8 +494,10 @@ $result_elements{'lone_Top_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/loop_nodes.pl 
b/tp/t/results/sectioning/loop_nodes.pl
index fe8d4e8e17..c8af7ec669 100644
--- a/tp/t/results/sectioning/loop_nodes.pl
+++ b/tp/t/results/sectioning/loop_nodes.pl
@@ -234,13 +234,15 @@ $result_trees{'loop_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -806,7 +808,6 @@ top
 ';
 
 $result_sectioning{'loop_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -820,10 +821,15 @@ $result_sectioning{'loop_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'loop_nodes'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'loop_nodes'};
 
@@ -835,7 +841,9 @@ $result_nodes{'loop_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/lowered_subsubsection.pl 
b/tp/t/results/sectioning/lowered_subsubsection.pl
index 129875bac0..410468fc4a 100644
--- a/tp/t/results/sectioning/lowered_subsubsection.pl
+++ b/tp/t/results/sectioning/lowered_subsubsection.pl
@@ -191,13 +191,15 @@ $result_trees{'lowered_subsubsection'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -385,14 +387,16 @@ $result_trees{'lowered_subsubsection'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -580,14 +584,16 @@ $result_trees{'lowered_subsubsection'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 16,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -832,14 +838,16 @@ $result_trees{'lowered_subsubsection'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 23,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -923,14 +931,16 @@ $result_trees{'lowered_subsubsection'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -1119,14 +1129,16 @@ $result_trees{'lowered_subsubsection'} = {
         'sections_level' => -1,
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 35,
         'macro' => ''
       },
       'number' => '1.1.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -1228,14 +1240,16 @@ $result_trees{'lowered_subsubsection'} = {
         'sections_level' => -1,
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 42,
         'macro' => ''
       },
       'number' => '1.1.1.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -1506,7 +1520,6 @@ $result_texts{'lowered_subsubsection'} = '
 ';
 
 $result_sectioning{'lowered_subsubsection'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1519,7 +1532,6 @@ $result_sectioning{'lowered_subsubsection'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1533,7 +1545,6 @@ $result_sectioning{'lowered_subsubsection'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1548,7 +1559,6 @@ $result_sectioning{'lowered_subsubsection'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1563,7 +1573,6 @@ $result_sectioning{'lowered_subsubsection'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -1578,9 +1587,11 @@ $result_sectioning{'lowered_subsubsection'} = {
                         },
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     },
                     {
                       'cmdname' => 'subsection',
@@ -1595,10 +1606,12 @@ $result_sectioning{'lowered_subsubsection'} = {
                         'sections_level' => -1,
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.2',
                       'section_prev' => {},
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     },
                     {
                       'cmdname' => 'subsubsection',
@@ -1613,26 +1626,43 @@ $result_sectioning{'lowered_subsubsection'} = {
                         'sections_level' => -1,
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.3',
                       'section_prev' => {},
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'lowered_subsubsection'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'lowered_subsubsection'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'lowered_subsubsection'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'lowered_subsubsection'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -1652,7 +1682,9 @@ $result_nodes{'lowered_subsubsection'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1665,8 +1697,10 @@ $result_nodes{'lowered_subsubsection'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Chapter',
       'spaces_before_argument' => ' '
@@ -1679,8 +1713,10 @@ $result_nodes{'lowered_subsubsection'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'Section',
         'spaces_before_argument' => ' '
@@ -1693,8 +1729,10 @@ $result_nodes{'lowered_subsubsection'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'Subsection',
           'spaces_before_argument' => ' '
@@ -1707,8 +1745,10 @@ $result_nodes{'lowered_subsubsection'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 4,
-              'number' => '1.1.1.1'
+              'number' => '1.1.1.1',
+              'structure' => {
+                'level' => 4
+              }
             },
             'normalized' => 'Subsubsection',
             'spaces_before_argument' => ' '
@@ -1722,8 +1762,10 @@ $result_nodes{'lowered_subsubsection'} = {
                   'sections_level' => -1,
                   'spaces_before_argument' => ' '
                 },
-                'level' => 4,
-                'number' => '1.1.1.2'
+                'number' => '1.1.1.2',
+                'structure' => {
+                  'level' => 4
+                }
               },
               'normalized' => 'Lowered-subsec',
               'spaces_before_argument' => ' '
@@ -1737,8 +1779,10 @@ $result_nodes{'lowered_subsubsection'} = {
                     'sections_level' => -1,
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 4,
-                  'number' => '1.1.1.3'
+                  'number' => '1.1.1.3',
+                  'structure' => {
+                    'level' => 4
+                  }
                 },
                 'normalized' => 'Lowered-subsubsection',
                 'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/loweredheading.pl 
b/tp/t/results/sectioning/loweredheading.pl
index 21b5b7ee1c..0dde0116b3 100644
--- a/tp/t/results/sectioning/loweredheading.pl
+++ b/tp/t/results/sectioning/loweredheading.pl
@@ -66,27 +66,29 @@ $result_trees{'loweredheading'} = {
             'sections_level' => -1,
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 3,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         }
       ],
       'extra' => {
         'sections_level' => -1,
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -129,7 +131,6 @@ Bar
 ';
 
 $result_sectioning{'loweredheading'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'section',
@@ -137,11 +138,16 @@ $result_sectioning{'loweredheading'} = {
         'sections_level' => -1,
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 $result_sectioning{'loweredheading'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'loweredheading'};
 
diff --git a/tp/t/results/sectioning/menutextorder.pl 
b/tp/t/results/sectioning/menutextorder.pl
index aec78ee537..2a7c9754e0 100644
--- a/tp/t/results/sectioning/menutextorder.pl
+++ b/tp/t/results/sectioning/menutextorder.pl
@@ -372,14 +372,16 @@ $result_trees{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -451,14 +453,16 @@ $result_trees{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -536,14 +540,16 @@ $result_trees{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => '1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -845,14 +851,16 @@ $result_trees{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -924,14 +932,16 @@ $result_trees{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 30,
         'macro' => ''
       },
       'number' => '2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1003,14 +1013,16 @@ $result_trees{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => '2.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1075,14 +1087,16 @@ $result_trees{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 36,
         'macro' => ''
       },
       'number' => '2.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -1308,7 +1322,6 @@ $result_texts{'menutextorder'} = '* foo::
 ';
 
 $result_sectioning{'menutextorder'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -1322,7 +1335,6 @@ $result_sectioning{'menutextorder'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_childs' => [
         {
@@ -1337,9 +1349,11 @@ $result_sectioning{'menutextorder'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '1.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         },
         {
           'cmdname' => 'section',
@@ -1353,13 +1367,18 @@ $result_sectioning{'menutextorder'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '1.2',
           'section_prev' => {},
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'chapter',
@@ -1373,7 +1392,6 @@ $result_sectioning{'menutextorder'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 2,
       'section_childs' => [
         {
@@ -1388,9 +1406,11 @@ $result_sectioning{'menutextorder'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '2.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         },
         {
           'cmdname' => 'section',
@@ -1404,10 +1424,12 @@ $result_sectioning{'menutextorder'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '2.2',
           'section_prev' => {},
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         },
         {
           'cmdname' => 'section',
@@ -1421,17 +1443,25 @@ $result_sectioning{'menutextorder'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '2.3',
           'section_prev' => {},
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'menutextorder'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'menutextorder'}{'section_childs'}[0];
 
$result_sectioning{'menutextorder'}{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'menutextorder'}{'section_childs'}[0]{'section_childs'}[0];
@@ -1454,8 +1484,10 @@ $result_nodes{'menutextorder'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'bar',
     'spaces_before_argument' => ' '
@@ -1468,8 +1500,10 @@ $result_nodes{'menutextorder'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
-        'number' => '1.2'
+        'number' => '1.2',
+        'structure' => {
+          'level' => 2
+        }
       },
       'normalized' => 'onesub2',
       'spaces_before_argument' => ' '
@@ -1482,8 +1516,10 @@ $result_nodes{'menutextorder'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'onesub1',
         'spaces_before_argument' => ' '
@@ -1516,8 +1552,10 @@ $result_nodes{'menutextorder'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 2
+        'number' => 2,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'foo',
       'spaces_before_argument' => ' '
@@ -1530,8 +1568,10 @@ $result_nodes{'menutextorder'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '2.1'
+          'number' => '2.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'sub1',
         'spaces_before_argument' => ' '
@@ -1544,8 +1584,10 @@ $result_nodes{'menutextorder'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2,
-            'number' => '2.2'
+            'number' => '2.2',
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'sub2',
           'spaces_before_argument' => ' '
@@ -1558,8 +1600,10 @@ $result_nodes{'menutextorder'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'number' => '2.3'
+              'number' => '2.3',
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'sub3',
             'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/more_sections_than_nodes.pl 
b/tp/t/results/sectioning/more_sections_than_nodes.pl
index b7dd5cf17c..16ae0d75ec 100644
--- a/tp/t/results/sectioning/more_sections_than_nodes.pl
+++ b/tp/t/results/sectioning/more_sections_than_nodes.pl
@@ -312,13 +312,15 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -349,14 +351,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -428,14 +432,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -466,14 +472,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => '2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -716,14 +724,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -754,14 +764,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 24,
         'macro' => ''
       },
       'number' => '3.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -833,14 +845,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 27,
         'macro' => ''
       },
       'number' => '3.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -871,14 +885,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 29,
         'macro' => ''
       },
       'number' => '3.3',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -909,14 +925,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => 4,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -947,14 +965,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 33,
         'macro' => ''
       },
       'number' => '4.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -985,14 +1005,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 35,
         'macro' => ''
       },
       'number' => '4.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1102,14 +1124,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 38,
         'macro' => ''
       },
       'number' => '4.1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1133,14 +1157,16 @@ $result_trees{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 40,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1385,7 +1411,6 @@ Appendix A appendix
 ';
 
 $result_sectioning{'more_sections_than_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1399,16 +1424,17 @@ $result_sectioning{'more_sections_than_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1424,7 +1450,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -1432,13 +1457,18 @@ $result_sectioning{'more_sections_than_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1454,7 +1484,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_childs' => [
             {
@@ -1462,9 +1491,11 @@ $result_sectioning{'more_sections_than_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -1478,24 +1509,31 @@ $result_sectioning{'more_sections_than_nodes'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.3',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1504,7 +1542,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 4,
           'section_childs' => [
             {
@@ -1512,7 +1549,6 @@ $result_sectioning{'more_sections_than_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '4.1',
               'section_childs' => [
                 {
@@ -1520,9 +1556,11 @@ $result_sectioning{'more_sections_than_nodes'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '4.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -1536,17 +1574,25 @@ $result_sectioning{'more_sections_than_nodes'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '4.1.2',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1555,17 +1601,25 @@ $result_sectioning{'more_sections_than_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0];
 
$result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'more_sections_than_nodes'}{'section_childs'}[0];
@@ -1606,7 +1660,9 @@ $result_nodes{'more_sections_than_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1619,8 +1675,10 @@ $result_nodes{'more_sections_than_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 2
+        'number' => 2,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'n-c2',
       'spaces_before_argument' => ' '
@@ -1633,8 +1691,10 @@ $result_nodes{'more_sections_than_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 3
+          'number' => 3,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'n-c3',
         'spaces_before_argument' => ' '
@@ -1647,8 +1707,10 @@ $result_nodes{'more_sections_than_nodes'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2,
-            'number' => '3.2'
+            'number' => '3.2',
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'n-c3-s-2',
           'spaces_before_argument' => ' '
@@ -1678,8 +1740,10 @@ $result_nodes{'more_sections_than_nodes'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '4.1.2'
+            'number' => '4.1.2',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'n-c3-s1-s2',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/next_in_menu_is_below.pl 
b/tp/t/results/sectioning/next_in_menu_is_below.pl
index 3310ca6dd6..6197896836 100644
--- a/tp/t/results/sectioning/next_in_menu_is_below.pl
+++ b/tp/t/results/sectioning/next_in_menu_is_below.pl
@@ -198,13 +198,15 @@ $result_trees{'next_in_menu_is_below'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -449,14 +451,16 @@ $result_trees{'next_in_menu_is_below'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -644,14 +648,16 @@ $result_trees{'next_in_menu_is_below'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -716,14 +722,16 @@ $result_trees{'next_in_menu_is_below'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 24,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
   ],
   'type' => 'document_root'
@@ -877,7 +885,6 @@ $result_texts{'next_in_menu_is_below'} = 'top
 ';
 
 $result_sectioning{'next_in_menu_is_below'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -891,7 +898,6 @@ $result_sectioning{'next_in_menu_is_below'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -905,7 +911,6 @@ $result_sectioning{'next_in_menu_is_below'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -920,7 +925,6 @@ $result_sectioning{'next_in_menu_is_below'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -935,22 +939,36 @@ $result_sectioning{'next_in_menu_is_below'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'next_in_menu_is_below'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'next_in_menu_is_below'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'next_in_menu_is_below'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'next_in_menu_is_below'}{'section_childs'}[0]{'section_childs'}[0];
@@ -967,7 +985,9 @@ $result_nodes{'next_in_menu_is_below'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -980,8 +1000,10 @@ $result_nodes{'next_in_menu_is_below'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -994,8 +1016,10 @@ $result_nodes{'next_in_menu_is_below'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section',
         'spaces_before_argument' => ' '
@@ -1008,8 +1032,10 @@ $result_nodes{'next_in_menu_is_below'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'subsection',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/no_argument_and_contents.pl 
b/tp/t/results/sectioning/no_argument_and_contents.pl
index a428b2cccb..587c498c92 100644
--- a/tp/t/results/sectioning/no_argument_and_contents.pl
+++ b/tp/t/results/sectioning/no_argument_and_contents.pl
@@ -65,13 +65,15 @@ $result_trees{'no_argument_and_contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -115,14 +117,16 @@ $result_trees{'no_argument_and_contents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -160,30 +164,36 @@ for example
 ';
 
 $result_sectioning{'no_argument_and_contents'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'no_argument_and_contents'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'no_argument_and_contents'}{'section_childs'}[0];
 
$result_sectioning{'no_argument_and_contents'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'no_argument_and_contents'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/no_menu.pl 
b/tp/t/results/sectioning/no_menu.pl
index 4cb6230db8..20d521d771 100644
--- a/tp/t/results/sectioning/no_menu.pl
+++ b/tp/t/results/sectioning/no_menu.pl
@@ -75,13 +75,15 @@ $result_trees{'no_menu'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -153,14 +155,16 @@ $result_trees{'no_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -232,14 +236,16 @@ $result_trees{'no_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -304,14 +310,16 @@ $result_trees{'no_menu'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -378,7 +386,6 @@ $result_texts{'no_menu'} = '
 ';
 
 $result_sectioning{'no_menu'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -391,7 +398,6 @@ $result_sectioning{'no_menu'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -405,9 +411,11 @@ $result_sectioning{'no_menu'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -423,10 +431,12 @@ $result_sectioning{'no_menu'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -442,17 +452,25 @@ $result_sectioning{'no_menu'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'no_menu'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'no_menu'}{'section_childs'}[0];
 
$result_sectioning{'no_menu'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'no_menu'}{'section_childs'}[0];
@@ -473,7 +491,9 @@ $result_nodes{'no_menu'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -486,8 +506,10 @@ $result_nodes{'no_menu'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'c1',
       'spaces_before_argument' => ' '
@@ -500,8 +522,10 @@ $result_nodes{'no_menu'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'c2',
         'spaces_before_argument' => ' '
@@ -514,8 +538,10 @@ $result_nodes{'no_menu'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'c3',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/node_part_chapter_after_chapter.pl 
b/tp/t/results/sectioning/node_part_chapter_after_chapter.pl
index 76fd4fbd1c..bf939817ab 100644
--- a/tp/t/results/sectioning/node_part_chapter_after_chapter.pl
+++ b/tp/t/results/sectioning/node_part_chapter_after_chapter.pl
@@ -256,13 +256,15 @@ $result_trees{'node_part_chapter_after_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -352,14 +354,16 @@ $result_trees{'node_part_chapter_after_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -444,13 +448,15 @@ $result_trees{'node_part_chapter_after_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 14,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -499,14 +505,16 @@ $result_trees{'node_part_chapter_after_chapter'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 16,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -636,7 +644,6 @@ part
 ';
 
 $result_sectioning{'node_part_chapter_after_chapter'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -650,7 +657,6 @@ $result_sectioning{'node_part_chapter_after_chapter'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -664,14 +670,19 @@ $result_sectioning{'node_part_chapter_after_chapter'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -689,22 +700,29 @@ $result_sectioning{'node_part_chapter_after_chapter'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'node_part_chapter_after_chapter'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'node_part_chapter_after_chapter'}{'section_childs'}[0];
 
$result_sectioning{'node_part_chapter_after_chapter'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'node_part_chapter_after_chapter'}{'section_childs'}[0];
@@ -726,7 +744,9 @@ $result_nodes{'node_part_chapter_after_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -739,8 +759,10 @@ $result_nodes{'node_part_chapter_after_chapter'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -756,12 +778,16 @@ $result_nodes{'node_part_chapter_after_chapter'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 0
+              'structure' => {
+                'level' => 0
+              }
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'part-chapter-node',
         'spaces_before_argument' => ' '
@@ -883,7 +909,9 @@ $result_elements{'node_part_chapter_after_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -897,8 +925,10 @@ $result_elements{'node_part_chapter_after_chapter'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -917,12 +947,16 @@ $result_elements{'node_part_chapter_after_chapter'} = [
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 0
+                        'structure' => {
+                          'level' => 0
+                        }
                       },
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/node_part_chapter_after_top.pl 
b/tp/t/results/sectioning/node_part_chapter_after_top.pl
index 2140784e9d..b81a76e319 100644
--- a/tp/t/results/sectioning/node_part_chapter_after_top.pl
+++ b/tp/t/results/sectioning/node_part_chapter_after_top.pl
@@ -199,13 +199,15 @@ $result_trees{'node_part_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -288,13 +290,15 @@ $result_trees{'node_part_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -319,14 +323,16 @@ $result_trees{'node_part_chapter_after_top'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -416,7 +422,6 @@ part
 ';
 
 $result_sectioning{'node_part_chapter_after_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -430,8 +435,10 @@ $result_sectioning{'node_part_chapter_after_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -449,22 +456,29 @@ $result_sectioning{'node_part_chapter_after_top'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'node_part_chapter_after_top'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'node_part_chapter_after_top'};
 
$result_sectioning{'node_part_chapter_after_top'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'node_part_chapter_after_top'}{'section_childs'}[1];
@@ -483,7 +497,9 @@ $result_nodes{'node_part_chapter_after_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -499,12 +515,16 @@ $result_nodes{'node_part_chapter_after_top'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -595,7 +615,9 @@ $result_elements{'node_part_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -612,12 +634,16 @@ $result_elements{'node_part_chapter_after_top'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/node_sectop_before_chapter_no_node.pl 
b/tp/t/results/sectioning/node_sectop_before_chapter_no_node.pl
index 52f26463e4..3e148f5b8e 100644
--- a/tp/t/results/sectioning/node_sectop_before_chapter_no_node.pl
+++ b/tp/t/results/sectioning/node_sectop_before_chapter_no_node.pl
@@ -118,13 +118,15 @@ $result_trees{'node_sectop_before_chapter_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -148,14 +150,16 @@ $result_trees{'node_sectop_before_chapter_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -196,7 +200,6 @@ top section
 ';
 
 $result_sectioning{'node_sectop_before_chapter_no_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -210,23 +213,30 @@ $result_sectioning{'node_sectop_before_chapter_no_node'} 
= {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'node_sectop_before_chapter_no_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'node_sectop_before_chapter_no_node'}{'section_childs'}[0];
 
$result_sectioning{'node_sectop_before_chapter_no_node'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = 
$result_sectioning{'node_sectop_before_chapter_no_node'}{'section_childs'}[0];
@@ -241,7 +251,9 @@ $result_nodes{'node_sectop_before_chapter_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/node_sectop_before_lone_node_Top.pl 
b/tp/t/results/sectioning/node_sectop_before_lone_node_Top.pl
index 608b1ca569..ddf5b12396 100644
--- a/tp/t/results/sectioning/node_sectop_before_lone_node_Top.pl
+++ b/tp/t/results/sectioning/node_sectop_before_lone_node_Top.pl
@@ -135,13 +135,15 @@ $result_trees{'node_sectop_before_lone_node_Top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -289,14 +291,16 @@ $result_trees{'node_sectop_before_lone_node_Top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -373,7 +377,6 @@ in chap
 ';
 
 $result_sectioning{'node_sectop_before_lone_node_Top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -387,7 +390,6 @@ $result_sectioning{'node_sectop_before_lone_node_Top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -401,16 +403,24 @@ $result_sectioning{'node_sectop_before_lone_node_Top'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'node_sectop_before_lone_node_Top'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'node_sectop_before_lone_node_Top'}{'section_childs'}[0];
 
$result_sectioning{'node_sectop_before_lone_node_Top'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'node_sectop_before_lone_node_Top'}{'section_childs'}[0];
@@ -431,7 +441,9 @@ $result_nodes{'node_sectop_before_lone_node_Top'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'normalized' => 'node-before',
       'spaces_before_argument' => ' '
@@ -444,8 +456,10 @@ $result_nodes{'node_sectop_before_lone_node_Top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chap',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/nodename_parentheses.pl 
b/tp/t/results/sectioning/nodename_parentheses.pl
index 5e353c408a..a4002f1965 100644
--- a/tp/t/results/sectioning/nodename_parentheses.pl
+++ b/tp/t/results/sectioning/nodename_parentheses.pl
@@ -327,13 +327,15 @@ $result_trees{'nodename_parentheses'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -422,14 +424,16 @@ $result_trees{'nodename_parentheses'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -618,14 +622,16 @@ $result_trees{'nodename_parentheses'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 16,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -786,14 +792,16 @@ $result_trees{'nodename_parentheses'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 23,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -979,7 +987,6 @@ Dummy section with (manual)node node syntax.
 ';
 
 $result_sectioning{'nodename_parentheses'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -993,7 +1000,6 @@ $result_sectioning{'nodename_parentheses'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1007,9 +1013,11 @@ $result_sectioning{'nodename_parentheses'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1025,10 +1033,12 @@ $result_sectioning{'nodename_parentheses'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1044,17 +1054,25 @@ $result_sectioning{'nodename_parentheses'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'nodename_parentheses'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodename_parentheses'}{'section_childs'}[0];
 
$result_sectioning{'nodename_parentheses'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'nodename_parentheses'}{'section_childs'}[0];
@@ -1077,7 +1095,9 @@ $result_nodes{'nodename_parentheses'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1090,8 +1110,10 @@ $result_nodes{'nodename_parentheses'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Node-_0028with-parentheses_0029',
       'spaces_before_argument' => ' '
@@ -1104,8 +1126,10 @@ $result_nodes{'nodename_parentheses'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'Other-node',
         'spaces_before_argument' => ' '
@@ -1118,8 +1142,10 @@ $result_nodes{'nodename_parentheses'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 3
+            'number' => 3,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'node',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl 
b/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl
index 38f02eaecc..b744989907 100644
--- a/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl
+++ b/tp/t/results/sectioning/nodes_after_top_before_chapter_nodes.pl
@@ -478,14 +478,16 @@ $result_trees{'nodes_after_top_before_chapter_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -606,7 +608,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_chapter_nodes'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -620,11 +621,16 @@ 
$result_sectioning{'nodes_after_top_before_chapter_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'nodes_after_top_before_chapter_nodes'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_chapter_nodes'};
 
@@ -648,8 +654,10 @@ $result_nodes{'nodes_after_top_before_chapter_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
@@ -776,8 +784,10 @@ $result_elements{'nodes_after_top_before_chapter_nodes'} = 
[
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 1
+                    'number' => 1,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git 
a/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split.pl 
b/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split.pl
index cc27472119..df249cf75d 100644
--- a/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split.pl
+++ b/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split.pl
@@ -455,14 +455,16 @@ $result_trees{'nodes_after_top_before_chapter_not_split'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -565,7 +567,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_chapter_not_split'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -579,11 +580,16 @@ 
$result_sectioning{'nodes_after_top_before_chapter_not_split'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'nodes_after_top_before_chapter_not_split'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_chapter_not_split'};
 
@@ -607,8 +613,10 @@ $result_nodes{'nodes_after_top_before_chapter_not_split'} 
= {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
diff --git 
a/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split_no_use_node_directions.pl
 
b/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split_no_use_node_directions.pl
index 66daeb389d..ae61e5ed82 100644
--- 
a/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split_no_use_node_directions.pl
+++ 
b/tp/t/results/sectioning/nodes_after_top_before_chapter_not_split_no_use_node_directions.pl
@@ -455,14 +455,16 @@ 
$result_trees{'nodes_after_top_before_chapter_not_split_no_use_node_directions'}
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -565,7 +567,6 @@ second node
 ';
 
 
$result_sectioning{'nodes_after_top_before_chapter_not_split_no_use_node_directions'}
 = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -579,11 +580,16 @@ 
$result_sectioning{'nodes_after_top_before_chapter_not_split_no_use_node_directi
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'nodes_after_top_before_chapter_not_split_no_use_node_directions'}{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'nodes_after_top_before_chapter_not_split_no_use_node_directions'};
 
@@ -607,8 +613,10 @@ 
$result_nodes{'nodes_after_top_before_chapter_not_split_no_use_node_directions'}
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/nodes_after_top_before_chapter_sections.pl 
b/tp/t/results/sectioning/nodes_after_top_before_chapter_sections.pl
index f88952c7c7..71db0a2c4d 100644
--- a/tp/t/results/sectioning/nodes_after_top_before_chapter_sections.pl
+++ b/tp/t/results/sectioning/nodes_after_top_before_chapter_sections.pl
@@ -456,14 +456,16 @@ $result_trees{'nodes_after_top_before_chapter_sections'} 
= [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -576,7 +578,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_chapter_sections'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
@@ -590,11 +591,16 @@ 
$result_sectioning{'nodes_after_top_before_chapter_sections'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'nodes_after_top_before_chapter_sections'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_chapter_sections'};
 
@@ -618,8 +624,10 @@ $result_nodes{'nodes_after_top_before_chapter_sections'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
@@ -731,8 +739,10 @@ 
$result_elements{'nodes_after_top_before_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/nodes_after_top_before_section_nodes.pl 
b/tp/t/results/sectioning/nodes_after_top_before_section_nodes.pl
index c1c03428a6..2feaf3e289 100644
--- a/tp/t/results/sectioning/nodes_after_top_before_section_nodes.pl
+++ b/tp/t/results/sectioning/nodes_after_top_before_section_nodes.pl
@@ -478,14 +478,16 @@ $result_trees{'nodes_after_top_before_section_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -606,7 +608,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_section_nodes'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'subsection',
@@ -620,11 +621,16 @@ 
$result_sectioning{'nodes_after_top_before_section_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 
$result_sectioning{'nodes_after_top_before_section_nodes'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_section_nodes'};
 
@@ -648,8 +654,10 @@ $result_nodes{'nodes_after_top_before_section_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 3
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
@@ -776,8 +784,10 @@ $result_elements{'nodes_after_top_before_section_nodes'} = 
[
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 3,
-                    'number' => 1
+                    'number' => 1,
+                    'structure' => {
+                      'level' => 3
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/nodes_after_top_before_section_sections.pl 
b/tp/t/results/sectioning/nodes_after_top_before_section_sections.pl
index e48307808c..56c26ea27d 100644
--- a/tp/t/results/sectioning/nodes_after_top_before_section_sections.pl
+++ b/tp/t/results/sectioning/nodes_after_top_before_section_sections.pl
@@ -456,14 +456,16 @@ $result_trees{'nodes_after_top_before_section_sections'} 
= [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -576,7 +578,6 @@ second node
 ';
 
 $result_sectioning{'nodes_after_top_before_section_sections'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'subsection',
@@ -590,11 +591,16 @@ 
$result_sectioning{'nodes_after_top_before_section_sections'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 
$result_sectioning{'nodes_after_top_before_section_sections'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_after_top_before_section_sections'};
 
@@ -618,8 +624,10 @@ $result_nodes{'nodes_after_top_before_section_sections'} = 
{
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 3
+          }
         },
         'normalized' => 'third-node',
         'spaces_before_argument' => ' '
@@ -731,8 +739,10 @@ 
$result_elements{'nodes_after_top_before_section_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 3
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/nodes_before_after_top.pl 
b/tp/t/results/sectioning/nodes_before_after_top.pl
index 6fd24b4f4d..102fff1bd4 100644
--- a/tp/t/results/sectioning/nodes_before_after_top.pl
+++ b/tp/t/results/sectioning/nodes_before_after_top.pl
@@ -200,13 +200,15 @@ $result_trees{'nodes_before_after_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -354,14 +356,16 @@ $result_trees{'nodes_before_after_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -454,7 +458,6 @@ in chap
 ';
 
 $result_sectioning{'nodes_before_after_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -468,7 +471,6 @@ $result_sectioning{'nodes_before_after_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -482,16 +484,24 @@ $result_sectioning{'nodes_before_after_top'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'nodes_before_after_top'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_before_after_top'}{'section_childs'}[0];
 
$result_sectioning{'nodes_before_after_top'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'nodes_before_after_top'}{'section_childs'}[0];
@@ -506,7 +516,9 @@ $result_nodes{'nodes_before_after_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -519,8 +531,10 @@ $result_nodes{'nodes_before_after_top'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/nodes_before_after_top_xref.pl 
b/tp/t/results/sectioning/nodes_before_after_top_xref.pl
index c0e3cd3527..59c966494a 100644
--- a/tp/t/results/sectioning/nodes_before_after_top_xref.pl
+++ b/tp/t/results/sectioning/nodes_before_after_top_xref.pl
@@ -200,13 +200,15 @@ $result_trees{'nodes_before_after_top_xref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -590,14 +592,16 @@ $result_trees{'nodes_before_after_top_xref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -741,7 +745,6 @@ after.
 ';
 
 $result_sectioning{'nodes_before_after_top_xref'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -755,7 +758,6 @@ $result_sectioning{'nodes_before_after_top_xref'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -769,16 +771,24 @@ $result_sectioning{'nodes_before_after_top_xref'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'nodes_before_after_top_xref'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_before_after_top_xref'}{'section_childs'}[0];
 
$result_sectioning{'nodes_before_after_top_xref'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'nodes_before_after_top_xref'}{'section_childs'}[0];
@@ -793,7 +803,9 @@ $result_nodes{'nodes_before_after_top_xref'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -806,8 +818,10 @@ $result_nodes{'nodes_before_after_top_xref'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chap',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/nodes_before_top.pl 
b/tp/t/results/sectioning/nodes_before_top.pl
index 57da46856b..e4123950c2 100644
--- a/tp/t/results/sectioning/nodes_before_top.pl
+++ b/tp/t/results/sectioning/nodes_before_top.pl
@@ -547,13 +547,15 @@ $result_trees{'nodes_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 12,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -618,14 +620,16 @@ $result_trees{'nodes_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -756,7 +760,6 @@ top section
 ';
 
 $result_sectioning{'nodes_before_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -770,7 +773,6 @@ $result_sectioning{'nodes_before_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -784,16 +786,24 @@ $result_sectioning{'nodes_before_top'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'nodes_before_top'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'nodes_before_top'}{'section_childs'}[0];
 
$result_sectioning{'nodes_before_top'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'nodes_before_top'}{'section_childs'}[0];
@@ -808,7 +818,9 @@ $result_nodes{'nodes_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -821,8 +833,10 @@ $result_nodes{'nodes_before_top'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'second-node',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/non_automatic_internal_top_node_up.pl 
b/tp/t/results/sectioning/non_automatic_internal_top_node_up.pl
index a6e94cf37d..647e389733 100644
--- a/tp/t/results/sectioning/non_automatic_internal_top_node_up.pl
+++ b/tp/t/results/sectioning/non_automatic_internal_top_node_up.pl
@@ -376,13 +376,15 @@ $result_trees{'non_automatic_internal_top_node_up'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -657,7 +659,6 @@ $result_texts{'non_automatic_internal_top_node_up'} = 
'internal top node up
 ';
 
 $result_sectioning{'non_automatic_internal_top_node_up'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -671,10 +672,15 @@ $result_sectioning{'non_automatic_internal_top_node_up'} 
= {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'non_automatic_internal_top_node_up'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'non_automatic_internal_top_node_up'};
 
@@ -686,7 +692,9 @@ $result_nodes{'non_automatic_internal_top_node_up'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -799,7 +807,9 @@ $result_elements{'non_automatic_internal_top_node_up'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/non_automatic_top_node_up_and_url.pl 
b/tp/t/results/sectioning/non_automatic_top_node_up_and_url.pl
index dafc11c048..7f5e95bbeb 100644
--- a/tp/t/results/sectioning/non_automatic_top_node_up_and_url.pl
+++ b/tp/t/results/sectioning/non_automatic_top_node_up_and_url.pl
@@ -376,13 +376,15 @@ $result_trees{'non_automatic_top_node_up_and_url'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -657,7 +659,6 @@ $result_texts{'non_automatic_top_node_up_and_url'} = 
'internal top node up
 ';
 
 $result_sectioning{'non_automatic_top_node_up_and_url'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -671,10 +672,15 @@ $result_sectioning{'non_automatic_top_node_up_and_url'} = 
{
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'non_automatic_top_node_up_and_url'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'non_automatic_top_node_up_and_url'};
 
@@ -686,7 +692,9 @@ $result_nodes{'non_automatic_top_node_up_and_url'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -799,7 +807,9 @@ $result_elements{'non_automatic_top_node_up_and_url'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/non_automatic_top_node_up_url.pl 
b/tp/t/results/sectioning/non_automatic_top_node_up_url.pl
index a0e7bbe405..9652efb8cf 100644
--- a/tp/t/results/sectioning/non_automatic_top_node_up_url.pl
+++ b/tp/t/results/sectioning/non_automatic_top_node_up_url.pl
@@ -268,13 +268,15 @@ $result_trees{'non_automatic_top_node_up_url'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -472,7 +474,6 @@ $result_texts{'non_automatic_top_node_up_url'} = 'internal 
top node up
 ';
 
 $result_sectioning{'non_automatic_top_node_up_url'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -486,10 +487,15 @@ $result_sectioning{'non_automatic_top_node_up_url'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'non_automatic_top_node_up_url'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'non_automatic_top_node_up_url'};
 
@@ -501,7 +507,9 @@ $result_nodes{'non_automatic_top_node_up_url'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -613,7 +621,9 @@ $result_elements{'non_automatic_top_node_up_url'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/one_subsection.pl 
b/tp/t/results/sectioning/one_subsection.pl
index 8f7a523be3..fb7fc1454a 100644
--- a/tp/t/results/sectioning/one_subsection.pl
+++ b/tp/t/results/sectioning/one_subsection.pl
@@ -34,14 +34,16 @@ $result_trees{'one_subsection'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
   ],
   'type' => 'document_root'
@@ -60,18 +62,22 @@ $result_texts{'one_subsection'} = '1 The subsection
 ';
 
 $result_sectioning{'one_subsection'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'subsection',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 $result_sectioning{'one_subsection'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'one_subsection'};
 
diff --git a/tp/t/results/sectioning/one_subsection_and_node.pl 
b/tp/t/results/sectioning/one_subsection_and_node.pl
index d68ae6401e..d87636a6aa 100644
--- a/tp/t/results/sectioning/one_subsection_and_node.pl
+++ b/tp/t/results/sectioning/one_subsection_and_node.pl
@@ -75,14 +75,16 @@ $result_trees{'one_subsection_and_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
   ],
   'type' => 'document_root'
@@ -107,7 +109,6 @@ $result_texts{'one_subsection_and_node'} = '1 The subsection
 ';
 
 $result_sectioning{'one_subsection_and_node'} = {
-  'level' => 2,
   'section_childs' => [
     {
       'cmdname' => 'subsection',
@@ -121,11 +122,16 @@ $result_sectioning{'one_subsection_and_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 2
+  }
 };
 
$result_sectioning{'one_subsection_and_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'one_subsection_and_node'};
 
@@ -137,8 +143,10 @@ $result_nodes{'one_subsection_and_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 3
+      }
     },
     'normalized' => 'one-node',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/part_before_chapter.pl 
b/tp/t/results/sectioning/part_before_chapter.pl
index f9cd3d1b63..0b66541ba0 100644
--- a/tp/t/results/sectioning/part_before_chapter.pl
+++ b/tp/t/results/sectioning/part_before_chapter.pl
@@ -42,13 +42,15 @@ $result_trees{'part_before_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -73,14 +75,16 @@ $result_trees{'part_before_chapter'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -117,7 +121,6 @@ $result_texts{'part_before_chapter'} = 'part
 ';
 
 $result_sectioning{'part_before_chapter'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'part',
@@ -128,19 +131,26 @@ $result_sectioning{'part_before_chapter'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 1
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_before_chapter'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_before_chapter'}{'section_childs'}[0];
 
$result_sectioning{'part_before_chapter'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'section_up'}
 = $result_sectioning{'part_before_chapter'}{'section_childs'}[0];
@@ -164,12 +174,16 @@ $result_elements{'part_before_chapter'} = [
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/part_before_section.pl 
b/tp/t/results/sectioning/part_before_section.pl
index 85f1ec3805..862d306865 100644
--- a/tp/t/results/sectioning/part_before_section.pl
+++ b/tp/t/results/sectioning/part_before_section.pl
@@ -42,13 +42,15 @@ $result_trees{'part_before_section'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -73,14 +75,16 @@ $result_trees{'part_before_section'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -117,7 +121,6 @@ $result_texts{'part_before_section'} = 'part
 ';
 
 $result_sectioning{'part_before_section'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'part',
@@ -128,19 +131,26 @@ $result_sectioning{'part_before_section'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 1
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_before_section'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_before_section'}{'section_childs'}[0];
 
$result_sectioning{'part_before_section'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'section_up'}
 = $result_sectioning{'part_before_section'}{'section_childs'}[0];
@@ -174,12 +184,16 @@ $result_elements{'part_before_section'} = [
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/part_before_top.pl 
b/tp/t/results/sectioning/part_before_top.pl
index 7b99aaeb17..d20688c941 100644
--- a/tp/t/results/sectioning/part_before_top.pl
+++ b/tp/t/results/sectioning/part_before_top.pl
@@ -42,13 +42,15 @@ $result_trees{'part_before_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -73,13 +75,15 @@ $result_trees{'part_before_top'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -116,7 +120,6 @@ top
 ';
 
 $result_sectioning{'part_before_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'part',
@@ -127,17 +130,24 @@ $result_sectioning{'part_before_top'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 0,
           'section_prev' => {},
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 0
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {}
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_before_top'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_before_top'}{'section_childs'}[0];
 
$result_sectioning{'part_before_top'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'section_prev'}
 = $result_sectioning{'part_before_top'}{'section_childs'}[0];
@@ -172,11 +182,15 @@ $result_elements{'part_before_top'} = [
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/part_chapter_after_top.pl 
b/tp/t/results/sectioning/part_chapter_after_top.pl
index 3831051c27..79aa9f830e 100644
--- a/tp/t/results/sectioning/part_chapter_after_top.pl
+++ b/tp/t/results/sectioning/part_chapter_after_top.pl
@@ -199,13 +199,15 @@ $result_trees{'part_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -247,13 +249,15 @@ $result_trees{'part_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 8,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -319,14 +323,16 @@ $result_trees{'part_chapter_after_top'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -416,7 +422,6 @@ part
 ';
 
 $result_sectioning{'part_chapter_after_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -430,8 +435,10 @@ $result_sectioning{'part_chapter_after_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -449,22 +456,29 @@ $result_sectioning{'part_chapter_after_top'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_chapter_after_top'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'part_chapter_after_top'};
 
$result_sectioning{'part_chapter_after_top'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_chapter_after_top'}{'section_childs'}[1];
@@ -483,7 +497,9 @@ $result_nodes{'part_chapter_after_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -499,12 +515,16 @@ $result_nodes{'part_chapter_after_top'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -585,7 +605,9 @@ $result_elements{'part_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -602,12 +624,16 @@ $result_elements{'part_chapter_after_top'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/part_chapter_appendix.pl 
b/tp/t/results/sectioning/part_chapter_appendix.pl
index 66d573f804..236059602a 100644
--- a/tp/t/results/sectioning/part_chapter_appendix.pl
+++ b/tp/t/results/sectioning/part_chapter_appendix.pl
@@ -48,13 +48,15 @@ $result_trees{'part_chapter_appendix'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -86,14 +88,16 @@ $result_trees{'part_chapter_appendix'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -117,14 +121,16 @@ $result_trees{'part_chapter_appendix'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -165,7 +171,6 @@ Appendix A Appendix
 ';
 
 $result_sectioning{'part_chapter_appendix'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'part',
@@ -176,30 +181,39 @@ $result_sectioning{'part_chapter_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 1
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_chapter_appendix'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_chapter_appendix'}{'section_childs'}[0];
 
$result_sectioning{'part_chapter_appendix'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'section_up'}
 = $result_sectioning{'part_chapter_appendix'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/part_node_after_top.pl 
b/tp/t/results/sectioning/part_node_after_top.pl
index 862ca8dcfb..1e6dac1402 100644
--- a/tp/t/results/sectioning/part_node_after_top.pl
+++ b/tp/t/results/sectioning/part_node_after_top.pl
@@ -199,13 +199,15 @@ $result_trees{'part_node_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -281,13 +283,15 @@ $result_trees{'part_node_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -365,7 +369,6 @@ part
 ';
 
 $result_sectioning{'part_node_after_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -379,19 +382,26 @@ $result_sectioning{'part_node_after_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'part_node_after_top'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'part_node_after_top'};
 $result_sectioning{'part_node_after_top'}{'section_childs'}[1]{'section_prev'} 
= $result_sectioning{'part_node_after_top'}{'section_childs'}[0];
@@ -405,7 +415,9 @@ $result_nodes{'part_node_after_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -511,7 +523,9 @@ $result_elements{'part_node_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -524,7 +538,9 @@ $result_elements{'part_node_after_top'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 0
+              'structure' => {
+                'level' => 0
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/part_node_before_top.pl 
b/tp/t/results/sectioning/part_node_before_top.pl
index 65a5136eb3..585c5a1d95 100644
--- a/tp/t/results/sectioning/part_node_before_top.pl
+++ b/tp/t/results/sectioning/part_node_before_top.pl
@@ -124,13 +124,15 @@ $result_trees{'part_node_before_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -313,13 +315,15 @@ $result_trees{'part_node_before_top'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -401,7 +405,6 @@ top
 ';
 
 $result_sectioning{'part_node_before_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'part',
@@ -419,17 +422,24 @@ $result_sectioning{'part_node_before_top'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 0,
           'section_prev' => {},
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 0
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {}
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_node_before_top'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_node_before_top'}{'section_childs'}[0];
 
$result_sectioning{'part_node_before_top'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'section_prev'}
 = $result_sectioning{'part_node_before_top'}{'section_childs'}[0];
@@ -448,11 +458,15 @@ $result_nodes{'part_node_before_top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 0
+          'structure' => {
+            'level' => 0
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -563,11 +577,15 @@ $result_elements{'part_node_before_top'} = [
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/part_node_chapter_after_top.pl 
b/tp/t/results/sectioning/part_node_chapter_after_top.pl
index 166a1f1334..049904c0d8 100644
--- a/tp/t/results/sectioning/part_node_chapter_after_top.pl
+++ b/tp/t/results/sectioning/part_node_chapter_after_top.pl
@@ -256,13 +256,15 @@ $result_trees{'part_node_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -304,13 +306,15 @@ $result_trees{'part_node_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -532,14 +536,16 @@ $result_trees{'part_node_chapter_after_top'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -670,7 +676,6 @@ After a node after part
 ';
 
 $result_sectioning{'part_node_chapter_after_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -684,8 +689,10 @@ $result_sectioning{'part_node_chapter_after_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -703,22 +710,29 @@ $result_sectioning{'part_node_chapter_after_top'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_node_chapter_after_top'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'part_node_chapter_after_top'};
 
$result_sectioning{'part_node_chapter_after_top'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_node_chapter_after_top'}{'section_childs'}[1];
@@ -737,7 +751,9 @@ $result_nodes{'part_node_chapter_after_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -759,12 +775,16 @@ $result_nodes{'part_node_chapter_after_top'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 0
+              'structure' => {
+                'level' => 0
+              }
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'chapter',
         'spaces_before_argument' => ' '
@@ -876,7 +896,9 @@ $result_elements{'part_node_chapter_after_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -893,12 +915,16 @@ $result_elements{'part_node_chapter_after_top'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/part_node_chapter_appendix.pl 
b/tp/t/results/sectioning/part_node_chapter_appendix.pl
index b8bbb3783b..3ff6e3bb48 100644
--- a/tp/t/results/sectioning/part_node_chapter_appendix.pl
+++ b/tp/t/results/sectioning/part_node_chapter_appendix.pl
@@ -199,13 +199,15 @@ $result_trees{'part_node_chapter_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -247,13 +249,15 @@ $result_trees{'part_node_chapter_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 8,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -326,14 +330,16 @@ $result_trees{'part_node_chapter_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -370,14 +376,16 @@ $result_trees{'part_node_chapter_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 'A',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -478,7 +486,6 @@ Appendix A Appendix
 ';
 
 $result_sectioning{'part_node_chapter_appendix'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -492,8 +499,10 @@ $result_sectioning{'part_node_chapter_appendix'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -511,34 +520,43 @@ $result_sectioning{'part_node_chapter_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_node_chapter_appendix'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'part_node_chapter_appendix'};
 
$result_sectioning{'part_node_chapter_appendix'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_node_chapter_appendix'}{'section_childs'}[1];
@@ -561,7 +579,9 @@ $result_nodes{'part_node_chapter_appendix'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -577,12 +597,16 @@ $result_nodes{'part_node_chapter_appendix'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -663,7 +687,9 @@ $result_elements{'part_node_chapter_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -680,12 +706,16 @@ $result_elements{'part_node_chapter_appendix'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -700,8 +730,10 @@ $result_elements{'part_node_chapter_appendix'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 'A'
+                    'number' => 'A',
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/part_node_chapter_node_appendix.pl 
b/tp/t/results/sectioning/part_node_chapter_node_appendix.pl
index 43e00b48b9..dfab281c90 100644
--- a/tp/t/results/sectioning/part_node_chapter_node_appendix.pl
+++ b/tp/t/results/sectioning/part_node_chapter_node_appendix.pl
@@ -256,13 +256,15 @@ $result_trees{'part_node_chapter_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -304,13 +306,15 @@ $result_trees{'part_node_chapter_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -383,14 +387,16 @@ $result_trees{'part_node_chapter_node_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 12,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -468,14 +474,16 @@ $result_trees{'part_node_chapter_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => 'A',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -596,7 +604,6 @@ Appendix A Appendix
 ';
 
 $result_sectioning{'part_node_chapter_node_appendix'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -610,8 +617,10 @@ $result_sectioning{'part_node_chapter_node_appendix'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -629,20 +638,24 @@ $result_sectioning{'part_node_chapter_node_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
@@ -656,14 +669,19 @@ $result_sectioning{'part_node_chapter_node_appendix'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_node_chapter_node_appendix'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'part_node_chapter_node_appendix'};
 
$result_sectioning{'part_node_chapter_node_appendix'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_node_chapter_node_appendix'}{'section_childs'}[1];
@@ -686,7 +704,9 @@ $result_nodes{'part_node_chapter_node_appendix'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -702,12 +722,16 @@ $result_nodes{'part_node_chapter_node_appendix'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -720,8 +744,10 @@ $result_nodes{'part_node_chapter_node_appendix'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 'A'
+          'number' => 'A',
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'appendix-node',
         'spaces_before_argument' => ' '
@@ -833,7 +859,9 @@ $result_elements{'part_node_chapter_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -850,12 +878,16 @@ $result_elements{'part_node_chapter_node_appendix'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -871,8 +903,10 @@ $result_elements{'part_node_chapter_node_appendix'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 'A'
+                    'number' => 'A',
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/part_node_node_part_appendix.pl 
b/tp/t/results/sectioning/part_node_node_part_appendix.pl
index 85f07d5ad9..aabd1d33fe 100644
--- a/tp/t/results/sectioning/part_node_node_part_appendix.pl
+++ b/tp/t/results/sectioning/part_node_node_part_appendix.pl
@@ -256,13 +256,15 @@ $result_trees{'part_node_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -304,13 +306,15 @@ $result_trees{'part_node_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -383,14 +387,16 @@ $result_trees{'part_node_node_part_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 12,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -475,13 +481,15 @@ $result_trees{'part_node_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -506,14 +514,16 @@ $result_trees{'part_node_node_part_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 17,
           'macro' => ''
         },
         'number' => 'A',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -644,7 +654,6 @@ Appendix A Appendix
 ';
 
 $result_sectioning{'part_node_node_part_appendix'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -658,8 +667,10 @@ $result_sectioning{'part_node_node_part_appendix'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -677,20 +688,24 @@ $result_sectioning{'part_node_node_part_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -708,22 +723,29 @@ $result_sectioning{'part_node_node_part_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_node_node_part_appendix'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'part_node_node_part_appendix'};
 
$result_sectioning{'part_node_node_part_appendix'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_node_node_part_appendix'}{'section_childs'}[1];
@@ -749,7 +771,9 @@ $result_nodes{'part_node_node_part_appendix'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -765,12 +789,16 @@ $result_nodes{'part_node_node_part_appendix'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -786,12 +814,16 @@ $result_nodes{'part_node_node_part_appendix'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 0
+              'structure' => {
+                'level' => 0
+              }
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 'A'
+          'number' => 'A',
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'appendix-part',
         'spaces_before_argument' => ' '
@@ -913,7 +945,9 @@ $result_elements{'part_node_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -930,12 +964,16 @@ $result_elements{'part_node_node_part_appendix'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -954,12 +992,16 @@ $result_elements{'part_node_node_part_appendix'} = [
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 0
+                        'structure' => {
+                          'level' => 0
+                        }
                       },
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 'A'
+                    'number' => 'A',
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/part_node_part_appendix.pl 
b/tp/t/results/sectioning/part_node_part_appendix.pl
index 4d7f57752d..16a4ad7cba 100644
--- a/tp/t/results/sectioning/part_node_part_appendix.pl
+++ b/tp/t/results/sectioning/part_node_part_appendix.pl
@@ -199,13 +199,15 @@ $result_trees{'part_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -247,13 +249,15 @@ $result_trees{'part_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 8,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -326,14 +330,16 @@ $result_trees{'part_node_part_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -377,13 +383,15 @@ $result_trees{'part_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -408,14 +416,16 @@ $result_trees{'part_node_part_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => 'A',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -526,7 +536,6 @@ Appendix A Appendix
 ';
 
 $result_sectioning{'part_node_part_appendix'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -540,8 +549,10 @@ $result_sectioning{'part_node_part_appendix'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -559,20 +570,24 @@ $result_sectioning{'part_node_part_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -583,22 +598,29 @@ $result_sectioning{'part_node_part_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_node_part_appendix'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'part_node_part_appendix'};
 
$result_sectioning{'part_node_part_appendix'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_node_part_appendix'}{'section_childs'}[1];
@@ -624,7 +646,9 @@ $result_nodes{'part_node_part_appendix'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -640,12 +664,16 @@ $result_nodes{'part_node_part_appendix'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -726,7 +754,9 @@ $result_elements{'part_node_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -743,12 +773,16 @@ $result_elements{'part_node_part_appendix'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -766,12 +800,16 @@ $result_elements{'part_node_part_appendix'} = [
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 0
+                        'structure' => {
+                          'level' => 0
+                        }
                       },
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 'A'
+                    'number' => 'A',
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/part_node_part_node_appendix.pl 
b/tp/t/results/sectioning/part_node_part_node_appendix.pl
index dcbe4244f2..beb889447b 100644
--- a/tp/t/results/sectioning/part_node_part_node_appendix.pl
+++ b/tp/t/results/sectioning/part_node_part_node_appendix.pl
@@ -256,13 +256,15 @@ $result_trees{'part_node_part_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -304,13 +306,15 @@ $result_trees{'part_node_part_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -383,14 +387,16 @@ $result_trees{'part_node_part_node_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 12,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -434,13 +440,15 @@ $result_trees{'part_node_part_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 14,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -506,14 +514,16 @@ $result_trees{'part_node_part_node_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 17,
           'macro' => ''
         },
         'number' => 'A',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -644,7 +654,6 @@ Appendix A Appendix
 ';
 
 $result_sectioning{'part_node_part_node_appendix'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -658,8 +667,10 @@ $result_sectioning{'part_node_part_node_appendix'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -677,20 +688,24 @@ $result_sectioning{'part_node_part_node_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -708,22 +723,29 @@ $result_sectioning{'part_node_part_node_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 'A',
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'part_node_part_node_appendix'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'part_node_part_node_appendix'};
 
$result_sectioning{'part_node_part_node_appendix'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'part_node_part_node_appendix'}{'section_childs'}[1];
@@ -749,7 +771,9 @@ $result_nodes{'part_node_part_node_appendix'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -765,12 +789,16 @@ $result_nodes{'part_node_part_node_appendix'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -786,12 +814,16 @@ $result_nodes{'part_node_part_node_appendix'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 0
+              'structure' => {
+                'level' => 0
+              }
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 'A'
+          'number' => 'A',
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'appendix-node',
         'spaces_before_argument' => ' '
@@ -903,7 +935,9 @@ $result_elements{'part_node_part_node_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -920,12 +954,16 @@ $result_elements{'part_node_part_node_appendix'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -944,12 +982,16 @@ $result_elements{'part_node_part_node_appendix'} = [
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 0
+                        'structure' => {
+                          'level' => 0
+                        }
                       },
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 'A'
+                    'number' => 'A',
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/placed_things_before_element.pl 
b/tp/t/results/sectioning/placed_things_before_element.pl
index c185f30c53..686c542b28 100644
--- a/tp/t/results/sectioning/placed_things_before_element.pl
+++ b/tp/t/results/sectioning/placed_things_before_element.pl
@@ -734,14 +734,16 @@ $result_trees{'placed_things_before_element'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 30,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -929,18 +931,22 @@ Anchor in footnote
 ';
 
 $result_sectioning{'placed_things_before_element'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'placed_things_before_element'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'placed_things_before_element'};
 
diff --git a/tp/t/results/sectioning/placed_things_before_node.pl 
b/tp/t/results/sectioning/placed_things_before_node.pl
index a586e1b075..f3a99830e9 100644
--- a/tp/t/results/sectioning/placed_things_before_node.pl
+++ b/tp/t/results/sectioning/placed_things_before_node.pl
@@ -775,13 +775,15 @@ $result_trees{'placed_things_before_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 31,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -975,7 +977,6 @@ Anchor in footnote
 ';
 
 $result_sectioning{'placed_things_before_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -989,10 +990,15 @@ $result_sectioning{'placed_things_before_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'placed_things_before_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'placed_things_before_node'};
 
@@ -1004,7 +1010,9 @@ $result_nodes{'placed_things_before_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/protected_node_parentheses.pl 
b/tp/t/results/sectioning/protected_node_parentheses.pl
index 14c42ceb58..07eada5a19 100644
--- a/tp/t/results/sectioning/protected_node_parentheses.pl
+++ b/tp/t/results/sectioning/protected_node_parentheses.pl
@@ -228,13 +228,15 @@ $result_trees{'protected_node_parentheses'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -533,7 +535,6 @@ top
 ';
 
 $result_sectioning{'protected_node_parentheses'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -547,10 +548,15 @@ $result_sectioning{'protected_node_parentheses'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'protected_node_parentheses'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'protected_node_parentheses'};
 
@@ -562,7 +568,9 @@ $result_nodes{'protected_node_parentheses'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/raiselowersections.pl 
b/tp/t/results/sectioning/raiselowersections.pl
index a5a3f9edfe..b765a9fa8f 100644
--- a/tp/t/results/sectioning/raiselowersections.pl
+++ b/tp/t/results/sectioning/raiselowersections.pl
@@ -277,13 +277,15 @@ $result_trees{'raiselowersections'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -559,14 +561,16 @@ $result_trees{'raiselowersections'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -755,14 +759,16 @@ $result_trees{'raiselowersections'} = {
         'sections_level' => -1,
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => 'section_file.texi',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -951,14 +957,16 @@ $result_trees{'raiselowersections'} = {
         'sections_level' => -1,
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => 'section_file.texi',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1079,14 +1087,16 @@ $result_trees{'raiselowersections'} = {
         'sections_level' => -1,
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => 'section_file.texi',
         'line_nr' => 27,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -1192,14 +1202,16 @@ $result_trees{'raiselowersections'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 31,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1476,7 +1488,6 @@ Second chapter
 ';
 
 $result_sectioning{'raiselowersections'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1489,7 +1500,6 @@ $result_sectioning{'raiselowersections'} = {
           }
         }
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1503,7 +1513,6 @@ $result_sectioning{'raiselowersections'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -1519,7 +1528,6 @@ $result_sectioning{'raiselowersections'} = {
                 'sections_level' => -1,
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -1535,7 +1543,6 @@ $result_sectioning{'raiselowersections'} = {
                     'sections_level' => -1,
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -1551,18 +1558,29 @@ $result_sectioning{'raiselowersections'} = {
                         'sections_level' => -1,
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -1578,17 +1596,25 @@ $result_sectioning{'raiselowersections'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'raiselowersections'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'raiselowersections'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'raiselowersections'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'raiselowersections'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -1608,7 +1634,9 @@ $result_nodes{'raiselowersections'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -1621,8 +1649,10 @@ $result_nodes{'raiselowersections'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Chapter',
       'spaces_before_argument' => ' '
@@ -1636,8 +1666,10 @@ $result_nodes{'raiselowersections'} = {
             'sections_level' => -1,
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'Chapter-in-included-file',
         'spaces_before_argument' => ' '
@@ -1651,8 +1683,10 @@ $result_nodes{'raiselowersections'} = {
               'sections_level' => -1,
               'spaces_before_argument' => ' '
             },
-            'level' => 3,
-            'number' => '1.1.1'
+            'number' => '1.1.1',
+            'structure' => {
+              'level' => 3
+            }
           },
           'normalized' => 'Section',
           'spaces_before_argument' => ' '
@@ -1666,8 +1700,10 @@ $result_nodes{'raiselowersections'} = {
                 'sections_level' => -1,
                 'spaces_before_argument' => ' '
               },
-              'level' => 4,
-              'number' => '1.1.1.1'
+              'number' => '1.1.1.1',
+              'structure' => {
+                'level' => 4
+              }
             },
             'normalized' => 'Subsection',
             'spaces_before_argument' => ' '
@@ -1731,8 +1767,10 @@ $result_nodes{'raiselowersections'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'Second-chapter',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/ref_to_top.pl 
b/tp/t/results/sectioning/ref_to_top.pl
index d0f8f659ec..8111433aeb 100644
--- a/tp/t/results/sectioning/ref_to_top.pl
+++ b/tp/t/results/sectioning/ref_to_top.pl
@@ -131,13 +131,15 @@ $result_trees{'ref_to_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -177,7 +179,6 @@ TOP.
 ';
 
 $result_sectioning{'ref_to_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -191,10 +192,15 @@ $result_sectioning{'ref_to_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'ref_to_top'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'ref_to_top'};
 
@@ -206,7 +212,9 @@ $result_nodes{'ref_to_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_before_after_top_node.pl 
b/tp/t/results/sectioning/section_before_after_top_node.pl
index f46a8ec1ad..f9a49eaff5 100644
--- a/tp/t/results/sectioning/section_before_after_top_node.pl
+++ b/tp/t/results/sectioning/section_before_after_top_node.pl
@@ -77,13 +77,15 @@ $result_trees{'section_before_after_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -155,13 +157,15 @@ $result_trees{'section_before_after_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -203,14 +207,16 @@ $result_trees{'section_before_after_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -267,15 +273,16 @@ in chapter
 ';
 
 $result_sectioning{'section_before_after_top_node'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'top',
@@ -289,9 +296,11 @@ $result_sectioning{'section_before_after_top_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     },
     {
@@ -299,14 +308,19 @@ $result_sectioning{'section_before_after_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'section_before_after_top_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_before_after_top_node'};
 
$result_sectioning{'section_before_after_top_node'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'section_before_after_top_node'}{'section_childs'}[0];
@@ -325,7 +339,9 @@ $result_nodes{'section_before_after_top_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_before_after_top_node_last_node.pl 
b/tp/t/results/sectioning/section_before_after_top_node_last_node.pl
index c277f2df23..334df57f00 100644
--- a/tp/t/results/sectioning/section_before_after_top_node_last_node.pl
+++ b/tp/t/results/sectioning/section_before_after_top_node_last_node.pl
@@ -77,13 +77,15 @@ $result_trees{'section_before_after_top_node_last_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -155,13 +157,15 @@ $result_trees{'section_before_after_top_node_last_node'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -209,14 +213,16 @@ $result_trees{'section_before_after_top_node_last_node'} 
= {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -323,15 +329,16 @@ in chapter
 ';
 
 $result_sectioning{'section_before_after_top_node_last_node'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'top',
@@ -345,9 +352,11 @@ 
$result_sectioning{'section_before_after_top_node_last_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     },
     {
@@ -355,14 +364,19 @@ 
$result_sectioning{'section_before_after_top_node_last_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'section_before_after_top_node_last_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_before_after_top_node_last_node'};
 
$result_sectioning{'section_before_after_top_node_last_node'}{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'section_before_after_top_node_last_node'}{'section_childs'}[0];
@@ -381,7 +395,9 @@ $result_nodes{'section_before_after_top_node_last_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_before_chapter.pl 
b/tp/t/results/sectioning/section_before_chapter.pl
index 0391b65b39..bae13ac682 100644
--- a/tp/t/results/sectioning/section_before_chapter.pl
+++ b/tp/t/results/sectioning/section_before_chapter.pl
@@ -41,14 +41,16 @@ $result_trees{'section_before_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -72,14 +74,16 @@ $result_trees{'section_before_chapter'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -107,29 +111,35 @@ $result_texts{'section_before_chapter'} = '1 section
 ';
 
 $result_sectioning{'section_before_chapter'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'section_before_chapter'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'section_before_chapter'};
 
$result_sectioning{'section_before_chapter'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'section_before_chapter'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/section_before_part.pl 
b/tp/t/results/sectioning/section_before_part.pl
index 2dd4ac025d..14855e0b99 100644
--- a/tp/t/results/sectioning/section_before_part.pl
+++ b/tp/t/results/sectioning/section_before_part.pl
@@ -41,14 +41,16 @@ $result_trees{'section_before_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -96,13 +98,15 @@ $result_trees{'section_before_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -136,26 +140,32 @@ part
 ';
 
 $result_sectioning{'section_before_part'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'part',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'section_before_part'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'section_before_part'};
 $result_sectioning{'section_before_part'}{'section_childs'}[1]{'section_up'} = 
$result_sectioning{'section_before_part'};
diff --git a/tp/t/results/sectioning/section_before_top.pl 
b/tp/t/results/sectioning/section_before_top.pl
index b19dda65ce..f528195bb0 100644
--- a/tp/t/results/sectioning/section_before_top.pl
+++ b/tp/t/results/sectioning/section_before_top.pl
@@ -110,14 +110,16 @@ $result_trees{'section_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -299,13 +301,15 @@ $result_trees{'section_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -374,7 +378,6 @@ top
 ';
 
 $result_sectioning{'section_before_top'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
@@ -388,9 +391,11 @@ $result_sectioning{'section_before_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'top',
@@ -404,12 +409,17 @@ $result_sectioning{'section_before_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 $result_sectioning{'section_before_top'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'section_before_top'};
 $result_sectioning{'section_before_top'}{'section_childs'}[1]{'section_prev'} 
= $result_sectioning{'section_before_top'}{'section_childs'}[0];
@@ -424,7 +434,9 @@ $result_nodes{'section_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2
+      'structure' => {
+        'level' => 2
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -437,8 +449,10 @@ $result_nodes{'section_before_top'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 2
+        }
       },
       'normalized' => 'section-node',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_before_top_no_node.pl 
b/tp/t/results/sectioning/section_before_top_no_node.pl
index 8e270cff4e..fde7cd83cc 100644
--- a/tp/t/results/sectioning/section_before_top_no_node.pl
+++ b/tp/t/results/sectioning/section_before_top_no_node.pl
@@ -41,14 +41,16 @@ $result_trees{'section_before_top_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -72,13 +74,15 @@ $result_trees{'section_before_top_no_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -106,28 +110,34 @@ top
 ';
 
 $result_sectioning{'section_before_top_no_node'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'section_before_top_no_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_before_top_no_node'};
 
$result_sectioning{'section_before_top_no_node'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'section_before_top_no_node'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/section_below_unnumbered.pl 
b/tp/t/results/sectioning/section_below_unnumbered.pl
index 67a9913c84..70b9045ae0 100644
--- a/tp/t/results/sectioning/section_below_unnumbered.pl
+++ b/tp/t/results/sectioning/section_below_unnumbered.pl
@@ -251,13 +251,15 @@ $result_trees{'section_below_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -445,13 +447,15 @@ $result_trees{'section_below_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -540,13 +544,15 @@ $result_trees{'section_below_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 22,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -693,7 +699,6 @@ Should be unnumbered.
 ';
 
 $result_sectioning{'section_below_unnumbered'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -707,7 +712,6 @@ $result_sectioning{'section_below_unnumbered'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'unnumbered',
@@ -721,7 +725,6 @@ $result_sectioning{'section_below_unnumbered'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_childs' => [
             {
               'cmdname' => 'section',
@@ -735,18 +738,29 @@ $result_sectioning{'section_below_unnumbered'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'section_below_unnumbered'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'section_below_unnumbered'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'section_below_unnumbered'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_below_unnumbered'}{'section_childs'}[0];
@@ -762,7 +776,9 @@ $result_nodes{'section_below_unnumbered'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -775,7 +791,9 @@ $result_nodes{'section_below_unnumbered'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Unn',
       'spaces_before_argument' => ' '
@@ -788,7 +806,9 @@ $result_nodes{'section_below_unnumbered'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'Sec',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_below_unnumbered_no_top.pl 
b/tp/t/results/sectioning/section_below_unnumbered_no_top.pl
index dbd841ac8a..6c5d92107a 100644
--- a/tp/t/results/sectioning/section_below_unnumbered_no_top.pl
+++ b/tp/t/results/sectioning/section_below_unnumbered_no_top.pl
@@ -34,13 +34,15 @@ $result_trees{'section_below_unnumbered_no_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -64,13 +66,15 @@ $result_trees{'section_below_unnumbered_no_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -95,27 +99,33 @@ S
 ';
 
 $result_sectioning{'section_below_unnumbered_no_top'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_childs' => [
         {
           'cmdname' => 'section',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'section_below_unnumbered_no_top'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_below_unnumbered_no_top'}{'section_childs'}[0];
 
$result_sectioning{'section_below_unnumbered_no_top'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_below_unnumbered_no_top'};
diff --git a/tp/t/results/sectioning/section_chapter_before_top.pl 
b/tp/t/results/sectioning/section_chapter_before_top.pl
index 39e66a1a21..615ce5e6a5 100644
--- a/tp/t/results/sectioning/section_chapter_before_top.pl
+++ b/tp/t/results/sectioning/section_chapter_before_top.pl
@@ -41,14 +41,16 @@ $result_trees{'section_chapter_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -79,14 +81,16 @@ $result_trees{'section_chapter_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -110,13 +114,15 @@ $result_trees{'section_chapter_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -153,26 +159,29 @@ top
 ';
 
 $result_sectioning{'section_chapter_before_top'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     },
     {
@@ -180,12 +189,17 @@ $result_sectioning{'section_chapter_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'section_chapter_before_top'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_chapter_before_top'};
 
$result_sectioning{'section_chapter_before_top'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'section_chapter_before_top'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/section_chapter_before_top_nodes.pl 
b/tp/t/results/sectioning/section_chapter_before_top_nodes.pl
index 8f4760ee65..f44a470c2c 100644
--- a/tp/t/results/sectioning/section_chapter_before_top_nodes.pl
+++ b/tp/t/results/sectioning/section_chapter_before_top_nodes.pl
@@ -118,14 +118,16 @@ $result_trees{'section_chapter_before_top_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -313,14 +315,16 @@ $result_trees{'section_chapter_before_top_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -508,13 +512,15 @@ $result_trees{'section_chapter_before_top_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 14,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -627,7 +633,6 @@ top
 ';
 
 $result_sectioning{'section_chapter_before_top_nodes'} = {
-  'level' => 1,
   'section_childs' => [
     {
       'cmdname' => 'section',
@@ -641,9 +646,11 @@ $result_sectioning{'section_chapter_before_top_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'chapter',
@@ -657,10 +664,12 @@ $result_sectioning{'section_chapter_before_top_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     },
     {
@@ -675,12 +684,17 @@ $result_sectioning{'section_chapter_before_top_nodes'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 2
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 1
+  }
 };
 
$result_sectioning{'section_chapter_before_top_nodes'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_chapter_before_top_nodes'};
 
$result_sectioning{'section_chapter_before_top_nodes'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'section_chapter_before_top_nodes'}{'section_childs'}[0];
@@ -698,7 +712,9 @@ $result_nodes{'section_chapter_before_top_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2
+      'structure' => {
+        'level' => 2
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -711,8 +727,10 @@ $result_nodes{'section_chapter_before_top_nodes'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
-        'number' => 2
+        'number' => 2,
+        'structure' => {
+          'level' => 2
+        }
       },
       'normalized' => 'chapter-node',
       'spaces_before_argument' => ' '
@@ -725,8 +743,10 @@ $result_nodes{'section_chapter_before_top_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section-node',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_in_unnumbered_info.pl 
b/tp/t/results/sectioning/section_in_unnumbered_info.pl
index 5291e26de3..5594e0b759 100644
--- a/tp/t/results/sectioning/section_in_unnumbered_info.pl
+++ b/tp/t/results/sectioning/section_in_unnumbered_info.pl
@@ -473,13 +473,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -667,14 +669,16 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -746,14 +750,16 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -941,13 +947,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 28,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1019,13 +1027,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 35,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1270,14 +1280,16 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 38,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1636,13 +1648,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 46,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1714,13 +1728,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 56,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1792,13 +1808,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 59,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1870,13 +1888,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 62,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1948,13 +1968,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 65,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2142,13 +2164,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 68,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -2226,13 +2250,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 75,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2648,14 +2674,16 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 79,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3014,13 +3042,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 90,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3092,13 +3122,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 100,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3170,13 +3202,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 103,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3248,13 +3282,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 106,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3326,13 +3362,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 109,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3404,14 +3442,16 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 112,
         'macro' => ''
       },
       'number' => '3.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3599,13 +3639,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 115,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3677,13 +3719,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 122,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3871,14 +3915,16 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 125,
         'macro' => ''
       },
       'number' => '3.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3950,14 +3996,16 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 132,
         'macro' => ''
       },
       'number' => '3.2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -4145,13 +4193,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 135,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -4223,13 +4273,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 142,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -4417,13 +4469,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 145,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -4782,13 +4836,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 152,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -4860,13 +4916,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 162,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -4938,13 +4996,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 165,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -5016,13 +5076,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 168,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -5087,13 +5149,15 @@ $result_trees{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 171,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
   ],
   'type' => 'document_root'
@@ -6130,7 +6194,6 @@ numbered subsection2 4
 ';
 
 $result_sectioning{'section_in_unnumbered_info'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -6144,7 +6207,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -6158,7 +6220,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -6173,12 +6234,17 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6194,7 +6260,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_childs' => [
             {
               'cmdname' => 'section',
@@ -6208,12 +6273,17 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6229,7 +6299,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -6244,7 +6313,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6258,8 +6326,10 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6273,9 +6343,11 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6289,9 +6361,11 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6305,12 +6379,17 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -6324,7 +6403,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -6338,16 +6416,24 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6363,7 +6449,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_childs' => [
             {
@@ -6378,7 +6463,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6392,8 +6476,10 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6407,9 +6493,11 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6423,9 +6511,11 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6439,12 +6529,17 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -6458,10 +6553,12 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.1',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -6475,7 +6572,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -6489,12 +6585,17 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -6508,7 +6609,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.2',
               'section_childs' => [
                 {
@@ -6523,13 +6623,18 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '3.2.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -6543,7 +6648,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -6557,16 +6661,24 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6582,7 +6694,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_childs' => [
             {
               'cmdname' => 'unnumberedsec',
@@ -6596,7 +6707,6 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6610,8 +6720,10 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6625,9 +6737,11 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6641,9 +6755,11 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6657,23 +6773,37 @@ $result_sectioning{'section_in_unnumbered_info'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'section_in_unnumbered_info'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'section_in_unnumbered_info'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'section_in_unnumbered_info'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_in_unnumbered_info'}{'section_childs'}[0];
@@ -6744,7 +6874,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -6757,8 +6889,10 @@ $result_nodes{'section_in_unnumbered_info'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -6771,8 +6905,10 @@ $result_nodes{'section_in_unnumbered_info'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section-in-chapter',
         'spaces_before_argument' => ' '
@@ -6802,7 +6938,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'unnumbered',
         'spaces_before_argument' => ' '
@@ -6815,7 +6953,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'section-in-unnumbered',
           'spaces_before_argument' => ' '
@@ -6845,8 +6985,10 @@ $result_nodes{'section_in_unnumbered_info'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 2
+            'number' => 2,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter-2',
           'spaces_before_argument' => ' '
@@ -6859,7 +7001,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'unnumberedsec-2',
             'spaces_before_argument' => ' '
@@ -6872,7 +7016,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 3
+                'structure' => {
+                  'level' => 3
+                }
               },
               'normalized' => 'unnumbered-sub-2',
               'spaces_before_argument' => ' '
@@ -6885,7 +7031,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'numbered-sub-2',
                 'spaces_before_argument' => ' '
@@ -6898,7 +7046,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 3
+                    'structure' => {
+                      'level' => 3
+                    }
                   },
                   'normalized' => 'unnumbered-sub2-2',
                   'spaces_before_argument' => ' '
@@ -6911,7 +7061,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'numbered-sub2-2',
                     'spaces_before_argument' => ' '
@@ -6950,7 +7102,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 2
+                'structure' => {
+                  'level' => 2
+                }
               },
               'normalized' => 'unnumberedsec-2_002d1',
               'spaces_before_argument' => ' '
@@ -6963,7 +7117,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'numbered-sub-2_002d1',
                 'spaces_before_argument' => ' '
@@ -7013,8 +7169,10 @@ $result_nodes{'section_in_unnumbered_info'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 3
+              'number' => 3,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'chapter-3',
             'spaces_before_argument' => ' '
@@ -7027,7 +7185,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 2
+                'structure' => {
+                  'level' => 2
+                }
               },
               'normalized' => 'unnumberedsec-3',
               'spaces_before_argument' => ' '
@@ -7040,7 +7200,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'unnumbered-sub-3',
                 'spaces_before_argument' => ' '
@@ -7053,7 +7215,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 3
+                    'structure' => {
+                      'level' => 3
+                    }
                   },
                   'normalized' => 'numbered-sub-3',
                   'spaces_before_argument' => ' '
@@ -7066,7 +7230,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'unnumbered-sub2-3',
                     'spaces_before_argument' => ' '
@@ -7079,7 +7245,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 3
+                        'structure' => {
+                          'level' => 3
+                        }
                       },
                       'normalized' => 'numbered-sub2-3',
                       'spaces_before_argument' => ' '
@@ -7118,8 +7286,10 @@ $result_nodes{'section_in_unnumbered_info'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 2,
-                  'number' => '3.1'
+                  'number' => '3.1',
+                  'structure' => {
+                    'level' => 2
+                  }
                 },
                 'normalized' => 'section-3_002d1',
                 'spaces_before_argument' => ' '
@@ -7132,7 +7302,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 2
+                    'structure' => {
+                      'level' => 2
+                    }
                   },
                   'normalized' => 'unnumberedsec-3_002d2',
                   'spaces_before_argument' => ' '
@@ -7145,7 +7317,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'numbered-sub-3_002d2',
                     'spaces_before_argument' => ' '
@@ -7175,8 +7349,10 @@ $result_nodes{'section_in_unnumbered_info'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 2,
-                      'number' => '3.2'
+                      'number' => '3.2',
+                      'structure' => {
+                        'level' => 2
+                      }
                     },
                     'normalized' => 'section-3_002d3',
                     'spaces_before_argument' => ' '
@@ -7189,8 +7365,10 @@ $result_nodes{'section_in_unnumbered_info'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 3,
-                        'number' => '3.2.1'
+                        'number' => '3.2.1',
+                        'structure' => {
+                          'level' => 3
+                        }
                       },
                       'normalized' => 'subsection-3_002d3',
                       'spaces_before_argument' => ' '
@@ -7220,7 +7398,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 2
+                        'structure' => {
+                          'level' => 2
+                        }
                       },
                       'normalized' => 'unnumberedsec-3_002d4',
                       'spaces_before_argument' => ' '
@@ -7233,7 +7413,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 3
+                          'structure' => {
+                            'level' => 3
+                          }
                         },
                         'normalized' => 'numbered-sub-3_002d4',
                         'spaces_before_argument' => ' '
@@ -7292,7 +7474,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 'unnumbered-4',
               'spaces_before_argument' => ' '
@@ -7305,7 +7489,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 2
+                  'structure' => {
+                    'level' => 2
+                  }
                 },
                 'normalized' => 'unnumberedsec-4',
                 'spaces_before_argument' => ' '
@@ -7318,7 +7504,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 3
+                    'structure' => {
+                      'level' => 3
+                    }
                   },
                   'normalized' => 'unnumbered-sub-4',
                   'spaces_before_argument' => ' '
@@ -7331,7 +7519,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'numbered-sub-4',
                     'spaces_before_argument' => ' '
@@ -7344,7 +7534,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 3
+                        'structure' => {
+                          'level' => 3
+                        }
                       },
                       'normalized' => 'unnumbered-sub2-4',
                       'spaces_before_argument' => ' '
@@ -7357,7 +7549,9 @@ $result_nodes{'section_in_unnumbered_info'} = {
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 3
+                          'structure' => {
+                            'level' => 3
+                          }
                         },
                         'normalized' => 'numbered-sub2-4',
                         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl 
b/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl
index 7dc5dd1b3b..e7ccf310e0 100644
--- a/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl
+++ b/tp/t/results/sectioning/section_in_unnumbered_plaintext.pl
@@ -473,13 +473,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -667,14 +669,16 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 18,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -746,14 +750,16 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 25,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -941,13 +947,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 28,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1019,13 +1027,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 35,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1270,14 +1280,16 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 38,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -1636,13 +1648,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 46,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -1714,13 +1728,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 56,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1792,13 +1808,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 59,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1870,13 +1888,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 62,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -1948,13 +1968,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 65,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2142,13 +2164,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 68,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -2226,13 +2250,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 75,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -2648,14 +2674,16 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 79,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -3014,13 +3042,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 90,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3092,13 +3122,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 100,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3170,13 +3202,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 103,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3248,13 +3282,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 106,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3326,13 +3362,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 109,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3404,14 +3442,16 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 112,
         'macro' => ''
       },
       'number' => '3.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3599,13 +3639,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 115,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3677,13 +3719,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 122,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -3871,14 +3915,16 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 125,
         'macro' => ''
       },
       'number' => '3.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -3950,14 +3996,16 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 132,
         'macro' => ''
       },
       'number' => '3.2.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -4145,13 +4193,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 135,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -4223,13 +4273,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 142,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -4417,13 +4469,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 145,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -4782,13 +4836,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 152,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -4860,13 +4916,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 162,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -4938,13 +4996,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 165,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -5016,13 +5076,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 168,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -5087,13 +5149,15 @@ $result_trees{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 171,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     }
   ],
   'type' => 'document_root'
@@ -6130,7 +6194,6 @@ numbered subsection2 4
 ';
 
 $result_sectioning{'section_in_unnumbered_plaintext'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -6144,7 +6207,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -6158,7 +6220,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -6173,12 +6234,17 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6194,7 +6260,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_childs' => [
             {
               'cmdname' => 'section',
@@ -6208,12 +6273,17 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6229,7 +6299,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -6244,7 +6313,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6258,8 +6326,10 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6273,9 +6343,11 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6289,9 +6361,11 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6305,12 +6379,17 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -6324,7 +6403,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -6338,16 +6416,24 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6363,7 +6449,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_childs' => [
             {
@@ -6378,7 +6463,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6392,8 +6476,10 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6407,9 +6493,11 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6423,9 +6511,11 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6439,12 +6529,17 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -6458,10 +6553,12 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.1',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -6475,7 +6572,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -6489,12 +6585,17 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -6508,7 +6609,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '3.2',
               'section_childs' => [
                 {
@@ -6523,13 +6623,18 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '3.2.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'unnumberedsec',
@@ -6543,7 +6648,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'subsection',
@@ -6557,16 +6661,24 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -6582,7 +6694,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_childs' => [
             {
               'cmdname' => 'unnumberedsec',
@@ -6596,7 +6707,6 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'section_childs' => [
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6610,8 +6720,10 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6625,9 +6737,11 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'unnumberedsubsec',
@@ -6641,9 +6755,11 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = {
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
@@ -6657,23 +6773,37 @@ $result_sectioning{'section_in_unnumbered_plaintext'} = 
{
                     },
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'section_in_unnumbered_plaintext'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'section_in_unnumbered_plaintext'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'section_in_unnumbered_plaintext'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_in_unnumbered_plaintext'}{'section_childs'}[0];
@@ -6744,7 +6874,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -6757,8 +6889,10 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '
@@ -6771,8 +6905,10 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'section-in-chapter',
         'spaces_before_argument' => ' '
@@ -6802,7 +6938,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'unnumbered',
         'spaces_before_argument' => ' '
@@ -6815,7 +6953,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'section-in-unnumbered',
           'spaces_before_argument' => ' '
@@ -6845,8 +6985,10 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 2
+            'number' => 2,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter-2',
           'spaces_before_argument' => ' '
@@ -6859,7 +7001,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2
+              'structure' => {
+                'level' => 2
+              }
             },
             'normalized' => 'unnumberedsec-2',
             'spaces_before_argument' => ' '
@@ -6872,7 +7016,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 3
+                'structure' => {
+                  'level' => 3
+                }
               },
               'normalized' => 'unnumbered-sub-2',
               'spaces_before_argument' => ' '
@@ -6885,7 +7031,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'numbered-sub-2',
                 'spaces_before_argument' => ' '
@@ -6898,7 +7046,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 3
+                    'structure' => {
+                      'level' => 3
+                    }
                   },
                   'normalized' => 'unnumbered-sub2-2',
                   'spaces_before_argument' => ' '
@@ -6911,7 +7061,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'numbered-sub2-2',
                     'spaces_before_argument' => ' '
@@ -6950,7 +7102,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 2
+                'structure' => {
+                  'level' => 2
+                }
               },
               'normalized' => 'unnumberedsec-2_002d1',
               'spaces_before_argument' => ' '
@@ -6963,7 +7117,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'numbered-sub-2_002d1',
                 'spaces_before_argument' => ' '
@@ -7013,8 +7169,10 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 3
+              'number' => 3,
+              'structure' => {
+                'level' => 1
+              }
             },
             'normalized' => 'chapter-3',
             'spaces_before_argument' => ' '
@@ -7027,7 +7185,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 2
+                'structure' => {
+                  'level' => 2
+                }
               },
               'normalized' => 'unnumberedsec-3',
               'spaces_before_argument' => ' '
@@ -7040,7 +7200,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 'normalized' => 'unnumbered-sub-3',
                 'spaces_before_argument' => ' '
@@ -7053,7 +7215,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 3
+                    'structure' => {
+                      'level' => 3
+                    }
                   },
                   'normalized' => 'numbered-sub-3',
                   'spaces_before_argument' => ' '
@@ -7066,7 +7230,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'unnumbered-sub2-3',
                     'spaces_before_argument' => ' '
@@ -7079,7 +7245,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 3
+                        'structure' => {
+                          'level' => 3
+                        }
                       },
                       'normalized' => 'numbered-sub2-3',
                       'spaces_before_argument' => ' '
@@ -7118,8 +7286,10 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 2,
-                  'number' => '3.1'
+                  'number' => '3.1',
+                  'structure' => {
+                    'level' => 2
+                  }
                 },
                 'normalized' => 'section-3_002d1',
                 'spaces_before_argument' => ' '
@@ -7132,7 +7302,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 2
+                    'structure' => {
+                      'level' => 2
+                    }
                   },
                   'normalized' => 'unnumberedsec-3_002d2',
                   'spaces_before_argument' => ' '
@@ -7145,7 +7317,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'numbered-sub-3_002d2',
                     'spaces_before_argument' => ' '
@@ -7175,8 +7349,10 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 2,
-                      'number' => '3.2'
+                      'number' => '3.2',
+                      'structure' => {
+                        'level' => 2
+                      }
                     },
                     'normalized' => 'section-3_002d3',
                     'spaces_before_argument' => ' '
@@ -7189,8 +7365,10 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 3,
-                        'number' => '3.2.1'
+                        'number' => '3.2.1',
+                        'structure' => {
+                          'level' => 3
+                        }
                       },
                       'normalized' => 'subsection-3_002d3',
                       'spaces_before_argument' => ' '
@@ -7220,7 +7398,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 2
+                        'structure' => {
+                          'level' => 2
+                        }
                       },
                       'normalized' => 'unnumberedsec-3_002d4',
                       'spaces_before_argument' => ' '
@@ -7233,7 +7413,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 3
+                          'structure' => {
+                            'level' => 3
+                          }
                         },
                         'normalized' => 'numbered-sub-3_002d4',
                         'spaces_before_argument' => ' '
@@ -7292,7 +7474,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                 'extra' => {
                   'spaces_before_argument' => ' '
                 },
-                'level' => 1
+                'structure' => {
+                  'level' => 1
+                }
               },
               'normalized' => 'unnumbered-4',
               'spaces_before_argument' => ' '
@@ -7305,7 +7489,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 2
+                  'structure' => {
+                    'level' => 2
+                  }
                 },
                 'normalized' => 'unnumberedsec-4',
                 'spaces_before_argument' => ' '
@@ -7318,7 +7504,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 3
+                    'structure' => {
+                      'level' => 3
+                    }
                   },
                   'normalized' => 'unnumbered-sub-4',
                   'spaces_before_argument' => ' '
@@ -7331,7 +7519,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 3
+                      'structure' => {
+                        'level' => 3
+                      }
                     },
                     'normalized' => 'numbered-sub-4',
                     'spaces_before_argument' => ' '
@@ -7344,7 +7534,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 3
+                        'structure' => {
+                          'level' => 3
+                        }
                       },
                       'normalized' => 'unnumbered-sub2-4',
                       'spaces_before_argument' => ' '
@@ -7357,7 +7549,9 @@ $result_nodes{'section_in_unnumbered_plaintext'} = {
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 3
+                          'structure' => {
+                            'level' => 3
+                          }
                         },
                         'normalized' => 'numbered-sub2-4',
                         'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/section_node_before_part.pl 
b/tp/t/results/sectioning/section_node_before_part.pl
index fde3430c6f..583538c5ab 100644
--- a/tp/t/results/sectioning/section_node_before_part.pl
+++ b/tp/t/results/sectioning/section_node_before_part.pl
@@ -89,14 +89,16 @@ $result_trees{'section_node_before_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -120,13 +122,15 @@ $result_trees{'section_node_before_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -163,7 +167,6 @@ part
 ';
 
 $result_sectioning{'section_node_before_part'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'section',
@@ -177,19 +180,26 @@ $result_sectioning{'section_node_before_part'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'cmdname' => 'part',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'section_node_before_part'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'section_node_before_part'};
 
$result_sectioning{'section_node_before_part'}{'section_childs'}[1]{'section_up'}
 = $result_sectioning{'section_node_before_part'};
@@ -202,8 +212,10 @@ $result_nodes{'section_node_before_part'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 2
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/sectioning_part_appendix.pl 
b/tp/t/results/sectioning/sectioning_part_appendix.pl
index defa2009b3..4acd9485de 100644
--- a/tp/t/results/sectioning/sectioning_part_appendix.pl
+++ b/tp/t/results/sectioning/sectioning_part_appendix.pl
@@ -42,13 +42,15 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -89,14 +91,16 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -139,14 +143,16 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => '1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -189,14 +195,16 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 7,
           'macro' => ''
         },
         'number' => '1.1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -239,14 +247,16 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 4,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
         'number' => '1.1.1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 4
+        }
       }
     ],
     'extra' => {
@@ -289,13 +299,15 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -327,14 +339,16 @@ $result_trees{'sectioning_part_appendix'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -377,14 +391,16 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => 3,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -427,13 +443,15 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 17,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -476,14 +494,16 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 19,
           'macro' => ''
         },
         'number' => 'A',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -519,14 +539,16 @@ $result_trees{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 21,
           'macro' => ''
         },
         'number' => 'A.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -673,21 +695,18 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'sectioning_part_appendix'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -695,7 +714,6 @@ $result_sectioning{'sectioning_part_appendix'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -703,7 +721,6 @@ $result_sectioning{'sectioning_part_appendix'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -711,23 +728,37 @@ $result_sectioning{'sectioning_part_appendix'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -738,15 +769,16 @@ $result_sectioning{'sectioning_part_appendix'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -754,10 +786,12 @@ $result_sectioning{'sectioning_part_appendix'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -766,22 +800,26 @@ $result_sectioning{'sectioning_part_appendix'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -789,17 +827,25 @@ $result_sectioning{'sectioning_part_appendix'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'sectioning_part_appendix'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sectioning_part_appendix'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'sectioning_part_appendix'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sectioning_part_appendix'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -843,7 +889,9 @@ $result_elements{'sectioning_part_appendix'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -856,8 +904,10 @@ $result_elements{'sectioning_part_appendix'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -875,12 +925,16 @@ $result_elements{'sectioning_part_appendix'} = [
                         'extra' => {
                           'spaces_before_argument' => ' '
                         },
-                        'level' => 0
+                        'structure' => {
+                          'level' => 0
+                        }
                       },
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
@@ -893,8 +947,10 @@ $result_elements{'sectioning_part_appendix'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 4,
-                          'number' => '1.1.1.1'
+                          'number' => '1.1.1.1',
+                          'structure' => {
+                            'level' => 4
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -907,8 +963,10 @@ $result_elements{'sectioning_part_appendix'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 3,
-                                'number' => '1.1.1'
+                                'number' => '1.1.1',
+                                'structure' => {
+                                  'level' => 3
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -921,8 +979,10 @@ $result_elements{'sectioning_part_appendix'} = [
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 2,
-                                      'number' => '1.1'
+                                      'number' => '1.1',
+                                      'structure' => {
+                                        'level' => 2
+                                      }
                                     },
                                     'unit_command' => {}
                                   },
@@ -964,8 +1024,10 @@ $result_elements{'sectioning_part_appendix'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 1,
-                          'number' => 3
+                          'number' => 3,
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -980,7 +1042,9 @@ $result_elements{'sectioning_part_appendix'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -995,8 +1059,10 @@ $result_elements{'sectioning_part_appendix'} = [
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 1,
-                                      'number' => 'A'
+                                      'number' => 'A',
+                                      'structure' => {
+                                        'level' => 1
+                                      }
                                     },
                                     'unit_command' => {}
                                   },
@@ -1011,8 +1077,10 @@ $result_elements{'sectioning_part_appendix'} = [
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 2,
-                                            'number' => 'A.1'
+                                            'number' => 'A.1',
+                                            'structure' => {
+                                              'level' => 2
+                                            }
                                           },
                                           'unit_command' => {}
                                         },
diff --git a/tp/t/results/sectioning/sectioning_part_appendix_no_top.pl 
b/tp/t/results/sectioning/sectioning_part_appendix_no_top.pl
index fd528ec1b9..3ea58e9b73 100644
--- a/tp/t/results/sectioning/sectioning_part_appendix_no_top.pl
+++ b/tp/t/results/sectioning/sectioning_part_appendix_no_top.pl
@@ -42,14 +42,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -90,14 +92,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
         'number' => '1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -140,14 +144,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => '1.1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -190,14 +196,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 4,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 7,
           'macro' => ''
         },
         'number' => '1.1.1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 4
+        }
       }
     ],
     'extra' => {
@@ -240,13 +248,15 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -278,14 +288,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -328,14 +340,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => 3,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -378,13 +392,15 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -427,14 +443,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 17,
           'macro' => ''
         },
         'number' => 'A',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -470,14 +488,16 @@ $result_trees{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 19,
           'macro' => ''
         },
         'number' => 'A.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -612,14 +632,12 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'sectioning_part_appendix_no_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_childs' => [
         {
@@ -627,7 +645,6 @@ $result_sectioning{'sectioning_part_appendix_no_top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => '1.1',
           'section_childs' => [
             {
@@ -635,7 +652,6 @@ $result_sectioning{'sectioning_part_appendix_no_top'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 3,
               'number' => '1.1.1',
               'section_childs' => [
                 {
@@ -643,18 +659,29 @@ $result_sectioning{'sectioning_part_appendix_no_top'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 4,
                   'number' => '1.1.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 4
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 3
+              }
             }
           ],
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'part',
@@ -665,14 +692,15 @@ $result_sectioning{'sectioning_part_appendix_no_top'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -680,10 +708,12 @@ $result_sectioning{'sectioning_part_appendix_no_top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {}
         },
         {
@@ -691,20 +721,24 @@ $result_sectioning{'sectioning_part_appendix_no_top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -712,16 +746,24 @@ $result_sectioning{'sectioning_part_appendix_no_top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'sectioning_part_appendix_no_top'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sectioning_part_appendix_no_top'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'sectioning_part_appendix_no_top'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sectioning_part_appendix_no_top'}{'section_childs'}[0]{'section_childs'}[0];
@@ -757,8 +799,10 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
@@ -774,12 +818,16 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 2
+              'number' => 2,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -792,8 +840,10 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 4,
-                    'number' => '1.1.1.1'
+                    'number' => '1.1.1.1',
+                    'structure' => {
+                      'level' => 4
+                    }
                   },
                   'unit_command' => {}
                 },
@@ -806,8 +856,10 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 3,
-                          'number' => '1.1.1'
+                          'number' => '1.1.1',
+                          'structure' => {
+                            'level' => 3
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -820,8 +872,10 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 2,
-                                'number' => '1.1'
+                                'number' => '1.1',
+                                'structure' => {
+                                  'level' => 2
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -863,8 +917,10 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 3
+                    'number' => 3,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
@@ -879,7 +935,9 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 1
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -894,8 +952,10 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1,
-                                'number' => 'A'
+                                'number' => 'A',
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -910,8 +970,10 @@ $result_elements{'sectioning_part_appendix_no_top'} = [
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 2,
-                                      'number' => 'A.1'
+                                      'number' => 'A.1',
+                                      'structure' => {
+                                        'level' => 2
+                                      }
                                     },
                                     'unit_command' => {}
                                   },
diff --git a/tp/t/results/sectioning/sections.pl 
b/tp/t/results/sectioning/sections.pl
index a504aa7a91..9e926df3e7 100644
--- a/tp/t/results/sectioning/sections.pl
+++ b/tp/t/results/sectioning/sections.pl
@@ -34,14 +34,16 @@ $result_trees{'sections'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -60,18 +62,22 @@ $result_texts{'sections'} = '1 a chapter
 ';
 
 $result_sectioning{'sections'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'chapter',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'sections'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'sections'};
 
diff --git a/tp/t/results/sectioning/sections_test.pl 
b/tp/t/results/sectioning/sections_test.pl
index 20832db2bd..3343ebc1d3 100644
--- a/tp/t/results/sectioning/sections_test.pl
+++ b/tp/t/results/sectioning/sections_test.pl
@@ -41,13 +41,15 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -154,14 +160,16 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -192,14 +200,16 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -230,13 +240,15 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -268,14 +280,16 @@ $result_trees{'sections_test'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -306,14 +320,16 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -344,13 +360,15 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -381,14 +399,16 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -412,14 +432,16 @@ $result_trees{'sections_test'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 'A.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -529,21 +551,18 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'sections_test'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -551,7 +570,6 @@ $result_sectioning{'sections_test'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -559,7 +577,6 @@ $result_sectioning{'sections_test'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -567,23 +584,37 @@ $result_sectioning{'sections_test'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -594,15 +625,16 @@ $result_sectioning{'sections_test'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -610,10 +642,12 @@ $result_sectioning{'sections_test'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -622,22 +656,26 @@ $result_sectioning{'sections_test'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -645,17 +683,25 @@ $result_sectioning{'sections_test'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'sections_test'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sections_test'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'sections_test'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sections_test'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/sections_test_no_use_nodes.pl 
b/tp/t/results/sectioning/sections_test_no_use_nodes.pl
index fac1f7025e..aa9e6a5187 100644
--- a/tp/t/results/sectioning/sections_test_no_use_nodes.pl
+++ b/tp/t/results/sectioning/sections_test_no_use_nodes.pl
@@ -41,13 +41,15 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -154,14 +160,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -192,14 +200,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -230,13 +240,15 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -268,14 +280,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -306,14 +320,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -344,13 +360,15 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -381,14 +399,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -412,14 +432,16 @@ $result_trees{'sections_test_no_use_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 'A.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -529,21 +551,18 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'sections_test_no_use_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -551,7 +570,6 @@ $result_sectioning{'sections_test_no_use_nodes'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -559,7 +577,6 @@ $result_sectioning{'sections_test_no_use_nodes'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -567,23 +584,37 @@ $result_sectioning{'sections_test_no_use_nodes'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -594,15 +625,16 @@ $result_sectioning{'sections_test_no_use_nodes'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -610,10 +642,12 @@ $result_sectioning{'sections_test_no_use_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -622,22 +656,26 @@ $result_sectioning{'sections_test_no_use_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -645,17 +683,25 @@ $result_sectioning{'sections_test_no_use_nodes'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'sections_test_no_use_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sections_test_no_use_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'sections_test_no_use_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sections_test_no_use_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git 
a/tp/t/results/sectioning/sections_test_no_use_nodes_use_node_directions.pl 
b/tp/t/results/sectioning/sections_test_no_use_nodes_use_node_directions.pl
index f6434c6e9f..b776053727 100644
--- a/tp/t/results/sectioning/sections_test_no_use_nodes_use_node_directions.pl
+++ b/tp/t/results/sectioning/sections_test_no_use_nodes_use_node_directions.pl
@@ -41,13 +41,15 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -154,14 +160,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -192,14 +200,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -230,13 +240,15 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -268,14 +280,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -306,14 +320,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -344,13 +360,15 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -381,14 +399,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -412,14 +432,16 @@ 
$result_trees{'sections_test_no_use_nodes_use_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 'A.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -529,21 +551,18 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -551,7 +570,6 @@ 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -559,7 +577,6 @@ 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -567,23 +584,37 @@ 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -594,15 +625,16 @@ 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -610,10 +642,12 @@ 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -622,22 +656,26 @@ 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -645,17 +683,25 @@ 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'sections_test_no_use_nodes_use_node_directions'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/semi_auto.pl 
b/tp/t/results/sectioning/semi_auto.pl
index 6d5a2cc851..989adf46e8 100644
--- a/tp/t/results/sectioning/semi_auto.pl
+++ b/tp/t/results/sectioning/semi_auto.pl
@@ -255,13 +255,15 @@ $result_trees{'semi_auto'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -449,14 +451,16 @@ $result_trees{'semi_auto'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 10,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -528,14 +532,16 @@ $result_trees{'semi_auto'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -642,14 +648,16 @@ $result_trees{'semi_auto'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 20,
         'macro' => ''
       },
       'number' => '1.2',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -786,7 +794,6 @@ $result_texts{'semi_auto'} = 'Top
 ';
 
 $result_sectioning{'semi_auto'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -800,7 +807,6 @@ $result_sectioning{'semi_auto'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -814,7 +820,6 @@ $result_sectioning{'semi_auto'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -829,9 +834,11 @@ $result_sectioning{'semi_auto'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             },
             {
               'cmdname' => 'section',
@@ -845,20 +852,31 @@ $result_sectioning{'semi_auto'} = {
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.2',
               'section_prev' => {},
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'semi_auto'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'semi_auto'}{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'semi_auto'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'semi_auto'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
@@ -876,7 +894,9 @@ $result_nodes{'semi_auto'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -889,8 +909,10 @@ $result_nodes{'semi_auto'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Chap1',
       'spaces_before_argument' => ' '
@@ -903,8 +925,10 @@ $result_nodes{'semi_auto'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
-          'number' => '1.1'
+          'number' => '1.1',
+          'structure' => {
+            'level' => 2
+          }
         },
         'normalized' => 'Sec-in-chapter',
         'spaces_before_argument' => ' '
@@ -917,8 +941,10 @@ $result_nodes{'semi_auto'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 2,
-            'number' => '1.2'
+            'number' => '1.2',
+            'structure' => {
+              'level' => 2
+            }
           },
           'normalized' => 'Section-non-auto',
           'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/setfilename_on_top_and_after_node.pl 
b/tp/t/results/sectioning/setfilename_on_top_and_after_node.pl
index 124547572d..833c67fcc5 100644
--- a/tp/t/results/sectioning/setfilename_on_top_and_after_node.pl
+++ b/tp/t/results/sectioning/setfilename_on_top_and_after_node.pl
@@ -136,13 +136,15 @@ $result_trees{'setfilename_on_top_and_after_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -177,7 +179,6 @@ $result_texts{'setfilename_on_top_and_after_node'} = 'In top
 ';
 
 $result_sectioning{'setfilename_on_top_and_after_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -191,10 +192,15 @@ $result_sectioning{'setfilename_on_top_and_after_node'} = 
{
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'setfilename_on_top_and_after_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'setfilename_on_top_and_after_node'};
 
@@ -206,7 +212,9 @@ $result_nodes{'setfilename_on_top_and_after_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/shortcontents.pl 
b/tp/t/results/sectioning/shortcontents.pl
index 9e8212d2db..a6f8b13f90 100644
--- a/tp/t/results/sectioning/shortcontents.pl
+++ b/tp/t/results/sectioning/shortcontents.pl
@@ -41,13 +41,15 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -78,14 +80,16 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -116,14 +120,16 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 5,
         'macro' => ''
       },
       'number' => '1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     },
     {
       'args' => [
@@ -154,14 +160,16 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 3,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => '1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 3
+      }
     },
     {
       'args' => [
@@ -192,14 +200,16 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 4,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 9,
         'macro' => ''
       },
       'number' => '1.1.1.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 4
+      }
     },
     {
       'args' => [
@@ -230,13 +240,15 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -268,14 +280,16 @@ $result_trees{'shortcontents'} = {
         'associated_part' => {},
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 13,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -306,14 +320,16 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 15,
         'macro' => ''
       },
       'number' => 3,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -344,13 +360,15 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 17,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -381,14 +399,16 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 19,
         'macro' => ''
       },
       'number' => 'A',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -436,14 +456,16 @@ $result_trees{'shortcontents'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 2,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 21,
         'macro' => ''
       },
       'number' => 'A.1',
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 2
+      }
     }
   ],
   'type' => 'document_root'
@@ -559,21 +581,18 @@ A.1 appendixsec
 ';
 
 $result_sectioning{'shortcontents'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -581,7 +600,6 @@ $result_sectioning{'shortcontents'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
               'section_childs' => [
                 {
@@ -589,7 +607,6 @@ $result_sectioning{'shortcontents'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '1.1.1',
                   'section_childs' => [
                     {
@@ -597,23 +614,37 @@ $result_sectioning{'shortcontents'} = {
                       'extra' => {
                         'spaces_before_argument' => ' '
                       },
-                      'level' => 4,
                       'number' => '1.1.1.1',
-                      'section_up' => {}
+                      'section_up' => {},
+                      'structure' => {
+                        'level' => 4
+                      }
                     }
                   ],
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -624,15 +655,16 @@ $result_sectioning{'shortcontents'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {},
         {
@@ -640,10 +672,12 @@ $result_sectioning{'shortcontents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -652,22 +686,26 @@ $result_sectioning{'shortcontents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'appendix',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 'A',
       'section_childs' => [
         {
@@ -675,17 +713,25 @@ $result_sectioning{'shortcontents'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 2,
           'number' => 'A.1',
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 2
+          }
         }
       ],
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
 
$result_sectioning{'shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = 
$result_sectioning{'shortcontents'}{'section_childs'}[0]{'section_childs'}[0]{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/top_chapter_sections.pl 
b/tp/t/results/sectioning/top_chapter_sections.pl
index a9f737ba6f..4518c71152 100644
--- a/tp/t/results/sectioning/top_chapter_sections.pl
+++ b/tp/t/results/sectioning/top_chapter_sections.pl
@@ -42,13 +42,15 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -89,13 +91,15 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -138,14 +142,16 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -188,14 +194,16 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 7,
           'macro' => ''
         },
         'number' => '1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -238,14 +246,16 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 9,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -288,14 +298,16 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 2,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => '2.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 2
+        }
       }
     ],
     'extra' => {
@@ -338,14 +350,16 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 13,
           'macro' => ''
         },
         'number' => '2.1.1',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -388,14 +402,16 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 3,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 15,
           'macro' => ''
         },
         'number' => '2.1.2',
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 3
+        }
       }
     ],
     'extra' => {
@@ -431,14 +447,16 @@ $result_trees{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 17,
           'macro' => ''
         },
         'number' => 3,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -563,22 +581,22 @@ unnumbered
 ';
 
 $result_sectioning{'top_chapter_sections'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'unnumbered',
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -587,7 +605,6 @@ $result_sectioning{'top_chapter_sections'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_childs' => [
             {
@@ -595,13 +612,18 @@ $result_sectioning{'top_chapter_sections'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '1.1',
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -610,7 +632,6 @@ $result_sectioning{'top_chapter_sections'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_childs' => [
             {
@@ -618,7 +639,6 @@ $result_sectioning{'top_chapter_sections'} = {
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 2,
               'number' => '2.1',
               'section_childs' => [
                 {
@@ -626,26 +646,36 @@ $result_sectioning{'top_chapter_sections'} = {
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '2.1.1',
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 },
                 {
                   'cmdname' => 'subsection',
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 3,
                   'number' => '2.1.2',
                   'section_prev' => {},
-                  'section_up' => {}
+                  'section_up' => {},
+                  'structure' => {
+                    'level' => 3
+                  }
                 }
               ],
-              'section_up' => {}
+              'section_up' => {},
+              'structure' => {
+                'level' => 2
+              }
             }
           ],
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -654,17 +684,25 @@ $result_sectioning{'top_chapter_sections'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 3,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_chapter_sections'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_chapter_sections'}{'section_childs'}[0];
 
$result_sectioning{'top_chapter_sections'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'top_chapter_sections'}{'section_childs'}[0];
@@ -702,7 +740,9 @@ $result_elements{'top_chapter_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -715,7 +755,9 @@ $result_elements{'top_chapter_sections'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -730,8 +772,10 @@ $result_elements{'top_chapter_sections'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 1
+                    'number' => 1,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
@@ -746,8 +790,10 @@ $result_elements{'top_chapter_sections'} = [
                           'extra' => {
                             'spaces_before_argument' => ' '
                           },
-                          'level' => 1,
-                          'number' => 2
+                          'number' => 2,
+                          'structure' => {
+                            'level' => 1
+                          }
                         },
                         'unit_command' => {}
                       },
@@ -760,8 +806,10 @@ $result_elements{'top_chapter_sections'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 2,
-                                'number' => '1.1'
+                                'number' => '1.1',
+                                'structure' => {
+                                  'level' => 2
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -785,8 +833,10 @@ $result_elements{'top_chapter_sections'} = [
                                 'extra' => {
                                   'spaces_before_argument' => ' '
                                 },
-                                'level' => 1,
-                                'number' => 3
+                                'number' => 3,
+                                'structure' => {
+                                  'level' => 1
+                                }
                               },
                               'unit_command' => {}
                             },
@@ -799,8 +849,10 @@ $result_elements{'top_chapter_sections'} = [
                                       'extra' => {
                                         'spaces_before_argument' => ' '
                                       },
-                                      'level' => 3,
-                                      'number' => '2.1.2'
+                                      'number' => '2.1.2',
+                                      'structure' => {
+                                        'level' => 3
+                                      }
                                     },
                                     'unit_command' => {}
                                   },
@@ -813,8 +865,10 @@ $result_elements{'top_chapter_sections'} = [
                                             'extra' => {
                                               'spaces_before_argument' => ' '
                                             },
-                                            'level' => 3,
-                                            'number' => '2.1.1'
+                                            'number' => '2.1.1',
+                                            'structure' => {
+                                              'level' => 3
+                                            }
                                           },
                                           'unit_command' => {}
                                         },
@@ -827,8 +881,10 @@ $result_elements{'top_chapter_sections'} = [
                                                   'extra' => {
                                                     'spaces_before_argument' 
=> ' '
                                                   },
-                                                  'level' => 2,
-                                                  'number' => '2.1'
+                                                  'number' => '2.1',
+                                                  'structure' => {
+                                                    'level' => 2
+                                                  }
                                                 },
                                                 'unit_command' => {}
                                               },
diff --git a/tp/t/results/sectioning/top_no_argument_and_content.pl 
b/tp/t/results/sectioning/top_no_argument_and_content.pl
index acea8ac9a1..96dad8417a 100644
--- a/tp/t/results/sectioning/top_no_argument_and_content.pl
+++ b/tp/t/results/sectioning/top_no_argument_and_content.pl
@@ -45,13 +45,15 @@ $result_trees{'top_no_argument_and_content'} = {
         }
       ],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -74,15 +76,19 @@ A.
 ';
 
 $result_sectioning{'top_no_argument_and_content'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_no_argument_and_content'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_no_argument_and_content'};
 
diff --git a/tp/t/results/sectioning/top_no_argument_and_node.pl 
b/tp/t/results/sectioning/top_no_argument_and_node.pl
index 59c61d0de3..4fdc062645 100644
--- a/tp/t/results/sectioning/top_no_argument_and_node.pl
+++ b/tp/t/results/sectioning/top_no_argument_and_node.pl
@@ -68,13 +68,15 @@ $result_trees{'top_no_argument_and_node'} = {
       'cmdname' => 'top',
       'contents' => [],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -96,7 +98,6 @@ $result_texis{'top_no_argument_and_node'} = '@node start
 $result_texts{'top_no_argument_and_node'} = '';
 
 $result_sectioning{'top_no_argument_and_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -109,10 +110,15 @@ $result_sectioning{'top_no_argument_and_node'} = {
           }
         }
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_no_argument_and_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_no_argument_and_node'};
 
@@ -122,7 +128,9 @@ $result_nodes{'top_no_argument_and_node'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'start',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/top_no_argument_and_top_node.pl 
b/tp/t/results/sectioning/top_no_argument_and_top_node.pl
index 91744cad92..9d5ba165c2 100644
--- a/tp/t/results/sectioning/top_no_argument_and_top_node.pl
+++ b/tp/t/results/sectioning/top_no_argument_and_top_node.pl
@@ -68,13 +68,15 @@ $result_trees{'top_no_argument_and_top_node'} = {
       'cmdname' => 'top',
       'contents' => [],
       'extra' => {},
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -96,7 +98,6 @@ $result_texis{'top_no_argument_and_top_node'} = '@node Top
 $result_texts{'top_no_argument_and_top_node'} = '';
 
 $result_sectioning{'top_no_argument_and_top_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -109,10 +110,15 @@ $result_sectioning{'top_no_argument_and_top_node'} = {
           }
         }
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_no_argument_and_top_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_no_argument_and_top_node'};
 
@@ -122,7 +128,9 @@ $result_nodes{'top_no_argument_and_top_node'} = {
     'associated_section' => {
       'cmdname' => 'top',
       'extra' => {},
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/sectioning/top_node_part_top.pl 
b/tp/t/results/sectioning/top_node_part_top.pl
index 87fbd960c6..fce2afc24a 100644
--- a/tp/t/results/sectioning/top_node_part_top.pl
+++ b/tp/t/results/sectioning/top_node_part_top.pl
@@ -90,13 +90,15 @@ $result_trees{'top_node_part_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -121,13 +123,15 @@ $result_trees{'top_node_part_top'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -175,7 +179,6 @@ top
 ';
 
 $result_sectioning{'top_node_part_top'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'part',
@@ -193,17 +196,24 @@ $result_sectioning{'top_node_part_top'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 0,
           'section_prev' => {},
-          'section_up' => {}
+          'section_up' => {},
+          'structure' => {
+            'level' => 0
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {}
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_node_part_top'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'top_node_part_top'}{'section_childs'}[0];
 
$result_sectioning{'top_node_part_top'}{'section_childs'}[0]{'extra'}{'part_associated_section'}{'section_prev'}
 = $result_sectioning{'top_node_part_top'}{'section_childs'}[0];
@@ -222,11 +232,15 @@ $result_nodes{'top_node_part_top'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 0
+          'structure' => {
+            'level' => 0
+          }
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -284,11 +298,15 @@ $result_elements{'top_node_part_top'} = [
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 0
+            'structure' => {
+              'level' => 0
+            }
           },
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/top_node_up_url.pl 
b/tp/t/results/sectioning/top_node_up_url.pl
index b9e6ad6bd0..ec9d1cf996 100644
--- a/tp/t/results/sectioning/top_node_up_url.pl
+++ b/tp/t/results/sectioning/top_node_up_url.pl
@@ -199,13 +199,15 @@ $result_trees{'top_node_up_url'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -329,7 +331,6 @@ $result_texts{'top_node_up_url'} = 'internal top node up
 ';
 
 $result_sectioning{'top_node_up_url'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -343,10 +344,15 @@ $result_sectioning{'top_node_up_url'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'top_node_up_url'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'top_node_up_url'};
 
@@ -358,7 +364,9 @@ $result_nodes{'top_node_up_url'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -445,7 +453,9 @@ $result_elements{'top_node_up_url'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/top_part_chapter.pl 
b/tp/t/results/sectioning/top_part_chapter.pl
index cde358aaed..9f54ad786e 100644
--- a/tp/t/results/sectioning/top_part_chapter.pl
+++ b/tp/t/results/sectioning/top_part_chapter.pl
@@ -42,13 +42,15 @@ $result_trees{'top_part_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -89,13 +91,15 @@ $result_trees{'top_part_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 3,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -120,14 +124,16 @@ $result_trees{'top_part_chapter'} = [
           'associated_part' => {},
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -178,15 +184,16 @@ part
 ';
 
 $result_sectioning{'top_part_chapter'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'cmdname' => 'part',
@@ -197,22 +204,29 @@ $result_sectioning{'top_part_chapter'} = {
             'associated_part' => {},
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {}
       ],
       'section_prev' => {},
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 $result_sectioning{'top_part_chapter'}{'section_childs'}[0]{'section_up'} = 
$result_sectioning{'top_part_chapter'};
 
$result_sectioning{'top_part_chapter'}{'section_childs'}[1]{'extra'}{'part_associated_section'}{'extra'}{'associated_part'}
 = $result_sectioning{'top_part_chapter'}{'section_childs'}[1];
@@ -237,7 +251,9 @@ $result_elements{'top_part_chapter'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -253,12 +269,16 @@ $result_elements{'top_part_chapter'} = [
                   'extra' => {
                     'spaces_before_argument' => ' '
                   },
-                  'level' => 0
+                  'structure' => {
+                    'level' => 0
+                  }
                 },
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/top_without_node_nodes.pl 
b/tp/t/results/sectioning/top_without_node_nodes.pl
index 5c9755e06a..ac0a7475bf 100644
--- a/tp/t/results/sectioning/top_without_node_nodes.pl
+++ b/tp/t/results/sectioning/top_without_node_nodes.pl
@@ -53,13 +53,15 @@ $result_trees{'top_without_node_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       },
       {
         'args' => [
@@ -177,14 +179,16 @@ $result_trees{'top_without_node_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -246,14 +250,12 @@ Text of chapter
 ';
 
 $result_sectioning{'top_without_node_nodes'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -267,16 +269,24 @@ $result_sectioning{'top_without_node_nodes'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_without_node_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_without_node_nodes'}{'section_childs'}[0];
 
$result_sectioning{'top_without_node_nodes'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'top_without_node_nodes'}{'section_childs'}[0];
@@ -291,8 +301,10 @@ $result_nodes{'top_without_node_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'second',
     'spaces_before_argument' => ' '
@@ -337,8 +349,10 @@ $result_elements{'top_without_node_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/top_without_node_sections.pl 
b/tp/t/results/sectioning/top_without_node_sections.pl
index a975cc00b5..c0bf8e141e 100644
--- a/tp/t/results/sectioning/top_without_node_sections.pl
+++ b/tp/t/results/sectioning/top_without_node_sections.pl
@@ -53,13 +53,15 @@ $result_trees{'top_without_node_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -187,14 +189,16 @@ $result_trees{'top_without_node_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 5,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -261,14 +265,12 @@ Text of chapter
 ';
 
 $result_sectioning{'top_without_node_sections'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -282,16 +284,24 @@ $result_sectioning{'top_without_node_sections'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'top_without_node_sections'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'top_without_node_sections'}{'section_childs'}[0];
 
$result_sectioning{'top_without_node_sections'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'top_without_node_sections'}{'section_childs'}[0];
@@ -306,8 +316,10 @@ $result_nodes{'top_without_node_sections'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'number' => 1
+      'number' => 1,
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'second',
     'spaces_before_argument' => ' '
@@ -345,7 +357,9 @@ $result_elements{'top_without_node_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -365,8 +379,10 @@ $result_elements{'top_without_node_sections'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/two_nodes_at_the_end.pl 
b/tp/t/results/sectioning/two_nodes_at_the_end.pl
index f0a32ef2a4..1e3db2672c 100644
--- a/tp/t/results/sectioning/two_nodes_at_the_end.pl
+++ b/tp/t/results/sectioning/two_nodes_at_the_end.pl
@@ -313,13 +313,15 @@ $result_trees{'two_nodes_at_the_end'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -457,14 +459,16 @@ $result_trees{'two_nodes_at_the_end'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       },
       {
         'args' => [
@@ -708,7 +712,6 @@ in node after chapter 1
 ';
 
 $result_sectioning{'two_nodes_at_the_end'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -722,7 +725,6 @@ $result_sectioning{'two_nodes_at_the_end'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -736,16 +738,24 @@ $result_sectioning{'two_nodes_at_the_end'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'two_nodes_at_the_end'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'two_nodes_at_the_end'}{'section_childs'}[0];
 
$result_sectioning{'two_nodes_at_the_end'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'two_nodes_at_the_end'}{'section_childs'}[0];
@@ -760,7 +770,9 @@ $result_nodes{'two_nodes_at_the_end'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -773,8 +785,10 @@ $result_nodes{'two_nodes_at_the_end'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-1',
       'spaces_before_argument' => ' '
@@ -929,7 +943,9 @@ $result_elements{'two_nodes_at_the_end'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -943,8 +959,10 @@ $result_elements{'two_nodes_at_the_end'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/two_nodes_between_chapters.pl 
b/tp/t/results/sectioning/two_nodes_between_chapters.pl
index 244eec2605..8b797859ab 100644
--- a/tp/t/results/sectioning/two_nodes_between_chapters.pl
+++ b/tp/t/results/sectioning/two_nodes_between_chapters.pl
@@ -313,13 +313,15 @@ $result_trees{'two_nodes_between_chapters'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 0
+        }
       }
     ],
     'extra' => {
@@ -457,14 +459,16 @@ $result_trees{'two_nodes_between_chapters'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 11,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       },
       {
         'args' => [
@@ -590,14 +594,16 @@ $result_trees{'two_nodes_between_chapters'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 16,
           'macro' => ''
         },
         'number' => 2,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -738,7 +744,6 @@ $result_texts{'two_nodes_between_chapters'} = 'top
 ';
 
 $result_sectioning{'two_nodes_between_chapters'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -752,7 +757,6 @@ $result_sectioning{'two_nodes_between_chapters'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -766,9 +770,11 @@ $result_sectioning{'two_nodes_between_chapters'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -784,17 +790,25 @@ $result_sectioning{'two_nodes_between_chapters'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'two_nodes_between_chapters'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'two_nodes_between_chapters'}{'section_childs'}[0];
 
$result_sectioning{'two_nodes_between_chapters'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'two_nodes_between_chapters'}{'section_childs'}[0];
@@ -813,7 +827,9 @@ $result_nodes{'two_nodes_between_chapters'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -826,8 +842,10 @@ $result_nodes{'two_nodes_between_chapters'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter-1',
       'spaces_before_argument' => ' '
@@ -847,8 +865,10 @@ $result_nodes{'two_nodes_between_chapters'} = {
             'extra' => {
               'spaces_before_argument' => ' '
             },
-            'level' => 1,
-            'number' => 2
+            'number' => 2,
+            'structure' => {
+              'level' => 1
+            }
           },
           'normalized' => 'chapter-2',
           'spaces_before_argument' => ' '
@@ -1009,7 +1029,9 @@ $result_elements{'two_nodes_between_chapters'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 0
+        'structure' => {
+          'level' => 0
+        }
       },
       'unit_command' => {}
     },
@@ -1023,8 +1045,10 @@ $result_elements{'two_nodes_between_chapters'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -1040,8 +1064,10 @@ $result_elements{'two_nodes_between_chapters'} = [
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 2
+                    'number' => 2,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/sectioning/two_unnumbered_no_argument.pl 
b/tp/t/results/sectioning/two_unnumbered_no_argument.pl
index cd505a5b3a..530ebaed88 100644
--- a/tp/t/results/sectioning/two_unnumbered_no_argument.pl
+++ b/tp/t/results/sectioning/two_unnumbered_no_argument.pl
@@ -29,13 +29,15 @@ $result_trees{'two_unnumbered_no_argument'} = {
       'extra' => {
         'missing_argument' => 1
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -54,13 +56,15 @@ $result_trees{'two_unnumbered_no_argument'} = {
       'extra' => {
         'missing_argument' => 1
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -79,27 +83,33 @@ $result_texis{'two_unnumbered_no_argument'} = '@unnumbered
 $result_texts{'two_unnumbered_no_argument'} = '';
 
 $result_sectioning{'two_unnumbered_no_argument'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'missing_argument' => 1
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'missing_argument' => 1
       },
-      'level' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'two_unnumbered_no_argument'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'two_unnumbered_no_argument'};
 
$result_sectioning{'two_unnumbered_no_argument'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'two_unnumbered_no_argument'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/unnumbered_before_node_top_top.pl 
b/tp/t/results/sectioning/unnumbered_before_node_top_top.pl
index 2941ff5363..50288d582b 100644
--- a/tp/t/results/sectioning/unnumbered_before_node_top_top.pl
+++ b/tp/t/results/sectioning/unnumbered_before_node_top_top.pl
@@ -59,13 +59,15 @@ $result_trees{'unnumbered_before_node_top_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -152,13 +154,15 @@ $result_trees{'unnumbered_before_node_top_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 6,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -218,15 +222,16 @@ Top node
 ';
 
 $result_sectioning{'unnumbered_before_node_top_top'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'top',
@@ -240,12 +245,17 @@ $result_sectioning{'unnumbered_before_node_top_top'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'unnumbered_before_node_top_top'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'unnumbered_before_node_top_top'};
 
$result_sectioning{'unnumbered_before_node_top_top'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'unnumbered_before_node_top_top'}{'section_childs'}[0];
@@ -260,7 +270,9 @@ $result_nodes{'unnumbered_before_node_top_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -299,7 +311,9 @@ $result_elements{'unnumbered_before_node_top_top'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
@@ -319,7 +333,9 @@ $result_elements{'unnumbered_before_node_top_top'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/unnumbered_before_top.pl 
b/tp/t/results/sectioning/unnumbered_before_top.pl
index 3ec7b09342..284c76cd0f 100644
--- a/tp/t/results/sectioning/unnumbered_before_top.pl
+++ b/tp/t/results/sectioning/unnumbered_before_top.pl
@@ -41,13 +41,15 @@ $result_trees{'unnumbered_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -71,13 +73,15 @@ $result_trees{'unnumbered_before_top'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 3,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -105,27 +109,33 @@ top
 ';
 
 $result_sectioning{'unnumbered_before_top'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 $result_sectioning{'unnumbered_before_top'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'unnumbered_before_top'};
 
$result_sectioning{'unnumbered_before_top'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'unnumbered_before_top'}{'section_childs'}[0];
diff --git a/tp/t/results/sectioning/unnumbered_before_top_node.pl 
b/tp/t/results/sectioning/unnumbered_before_top_node.pl
index 8c5ec7a7a0..3247d2f7c7 100644
--- a/tp/t/results/sectioning/unnumbered_before_top_node.pl
+++ b/tp/t/results/sectioning/unnumbered_before_top_node.pl
@@ -42,13 +42,15 @@ $result_trees{'unnumbered_before_top_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 1,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       },
       {
         'args' => [
@@ -183,17 +185,21 @@ Title titlefont
 ';
 
 $result_sectioning{'unnumbered_before_top_node'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'unnumbered_before_top_node'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'unnumbered_before_top_node'};
 
@@ -227,7 +233,9 @@ $result_elements{'unnumbered_before_top_node'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
diff --git a/tp/t/results/sectioning/unnumbered_no_argument.pl 
b/tp/t/results/sectioning/unnumbered_no_argument.pl
index 047876a3cc..9aae411718 100644
--- a/tp/t/results/sectioning/unnumbered_no_argument.pl
+++ b/tp/t/results/sectioning/unnumbered_no_argument.pl
@@ -29,13 +29,15 @@ $result_trees{'unnumbered_no_argument'} = {
       'extra' => {
         'missing_argument' => 1
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 1,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -51,17 +53,21 @@ $result_texis{'unnumbered_no_argument'} = '@unnumbered
 $result_texts{'unnumbered_no_argument'} = '';
 
 $result_sectioning{'unnumbered_no_argument'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
       'extra' => {
         'missing_argument' => 1
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'unnumbered_no_argument'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'unnumbered_no_argument'};
 
diff --git a/tp/t/results/sectioning/unnumbered_top_without_node_nodes.pl 
b/tp/t/results/sectioning/unnumbered_top_without_node_nodes.pl
index 6873f5e482..e6dbef93ad 100644
--- a/tp/t/results/sectioning/unnumbered_top_without_node_nodes.pl
+++ b/tp/t/results/sectioning/unnumbered_top_without_node_nodes.pl
@@ -135,13 +135,15 @@ $result_trees{'unnumbered_top_without_node_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       },
       {
         'args' => [
@@ -183,13 +185,15 @@ $result_trees{'unnumbered_top_without_node_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 6,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -318,14 +322,16 @@ $result_trees{'unnumbered_top_without_node_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 10,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -422,7 +428,6 @@ Text of chapter
 ';
 
 $result_sectioning{'unnumbered_top_without_node_nodes'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
@@ -436,17 +441,21 @@ $result_sectioning{'unnumbered_top_without_node_nodes'} = 
{
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     },
     {
@@ -461,14 +470,19 @@ $result_sectioning{'unnumbered_top_without_node_nodes'} = 
{
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'unnumbered_top_without_node_nodes'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'unnumbered_top_without_node_nodes'};
 
$result_sectioning{'unnumbered_top_without_node_nodes'}{'section_childs'}[1]{'section_prev'}
 = $result_sectioning{'unnumbered_top_without_node_nodes'}{'section_childs'}[0];
@@ -487,7 +501,9 @@ $result_nodes{'unnumbered_top_without_node_nodes'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'a-node',
     'spaces_before_argument' => ' '
@@ -551,7 +567,9 @@ $result_elements{'unnumbered_top_without_node_nodes'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
@@ -573,8 +591,10 @@ $result_elements{'unnumbered_top_without_node_nodes'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1,
-              'number' => 1
+              'number' => 1,
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
diff --git a/tp/t/results/sectioning/unnumbered_top_without_node_sections.pl 
b/tp/t/results/sectioning/unnumbered_top_without_node_sections.pl
index def9e34209..bb913f3662 100644
--- a/tp/t/results/sectioning/unnumbered_top_without_node_sections.pl
+++ b/tp/t/results/sectioning/unnumbered_top_without_node_sections.pl
@@ -135,13 +135,15 @@ $result_trees{'unnumbered_top_without_node_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 2,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -194,13 +196,15 @@ $result_trees{'unnumbered_top_without_node_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 6,
           'macro' => ''
         },
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -330,14 +334,16 @@ $result_trees{'unnumbered_top_without_node_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
         'line_nr' => {
           'file_name' => '',
           'line_nr' => 10,
           'macro' => ''
         },
         'number' => 1,
-        'parent' => {}
+        'parent' => {},
+        'structure' => {
+          'level' => 1
+        }
       }
     ],
     'extra' => {
@@ -437,7 +443,6 @@ Text of chapter
 ';
 
 $result_sectioning{'unnumbered_top_without_node_sections'} = {
-  'level' => 0,
   'section_childs' => [
     {
       'cmdname' => 'unnumbered',
@@ -451,17 +456,21 @@ 
$result_sectioning{'unnumbered_top_without_node_sections'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'cmdname' => 'top',
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {}
     },
     {
@@ -476,14 +485,19 @@ 
$result_sectioning{'unnumbered_top_without_node_sections'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'number' => 1,
       'section_prev' => {},
       'section_up' => {},
+      'structure' => {
+        'level' => 1
+      },
       'toplevel_prev' => {},
       'toplevel_up' => {}
     }
-  ]
+  ],
+  'structure' => {
+    'level' => 0
+  }
 };
 
$result_sectioning{'unnumbered_top_without_node_sections'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'unnumbered_top_without_node_sections'};
 
$result_sectioning{'unnumbered_top_without_node_sections'}{'section_childs'}[1]{'section_prev'}
 = 
$result_sectioning{'unnumbered_top_without_node_sections'}{'section_childs'}[0];
@@ -502,7 +516,9 @@ $result_nodes{'unnumbered_top_without_node_sections'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1
+      'structure' => {
+        'level' => 1
+      }
     },
     'normalized' => 'a-node',
     'spaces_before_argument' => ' '
@@ -566,7 +582,9 @@ $result_elements{'unnumbered_top_without_node_sections'} = [
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1
+        'structure' => {
+          'level' => 1
+        }
       },
       'unit_command' => {}
     },
@@ -579,7 +597,9 @@ $result_elements{'unnumbered_top_without_node_sections'} = [
               'extra' => {
                 'spaces_before_argument' => ' '
               },
-              'level' => 1
+              'structure' => {
+                'level' => 1
+              }
             },
             'unit_command' => {}
           },
@@ -601,8 +621,10 @@ $result_elements{'unnumbered_top_without_node_sections'} = 
[
                     'extra' => {
                       'spaces_before_argument' => ' '
                     },
-                    'level' => 1,
-                    'number' => 1
+                    'number' => 1,
+                    'structure' => {
+                      'level' => 1
+                    }
                   },
                   'unit_command' => {}
                 },
diff --git a/tp/t/results/value/value_in_misc_commands.pl 
b/tp/t/results/value/value_in_misc_commands.pl
index 80b3b3c871..46747ab00c 100644
--- a/tp/t/results/value/value_in_misc_commands.pl
+++ b/tp/t/results/value/value_in_misc_commands.pl
@@ -124,13 +124,13 @@ $result_trees{'value_in_misc_commands'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 3,
           'line_nr' => {
             'file_name' => '',
             'line_nr' => 5,
             'macro' => ''
           },
-          'parent' => {}
+          'parent' => {},
+          'structure' => {}
         },
         {
           'parent' => {},
@@ -2753,13 +2753,15 @@ $result_trees{'value_in_misc_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -3339,7 +3341,6 @@ line after exdent
 ';
 
 $result_sectioning{'value_in_misc_commands'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3353,10 +3354,15 @@ $result_sectioning{'value_in_misc_commands'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'value_in_misc_commands'}{'section_childs'}[0]{'section_up'} 
= $result_sectioning{'value_in_misc_commands'};
 
@@ -3368,7 +3374,9 @@ $result_nodes{'value_in_misc_commands'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/value/value_in_node.pl 
b/tp/t/results/value/value_in_node.pl
index c1b713a3db..498a4e1c84 100644
--- a/tp/t/results/value/value_in_node.pl
+++ b/tp/t/results/value/value_in_node.pl
@@ -311,13 +311,15 @@ $result_trees{'value_in_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -577,14 +579,16 @@ $result_trees{'value_in_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -873,7 +877,6 @@ Node 1.
 ';
 
 $result_sectioning{'value_in_node'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -887,7 +890,6 @@ $result_sectioning{'value_in_node'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -901,16 +903,24 @@ $result_sectioning{'value_in_node'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'value_in_node'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'value_in_node'}{'section_childs'}[0];
 
$result_sectioning{'value_in_node'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'value_in_node'}{'section_childs'}[0];
@@ -925,7 +935,9 @@ $result_nodes{'value_in_node'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -938,8 +950,10 @@ $result_nodes{'value_in_node'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'Node-1',
       'spaces_before_argument' => ' '
diff --git a/tp/t/results/value/value_node_directions.pl 
b/tp/t/results/value/value_node_directions.pl
index 2aa8035c92..e0061ca11f 100644
--- a/tp/t/results/value/value_node_directions.pl
+++ b/tp/t/results/value/value_node_directions.pl
@@ -193,13 +193,15 @@ $result_trees{'value_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -333,14 +335,16 @@ $result_trees{'value_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 8,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     },
     {
       'args' => [
@@ -457,14 +461,16 @@ $result_trees{'value_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 11,
         'macro' => ''
       },
       'number' => 2,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -563,7 +569,6 @@ bar
 ';
 
 $result_sectioning{'value_node_directions'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -577,7 +582,6 @@ $result_sectioning{'value_node_directions'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -591,9 +595,11 @@ $result_sectioning{'value_node_directions'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         },
@@ -609,17 +615,25 @@ $result_sectioning{'value_node_directions'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 2,
           'section_prev' => {},
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'value_node_directions'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'value_node_directions'}{'section_childs'}[0];
 
$result_sectioning{'value_node_directions'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'value_node_directions'}{'section_childs'}[0];
@@ -638,7 +652,9 @@ $result_nodes{'value_node_directions'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -651,8 +667,10 @@ $result_nodes{'value_node_directions'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'bar',
       'spaces_before_argument' => ' '
@@ -665,8 +683,10 @@ $result_nodes{'value_node_directions'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 2
+          'number' => 2,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'BarFoo',
         'spaces_before_argument' => ' '
diff --git a/tp/t/results/xml_tests/image_inline_or_not.pl 
b/tp/t/results/xml_tests/image_inline_or_not.pl
index eb88185d1b..d037a2cba5 100644
--- a/tp/t/results/xml_tests/image_inline_or_not.pl
+++ b/tp/t/results/xml_tests/image_inline_or_not.pl
@@ -1107,13 +1107,15 @@ $result_trees{'image_inline_or_not'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 6,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -1608,14 +1610,16 @@ $result_trees{'image_inline_or_not'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 42,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -1955,7 +1959,6 @@ in_float
 ';
 
 $result_sectioning{'image_inline_or_not'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1969,7 +1972,6 @@ $result_sectioning{'image_inline_or_not'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -1983,16 +1985,24 @@ $result_sectioning{'image_inline_or_not'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'image_inline_or_not'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'image_inline_or_not'}{'section_childs'}[0];
 
$result_sectioning{'image_inline_or_not'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'image_inline_or_not'}{'section_childs'}[0];
@@ -2007,7 +2017,9 @@ $result_nodes{'image_inline_or_not'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -2020,8 +2032,10 @@ $result_nodes{'image_inline_or_not'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'node_005fimage',
       'spaces_before_argument' => ' '
@@ -2107,8 +2121,10 @@ $result_floats{'image_inline_or_not'} = {
           'extra' => {
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
-          'number' => 1
+          'number' => 1,
+          'structure' => {
+            'level' => 1
+          }
         },
         'normalized' => 'g',
         'spaces_before_argument' => ' ',
diff --git a/tp/t/results/xtable/block_commands_in_table.pl 
b/tp/t/results/xtable/block_commands_in_table.pl
index b8a9b82b47..126d9bb7a5 100644
--- a/tp/t/results/xtable/block_commands_in_table.pl
+++ b/tp/t/results/xtable/block_commands_in_table.pl
@@ -1332,13 +1332,15 @@ $result_trees{'block_commands_in_table'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 2,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
   ],
   'type' => 'document_root'
@@ -1632,7 +1634,6 @@ After table.
 ';
 
 $result_sectioning{'block_commands_in_table'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -1646,10 +1647,15 @@ $result_sectioning{'block_commands_in_table'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'block_commands_in_table'}{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'block_commands_in_table'};
 
@@ -1661,7 +1667,9 @@ $result_nodes{'block_commands_in_table'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
diff --git a/tp/t/results/xtable/inter_item_commands_in_table.pl 
b/tp/t/results/xtable/inter_item_commands_in_table.pl
index 63f92ee0a7..532b8a6c9d 100644
--- a/tp/t/results/xtable/inter_item_commands_in_table.pl
+++ b/tp/t/results/xtable/inter_item_commands_in_table.pl
@@ -118,13 +118,15 @@ $result_trees{'inter_item_commands_in_table'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 4,
         'macro' => ''
       },
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 0
+      }
     },
     {
       'args' => [
@@ -2515,14 +2517,16 @@ $result_trees{'inter_item_commands_in_table'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 1,
       'line_nr' => {
         'file_name' => '',
         'line_nr' => 7,
         'macro' => ''
       },
       'number' => 1,
-      'parent' => {}
+      'parent' => {},
+      'structure' => {
+        'level' => 1
+      }
     }
   ],
   'type' => 'document_root'
@@ -3027,7 +3031,6 @@ asamp-bb2
 ';
 
 $result_sectioning{'inter_item_commands_in_table'} = {
-  'level' => -1,
   'section_childs' => [
     {
       'cmdname' => 'top',
@@ -3041,7 +3044,6 @@ $result_sectioning{'inter_item_commands_in_table'} = {
         },
         'spaces_before_argument' => ' '
       },
-      'level' => 0,
       'section_childs' => [
         {
           'cmdname' => 'chapter',
@@ -3055,16 +3057,24 @@ $result_sectioning{'inter_item_commands_in_table'} = {
             },
             'spaces_before_argument' => ' '
           },
-          'level' => 1,
           'number' => 1,
           'section_up' => {},
+          'structure' => {
+            'level' => 1
+          },
           'toplevel_prev' => {},
           'toplevel_up' => {}
         }
       ],
-      'section_up' => {}
+      'section_up' => {},
+      'structure' => {
+        'level' => 0
+      }
     }
-  ]
+  ],
+  'structure' => {
+    'level' => -1
+  }
 };
 
$result_sectioning{'inter_item_commands_in_table'}{'section_childs'}[0]{'section_childs'}[0]{'section_up'}
 = $result_sectioning{'inter_item_commands_in_table'}{'section_childs'}[0];
 
$result_sectioning{'inter_item_commands_in_table'}{'section_childs'}[0]{'section_childs'}[0]{'toplevel_prev'}
 = $result_sectioning{'inter_item_commands_in_table'}{'section_childs'}[0];
@@ -3079,7 +3089,9 @@ $result_nodes{'inter_item_commands_in_table'} = {
       'extra' => {
         'spaces_before_argument' => ' '
       },
-      'level' => 0
+      'structure' => {
+        'level' => 0
+      }
     },
     'normalized' => 'Top',
     'spaces_before_argument' => ' '
@@ -3092,8 +3104,10 @@ $result_nodes{'inter_item_commands_in_table'} = {
         'extra' => {
           'spaces_before_argument' => ' '
         },
-        'level' => 1,
-        'number' => 1
+        'number' => 1,
+        'structure' => {
+          'level' => 1
+        }
       },
       'normalized' => 'chapter',
       'spaces_before_argument' => ' '



reply via email to

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