[Pharo-project] Smalltalk syntax highlighting for Latex

Javier Pimás elpochodelagente at gmail.com
Fri Jun 15 10:05:07 EDT 2012


this is really cool!! Do you have the code for the example you posted?

Cheers!

On Fri, Jun 15, 2012 at 5:37 AM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

> Hi guys. I know that: a) for papers we usually write code in black and
> white and b) even when we may want colors like books or thesis, we still
> may not want to add colors.
> Anyway, for my thesis, I do want to make the code a little bit nicer and
> so I did some Smalltalk syntax highlighting with listings package. Not sure
> if this would be helpful for someone else, but just in case, I paste at the
> end the code.
> Basically, I can detect (and therefore, choose a color/style):
> globals/classes (start with uppercase), keywords, comments, strings,
> symbols and numbers.
> I also attach an screenshot.
>
> Cheers
>
> btw, thanks to Lukas and Luc for their help.
>
>
>
> % Source Code
> \usepackage{color}
> \usepackage{textcomp}
> \usepackage{listings}
> % \usepackage{needspace}
> % \usepackage{ulem}
>
> \definecolor{source}{gray}{0.95}
>
> % my comment style
> \newcommand{\myCommentStyle}[1]{{\footnotesize\ttfamily\itshape\color{gray!100!white}
> #1}}
>
> % my string style
> \newcommand{\myStringStyle}[1]{{\footnotesize\ttfamily\color{violet!100!black}
> #1}}
>
> % my symbol style
> \newcommand{\mySymbolStyle}[1]{{\footnotesize\ttfamily\color{violet!100!black}
> #1}}
>
> % my keyword style
> \newcommand{\myKeywordStyle}[1]{{\footnotesize\ttfamily\color{green!70!black}
> #1}}
>
> % my global style
> \newcommand{\myGlobalStyle}[1]{{\footnotesize\ttfamily\color{blue!100!black}
> #1}}
>
> % my number style
> \newcommand{\myNumberStyle}[1]{{\footnotesize\ttfamily\color{brown!100!black}
> #1}}
>
> \lstset{
>     language={},
>     % characters
>     tabsize=3,
>     escapechar={!},
>     keepspaces=true,
>     breaklines=true,
>     alsoletter={\#},
>     breakautoindent=true,
>     columns=fullflexible,
>     showstringspaces=false,
>     % background
>     frame=single,
>     aboveskip=1em, % automatic space before
>          framerule=0pt,
>     basicstyle=\footnotesize\ttfamily\color{black},
>     keywordstyle=\myKeywordStyle,% keyword style
>     commentstyle=\myCommentStyle,% comment style
>     frame=single,%
>     backgroundcolor=\color{source},
>     % numbering
>     numbersep=5pt,
>     numberstyle=\myNumberStyle,
>     numberfirstline=true,
>     % caption
>     captionpos=b,
>     % formatting (html)
>     moredelim=[is][\textbf]{<b>}{</b>},
>     moredelim=[is][\textit]{<i>}{</i>},
>     moredelim=[is][\uline]{<u>}{</u>},
>     moredelim=[is][\color{red}\uwave]{<wave>}{</wave>},
>     moredelim=[is][\color{red}\sout]{<del>}{</del>},
>     moredelim=[is][\color{blue}\uline]{<ins>}{</ins>},
>     % smalltalk stuff
>     morecomment=[s][\myCommentStyle]{"}{"},
> %    morecomment=[s][\myvs]{|}{|},
>     morestring=[b][\myStringStyle]',
>     moredelim=[is][]{<sel>}{</sel>},
>     moredelim=[is][]{<rcv>}{</rcv>},
>     moredelim=[is][\itshape]{<symb>}{</symb>},
>     moredelim=[is][\scshape]{<class>}{</class>},
>     morekeywords={true,false,nil,self,super,thisContext},
>     identifierstyle=\idstyle,
>     }
>
>
> \makeatletter
> \newcommand*\idstyle[1]{%
>          \expandafter\id at style\the\lst at token{#1}\relax%
>  }
>  \def\id at style#1#2\relax{%
>            \ifnum\pdfstrcmp{#1}{\#}=0%
>                 % this is a symbol
>                 \mySymbolStyle{\the\lst at token}%
>             \else%
>               \edef\tempa{\uccode`#1}%
>               \edef\tempb{`#1}%
>               \ifnum\tempa=\tempb%
>               % this is a global
>               \myGlobalStyle{\the\lst at token}%
>               \else%
>                   \the\lst at token%
>              \fi%
>             \fi%
>  }
>  \makeatother
>
>
> \lstset{literate=%
>     *{0}{{{\myNumberStyle{0}}}}1
>     {1}{{{\myNumberStyle{1}}}}1
>     {2}{{{\myNumberStyle{2}}}}1
>     {3}{{{\myNumberStyle{3}}}}1
>     {4}{{{\myNumberStyle{4}}}}1
>     {5}{{{\myNumberStyle{5}}}}1
>     {6}{{{\myNumberStyle{6}}}}1
>     {7}{{{\myNumberStyle{7}}}}1
>     {8}{{{\myNumberStyle{8}}}}1
>     {9}{{{\myNumberStyle{9}}}}1
>  }
>
>
> %\newcommand{\ct}{\lstinline[backgroundcolor=\color{white}]}
> \newcommand{\needlines}[1]{\Needspace{#1\baselineskip}}
> \newcommand{\lct}{\texttt}
>
>
> \lstnewenvironment{code}{%
>     \lstset{%
>         % frame=lines,
>         frame=single,
>         framerule=0pt,
>         mathescape=false
>     }
> }{}
>
>
> \newenvironment{codeNonSmalltalk}
>     {\begin{alltt}\sffamily}
>     {\end{alltt}\normalsize}
>
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>


-- 
Lic. Javier Pimás
Ciudad de Buenos Aires
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20120615/33c1731a/attachment.html>


More information about the Pharo-dev mailing list