2012-11-24 20 views
6

C++ ve C kodlarımı belgelemek için noweb kullanıyorum. pdf dosyası olarak kod bazı biraz kapalı (dokuma ve pdflatex kullanarak sonra oluşturulan):noweb ve LaTeX ile C veya C++ kodunu belgeleme

  • >> ve uygun açma ve kapama guillemets içine << dönüş;
  • -- n-tire dönüşür.

Benim dokuma komut:

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

Düzenleme: yani muhtemelen bir prettyprinter kullanmak gerekir. Mevcut olanlar çok fazla. Ona bakacağım ve doğru bir çözüm bulursam paylaşacağım.

+4

+1. –

cevap

1

bir sed komut dosyası olarak uygulanan noweave için bir filtre, dokuma komut şudur: O C, kadar azaltmaya yönelik çalışır ve operatörleri değiştirmektedir

#!/bin/sed -f 
/^@begin code/ , /^@end code/ { 
/^@text/ { 
s/--/-\ 
@literal {}\ 
@text -/g 
s/>>/>\ 
@literal {}\ 
@text >/g 
s/<</<\ 
@literal {}\ 
@text </g 
} 
} 

Not:

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

Ve c2nwtex budur. C++ 11, artık aralarında boşluk olmadan kapak açılı parantezler içeren şablon bildirimlerine izin veriyor. İkiden daha uzun bir > dizisini kırmak için >>'daki ikame komutunu iki kez çalıştırmanız gerekir. Dokuma için