Минимальный пример 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 в аналогичном месте.

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