2009-10-27 116 views
5

我试图找到一个很好的识字编程工具。我们只是说这不是一个容易的决定。 (通用的过于笼统,具体的过于具体))最小noweb示例与交叉引用

其中,我得到noweb已启用并运行,但我无法获得像我期望的输出。该nowebwikipedia page具有与

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

正确地建立了一个小例子,但也有在每个组块的末尾没有交叉引用。例如,CWEB有指针,如“此代码在第12节中使用”。和“另见第5节和第7节。” noweb这个功能简单地丢失了,还是我错过了编译中的一个步骤?

回答

4

此功能从noweb简单缺失还是缺少编译步骤?

既不:noweb使用比您从CWEB中看到的更细微的标记。在维基百科例子的情况下,第三块(1c)出现在块1a和1b中。这些信息被压缩成一个单一的'1',它出现在定义右边的括号内。

要获得长期交叉引用在CWEB风格使用

\noweboptions{longxref} 
+0

感谢您的帮助,诺曼。我认为从这里开始的工作流程是在源代码上运行'noweave -x -n -latex hello.nw> hello.tex',然后''输入'生成的文件到包含相关'\ noweboptions的驱动程序文档中'和调用? – 2010-04-29 08:30:40

+0

啊哈,或者使用'-delay'选项。好吧,现在这样做确实很好。感谢伟大的工具! – 2010-04-29 08:51:30

+0

@威尔:你有想法。您的工作流程取决于您是要“一个文档是一个源文件”还是“一个文档是由多个源文件组成”。 – 2010-04-29 23:44:26

1

应该对于该WP示例,从Hello World部分的两个块中的每个块获得对许可证部分的引用。除非你告诉乳胶有关它们,否则你不会在最后得到任何大块或标识符的列表。

要获取网页块的列表,请尝试在文档结尾附近(即在出现最后一个块之后)放置\nowebchunks,并将-x切换添加到noweb调用中。

要获取标识符列表,请尝试将\nowebindex放在类似的位置。