我知道使用xpinyin
包可以解决这个问题,但我需要使用不受支持的 Lualatex。
最初我使用以下代码:
\documentclass{ctexart}
\usepackage{amsmath}
\newcommand\zhuyin[2]{$\overset{\textrm{#1}}{#2}$}
\begin{document}
\zhuyin{tiān}{天}
\end{document}
对于一般的汉字来说,它的效果很好。
但现在我有一些需要注释的稀有字符,它们位于 Unicode 扩展 B 区域,这意味着普通字体不包含它们(我尝试过 Source Han Sans 之类的字体):
答案1
您可以使用luatexja-ruby
包。
\documentclass{ctexart}
\usepackage{luatexja-ruby}
\newcommand\zhuyin[3][]{\ltjruby[{#1}]{#3}{#2}}
\newCJKfontfamily{\esimsun}{simsun.ttc}[NFSSFamily=esimsun,
AlternateFont=
{
{"20000->"2FA1D}{simsunb.ttf},
% {"30000->"323AF}{simsung.ttf}
}]
\begin{document}
\zhuyin{tiān}{天}
\zhuyin{jí}{\esimsun