Ejemplo mínimo de noweb con referencias cruzadas
-
06-07-2019 - |
Pregunta
Estoy tratando de encontrar una buena herramienta de programación alfabetizada. Digamos que no es una decisión fácil. (Los genéricos son demasiado genéricos y los específicos son demasiado específicos :)
)
Entre otros, tengo noweb
en funcionamiento pero tengo problemas para obtener resultados como esperaba. La noweb
página de wikipedia tiene un ejemplo mínimo que se construye correctamente con
noweave -index -latex hello.noweb > hello.tex && pdflatex hello && pdflatex hello
pero no hay referencias cruzadas al final de cada fragmento. Por ejemplo, CWEB
tiene punteros como "Este código se usa en la sección 12." y "Ver también las secciones 5 y 7." ¿Esta característica simplemente falta en noweb
o me falta un paso en la compilación?
Solución
¿Esta característica simplemente falta en noweb o me falta un paso en la compilación?
Ninguno de los dos: noweb
usa marcadores mucho más sutiles de los que estás acostumbrado a ver desde CWEB. En el caso del ejemplo de Wikipedia, el tercer fragmento (1c) aparece en los fragmentos 1a y 1b. Esta información se condensa en un solo '1', que aparece entre paréntesis en el lado derecho de la definición.
Para obtener referencias cruzadas largas en el estilo CWEB, use
\noweboptions{longxref}
Otros consejos
Usted debería obtener, para ese ejemplo de WP, una referencia a la sección de licencia de cada uno de los dos fragmentos en la sección Hello World. No obtendrá ninguna lista de fragmentos o identificadores al final a menos que le informe sobre el látex.
Para obtener una lista de fragmentos web, intente colocar \ nowebchunks
cerca del final del documento (es decir, después de que aparezca el último fragmento) y agregue un -x
cambiar a la invocación de noweb.
Para obtener una lista de identificadores, intente colocar \ nowebindex
en un lugar similar.