کد زیر دستورات لازم را برای وارد کردن کد یک زبان برنامه نویسی خاص در لاتک آورده است.
\documentclass[]{article}
\usepackage{listings}
\usepackage{xcolor,hyperref}
\lstdefinelanguage{AddIt}{
morekeywords={set,sets,put},
sensitive = false,
morecomment=[f]{*},%
morecomment=[s]{$off}{$on},%
morecomment=[s][\color{green}]{/}{/},%
morestring=[b][\color{red}]{'},%
morestring=[b][\color{red}]{"}%
}
\lstset{
basicstyle=\footnotesize,
commentstyle=\color{gray}\itshape,
keywordstyle=\color{blue}\bfseries,
stringstyle=\color{red}\itshape,
showstringspaces=false,
numbers=left,
numberstyle=\tiny,
numberblanklines=false,
showlines=false,
breaklines=true
}
\begin{document}
\lstinputlisting[language=AddIt]{prog}
\end{document}
که در آن فایل prog.tex حاوی کدهای مربوطه است (فایل در پیوست است).
خروجی به شکل زیر است:
اما در اینجا دو تغییر لازم است:
1- در خطوط 1 و 3 نمیخواهیم عبارت های $off
و $on
که برای کامنت کردن متن به کار می روند به صورت خاکستری و کج نمایش داده شوند اگر چه متنی که بین آنها قرار می گیرد باید به صورت خاکستری و کج نمایش داده شود.
2- در خط 6 عبارت های داخل علامت نقل قول باید همانند خطوط 7 و 8 قرمز رنگ باشند. بنابراین در زمانی که عبارت بین دو علامت /
قرار داشته باشد و همزمان داخل علامت های نقل قول باشد می خواهیم اولویت را به علامت های نقل قول بدهیم.
و اما یک مورد اشتباه که باید با کد نویسی آن را اصلاح و تعریف کرد:
علامت /
در این زبان برنامه نویسی دارای دو کاربرد است: یک کاربرد در خطوط 4و 6 نشان داده شده است که عبارت های بین دو علامت /
به رنگ سبز در آمده اند. اما در خطوط 9 و 10 به منظور دیگری به کار برده شده است و آن رفتن به خط بعد است. در خروجی به اشتباه در خطوط 9 و 10 عبارت های بین دو /
که ارتباطی با هم ندارند به رنگ سبز در آمده است. چگونه می توان تعریف کرد که اگر بین دو /
نشانه ;
و یا واژگان کلیدی مثل put
بیاید عبارتها رنگ نشوند.
چگونه می توان موارد گفته شده را تغییر داد و اشتباه ذکر شده را اصلاح کرد.