Документирование кода C или C++ с помощью noweb и LaTeX
Я использую noweb к документу мой C++ и C код. В pdf-файле (сгенерированном после плетения и использования pdflatex) часть кода немного выключена:
-
>>
и<<
повернуть в правильное Открытие и закрытие guillemets; -
--
превращается в Н-тире.
моя команда плетения:
noweave -latex -delay -x foo.nw > foo.tex
Edit: поэтому мне, вероятно, нужно использовать prettyprinter. Те, что доступны, делают слишком много. Я займусь этим, и если я ... найдите прямое решение, которым я поделюсь.
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, decrement и shift. C++11 теперь позволяет объявлять шаблоны с заключительными угловыми скобками без пространства между ними. Вам нужно запустить команду substitute на >>
дважды, чтобы разбить последовательность >
больше чем два.