\textrecipe 不适用于 xelatex

\textrecipe 不适用于 xelatex

代码

\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} 

在此处输入图片描述

相关内容