+1 for lyx 2012/6/15 S Krish <[email protected]>
> 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 >> >> >
