【问题标题】:Minimal noweb example with cross referencing具有交叉引用的最小 noweb 示例
【发布时间】:2009-10-27 02:23:22
【问题描述】:

我正在努力寻找一个好的识字编程工具。让我们说这不是一个容易的决定。 (通用的太通用了,具体的太具体了:)

除其他外,我已经启动并运行了 noweb,但我无法获得预期的输出。 noweb wikipedia page 有一个可以正确构建的最小示例

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

但在每个块的末尾没有交叉引用。例如,CWEB 具有诸如“此代码用于第 12 节”之类的指针。和“另见第 5 节和第 7 节。” noweb 中只是缺少此功能还是我在编译中缺少了一个步骤?

【问题讨论】:

    标签: literate-programming noweb


    【解决方案1】:

    noweb 只是缺少此功能还是我在编译中缺少了一个步骤?

    两者都不是:noweb 使用的标记比您在 CWEB 上看到的要微妙得多。在 Wikipedia 示例中,第 3 个块 (1c) 出现在块 1a 和 1b 中。该信息被压缩成一个“1”,出现在定义右侧的括号中。

    要在 CWEB 样式中使用长交叉引用

    \noweboptions{longxref}
    

    【讨论】:

    • 感谢诺曼的帮助。我是否认为这里的工作流程是在源上运行noweave -x -n -latex hello.nw > hello.tex,然后将\input 生成的文件放入包含相关\noweboptions 和调用的驱动程序文档中?
    • 啊哈,或者使用-delay 选项。好的,现在确实进展顺利。感谢伟大的工具!
    • @Will:你明白了。您的工作流程取决于您是要“一个文档是一个源文件”还是“一个文档由多个源文件组成”。
    【解决方案2】:

    对于该 WP 示例,您应该从 Hello World 部分的两个块中的每一个块中获取对许可证部分的引用。除非你告诉 Latex,否则最后你不会得到任何块或标识符的列表。

    要获取 Web 块列表,请尝试将 \nowebchunks 放在文档末尾附近(即,在最后一个块出现之后),并在 noweb 调用中添加 -x 开关。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 2017-01-12
      • 2017-01-24
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多