Yesterday evening I was trying to use the soul package with XeLaTeX but it did not work. More specifically, the command
\ul did not work with Greek texts. I did some google search and I found a way to make the package usable with XeLaTeX. In the preable of your XeLaTeX file add the following commands:
One needs a monospaced font that will be used internally by the soul package. Here I am suggesting the use of freemono but one can use any other font that contains the script you intend to use in a document. If the font does not contain glyphs for the script one plans to use, then the package will not work at all. It sould be a good idea to create a package but since the solution depends on a font, it cannot be a generic solution.