[XeTeX] Weird character swap when using xelatex+fontspec+listings

Alan Munn amunn at gmx.com
Tue Jun 1 18:51:30 CEST 2010

Wow, Ulrike, thanks.  This is a really useful bit of code.  I'm not  
sure I understand the difference between the commented out code and  
the initial \lst at CCPut line.

If I comment out the \lst at CCPut line, and replace EURO with €, I get  
the same result, correct?  Why is this so, and is there a reason to do  
it one way or the other?


On Jun 1, 2010, at 3:51 AM, Ulrike Fischer wrote:

> Am Sun, 30 May 2010 16:30:07 -0400 schrieb Alan Munn:
>>> When I compile the attached t.tex with xelatex I get the attached
>>> t.pdf, in which the big pi has somehow switched positions with
>>> 'a'. What's going on here? :)
>> This is a problem with the listings package, which is incompatible
>> with UTF-8 encoded files.
> Well with xetex listings is more compatible with utf8 than with
> standard 8-bit-pdftex, as now it no longer has the problem that a
> character is split at the input in 8-bit-pieces. Non-ASCII-chars
> like ä, ö, ü works (even without the extendedchars option) without
> problems.
> The problem here is that listings makes the necessary definitions
> only for character up to position 255.
> But adding the code for a new one is quite easy (I used the euro,
> which has the same problem than the greek, but is easier to handle
> for me). The commented part shows how to replace an input by
> arbitrary text:
> \documentclass{article}
> \usepackage{fontspec}
> \usepackage{listings}
> \makeatletter
> \lst at CCPut \lst at ProcessLetter {"20AC}\z@
> %\lst at CCPutMacro
> %    \lst at ProcessOther {"20AC}{EURO}
> %    \@empty\z@\@empty
> \lstset{MoreSelectCharTable=\catcode`\€\active}
> \makeatother
> \begin{document}
> \begin{lstlisting}[columns=flexible]
> a€b
> \end{lstlisting}
> x \lstinline|a€b| y
> \end{document}
> I don't think that it is a good idea to add all unicode chars as
> default, compilation would need much more time if all chars had to
> been reset before and after each listings, but some user commands
> which allows to extend the possible input for listings would be a
> good idea.
> -- 
> Ulrike Fischer
> --------------------------------------------------
> Subscriptions, Archive, and List information, etc.:
>  http://tug.org/mailman/listinfo/xetex

Alan Munn
amunn at gmx.com

More information about the XeTeX mailing list