Минимальный пример noweb с перекрестными ссылками
Я пытаюсь найти хороший инструмент для грамотного программирования. Скажем так, это нелегкое решение. (Общие являются слишком общими, а конкретные являются слишком конкретными :)
)
Среди прочего, у меня есть noweb
и работает, но у меня проблемы с получением результата, как я ожидал. noweb
На странице Википедии есть минимальный пример, который правильно строится с
noweave -index -latex hello.noweb > hello.tex && pdflatex hello && pdflatex hello
но в конце каждого куска нет перекрестных ссылок. Например, CWEB
имеет указатели, такие как "Этот код используется в разделе 12". и "Смотрите также разделы 5 и 7". Эта функция просто отсутствует в noweb
или я пропускаю шаг в компиляции?
2 ответа
Эта функция просто отсутствует в noweb или я пропустил шаг в компиляции?
Ни: noweb
использует гораздо более тонкие маркеры, чем вы привыкли видеть из CWEB. В случае примера из Википедии 3-й фрагмент (1c) появляется в фрагментах 1a и 1b. Эта информация сгущается в один "1", который появляется в скобках в правой части определения.
Чтобы получить длинные перекрестные ссылки в стиле CWEB, используйте
\noweboptions{longxref}
Для этого примера WP вы должны получить ссылку на лицензионный раздел от каждого из двух блоков в разделе Hello World. Вы не получите никаких списков фрагментов или идентификаторов в конце, если не расскажете о них латексу.
Чтобы получить список чанков, попробуйте \nowebchunks
в конце документа (т. е. после появления последнего фрагмента) и добавления -x
переключиться на вызов noweb.
Чтобы получить список идентификаторов, попробуйте положить \nowebindex
в аналогичном месте.