Exemplo mínimo de Noweb com referência cruzada
-
06-07-2019 - |
Pergunta
Estou tentando encontrar uma boa ferramenta de programação alfabetizada. Digamos que não é uma decisão fácil. (Os genéricos são muito genéricos e os específicos são muito específicos :)
)
Entre outros, eu tenho noweb
Em funcionamento, mas estou tendo problemas para obter a produção como eu esperaria. o noweb
Página da Wikipedia tem um exemplo mínimo que se constrói corretamente com
noweave -index -latex hello.noweb > hello.tex && pdflatex hello && pdflatex hello
Mas não há referências cruzadas no final de cada pedaço. Por exemplo, CWEB
tem ponteiros como "Este código é usado na seção 12". e "Veja também as seções 5 e 7." Esse recurso está simplesmente ausente de noweb
Ou estou perdendo um passo na compilação?
Solução
Esse recurso está simplesmente faltando no Noweb ou estou perdendo uma etapa na compilação?
Nenhum: noweb
usa marcadores muito mais sutis do que você está acostumado a ver na CWeb. No caso do exemplo da Wikipedia, o terceiro pedaço (1C) aparece nos pedaços 1a e 1b. Esta informação é condensada em um único '1', que aparece entre parênteses no lado direito da definição.
Para obter longas referências cruzadas no uso do estilo CWEB
\noweboptions{longxref}
Outras dicas
Você deve Obtenha, para esse exemplo do WP, uma referência à seção de licença de cada um dos dois pedaços na seção Hello World. Você não receberá listas de pedaços ou identificadores no final, a menos que conte o Latex sobre eles.
Para obter uma lista de pedaços da web, tente colocar \nowebchunks
perto do final do documento (ou seja, após o último pedaço aparecer) e adicionando um -x
Mude para a invocação do Noweb.
Para obter uma lista de identificadores, tente colocar \nowebindex
em um lugar semelhante.