\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。 コマンドはtextcompパッケージによって標準 LaTeX で定義されており、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} 

ここに画像の説明を入力してください

関連情報