【问题标题】:Documenting C or C++ code with noweb and LaTeX使用 noweb 和 LaTeX 记录 C 或 C++ 代码
【发布时间】:2012-11-24 18:14:15
【问题描述】:

我正在使用 noweb 来记录我的 C++ 和 C 代码。在 pdf 文件中(在编织和使用 pdflatex 后生成)中的一些代码略有偏差:

  • >><< 变成正确的开合符;
  • -- 变成一个 n 破折号。

我的编织命令是:

noweave -latex -delay -x foo.nw > foo.tex

编辑:所以我可能需要使用漂亮的打印机。那些可用的东西太多了。我会研究它,如果我找到一个直接的解决方案,我会分享它。

【问题讨论】:

    标签: c++ latex noweb


    【解决方案1】:

    noweave 的过滤器实现为 sed 脚本,编织命令为:

    noweave -x -delay -latex -filter c2nwtex foo.nw > foo.tex
    

    而 c2nwtex 是这样的:

    #!/bin/sed -f
    /^@begin code/ , /^@end code/ {
    /^@text/ {
    s/--/-\
    @literal {}\
    @text -/g
    s/>>/>\
    @literal {}\
    @text >/g
    s/<</<\
    @literal {}\
    @text </g
    }
    }
    

    请注意,这适用于 C、递减和移位运算符。 C++11 现在允许带有右尖括号的模板声明,它们之间没有空格。您需要在 &gt;&gt; 上运行替换命令两次,以分解长于两个的 &gt; 序列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多