-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
用法:多音字姓名的排序调整 #157
Comments
解决方案一:在key域添加正确的拼音,并使用排序模板,使其按key域排序默认情况下: gb7714-2015样式不使用排序模板,只按照文献的引用顺序进行排序,所以通常不需要处理。 而gb7714-2015ay样式,默认使用gb7714-2015排序模板,即以语言、作者、年份、标题、升序排列,其它gbnytd、gbyntd、gbynta 排序模板也都使用了key域,因此只要key域内能够填入正确的拼音就能得到正确的姓的排序。 所以问题的关键是如何在key域填入拼音。 第一种方式是,手动的填写。打开bib文件,对中文的条目,添加key域,写入拼音,比如: 原来的条目为
修改为:
第二种方式是,利用bibmap工具自动填写。bibmap工具见:https://github.com/hushidong/biblatex-map 步骤为:
会得到newa.bib,其内部的每条文献都会自动的添加拼音。 比如:
因此:使用新的文件可以得到正确的结果:
|
解决方案二:使用修改后的Pinyin.pm模块替换原来的Pinyin.pm使多音的姓排序正确为避免前一种方案添加拼音到key域的操作,这里提供一种可能更为方便的方法。 由于biber在做排序时实际上是利用 perl 的 Unicode::Collation::locale 模块,其中的Pinyin.pm提供了汉字的拼音顺序,对该文件做临时的修改,可以调整多音字的顺序。 因为在参考文献排序中通常会使用字的姓名音,所以我们对这个文件做非正式的修改,并放到github上,若用户需要正确的姓的多音字排序,那么只要用该文件替换biber临时工作目录中的文件即可。注意:目前只修改了“曾”“沈”等个字,而有些没有做修改,若用户有需求后面再增加。 通常biber在第一次运行的时候,会构建一个依赖目录,这也是biber的临时工作路径,而所有的依赖文件就在其中。 Pinyin.pm原始文件: pinyin.PM 修改后的(翟读di): pinyin.PM 修改后的(翟读翟): 替换完毕后,我们即便不添加key域,同样能够排序正确:
|
您好, 我方案二挺感兴趣的,但是我没有用过 perl ,所以对方案二大部分内容看不懂,我只能看懂思路。想请您指导我几个问题:
这个temp文件夹通常在哪个位置?我应该在这个目录直接搜索
这些应该都有需求,因为文献里随时可能出现这些姓,还有汤应当为 谢谢! |
|
翟北方者读(Dí音狄),迁居南方者读(Zhái音宅)。把它改成 这个网址总结比较全,个人感觉一次尽量全部搞清楚更省力。 麻烦了,谢谢! |
为什么我搜索Pinyin.pm会出现两个目录:
哪一个是多余的?还是各有用途呢? 谢谢! |
你把两个最高层目录全部删掉,再次运行biber,会重新生成一个,就用那个里面的。 |
好的,谢谢! |
再问一个技术问题,为什么别人在github上回复我,我无法在我邮箱中看到对方的邮箱地址。而您回复我,我可以看到您的邮箱地址。是哪里可以设置吗? 谢谢! |
有没有可能,那不是邮箱地址,而是类似昵称的东西,只是昵称刚好是邮箱 |
这个没有研究,我猜是账户设置时可能公开了? |
@sikouhjw @hushidong |
他的昵称是hushidong,但他还能显示邮箱。 |
hzzmail@163.com是我的昵称,hushidong是账户名。 |
难道他没有昵称? |
确实可以没有昵称,原来我也没有昵称。。。 |
请教师兄一个问题: 对于一个完全没有学过 perl 语言的新手,应该学习 perl5 还是 perl6(raku) 。理由是什么呢? 谢谢! |
我个人认为,无所谓哪个,都是工具而已,需要用哪个的时候就学,两者估计差别不大。 另外,pinyin.pm已经更新,见前面的连接。 |
你好,可以帮忙查看下 |
是zhang3 |
所以,其实 |
在 macOS 上,我通过替换 不过我还有两个小问题:
@book{shenyao1936,
author = {沈垚},
date = {1936},
publisher = {商務印書館},
location = {上海},
title = {落帆樓文稿},
key = {shen3yao2}
} 在我的 |
如果要用key,那么所有文献都要用key才能正确排序。 缓存一遍不太会换的。若被清理了只能重新覆盖pinyin.PM文件了。 |
经过验证,我发现 Biber 缓存会在电脑关机后被清理。为了使用胡老师修改后的 执行的命令如下: # Get the path of the cache folder
cache_path=$(biber --cache)
# Copy updated `Pinyin.pm` to the cache folder
cp -f ~/Documents/Pinyin.pm "${cache_path}/inc/lib/Unicode/Collate/CJK/Pinyin.pm" 其他操作系统可参考这个命令进行修改,或者用其他自动化工具实现类似的操作。关于 Biber cache 的问题,可以参考 这个回答。 |
不错呀,自己动手丰衣足食。 |
最近遇到一个「阚」(kàn)姓在参考文献列表排序时不正确,我看了一下它(U+961A)在 Pinyin.pm 中的位置是正确的:
但为什么排序是下图这样的呢: 以及这里 |
似乎是数据有误。可以使用 https://github.com/unicode-org/cldr/blob/main/common/collation/zh.xml 的数据修正。 另外 https://github.com/unicode-org/cldr/blob/main/common/transforms/Han-Latin-Names.xml 也记录了一些姓名的多音字,但还不全,其中就没有包括“阚”。 |
@zepinglee 谢谢,感觉确实是数据有误,不过「阚」不是一个多音字啊。 |
collation/zh.xml 记录的拼音是 hǎn。 |
感谢!我修改了一下 Pinyin.pm,调整了「阚」、「李」、「厉」的顺序,现在这几个姓氏可以根据拼音正确排序了。 另外推荐一下这两个网站,可以根据字符或 Unicode 编码查询对应的值: |
感谢 |
问题:姓的多音导致排序不正确
一些姓由于有个多音(比如:曾,沈等),且常用音还不是姓名中用的音时,使用默认的中文拼音排序会导致排序错误。
比如:下面的例子:
其结果为:
可以看到,曾和沈,用ceng,chen的音做了排序,所以会在dai之前。
显然这并不是我们希望的正确的排序,所以,有必要的话,我们需要做调整。
The text was updated successfully, but these errors were encountered: