Open registor opened 2 years ago
最近在完善基于xpinyin拼音宏包的汉字读写练习宏包hanzibox,想通过对xpinyin宏包得到的拼音字符串分解后参考工作室的基于xpinyin宏包获取汉字的声母,韵母,声调分离拼音声母和韵母。同时,参考stone-zeng在xpinyin:包功能的模块化中给出的示例,用LaTeX3编写了如下代码:
\documentclass{ctexart} \usepackage{xpinyin} \ExplSyntaxOn \NewDocumentCommand{\splitautopy}{} { \group_begin: \tl_gset_eq:Nc \l_pinyin_tl { c__xpinyin_ \int_to_arabic:n { `好 } _tl } \__split_pinyin:V \l_pinyin_tl \group_end: } \NewDocumentCommand{\splitmanulpy}{} { \group_begin: \tl_gset:Nx \l_pinyin_tl { \pinyin{hao3} } \__split_pinyin:V \l_pinyin_tl \group_end: } \tl_new:N \l_pinyin_tl \tl_new:N \l_test_pinyin_tl \str_new:N \l_pinyin_str \cs_new_protected:Npn \__split_pinyin:n #1 { \str_clear:N \l_pinyin_str \tl_clear:N \l_test_pinyin_tl \tl_set:Nn \l_test_pinyin_tl {#1} \tl_map_inline:Nn \l_test_pinyin_tl { \str_put_right:Nn \l_pinyin_str {##1} } \str_use:N \l_pinyin_str } \cs_generate_variant:Nn \__split_pinyin:n { V } \cs_generate_variant:Nn \__split_pinyin:n { x } \ExplSyntaxOff % 正文区(有且只能有一个) \begin{document} \section{测试自动获取拼音} \subsection{自动拼音}% 可以得到拼音 xpinyin宏包:\xpinyin*{好}, 拼音提取:\splitautopy \subsection{拼音调整}% 无法正确等到拼音 \setpinyin{好}{hao4} xpinyin宏包:\xpinyin*{好}, 拼音提取:\splitautopy \section{测试手动获取拼音}% 无法得到正确的拼音 xpinyin宏包:\pinyin{hao3}, 拼音提取:\splitmanulpy \end{document}
该代码能够自动处理汉字得到的拼音,但对于使用类似\setpinyin{好}{hao4}设置的拼音及\pinyin{hao3}命令得到的拼音却无法正确解析(结果如图)。
\setpinyin{好}{hao4}
\pinyin{hao3}
我的想法是当使用了\setpinyin{好}{hao4}后,能够得到hào,使用了类似\pinyin{hao4}命令后能得到hào。
hào
\pinyin{hao4}
如果得到xpinyin拼音宏包得到的拼音文本
issue 标题有点费解,想表达的是「如何」?
对不起,写错了,应该是如何,已修改。谢谢提醒。
最近在完善基于xpinyin拼音宏包的汉字读写练习宏包hanzibox,想通过对xpinyin宏包得到的拼音字符串分解后参考工作室的基于xpinyin宏包获取汉字的声母,韵母,声调分离拼音声母和韵母。同时,参考stone-zeng在xpinyin:包功能的模块化中给出的示例,用LaTeX3编写了如下代码:
该代码能够自动处理汉字得到的拼音,但对于使用类似
\setpinyin{好}{hao4}
设置的拼音及\pinyin{hao3}
命令得到的拼音却无法正确解析(结果如图)。我的想法是当使用了
\setpinyin{好}{hao4}
后,能够得到hào
,使用了类似\pinyin{hao4}
命令后能得到hào
。