diff options
author | Norbert Preining <norbert@preining.info> | 2021-08-21 03:03:19 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-08-21 03:03:19 +0000 |
commit | dd302372d8cdbe867c55bbea51f1f2a4842c3353 (patch) | |
tree | 1d2e75f175f970964291421b3d503e85893da5dd /macros/latex/contrib/biblatex-contrib | |
parent | da0e202bdd0dc2f52f28ae0d96dc96969826890b (diff) |
CTAN sync 202108210303
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib')
20 files changed, 1210 insertions, 481 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md index 94f53b41ca..8df188541e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md @@ -1,4 +1,4 @@ -<b>Date of last change: 2021-05-06 to version v1.0y</b> +<b>Date of last change: 2021-08-19 to version v1.0z</b> # biblatex-gb7714-2015: a biblatex style package @@ -38,9 +38,13 @@ biblatex-gb7714-2015 宏包是中文参考文献著录/标注标准 `GB/T 7714-2 ## Need to do: + * 注意:ms.bbx样式引入内容时需要特别注意空格的引入 + * 注意:mx.cbx样式没有更新一些新的设置(比如2篇文献就压缩等),若有需要可以参考15.cbx和15ay.cbx修改。 + * 应该说经过这些年的使用,很多corner case已经处理过了,但还是可能会存在一些,特别是ms和mx两个样式使用的少。 * special characters in all fields? * entry without author: the delimiter between title and year? * TEST FOR texlive 2015,2016,2017 + ## Applications @@ -1162,122 +1166,125 @@ biblatex中处理顺序数字编码压缩的代码默认从3个连续编码开 ### 6. 测试文件说明 + egfigure - - ![egciteay.tex](egfigure\egciteay.tex) 测试gb7714-2015ay的标注样式,是否满足GB要求 - - ![egciteaytab.tex](egfigure\egciteaytab.tex) 测试gb7714-2015ay的标注样式,绘制成表用于biblatex-gb7714-2015.pdf - - ![egciteaytp.tex](egfigure\egciteaytp.tex) 测试gb7714-2015ay使用natbib的常用标注命令 - - ![egcitenum.tex](egfigure\egcitenum.tex) 测试gb7714-2015的标注样式,是否满足GB要求 - - ![egcitenumtp.tex](egfigure\egcitenumtp.tex) 测试gb7714-2015使用natbib的常用标注命令 - - ![egcitetab.tex](egfigure\egcitetab.tex) 测试gb7714-2015的标注样式,绘制成表用于biblatex-gb7714-2015.pdf - - ![egcitesay.tex](egfigure\egcitesay.tex) 测试gb7714-2015ay使用复数形式的命令 - - ![egcitesnum.tex](egfigure\egcitesnum.tex) 测试gb7714-2015使用复数形式的命令 - - ![egcontentfmt.tex](egfigure\egcontentfmt.tex) 测试gb7714-2015样式选项gbnamefmt=givenahead,gbbiblabel=dot,gbtitlelink=true - - ![egcontentfmtb.tex](egfigure\egcontentfmtb.tex) 测试gb7714-2015ms样式选项gbnamefmt=lowercase,gbstyle=false,sorting=nyt - - ![egcontentfmtc.tex](egfigure\egcontentfmtc.tex) 测试gb7714-2015ay样式选项maxcitenames=2,mincitenames=1,sorting=gbynta(UCAS-资环类) - - ![egdoublelan.tex](egfigure\egdoublelan.tex) 测试gb7714-2015样式实现的双语对照文献表,关联条目方法 - - ![egdoublelanb.tex](egfigure\egdoublelanb.tex) 测试gb7714-2015样式实现的双语对照文献表,关联条目方法,(gbnamefmt=pinyin 国内某期刊) - - ![eggbfootstyle.tex](egfigure\eggbfootstyle.tex) 测试gb7714-2015样式实现国标要求的脚注文献表 - - ![egfootstyle.tex](egfigure\egfootstyle.tex) 测试gb7714-2015样式一般的脚注文献表 - - ![egmsinabiblio.tex](egfigure\egmsinabiblio.tex) 测试gb7714-2015ms样式在一篇文档中使用两种格式设置,中文:GB,英文:biblatex标准样式 - - ![egmxindfrefsec.tex](egfigure\egmxindfrefsec.tex) 测试gb7714-2015mx样式在不同的参考文献分节中使用顺序编码和作者年制两种不同样式 - - ![egmultilan.tex](egfigure\egmultilan.tex) 测试gb7714-2015样式实现的多语言混合的文献表 - - ![egmwe.tex](egfigure\egmwe.tex) 测试gb7714-2015样式最小示例,用于biblatex-gb7714-2015.PDF - - ![egparfmt.tex](egfigure\egparfmt.tex) 测试gb7714-2015样式文献表段落格式设置,包括缩进,颜色,字体,间距等 - - ![tgbbiblio.tex](egfigure\tgbbiblio.tex) 实现GB/T 7714-2015 标准的附录的文献表示例(gb7714-2015样式) - - ![tgbbiblioms.tex](egfigure\tgbbiblioms.tex) 实现GB/T 7714-2015 标准的附录的文献表示例(gb7714-2015ms样式) - - ![tgbcitation.tex](egfigure\tgbcitation.tex) 实现GB/T 7714-2015 标准2-10节给出的顺序编码制示例(gb7714-2015样式) - - ![tgbcitationms.tex](egfigure\tgbcitationms.tex) 实现GB/T 7714-2015 标准2-10节给出的顺序编码制示例(gb7714-2015ms样式) - - ![tngbcitationay.tex](egfigure\tngbcitationay.tex) 实现GB/T 7714-2015 标准2-10节给出的著者年份制示例(gb7714-2015ay样式) - - ![tngbcitationaynew.tex](egfigure\tngbcitationaynew.tex) 实现GB/T 7714-2015 标准2-10节给出的著者年份制示例(gb7714-2015ay样式,nohashothers=true) + - ![egciteay.tex](egfigure/egciteay.tex) 测试gb7714-2015ay的标注样式,是否满足GB要求 + - ![egciteaytab.tex](egfigure/egciteaytab.tex) 测试gb7714-2015ay的标注样式,绘制成表用于biblatex-gb7714-2015.pdf + - ![egciteaytp.tex](egfigure/egciteaytp.tex) 测试gb7714-2015ay使用natbib的常用标注命令 + - ![egcitenum.tex](egfigure/egcitenum.tex) 测试gb7714-2015的标注样式,是否满足GB要求 + - ![egcitenumtp.tex](egfigure/egcitenumtp.tex) 测试gb7714-2015使用natbib的常用标注命令 + - ![egcitetab.tex](egfigure/egcitetab.tex) 测试gb7714-2015的标注样式,绘制成表用于biblatex-gb7714-2015.pdf + - ![egcitesay.tex](egfigure/egcitesay.tex) 测试gb7714-2015ay使用复数形式的命令 + - ![egcitesnum.tex](egfigure/egcitesnum.tex) 测试gb7714-2015使用复数形式的命令 + - ![egcontentfmt.tex](egfigure/egcontentfmt.tex) 测试gb7714-2015样式选项gbnamefmt=givenahead,gbbiblabel=dot,gbtitlelink=true + - ![egcontentfmtb.tex](egfigure/egcontentfmtb.tex) 测试gb7714-2015ms样式选项gbnamefmt=lowercase,gbstyle=false,sorting=nyt + - ![egcontentfmtc.tex](egfigure/egcontentfmtc.tex) 测试gb7714-2015ay样式选项maxcitenames=2,mincitenames=1,sorting=gbynta(UCAS-资环类) + - ![egdoublelan.tex](egfigure/egdoublelan.tex) 测试gb7714-2015样式实现的双语对照文献表,关联条目方法 + - ![egdoublelanb.tex](egfigure/egdoublelanb.tex) 测试gb7714-2015样式实现的双语对照文献表,关联条目方法,(gbnamefmt=pinyin 国内某期刊) + - ![eggbfootstyle.tex](egfigure/eggbfootstyle.tex) 测试gb7714-2015样式实现国标要求的脚注文献表 + - ![egfootstyle.tex](egfigure/egfootstyle.tex) 测试gb7714-2015样式一般的脚注文献表 + - ![egmsinabiblio.tex](egfigure/egmsinabiblio.tex) 测试gb7714-2015ms样式在一篇文档中使用两种格式设置,中文:GB,英文:biblatex标准样式 + - ![egmxindfrefsec.tex](egfigure/egmxindfrefsec.tex) 测试gb7714-2015mx样式在不同的参考文献分节中使用顺序编码和作者年制两种不同样式 + - ![egmultilan.tex](egfigure/egmultilan.tex) 测试gb7714-2015样式实现的多语言混合的文献表 + - ![egmwe.tex](egfigure/egmwe.tex) 测试gb7714-2015样式最小示例,用于biblatex-gb7714-2015.PDF + - ![egparfmt.tex](egfigure/egparfmt.tex) 测试gb7714-2015样式文献表段落格式设置,包括缩进,颜色,字体,间距等 + - ![tgbbiblio.tex](egfigure/tgbbiblio.tex) 实现GB/T 7714-2015 标准的附录的文献表示例(gb7714-2015样式) + - ![tgbbiblioms.tex](egfigure/tgbbiblioms.tex) 实现GB/T 7714-2015 标准的附录的文献表示例(gb7714-2015ms样式) + - ![tgbcitation.tex](egfigure/tgbcitation.tex) 实现GB/T 7714-2015 标准2-10节给出的顺序编码制示例(gb7714-2015样式) + - ![tgbcitationms.tex](egfigure/tgbcitationms.tex) 实现GB/T 7714-2015 标准2-10节给出的顺序编码制示例(gb7714-2015ms样式) + - ![tngbcitationay.tex](egfigure/tngbcitationay.tex) 实现GB/T 7714-2015 标准2-10节给出的著者年份制示例(gb7714-2015ay样式) + - ![tngbcitationaynew.tex](egfigure/tngbcitationaynew.tex) 实现GB/T 7714-2015 标准2-10节给出的著者年份制示例(gb7714-2015ay样式,nohashothers=true) + egphoto - - ![opt-citexref-false.tex](egphoto\opt-citexref-false.tex) 测试citexref=false选项 - - ![opt-citexref-true.tex](egphoto\opt-citexref-true.tex) 测试citexref=true选项 - - ![opt-gbalign-center.tex](egphoto\opt-gbalign-center.tex) 测试gbalign=center选项 - - ![opt-gbalign-gb.tex](egphoto\opt-gbalign-gb.tex) 测试gbalign=gb7714-2015选项 - - ![opt-gbalign-left.tex](egphoto\opt-gbalign-left.tex) 测试gbalign=left选项 - - ![opt-gbalign-right.tex](egphoto\opt-gbalign-right.tex) 测试gbalign=right选项 - - ![opt-gbannote-false.tex](egphoto\opt-gbannote-false.tex) 测试gbannote=false选项 - - ![opt-gbannote-true.tex](egphoto\opt-gbannote-true.tex) 测试gbannote=true选项 - - ![opt-gbannote-true.tex](egphoto\opt-gbannote-true.tex) 测试gbannote=true选项 - - ![opt-gbbiblabela.tex](egphoto\opt-gbbiblabela.tex) 测试gbbiblabel=box选项 - - ![opt-gbbiblabelb.tex](egphoto\opt-gbbiblabelb.tex) 测试gbbiblabel=bracket选项 - - ![opt-gbbiblabelc.tex](egphoto\opt-gbbiblabelc.tex) 测试gbbiblabel=parens选项 - - ![opt-gbbiblabeld.tex](egphoto\opt-gbbiblabeld.tex) 测试gbbiblabel=dot选项 - - ![opt-gbbiblabele.tex](egphoto\opt-gbbiblabele.tex) 测试gbbiblabel=plain选项 - - ![opt-gbbiblabelf.tex](egphoto\opt-gbbiblabelf.tex) 测试gbbiblabel=circle选项 - - ![opt-gbnoauthor-false.tex](egphoto\opt-gbnoauthor-false.tex) 测试gbnoauthor=false选项 - - ![opt-gbnoauthor-true.tex](egphoto\opt-gbnoauthor-true.tex) 测试gbnoauthor=true选项 - - ![opt-gbpub-false.tex](egphoto\opt-gbpub-false.tex) 测试gbpub=false选项 - - ![opt-gbpub-true.tex](egphoto\opt-gbpub-true.tex) 测试gbpub=true选项 - - ![opt-gbpunctin-false.tex](egphoto\opt-gbpunctin-false.tex) 测试gbpunctin=false选项 - - ![opt-gbpunctin-true.tex](egphoto\opt-gbpunctin-true.tex) 测试gbpunctin=true选项 - - ![opt-gbtitlelink-false.tex](egphoto\opt-gbtitlelink-false.tex) 测试gbtitlelink=false选项 - - ![opt-gbtitlelink-true.tex](egphoto\opt-gbtitlelink-true.tex) 测试gbtitlelink=true选项 - - ![opt-gbtype-false.tex](egphoto\opt-gbtype-false.tex) 测试gbtype=false选项 - - ![opt-gbtype-true.tex](egphoto\opt-gbtype-true.tex) 测试gbtype=true选项 - - ![opt-mergedate-a.tex](egphoto\opt-mergedate-a.tex) 测试mergedate默认选项(gb7714-2015ay) - - ![opt-mergedate-b.tex](egphoto\opt-mergedate-b.tex) 测试mergedate=true选项(gb7714-2015ay) - - ![opt-mergedate-c.tex](egphoto\opt-mergedate-c.tex) 测试mergedate=false选项(gb7714-2015ay) - - ![opt-mergedate-d.tex](egphoto\opt-mergedate-d.tex) 测试mergedate=none选项(gb7714-2015ay) + - ![opt-citexref-false.tex](egphoto/opt-citexref-false.tex) 测试citexref=false选项 + - ![opt-citexref-true.tex](egphoto/opt-citexref-true.tex) 测试citexref=true选项 + - ![opt-gbalign-center.tex](egphoto/opt-gbalign-center.tex) 测试gbalign=center选项 + - ![opt-gbalign-gb.tex](egphoto/opt-gbalign-gb.tex) 测试gbalign=gb7714-2015选项 + - ![opt-gbalign-left.tex](egphoto/opt-gbalign-left.tex) 测试gbalign=left选项 + - ![opt-gbalign-right.tex](egphoto/opt-gbalign-right.tex) 测试gbalign=right选项 + - ![opt-gbannote-false.tex](egphoto/opt-gbannote-false.tex) 测试gbannote=false选项 + - ![opt-gbannote-true.tex](egphoto/opt-gbannote-true.tex) 测试gbannote=true选项 + - ![opt-gbannote-true.tex](egphoto/opt-gbannote-true.tex) 测试gbannote=true选项 + - ![opt-gbbiblabela.tex](egphoto/opt-gbbiblabela.tex) 测试gbbiblabel=box选项 + - ![opt-gbbiblabelb.tex](egphoto/opt-gbbiblabelb.tex) 测试gbbiblabel=bracket选项 + - ![opt-gbbiblabelc.tex](egphoto/opt-gbbiblabelc.tex) 测试gbbiblabel=parens选项 + - ![opt-gbbiblabeld.tex](egphoto/opt-gbbiblabeld.tex) 测试gbbiblabel=dot选项 + - ![opt-gbbiblabele.tex](egphoto/opt-gbbiblabele.tex) 测试gbbiblabel=plain选项 + - ![opt-gbbiblabelf.tex](egphoto/opt-gbbiblabelf.tex) 测试gbbiblabel=circle选项 + - ![opt-gbnoauthor-false.tex](egphoto/opt-gbnoauthor-false.tex) 测试gbnoauthor=false选项 + - ![opt-gbnoauthor-true.tex](egphoto/opt-gbnoauthor-true.tex) 测试gbnoauthor=true选项 + - ![opt-gbpub-false.tex](egphoto/opt-gbpub-false.tex) 测试gbpub=false选项 + - ![opt-gbpub-true.tex](egphoto/opt-gbpub-true.tex) 测试gbpub=true选项 + - ![opt-gbpunctin-false.tex](egphoto/opt-gbpunctin-false.tex) 测试gbpunctin=false选项 + - ![opt-gbpunctin-true.tex](egphoto/opt-gbpunctin-true.tex) 测试gbpunctin=true选项 + - ![opt-gbtitlelink-false.tex](egphoto/opt-gbtitlelink-false.tex) 测试gbtitlelink=false选项 + - ![opt-gbtitlelink-true.tex](egphoto/opt-gbtitlelink-true.tex) 测试gbtitlelink=true选项 + - ![opt-gbtype-false.tex](egphoto/opt-gbtype-false.tex) 测试gbtype=false选项 + - ![opt-gbtype-true.tex](egphoto/opt-gbtype-true.tex) 测试gbtype=true选项 + - ![opt-mergedate-a.tex](egphoto/opt-mergedate-a.tex) 测试mergedate默认选项(gb7714-2015ay) + - ![opt-mergedate-b.tex](egphoto/opt-mergedate-b.tex) 测试mergedate=true选项(gb7714-2015ay) + - ![opt-mergedate-c.tex](egphoto/opt-mergedate-c.tex) 测试mergedate=false选项(gb7714-2015ay) + - ![opt-mergedate-d.tex](egphoto/opt-mergedate-d.tex) 测试mergedate=none选项(gb7714-2015ay) + egthesis - - ![thesis-bupt-numeric.tex](egthesis\thesis-bupt-numeric.tex) - - ![thesis-cau-numeric.tex](egthesis\thesis-cau-numeric.tex) - - ![thesis-ecnu-numeric.tex](egthesis\thesis-ecnu-numeric.tex) - - ![thesis-fdu-numeric.tex](egthesis\thesis-fdu-numeric.tex) - - ![thesis-nwafu-ay.tex](egthesis\thesis-nwafu-ay.tex) 测试西北农林科技大学(可以参考:特殊的ay样式调整) - - ![thesis-seu-numeric.tex](egthesis\thesis-seu-numeric.tex) 测试东南大学(可以参考:gb7714-2015样式调整) - - ![thesis-sjtu-numeric.tex](egthesis\thesis-sjtu-numeric.tex) - - ![thesis-thu-author-year.tex](egthesis\thesis-thu-author-year.tex) - - ![thesis-thu-numeric.tex](egthesis\thesis-thu-numeric.tex) - - ![thesis-tongji.tex](egthesis\thesis-tongji.tex) - - ![thesis-ucas-m.tex](egthesis\thesis-ucas-m.tex) 测试中科院大学(可以参考:ay样式调整) - - ![thesis-ucas-x.tex](egthesis\thesis-ucas-x.tex) - - ![thesis-uibe-numeric.tex](egthesis\thesis-uibe-numeric.tex) 测试对外经贸大学(可以参考:中文标点、卷期格式;中英文不同) - - ![thesis-ustc-all.tex](egthesis\thesis-ustc-all.tex) 测试中科大(可以参考:一文中使用两种样式) - - ![thesis-ustc-authoryear.tex](egthesis\thesis-ustc-authoryear.tex) - - ![thesis-ustc-numeric.tex](egthesis\thesis-ustc-numeric.tex) - - ![thesis-xjtu-numeric.tex](egthesis\thesis-xjtu-numeric.tex) - - ![thesis-zju-numeric.tex](egthesis\thesis-zju-numeric.tex) - - ![thesistest.tex](egthesis\thesistest.tex) + - ![thesis-bupt-numeric.tex](egthesis/thesis-bupt-numeric.tex) + - ![thesis-cau-numeric.tex](egthesis/thesis-cau-numeric.tex) + - ![thesis-ecnu-numeric.tex](egthesis/thesis-ecnu-numeric.tex) + - ![thesis-fdu-numeric.tex](egthesis/thesis-fdu-numeric.tex) + - ![thesis-nwafu-ay.tex](egthesis/thesis-nwafu-ay.tex) 测试西北农林科技大学(可以参考:特殊的ay样式调整) + - ![thesis-seu-numeric.tex](egthesis/thesis-seu-numeric.tex) 测试东南大学(可以参考:gb7714-2015样式调整) + - ![thesis-sjtu-numeric.tex](egthesis/thesis-sjtu-numeric.tex) + - ![thesis-thu-author-year.tex](egthesis/thesis-thu-author-year.tex) + - ![thesis-thu-numeric.tex](egthesis/thesis-thu-numeric.tex) + - ![thesis-tongji.tex](egthesis/thesis-tongji.tex) + - ![thesis-ucas-m.tex](egthesis/thesis-ucas-m.tex) 测试中科院大学(可以参考:ay样式调整) + - ![thesis-ucas-x.tex](egthesis/thesis-ucas-x.tex) + - ![thesis-uibe-numeric.tex](egthesis/thesis-uibe-numeric.tex) 测试对外经贸大学(可以参考:中文标点、卷期格式;中英文不同) + - ![thesis-ustc-all.tex](egthesis/thesis-ustc-all.tex) 测试中科大(可以参考:一文中使用两种样式) + - ![thesis-ustc-authoryear.tex](egthesis/thesis-ustc-authoryear.tex) + - ![thesis-ustc-numeric.tex](egthesis/thesis-ustc-numeric.tex) + - ![thesis-xjtu-numeric.tex](egthesis/thesis-xjtu-numeric.tex) + - ![thesis-zju-numeric.tex](egthesis/thesis-zju-numeric.tex) + - ![thesistest.tex](egthesis/thesistest.tex) + example - - ![cls-beamer.tex](example\cls-beamer.tex) 测试beamer中的使用(gb7714-2015样式) - - ![cls-beameray.tex](example\cls-beameray.tex) 测试beamer中的使用(gb7714-2015ay样式) - - ![codeopt-gbcodegbk.tex](example\codeopt-gbcodegbk.tex) 测试gb7714-2015、ay样式,对于GBK编码文档的兼容性 - - ![eg-opt-gbstyle.tex](example\eg-opt-gbstyle.tex) 测试gb7714-2015ms样式一篇文档中中英文两种格式设置,多语言对照,多语言混合文献表 - - ![testallformat.tex](example\testallformat.tex) 测试全面的类型、格式 - - ![egtest.tex](example\egtest.tex) 测试示例 - - ![opt-autolang-multilan.tex](example\opt-autolang-multilan.tex) 测试多语言混合的文献表,各语言不同的本地化字符串 - - ![opt-eg-multilan.tex](example\opt-eg-multilan.tex) 测试多语言混合的文献表 - - ![opt-eg-authoryear.tex](example\opt-eg-authoryear.tex) 测试ay样式 - - ![opt-eg-dblang.tex](example\opt-eg-dblang.tex) 测试双语对照文献-两种方法(条目集、关联条目) - - ![opt-gbalign-center.tex](example\opt-gbalign-center.tex) 测试gbalign选项 - - ![opt-gbalign-gb.tex](example\opt-gbalign-gb.tex) 测试gbalign选项 - - ![opt-gbalign-left.tex](example\opt-gbalign-left.tex) 测试gbalign选项 - - ![opt-gbannote.tex](example\opt-gbannote.tex) 测试gbannote选项,在文献表中加上附加信息用以说明三大索引情况 - - ![opt-gbbiblabel.tex](example\opt-gbbiblabel.tex) 测试gbbiblabel选项 - - ![opt-gbctexset.tex](example\opt-gbctexset.tex) 测试gbctexset选项,使可以利用ctex的设置对文献表的标题进行修改 - - ![opt-gbfieldstd.tex](example\opt-gbfieldstd.tex) 测试gbfiledstd选项,著录格式还原为biblatex标准样式的格式 - - ![opt-gbfootbib.tex](example\opt-gbfootbib.tex) 测试实现国标要求的脚注文献表 - - ![opt-gblanorder-chineseahead.tex](example\opt-gblanorder-chineseahead.tex) 测试文献表排序,中文在前 - - ![opt-gblanorder-englishahead.tex](example\opt-gblanorder-englishahead.tex) 测试文献表排序,英文在前 - - ![opt-gblanorder-udforder.tex](example\opt-gblanorder-udforder.tex) 测试文献表排序,自定义顺序 - - ![opt-sorting-multilan.tex](example\opt-sorting-multilan.tex) 测试多语言混合文献表排序 - - ![opt-gblocal.tex](example\opt-gblocal.tex) 测试本地化字符串设置(引用标注标签、文献表) - - ![test-setlocal.tex](example\test-setlocal.tex) 测试本地化字符串设置(多种方法局部调整) - - ![test-setlocal-multilan.tex](example\test-setlocal-multilan.tex) 测试本地化字符串设置(多种语言的局部调整) - - ![opt-gbnamefmt.tex](example\opt-gbnamefmt.tex) 测试gbnamefmt对于作者姓名格式的控制 - - ![opt-gbnamefmt-default.tex](example\opt-gbnamefmt-default.tex) 测试gbnamefmt对于作者姓名格式的控制 - - ![opt-gbnamefmt-quanpin.tex](example\opt-gbnamefmt-quanpin.tex) 测试gbnamefmt对于作者姓名格式的控制 - - ![opt-gbnoauthor-false.tex](example\opt-gbnoauthor-false.tex) 测试gbnoauthor选项 - - ![opt-gbnoauthor-true.tex](example\opt-gbnoauthor-true.tex) 测试gbnoauthor选项 - - ![opt-gbpub-true.tex](example\opt-gbpub-true.tex) 测试gbpub选项 - - ![opt-gbpunctin.tex](example\opt-gbpunctin.tex) 测试gbpunctin选项 - - ![opt-gbtitlelink.tex](example\opt-gbtitlelink.tex) 测试gbtitlelink选项 - - ![opt-gbtype.tex](example\opt-gbtype.tex) 测试gbtype选项 - - ![opt-hyperref-backref.tex](example\opt-hyperref-backref.tex) 测试backrref选项,反向超链接 - - ![teststyleerj.tex](example\teststyleerj.tex) 测试chinese-erj样式 - - ![test-translator-in-other-lan.tex](example\test-translator-in-other-lan.tex) 测试译著的其它语言的译者格式 - - ![test-space-after-citelabel-inCJKline.tex](example\test-space-after-citelabel-inCJKline.tex) 测试删除标注后因为xeCJK加入的空格 - - ![test-special-chars-in-fields.tex](test-special-chars-in-fields.tex) 测试不同域中存在的特殊字符处理 + - ![cls-beamer.tex](example/cls-beamer.tex) 测试beamer中的使用(gb7714-2015样式) + - ![cls-beameray.tex](example/cls-beameray.tex) 测试beamer中的使用(gb7714-2015ay样式) + - ![codeopt-gbcodegbk.tex](example/codeopt-gbcodegbk.tex) 测试gb7714-2015、ay样式,对于GBK编码文档的兼容性 + - ![eg-opt-gbstyle.tex](example/eg-opt-gbstyle.tex) 测试gb7714-2015ms样式一篇文档中中英文两种格式设置,多语言对照,多语言混合文献表 + - ![testallformat.tex](example/testallformat.tex) 测试全面的类型、格式 + - ![egtest.tex](example/egtest.tex) 测试示例 + - ![opt-autolang-multilan.tex](example/opt-autolang-multilan.tex) 测试多语言混合的文献表,各语言不同的本地化字符串 + - ![opt-eg-multilan.tex](example/opt-eg-multilan.tex) 测试多语言混合的文献表 + - ![opt-eg-authoryear.tex](example/opt-eg-authoryear.tex) 测试ay样式 + - ![opt-eg-dblang.tex](example/opt-eg-dblang.tex) 测试双语对照文献-两种方法(条目集、关联条目) + - ![opt-gbalign-center.tex](example/opt-gbalign-center.tex) 测试gbalign选项 + - ![opt-gbalign-gb.tex](example/opt-gbalign-gb.tex) 测试gbalign选项 + - ![opt-gbalign-left.tex](example/opt-gbalign-left.tex) 测试gbalign选项 + - ![opt-gbannote.tex](example/opt-gbannote.tex) 测试gbannote选项,在文献表中加上附加信息用以说明三大索引情况 + - ![opt-gbbiblabel.tex](example/opt-gbbiblabel.tex) 测试gbbiblabel选项 + - ![opt-gbctexset.tex](example/opt-gbctexset.tex) 测试gbctexset选项,使可以利用ctex的设置对文献表的标题进行修改 + - ![opt-gbfieldstd.tex](example/opt-gbfieldstd.tex) 测试gbfiledstd选项,著录格式还原为biblatex标准样式的格式 + - ![opt-gbfootbib.tex](example/opt-gbfootbib.tex) 测试实现国标要求的脚注文献表 + - ![opt-gblanorder-chineseahead.tex](example/opt-gblanorder-chineseahead.tex) 测试文献表排序,中文在前 + - ![opt-gblanorder-englishahead.tex](example/opt-gblanorder-englishahead.tex) 测试文献表排序,英文在前 + - ![opt-gblanorder-udforder.tex](example/opt-gblanorder-udforder.tex) 测试文献表排序,自定义顺序 + - ![opt-sorting-multilan.tex](example/opt-sorting-multilan.tex) 测试多语言混合文献表排序 + - ![opt-gblocal.tex](example/opt-gblocal.tex) 测试本地化字符串设置(引用标注标签、文献表) + - ![test-setlocal.tex](example/test-setlocal.tex) 测试本地化字符串设置(多种方法局部调整) + - ![test-setlocal-multilan.tex](example/test-setlocal-multilan.tex) 测试本地化字符串设置(多种语言的局部调整) + - ![opt-gbnamefmt.tex](example/opt-gbnamefmt.tex) 测试gbnamefmt对于作者姓名格式的控制 + - ![opt-gbnamefmt-default.tex](example/opt-gbnamefmt-default.tex) 测试gbnamefmt对于作者姓名格式的控制 + - ![opt-gbnamefmt-quanpin.tex](example/opt-gbnamefmt-quanpin.tex) 测试gbnamefmt对于作者姓名格式的控制 + - ![opt-gbnoauthor-false.tex](example/opt-gbnoauthor-false.tex) 测试gbnoauthor选项 + - ![opt-gbnoauthor-true.tex](example/opt-gbnoauthor-true.tex) 测试gbnoauthor选项 + - ![opt-gbpub-true.tex](example/opt-gbpub-true.tex) 测试gbpub选项 + - ![opt-gbpunctin.tex](example/opt-gbpunctin.tex) 测试gbpunctin选项 + - ![opt-gbtitlelink.tex](example/opt-gbtitlelink.tex) 测试gbtitlelink选项 + - ![opt-gbtype.tex](example/opt-gbtype.tex) 测试gbtype选项 + - ![opt-hyperref-backref.tex](example/opt-hyperref-backref.tex) 测试backrref选项,反向超链接 + - ![teststyleerj.tex](example/teststyleerj.tex) 测试chinese-erj样式 + - ![test-translator-in-other-lan.tex](example/test-translator-in-other-lan.tex) 测试译著的其它语言的译者格式 + - ![test-space-after-citelabel-inCJKline.tex](example/test-space-after-citelabel-inCJKline.tex) 测试删除标注后因为xeCJK加入的空格 + - ![test-special-chars-in-fields.tex](example/test-special-chars-in-fields.tex) 测试不同域中存在的特殊字符处理 + - ![test-gbt-7714-1987.tex](example/test-gbt-7714-1987.tex) 测试GB/T7714-1987标准的样式 + - ![test-gbt-7714-2005.tex](example/test-gbt-7714-2005.tex) 测试GB/T7714-2005标准的样式 + --------------------------------------------------------- @@ -1507,6 +1514,7 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information! * 2021/01/19 v1.0w,ctan * 2021/04/03 v1.0x,ctan * 2021/05/06 v1.0y,ctan +* 2021/08/19 v1.0z,ctan diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex index 89a481574e..d3a20e962a 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex @@ -113,7 +113,7 @@ bookmarksdepth=4,]{hyperref} \titlespacing{\paragraph}{2em}{0.5\baselineskip}{1em} %这里利用titleformat*简单做设置,也可以利用titleformat做详细设置 \titleformat*{\section}{\zihao{-3}\bfseries\heiti} -\titleformat*{\subsection}{\zihao{4}\bfseries\songti} +\titleformat*{\subsection}{\zihao{4}\bfseries\heiti} \titleformat*{\subsubsection}{\zihao{-4}\bfseries\kaiti} %参考文献 @@ -225,7 +225,7 @@ bookmarksdepth=4,]{hyperref} \usepackage{tikz,pgf} \usetikzlibrary{calc} -\newenvironment{example}[3][{\large\faFileCodeO}]% +\newenvironment{example}[3][{\footnotesize\faFileCodeO}]% {\list{}{\begingroup\codecaption{#2}\label{#3}\endgroup \setlength{\topsep}{0pt} \setlength{\partopsep}{0pt} @@ -247,10 +247,10 @@ breaklines=true, %showspaces=true, extendedchars=false, columns=fullflexible,%flexible, -aboveskip=2pt, +%aboveskip=2pt, boxpos=t, rulesep=0pt, -frame=tb, +frame=t, framesep=0pt, rulecolor=\color{gblabelcolor}, fontadjust=true, diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf Binary files differindex 43553a6da0..a15d4208b7 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex index df72492e10..1d80d67bda 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex @@ -145,11 +145,20 @@ GB/T 7714标准的理解和解释(\ref{sec:gbt:std}节)、 \subsection{宏包结构} -宏包文件结构如图\ref{fig:pkg:structure}所示: +宏包文件结构如图\ref{fig:pkg:structure}所示。 +\zd{gb7714-2015.bbx/cbx}、\zd{gb7714-2015ay.bbx/cbx}分别为国标参考文献样式2015版本的顺序编码制和著者年份制样式文件。 +对应的\zd{gb7714-1987/ay.bbx/cbx}、\zd{gb7714-2005/ay.bbx/cbx}则是1987和2005版本的国标样式。 +\zd{gb7714-2015ms.bbx/cbx}是混合样式,支持区分中英文语言分设不同标准的著录格式。 +\zd{gb7714-2015mx.bbx/cbx}是混合样式,支持在不同的参考文献分节中使用不同的编制样式,比如有的节使用顺序编码制,有的节使用著者年份制。 +\zd{gb7715-2015-gbk.def}为GBK编码文档编译所需的支撑文件。 +\zd{chinese-erj.bbx/cbx} 是经济学研究期刊的文献样式。后三者仅支持较新的biblatex版本。 +\zd{biblatex-gb7714-2015.tex} 为宏包说明文档,\zd{example}目录下为各种选项的测试用例, +\zd{egfigure}目录下为说明文档中的图例文档,\zd{egthesis}为国内一些大学学位论文文献样式的测试用例,包括完全按照国标的BUPT、CAU、ECNU、FDU、SJTU、THU、USTC、XJTU、ZJU,与国标略有差异的UCAS,以及与国标有较大差异的NWAFU、SEU等。\zd{*.bat}、\zd{*.sh}分别为windows和linux下说明文档的编译脚本。\zd{*.pl}为gb7714格式著录文献表到bib文件的perl转换脚本,\zd{*.dat}为转换测试文献表。 + \begin{figure}[!htb] -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +%\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +%width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +%leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \centering\footnotesize \begin{tikzpicture}[node distance=1.5cm] %\definecolor{bluea}{rgb}{0.05,0.62,0.94} @@ -164,11 +173,11 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \draw[color=cyan,thick] (script.north) -- ($(script.north)+(0mm,3mm)$) ; \draw[color=cyan,thick] ($(style.north)+(0mm,3mm)$) -- ($(script.north)+(0mm,3mm)$); -\node[below of=style,fill=gbgrey!20,yshift=0.5cm,xshift=2mm,text width=2cm] (numcbbx) {\tiny \textcolor{black}{gb7715-2015.c/bbx}}; -\node[below of=numcbbx,fill=gbgrey!20,yshift=8mm,text width=2cm] (aycbbx) {\tiny \textcolor{black}{gb7715-2015ay.c/bbx}}; +\node[below of=style,fill=gbgrey!20,yshift=0.5cm,xshift=2mm,text width=2cm] (numcbbx) {\tiny \textcolor{black}{gb7715-2015/ay.c/bbx}}; +\node[below of=numcbbx,fill=gbgrey!20,yshift=8mm,text width=2cm] (aycbbx) {\tiny \textcolor{black}{gb7715-1987/ay.c/bbx}}; \node[below of=aycbbx,fill=gbgrey!20,yshift=8mm,text width=2cm] (mscbbx) {\tiny \textcolor{black}{gb7715-2015ms.c/bbx}}; \node[below of=mscbbx,fill=gbgrey!20,yshift=8mm,text width=2cm] (mxcbbx) {\tiny \textcolor{black}{gb7715-2015mx.c/bbx}}; -\node[below of=mxcbbx,fill=gbgrey!20,yshift=8mm,text width=2cm] (gbkdef) {\tiny \textcolor{black}{gb7715-2015-gbk.def}}; +\node[below of=mxcbbx,fill=gbgrey!20,yshift=8mm,text width=2cm] (gbkdef) {\tiny \textcolor{black}{gb7715-2005/ay.c/bbx}}; \node[below of=gbkdef,fill=gbgrey!20,yshift=8mm,text width=2cm] (erjcbbx) {\tiny \textcolor{black}{chinese-erj.c/bbx}}; %\node[below of=msbbx,fill=gbgrey!20,yshift=8mm,text width=2cm] (mscbx) {\tiny \textcolor{black}{gb7715-2015ms.cbx}}; @@ -204,19 +213,13 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \draw[color=orange,semithick] (plspt.west) -- ($(plspt.west)+(-3mm,0mm)$) ; \draw[color=orange,semithick] ($(plspt.west)+(-3mm,0mm)$) -- ($(plspt.west)+(-3mm,28.1mm)$) ; \end{tikzpicture} -\end{tcolorbox} +%\end{tcolorbox} \caption{宏包文件结构}\label{fig:pkg:structure} \end{figure} -其中,\zd{gb7714-2015.bbx/cbx}、\zd{gb7714-2015ay.bbx/cbx}分别为顺序编码制和著者年份制样式文件。 -\zd{gb7714-2015ms.bbx/cbx}是混合样式,支持区分中英文语言分设不同标准的著录格式。 -\zd{gb7714-2015mx.bbx/cbx}是混合样式,支持在不同的参考文献分节中使用不同的编制样式,比如有的节使用顺序编码制,有的节使用著者年份制。 -\zd{gb7715-2015-gbk.def}为GBK编码文档编译所需的支撑文件。 -\zd{chinese-erj.bbx/cbx} 是经济学研究期刊的文献样式。后三者仅支持较新的biblatex版本。 -\zd{biblatex-gb7714-2015.tex} 为宏包说明文档,\zd{example}目录下为各种选项的测试用例, -\zd{egfigure}目录下为说明文档中的图例文档,\zd{egthesis}为国内一些大学学位论文文献样式的测试用例,包括完全按照国标的BUPT、CAU、ECNU、FDU、SJTU、THU、USTC、XJTU、ZJU,与国标略有差异的UCAS,以及与国标有较大差异的NWAFU、SEU等。\zd{*.bat}、\zd{*.sh}分别为windows和linux下说明文档的编译脚本。\zd{*.pl}为gb7714格式著录文献表到bib文件的perl转换脚本,\zd{*.dat}为转换测试文献表。 + \subsection{最小示例} @@ -278,9 +281,9 @@ latexmk -xelatex jobname.tex \begin{refsection} \begin{figure}[!htb] \centering -\begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% -leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] +%\begin{tcolorbox}[left skip=0pt,right skip=0pt,% +%width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +%leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \includegraphics*[page=1,viewport=0cm 0.4cm 14cm 6.1cm,clip=true]{egfigure/egmwe.pdf} %\deflength{\textparwd}{\linewidth-1.5cm} %\begin{minipage}{\textparwd} @@ -296,7 +299,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] %\par} %}} %\end{minipage} -\end{tcolorbox} +%\end{tcolorbox} \caption{最小工作示例编译生成的PDF文档}\label{fig:eg:ref} \end{figure} \end{refsection} @@ -328,7 +331,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{texlist} %简单方式: \usepackage[backend=biber,style=gb7714-2015ay]{biblatex} -%设置gbnoauthor=true以使用佚名或NOAUTHOR填补缺失的author信息: +%设置gbnoauthor=true以使用佚名或Anon填补缺失的author信息: \usepackage[backend=biber,style=gb7714-2015ay,gbnoauthor=true]{biblatex} \end{texlist} \end{example} @@ -358,7 +361,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] 格式效果如图\ref{fig:eg:mx}所示。 -\begin{example}{参考文献文本转换为bib文件perl脚本使用方式}{eg:transtobib} +\begin{example}{顺序编码参考文献文本转换为bib文件perl脚本使用方式}{eg:transtobib} \begin{texlist} perl gb7714texttobib.pl in=textfilename out=bibfilename \end{texlist} @@ -366,7 +369,7 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename 其中,v1.0m版本增加的gb7714-2015ms样式文件,主要是为了在一个文献表中针对不同语言使用不同多种样式,比如中文文献使用GB/T 7714-2015规定的著录格式,而其它语言文献使用biblatex提供的标准样式。v1.0r版本增加了gb7714-2015mx样式,主要是为了在一个文档中针对不同参考文献分节使用不同的参考文献样式,比如某些节使用著者年份制,某些节使用顺序编码制。尽管这些方式不常用,但偶尔也有需求,所以都做了实现。 -另外应ddswhu要求,v1.0r版本增加了chinese-erj样式用于生成经济研究期刊的文献。且在egthesis文件夹内,针对国内一些大学的学位论文文献要求,基于国标样式做了一些定制和测试。 +另外应东升要求,v1.0r版本增加了chinese-erj样式用于生成经济研究期刊的文献。且在egthesis文件夹内,针对国内一些大学的学位论文文献要求,基于国标样式做了一些定制和测试。 \pdfbookmark[4]{chinese-erj}{chinese-erj} \begin{example}{经济研究期刊文献样式(chinese-erj)}{eg:gbchineseerj} @@ -376,6 +379,25 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename \end{texlist} \end{example} +尽管国标1987和2005版本已经过时,但仍然有些地方还在使用,所以1.0z版本增加了gb7714-1987和gb7714-2005两个版本的样式,也分顺序编码和著者年份制: + +\pdfbookmark[4]{gb7714-1987}{gb7714-1987} +\pdfbookmark[4]{gb7714-1987ay}{gb7714-1987ay} +\pdfbookmark[4]{gb7714-2005}{gb7714-2005} +\pdfbookmark[4]{gb7714-2005ay}{gb7714-2005ay} +\begin{example}{1987和2005版的国标样式}{eg:gb87and2005} +\begin{texlist} +%国标1987顺序编码制 +\usepackage[backend=biber,style=gb7714-1987]{biblatex} +%国标1987著者年份制 +\usepackage[backend=biber,style=gb7714-1987ay]{biblatex} +%国标2005顺序编码制 +\usepackage[backend=biber,style=gb7714-2005]{biblatex} +%国标2005著者年份制 +\usepackage[backend=biber,style=gb7714-2005ay]{biblatex} +\end{texlist} +\end{example} + \subsubsection{新增选项}\label{sec:added:opt} 样式包新增了一些选项,用于标签对齐方式、出版项缺省处理、责任者(作者)缺省处理等功能的控制,其使用方式与biblatex宏包选项完全相同: @@ -404,7 +426,7 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbalign=right 即右对齐]{\parbox{0.5\linewidth}{\includegraphics*[page=4,viewport=1cm 0cm 8cm 4.5cm,clip=true]{egphoto/opt-gbalign-right.pdf}}} \subfigure[\heiti gbalign=left 即左对齐]{\parbox{0.5\linewidth}{\includegraphics*[page=4,viewport=1cm 0cm 8cm 4.5cm,clip=true]{egphoto/opt-gbalign-left.pdf}}}\\ @@ -430,7 +452,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbpub=false 出版项缺省]{\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0cm 9cm 4.5cm,clip=true]{egphoto/opt-gbpub-false.pdf}}} \subfigure[\heiti gbpub=true 出版项补充]{\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0cm 10cm 4.5cm,clip=true]{egphoto/opt-gbpub-true.pdf}}} @@ -454,7 +476,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbnoauthor=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.4cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbnoauthor-true.pdf}}} \subfigure[\heiti gbnoauthor=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.4cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbnoauthor-false.pdf}}} @@ -479,7 +501,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbbiblabel=box] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabela.pdf}}} \subfigure[\heiti gbbiblabel=bracket] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabelb.pdf}}}\\ @@ -515,7 +537,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbnamefmt=uppercase] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-a.pdf}}} \subfigure[\heiti gbnamefmt=lowercase] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-b.pdf}}}\\ @@ -541,7 +563,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbtype=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbtype-true.pdf}}} \subfigure[\heiti gbtype=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbtype-false.pdf}}} @@ -564,7 +586,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbmedium=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbmedium-true.pdf}}} \subfigure[\heiti gbmedium=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbmedium-false.pdf}}} @@ -596,7 +618,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbfieldtype=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=8cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-gbfieldtype-true.pdf}}} \subfigure[\heiti gbfieldtype=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=8cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-gbfieldtype-false.pdf}}} @@ -620,7 +642,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbpunctin=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbpunctin-true.pdf}}} \subfigure[\heiti gbpunctin=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbpunctin-false.pdf}}} @@ -643,7 +665,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbtitlelink=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbtitlelink-true.pdf}}} \subfigure[\heiti gbtitlelink=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbtitlelink-false.pdf}}} @@ -684,7 +706,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \centering \subfigure[\heiti gblocal=gb7714-2015] {\parbox{0.45\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gblocal-gb.pdf}}}\hfill @@ -709,7 +731,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti mergedate 不给出] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-mergedate-a.pdf}}}\\ \subfigure[\heiti mergedate=true] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-mergedate-b.pdf}}}\\ @@ -736,7 +758,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \centering \subfigure[\heiti gblanorder=chineseahead] {\parbox{0.45\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 4.0cm,clip=true]{egphoto/opt-gblanorder-chineseahead.pdf}}}\hfill @@ -762,7 +784,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti citexref=true] {\parbox{7.5cm}{\includegraphics*[page=1,viewport=0.2cm 0.2cm 7.5cm 8cm,clip=true]{egphoto/opt-citexref-true.pdf}}} \subfigure[\heiti citexref=false] {\parbox{7.5cm}{\includegraphics*[page=1,viewport=0.5cm 0.2cm 8cm 8cm,clip=true]{egphoto/opt-citexref-false.pdf}}} @@ -785,7 +807,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \begin{figure}[!htb] \centering \begin{tcolorbox}[left skip=0pt,right skip=0pt,% -width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,% +width=\linewidth,colframe=white,colback=white,arc=0pt,%gblabelcolor leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt] \subfigure[\heiti gbannote=true] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 16cm 2.8cm,clip=true]{egphoto/opt-gbannote-true.pdf}}}\\ \subfigure[\heiti gbannote=false] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 16cm 2.8cm,clip=true]{egphoto/opt-gbannote-false.pdf}}} @@ -1604,7 +1626,12 @@ biber -l zh__stroke jobname \end{texlist} \end{example} -其中,排序模板优先使用persort域进行排序,接着是与文种相关的lansortorder域,接着是sortkey域(该域在biblatex中就是key域的别名),接着是sortname等作者姓名相关的域,要让文献根据多音字习惯音进行排序,那么就在key域中设置文献作者姓名的习惯音。比如三篇文献作者分别是[李四]、[J. B. Conway]、[曾三]。在设置sorting=multipinyin, gblanorder=chineseahead, sortlocale=zh\_\_pinyin的情况下,根据上述的multipinyin排序模板,首先根据文种和作者信息将中文文献[曾三][李四]排在前面,接着是[J. B. Conway],因为默认情况下,曾字考虑的读音是ceng2。但若对key域手动设置中文的拼音,比如[李四]文献设置key=\{li3si4\},而[曾三]文献设置key=\{zeng1san1\},那么中文文献仍然排在前面,但根据key域的设置会将[李四]文献排列在[曾三]前面。因此手动设置作者姓名的习惯拼音后,文献排列顺序为:[李四][曾三][J. B. Conway]。 +其中,排序模板优先使用persort域进行排序,接着是与文种相关的lansortorder域,接着是sortkey域(该域在biblatex中就是key域的别名),接着是sortname等作者姓名相关的域,要让文献根据多音字习惯音进行排序,那么就在key域中设置文献作者姓名的习惯音。比如三篇文献作者分别是[李四]、[J. B. Conway]、[曾三]。在设置sorting=multipinyin, gblanorder=chineseahead, sortlocale=zh\_\_pinyin的情况下,根据上述的multipinyin排序模板,首先根据文种和作者信息将中文文献[曾三][李四]排在前面,接着是[J. B. Conway],因为默认情况下,曾字考虑的读音是ceng2,但这不是我们希望得到的。 + +所以需要手动将key域设置为中文的拼音,比如[李四]文献设置key=\{li3si4\},而[曾三]文献设置key=\{zeng1san1\},那么中文文献仍然排在前面,但根据key域的设置会将[李四]文献排列在[曾三]前面。因此手动设置作者姓名的习惯拼音后,文献排列正确,顺序为:[李四][曾三][J. B. Conway]。 需要注意的是:手动设置拼音是一个不轻松的活,所以我们可以使用自动设置拼音的工具,详见 +\href{https://www.latexstudio.net/index/details/index/ids/1546}{为中文参考文献自动添加排序用的拼音信息域},\href{https://github.com/hushidong/biblatex-map}{bibmap宏包}。 + + 其中,与文种相关的排序域lansortorder是由gblanorder选项设置的,当选项值为chineseahead时,语言顺序为cn;jp;kr;en;fr;ru,会将中文文献的lansortorder域设置为1,日语文献设置为2,韩语文献设置为3,英文文献设置为4,法语文献设置为5,俄语文献设置为6。排序过程中按升序排序,那么自然中文文献在前英文文献在后。若对gblanorder选择设置一个自定义的字符串如:cn;en;ru;fr;jp;kr,那么文种的排列顺序为中文、英文、俄语、法语、日语、韩语。 diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.bbx new file mode 100644 index 0000000000..708655f76f --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.bbx @@ -0,0 +1,206 @@ +%% +%% --------------------------------------------------------------- +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%%注意因为使用了stylemap所以只兼容了biblatex3.7以后的版本 +\ProvidesFile{gb7714-1987.bbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-1987] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015} + +%================================================== +% 2005与2015的主要差异: +%1.无doi +%2.文献类型标志(电子文献必备,其他文献任选),引用日期(联机文献必备,其他电子文献任选),这条差异无需处理 +%3.用汉语拼音书写的中国著者姓名不得缩写。标准说是这么说的,但没有任何示例。需要的话可以在bib条目中设置nameformat=quanpin +%4.无关于页码、获取和访问路径的说明。这条差异无需处理 +%5.没有A/CM/DS/Z等新的类型 +%================================================== +% 1987与2005的主要差异: +%1. 没有电子文献。主要考虑将高版本的电子文献转换为misc +%2. 各类文献没有引用日期,获取和访问路径。考虑去掉url和urldate +%3. 没有文献标志类型。考虑去掉文献类型标志和文献载体标志。 +%4. 专著存在文献数量、丛编项、附注项、文献标准编号。这一条不考虑。 +%5. 析出文献:中文用见:,英文用In: +%6. 页码之间的连接符用~ +%7. 英文作者的姓只是首字母大写 +%8. 作者年份制中;文献表中,最后一个作者与年份之间的标点用.加空格。但引用的标注标签上是空格 +%9. 学位论文:用学位论文和dissertation表示。 +%10. 编者会加上编者角色信息。 +%11. 专利输出国别和类型。可以全部放到number中处理。专利的日期也有特点。特殊处理。 +%================================================== + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + gbtype=false, + gbnamefmt=lowercase, + gbfieldtype=true, + gbpunctin=false, + doi=false, + url=false, + } + +%================================================== +%标点设置 +%================================================== +\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{$\sim$}} +\DeclareFieldFormat%将期刊等文献的标题中原来带的引号去掉 + [thesis] + {title}{#1}%\mkbibquote{#1\isdot} + +%================================================== +%字符串设置 +%================================================== +\DefineBibliographyStrings{english}{ + %andincitecn = {和}, + %andincite = {and}, + mathesiscn={学位论文}, + phdthesiscn={学位论文}, + mathesis={[dissertation]}, + phdthesis={[dissertation]}, + in={In:\addspace}, + incn={见:\addspace}, + editorscn={编}, + editorcn={编}, +} + + +%================================================== +%类型转换回来 +%================================================== + \DeclareStyleSourcemap{ + \maps[datatype=bibtex]{ + \map{ + \step[typesource=online, typetarget=misc, final] + } + \map{ + \step[typesource=electronic, typetarget=misc, final] + } + \map{ + \step[typesource=www, typetarget=misc, final] + } + } + } + +%================================================== +%域格式设置 +%================================================== +%专著如果责任者是editor,也输入相关类型 +\renewbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{editor}% + \clearname{editor}} + {}} + +%要注意要使用translator那么需要开启usetranslator选项的。 +\renewbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\renewcommand{\aftertransdelim}{\adddot\addspace}\printnames{translator}% + \clearname{translator}} + {}} + + +%专利的日期 +\renewbibmacro*{newsdate}{%%新增加一个公告日期,公开日期或新闻日期 + \iffieldundef{year}{}{\printfield{year}% + \iffieldundef{month}{}{\adddot\printtext{\thefield{month}}% + \iffieldundef{day}{}{\adddot\printfield{day}}}}% + } + +% +% 重设专利title的输出,将文献类型标识符输出出去 +% +\newbibmacro*{patenttitle}{%原输出来自biblatex.def文件 + \ifboolexpr{% + test{\iffieldundef{title}}% + and% + test{\iffieldundef{subtitle}}% + }% + {}% + {\printtext[title]{\bibtitlefont% + \printfield[titlecase]{title}% + \ifboolexpr{test {\iffieldundef{subtitle}}}%这里增加了对子标题的判断,解决不判断多一个点的问题 + {}{\setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}% + \iffieldundef{titleaddon}{}%判断一下titleaddon,否则直接加可能多一个空格 + {\setunit{\subtitlepunct}\printfield{titleaddon}}% + \newunit\printfield{number}%写专利号 + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +} + + +%================================================== +%条目的输出驱动 +%================================================== +% +% 论文类型单独处理:增加论文类型信息 +% +% +\DeclareBibliographyDriver{thesis}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{title}% + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}}% + \newunit\newblock + \usebibmacro{byeditor+others}%增加的译者信息 + \newunit\newblock + \iftoggle{bbx:gbfieldtype}{% + \setunit{\addcolon\addspace}% + \printfield{type}% + \setunit*{\addspace}}{}% + \printfield{number}% + \newunit\newblock + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{institution+location+date}% + %\newunit\newblock + \usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出修改或更新日期 + \usebibmacro{modifydate}}%修改或更新日期为带括号的时间 + \usebibmacro{doi+eprint+url}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isrn}} + {}% + \newunit\newblock +% \usebibmacro{doi+eprint+url}% +% \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}\usebibmacro{annotation}} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.cbx new file mode 100644 index 0000000000..6f92454b87 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.cbx @@ -0,0 +1,13 @@ +%% +%% --------------------------------------------------------------- +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-1987.cbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-1987] + +%================================================== +%加载gb样式 +%================================================== +\RequireCitationStyle{gb7714-2015} % diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.bbx new file mode 100644 index 0000000000..c9004dd7ec --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.bbx @@ -0,0 +1,202 @@ +%% +%% --------------------------------------------------------------- +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%%注意因为使用了stylemap所以只兼容了biblatex3.7以后的版本 +\ProvidesFile{gb7714-1987ay.bbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-1987] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015ay} + +%================================================== +% 2005与2015的主要差异: +%1.无doi +%2.文献类型标志(电子文献必备,其他文献任选),引用日期(联机文献必备,其他电子文献任选),这条差异无需处理 +%3.用汉语拼音书写的中国著者姓名不得缩写。标准说是这么说的,但没有任何示例。需要的话可以在bib条目中设置nameformat=quanpin +%4.无关于页码、获取和访问路径的说明。这条差异无需处理 +%5.没有A/CM/DS/Z等新的类型 +%================================================== +% 1987与2005的主要差异: +%1. 没有电子文献。主要考虑将高版本的电子文献转换为misc +%2. 各类文献没有引用日期,获取和访问路径。考虑去掉url和urldate +%3. 没有文献标志类型。考虑去掉文献类型标志和文献载体标志。 +%4. 专著存在文献数量、丛编项、附注项、文献标准编号。这一条不考虑。 +%5. 析出文献:中文用见:,英文用In: +%6. 页码之间的连接符用~ +%7. 英文作者的姓只是首字母大写 +%8. 作者年份制中;文献表中,最后一个作者与年份之间的标点用.加空格。但引用的标注标签上是空格 +%9. 学位论文:用学位论文和dissertation表示。 +%10. 编者会加上编者角色信息。 +%11. 专利输出国别和类型。可以全部放到number中处理。专利的日期也有特点。特殊处理。 +%================================================== + + +%================================================== +%选项设置 +%================================================== +\ExecuteBibliographyOptions{ + gbtype=false, + gbnamefmt=lowercase, + gbfieldtype=true, + gbpunctin=false, + doi=false, + url=false, + } + +%================================================== +%标点设置 +%================================================== +\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{$\sim$}} +\DeclareFieldFormat%将期刊等文献的标题中原来带的引号去掉 + [thesis] + {title}{#1}%\mkbibquote{#1\isdot} +\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\adddot\space} + +%================================================== +%字符串设置 +%================================================== +\DefineBibliographyStrings{english}{ + %andincitecn = {和}, + %andincite = {and}, + mathesiscn={学位论文}, + phdthesiscn={学位论文}, + mathesis={[dissertation]}, + phdthesis={[dissertation]}, + in={In:\addspace}, + incn={见:\addspace}, + editorscn={编}, + editorcn={编}, +} + + +%================================================== +%类型转换回来 +%================================================== + \DeclareStyleSourcemap{ + \maps[datatype=bibtex]{ + \map{ + \step[typesource=online, typetarget=misc, final] + } + \map{ + \step[typesource=electronic, typetarget=misc, final] + } + \map{ + \step[typesource=www, typetarget=misc, final] + } + } + } + +%================================================== +%域格式设置 +%================================================== +%专著如果责任者是editor,也输入相关类型 +\renewbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\usebibmacro{editor}% + \usebibmacro{bbx:savehash}}% + \clearname{editor}% + \setunit{\printdelim{nameyeardelim}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} + +%专利的日期 +\renewbibmacro*{newsdate}{%%新增加一个公告日期,公开日期或新闻日期 + \iffieldundef{year}{}{\printfield{year}% + \iffieldundef{month}{}{\adddot\printtext{\thefield{month}}% + \iffieldundef{day}{}{\adddot\printfield{day}}}}% + } + +% +% 重设专利title的输出,将文献类型标识符输出出去 +% +\newbibmacro*{patenttitle}{%原输出来自biblatex.def文件 + \ifboolexpr{% + test{\iffieldundef{title}}% + and% + test{\iffieldundef{subtitle}}% + }% + {}% + {\printtext[title]{\bibtitlefont% + \printfield[titlecase]{title}% + \ifboolexpr{test {\iffieldundef{subtitle}}}%这里增加了对子标题的判断,解决不判断多一个点的问题 + {}{\setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}% + \iffieldundef{titleaddon}{}%判断一下titleaddon,否则直接加可能多一个空格 + {\setunit{\subtitlepunct}\printfield{titleaddon}}% + \newunit\printfield{number}%写专利号 + \iftoggle{bbx:gbtype}{\printfield[gbtypeflag]{usera}}{}% + %\iffieldundef{booktitle}{\newunit}{}%当title是析出时,不要标点 + %\newunit + }% +}% +} + + +%================================================== +%条目的输出驱动 +%================================================== +% +% 论文类型单独处理:增加论文类型信息 +% +% +\DeclareBibliographyDriver{thesis}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{title}% + \iftoggle{bbx:gbstrict}{}{% + \newunit% + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}}% + \newunit\newblock + \usebibmacro{byeditor+others}%增加的译者信息 + \newunit\newblock + \iftoggle{bbx:gbfieldtype}{% + \setunit{\addcolon\addspace}% + \printfield{type}% + \setunit*{\addspace}}{}% + \printfield{number}% + \newunit\newblock + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{institution+location+date}% + %\newunit\newblock + \usebibmacro{chapter+pages}% + \iffieldundef{url}{}{%当没有网址时也不输出修改或更新日期 + \usebibmacro{modifydate}}%修改或更新日期为带括号的时间 + \usebibmacro{doi+eprint+url}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isrn}} + {}% + \newunit\newblock +% \usebibmacro{doi+eprint+url}% +% \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}\usebibmacro{annotation}} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.cbx new file mode 100644 index 0000000000..c32bde0d93 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.cbx @@ -0,0 +1,21 @@ +%% +%% --------------------------------------------------------------- +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-1987ay.cbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-1987] + +%================================================== +%加载gb样式 +%================================================== +\RequireCitationStyle{gb7714-2015ay} % + +\ExecuteBibliographyOptions{ + uniquename=false,%不处理姓名歧义 + uniquelist=false +} + +\DeclareDelimFormat[cite,parencite,pagescite]{nameyeardelim}{\space}%\addcomma\space +\DeclareDelimFormat[citet,citep,textcite]{nameyeardelim}{\space}%\addcomma\space diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.bbx new file mode 100644 index 0000000000..12271aa8a8 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.bbx @@ -0,0 +1,54 @@ +%% +%% --------------------------------------------------------------- +%% erj.bbx --- A bibliography style of Economic Research Journal in china +%% modified from gb7714-2015ay at the request of ddswhu +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%%注意因为使用了stylemap所以只兼容了biblatex3.7以后的版本 +\ProvidesFile{gb7714-2005.bbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-2005] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015} + +%================================================== +%与2015的主要差异: +%1.无doi +%2.文献类型标志(电子文献必备,其他文献任选),引用日期(联机文献必备,其他电子文献任选),这条差异无需处理 +%3.用汉语拼音书写的中国著者姓名不得缩写。标准说是这么说的,但没有任何示例。需要的话可以在bib条目中设置nameformat=quanpin +%4.无关于页码、获取和访问路径的说明。这条差异无需处理 +%5.没有A/CM/DS/Z等新的类型 +%================================================== + + +%================================================== +%选项设置 +%================================================== + \ExecuteBibliographyOptions{ + doi=false, + url=false, + } + +%================================================== +%类型转换回来 +%================================================== + \DeclareStyleSourcemap{ + \maps[datatype=bibtex]{ + \map[overwrite]{% + \pertype{dataset} + \step[fieldset=usera, fieldvalue={Z}]% + } + \map[overwrite]{% + \pertype{archive} + \step[fieldset=usera, fieldvalue={Z}]% + } + \map[overwrite]{% + \pertype{map} + \step[fieldset=usera, fieldvalue={Z}]% + } + } + } diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.cbx new file mode 100644 index 0000000000..fc9f2d1437 --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.cbx @@ -0,0 +1,15 @@ +%% +%% --------------------------------------------------------------- +%% erj.cbx --- A citation style of Economic Research Journal in china +%% modified from gb7714-2015ay for the request by ddswhu +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-2005.cbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-2005] + +%================================================== +%加载gb样式 +%================================================== +\RequireCitationStyle{gb7714-2015} % diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.bbx new file mode 100644 index 0000000000..44d089fddd --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.bbx @@ -0,0 +1,52 @@ +%% +%% --------------------------------------------------------------- +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%%注意因为使用了stylemap所以只兼容了biblatex3.7以后的版本 +\ProvidesFile{gb7714-2005ay.bbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-2005] + + +%================================================== +%加载gb样式 +%================================================== +\RequireBibliographyStyle{gb7714-2015ay} + +%================================================== +%与2015的主要差异: +%1.无doi +%2.文献类型标志(电子文献必备,其他文献任选),引用日期(联机文献必备,其他电子文献任选),这条差异无需处理 +%3.用汉语拼音书写的中国著者姓名不得缩写。标准说是这么说的,但没有任何示例。需要的话可以在bib条目中设置nameformat=quanpin +%4.无关于页码、获取和访问路径的说明。这条差异无需处理 +%5.没有A/CM/DS/Z等新的类型 +%================================================== + + +%================================================== +%选项设置 +%================================================== + \ExecuteBibliographyOptions{ + doi=false, + url=false, + } + +%================================================== +%类型转换回来 +%================================================== + \DeclareStyleSourcemap{ + \maps[datatype=bibtex]{ + \map[overwrite]{% + \pertype{dataset} + \step[fieldset=usera, fieldvalue={Z}]% + } + \map[overwrite]{% + \pertype{archive} + \step[fieldset=usera, fieldvalue={Z}]% + } + \map[overwrite]{% + \pertype{map} + \step[fieldset=usera, fieldvalue={Z}]% + } + } + } diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.cbx new file mode 100644 index 0000000000..5c2ba2a92a --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.cbx @@ -0,0 +1,13 @@ +%% +%% --------------------------------------------------------------- +%% Maintained by huzhenzhen +%% E-mail: hzzmail@163.com +%% Released under the LaTeX Project Public License v1.3c or later +%% --------------------------------------------------------------- +%% +\ProvidesFile{gb7714-2005ay.cbx}[2021/05/16 v1.0 a biblatex bibliography style for GB/T 7714-2005] + +%================================================== +%加载gb样式 +%================================================== +\RequireCitationStyle{gb7714-2015ay} % diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx index 2ebf228c61..d4beba03b6 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -753,7 +753,7 @@ \ifstrequal{#1}{familyahead}{\setcounter{gbnamefmtcase}{3}}{} \ifstrequal{#1}{pinyin}{\setcounter{gbnamefmtcase}{4}}{}%family-given \ifstrequal{#1}{reverseorder}{\setcounter{gbnamefmtcase}{5}}{}%family-given/given-family - \ifstrequal{#1}{quanpin}{\setcounter{gbnamefmtcase}{6}}{}%family-given + \ifstrequal{#1}{quanpin}{\setcounter{gbnamefmtcase}{6}}{}%全拼 } \ExecuteBibliographyOptions{gbnamefmt} @@ -1002,21 +1002,17 @@ \DeclareSourcemap{ \maps[datatype=bibtex]{% - \map{%当没有作者时将editor转成author - \pernottype{inbook}%因为in系列中editor可能用来表示bookauthor,所以排除 - \pernottype{inproceedings} - \pernottype{incollection} - \pernottype{periodical}%因为peridical直接使用editor,所以排除 - %注意notfield在低版本biblatex中没有 - %\step[notfield=author,final]%当author不存在,将editor复制给author - \step[fieldsource=editor,fieldtarget=author]%并删除editor + \map{%如果author或者editor或者translator存在,那么设置namea便于后面判断。 + \step[fieldsource=author,final] + \step[fieldset=namea,origfieldval] } - \map{%当没有作者时将translator转成author - \pernottype{inbook} - \pernottype{inproceedings} - \pernottype{incollection} - %\step[notfield=author,final]%当author不存在,将translator复制给author - \step[fieldsource=translator,fieldtarget=author]%并删除translator + \map{% + \step[fieldsource=editor,final] + \step[fieldset=namea,origfieldval] + } + \map{% + \step[fieldsource=translator,final] + \step[fieldset=namea,origfieldval] } \map{%让address和location同步,biblatex中address是location的别名 %因此输出的时候只有location信息,但处理过程中是可以存在address的。 @@ -1049,7 +1045,7 @@ \step[fieldsource=nameformat,match=pinyin,final] \step[fieldset=namefmtid,fieldvalue={4}] } - \map{%处理在bib文件中直接给出文献的姓名格式为pinyin的情况 + \map{%处理在bib文件中直接给出文献的姓名格式为全拼的情况 \step[fieldsource=nameformat,match=quanpin,final] \step[fieldset=namefmtid,fieldvalue={6}] } @@ -2178,6 +2174,8 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 % 这里调整一下两种语言参考文献的间隔,源来自biblatex.def \renewcommand*{\entrysetpunct}{\adddot\newline\nobreak} \renewcommand*{\bibpagespunct}{\addcolon\addthinspace}%%页码引用格式的修改,修改为用冒号 +% 2021.08.19,增加出版地和出版社之间的标点,hzz +\newcommand{\publocpunct}{\addcolon\addspace}%出版项中:出版社地址后面的标点 %\renewcommand{\relateddelim}{}%\par %===================================================================== @@ -2362,6 +2360,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 % v1.0w,20210401,hzz,针对其它语言的译者后的标点与中文不同做处理 % 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 % \printnames由start-stop控制项数,默认是1和maxnames/minnames +\newcommand{\aftertransdelim}{\addcomma\addthinspace} \renewbibmacro*{name:andothers}{\bibauthorfont% \ifboolexpr{ test {\ifnumequal{\value{listcount}}{\value{liststop}}} @@ -2375,7 +2374,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 %袁训来, 陈哲, 肖书海, 等. %胡泳, 范海燕, 译. %潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\addcomma\addthinspace}{}}{}%为了实现上述第二个示例情况做的处理 +\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 }} @@ -3185,7 +3184,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% }{% \iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}% {\printlist{location}}% -\addcolon\addspace% +\publocpunct% \iflistundef{institution}{% \iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% {\printlist{institution}}}% @@ -3198,7 +3197,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}% \iflistundef{institution}% {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -3217,8 +3216,8 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\iffieldequalstr{note}{standard}{}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress}\space :\space\str@nopublisher]}{\printtext{[S.l.\space :\space s.n.\adddot]}}}}% {\iflistundef{location}{%\adddot \iffieldequalstr{note}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。 - {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\addcolon\addspace}}}% \bibstring{noaddress} - {\printlist{location}\addcolon\addspace}%%\addcolon\addspace% + {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress} + {\printlist{location}\publocpunct}%%\addcolon\addspace% \iflistundef{publisher}{% \iffieldequalstr{note}{standard}{}% {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}% @@ -3230,7 +3229,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}% \iflistundef{publisher} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{publisher}% \setunit*{\addcomma\space}% \usebibmacro{date}%%\newunit @@ -3246,7 +3245,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}%%加了一个编组避免\usebibmacro{date}把month和day信息去掉 \iflistundef{institution} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -3504,6 +3503,31 @@ incollection,proceedings,inproceedings]{number}{% }% } +% 责任者如果没有author用editor或translator替代 +% 20210521 v1.0y hzz +%专著如果责任者是editor那么不用输出类型信息 +\renewbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \clearname{editor}} + {}} +%要注意要使用translator那么需要开启usetranslator选项的。 +%注意其中的标点处理。 +\renewbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\renewcommand{\aftertransdelim}{\adddot\addspace}{\adddot\addspace}\printnames{translator}% + \clearname{translator}} + {}} + + % % 修改期刊的标题 % @@ -3647,11 +3671,11 @@ incollection,proceedings,inproceedings]{number}{% % % book条目类的驱动 % - \DeclareBibliographyDriver{book}{%源来自standard.bbx文件 - \usebibmacro{bibindex}% - \usebibmacro{begentry}% +\DeclareBibliographyDriver{book}{%源来自standard.bbx文件 +\usebibmacro{bibindex}% +\usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{maintitle+title}% \iftoggle{bbx:gbstrict}{}{% \newunit @@ -3837,7 +3861,7 @@ incollection,proceedings,inproceedings]{number}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3884,8 +3908,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \DeclareBibliographyDriver{report}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3933,8 +3957,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \DeclareBibliographyDriver{manual}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3986,7 +4010,7 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit @@ -4060,7 +4084,11 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \ifboolexpr{ + test {\ifnameundef{author}} + and + test {\ifnameundef{translator}} + }{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \usebibmacro{in:}% %\printtext{\texttt{//}\addthinspace}% diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx index a407be98e0..b95d7cd3d8 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx @@ -7,7 +7,7 @@ %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \ProvidesFile{gb7714-2015.cbx}[\versionofgbtstyle biblatex citation style] % @@ -65,8 +65,14 @@ } +% +%设置标注中各篇文献之间的标点 +%20210530,v1.0y,hzz %textcite标注命令中的标点设置 %\DeclareDelimFormat[textcite]{andothersdelim}{\addspace}% +\renewcommand*{\compcitedelim}{\addcomma}%\addcomma\addthinspace +\renewcommand*{\supercitedelim}{\addcomma} +\renewcommand*{\multicitedelim}{\addcomma} % %将连续3篇文献压缩改为连续2篇文献压缩 diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx index 2ecd604b01..fb67497c2f 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx @@ -10,7 +10,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -951,21 +951,17 @@ \DeclareSourcemap{ \maps[datatype=bibtex]{% - \map{%当没有作者时将editor转成author - \pernottype{inbook}%因为in系列中editor可能用来表示bookauthor,所以排除 - \pernottype{inproceedings} - \pernottype{incollection} - \pernottype{periodical}%因为peridical直接使用editor,所以排除 - %注意notfield在低版本biblatex中没有 - %\step[notfield=author,final]%当author不存在,将editor复制给author - \step[fieldsource=editor,fieldtarget=author]%并删除editor + \map{%如果author或者editor或者translator存在,那么设置namea便于后面判断。 + \step[fieldsource=author,final] + \step[fieldset=namea,origfieldval] } - \map{%当没有作者时将translator转成author - \pernottype{inbook} - \pernottype{inproceedings} - \pernottype{incollection} - %\step[notfield=author,final]%当author不存在,将translator复制给author - \step[fieldsource=translator,fieldtarget=author]%并删除translator + \map{% + \step[fieldsource=editor,final] + \step[fieldset=namea,origfieldval] + } + \map{% + \step[fieldsource=translator,final] + \step[fieldset=namea,origfieldval] } \map{%让address和location同步,biblatex中address是location的别名 %因此输出的时候只有location信息,但处理过程中是可以存在address的。 @@ -2033,6 +2029,8 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 % 这里调整一下两种语言参考文献的间隔,源来自biblatex.def \renewcommand*{\entrysetpunct}{\adddot\par\nobreak}%ay样式用par也可以,因为没有悬挂对齐问题 \renewcommand*{\bibpagespunct}{\addcolon\addthinspace}%%页码引用格式的修改,修改为用冒号 +% 2021.08.19,增加出版地和出版社之间的标点,hzz +\newcommand{\publocpunct}{\addcolon\addspace}%出版项中:出版社地址后面的标点 %\renewcommand{\relateddelim}{}%\par %===================================================================== @@ -2215,6 +2213,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 % v1.0w,20210401,hzz,针对其它语言的译者后的标点与中文不同做处理 % 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 % \printnames由start-stop控制项数,默认是1和maxnames/minnames +\newcommand{\aftertransdelim}{\addcomma\addthinspace} \renewbibmacro*{name:andothers}{\bibauthorfont% \ifboolexpr{ test {\ifnumequal{\value{listcount}}{\value{liststop}}} @@ -2228,7 +2227,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 %袁训来, 陈哲, 肖书海, 等. %胡泳, 范海燕, 译. %潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\addcomma\addthinspace}{}}{}%为了实现上述第二个示例情况做的处理 +\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 }} % 修改省略作者后的本地化字符串,比如et al. @@ -3008,7 +3007,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% }{% \iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}% {\printlist{location}}% -\addcolon\addspace% +\publocpunct% \iflistundef{institution}{% \iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% \bibstring{nopublisher}%[s.n.\adddot] {\printlist{institution}}}% @@ -3021,7 +3020,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% { \printlist{location}% \iflistundef{institution}% {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -3040,8 +3039,8 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\iffieldequalstr{note}{standard}{}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress}\space :\space\str@nopublisher]}{\printtext{[S.l.\space :\space s.n.\adddot]}}}}% {\iflistundef{location}{%\adddot \iffieldequalstr{note}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。 - {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\addcolon\addspace}}}% \bibstring{noaddress} - {\printlist{location}\addcolon\addspace}%%\addcolon\addspace% + {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress} + {\printlist{location}\publocpunct}%%\addcolon\addspace% \iflistundef{publisher}{% \iffieldequalstr{note}{standard}{}% {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}% @@ -3053,7 +3052,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}% \iflistundef{publisher} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{publisher}% \setunit*{\addcomma\space}% \usebibmacro{date}%%\newunit @@ -3069,7 +3068,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}%%加了一个编组避免\usebibmacro{date}把month和day信息去掉 \iflistundef{institution} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -3507,6 +3506,44 @@ test {\ifentrytype{conference}} }% } +% 责任者如果没有author用editor或translator替代 +% 20210521 v1.0y hzz +%专著如果责任者是editor那么不用输出类型信息 +\renewbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{editor}% + \usebibmacro{bbx:savehash}}% + \clearname{editor}% + \setunit{\printdelim{nameyeardelim}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} +%要注意要使用translator那么需要开启usetranslator选项的。 +%注意其中的标点处理。 +\renewbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } +{\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\renewcommand{\aftertransdelim}{\adddot\addspace}\printnames{translator}% + \usebibmacro{bbx:savehash}}% + \clearname{translator}% + \setunit{\printdelim{nameyeardelim}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} + % % 修改期刊的标题 % @@ -3655,7 +3692,7 @@ test {\ifentrytype{conference}} \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{maintitle+title}% \iftoggle{bbx:gbstrict}{}{% \newunit @@ -3842,7 +3879,7 @@ test {\ifentrytype{conference}} \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3891,8 +3928,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \DeclareBibliographyDriver{report}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3940,8 +3977,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \DeclareBibliographyDriver{manual}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3994,7 +4031,7 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx index e965dc84f8..6149ee149f 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx @@ -7,7 +7,7 @@ %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \ProvidesFile{gb7714-2015ay.cbx}[\versionofgbtstyle biblatex citation style] % @@ -97,7 +97,7 @@ test {\iftoggle{iftlseven}}%3.7=biblatex {\iffieldequals{namehash}{\cbx@lasthash} {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)} - {\setunit{\addcomma}% + {\setunit{\addcomma\addthinspace}%同一作者的年份之间的标点,示例见thesis-nwafu-ay \usebibmacro{cite:extradate}} {\setunit{\compcitedelim}% \usebibmacro{cite:labeldate+extradate}% diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx index f325830019..2ae26b511e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -31,10 +31,13 @@ % 20180629,v1.0k,hzz % % 原理方法:适用于3.10以上版本的biblatex,否则给出警告 - \@ifpackagelater{biblatex}{2017/12/28}{}{ + \providetoggle{iftlatest} + \@ifpackagelater{biblatex}{2017/12/28}{% + \toggletrue{iftlatest} %假设是最新版biblatex + }{% \blx@warning@noline{% biblatex version is too old for this style\MessageBreak - if errors raised,Please update biblatex to the latest version.} + if errors raised,Please update biblatex to the latest version.}% } @@ -525,6 +528,7 @@ \ifstrequal{#1}{familyahead}{\setcounter{gbnamefmtcase}{3}}{} \ifstrequal{#1}{pinyin}{\setcounter{gbnamefmtcase}{4}}{}%family-given \ifstrequal{#1}{reverseorder}{\setcounter{gbnamefmtcase}{5}}{}%family-given/given-family + \ifstrequal{#1}{quanpin}{\setcounter{gbnamefmtcase}{6}}{}%全拼 } @@ -537,6 +541,7 @@ \ifstrequal{#1}{left}{\setcounter{gbalignlabel}{1}}{} \ifstrequal{#1}{center}{\setcounter{gbalignlabel}{2}}{} \ifstrequal{#1}{gb7714-2015}{\setaligngbstyle}{} + \ifstrequal{#1}{gb7714-2015ay}{\setaligngbstyleay}{} } @@ -708,21 +713,17 @@ \DeclareSourcemap{%\perdatasource{examples.bib} \maps[datatype=bibtex]{% - \map{%当没有作者时将editor转成author - \pernottype{inbook}%因为in系列中editor可能用来表示bookauthor,所以排除 - \pernottype{inproceedings} - \pernottype{incollection} - \pernottype{periodical}%因为peridical直接使用editor,所以排除 - %注意notfield在低版本biblatex中没有 - %\step[notfield=author,final]%当author不存在,将editor复制给author - \step[fieldsource=editor,fieldtarget=author]%并删除editor + \map{%如果author或者editor或者translator存在,那么设置namea便于后面判断。 + \step[fieldsource=author,final] + \step[fieldset=namea,origfieldval] } - \map{%当没有作者时将translator转成author - \pernottype{inbook} - \pernottype{inproceedings} - \pernottype{incollection} - %\step[notfield=author,final]%当author不存在,将translator复制给author - \step[fieldsource=translator,fieldtarget=author]%并删除translator + \map{% + \step[fieldsource=editor,final] + \step[fieldset=namea,origfieldval] + } + \map{% + \step[fieldsource=translator,final] + \step[fieldset=namea,origfieldval] } \map{%让address和location同步,biblatex中address是location的别名 %因此输出的时候只有location信息,但处理过程中是可以存在address的。 @@ -755,6 +756,10 @@ \step[fieldsource=nameformat,match=pinyin,final] \step[fieldset=namefmtid,fieldvalue={4}] } + \map{%处理在bib文件中直接给出文献的姓名格式为pinyin的情况 + \step[fieldsource=nameformat,match=quanpin,final] + \step[fieldset=namefmtid,fieldvalue={6}] + } \map{%根据article确定文献类型标识符 \pertype{article} \step[fieldset=usera, fieldvalue={J}] @@ -1281,13 +1286,13 @@ \newlength{\lengthid} \newlength{\lengthlw} \newcommand{\itemcmd}{% -\settowidth{\lengthid}{\mkgbnumlabel{\printfield{labelnumber}}} -\addtolength{\lengthid}{\biblabelsep} -\setlength{\lengthlw}{\textwidth} -\addtolength{\lengthlw}{-\lengthid} +\settowidth{\lengthid}{\mkgbnumlabel{\printfield{labelnumber}}}% +\addtolength{\lengthid}{\biblabelsep}% +\setlength{\lengthlw}{\textwidth}% +\addtolength{\lengthlw}{-\lengthid}% \addvspace{\bibitemsep}%恢复\bibitemsep的作用 %\parshape 2 0em \textwidth \lengthid \lengthlw -\hangindent\lengthid +\hangindent\lengthid% \mkgbnumlabel{\printfield{labelnumber}}% \hspace{\biblabelsep}} % @@ -1298,6 +1303,25 @@ {\itemcmd}} +% +% 增加一个作者年制文献表格式的文献表输出环境。 +% 20210411,hzz,v1.0x +\def\setaligngbstyleay{% +\setlength{\bibhang}{1em} +\setlength{\bibitemindent}{-\bibhang} +\setlength{\bibitemsep}{4.5pt} +\defbibenvironment{bibliography} + {\list + {} + {\setlength{\leftmargin}{\bibhang}% + \setlength{\itemindent}{\bibitemindent}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}} + {\endlist} + {\item} +} + + %===================================================================== % 设置单元或块等的标点 %===================================================================== @@ -1311,6 +1335,8 @@ % 这里调整一下两种语言参考文献的间隔,源来自biblatex.def \renewcommand*{\entrysetpunct}{\adddot\newline\nobreak} \renewcommand*{\bibpagespunct}{\addcolon\addthinspace}%%页码引用格式的修改,修改为用冒号 +% 2021.08.19,增加出版地和出版社之间的标点,hzz +\newcommand{\publocpunct}{\addcolon\addspace}%出版项中:出版社地址后面的标点 %\renewcommand{\relateddelim}{}%\par %===================================================================== @@ -1464,6 +1490,12 @@ {\namepartgiven} {\namepartprefix} {\namepartsuffix}}}% +\or +\usebibmacro{name:gbquanpin} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% \fi \usebibmacro{name:andothers}} @@ -1560,6 +1592,36 @@ \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% } +%中文常见风格,汉语拼音全拼模式 +\newbibmacro*{name:gbquanpin}[4]{\bibauthorfont% +\renewrobustcmd*{\bibinitperiod}{}%将名字简写后的点去掉,%来源biblatex2.STY +\renewcommand*{\revsdnamepunct}{}%%来源biblatex.def +\renewrobustcmd*{\bibnamedelima}{}% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \ifdefvoid{#3}{}{% + \ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% + \ifboolexpe{% + test {\ifdefvoid{#2}} + and + test {\ifdefvoid{#3}}} + {} + {\revsdnamepunct}% + \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{\MakeCapital{#2}}\isdot}%\MakeCapital + \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot} + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% +} + \def\UrlFont{\rmfamily}%设置url字体为roman字体%\ttfamily %\urlstyle{rm} %使用这句也一样 @@ -1744,6 +1806,8 @@ %===================================================================== %设置驱动格式 %===================================================================== +%定义译者后面的标点,便于在不同环境下修改。 +\newcommand{\aftertransdelim}{\addcomma\addthinspace}% %中文环境的局部化代码 \def\localsetchinesecode{% @@ -1792,7 +1856,7 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}% \iffieldequalstr{usere}{chinese}{\usebibmacro{bytranslator+othersstrg}}{}%“译”的位置换到下面来,即放到译者后面。 %\setunit{\addspace}% \newunit}% - \usebibmacro{withothers}} + \usebibmacro{withothers}}% % \renewbibmacro*{bytranslator+othersstrg}{% \def\abx@tempa{bytranslator}% @@ -1814,7 +1878,7 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}% \clearname{afterword}} {}}}% \iffieldequalstr{usere}{chinese}{\bibstring{bytranslatorcn}} - {\bibstring{\abx@tempa}}} + {\bibstring{\abx@tempa}}}% % % 修改作者数量超过限定值,做省略时的处理格式 % v1.0,20160701,hzz @@ -1835,8 +1899,8 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}% %袁训来, 陈哲, 肖书海, 等. %胡泳, 范海燕, 译. %潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\addcomma\addthinspace}{}}{}%为了实现上述第二个示例情况做的处理 -}} +\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 +}}% % % 修改省略作者后的本地化字符串,比如et al. % v1.0o,20190103,hzz @@ -1993,7 +2057,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% }{% \iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}% {\printlist{location}}% -\addcolon\addspace% +\publocpunct% \iflistundef{institution}{% \iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% \bibstring{nopublisher}%[s.n.\adddot] {\printlist{institution}}}% @@ -2006,7 +2070,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}% \iflistundef{institution}% {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -2025,8 +2089,8 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\iffieldequalstr{note}{standard}{}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress}\space :\space\str@nopublisher]}{\printtext{[S.l.\space :\space s.n.\adddot]}}}}% {\iflistundef{location}{%\adddot \iffieldequalstr{note}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。 - {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\addcolon\addspace}}}% \bibstring{noaddress} - {\printlist{location}\addcolon\addspace}%%\addcolon\addspace% + {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress} + {\printlist{location}\publocpunct}%%\addcolon\addspace% \iflistundef{publisher}{% \iffieldequalstr{note}{standard}{}% {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}% @@ -2038,7 +2102,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}% \iflistundef{publisher} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{publisher}% \setunit*{\addcomma\space}% \usebibmacro{date}%%\newunit @@ -2053,7 +2117,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}%%加了一个编组避免\usebibmacro{date}把month和day信息去掉 \iflistundef{institution} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -2252,6 +2316,29 @@ incollection,proceedings,inproceedings]{number}{% {}{\printnames{bookauthor}}% }% }% +% 责任者如果没有author用editor或translator替代 +% 20210521 v1.0y hzz +%专著如果责任者是editor那么不用输出类型信息 +\renewbibmacro*{editor+others}{% + \ifboolexpr{% + test \ifuseeditor + and + not test {\ifnameundef{editor}}% + }% + {\printnames{editor}% + \clearname{editor}}% + {}}% +%要注意要使用translator那么需要开启usetranslator选项的。 +%注意其中的标点处理。 +\renewbibmacro*{translator+others}{% + \ifboolexpr{% + test \ifusetranslator + and + not test {\ifnameundef{translator}}% + }% + {\renewcommand{\aftertransdelim}{\adddot\addspace}\printnames{translator}% + \clearname{translator}}% + {}}% % % 修改期刊的标题 % @@ -2339,7 +2426,7 @@ incollection,proceedings,inproceedings]{number}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{maintitle+title}% \iftoggle{bbx:gbstrict}{}{% \newunit @@ -2517,7 +2604,7 @@ incollection,proceedings,inproceedings]{number}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -2562,8 +2649,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \csdef{blx@bbx@report}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -2611,8 +2698,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \csdef{blx@bbx@manual}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 + \usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -2663,7 +2750,7 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx index b718fde050..5160edfcfc 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx @@ -7,194 +7,10 @@ %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \ProvidesFile{gb7714-2015ms.cbx}[\versionofgbtstyle biblatex citation style] % -% 加载标准样式 +% 加载样式 % -\RequireCitationStyle{numeric-comp} %numeric - - -% -% 选项设置 -% -\ExecuteBibliographyOptions{ - autocite = superscript , - autopunct = true , - %sorting = none , - maxcitenames=1, - mincitenames=1, -} - -%textcite标注命令中的标点设置 -%\DeclareDelimFormat[textcite]{andothersdelim}{\addspace}% - -%修改\mkbibsuperscript宏在最后加上一个空白使得xeCJK不会自动在引用标签后面加上中英文之间的空白 -%hzz,v1.0w,2021-0401 -\renewrobustcmd{\mkbibsuperscript}[1]{% - \unspace\allowhyphens\textsuperscript{% - \begingroup - \protected\long\def\mkbibsuperscript##1{% - \blx@warning{Nested superscript}% - \mkbibbrackets{##1}}% - #1\endgroup}\kern\z@} - -% -% 定义一个上标方括号wrapper -% -\newcommand*\mkbibsuperbracket[1]{% - \mkbibsuperscript{\mkbibbrackets{#1}}% -} - -% 修改postnote的输出格式 -\DeclareFieldFormat{postnote}{#1} - -% -% 重定义cite命令 -% -% 方法:\DeclareCiteCommand{\cite}[\mkbibparens]{precode}{loopcode}{sepcode}{postcode} -% v1.0p版后将cite的处理方式修改为类似pagescite,而不再使用biblatex的标准方式 -\DeclareCiteCommand{\cite}[\mkbibsuperscript]%利用mkbibsuperbracket添加方括号 - {[\usebibmacro{cite:init}% - \usebibmacro{prenote}} - {\usebibmacro{citeindex}% - \usebibmacro{cite:comp}} - {} - {\usebibmacro{cite:dump}]% - \printfield{postnote}} -% v1.0p 以前用的方式 -%\DeclareCiteCommand{\cite}[\mkbibsuperbracket]%利用mkbibsuperbracket添加方括号 -% {\usebibmacro{cite:init}% -% \usebibmacro{prenote}} -% {\usebibmacro{citeindex}% -% \usebibmacro{cite:comp}} -% {} -% {\usebibmacro{cite:dump}% -% \usebibmacro{postnote}} - -% -% 定义upcite命令 -% 20180604,v1.0l,hzz -% 20190409,v1.0r,hzz -% 方法:对supercite增加[] -\newrobustcmd*{\upcite}{% - \cite} - -% -% 重定义parencite命令,以满足标签带页码的国标要求 -% -\DeclareCiteCommand{\parencite}%[\mkbibbrackets] - {[\usebibmacro{cite:init}%] - \usebibmacro{prenote}}% - {\usebibmacro{citeindex}% - \usebibmacro{cite:comp}} - {} - {%[ - \usebibmacro{cite:dump}]% - \mkbibsuperscript{\printfield{postnote}}} - -% -% 新定义pagescite命令,以满足标签带页码的国标要求 -% -% 原理方法: -% 1.新增页码输出宏 -\newbibmacro*{postpages}{% - \iffieldundef{postnote} - {\printfield[postnote]{pages}} - {\printfield{postnote}}} -% 2.新增\pagescite引用命令 -\DeclareCiteCommand{\pagescite}[\mkbibsuperscript]%\mkbibbrackets,仍然用上标 - {[\usebibmacro{cite:init}%]直接添加方括号 - \usebibmacro{prenote}% - } - {\usebibmacro{citeindex}% - \usebibmacro{cite:comp}} - {} - {\usebibmacro{cite:dump}]% - \usebibmacro{postpages}} - -% -% 定义yearpagescite,为与ay样式兼容,等同于\pagescite -% -\DeclareCiteCommand{\yearpagescite}[\mkbibsuperscript]%\mkbibbrackets,仍然用上标 - {[\usebibmacro{cite:init}%]直接添加方括号 - \usebibmacro{prenote}% - } - {\usebibmacro{citeindex}% - \usebibmacro{cite:comp}} - {} - {\usebibmacro{cite:dump}]% - \usebibmacro{postpages}} - - - -% -% 定义\yearcite命令,为与ay样式兼容,且提供不输出页码的标签格式, -% -% 原理方法:等同于\pagescite,但不要页码 -\DeclareCiteCommand{\yearcite}[\mkbibsuperscript]%\mkbibbrackets,仍然用上标 - {[\usebibmacro{cite:init}%]直接添加方括号 - \usebibmacro{prenote}% - } - {\usebibmacro{citeindex}% - \usebibmacro{cite:comp}} - {} - {\usebibmacro{cite:dump}]} - -% -% 定义\authornumcite命令,输出作者信息,然后在后面带上顺序编码 -% 20180427,v1.0k,增加,hzz -% gb7714样式新定义的命令都把cite放到最后,比如前面的pagescite,yearcite,这里的\authornumcite -% 区别于biblatex定义的命令都把cite放到前面,比如citeauthor等。 -%见numeric.CBX -\newbibmacro*{cite}{% - \printtext[bibhyperref]{% - \printfield{labelprefix}% - \printfield{labelnumber}% - \ifbool{bbx:subentry} - {\printfield{entrysetcount}} - {}}} -%见numeric.CBX,\DeclareCiteCommand{\cite}, -\DeclareCiteCommand{\authornumcite}%[\mkbibsuperscript] - {\usebibmacro{prenote}} - {\iffieldequalstr{userf}{cn}{\renewcommand*{\andothersdelim}{\addthinspace}}%\addthinspace - {\renewcommand*{\andothersdelim}{\addspace}}% - \printnames{labelname}\mkbibsuperscript{\mkbibbrackets{\usebibmacro{citeindex}% - \usebibmacro{cite}}}} - {\multicitedelim} - {\mkbibsuperscript{\printfield{postnote}}} - - -% -% 增加如下多个命令 -% 20190409,v1.0r,hzz -% 方法:利用newcommand或newrobustcmd命令进行定义 -% 注意\citet和\citep命令之所以不用newrobustcmd,是为避免加载natbib模块后产生冲突 -\DeclareCiteCommand{\citet}% - {\usebibmacro{prenote}} - {\iffieldequalstr{userf}{cn}{\renewcommand*{\andothersdelim}{\addthinspace}}%\addthinspace - {\renewcommand*{\andothersdelim}{\addspace}}% - \printnames{labelname}\mkbibsuperscript{\mkbibbrackets{\usebibmacro{citeindex}% - \usebibmacro{cite}}}} - {\multicitedelim} - {\mkbibsuperscript{\printfield{postnote}}} - - -\DeclareCiteCommand{\citep}[\mkbibsuperscript]%利用mkbibsuperbracket添加方括号 - {[\usebibmacro{cite:init}% - \usebibmacro{prenote}} - {\usebibmacro{citeindex}% - \usebibmacro{cite:comp}} - {} - {\usebibmacro{cite:dump}]% - \printfield{postnote}} - -\newrobustcmd*{\citetns}% - {\textcite} - -\newrobustcmd*{\citepns}% - {\parencite} - -\newrobustcmd*{\inlinecite}% - {\parencite} +\RequireCitationStyle{gb7714-2015} %numeric diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx index 49a4f328c6..475f9bee60 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx @@ -11,7 +11,7 @@ % % 版本和时间信息 % -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \def\versionofbiblatex{\abx@version} \ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style] %\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求 @@ -591,6 +591,7 @@ \ifstrequal{#1}{familyahead}{\setcounter{gbnamefmtcase}{3}}{} \ifstrequal{#1}{pinyin}{\setcounter{gbnamefmtcase}{4}}{}%family-given \ifstrequal{#1}{reverseorder}{\setcounter{gbnamefmtcase}{5}}{}%family-given/given-family + \ifstrequal{#1}{quanpin}{\setcounter{gbnamefmtcase}{6}}{}%全拼 } \ExecuteBibliographyOptions{gbnamefmt} @@ -603,6 +604,7 @@ \ifstrequal{#1}{left}{\setcounter{gbalignlabel}{1}}{} \ifstrequal{#1}{center}{\setcounter{gbalignlabel}{2}}{} \ifstrequal{#1}{gb7714-2015}{\setaligngbstyle}{} + \ifstrequal{#1}{gb7714-2015ay}{\setaligngbstyleay}{} } \ExecuteBibliographyOptions{ @@ -759,21 +761,17 @@ \DeclareSourcemap{ \maps[datatype=bibtex]{% - \map{%当没有作者时将editor转成author - \pernottype{inbook}%因为in系列中editor可能用来表示bookauthor,所以排除 - \pernottype{inproceedings} - \pernottype{incollection} - \pernottype{periodical}%因为peridical直接使用editor,所以排除 - %注意notfield在低版本biblatex中没有 - %\step[notfield=author,final]%当author不存在,将editor复制给author - \step[fieldsource=editor,fieldtarget=author]%并删除editor + \map{%如果author或者editor或者translator存在,那么设置namea便于后面判断。 + \step[fieldsource=author,final] + \step[fieldset=namea,origfieldval] } - \map{%当没有作者时将translator转成author - \pernottype{inbook} - \pernottype{inproceedings} - \pernottype{incollection} - %\step[notfield=author,final]%当author不存在,将translator复制给author - \step[fieldsource=translator,fieldtarget=author]%并删除translator + \map{% + \step[fieldsource=editor,final] + \step[fieldset=namea,origfieldval] + } + \map{% + \step[fieldsource=translator,final] + \step[fieldset=namea,origfieldval] } \map{%让address和location同步,biblatex中address是location的别名 %因此输出的时候只有location信息,但处理过程中是可以存在address的。 @@ -806,6 +804,10 @@ \step[fieldsource=nameformat,match=pinyin,final] \step[fieldset=namefmtid,fieldvalue={4}] } + \map{%处理在bib文件中直接给出文献的姓名格式为全拼的情况 + \step[fieldsource=nameformat,match=quanpin,final] + \step[fieldset=namefmtid,fieldvalue={6}] + } \map{%根据article确定文献类型标识符 \pertype{article} \step[fieldset=usera, fieldvalue={J}] @@ -1589,6 +1591,44 @@ {\endgroup} {\itemcmd}} +% +% 增加一个作者年制文献表格式的文献表输出环境。 +% 20210411,hzz,v1.0x +\def\setaligngbstyleay{% +\setlength{\bibhang}{1em} +\setlength{\bibitemindent}{-\bibhang} +\setlength{\bibitemsep}{4.5pt} +\defbibenvironment{bibliography} + {\list + {} + {\setlength{\leftmargin}{\bibhang}% + \setlength{\itemindent}{\bibitemindent}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}} + {\endlist} + {\item} +} + +\defbibenvironment{numerical}%作者年制中数字标签的文献表环境 + {\setlength{\bibhang}{\biblabelsep}% + \setlength{\labelnumberwidth}{2em}% + \setlength{\bibitemindent}{0pt}% + \setlength{\biblabelextend}{0pt}% + \setlength{\biblabelextend}{0pt}% + \list + {\printtext[labelnumberwidth]{\arabic{refnumeric}}} + {\usecounter{refnumeric}% + \addtolength{\labelnumberwidth}{\biblabelextend}% + \setlength{\labelwidth}{\labelnumberwidth}% + \setlength{\labelsep}{\biblabelsep}% + \setlength{\leftmargin}{\bibhang}% + \addtolength{\leftmargin}{\labelnumberwidth}% + \setlength{\itemindent}{\bibitemindent}% + \setlength{\itemsep}{\bibitemsep}% + \setlength{\parsep}{\bibparsep}}% + \renewcommand*{\makelabel}[1]{\hss##1}} + {\endlist} + {\item} %===================================================================== % 设置单元或块等的标点 @@ -1603,6 +1643,8 @@ % 这里调整一下两种语言参考文献的间隔,源来自biblatex.def \renewcommand*{\entrysetpunct}{\adddot\newline\nobreak} \renewcommand*{\bibpagespunct}{\addcolon\addthinspace}%%页码引用格式的修改,修改为用冒号 +% 2021.08.19,增加出版地和出版社之间的标点,hzz +\newcommand{\publocpunct}{\addcolon\addspace}%出版项中:出版社地址后面的标点 %\renewcommand{\relateddelim}{}%\par %===================================================================== @@ -1781,6 +1823,7 @@ % v1.0w,20210401,hzz,针对其它语言的译者后的标点与中文不同做处理 % 原理方法:判断作者或译者是否中文,若中文用字符等,否则用et al. 。 % \printnames由start-stop控制项数,默认是1和maxnames/minnames +\newcommand{\aftertransdelim}{\addcomma\addthinspace} \renewbibmacro*{name:andothers}{\bibauthorfont% \ifboolexpr{ test {\ifnumequal{\value{listcount}}{\value{liststop}}} @@ -1794,10 +1837,11 @@ %袁训来, 陈哲, 肖书海, 等. %胡泳, 范海燕, 译. %潘惠霞, 魏婧, 杨艳, 等译. -\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\addcomma\addthinspace}{}}{}%为了实现上述第二个示例情况做的处理 +\ifcurrentname{translator}{\iffieldequalstr{usere}{chinese}{\aftertransdelim}{}}{}%为了实现上述第二个示例情况做的处理 }} + % % 修改省略作者后的本地化字符串,比如et al. % v1.0o,20190103,hzz @@ -2021,6 +2065,12 @@ {\namepartgiven} {\namepartprefix} {\namepartsuffix}}}% +\or +\usebibmacro{name:gbquanpin} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% \fi \usebibmacro{name:andothers}} @@ -2117,6 +2167,37 @@ \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% } +%中文常见风格,汉语拼音全拼模式 +\newbibmacro*{name:gbquanpin}[4]{\bibauthorfont% +\renewrobustcmd*{\bibinitperiod}{}%将名字简写后的点去掉,%来源biblatex2.STY +\renewcommand*{\revsdnamepunct}{}%%来源biblatex.def +\renewrobustcmd*{\bibnamedelima}{}% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \ifdefvoid{#3}{}{% + \ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% + \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\MakeSentenceCase{\mkbibnamegiven{#2}}\isdot}%\MakeCapital + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \ifdefvoid{#2}{\mkbibnamefamily{\MakeCapital{#1}}}{\mkbibnamefamily{\MakeCapital{#1}}}\isdot% + \ifboolexpe{% + test {\ifdefvoid{#2}} + and + test {\ifdefvoid{#3}}} + {} + {\revsdnamepunct}% + \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{\MakeCapital{#2}}\isdot}%\MakeCapital + \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot} + \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}% +} + + % % url和url日期格式 @@ -2254,7 +2335,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% }{% \iflistundef{location}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}}{\printtext{[S.l.\adddot]}}}% {\printlist{location}}% -\addcolon\addspace% +\publocpunct% \iflistundef{institution}{% \iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}}{\printtext{\mkbibbrackets{s.n.}}}}% {\printlist{institution}}}% @@ -2267,7 +2348,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}% \iflistundef{institution}% {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -2286,8 +2367,8 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\iffieldequalstr{note}{standard}{}{\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress}\space :\space\str@nopublisher]}{\printtext{[S.l.\space :\space s.n.\adddot]}}}}% {\iflistundef{location}{%\adddot \iffieldequalstr{note}{standard}{}%%从gbt7714-2015标准第19页看到,标准存在出版项时输出,没有时完全省略。 - {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\addcolon\addspace}}}% \bibstring{noaddress} - {\printlist{location}\addcolon\addspace}%%\addcolon\addspace% + {\iftoggle{ifCJKforgbt}{\printtext{[\str@noaddress]}\addcolon\addspace}{\printtext{[S.l.\adddot]}\publocpunct}}}% \bibstring{noaddress} + {\printlist{location}\publocpunct}%%\addcolon\addspace% \iflistundef{publisher}{% \iffieldequalstr{note}{standard}{}% {\iftoggle{ifCJKforgbt}{\printtext{[\str@nopublisher]}\setunit{\adddot\addspace}\setunit*{\addcomma\addspace}}% @@ -2299,7 +2380,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}% \iflistundef{publisher} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{publisher}% \setunit*{\addcomma\space}% \usebibmacro{date}%%\newunit @@ -2315,7 +2396,7 @@ test {\iflistundef{location}} and test {\iflistundef{institution}}% {\printlist{location}%%加了一个编组避免\usebibmacro{date}把month和day信息去掉 \iflistundef{institution} {\setunit*{\addcomma\space}} - {\setunit*{\addcolon\space}}% + {\setunit*{\publocpunct}}% \printlist{institution}% \setunit*{\addcomma\space}% \usebibmacro{date}% @@ -2573,6 +2654,31 @@ incollection,proceedings,inproceedings]{number}{% }% } +% 责任者如果没有author用editor或translator替代 +% 20210521 v1.0y hzz +%专著如果责任者是editor那么不用输出类型信息 +\renewbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \clearname{editor}} + {}} +%要注意要使用translator那么需要开启usetranslator选项的。 +%注意其中的标点处理。 +\renewbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\renewcommand{\aftertransdelim}{\adddot\addspace}\printnames{translator}% + \clearname{translator}} + {}} + + % % 修改期刊的标题 % @@ -2722,7 +2828,7 @@ incollection,proceedings,inproceedings]{number}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{maintitle+title}% \iftoggle{bbx:gbstrict}{}{% \newunit @@ -2907,8 +3013,8 @@ incollection,proceedings,inproceedings]{number}{% \DeclareBibliographyDriver{online}{%源来自standard.BBX \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -2955,8 +3061,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \DeclareBibliographyDriver{report}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3004,8 +3110,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \DeclareBibliographyDriver{manual}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit% @@ -3056,8 +3162,8 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ \DeclareBibliographyDriver{misc}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% - \usebibmacro{author/editor+others/translator+others}% -\ifnameundef{author}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 +\usebibmacro{author/editor+others/translator+others}% +\ifnameundef{namea}{}{\setunit{\labelnamepunct}\newblock}%这一段用于去除作者不存在时多出的标点 \usebibmacro{title}% \iftoggle{bbx:gbstrict}{}{% \newunit @@ -3345,6 +3451,44 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{ {}% {\usebibmacro{date+extradate}}} +% 责任者如果没有author用editor或translator替代 +% 20210521 v1.0y hzz +%专著如果责任者是editor那么不用输出类型信息 +\renewbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\printnames{editor}% + \usebibmacro{bbx:savehash}}% + \clearname{editor}% + \setunit{\printdelim{nameyeardelim}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} +%要注意要使用translator那么需要开启usetranslator选项的。 +%注意其中的标点处理。 +\renewbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } +{\usebibmacro{bbx:dashcheck} + {\bibnamedash} + {\renewcommand{\aftertransdelim}{\adddot\addspace}\printnames{translator}% + \usebibmacro{bbx:savehash}}% + \clearname{translator}% + \setunit{\printdelim{nameyeardelim}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}% + \usebibmacro{date+extradate}} + }{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx index 4ab0cd5427..6b64e85bae 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx @@ -7,7 +7,7 @@ %% Released under the LaTeX Project Public License v1.3c or later %% --------------------------------------------------------------- %% -\def\versionofgbtstyle{2021/05/06 v1.0y} +\def\versionofgbtstyle{2021/08/19 v1.0z} \ProvidesFile{gb7714-2015mx.cbx}[\versionofgbtstyle biblatex citation style] % |