[Pharo-project] Smalltalk syntax highlighting for Latex

S Krish krishnamachari.sudhakar at gmail.com
Fri Jun 15 06:37:28 EDT 2012


Lyx works cross platform..

On Fri, Jun 15, 2012 at 2:26 PM, camille teruel <camille.teruel at gmail.com>wrote:

> +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/616fc399/attachment.html>


More information about the Pharo-dev mailing list