Документирование кода C или C ++ с noweb и LaTeX

Я использую noweb для документирования своего кода на C ++ и C. В файле pdf (создан после ткачества и использования pdflatex) часть кода немного не работает:

  • >> а также << превратиться в правильное открытие и закрытие гильеметов;
  • -- превращается в н-тире.

Моя команда ткачества:

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

Изменить: так что мне, вероятно, нужно использовать PrettyPinter. Те, которые доступны, делают слишком много. Я посмотрю на это, и если я найду простое решение, я поделюсь им.

6

Решение

Фильтр для 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 позволяет теперь объявления шаблонов с закрывающими угловыми скобками без пробелов между ними. Вам нужно запустить команду замены >> дважды, чтобы разбить последовательность > длиннее двух.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]