2008-08-25

listings

LaTeX中的listings包可以用来方便地排版各种编程语言。它默认内置了对多达80多种语言的支持,包括Lisp -- 不过可惜的是没有对Scheme的直接支持。不过这也不是一个大的问题,因为listings提供了宏命令lstdefinelanguage来自定义新的语言。

\lstdefinelanguage{Scheme}{%
morekeywords={begin,call-with-current-continuation,call/cc,define,%
case,cond,do,delay,else,force,for-each,map,if,and,or,not,lambda,%
let,let-syntax,let*,letrec,letrec-syntax,syntax,syntax-rules%
},%
sensitive,%
alsodigit=-,%
morecomment=[l]{;},%
morecomment=[s]{\#|}{|\#},%
morestring=[b]{``}%
}[keywords,comments,strings]

其实Scheme的关键字相当稀少,除了define, lambda, if等等,其它多数只是宏而已,不过一起定义出来使得排版出来的代码自动语法高亮,还是相当赏心悦目。

标签:

0 Comments:

发表评论

<< Home