Texinfo, как бороться с невозможным следующим / предыдущим?

Я пытаюсь написать документацию в формате Texinfo (я думаю, она должна быть традиционной для Emacs). И это кошмар... Во всяком случае, я мог бы добраться до точки, где источник дает мне меньше ошибок, чем когда я начинал, но ошибки невозможно понять и, следовательно, исправить.

Все ошибки сводятся к "плохим" следующим / предыдущим / верхним узлам. И все они происходят в местах, где не может быть ни "следующего", ни "предыдущего", ни "восходящего" узла. Т.е. последний узел в списке не имеет следующего узла, аналогично, у первого не может быть предыдущего, а у верхнего уровня не может быть "вверх". Узел. Вот точные сообщения, которые я получаю:

./i-iterate/info/i-iterate.texi:385: Следующее поле узла `точка-продукт | соединение | отличное 'не указано (возможно, неправильное разбиение?).

./i-iterate/info/i-iterate.texi:392: этот узел (возврат) имеет плохой пред.

./i-iterate/info/i-iterate.texi:199: Следующее поле узла "изначально" не указано (возможно, неправильное разбиение?).

./i-iterate/info/i-iterate.texi:120: этот узел (для) имеет плохой пред.

./i-iterate/info/i-iterate.texi:29: Следующее поле узла `Top'не указано (возможно, неправильное разбиение?).

./i-iterate/info/i-iterate.texi:120: этот узел (для) имеет плохой пред.

Моя структура текстовых файлов выглядит следующим образом:

- Top
|- menu-0
|  |- menu-2
|- menu-1
<list of nodes>

Т.е. узлы упоминаются в menu-2 должен иметь свой верхний узел в menu-0, а также Top является верхним узлом для узлов в menu-0 а также menu-1,

for узел является первым узлом в menu-0, return узел является первым узлом в menu-1, dot-product|join|distinct последний узел в menu-2, initially последний узел menu-0,

Верхний узел не может иметь предыдущих / следующих / верхних узлов... по понятным причинам.

По запросу нарушающие узлы:

@node for, with, , Top
@node return, collect, , Top
@node dot-product|join|distinct, , permutations, for
@node initially, , finally, Top

Еще немного информации. Я мог бы на самом деле "исправить", указав return узел в качестве следующего узла initially а также initially как предыдущий узел return, Но это нежелательный эффект, поскольку они принадлежат разным наборам узлов.

Кроме того, вот так выглядит все меню:

@menu 
* for::       A multi-purpose driver for doing variety of things.
* with::      A driver for variable declaration.
* generate::  A general purpose generator driver.
* repeat::    A simple driver for performing iteration N number of itmes.
* finally::   A driver that runs when the iteration finishes normally.
* initially:: A driver that runs before any code in the iteration.
@end menu

@strong{Keywords}

@menu
* return::   Returns the control flow to the form outside the loop.
* collect::  Generates a list with the cells being the experssion given.
* hash::     Generates a hash-table with the provided keys and values.
* skip::     Skips the execution of the rest of the loop body.
* previous:: Gives the value of the variable from the previous iteration.
* next::     Gives the value of the variable from the next iteration.
* output::   Prints the variable to the dedicated stream.
* insert::   Generates a vector and inserts elements into it.
* minimize:: Finds the minimum value of the variable.
* maximize:: Finds the maximum value of the variable.
* count::    Counts the number ot times this expression was executed.
* sum::      Sums the values of this variable.
* multiply:: Multiplies the values of this variable.
* reduce::   General purpose accumulation handler.
@end menu

@node for, with, , Top
@chapter Multi-purpose driver

... description of what for node is ...

@strong{For continuations}

@menu
* in|on::                     Iterates over lists.
* upfrom|from|downfrom::      Iterates numberically.
* across|reverse|binary::     Iterates over arrays.
* depth-first|breadth-first:: Iterates over trees.
* keys|values|pairs::         Iterates over hash-tables.
* random::                    Produces unique random each iteration.
* chars|words|lines::         Iterates over entities in buffer.
* permutations::              Generates permutation of an array.
* dot-product|join|distinct:: Iterates over sets.
@end menu

1 ответ

Решение

Просто используйте @node for а также @node return без лишних аргументов. Затем Texinfo автоматически определит ссылки назад / вперед / вверх на основе @chapter и другие команды секционирования.

Другие вопросы по тегам