带文字的箭头(使用 Unicode Devanagari 字体)

带文字的箭头(使用 Unicode Devanagari 字体)
\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 而不设置数学字体会更加不完整。)

不确定其余的,但最好确保您的文档中确实需要它们。

相关内容