程式碼
\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}