[Tex/LaTex] Computer Modern Unicode + OpenType for XeTeX / fontspec

computer-modernfontsfontspecxetex

I'd like to use the most modern version of the Computer Modern fonts for XeTeX [or anything newer, of course] with the FontSpec package. Currently, I'm using

\setromanfont{CMU Serif}

However, this produces odd results with certain characters, e.g. -- or ' in italic text (created with \emph), e.g. instead of '. The problem isn't there when I use Latin Modern Roman or Linux Libertine O, but [with Latin Modern Roman] foreign characters don't show up.

(Sure, Linux Libertine is beautiful, but I want something a little less classy for normal documents :). )

I'm also using polyglossia, LyX, and a small script to remove LyX output errors, if it matters. I've looked at the TeX file and it seems fine.

Edit 1

Here's a minimal example, sorry for not providing this earlier.

\documentclass{article}
\usepackage{xunicode,fontspec,xltxtra}
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setromanfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
\begin{document}
\emph{hello -- a'b}
\end{document}

The render I get using xelatex is this:

my xelatex render

Edit 2

Files used are here, thanks for the help all.

Best Answer

Apparently this bug is caused by the mapping=tex-text option (and its Ligatures=TeX equivalent), which translates things like -- into the en-dash, and so forth. I can't seem to find any related bugs using Google...