Lyx on Linux helps on Latex formatting in a WYSIWYG mode..

On Fri, Jun 15, 2012 at 2:07 PM, Mariano Martinez Peck <
[email protected]> 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@style\the\lst@token{#1}\relax%
>  }
>  \def\id@style#1#2\relax{%
>            \ifnum\pdfstrcmp{#1}{\#}=0%
>                 % this is a symbol
>                 \mySymbolStyle{\the\lst@token}%
>             \else%
>               \edef\tempa{\uccode`#1}%
>               \edef\tempb{`#1}%
>               \ifnum\tempa=\tempb%
>               % this is a global
>               \myGlobalStyle{\the\lst@token}%
>               \else%
>                   \the\lst@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
>
>

Reply via email to