Open hushidong opened 4 years ago
说起来我一直没明白,对于带连字符的格式,姓>一个字,名>两个字要怎么办,比如:
ZHUGE Liang
or ZHU-GE Liang
YI Yang-qianxi
or YI Yang-qian-xi
哈哈,这真是一个难点。 两个字的姓,可能需要加个选项输入。
连字符,是不是有什么规范?我也不太了解。前面给的例子,是看到一些国内期刊用的。
在文献里头可能用的是花括号保护法吧。
写文章的时候老要用到作者的拼音
以一页中使用到的次数记,有多频繁?
能用红包解决就不用敲了噻,ctrl c,ctrl v 多快捷啊。
哈哈,这真是一个难点。 两个字的姓,可能需要加个选项输入。
连字符,是不是有什么规范?我也不太了解。前面给的例子,是看到一些国内期刊用的。
相关的标准有 GB/T 16159-2012《汉语拼音正词法基本规则》和 GB/T 28039-2011《中国人名汉语拼音字母拼写规则》
个人感觉这种 text manipulating 的东西最好还是用别的语言做吧
这就是第一个需求,就是用一个命令仅输出作者的拼音,且元音无音调,拼音不是上标的。
初步实现,没有考虑多音字、没有考虑执行效率。
\documentclass{article}
\usepackage{ctex}
\usepackage{xpinyin}
\setmainfont{CMU Serif}
\ExplSyntaxOn
\NewDocumentCommand{ \pinyinWithoutTone } {m}
{
\mode_leave_vertical:
\tl_map_inline:nn {#1}
{
\__xpinyin_ignore_tone:c
{ c__xpinyin_ \__xpinyin_char_to_unicode:n {##1} _tl }
}
}
\cs_new_protected_nopar:Nn \__xpinyin_ignore_tone:N
{
\tl_set_eq:NN \l_tmpa_tl #1
\regex_replace_once:nnN { [āáǎà] } {a} \l_tmpa_tl
\regex_replace_once:nnN { [ōóǒò] } {o} \l_tmpa_tl
\regex_replace_once:nnN { [ēéěè] } {e} \l_tmpa_tl
\regex_replace_once:nnN { [ūúǔù] } {u} \l_tmpa_tl
\regex_replace_once:nnN { [ḿ] } {m} \l_tmpa_tl
\regex_replace_once:nnN { [ńňǹ] } {u} \l_tmpa_tl
\regex_replace_once:nnN { [īíǐì] } {i} \l_tmpa_tl
\regex_replace_once:nnN { [üǖǘǚǜ] } {u} \l_tmpa_tl
\l_tmpa_tl
}
\cs_generate_variant:Nn \__xpinyin_ignore_tone:N {c}
\ExplSyntaxOff
\begin{document}
\pinyinWithoutTone{中文测试} % 输出 zhongwenceshi
\pinyinWithoutTone{初锄楚畜} % 输出 chuchuchuchu
\end{document}
写文章的时候老要用到作者的拼音,所以想用xpinyin来直接输出
这和 cite 的差别在哪里?
ü 要怎么办?
哈哈,这真是一个难点。 两个字的姓,可能需要加个选项输入。 连字符,是不是有什么规范?我也不太了解。前面给的例子,是看到一些国内期刊用的。
相关的标准有 GB/T 16159-2012《汉语拼音正词法基本规则》和 GB/T 28039-2011《中国人名汉语拼音字母拼写规则》
收到,仔细看看。
ü 要怎么办?
规范里有个例子,是用yu代替,但又是大写的情况,小写没有说明。
这就是第一个需求,就是用一个命令仅输出作者的拼音,且元音无音调,拼音不是上标的。
初步实现,没有考虑多音字、没有考虑执行效率。
\documentclass{article} \usepackage{ctex} \usepackage{xpinyin} \setmainfont{CMU Serif} \ExplSyntaxOn \NewDocumentCommand{ \pinyinWithoutTone } {m} { \mode_leave_vertical: \tl_map_inline:nn {#1} { \__xpinyin_ignore_tone:c { c__xpinyin_ \__xpinyin_char_to_unicode:n {##1} _tl } } } \cs_new_protected_nopar:Nn \__xpinyin_ignore_tone:N { \tl_set_eq:NN \l_tmpa_tl #1 \regex_replace_once:nnN { [āáǎà] } {a} \l_tmpa_tl \regex_replace_once:nnN { [ōóǒò] } {o} \l_tmpa_tl \regex_replace_once:nnN { [ēéěè] } {e} \l_tmpa_tl \regex_replace_once:nnN { [ūúǔù] } {u} \l_tmpa_tl \regex_replace_once:nnN { [ḿ] } {m} \l_tmpa_tl \regex_replace_once:nnN { [ńňǹ] } {u} \l_tmpa_tl \regex_replace_once:nnN { [īíǐì] } {i} \l_tmpa_tl \regex_replace_once:nnN { [üǖǘǚǜ] } {u} \l_tmpa_tl \l_tmpa_tl } \cs_generate_variant:Nn \__xpinyin_ignore_tone:N {c} \ExplSyntaxOff \begin{document} \pinyinWithoutTone{中文测试} % 输出 zhongwenceshi \pinyinWithoutTone{初锄楚畜} % 输出 chuchuchuchu \end{document}
感谢,快了,再进一步,把gbt 28039规范的格式实现就好了。
偷懒劲又犯了,写文章的时候老要用到作者的拼音,所以想用xpinyin来直接输出,就不用我自己去一个个字母敲了,目前宏包内的命令是同时输出汉字和拼音,且拼音中的元音是有调的,我想只要拼音,且原音换成没有调的。
这就是第一个需求,就是用一个命令仅输出作者的拼音,且元音无音调,拼音不是上标的。
接着是第二个需求,希望能对输出的拼音格式化,包括几种形式,我可以用选项切换。 比如李志超这样一个作者, 输出形式为 LI Zhichao LI Zhi-chao Li Zhichao等
就这么两个需求,麻烦各位大大帮忙实现一下。我自己就不去研究实现啦,感谢! @qinglee @zepinglee @muzimuzhi @leo-liu @stone-zeng