6

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

  • >><<变成适当的打开和关闭guillemets;
  • --变成一个 n 破折号。

我的编织命令是:

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

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

4

1 回答 1

1

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

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 现在允许带有右尖括号的模板声明,它们之间没有空格。您需要>>两次运行替换命令来分解>超过两个的序列。

于 2012-12-07T18:48:11.077 回答