\documentclass[fleqn,12pt,a4paper]{article} % normal
\usepackage[utf8x]{inputenc}
\usepackage{fontspec,xltxtra,xunicode}
\usepackage{fontenc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{color}
\usepackage{setspace}
\usepackage{hyperref}
\usepackage{microtype}
\usepackage{cmll}
\usepackage{tabularx}
\usepackage{pifont}
\usepackage{amstext, amsmath}
\usepackage{unicode-math}
\setmathfont{Sanskrit2003}
\setmainfont[Script=Devanagari]{Sanskrit2003}
\begin{document}
$ A\xleftarrow{n+\mu-1}B \xrightarrow[T]{n\pm i-1}C $ \\
$ आज\xleftarrow{कल}अ \xrightarrow{पर्सो}तलवार $
\end{document}
- 我尝试使用这个,上面的英文文本可以正常显示,但是当我尝试使用 Unicode 梵文字体时,我看到的是箭头,但没有文字。非常感谢您的帮助。
答案1
您不应该在数学模式下直接使用普通文本,英文文本将被视为数学并以数学斜体(默认)设置为数学间距等等,而其他脚本将根本不会显示,因为默认数学字体只有拉丁文(一些希腊文也用于数学)。
相反,你应该\text{}
从 amsmath 内部设置,例如:
\documentclass{article} % normal
\usepackage{fontspec}
\usepackage{amstext, amsmath}
\setmainfont[Script=Devanagari]{Sanskrit2003}
\begin{document}
$ A\xleftarrow{n+\mu-1}B \xrightarrow[T]{n\pm i-1}C $ \\
$ \text{आज}\xleftarrow{\text{कल}}\text{अ} \xrightarrow{\text{पर्सो}}\text{तलवार} $
\end{document}
你的序言也有很多问题:
\usepackage[utf8x]{inputenc}
与 xelatex 无关,请将其删除。\usepackage{fontenc}
你也不需要那个\usepackage{microtype}
当前版本的 microtype 不支持 xetex,因此这个版本不执行任何操作。\usepackage{unicode-math}
&\setmathfont{Sanskrit2003}
也没有意义,unicode-math 需要特殊的 OpenType 数学字体,并且只支持拉丁和希腊数学,所以\setmathfont{Sanskrit2003}
只会给你不完整的数学(并且使用 unicode-math 而不设置数学字体会更加不完整。)
不确定其余的,但最好确保您的文档中确实需要它们。