zotero-format-metadata
zotero-format-metadata copied to clipboard
[Feature Request] 希望增加一个删除人名中间横线功能,以及人名缩写后面的点的功能
Describe the feature
人名中间的横线
这种人名缩写后的点
Additional context
No response
事实上加-
的应该才是正确的,这样写的可以让CSL正确识别到名的各个部分。
缩写后加.
应该是规范的吧,想了解以下为什么需要考虑去掉这个点?(可以考虑如果在线数据库有全称的话其实可以考虑用数据库的全称替换它)
这个点(和横线)去掉后很难通过脚本再加回去,因为很难确定添加的位置。
之前用的是endnote,横线的位置是空格,可以正常识别,反到是横线识别不了。有的从谷歌学术上添加的,有时候没有全名。有一个这个点的话有些引用格式会有两个点
名称缩写这个出现两个点,感觉大概率是 csl 的问题,因为我这边试了几个主流的 csl 都是正常的,我回头去那边问问。 这个功能可以加,但是我目前没有考虑把它放在格式化流程里,大约是做成小工具类似的菜单。
顺便请求一下会出现两个点的格式文件或名称,我请教一下经常搞 csl 的同学。
需要注意,有的西文名字是带 hyphen 的,比如“Jean-Luc”。有些外籍华人也习惯在名之间使用 hyphen 连接,比如“Fei-Fei Li”。这些情一般遵重作者原名,不宜修改。
中国人的拼音姓名,按照 GB/T 7714 要求缩写取每个汉字的首字母,比如 Li Jiangning -> LI J N
。其实需要 hyphen 或者空格隔开才能使 CSL 正确处理。
缩写是否加点对 CSL 的输出没有影响。应该不存在两个点的情况。
需要注意,有的西文名字是带 hyphen 的,比如“Jean-Luc”。有些外籍华人也习惯在名之间使用 hyphen 连接,比如“Fei-Fei Li”。这些情一般遵重作者原名,不宜修改。
中国人的拼音姓名,按照 GB/T 7714 要求缩写取每个汉字的首字母,比如
Li Jiangning -> LI J N
。其实需要 hyphen 或者空格隔开才能使 CSL 正确处理。缩写是否加点对 CSL 的输出没有影响。应该不存在两个点的情况。
是的,就是考虑到这个问题,所以一直没做这个替换。
所以其实这个是没必要搞的,搞了反而可能会让用户的字段不规范。
我又查了一下相关的要求,感觉比较复杂。可以考虑提供“删除连字符”的功能,此外还可以考虑“Jiangning”和“J. N.”两种格式之间的转换。
考虑汉语拼音书写的中国人名,按照 GB/T 7714—2015 和 GB/T 28039—2011,最正式的写法是“Li Jiangning”,不含“-”。所以对于像 Chicago 这样使用全名的样式,填写 Jiangning
更正式(输出:“Li, Jiangning”)。如果要实现“删除连字符”的功能,考虑到部分西方人名本身就有连字符(比如“Pierre-Simon Laplace”),建议将处理的人名限定“-”分隔的两个词要符合汉语拼音。当然这种方法会误伤少分外籍华人的姓名(例如“Fei-fei Li”)。
其次关于缩写格式,以前在 https://github.com/l0o0/jasminum/issues/140 也讨论过。CSL 不能区分姓名是否用拼音书写的,也不能将“Jiangning”缩写为“J N”。国标要求的缩写格式是“Li J N”,但填写 Jiangning
只能缩写为“J”,而 Jiang Ning
、Jiang-Ning
或J. N.
才能正确缩写为“J N”。实际中,大部分期刊/学校对这一点不会仔细检查,但有少部分期刊编辑会严格要求。可以考虑在 creatorsExt
保存拆分的拼音全名“Jiang Ning”,根据这里的信息进行 Jiangning <=> J. N.
转换。
GB/T 7714—2015:
GB/T 28039—2011 《中国人名汉语拼音字母拼写规则》
也即,保存为去掉 -
的名字,这样使用全名的样式可以正确输出。
国标并不强制要求名缩写: “名可缩写”,也就是国标可以显示全名解决缩写问题。
=> 去掉 -
要更好一些?
对于 Li Jiang-Ning
,执行动作“删除人名连字符”,操作为:
- 将
Jiang-Ning
存入 extra - 替换
-N
为n
~~难以区分给定的名称是中文拼音还是外文名,我没有发现比较完善的库可以处理这个,也没想到比较好的正则去匹配这个;~~ 一些拼音分词库似乎可以
或许也可以根据姓,如果是中文拼音(与内置姓的拼音匹配),就把名的 -
去掉?
去掉横线是为了解决这个问题
感觉这是 citperoc-js 的 bug,Xu, Li-jun
应该缩写为 Xu, L J
的。
bibliography中横线无法去掉的原因是样式未正确编辑,只需在zotero设置中编辑样式文件:
- 对于名要显示为全名
Xu, Li Jun
而不是Xu, Li-Jun
:在此部分第3行内部添加initialize-with=""
即可。<macro name="author"> <names variable="author"> <name name-as-sort-order="all" and="text" initialize-with="" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/>
- 对于名要显示首字母
Xu, LJ
而不是Xu, L-J
:在此行内部(一般位于文件第2行)添加initialize-with-hyphen="false"
即可。<style xmlns="http://purl.org/net/xbiblio/csl" initialize-with-hyphen="false" page-range-format="minimal" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-US">
bibliography中横线无法去掉的原因是样式未正确编辑,只需在zotero设置中编辑样式文件:
上面提到的 Xu Li-jun
这个案例跟 initialize-with
和 initialize-with-hyphen
没有关系,而是 citeproc-js
对小写的 -jun
部分有特殊处理。
像 gb-t-7714-2015-numeric-bilingual-no-uppercase-no-url-doi.csl
已经在 <style>
设置了 initialize-with=" " initialize-with-hyphen="false"
,这个是全局有效的。
https://github.com/zotero-chinese/styles/blob/875ca7b482b78267d5b9c913cfe91521ec94ab01/src/gb-t-7714-2015-numeric-bilingual-no-uppercase-no-url-doi/gb-t-7714-2015-numeric-bilingual-no-uppercase-no-url-doi.csl#L2
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="in-text" name-as-sort-order="all" sort-separator=" " demote-non-dropping-particle="never" initialize-with=" " initialize-with-hyphen="false" page-range-format="expanded" default-locale="zh-CN">