Я использую noweb для документирования своего кода на C ++ и C. В файле pdf (создан после ткачества и использования pdflatex) часть кода немного не работает:
>>
а также <<
превратиться в правильное открытие и закрытие гильеметов;--
превращается в н-тире.Моя команда ткачества:
noweave -latex -delay -x foo.nw > foo.tex
Изменить: так что мне, вероятно, нужно использовать PrettyPinter. Те, которые доступны, делают слишком много. Я посмотрю на это, и если я найду простое решение, я поделюсь им.
Фильтр для 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 позволяет теперь объявления шаблонов с закрывающими угловыми скобками без пробелов между ними. Вам нужно запустить команду замены >>
дважды, чтобы разбить последовательность >
длиннее двух.
Других решений пока нет …