I'm using XeLaTeX on Linux. I know that Latin Modern Roman is the default font of XeLaTeX, however if in my preamble I write
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\setmonofont{Latin Modern Mono}
\setmathfont{Latin Modern Math}
I get errors like
The font "Latin Modern Roman" cannot be found \setmainfont{Latin Modern Roman}.
I really do not understand what is the name of this defaul character. Then, I use unicode-math package: my preamble is
\documentclass{article}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
%\setmainfont{Latin Modern Roman}
%\setsansfont{Latin Modern Sans}
%\setmonofont{Latin Modern Mono}
% \setmathfont{Latin Modern Math}
\usepackage{unicode-math}
I don't like default \mathbb and \mathcal font of XeLaTeX. I noticed that, if I remove unicode-math I get the correct symbols. How to continue using unicode-math and having AMS font fot \mathbb and \mathcal?

fontspecenables Latin Modern for text by default. There is no need to set the serif. sans and mono as you do. I imagine that these fonts may not be installed for your system generally, which is necessary in order to use their names in this way withfontspec. – cfr May 03 '16 at 22:55