{ Rouge }

An elegant, extendable code highlighter written in pure Ruby.

Create your own

diff -Naur test-texlive2011.log test-texlive2014.log
--- test-texlive2011.log	2014-10-11 22:10:34.041333119 +0200
+++ test-texlive2014.log	2014-10-11 22:10:41.993372551 +0200
@@ -1,19 +1,14 @@
-This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) (format=pdflatex 2014.1.4)  11 OCT 2014 21:35
+This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdflatex 2014.10.9)  11 OCT 2014 21:34
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
 **test.tex
 (./test.tex
-LaTeX2e <2011/06/27>
-Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
-aded.
-
-(/media/texlive/2011/texmf-dist/tex/latex/base/ar
-ticle.cls
+LaTeX2e <2014/05/01>
+Babel <3.9l> and hyphenation patterns for 6 languages loaded.
+(/media/texlive/2014/texmf-dist/tex/latex/base/article.cls
 Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
-
-(/media/texlive/2011/texmf-dist/tex/latex/base/si
-ze10.clo
+(/media/texlive/2014/texmf-dist/tex/latex/base/size10.clo
 File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
 )
 \c@part=\count79
@@ -28,16 +23,13 @@
 \belowcaptionskip=\skip42
 \bibindent=\dimen102
 )
-(/media/texlive/2011/texmf-dist/tex/latex/tools/t
-race.sty
-Package: trace 2003/04/30 v1.1c trace LaTeX code
+(/media/texlive/2014/texmf-dist/tex/latex/tools/trace.sty
+Package: trace 2014/04/21 v1.1d trace LaTeX code
 )
-(/media/texlive/2011/texmf-dist/tex/latex/tools/t
-abularx.sty
-Package: tabularx 1999/01/07 v2.07 `tabularx' package (DPC)
+(/media/texlive/2014/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2014/05/13 v2.10 `tabularx' package (DPC)
 
-(/media/texlive/2011/texmf-dist/tex/latex/tools/a
-rray.sty
+(/media/texlive/2014/texmf-dist/tex/latex/tools/array.sty
 Package: array 2008/09/09 v2.4c Tabular extension package (FMi)
 \col@sep=\dimen103
 \extrarowheight=\dimen104
@@ -53,8 +45,7 @@
 \TX@cols=\count87
 \TX@ftn=\toks15
 )
-(/media/texlive/2011/texmf-dist/tex/latex/booktab
-s/booktabs.sty
+(/media/texlive/2014/texmf-dist/tex/latex/booktabs/booktabs.sty
 Package: booktabs 2005/04/14 v1.61803 publication quality tables
 \heavyrulewidth=\dimen110
 \lightrulewidth=\dimen111
@@ -74,11 +65,9 @@
 \@lastruleclass=\count91
 \@thisrulewidth=\dimen122
 )
-(/media/texlive/2011/texmf-dist/tex/latex/listing
-s/listings.sty
-(/media/texlive/2011/texmf-dist/tex/latex/graphic
-s/keyval.sty
-Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+(/media/texlive/2014/texmf-dist/tex/latex/listings/listings.sty
+(/media/texlive/2014/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/05/08 v1.15 key=value parser (DPC)
 \KV@toks@=\toks16
 )
 \lst@mode=\count92
@@ -94,24 +83,22 @@
 \lst@lineno=\count97
 \lst@maxwidth=\dimen126
 
-(/media/texlive/2011/texmf-dist/tex/latex/listing
-s/lstmisc.sty
-File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz)
+(/media/texlive/2014/texmf-dist/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2014/09/06 1.5e (Carsten Heinz)
 \c@lstnumber=\count98
 \lst@skipnumbers=\count99
 \lst@framebox=\box27
 )
-(/media/texlive/2011/texmf-dist/tex/latex/listing
-s/listings.cfg
-File: listings.cfg 2007/02/22 1.4 listings configuration
+(/media/texlive/2014/texmf-dist/tex/latex/listings/listings.cfg
+File: listings.cfg 2014/09/06 1.5e listings configuration
 ))
-Package: listings 2007/02/22 1.4 (Carsten Heinz)
+Package: listings 2014/09/06 1.5e (Carsten Heinz)
 
-(/media/texlive/2011/texmf-dist/tex/latex/lipsum/
-lipsum.sty
-Package: lipsum 2011/04/14 v1.2 150 paragraphs of Lorem Ipsum dummy text
+(/media/texlive/2014/texmf-dist/tex/latex/lipsum/lipsum.sty
+Package: lipsum 2014/07/27 v1.3 150 paragraphs of Lorem Ipsum dummy text
 \c@lips@count=\count100
-) (./test.aux)
+)
+(./test.aux)
 \openout1 = `test.aux'.
 
 LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 24.
@@ -231,16 +218,34 @@
 {\expandafter}
 {\else}
 
-\TX@endtabularx ->\expandafter \TX@newcol \expandafter {\tabularxcolumn {\TX@co
-l@width }}\let \verb \TX@verb \def \@elt ##1{\global \value {##1}\the \value {#
-#1}\relax }\edef \TX@ckpt {\cl@@ckpt }\let \@elt \relax \TX@old@table \maxdimen
- \TX@col@width \TX@target \global \TX@cols \@ne \TX@typeout@ {\@spaces Table Wi
-dth\@spaces Column Width\@spaces X Columns}\TX@trial {\def \NC@rewrite@X {\glob
-al \advance \TX@cols \@ne \NC@find p{\TX@col@width }}}\loop \TX@arith \ifTX@ \T
-X@trial {}\repeat {\let \@footnotetext \TX@ftntext \let \@xfootnotenext \TX@xft
-ntext \csname tabular*\expandafter \endcsname \expandafter \TX@target \the \tok
-s@ \csname endtabular*\endcsname }\global \TX@ftn \expandafter {\expandafter }\
-the \TX@ftn \ifnum 0=`{\fi }\expandafter \end \expandafter {\TX@ }
+\TX@endtabularx ->\expandafter \expandafter \expandafter \TX@find@endtabularxa 
+\csname end\TX@ \endcsname \endtabularx \TX@ \endtabularx \TX@find@endtabularxa
+ \expandafter \TX@newcol \expandafter {\tabularxcolumn {\TX@col@width }}\let \v
+erb \TX@verb \def \@elt ##1{\global \value {##1}\the \value {##1}\relax }\edef 
+\TX@ckpt {\cl@@ckpt }\let \@elt \relax \TX@old@table \maxdimen \TX@col@width \T
+X@target \global \TX@cols \@ne \TX@typeout@ {\@spaces Table Width\@spaces Colum
+n Width\@spaces X Columns}\TX@trial {\def \NC@rewrite@X {\global \advance \TX@c
+ols \@ne \NC@find p{\TX@col@width }}}\loop \TX@arith \ifTX@ \TX@trial {}\repeat
+ {\let \@footnotetext \TX@ftntext \let \@xfootnotenext \TX@xftntext \csname tab
+ular*\expandafter \endcsname \expandafter \TX@target \the \toks@ \csname endtab
+ular*\endcsname }\global \TX@ftn \expandafter {\expandafter }\the \TX@ftn \ifnu
+m 0=`{\fi }\expandafter \expandafter \expandafter \TX@find@endtabularxbb \expan
+dafter \end \expandafter {\TX@ }\endtabularx \TX@ \endtabularx \TX@find@endtabu
+larxb 
+{\expandafter}
+{\expandafter}
+{\csname}
+
+\TX@ ->tabularx
+{\expandafter}
+
+\TX@find@endtabularxa #1\endtabularx #2\endtabularx #3\TX@find@endtabularxa ->\
+ifx \TX@ #2\else \toks@ \expandafter {\the \toks@ #1}\fi 
+#1<-
+#2<-
+#3<-\TX@ \endtabularx 
+{\ifx}
+{false}
 {\expandafter}
 {\expandafter}
 
@@ -2562,8 +2567,8 @@
 {changing \@tempc=macro:#1->\lstKV@OptArg []{#1}{\lst@NormedNameDef \ETC.}
 {into \@tempc=\relax}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-basicstyle=\ttfamily 
 {\ifx}
 {false}
@@ -2667,8 +2672,8 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-breakatwhitespace=true
 {\ifx}
 {false}
@@ -2788,8 +2793,8 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<- literate={\_}{}{0\discretionary {\_}{}{\_}}{\\\-}{}{0\discretionary {-}{}{
 }}
 {\ifx}
@@ -2941,13 +2946,13 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-\relax 
 {\ifx}
 {true}
 
-\empty ->
+\@empty ->
 {\else}
 {\fi}
 
@@ -2998,8 +3003,8 @@
 \reserved@c ->\\lstinline [{}]
 
 \\lstinline [#1]->\leavevmode \bgroup \def \lst@boxpos {b}\lsthk@PreSet \lstset
- {flexiblecolumns,#1}\lsthk@TextStyle \@ifnextchar \bgroup {\afterassignment \l
-st@InlineG \let \@let@token }\lstinline@ 
+ {flexiblecolumns,#1}\lsthk@TextStyle \@ifnextchar \bgroup {\ifnum `{=0}\fi \af
+terassignment \lst@InlineG \let \@let@token }\lstinline@ 
 #1<-
 
 \leavevmode ->\unhbox \voidb@x 
@@ -3071,8 +3076,8 @@
 {changing \@tempc=macro:#1->\@ifstar {\lst@true \lst@Literatekey \ETC.}
 {into \@tempc=\relax}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-flexiblecolumns
 {\ifx}
 {false}
@@ -3208,8 +3213,8 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-
 {\ifx}
 {false}
@@ -3257,13 +3262,13 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-\relax 
 {\ifx}
 {true}
 
-\empty ->
+\@empty ->
 {\else}
 {\fi}
 
@@ -3327,14 +3332,14 @@
 \@ifnextchar #1#2#3->\let \reserved@d =#1\def \reserved@a {#2}\def \reserved@b 
 {#3}\futurelet \@let@token \@ifnch 
 #1<-\bgroup 
-#2<-\afterassignment \lst@InlineG \let \@let@token 
+#2<-\ifnum `{=0}\fi \afterassignment \lst@InlineG \let \@let@token 
 #3<-\lstinline@ 
 {\let}
 {changing \reserved@d=the character [}
 {into \reserved@d=begin-group character {}
 {\def}
 {changing \reserved@a=macro:->\\lstinline }
-{into \reserved@a=macro:->\afterassignment \lst@InlineG \ETC.}
+{into \reserved@a=macro:->\ifnum `{=0}\fi \afterassignment \ETC.}
 {\def}
 {changing \reserved@b=macro:->\\lstinline [{}]}
 {into \reserved@b=macro:->\lstinline@ }
@@ -3350,11 +3355,13 @@
 {true}
 {\let}
 {changing \reserved@c=macro:->\\lstinline [{}]}
-{into \reserved@c=macro:->\afterassignment \lst@InlineG \ETC.}
+{into \reserved@c=macro:->\ifnum `{=0}\fi \afterassignment \ETC.}
 {\else}
 {\fi}
 
-\reserved@c ->\afterassignment \lst@InlineG \let \@let@token 
+\reserved@c ->\ifnum `{=0}\fi \afterassignment \lst@InlineG \let \@let@token 
+{\ifnum}
+{false}
 {\afterassignment}
 {\let}
 {reassigning \@let@token=begin-group character {}
@@ -12231,8 +12238,8 @@
 {changing \@tempc=macro:#1->\lstKV@OptArg []{#1}{\lst@NormedNameDef \ETC.}
 {into \@tempc=\relax}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-basicstyle=\ttfamily 
 {\ifx}
 {false}
@@ -12336,8 +12343,8 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-breakatwhitespace=true
 {\ifx}
 {false}
@@ -12457,8 +12464,8 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<- literate={\_}{}{0\discretionary {\_}{}{\_}}{\\\-}{}{0\discretionary {-}{}{
 }}
 {\ifx}
@@ -12610,13 +12617,13 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-\relax 
 {\ifx}
 {true}
 
-\empty ->
+\@empty ->
 {\else}
 {\fi}
 
@@ -12667,8 +12674,8 @@
 \reserved@c ->\\lstinline [{}]
 
 \\lstinline [#1]->\leavevmode \bgroup \def \lst@boxpos {b}\lsthk@PreSet \lstset
- {flexiblecolumns,#1}\lsthk@TextStyle \@ifnextchar \bgroup {\afterassignment \l
-st@InlineG \let \@let@token }\lstinline@ 
+ {flexiblecolumns,#1}\lsthk@TextStyle \@ifnextchar \bgroup {\ifnum `{=0}\fi \af
+terassignment \lst@InlineG \let \@let@token }\lstinline@ 
 #1<-
 
 \leavevmode ->\unhbox \voidb@x 
@@ -12740,8 +12747,8 @@
 {changing \@tempc=macro:#1->\@ifstar {\lst@true \lst@Literatekey \ETC.}
 {into \@tempc=\relax}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-flexiblecolumns
 {\ifx}
 {false}
@@ -12877,8 +12884,8 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-
 {\ifx}
 {false}
@@ -12926,13 +12933,13 @@
 {\expandafter}
 {\fi}
 
-\KV@do #1,->\ifx \relax #1\empty \else \KV@split #1==\relax \expandafter \KV@do
- \fi 
+\KV@do #1,->\ifx \relax #1\@empty \else \KV@split #1==\relax \expandafter \KV@d
+o \fi 
 #1<-\relax 
 {\ifx}
 {true}
 
-\empty ->
+\@empty ->
 {\else}
 {\fi}
 
@@ -12996,14 +13003,14 @@
 \@ifnextchar #1#2#3->\let \reserved@d =#1\def \reserved@a {#2}\def \reserved@b 
 {#3}\futurelet \@let@token \@ifnch 
 #1<-\bgroup 
-#2<-\afterassignment \lst@InlineG \let \@let@token 
+#2<-\ifnum `{=0}\fi \afterassignment \lst@InlineG \let \@let@token 
 #3<-\lstinline@ 
 {\let}
 {changing \reserved@d=the character [}
 {into \reserved@d=begin-group character {}
 {\def}
 {changing \reserved@a=macro:->\\lstinline }
-{into \reserved@a=macro:->\afterassignment \lst@InlineG \ETC.}
+{into \reserved@a=macro:->\ifnum `{=0}\fi \afterassignment \ETC.}
 {\def}
 {changing \reserved@b=macro:->\\lstinline [{}]}
 {into \reserved@b=macro:->\lstinline@ }
@@ -13019,11 +13026,13 @@
 {true}
 {\let}
 {changing \reserved@c=macro:->\\lstinline [{}]}
-{into \reserved@c=macro:->\afterassignment \lst@InlineG \ETC.}
+{into \reserved@c=macro:->\ifnum `{=0}\fi \afterassignment \ETC.}
 {\else}
 {\fi}
 
-\reserved@c ->\afterassignment \lst@InlineG \let \@let@token 
+\reserved@c ->\ifnum `{=0}\fi \afterassignment \lst@InlineG \let \@let@token 
+{\ifnum}
+{false}
 {\afterassignment}
 {\let}
 {reassigning \@let@token=begin-group character {}
@@ -21834,65 +21843,36 @@
 {leaving simple group (level 13) entered at line 43}
 {blank space  }
 
-{\unskip}
-{\relax}
-{\endgroup}
-{leaving semi simple group (level 12) entered at line 43}
-{\hfil}
-{\hskip}
-{end of alignment template}
-{leaving align group (level 11) entered at line 43}
-{entering align group (level 11) at line 43}
-
-\lipsum ->\@ifstar \@@lipsum \@lipsum 
-
-\@ifstar #1->\@ifnextchar *{\@firstoftwo {#1}}
-#1<-\@@lipsum 
-
-\@ifnextchar #1#2#3->\let \reserved@d =#1\def \reserved@a {#2}\def \reserved@b 
-{#3}\futurelet \@let@token \@ifnch 
-#1<-*
-#2<-\@firstoftwo {\@@lipsum }
-#3<-\@lipsum 
-{\hskip}
-{\vtop}
-
-\@startpbox #1->\bgroup \setlength \hsize {#1}\@arrayparboxrestore \everypar {\
-vrule \@height \ht \@arstrutbox \@width \z@ \everypar {}}
-#1<-\TX@col@width 
-{entering vtop group (level 12) at line 43}
-
-%% ... [snip] ...
-
-\traceoff ->\unconditionally@traceoff \@tracingfalse 
-
-\unconditionally@traceoff ->\tracingassigns \z@ \tracingrestores \z@ \tracingco
-mmands \z@ \tracingpages \z@ \tracingmacros \z@ \tracingoutput \z@ \showboxbrea
-dth \m@ne \showboxdepth \m@ne \tracingstats \@ne \tracingparagraphs \z@ \tracin
-ggroups \z@ 
-{\tracingassigns}
-{changing \tracingassigns=1}
-{\tracingrestores}
-{\tracingcommands}
-[1{/media/texlive/2011/texmf-var/fonts/map/pdftex
-/updmap/pdftex.map}] (./test.aux) ) 
-
+{alignment tab character &}
+! Missing { inserted.
+<inserted text> 
+                {
+<to be read again> 
+                   &
+<inserted text> ...1}, \breakableTeletype {var2} &
+                                                   \lipsum [1] \ttn 2 & \bre...
+
+\TX@trial ...ma \expandafter \tabular \the \toks@ 
+                                                  \endtabular }\TX@ckpt \TX@...
+
+\TX@endtabularx ...ne \NC@find p{\TX@col@width }}}
+                                                  \loop \TX@arith \ifTX@ \TX...
+l.43   \end{tabularx}
+                     %
+? X
+ 
 Here is how much of TeX's memory you used:
- 1778 strings out of 495066
- 25363 string characters out of 3181571
- 167711 words of memory out of 3000000
- 5009 multiletter control sequences out of 15000+200000
- 3808 words of font info for 15 fonts, out of 3000000 for 9000
- 14 hyphenation exceptions out of 8191
- 26i,15n,32p,188b,1203s stack positions out of 5000i,500n,10000p,200000b,50000s
-</media/texli
-ve/2011/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></media/texlive/2011/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt1
-0.pfb>
-Output written on test.pdf (1 page, 28851 bytes).
+ 1785 strings out of 494948
+ 24927 string characters out of 6178928
+ 172285 words of memory out of 5000000
+ 5064 multiletter control sequences out of 15000+600000
+ 3808 words of font info for 15 fonts, out of 8000000 for 9000
+ 59 hyphenation exceptions out of 8191
+ 26i,15n,32p,187b,1194s stack positions out of 5000i,500n,10000p,200000b,80000s
+No pages of output.
 
 PDF statistics:
- 16 PDF objects out of 1000 (max. 8388607)
- 10 compressed objects within 1 object stream
+ 0 PDF objects out of 1000 (max. 8388607)
  0 named destinations out of 1000 (max. 500000)
  1 words of extra memory for PDF output out of 10000 (max. 10000000)