XeLaTeX on OS X doesn't recognise some diacritics signs

I've just moved to OS X 10.8.2 from Ubuntu. I have TeX installed as I guess from tug.org, but I'm not sure since it wasn't me who installed it. All my files created in Ubuntu compiles exept one problem: the diacritic mark \b{h} is not found by XeLaTeX (while it works in LaTeX), in log file there is a warning:

Missing character: There is no ẖ in font [lmroman10-regular]:mapping=tex-text !

UPDATE

Here is part of the document:

documentclass[openany]{book}

\usepackage{setspace}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{indentfirst}
\setlength{\parindent}{0in}

\setmainlanguage{polish}
\setotherlanguage[locale=mashriq]{arabic}
\setromanfont[Mapping=tex-text]{Latin Modern Mono}

\begin{document}

\b{h}ur\=u\v g

\end{document}


All other diacritics are found.

I've changed font I was using under Ubuntu (Linux Libertine O) to Latin Modern, but it didn't help the diacritics.

Thanks.

-
First of all you should remove the call to srcltx which is obsolete. Then you should present a minimal document that shows the problem. – egreg Dec 1 '12 at 10:45
@egreg hello:) I've removed line with scrltx and added a bit of text with diacritics. Under UPDATE. – maria Dec 1 '12 at 10:58
If the Linux Libertine (and Biolinum) fonts haven't already been installed on your system, you should fire up the "TeX Live Utility" program (installed in /Applications/TeX) and search for the "Libertine" keyword. Alternatively, you could obtain the files from ctan.org/tex-archive/fonts/libertine and install "by hand". Well worth the effort. A quick comment about another aspect of your sample code: There's really no point in loading the indentfirst package if you also provide the instruction \setlength\parindent{0pt}. – Mico Dec 1 '12 at 11:38

The Latin Modern fonts don't have the U+1E96 character ('LATIN SMALL LETTER H WITH LINE BELOW'), which is the meaning of the warning you get. Other fonts, such as Linux Libertine, have it.

If you are stuck with a font that hasn't that character, a way out can be adapting an answer of mine to the problem at hand.

\documentclass{article}

\usepackage{fontspec}
\usepackage{newunicodechar}

\UndeclareUTFcomposite[\UTFencname]{x1E96}{\b}{h}
\makeatletter
\DeclareRobustCommand{\b}[1]
{\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}%
\vbox to.2ex{\hbox{\char"AF}\vss}\hidewidth}\egroup}
\makeatother

\newunicodechar{ẖ}{\b{h}}

\begin{document}

\b{h}ur\=u\v g

ẖurūǧ

\end{document}


This shows also how you can use direct input for the characters with diacritics (provided you save your file as UTF-8).

Note. Stating \setromanfont[Mapping=tex-text]{Latin Modern Mono} is not good under three respects

1. \setromanfont is deprecated and \setmainfont should be used
2. Mapping=tex-text is now better expressed as Ligatures=TeX
3. Latin Modern Mono is a monospaced font, which is not good for the main text
-
Thanks. Is the code you've given a small document that should compile? Or should I add something to the preamble? I'm not able to compile it. BTW I don't care about font, I've changed form Linux Libertine since I don't find it in Mac fonts. If I comment all the line with \setromanfont (so as I understand I use some defauld font?) it changes nothing. When I try to change Mapping to Ligatures=TeX, XeLaTeX doesn't understand it. – maria Dec 1 '12 at 11:47
@maria You may have an older TeX distribution. You should be able to see what's installed with the "TeX Distribution" panel in "System Preferences". – egreg Dec 1 '12 at 11:50
Thanks, it's working now. I was trying to remove previous comment since I managed finally. Probably there is some problem with TeX installation but I hope I'm on OS X just for a while, so I won't fix it since I'm finally able to have underlined h. Thanks a lot – maria Dec 1 '12 at 12:04