2009-10-27 13 views
5

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 :))Ejemplo de noweb mínimo con referencias cruzadas

Entre otros, tengo noweb funcionando pero tengo problemas para obtener resultados como esperaba. El nowebwikipedia page tiene un ejemplo mínimo que construye correctamente con

noweave -index -latex hello.noweb > hello.tex && pdflatex hello && pdflatex hello 

pero no hay referencias cruzadas en el extremo de cada trozo. 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?

Respuesta

4

¿Esta característica simplemente falta en noweb o me falta un paso en la compilación?

Ni: noweb utiliza mucho más sutiles marcadores de lo que estamos acostumbrados a ver en CWEB. En el caso del ejemplo de Wikipedia, el 3er trozo (1c) aparece en los trozos 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 hacer larga referencias cruzadas en el uso de estilo CWEB

\noweboptions{longxref} 
+0

Gracias por la ayuda, de Norman. Estoy en lo cierto al pensar que el flujo de trabajo desde aquí es ejecutar 'noweave -x -n -latex hello.nw> hello.tex' en la fuente y luego' \ input' el archivo resultante en un documento de controlador que contenga las '\ noweboptions 'relevantes 'e invocaciones? –

+0

Aha, o usa la opción '-delay'. De acuerdo, ahora esto está yendo muy bien. Gracias por la gran herramienta! –

+0

@Will: tienes la idea. Su flujo de trabajo depende de si va "un documento es un archivo fuente" o "un documento está compuesto de muchos archivos fuente". –

1

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 cuente al látex sobre ellos.

Para obtener una lista de trozos de web, intente poner \nowebchunks cerca del final del documento (es decir, después de que aparezca el último trozo) y agregue un -x cambie a la invocación noweb.

Para obtener una lista de identificadores, intente poner \nowebindex en un lugar similar.

Cuestiones relacionadas