代码
\documentclass{article}
\usepackage{fontspec}
\usepackage{wasysym}
\begin{document}
\textrecipe
\end{document}
可以正常生成 unicode 字符(U+211E)
但是当我添加从此处下载的 \setmainfont{Sanskrit 2003} 时梵文2003.zip,无法生成unicode字符。这可能与字体中符号的可用性有关,或者出于其他原因,但我需要在文档中保留符号和字体。请帮忙。
\documentclass{article}
\usepackage{fontspec}
\usepackage{wasysym}
\setmainfont{Sanskrit 2003}
\begin{document}
\textrecipe
\end{document}
答案1
该软件包wasysym
与 无关\textrecipe
。该命令由 软件包在标准 LaTeX 中定义textcomp
,无需与 XeLaTeX 和 一起加载fontspec
。
问题是 Sanskrit 3000 字体没有℞
(U+211E PRESCRIPTION TAKE) 的字形,因此\textrecipe
无法产生任何内容(使用 XeLaTeX 会绘制一个小正方形)。
您可以用具有该字符的字体替换缺失的字符,例如 Asana Math:
\documentclass{article}
\usepackage{fontspec}
\usepackage{newunicodechar}
\setmainfont{Sanskrit2003.ttf}
\newfontfamily{\presc}{Asana Math}[Scale=MatchUppercase]
\newunicodechar{℞}{{\presc ℞}}
\AtBeginDocument{\renewcommand{\textrecipe}{℞}}
\begin{document}
R℞R
R\textrecipe R
\end{document}
请注意,梵语 3000 中的拉丁字形看起来与帕拉蒂诺文非常相似。
答案2
我猜你的字体没有提供这个符号(这里是字体的集合,可以)。因此,您必须重新定义此命令才能为此符号使用其他字体:
% arara: xelatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Sanskrit2003.ttf}
\renewcommand{\textrecipe}{{\fontspec{quivira.otf}\symbol{"211E}}}
\begin{document}
Choose some font you like:
{\fontspec{code2000.ttf}\symbol{"211E}}{\fontspec{freeserif.otf}\symbol{"211E}}{\fontspec{quivira.otf}\symbol{"211E}}{\fontspec{symbola.ttf}\symbol{"211E}}
Redefine the old \verb|\textrecipe|.
Use it in text as \textrecipe{} before.
\end{document}