\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 中的拉丁字形似乎與 Palatino 非常相似。

在此輸入影像描述

答案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} 

在此輸入影像描述

相關內容