[Pharo-project] Smalltalk syntax highlighting for Latex

camille teruel camille.teruel at gmail.com
Fri Jun 15 04:56:23 EDT 2012


+1 for lyx

2012/6/15 S Krish <krishnamachari.sudhakar at gmail.com>

> Lyx on Linux helps on Latex formatting in a WYSIWYG mode..
>
>
> On Fri, Jun 15, 2012 at 2:07 PM, 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
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20120615/4722e4c8/attachment.html>


More information about the Pharo-dev mailing list