我正在使用noweb来记录我的C ++和C代码。在pdf文件中(在编织和使用pdflatex之后生成),一些代码稍微关闭:
>>
和<<
变成了正确的开启和关闭方式; --
变成了n-dash。我的编织命令是:
noweave -latex -delay -x foo.nw > foo.tex
编辑:所以我可能需要使用一个漂亮的打印机。可用的那些做得太多了。我会调查一下,如果我找到一个直截了当的解决方案,我会分享它。
答案 0 :(得分: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现在允许模板声明与关闭尖括号,它们之间没有空格。您需要在>>
上运行替换命令两次以分解长度超过两个的>
。