summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-08-21 03:03:19 +0000
committerNorbert Preining <norbert@preining.info>2021-08-21 03:03:19 +0000
commitdd302372d8cdbe867c55bbea51f1f2a4842c3353 (patch)
tree1d2e75f175f970964291421b3d503e85893da5dd /macros/latex/contrib
parentda0e202bdd0dc2f52f28ae0d96dc96969826890b (diff)
CTAN sync 202108210303
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md236
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdfbin1915138 -> 1918787 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex103
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.bbx206
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.cbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.bbx202
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.cbx21
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.bbx54
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.cbx15
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.bbx52
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.cbx13
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx98
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx95
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx165
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx190
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx206
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx6
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin590649 -> 590670 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex6
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin470144 -> 471024 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex89
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx524
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1377012 -> 1380062 bytes
-rw-r--r--macros/latex/contrib/phonenumbers/README4
-rw-r--r--macros/latex/contrib/phonenumbers/doc/Literatur.bib71
-rw-r--r--macros/latex/contrib/phonenumbers/doc/phonenumbers-de.pdfbin1889747 -> 1927261 bytes
-rw-r--r--macros/latex/contrib/phonenumbers/doc/phonenumbers-de.tex117
-rw-r--r--macros/latex/contrib/phonenumbers/doc/phonenumbers-en.pdfbin1888276 -> 1913835 bytes
-rw-r--r--macros/latex/contrib/phonenumbers/doc/phonenumbers-en.tex117
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-AT_Ortsnamen.tex26
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-DE_Ortsnamen.tex21
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-DE_Vorwahlen.tex7
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-FR_Ortsnamen.tex24
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-FR_Vorwahlen.tex26
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-UK_Ortsnamen.tex22
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-UK_Vorwahlen.tex14
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-US_Ortsnamen.tex29
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phn-US_Vorwahlen.tex72
-rw-r--r--macros/latex/contrib/phonenumbers/tex/phonenumbers.sty688
43 files changed, 2347 insertions, 1207 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
index 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
Binary files differ
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]
%
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 23cdec1049..5b3b53d4aa 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/08/18}{1.29c}
+\ProvidesExplClass{easybook}{2021/08/20}{1.29d}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -297,7 +297,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2021/08/18}{1.29c}
+\ProvidesExplPackage{easybase}{2021/08/20}{1.29d}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_add:Nn { NV,Nv }
@@ -2394,7 +2394,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/18}{1.29c}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/20}{1.29d}
{Customization of tcolorbox for easybook}
\tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip }
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 281479c7dd..a577e025b6 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index eba882bc04..4107882ddb 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -12,8 +12,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK 使用手册,
- version = v1.29c,
- date = 2021/08/18,
+ version = v1.29d,
+ date = 2021/08/20,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
email = quee123@foxmail.com,
@@ -253,7 +253,7 @@
\command{listoftables}[\sarg\parg\oarg{键值列表}]
输出表格目录命令。带有星号的目录命令不将目录标题添加进主文档目录,带有 \parg{} 号的目录命令可以使当前标题编号。
\command{listoflstlistings}[\sarg\parg\oarg{键值列表}]
- 输出代码目录命令。带有星号的目录命令不将目录标题添加进主文档目录,带有 \parg{} 号的目录命令可以使当前标题编号。以上命令可选参数的 \meta{键值列表} 如下:
+ 输出代码目录命令。带有星号的目录命令不将目录标题添加进主文档目录,带有 \parg{} 号的目录命令可以使当前标题编号。以上命令可选参数 \meta{键值列表} 的选项如下:
\end{commands}
\begin{options}
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 7a1973e08e..0ae9b00165 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 7d7d915bc3..52aee27992 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -118,7 +118,7 @@ avec une distribution TeX comme MiKTeX, TeXlive ou MacTeX.
\emph{Remarque} : Si vous utilisez un service LaTeX via Internet (ex. :
Overleaf) vous pouvez télécharger le fichier |nicematrix.sty| dans le dossier de
votre projet pour bénéficier de la dernière version de
-\pkg{nicematrix}.\footnote{La dernière version de \verb|nicematrix.sty| peut
+\pkg{nicematrix}.\footnote{La dernière version de |nicematrix.sty| peut
être téléchargée sur le serveur \textsc{svn} de TeXLive : \newline \small
\url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}}
@@ -166,10 +166,10 @@ L'extension \pkg{nicematrix} définit les nouveaux environnements suivants :
\begin{tabular}{llll}
\{NiceTabular\} & \{NiceArray\} & \{NiceMatrix\} \\
\{NiceTabular*\} & \{pNiceArray\} & \{pNiceMatrix\} \\
- & \{bNiceArray\} & \{bNiceMatrix\} \\
- & \{BNiceArray\} & \{BNiceMatrix\} \\
- & \{vNiceArray\} & \{vNiceMatrix\} \\
- & \{VNiceArray\} & \{VNiceMatrix\}
+\{NiceTabularX\} & \{bNiceArray\} & \{bNiceMatrix\} \\
+ & \{BNiceArray\} & \{BNiceMatrix\} \\
+ & \{vNiceArray\} & \{vNiceMatrix\} \\
+ & \{VNiceArray\} & \{VNiceMatrix\}
\end{tabular}
\end{ttfamily}
@@ -179,6 +179,7 @@ Les environnements |{NiceArray}|, |{NiceTabular}| et |{NiceTabular*}| sont
similaires aux environnements |{array}|, |{tabular}| et |{tabular*}| de
l'extension \pkg{array} (qui est chargée par \pkg{nicematrix}).
+
\medskip
Les environnements |{pNiceArray}|, |{bNiceArray}|, etc. n'ont pas d'équivalents
dans \pkg{array}.
@@ -189,6 +190,14 @@ environnements correspondants de l'\pkg{amsmath} (qui est chargée par
\pkg{nicematrix}) : |{matrix}|, |{pmatrix}|, etc.
\medskip
+L'environnement |{NiceTabularX}| est similaire à l'environnement |{tabularx}| de
+l'extension éponyme.\footnote{Néanmoins, on peut aussi utiliser directement les
+ colonnes |X| dans l'environnement |{NiceTabular}|, la largeur
+ souhaitée pour le tableau étant spécifiée par la clé |width|: cf.
+ p.~\pageref{colonne-X}.}
+
+
+\medskip
\textbf{On conseille d'utiliser prioritairement les environnements classiques et de
n'utiliser les environnements de \pkg{nicematrix} que lorsqu'on utilise les
fonctionnalités supplémentaires offertes par ces environnements (cela permet
@@ -362,7 +371,7 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
\bigskip
On peut aussi utiliser la clé |baseline| pour aligner une matrice sur un filet
horizontal (tracé par |\hline|). On doit pour cela donner la valeur
-|line-|\textsl{i} où \textsl{i} est le numéro de la rangée qui suit ce filet
+|line-|\textsl{i} où \textsl{i} est le numéro de la rangée qui \emph{suit} ce filet
horizontal.
\smallskip
@@ -372,7 +381,7 @@ horizontal.
\smallskip
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-$A=\begin{pNiceArray}{cc|cc}[baseline=line-3]
+$A=\begin{pNiceArray}{cc|cc}~emphase#[baseline=line-3]@
\dfrac1A & \dfrac1B & 0 & 0 \\
\dfrac1C & \dfrac1D & 0 & 0 \\
\hline
@@ -402,7 +411,7 @@ $A=\begin{pNiceArray}{cc|cc}[baseline=line-3]
Dans les environnements de \pkg{nicematrix}, on peut utiliser la commande
|\Block| pour placer un élément au centre d'un rectangle de cases
-fusionnées.\footnote{Les espaces situés après une commande \verb|\Block| sont supprimés.}
+fusionnées.\footnote{Les espaces situés après une commande |\Block| sont supprimés.}
La commande |\Block| doit être utilisée dans la case supérieure gauche du bloc
avec deux arguments obligatoires.
@@ -729,10 +738,9 @@ Rang & \Block{1-3}{Premier groupe} & & & \Block{1-3}{Deuxième groupe} \\
\end{center}
\medskip
-\colorbox{yellow!50}{\bfseries Nouveau 5.17}\enskip Pour avoir un positionnement
-horizontal du contenu du bloc qui s'appuie sur les limites des colonnes du
-tableau LaTeX (et non sur le contenu de ces colonnes), il faut utiliser les clés
-|L|, |R| et |C| de la commande |\Block|.
+Pour avoir un positionnement horizontal du contenu du bloc qui s'appuie sur les
+limites des colonnes du tableau LaTeX (et non sur le contenu de ces colonnes),
+il faut utiliser les clés |L|, |R| et |C| de la commande |\Block|.
\section{Les filets horizontaux et verticaux}
@@ -800,7 +808,7 @@ a & b & c & d \\
\bigskip
Il reste néanmoins possible de définir un spécificateur, nommé par exemple
-\verb|I|, pour tracer des filets verticaux avec le comportement standard de
+|I|, pour tracer des filets verticaux avec le comportement standard de
\pkg{array} :
%
\begin{Verbatim}
@@ -941,8 +949,8 @@ préambule) ;
\begin{itemize}
\item Les blocs en question sont :
\begin{itemize}
-\item ceux créés par la commande |\Block|\footnote{Et aussi la commande \verb|\multicolumn| même s'il
- est recommandé d'utiliser plutôt \verb|\Block| quand on utilise l'extension
+\item ceux créés par la commande |\Block|\footnote{Et aussi la commande |\multicolumn| même s'il
+ est recommandé d'utiliser plutôt |\Block| quand on utilise l'extension
\pkg{nicematrix}.} de \pkg{nicematrix} présentée
p.~\pageref{Block};
\item ceux délimités implicitement par des lignes en pointillés continues, créées
@@ -1010,9 +1018,8 @@ arum & iris & jacinthe & muguet
\bigskip
-\colorbox{yellow!50}{\textbf{Nouveau 5.17}}\enskip La clé
-|hvlines-except-borders| est similaire à la clé |hvlines| mais ne trace pas les
-filets sur les bords horizontaux et verticaux du tableau.
+La clé |hvlines-except-borders| est similaire à la clé |hvlines| mais ne trace
+pas les filets sur les bords horizontaux et verticaux du tableau.
\bigskip
\subsubsection{Les coins (vides)}
@@ -1300,7 +1307,7 @@ l'environnement.
De nouvelles commandes sont disponibles dans ce |\CodeBefore|:
|\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors|,
|\rowlistcolors|, |\chessboardcolors| et |\arraycolor|.\footnote{On pourra remarquer que, dans le
- \verb|\CodeBefore|, des nœuds PGF/Tikz de la forme \verb+(i-|j)+ correspondant
+ |\CodeBefore|, des nœuds PGF/Tikz de la forme \verb+(i-|j)+ correspondant
à la position des filets éventuels sont également accessibles : cf. p.~\pageref{noeuds-i}.}
\label{code-before}
@@ -1779,23 +1786,33 @@ chacune des cases restantes sur la rangée en cours.
\medskip
Elle prend aussi en premier argument optionnel, entre crochets, une liste de
-couples clé-valeur. Les clés disponibles sont |cell-space-top-limit|,
-|cell-space-bottom-limit| et |cell-space-limits| avec le même effet que les clés
-globales de même nom (cf. p.~\pageref{cell-space}).
+couples clé-valeur.
+\begin{itemize}
+\item Les clés |cell-space-top-limit|, |cell-space-bottom-limit|
+et |cell-space-limits| sont disponibles avec le même effet que les clés globales
+de même nom (cf. p.~\pageref{cell-space}).
+\item \colorbox{yellow!50}{\bfseries Nouveau 6.1}\enskip La clé |color| fixe la
+couleur du texte.\footnote{La clé |color| utilise la commande |\color|
+mais insère aussi une instruction |\leavevmode| devant. Cela évite un
+espace vertical parasite dans les cellules qui correspondent à des colonnes de
+type |p|, |b|, |m| et |X| (qui débutent en mode vertical).}
+\end{itemize}
\medskip
\begin{BVerbatim}[boxwidth=11cm,baseline=c]
-\begin{NiceTabular}{cccc}[hlines,colortbl-like]
+\begin{NiceTabular}{cccc}[colortbl-like]
+\hline
~emphase#\RowStyle[cell-space-limits=3pt]{\rotate}@
premier & deuxième & troisième & quatrième \\
-\rowcolor{blue!50}~emphase#\RowStyle{\color{white}\sffamily}@
+\rowcolor{blue!50}~emphase#\RowStyle[color=white]{\sffamily}@
1 & 2 & 3 & 4 \\
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}{cccc}[hlines,colortbl-like]
+\begin{NiceTabular}{cccc}[colortbl-like]
+\hline
\RowStyle[cell-space-limits=3pt]{\rotate}
premier & deuxième & troisième & quatrième \\
-\rowcolor{blue!50}\RowStyle{\color{white}\sffamily}
+\rowcolor{blue!50}\RowStyle[color=white]{\sffamily}
1 & 2 & 3 & 4 \\
\end{NiceTabular}
@@ -1942,6 +1959,8 @@ $\begin{array}{c}
\subsection{Les colonnes X}
+\label{colonne-X}
+
\colorbox{yellow!50}{\textbf{Nouveau 6.0}}
L'environnement |{NiceTabular}| propose aussi des colonnes |X| similaires à
@@ -2029,7 +2048,7 @@ préambule de spécification de colonne pour les éventuelles première et derni
colonne : ce sera automatiquement (et nécessairement) une colonne |r| pour la
première colonne et une colonne |l| pour la dernière.\footnote{Si on souhaite
une colonne extérieure avec un autre type d'alignement, on aura intérêt à
- considérer la commande \verb|\SubMatrix| disponible dans le \verb|\CodeAfter|
+ considérer la commande |\SubMatrix| disponible dans le |\CodeAfter|
(cf. p.~\pageref{sub-matrix}).}
\item On peut se demander comment \pkg{nicematrix} détermine le nombre de rangées et de colonnes nécessaires à la
@@ -2391,7 +2410,7 @@ $\begin{pNiceMatrix}
\emph{Remarque} : Contrairement à la commande |\hdotsfor| de \pkg{amsmath}, la
commande |\Hdotsfor| est utilisable même lorsque l'extension
\pkg{colortbl}\footnote{On rappelle que lorsque l'extension \pkg{xcolor} est
- chargée avec l'option \verb|table|, l'extension \pkg{colortbl} est chargée.}
+ chargée avec l'option |table|, l'extension \pkg{colortbl} est chargée.}
est chargée (mais vous risquez d'avoir des problèmes si vous utilisez
|\rowcolor| sur la même rangée que |\Hdotsfor|).
@@ -2623,7 +2642,7 @@ Les lignes pointillées délimitent des blocs virtuels qui ont le même
comportement vis à vis des filets que les blocs créés par |\Block| (les filets
spécifiés par le spécificateur \verb+|+ dans le préambule, la commande |\Hline|
et par les clés |vlines|, |hlines|, |hvlines| et |hvlines-except-borders| ne
-sont pas tracés dans les blocs).\footnote{En revanche, la commande \verb|\line| dans le \verb|\CodeAfter|
+sont pas tracés dans les blocs).\footnote{En revanche, la commande |\line| dans le |\CodeAfter|
(cf.~p.~\pageref{line-in-code-after}) ne crée pas de bloc.}
\medskip
@@ -2745,10 +2764,10 @@ la syntaxe $i$|-|$j$ où $i$ est le numéro de rangée et $j$ le numéro de colo
\item la quatrième argument est le délimiteur droit ;
\item le cinquième argument, optionnel, entre crochets, est une liste de couples
clé-valeur.\footnote{Il n'y a pas d'argument optionnel entre crochets en première
-position car un crochet ouvrant juste après \verb|\SubMatrix| doit pouvoir être
-interprété comme le premier argument (obligatoire) de \verb|\SubMatrix|: ce
+position car un crochet ouvrant juste après |\SubMatrix| doit pouvoir être
+interprété comme le premier argument (obligatoire) de |\SubMatrix|: ce
crochet est alors le délimiteur gauche de la sous-matrice (ex. :
-\verb|\SubMatrix[{2-2}{4-7}]|).}
+|\SubMatrix[{2-2}{4-7}]|).}
\end{itemize}
On remarquera que la commande |\SubMatrix| trace les délimiteurs après la
@@ -2907,7 +2926,7 @@ PGF/Tikz : voir p.~\pageref{node-sub-matrix}.
\bigskip
Il est également possible de spécifier des délimiteurs\footnote{Les délimiteurs
- en question sont \verb|(|, \verb|[| et \verb|\{| et les fermants correspondants.
+ en question sont |(|, |[| et |\{| et les fermants correspondants.
On peut bien sûr aussi mettre des \verb+|+ et des \verb+||+ dans le
préambule.} en les plaçant dans le préambule de l'environnement (pour les
environnements à préambule : |{NiceArray}|, |{pNiceArray}|, etc.). Cette syntaxe
@@ -4405,7 +4424,7 @@ L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{ieeeaccess
\begin{Verbatim}
\ttfamily \small
-\begin{NiceTabular}{m{4.5cm}m{4.5cm}m{4.5cm}}[hvlines]
+\begin{NiceTabular}{X[m]X[m]X[m]}[hvlines,cell-space-limits=3pt]
\Block[~emphase#tikz={pattern=grid,pattern color=lightgray}@]{}
{pattern = grid,\\ pattern color = lightgray}
& \Block[~emphase#tikz={pattern = north west lines,pattern color=blue}@]{}
@@ -4421,7 +4440,7 @@ L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{ieeeaccess
\begin{center}
\ttfamily \small
-\begin{NiceTabular}{m{4.5cm}m{4.5cm}m{4.5cm}}[hvlines]
+\begin{NiceTabular}{X[m]X[m]X[m]}[hvlines,cell-space-limits=3pt]
\Block[tikz={pattern=grid,pattern color=lightgray}]{}
{pattern = grid,\\ pattern color = lightgray}
& \Block[tikz={pattern = north west lines,pattern color=blue}]{}
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index f2ecb695bc..2f7bfdc597 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.0}
-\def\myfiledate{2021/08/10}
+\def\myfileversion{6.1}
+\def\myfiledate{2021/08/20}
%
%
%<*batchfile>
@@ -65,7 +65,7 @@ version 2005/12/01 or later.
\usepackage{titlesec}
\titlespacing*{\section}{0pt}{6.5ex plus 1ex minus .2ex}{4.3ex plus .2ex}
\titlespacing*{\subsection}{0pt}{4.5ex plus 1ex minus .2ex}{2ex plus .2ex}
-\usepackage{footnotehyper}
+\usepackage[hyperfootnotes=false]{footnotehyper}
\usepackage{varwidth}
\def\LetterAt{@}
\parindent 0pt
@@ -165,7 +165,7 @@ version 2005/12/01 or later.
% can upload the file |nicematrix.sty| in the repertory of your
% project in order to take full advantage of the latest version de
% \pkg{nicematrix}.\footnote{The latest version of the file
-% \verb|nicematrix.sty| may be downloaded from the \textsc{svn} server of
+% |nicematrix.sty| may be downloaded from the \textsc{svn} server of
% TeXLive:\newline
% \small
% \url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}}
@@ -216,7 +216,7 @@ version 2005/12/01 or later.
% \begin{tabular}{llll}
% \{NiceTabular\} & \{NiceArray\} & \{NiceMatrix\} \\
% \{NiceTabular*\} & \{pNiceArray\} & \{pNiceMatrix\} \\
-% & \{bNiceArray\} & \{bNiceMatrix\} \\
+% \{NiceTabularX\} & \{bNiceArray\} & \{bNiceMatrix\} \\
% & \{BNiceArray\} & \{BNiceMatrix\} \\
% & \{vNiceArray\} & \{vNiceMatrix\} \\
% & \{VNiceArray\} & \{VNiceMatrix\}
@@ -241,6 +241,12 @@ version 2005/12/01 or later.
% \pkg{nicematrix}): |{matrix}|, |{pmatrix}|, etc.
%
% \medskip
+% L'environnement |{NiceTabularX}| is similar to the environment |{tabularx}|
+% from the eponymous package.\footnote{In fact, it's possible to use directly the
+% |X| columns in the environnement |{NiceTabular}| (and the required
+% width for the tabular is fixed by the key |width|): cf. p.~\pageref{X-columns}}.
+%
+% \medskip
% \textbf{It's recommended to use primarily the classical environments and to use the
% environments of \pkg{nicematrix} only when some feature provided by these
% environments is used (this will save memory).}
@@ -412,7 +418,7 @@ version 2005/12/01 or later.
% \bigskip
% It's also possible to use the key |baseline| to align a matrix on an
% horizontal rule (drawn by |\hline|). In this aim, one should give the value
-% |line-|\textsl{i} where \textsl{i} is the number of the row following the
+% |line-|\textsl{i} where \textsl{i} is the number of the row \emph{following} the
% horizontal rule.
%
% \smallskip
@@ -422,7 +428,7 @@ version 2005/12/01 or later.
%
% \smallskip
% \begin{BVerbatim}[baseline=c,boxwidth=9cm]
-% $A=\begin{pNiceArray}{cc|cc}[baseline=line-3]
+% $A=\begin{pNiceArray}{cc|cc}~emphase#[baseline=line-3]@
% \dfrac1A & \dfrac1B & 0 & 0 \\
% \dfrac1C & \dfrac1D & 0 & 0 \\
% \hline
@@ -449,14 +455,14 @@ version 2005/12/01 or later.
%
% In the environments of \pkg{nicematrix}, it's possible to use the command
% |\Block| in order to place an element in the center of a rectangle of merged
-% cells of the array.\footnote{The spaces after a command \verb|\Block| are deleted.}
+% cells of the array.\footnote{The spaces after a command |\Block| are deleted.}
%
% The command |\Block| must be used in the upper leftmost cell of the array with
% two arguments.
%
% \begin{itemize}
% \item The first argument is the size of the block with the syntax
-% $i$\verb|-|$j$ where $i$ is the number of rows of the block and $j$ its number
+% $i$|-|$j$ where $i$ is the number of rows of the block and $j$ its number
% of columns.
%
% If this argument is empty, its default
@@ -689,7 +695,7 @@ version 2005/12/01 or later.
% \item It's possible do draw a frame around the cell with the key |draw| of the
% command |\Block| and to fill the background with rounded corners with the keys
% |fill| and |rounded-corners|.\footnote{If one simply wishes to color the
-% background of a unique celle, there is no point using the command |\Block|:
+% background of a unique cell, there is no point using the command |\Block|:
% it's possible to use the command |\cellcolor| (when the key |colortbl-like| is
% used).}
%
@@ -767,10 +773,10 @@ version 2005/12/01 or later.
% \end{center}
%
% \medskip
-% \colorbox{yellow!50}{\bfseries New 5.17}\enskip In order to have an horizontal
-% positionning of the content of the block computed with the limits of the
-% columns of the LaTeX array (and not with the contents of those columns), one
-% may use the key |L|, |R| and |C| of the command |\Block|.
+% In order to have an horizontal positionning of the content of the block
+% computed with the limits of the columns of the LaTeX array (and not with the
+% contents of those columns), one may use the key |L|, |R| and |C| of the
+% command |\Block|.
%
%
% \section{The rules}
@@ -965,7 +971,7 @@ version 2005/12/01 or later.
% \begin{itemize}
% \item These blocks are:
% \begin{itemize}
-% \item the blocks created by the command |\Block|\footnote{And also the command \verb|\multicolumn| but
+% \item the blocks created by the command |\Block|\footnote{And also the command |\multicolumn| but
% it's recommended to use instead |\Block| in the environments of
% \pkg{nicematrix}.} presented
% p.~\pageref{Block};
@@ -1032,9 +1038,8 @@ version 2005/12/01 or later.
% \end{center}
%
% \bigskip
-% \colorbox{yellow!50}{\bfseries New 5.17}\enskip The key
-% |hvlines-except-borders| is similar to the key |hvlines| but does not draw the
-% rules on the horizontal and vertical borders of the array.
+% The key |hvlines-except-borders| is similar to the key |hvlines| but does not
+% draw the rules on the horizontal and vertical borders of the array.
%
% \subsubsection{The (empty) corners}
%
@@ -1306,7 +1311,7 @@ version 2005/12/01 or later.
% New commands are available in that |\CodeBefore|: |\cellcolor|,
% |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors|,
% |\rowlistcolors|, |\chessboardcolors| and |arraycolor|.\footnote{Remark that,
-% in the \verb|\CodeBefore|, PGF/Tikz nodes of the form ``\verb+(i-|j)+'' are
+% in the |\CodeBefore|, PGF/Tikz nodes of the form ``\verb+(i-|j)+'' are
% also available to indicate the position to the potential rules:
% cf.~p.~\pageref{nodes-i}.}
% \label{code-before}
@@ -1768,23 +1773,34 @@ version 2005/12/01 or later.
%
% \medskip
% That command also takes in as optional argument (between square brackets)
-% a list of key-value pairs. The available keys are |cell-space-top-limit|,
-% |cell-space-bottom-limit| and |cell-space-limits| with the same meaning that
-% the corresponding global keys (cf. p.~\pageref{cell-space}).
-%
+% a list of key-value pairs.
+% \begin{itemize}
+% \item The keys |cell-space-top-limit|, |cell-space-bottom-limit| and
+% |cell-space-limits| are available with the same meaning that the corresponding
+% global keys (cf. p.~\pageref{cell-space}).
+% \item \colorbox{yellow!50}{\bfseries New 6.1}\enskip The key |color| sets the
+% color of the text.\footnote{The key |color| uses the command
+% |\color| but inserts also an instruction |\leavevmode| before. This
+% instruction prevents a extra vertical space in the cells which belong to
+% columns of type |p|, |b|, |m| and |X| (which start in
+% vertical mode).}
+% \end{itemize}
+%
% \medskip
% \begin{BVerbatim}[boxwidth=11cm,baseline=c]
-% \begin{NiceTabular}{cccc}[hlines,colortbl-like]
+% \begin{NiceTabular}{cccc}[colortbl-like]
+% \hline
% ~emphase#\RowStyle[cell-space-limits=3pt]{\rotate}@
% first & second & third & fourth \\
-% \rowcolor{blue!50}~emphase#\RowStyle{\color{white}\sffamily}@
+% \rowcolor{blue!50}~emphase#\RowStyle[color=white]{\sffamily}@
% 1 & 2 & 3 & 4 \\
% \end{NiceTabular}
% \end{BVerbatim}
-% \begin{NiceTabular}{cccc}[hlines,colortbl-like]
+% \begin{NiceTabular}{cccc}[colortbl-like]
+% \hline
% \RowStyle[cell-space-limits=3pt]{\rotate}
% first & second & third & fourth \\
-% \rowcolor{blue!50}\RowStyle{\color{white}\sffamily}
+% \rowcolor{blue!50}\RowStyle[color=white]{\sffamily}
% 1 & 2 & 3 & 4 \\
% \end{NiceTabular}
%
@@ -1926,6 +1942,7 @@ version 2005/12/01 or later.
%
% \subsection{The columns X}
%
+% \label{X-columns}
% \colorbox{yellow!50}{\textbf{New 6.0}}
%
% The environment |{NiceTabular}| provides |X| columns similar to those provided
@@ -2247,7 +2264,7 @@ version 2005/12/01 or later.
%
%
% Consider the following matrix composed classicaly with the environment
-% \verb|{pmatrix}| of \pkg{amsmath}.\par\nobreak
+% |{pmatrix}| of \pkg{amsmath}.\par\nobreak
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -2263,7 +2280,7 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% If we add \verb|\ldots| instructions in the second row, the geometry of the
+% If we add |\ldots| instructions in the second row, the geometry of the
% matrix is modified.\par\nobreak
%
% \medskip
@@ -2279,8 +2296,8 @@ version 2005/12/01 or later.
% \end{pmatrix}$
%
% \bigskip
-% By default, with \pkg{nicematrix}, if we replace \verb|{pmatrix}| by
-% \verb|{pNiceMatrix}| and \verb|\ldots| by \verb|\Ldots|, the geometry of the matrix is not
+% By default, with \pkg{nicematrix}, if we replace |{pmatrix}| by
+% |{pNiceMatrix}| and |\ldots| by |\Ldots|, the geometry of the matrix is not
% changed.\par\nobreak
%
% \medskip
@@ -2298,7 +2315,7 @@ version 2005/12/01 or later.
% \bigskip
% However, one may prefer the geometry of the first matrix $A$ and would like to
% have such a geometry with a dotted line in the second row. It's possible by
-% using the option \verb|nullify-dots| (and only one instruction \verb|\Ldots| is
+% using the option |nullify-dots| (and only one instruction |\Ldots| is
% necessary).\par\nobreak
%
% \medskip
@@ -2369,7 +2386,7 @@ version 2005/12/01 or later.
% \medskip
% Remark: Unlike the command |\hdotsfor| of \pkg{amsmath}, the command
% |\Hdotsfor| may be used even when the package \pkg{colortbl}\footnote{We
-% recall that when \pkg{xcolor} is loaded with the option \verb|table|, the
+% recall that when \pkg{xcolor} is loaded with the option |table|, the
% package \pkg{colortbl} is loaded.} is loaded (but you might have problem if
% you use |\rowcolor| on the same row as |\Hdotsfor|).
%
@@ -2591,8 +2608,8 @@ version 2005/12/01 or later.
% regarding the rules (the rules specified by the specifier \verb+|+ in the
% preamble, by the command |\Hline| and by the keys |hlines|, |vlines|,
% |hvlines| and |hvlines-except-borders| are not drawn within the
-% blocks).\footnote{On the other side, the command \verb|\line| in the
-% \verb|\CodeAfter| (cf.~p.~\pageref{line-in-code-after}) does \emph{not} create
+% blocks).\footnote{On the other side, the command |\line| in the
+% |\CodeAfter| (cf.~p.~\pageref{line-in-code-after}) does \emph{not} create
% block.}
%
% \medskip
@@ -2877,7 +2894,7 @@ version 2005/12/01 or later.
%
% \bigskip
% It's also possible to specify some delimiters\footnote{Those delimiters are
-% \verb|(|, \verb|[|, |\{| and the closing ones. Of course, it's also
+% |(|, |[|, |\{| and the closing ones. Of course, it's also
% possible to put \verb+|+ and \verb+||+ in the preamble of the environement.}
% by placing them in the preamble of the environment (for the environments with
% a preamble: |{NiceArray}|, |{pNiceArray}|, etc.). This syntax is inspired by
@@ -3294,7 +3311,7 @@ version 2005/12/01 or later.
% rotation of 90° in the direct sens.
%
% In the following command, we use that command in the
-% |code-for-first-row|.\footnote{It can also be used in \verb|RowStyle|
+% |code-for-first-row|.\footnote{It can also be used in |\RowStyle|
% (cf.~p.~\pageref{RowStyle}.}
%
%\bigskip
@@ -3393,9 +3410,9 @@ version 2005/12/01 or later.
% \medskip
% In fact, the option |small| corresponds to the following tuning:
% \begin{itemize}
-% \item the cells of the array are composed with \verb|\scriptstyle|;
-% \item \verb|\arraystretch| is set to $0.47$;
-% \item \verb|\arraycolsep| is set to $1.45$~pt;
+% \item the cells of the array are composed with |\scriptstyle|;
+% \item |\arraystretch| is set to $0.47$;
+% \item |\arraycolsep| is set to $1.45$~pt;
% \item the characteristics of the dotted lines are also modified.
% \end{itemize}
%
@@ -4336,7 +4353,7 @@ version 2005/12/01 or later.
%
% \begin{Verbatim}
% \ttfamily \small
-% \begin{NiceTabular}{m{4.5cm}m{4.5cm}m{4.5cm}}[hvlines]
+% \begin{NiceTabular}{X[m]X[m]X[m]}[hvlines,cell-space-limits=3pt]
% \Block[~emphase#tikz={pattern=grid,pattern color=lightgray}@]{}
% {pattern = grid,\\ pattern color = lightgray}
% & \Block[~emphase#tikz={pattern = north west lines,pattern color=blue}@]{}
@@ -4352,7 +4369,7 @@ version 2005/12/01 or later.
%
% \begin{center}
% \ttfamily \small
-% \begin{NiceTabular}{m{4.5cm}m{4.5cm}m{4.5cm}}[hvlines]
+% \begin{NiceTabular}{X[m]X[m]X[m]}[hvlines,cell-space-limits=3pt]
% \Block[tikz={pattern=grid,pattern color=lightgray}]{}
% {pattern = grid,\\ pattern color = lightgray}
% & \Block[tikz={pattern = north west lines,pattern color=blue}]{}
@@ -5528,52 +5545,18 @@ version 2005/12/01 or later.
\bool_if:nTF { ! \c_@@_siunitx_loaded_bool }
{ \cs_set_eq:NN \@@_renew_NC@rewrite@S: \prg_do_nothing: }
{
-% \end{macrocode}
-% For version of \pkg{siunitx} at least equal to 3.0, the adaptation is different
-% from previous ones. We test the version of \pkg{siunitx} by the existence of the
-% control sequence |\siunitx_cell_begin:w|.
-% \begin{macrocode}
- \cs_if_exist:NTF \siunitx_cell_begin:w
+ \cs_new_protected:Npn \@@_renew_NC@rewrite@S:
{
- \cs_new_protected:Npn \@@_renew_NC@rewrite@S:
+ \renewcommand*{\NC@rewrite@S}[1][]
{
- \renewcommand*{\NC@rewrite@S}[1][]
- {
- \@temptokena \exp_after:wN
- {
- \tex_the:D \@temptokena
- > {
- \@@_Cell:
- \keys_set:nn { siunitx } { ##1 }
- \siunitx_cell_begin:w
- }
-% \end{macrocode}
-% |\@@_true_c:| will be replaced statically by |c| at the end of the construction
-% of the preamble.
-% \begin{macrocode}
- \@@_true_c:
- < { \siunitx_cell_end: \@@_end_Cell: }
- }
- \NC@find
- }
+% \end{macrocode}
+% |\@temptokena| is a toks (not supported by \pkg{expl3}).
+% \begin{macrocode}
+ \@temptokena \exp_after:wN
+ { \tex_the:D \@temptokena \@@_S: [ ##1 ] }
+ \NC@find
}
- }
- {
- \cs_new_protected:Npn \@@_renew_NC@rewrite@S:
- {
- \renewcommand*{\NC@rewrite@S}[1][]
- {
- \@temptokena \exp_after:wN
- {
- \tex_the:D \@temptokena
- > { \@@_Cell: \c_@@_table_collect_begin_tl S {##1} }
- \@@_true_c:
- < { \c_@@_table_print_tl \@@_end_Cell: }
- }
- \NC@find
- }
- }
- }
+ }
}
}
% \end{macrocode}
@@ -6002,10 +5985,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\seq_new:N \g_@@_blocks_seq
% \end{macrocode}
-% We also manage a sequence of the \emph{positions} of the blocks. Of course,
-% it's redundant with the previous sequence, but it's for efficiency. In that
+% We also manage a sequence of the \emph{positions} of the blocks. In that
% sequence, each block is represented by only the four first components:
-% |{|\textsl{imin}|}{|\textsl{jmin}|}{|\textsl{imax}|}{|\textsl{jmax}|}|.
+% |{|\textsl{imin}|}{|\textsl{jmin}|}{|\textsl{imax}|}{|\textsl{jmax}|}|. A
+% block with the key |hvlines| won't appear in that sequence (otherwise, the
+% lines in that block would not be drawn!).
% \begin{macrocode}
\seq_new:N \g_@@_pos_of_blocks_seq
% \end{macrocode}
@@ -6038,9 +6022,9 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \medskip
-% If the user has used the key |corners| (or the key |hvlines-except-corners|),
-% all the cells which are in an (empty) corner will be stored in the following
-% sequence.
+% If the user has used the key |corners| (or the key |hvlines-except-corners|,
+% even though that key is deprecated), all the cells which are in an (empty)
+% corner will be stored in the following sequence.
% \begin{macrocode}
\seq_new:N \l_@@_corners_cells_seq
% \end{macrocode}
@@ -7293,13 +7277,13 @@ version 2005/12/01 or later.
% \bigskip
% \subsection*{Important code used by \{NiceArrayWithDelims\} }
%
-% The pseudo-environment |\@@_Cell:|--|\@@_end_Cell:| will be used to format the
+% The pseudo-environment |\@@_cell_begin:w|--|\@@_cell_end:| will be used to format the
% cells of the array. In the code, the affectations are global because this
% pseudo-environment will be used in the cells of a |\halign| (via an
% environment |{array}|).
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_Cell:
+\cs_new_protected:Npn \@@_cell_begin:w
{
% \end{macrocode}
% The token list |\g_@@_post_action_cell_tl| will be set during the
@@ -7328,7 +7312,7 @@ version 2005/12/01 or later.
% \end{macrocode}
% The content of the cell is composed in the box |\l_@@_cell_box| because we want
% to compute some dimensions of the box. The |\hbox_set_end:| corresponding to
-% this |\hbox_set:Nw| will be in the |\@@_end_Cell:| (and the potential
+% this |\hbox_set:Nw| will be in the |\@@_cell_end:| (and the potential
% |\c_math_toggle_token| also).
% \begin{macrocode}
\hbox_set:Nw \l_@@_cell_box
@@ -7462,7 +7446,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_end_Cell:
+\cs_new_protected:Npn \@@_cell_end:
{
\@@_math_toggle_token:
\hbox_set_end:
@@ -7644,9 +7628,9 @@ version 2005/12/01 or later.
% \smallskip
% \begin{scope}
% \color{gray}
-% \verb|\@@_draw_Cdots:nnn {2}{2}{}|
+% |\@@_draw_Cdots:nnn {2}{2}{}|
%
-% \verb|\@@_draw_Cdots:nnn {3}{2}{color=red}|
+% |\@@_draw_Cdots:nnn {3}{2}{color=red}|
% \end{scope}
%
%
@@ -7858,6 +7842,10 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_pre_array_ii:
{
% \end{macrocode}
+% The number of letters |X| in the preamble of the array.
+% \begin{macrocode}
+ \int_gzero:N \g_@@_total_X_weight_int
+% \end{macrocode}
% If \pkg{booktabs} is loaded, we have to patch the macro |\@BTnormal| which is
% a macro of \pkg{booktabs}. The macro |\@BTnormal| draws an horizontal rule but
% it occurs after a vertical skip done by a low level TeX command. When this
@@ -8028,7 +8016,7 @@ version 2005/12/01 or later.
% The counter |\c@jCol| will be used to count the columns of the array.
% Since we want to know the total number of columns of the matrix, we also
% create a counter |\g_@@_col_total_int|. These counters are updated in the
-% command |\@@_Cell:| executed at the beginning of each cell.
+% command |\@@_cell_begin:w| executed at the beginning of each cell.
% \begin{macrocode}
\int_gzero_new:N \g_@@_col_total_int
% \end{macrocode}
@@ -8104,7 +8092,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% If there is a exterior row, we patch a command used in |\@@_Cell:| in order to
+% If there is a exterior row, we patch a command used in |\@@_cell_begin:w| in order to
% keep track of some dimensions needed to the construction of that ``last row''.
% \begin{macrocode}
\int_compare:nNnT \l_@@_last_row_int > { -2 }
@@ -8252,6 +8240,13 @@ version 2005/12/01 or later.
cell-space-top-limit = #1 ,
cell-space-bottom-limit = #1 ,
} ,
+ color .code:n =
+ {
+ \leavevmode \color { #1 }
+ \tl_gput_right:Nn \g_@@_row_style_tl
+ { \leavevmode \color { #1 } }
+ } ,
+ color .value_required:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~RowStyle }
}
% \end{macrocode}
@@ -8276,7 +8271,7 @@ version 2005/12/01 or later.
{
% \end{macrocode}
% First, we give values to the LaTeX counters |iRow| and |jCol|. We remind that,
-% in the |code-before| (and in the |\CodeAfter|) they represent the numbers of
+% in the |\CodeBefore| (and in the |\CodeAfter|) they represent the numbers of
% rows and columns of the array (without the potential last row and last
% column). The value of |\g_@@_row_total_int| is the number of the last row
% (with potentially a last exterior row) and |\g_@@_col_total_int| is the number
@@ -8550,8 +8545,8 @@ version 2005/12/01 or later.
%
% The sequence |\g_@@_blocks_seq| will contain the carateristics of the blocks
% (specified by |\Block|) of the array. The sequence |\g_@@_pos_of_blocks_seq|
-% will contain only the position of the blocks. Of course, this is redundant but
-% it's for efficiency.
+% will contain only the position of the blocks (except the blocks with the key
+% |hvlines|).
% \begin{macrocode}
\seq_gclear:N \g_@@_blocks_seq
\seq_gclear:N \g_@@_pos_of_blocks_seq
@@ -8605,15 +8600,16 @@ version 2005/12/01 or later.
% \begin{macrocode}
\tl_if_empty:NF \l_@@_rules_color_tl
{ \exp_after:wN \@@_set_CT@arc@: \l_@@_rules_color_tl \q_stop }
-% \bigskip
% \end{macrocode}
+%
+% \bigskip
% The argument |#6| is the last argument of |{NiceArrayWithDelims}|. With that
% argument of type ``|t \CodeBefore|'', we test whether there is the keyword
-% |\CodeBefore| at the beginning of the environment. If that keyword is present,
-% we have now to extract all the content between that keyword |\CodeBefore| and
-% the (other) keyword |\Body|. It's the job that will do the command
-% |\@@_pre_array_i:w|. After that job, the command |\@@_pre_array_i:w| will go
-% on with |\@@_pre_array:|.
+% |\CodeBefore| at the beginning of the body of the environment. If that keyword
+% is present, we have now to extract all the content between that keyword
+% |\CodeBefore| and the (other) keyword |\Body|. It's the job that will do the
+% command |\@@_pre_array_i:w|. After that job, the command |\@@_pre_array_i:w|
+% will go on with |\@@_pre_array:|.
% \begin{macrocode}
\IfBooleanTF { #6 } \@@_pre_array_i:w \@@_pre_array:
}
@@ -8644,25 +8640,34 @@ version 2005/12/01 or later.
% \bigskip
% Now, if there is at least one |X|-column in the environment, we compute the
% width that those columns will have (in the next compilation). In fact,
-% |l_@@_X_columns_dim| will the the width of a column of weight $1$. For a
+% |l_@@_X_columns_dim| will be the width of a column of weight $1$. For a
% |X|-column of weight~$n$, the width will be |l_@@_X_columns_dim| multiplied
% by~$n$.
% \begin{macrocode}
\int_compare:nNnT \g_@@_total_X_weight_int > 0
{
- \bool_if:NTF \l_@@_X_columns_aux_bool
- { \dim_set_eq:NN \l_tmpa_dim \l_@@_X_columns_dim }
- {
- \dim_set:Nn \l_tmpa_dim
- {
- ( \l_@@_width_dim - \box_wd:N \l_@@_the_array_box )
- / \int_use:N \g_@@_total_X_weight_int
- }
- }
\tl_gput_right:Nx \g_@@_aux_tl
{
\bool_set_true:N \l_@@_X_columns_aux_bool
- \dim_set:Nn \l_@@_X_columns_dim { \dim_use:N \l_tmpa_dim }
+ \dim_set:Nn \l_@@_X_columns_dim
+ {
+ \dim_compare:nNnTF
+ {
+ \dim_abs:n
+ { \l_@@_width_dim - \box_wd:N \l_@@_the_array_box }
+ }
+ <
+ { 0.001 pt }
+ { \dim_use:N \l_@@_X_columns_dim }
+ {
+ \dim_eval:n
+ {
+ ( \l_@@_width_dim - \box_wd:N \l_@@_the_array_box )
+ / \int_use:N \g_@@_total_X_weight_int
+ + \l_@@_X_columns_dim
+ }
+ }
+ }
}
}
% \end{macrocode}
@@ -8959,10 +8964,6 @@ version 2005/12/01 or later.
}
}
% \end{macrocode}
-% The number of letters |X| in the preamble of the array.
-% \begin{macrocode}
- \int_gzero:N \g_@@_total_X_weight_int
-% \end{macrocode}
% The sequence |\g_@@_cols_vlsim_seq| will contain the numbers of the columns
% where you will to have to draw vertical lines in the potential sub-matrices
% (hence the name |vlism|).
@@ -9075,7 +9076,7 @@ version 2005/12/01 or later.
m { \@@_patch_preamble_iv:n #1 }
\@@_w: { \@@_patch_preamble_v:nnnn { } #1 }
\@@_W: { \@@_patch_preamble_v:nnnn { \cs_set_eq:NN \hss \hfil } #1 }
- \@@_true_c: { \@@_patch_preamble_vi:n #1 }
+ \@@_S: { \@@_patch_preamble_vi:n }
( { \@@_patch_preamble_vii:nn #1 }
[ { \@@_patch_preamble_vii:nn #1 }
\{ { \@@_patch_preamble_vii:nn #1 }
@@ -9119,9 +9120,9 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_preamble_tl
{
- > { \@@_Cell: \str_set:Nn \l_@@_hpos_cell_str { #1 } }
+ > { \@@_cell_begin:w \str_set:Nn \l_@@_hpos_cell_str { #1 } }
#1
- < \@@_end_Cell:
+ < \@@_cell_end:
}
% \end{macrocode}
%
@@ -9177,10 +9178,12 @@ version 2005/12/01 or later.
}
}
\tl_gput_right:Nx \g_@@_internal_code_after_tl
- { \@@_vline:nn { \@@_succ:n \c@jCol } { \int_use:N \l_tmpa_int } }
+ {
+ \@@_vline:nnnn
+ { \@@_succ:n \c@jCol } { \int_use:N \l_tmpa_int } { 1 } { }
+ }
\int_zero:N \l_tmpa_int
- \str_if_eq:nnT { #1 } { \q_stop }
- { \bool_gset_true:N \g_tmpb_bool }
+ \str_if_eq:nnT { #1 } { \q_stop } { \bool_gset_true:N \g_tmpb_bool }
\@@_patch_preamble:n #1
}
}
@@ -9204,13 +9207,15 @@ version 2005/12/01 or later.
c .value_forbidden:n = true ,
l .code:n = \str_set:Nn \l_@@_hpos_col_str { l } ,
l .value_forbidden:n = true ,
+ si .code:n = \str_set:Nn \l_@@_hpos_col_str { si } ,
+ si .value_forbidden:n = true ,
p .code:n = \str_set:Nn \l_@@_vpos_col_str { p } ,
p .value_forbidden:n = true ,
t .meta:n = p ,
m .code:n = \str_set:Nn \l_@@_vpos_col_str { m } ,
m .value_forbidden:n = true ,
b .code:n = \str_set:Nn \l_@@_vpos_col_str { b } ,
- b .value_forbidden:n = true
+ b .value_forbidden:n = true ,
}
% \end{macrocode}
%
@@ -9269,19 +9274,22 @@ version 2005/12/01 or later.
{
\use:x
{
- \@@_patch_preamble_iv_v:nnnn
+ \@@_patch_preamble_iv_v:nnnnnn
{ \str_if_eq:VnTF \l_@@_vpos_col_str { p } { t } { b } }
{ \dim_eval:n { #1 } }
{
% \end{macrocode}
% The parameter |\l_@@_hpos_col_str| (as |\l_@@_vpos_col_str|) exists only
-% during the contruction of the preamble. During the composition of the array
+% during the construction of the preamble. During the composition of the array
% itself, you will have, in each cell, the parameter |\l_@@_hpos_cell_str| which
-% will provide
+% will provide the horizontal alignment of the column to which belongs the cell.
% \begin{macrocode}
\str_if_eq:VnTF \l_@@_hpos_col_str j
{ \str_set:Nn \exp_not:N \l_@@_hpos_cell_str { c } }
- { \str_set:Nn \exp_not:N \l_@@_hpos_cell_str \l_@@_hpos_col_str }
+ {
+ \str_set:Nn \exp_not:N \l_@@_hpos_cell_str
+ { \l_@@_hpos_col_str }
+ }
\str_case:Vn \l_@@_hpos_col_str
{
c { \exp_not:N \centering }
@@ -9290,6 +9298,8 @@ version 2005/12/01 or later.
}
}
{ \str_if_eq:VnT \l_@@_vpos_col_str { m } \@@_center_cell_box: }
+ { \str_if_eq:VnT \l_@@_hpos_col_str { si } \siunitx_cell_begin:w }
+ { \str_if_eq:VnT \l_@@_hpos_col_str { si } \siunitx_cell_end: }
}
% \end{macrocode}
%
@@ -9313,8 +9323,12 @@ version 2005/12/01 or later.
%
% |#4| is an extra-code which contains |\l_@@_center_cell_box| (when the column
% is a |m| column) or nothing (in the other cases).
+%
+% |#5| is a code put just before the |c|.
+%
+% |#6| is a code put just after the |c|.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_patch_preamble_iv_v:nnnn #1 #2 #3 #4
+\cs_new_protected:Npn \@@_patch_preamble_iv_v:nnnnnn #1 #2 #3 #4 #5 #6
{
\tl_gput_right:Nn \g_@@_preamble_tl
{
@@ -9325,7 +9339,7 @@ version 2005/12/01 or later.
% mono-column blocks.
% \begin{macrocode}
\dim_set:Nn \l_@@_col_width_dim { #2 }
- \@@_Cell:
+ \@@_cell_begin:w
\begin { minipage } [ #1 ] { #2 }
% \end{macrocode}
% The following lines have been taken from |array.sty|.
@@ -9342,14 +9356,14 @@ version 2005/12/01 or later.
#3
% \end{macrocode}
% The following code is to allow something like |\centering| in |\RowStyle|.
-% However, there is extra vertical space if |\color{...}| is used in
-% |\RowStyle| (we should try to add a key |color| to the command |\RowStyle|.
% \begin{macrocode}
\g_@@_row_style_tl
\arraybackslash
+ #5
}
c
< {
+ #6
% \end{macrocode}
% The following line has been taken from |array.sty|.
% \begin{macrocode}
@@ -9360,7 +9374,7 @@ version 2005/12/01 or later.
% |\@@_center_cell_box:| (see just below).
% \begin{macrocode}
#4
- \@@_end_Cell:
+ \@@_cell_end:
}
}
}
@@ -9417,12 +9431,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\dim_set:Nn \l_@@_col_width_dim { #4 }
\hbox_set:Nw \l_@@_cell_box
- \@@_Cell:
+ \@@_cell_begin:w
\str_set:Nn \l_@@_hpos_cell_str { #3 }
}
c
< {
- \@@_end_Cell:
+ \@@_cell_end:
#1
\hbox_set_end:
\bool_if:NT \g_@@_rotate_bool \@@_rotate_cell_box:
@@ -9439,17 +9453,65 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \medskip
-% For |\@@_true_c:| which will appear in our redefinition of the columns of type
-% |S| (of \pkg{siunitx}).
+% For |\@@_S:|. If the user has used |S[...]|, |S| has been replaced by |\@@_S:|
+% during the first expansion of the preamble (done with the tools of standard
+% LaTeX and \pkg{array}).
% \begin{macrocode}
\cs_new_protected:Npn \@@_patch_preamble_vi:n #1
{
- \tl_gput_right:Nn \g_@@_preamble_tl { c }
+ \str_if_eq:nnTF { #1 } { [ }
+ { \@@_patch_preamble_vi_i:w [ }
+ { \@@_patch_preamble_vi_i:w [ ] { #1 } }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_vi_i:w [ #1 ]
+ { \@@_patch_preamble_vi_ii:n { #1 } }
+% \end{macrocode}
+%
+% For version of \pkg{siunitx} at least equal to 3.0, the adaptation is different
+% from previous ones. We test the version of \pkg{siunitx} by the existence of the
+% control sequence |\siunitx_cell_begin:w|. When we will decide that only the
+% previous posterior to 3.0 are supported by \pkg{nicematrix}, we will delete
+% the second definition of |\@@_patch_preamble_vi_ii:n|.
+% \begin{macrocode}
+\AtBeginDocument
+ {
+ \cs_if_exist:NTF \siunitx_cell_begin:w
+ {
+ \cs_new_protected:Npn \@@_patch_preamble_vi_ii:n #1
+ {
+ \tl_gput_right:Nn \g_@@_preamble_tl
+ {
+ > {
+ \@@_cell_begin:w
+ \keys_set:nn { siunitx } { #1 }
+ \siunitx_cell_begin:w
+ }
+ c
+ < { \siunitx_cell_end: \@@_cell_end: }
+ }
% \end{macrocode}
% We increment the counter of columns and then we test for the presence of a |<|.
% \begin{macrocode}
- \int_gincr:N \c@jCol
- \@@_patch_preamble_x:n
+ \int_gincr:N \c@jCol
+ \@@_patch_preamble_x:n
+ }
+ }
+ {
+ \cs_new_protected:Npn \@@_patch_preamble_vi_ii:n #1
+ {
+ \tl_gput_right:Nn \g_@@_preamble_tl
+ {
+ > { \@@_cell_begin:w \c_@@_table_collect_begin_tl S { #1 } }
+ c
+ < { \c_@@_table_print_tl \@@_cell_end: }
+ }
+ \int_gincr:N \c@jCol
+ \@@_patch_preamble_x:n
+ }
+ }
}
% \end{macrocode}
%
@@ -9585,7 +9647,7 @@ version 2005/12/01 or later.
%
% \medskip
% The following set of keys is for the specifier |X| in the preamble of the
-% array. Such specifier may have as key all the keys of
+% array. Such specifier may have as keys all the keys of
% |{ WithArrows / p-column }| but also a key as 1, 2, 3, etc. The following set
% of keys will be used to retrieve that value (in the counter |\l_@@_weight_int|).
% \begin{macrocode}
@@ -9617,7 +9679,7 @@ version 2005/12/01 or later.
% initial value is $1$). The user may specify a different value (such as $2$,
% $3$, etc.) by putting that value in the optional argument of the specifier.
% The weights of the |X| columns are used in the computation of the actual width
-% of those columns.
+% of those columns as in \pkg{tabu} of \pkg{tabularray}.
% \begin{macrocode}
\int_zero_new:N \l_@@_weight_int
\int_set:Nn \l_@@_weight_int { 1 }
@@ -9626,9 +9688,9 @@ version 2005/12/01 or later.
\int_gadd:Nn \g_@@_total_X_weight_int \l_@@_weight_int
% \end{macrocode}
%
-% We test whether we know the width of the |X|-columns by reading the |aux| file.
+% We test whether we know the width of the |X|-columns by reading the |aux| file
% (after the first compilation, the width of the |X|-columns is computed and
-% written on the |aux| file).
+% written in the |aux| file).
% \begin{macrocode}
\bool_if:NTF \l_@@_X_columns_aux_bool
{ \@@_patch_preamble_iv_iv:n { \l_@@_weight_int \l_@@_X_columns_dim } }
@@ -9636,7 +9698,7 @@ version 2005/12/01 or later.
\tl_gput_right:Nn \g_@@_preamble_tl
{
> {
- \@@_Cell:
+ \@@_cell_begin:w
\bool_set_true:N \l_@@_X_column_bool
% \end{macrocode}
% The following code will nullify the box of the cell.
@@ -9652,7 +9714,7 @@ version 2005/12/01 or later.
c
< {
\end { minipage }
- \@@_end_Cell:
+ \@@_cell_end:
}
}
\int_gincr:N \c@jCol
@@ -9832,9 +9894,9 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_preamble_tl
{
- > { \@@_Cell: \str_set:Nn \l_@@_hpos_cell_str { #1 } }
+ > { \@@_cell_begin:w \str_set:Nn \l_@@_hpos_cell_str { #1 } }
#1
- < \@@_end_Cell:
+ < \@@_cell_end:
}
% \end{macrocode}
%
@@ -9873,7 +9935,7 @@ version 2005/12/01 or later.
\tl_gput_right:Nn \g_@@_preamble_tl
{
> {
- \@@_Cell:
+ \@@_cell_begin:w
\begin { minipage } [ #1 ] { \dim_eval:n { #3 } }
\mode_leave_vertical:
\arraybackslash
@@ -9883,7 +9945,7 @@ version 2005/12/01 or later.
< {
\vrule height 0 pt depth \box_dp:N \@arstrutbox width 0 pt
\end { minipage }
- \@@_end_Cell:
+ \@@_cell_end:
}
}
% \end{macrocode}
@@ -9902,12 +9964,12 @@ version 2005/12/01 or later.
{
> {
\hbox_set:Nw \l_@@_cell_box
- \@@_Cell:
+ \@@_cell_begin:w
\str_set:Nn \l_@@_hpos_cell_str { #3 }
}
c
< {
- \@@_end_Cell:
+ \@@_cell_end:
#1
\hbox_set_end:
\bool_if:NT \g_@@_rotate_bool \@@_rotate_cell_box:
@@ -10895,7 +10957,7 @@ version 2005/12/01 or later.
\c@MaxMatrixCols
{ \@@_pred:n \l_@@_last_col_int }
}
- { > \@@_Cell: #2 < \@@_end_Cell: }
+ { > \@@_cell_begin:w #2 < \@@_cell_end: }
}
}
% \end{macrocode}
@@ -11136,16 +11198,16 @@ version 2005/12/01 or later.
% etc.) and no corners. In that case, we switch to a shortcut version of
% |\@@_vline_i:nn| and |\@@_hline:nn|.
% \begin{macrocode}
- \bool_lazy_all:nT
- {
- { \seq_if_empty_p:N \g_@@_pos_of_blocks_seq }
- { \seq_if_empty_p:N \g_@@_pos_of_xdots_seq }
- { \seq_if_empty_p:N \l_@@_corners_cells_seq }
- }
- {
- \cs_set_eq:NN \@@_vline_i:nn \@@_vline_i_complete:nn
- \cs_set_eq:NN \@@_hline_i:nn \@@_hline_i_complete:nn
- }
+ % \bool_lazy_all:nT
+ % {
+ % { \seq_if_empty_p:N \g_@@_pos_of_blocks_seq }
+ % { \seq_if_empty_p:N \g_@@_pos_of_xdots_seq }
+ % { \seq_if_empty_p:N \l_@@_corners_cells_seq }
+ % }
+ % {
+ % \cs_set_eq:NN \@@_vline_i:nn \@@_vline_i_complete:nn
+ % \cs_set_eq:NN \@@_hline_i:nn \@@_hline_i_complete:nn
+ % }
\tl_if_empty:NF \l_@@_hlines_clist \@@_draw_hlines:
\tl_if_empty:NF \l_@@_vlines_clist \@@_draw_vlines:
% \end{macrocode}
@@ -13779,7 +13841,7 @@ version 2005/12/01 or later.
}
}
% \end{macrocode}
-% This definition may seem complicated by we must remind that the number of row
+% This definition may seem complicated but we must remind that the number of row
% |\c@iRow| is incremented in the first cell of the row, \emph{after} a
% potential vertical rule on the left side of the first cell.
%
@@ -13801,26 +13863,29 @@ version 2005/12/01 or later.
% \bigskip
% The following command will be executed in the |internal-code-after|. The rule
% will be drawn \emph{before} the column |#1| (that is to say on the left side).
-% |#2| is the number of consecutive occurrences of \verb+|+.
+% |#2| is the number of consecutive occurrences of \verb+|+. |#3| and |#4| are
+% numbers of rows that define the delimitation of the horizontal rule that we
+% have to draw. If |#4| is empty, that means that the rule extends until the
+% last row.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_vline:nn #1 #2
- {
+\cs_new_protected:Npn \@@_vline:nnnn #1 #2 #3 #4
+ {
% \end{macrocode}
-% The following test is for the case where the user don't use all the columns
+% The following test is for the case where the user does not use all the columns
% specified in the preamble of the environment (for instance, a preamble of
% \verb+|c|c|c|+ but only two columns used).
% \begin{macrocode}
\int_compare:nNnT { #1 } < { \c@jCol + 2 }
{
\pgfpicture
- \@@_vline_i:nn { #1 } { #2 }
+ \@@_vline_i:nnnn { #1 } { #2 } { #3 } { #4 }
\endpgfpicture
}
}
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_vline_i:nn #1 #2
+\cs_new_protected:Npn \@@_vline_i:nnnn #1 #2 #3 #4
{
% \end{macrocode}
% |\l_tmpa_tl| is the number of row and |\l_tmpb_tl| the number of column. When
@@ -13829,7 +13894,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\tl_set:Nx \l_tmpb_tl { #1 }
\tl_clear_new:N \l_tmpc_tl
- \int_step_variable:nNn \c@iRow \l_tmpa_tl
+ \int_step_variable:nnNn
+ { #3 }
+ { \tl_if_blank:nTF { #4 } { \int_use:N \c@iRow } { #4 } }
+ \l_tmpa_tl
{
% \end{macrocode}
% The boolean |\g_tmpa_bool| indicates whether the small vertical rule will be
@@ -13845,8 +13913,7 @@ version 2005/12/01 or later.
{ \@@_test_vline_in_block:nnnn ##1 }
\seq_map_inline:Nn \g_@@_pos_of_stroken_blocks_seq
{ \@@_test_vline_in_stroken_block:nnnn ##1 }
- \clist_if_empty:NF \l_@@_corners_clist
- \@@_test_in_corner_v:
+ \clist_if_empty:NF \l_@@_corners_clist \@@_test_in_corner_v:
\bool_if:NTF \g_tmpa_bool
{
\tl_if_empty:NT \l_tmpc_tl
@@ -13873,7 +13940,7 @@ version 2005/12/01 or later.
{ #1 }
{ #2 }
\l_tmpc_tl
- { \int_use:N \c@iRow }
+ { \tl_if_blank:nTF { #4 } { \int_use:N \c@iRow } { #4 } }
\tl_clear:N \l_tmpc_tl
}
}
@@ -13988,7 +14055,7 @@ version 2005/12/01 or later.
{
\tl_if_eq:NnF \l_@@_vlines_clist { all }
{ \clist_if_in:NnT \l_@@_vlines_clist { ##1 } }
- { \@@_vline:nn { ##1 } 1 }
+ { \@@_vline:nnnn { ##1 } 1 1 { } }
}
}
% \end{macrocode}
@@ -14000,18 +14067,20 @@ version 2005/12/01 or later.
% \bigskip
% The following command will be executed in the |internal-code-after|. The rule
% will be drawn \emph{before} the row |#1|. |#2| is the number of consecutive
-% occurrences of |\Hline|.
+% occurrences of |\Hline|. |#3| and |#4| are numbers of columns that define the
+% delimitation of the horizontal rule that we have to draw. If |#4| is empty,
+% that means that the rule extends until the last column.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_hline:nn #1 #2
+\cs_new_protected:Npn \@@_hline:nnnn #1 #2 #3 #4
{
\pgfpicture
- \@@_hline_i:nn { #1 } { #2 }
+ \@@_hline_i:nnnn { #1 } { #2 } { #3 } { #4 }
\endpgfpicture
}
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_hline_i:nn #1 #2
+\cs_new_protected:Npn \@@_hline_i:nnnn #1 #2 #3 #4
{
% \end{macrocode}
% |\l_tmpa_tl| is the number of row and |\l_tmpb_tl| the number of column. When
@@ -14020,7 +14089,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\tl_set:Nn \l_tmpa_tl { #1 }
\tl_clear_new:N \l_tmpc_tl
- \int_step_variable:nNn \c@jCol \l_tmpb_tl
+ \int_step_variable:nnNn
+ { #3 }
+ { \tl_if_blank:nTF { #4 } { \int_use:N \c@jCol } { #4 } }
+ \l_tmpb_tl
{
% \end{macrocode}
% The boolean |\g_tmpa_bool| indicates whether the small horizontal rule will be
@@ -14063,7 +14135,7 @@ version 2005/12/01 or later.
{ #1 }
{ #2 }
\l_tmpc_tl
- { \int_use:N \c@jCol }
+ { \tl_if_blank:nTF { #4 } { \int_use:N \c@jCol } { #4 } }
\tl_clear:N \l_tmpc_tl
}
}
@@ -14172,7 +14244,7 @@ version 2005/12/01 or later.
{
\tl_if_eq:NnF \l_@@_hlines_clist { all }
{ \clist_if_in:NnT \l_@@_hlines_clist { ##1 } }
- { \@@_hline:nn { ##1 } 1 }
+ { \@@_hline:nnnn { ##1 } 1 1 { } }
}
}
% \end{macrocode}
@@ -14209,7 +14281,7 @@ version 2005/12/01 or later.
+ \doublerulesep * ( \int_max:nn 0 { #1 - 1 } )
}
\tl_gput_right:Nx \g_@@_internal_code_after_tl
- { \@@_hline:nn { \@@_succ:n { \c@iRow } } { #1 } }
+ { \@@_hline:nnnn { \@@_succ:n { \c@iRow } } { #1 } 1 { } }
\ifnum 0 = `{ \fi }
}
% \end{macrocode}
@@ -15150,7 +15222,7 @@ version 2005/12/01 or later.
b .code:n = \str_set:Nn \l_@@_vpos_of_block_tl b ,
b .value_forbidden:n = true ,
color .tl_set:N = \l_@@_color_tl ,
- color .value_required:n = true ,
+ color .value_required:n = true
}
% \end{macrocode}
%
@@ -15627,21 +15699,14 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_Block_v:nnnnnn #1 #2 #3 #4 #5 #6
{
% \end{macrocode}
-% The sequence of the positions of the blocks will be used when drawing the rules
-% (in fact, there is also the |\multicolumn| and the |\diagbox| in that sequence).
-% \begin{macrocode}
- \seq_gput_left:Nn \g_@@_pos_of_blocks_seq { { #1 } { #2 } { #3 } { #4 } }
-% \end{macrocode}
-%
% The group is for the keys.
% \begin{macrocode}
\group_begin:
\keys_set:nn { NiceMatrix / Block / SecondPass } { #5 }
% \end{macrocode}
%
-%
% \begin{macrocode}
- \bool_if:NT \l_@@_hvlines_block_bool
+ \bool_if:NTF \l_@@_hvlines_block_bool
{
\tl_gput_right:Nx \g_nicematrix_code_after_tl
{
@@ -15651,6 +15716,15 @@ version 2005/12/01 or later.
{ \int_use:N \l_@@_last_row_int - \int_use:N \l_@@_last_col_int }
}
}
+ {
+% \end{macrocode}
+% The sequence of the positions of the blocks (excepted the blocks with the key
+% |hvlines|) will be used when drawing the rules (in fact, there is also the
+% |\multicolumn| and the |\diagbox| in that sequence).
+% \begin{macrocode}
+ \seq_gput_left:Nn \g_@@_pos_of_blocks_seq
+ { { #1 } { #2 } { #3 } { #4 } }
+ }
% \end{macrocode}
%
% \begin{macrocode}
@@ -16096,7 +16170,7 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-
+%
% \bigskip
% The first argument of |\@@_hvlines_block:nnn| is a list of options for the
% rules that we will draw. The second argument is the upper-left cell of the
@@ -16113,40 +16187,16 @@ version 2005/12/01 or later.
\@@_cut_on_hyphen:w #3 \q_stop
\tl_set:Nx \l_tmpa_tl { \int_eval:n { \l_tmpa_tl + 1 } }
\tl_set:Nx \l_tmpb_tl { \int_eval:n { \l_tmpb_tl + 1 } }
- \pgfpicture
- \pgfrememberpicturepositiononpagetrue
- \pgf@relevantforpicturesizefalse
- \CT@arc@
- \pgfsetlinewidth { 1.1 \l_@@_line_width_dim }
-% \end{macrocode}
-% First, the vertical rules.
-% \begin{macrocode}
- \@@_qpoint:n { row - \l_tmpa_tl }
- \dim_set_eq:NN \l_tmpa_dim \pgf@y
- \@@_qpoint:n { row - \l_tmpc_tl }
- \dim_set_eq:NN \l_tmpb_dim \pgf@y
\int_step_inline:nnn \l_tmpd_tl \l_tmpb_tl
- {
- \@@_qpoint:n { col - ##1 }
- \pgfpathmoveto { \pgfpoint \pgf@x \l_tmpa_dim }
- \pgfpathlineto { \pgfpoint \pgf@x \l_tmpb_dim }
- \pgfusepathqstroke
- }
-% \end{macrocode}
-% Now, the horizontal rules.
-% \begin{macrocode}
- \@@_qpoint:n { col - \l_tmpb_tl }
- \dim_set:Nn \l_tmpa_dim { \pgf@x + 0.5 \arrayrulewidth }
- \@@_qpoint:n { col - \l_tmpd_tl }
- \dim_set:Nn \l_tmpb_dim { \pgf@x - 0.5 \arrayrulewidth }
+ {
+ \use:x
+ { \@@_vline:nnnn { ##1 } 1 { \l_tmpc_tl } { \@@_pred:n \l_tmpa_tl } }
+ }
\int_step_inline:nnn \l_tmpc_tl \l_tmpa_tl
- {
- \@@_qpoint:n { row - ##1 }
- \pgfpathmoveto { \pgfpoint \l_tmpa_dim \pgf@y }
- \pgfpathlineto { \pgfpoint \l_tmpb_dim \pgf@y }
- \pgfusepathqstroke
- }
- \endpgfpicture
+ {
+ \use:x
+ { \@@_hline:nnnn { ##1 } 1 { \l_tmpd_tl } { \@@_pred:n \l_tmpb_tl } }
+ }
}
% \end{macrocode}
%
@@ -17562,8 +17612,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { Unknown~key~for~RowStyle }
{
- As~for~now,~there~is~only~three~keys~available~here:~'cell-space-top-limit',~
- 'cell-space-bottom-limit~and~'cell-space-limits'~(and~you~try~to~use~
+ As~for~now,~there~is~only~four~keys~available~here:~'cell-space-top-limit',~
+ 'cell-space-bottom-limit~'cell-space-limits'~and~color~(and~you~try~to~use~
'\l_keys_key_str').~If~you~go~on,~this~key~will~be~ignored.
}
% \end{macrocode}
@@ -18705,6 +18755,14 @@ version 2005/12/01 or later.
%
% The key |define-L-C-R| has been deleted.
%
+%
+% \subsection*{Changes between versions 6.0 and 6.1}
+%
+% Better computation of the widths of the |X| columns.
+%
+% Key |\color| for the command |\RowStyle|.
+%
+%
% \PrintIndex
%
% \tableofcontents
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index 12158c8954..026c149a49 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/phonenumbers/README b/macros/latex/contrib/phonenumbers/README
index 7d743b9cf3..d39c143524 100644
--- a/macros/latex/contrib/phonenumbers/README
+++ b/macros/latex/contrib/phonenumbers/README
@@ -9,8 +9,8 @@ number is valid according to the national rules. It also allows to link phone
numbers using the hyperref package.
Package author: K. Wehr
-Version: 2.2
-Date: 18th August 2019
+Version: 2.3
+Date: 20th August 2021
The phonenumbers package is subject to the LaTeX Project Public License,
version 1.3 or later.
diff --git a/macros/latex/contrib/phonenumbers/doc/Literatur.bib b/macros/latex/contrib/phonenumbers/doc/Literatur.bib
index 512f9aeee0..ff0bc59087 100644
--- a/macros/latex/contrib/phonenumbers/doc/Literatur.bib
+++ b/macros/latex/contrib/phonenumbers/doc/Literatur.bib
@@ -1,5 +1,5 @@
% phonenumbers package: references
-% Datum: 5. August 2018
+% Datum: 20. August 2021
@book{duden,
title = {Duden},
subtitle = {Die deutsche Rechtschreibung},
@@ -26,7 +26,7 @@
author = {{Bundesnetzagentur}},
title = {Preisfestlegungsverfahren für (0)137},
date = {2007-08-15},
- url = {https://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/0137/Preisfestsetzungsverfahren/PreisfestlegungsVerfhrn0137_Basepage.html?nn=268384}
+ url = {https://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/0137/Preisfestsetzungsverfahren/PreisfestlegungsVerfhrn0137_Basepage.html?nn=326370}
}
@online{BNA-01801,
@@ -38,9 +38,9 @@
@online{BNA-01806,
author = {{Bundesnetzagentur}},
- title = {(0)180 Rufnummern für Service-Dienste; Rufnummernteilbereich (0)180-6 und (0)180-7; Preisfestlegung und Veröffentlichung nach §\,67 Abs. 2 TKG},
+ title = {(0)180 Rufnummern für Service-Dienste; Rufnummernteilbereiche (0)180-6 und (0)180-7; Preisfestlegung und Veröffentlichung nach §\,67 Abs. 2 TKG},
date = {2012-08-08},
- url = {https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/0180/Preisfestlegung%20(0)180-6%20und%20(0)180-7.pdf?__blob=publicationFile&v=1}
+ url = {https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/0180/Preisfestlegung0180-6_0180-7.pdf?__blob=publicationFile&v=1}
}
@online{BNA-019,
@@ -66,76 +66,75 @@
@online{BNA-ortsvorwahlen,
author = {{Bundesnetzagentur}},
- title = {Verzeichnis der Ortsnetze der Bundesrepublik Deutschland},
- subtitle = {Liste der Ortsnetzkennzahlen in numerischer Folge},
+ title = {Ortsnetzkennzahlen in nummerischer Reihenfolge},
date = {2010-12-31},
- url = {http://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/ONVerzeichnisse/ONBVerzeichnis/B-ListeOrtsnetzenumerisch.pdf?__blob=publicationFile&v=3},
+ url = {https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/ONRufnr/ONK_num.pdf?__blob=publicationFile&v=1}
}
@online{BNA-mobil,
author = {{Bundesnetzagentur}},
title = {Mobile Dienste, zugeteilte RNB},
- date = {2017-10-24},
- url = {http://www.bundesnetzagentur.de/cln_1432/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/MobileDienste/zugeteilte%20RNB/MobileDiensteBelegteRNB_Basepage.html?nn=268384#download=1}
+ date = {2021-07-07},
+ url = {https://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/MobileDienste/zugeteilte%20RNB/MobileDiensteBelegteRNB_Basepage.html?nn=397488#download=1}
}
@online{BNA-Struktur,
author = {{Bundesnetzagentur}},
title = {Struktur und Ausgestaltung des Nummernbereichs für Ortsnetzrufnummern},
- date = {2017-12-20},
- url = {https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/ONRufnr/Vfg_25_2006_konsFassung.pdf?__blob=publicationFile&v=2}
+ date = {2020-05-06},
+ url = {https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Nummerierung/Rufnummern/ONRufnr/Vfg_25_2006_konsFassung.pdf?__blob=publicationFile&v=8}
}
@online{RTR-Liste,
author = {{Rundfunk- und Telekom-Regulierungs-GmbH}},
title = {Presentation of E.164 National Numbering for Country Code 43, Austria},
date = {2011-03-30},
- url = {https://www.rtr.at/de/tk/E129/Austrian_Numbering_Plan_2011-03-30.pdf}
+ url = {https://www.rtr.at/TKP/was_wir_tun/telekommunikation/nummerierung/Austrian_Numbering_Plan_2011-03-30.pdf}
}
@online{RTR-Verordnung,
author = {{Rundfunk- und Telekom-Regulierungs-GmbH}},
- title = {Aktuelle Fassung der Kommunikationsparameter-, Entgelt- und Mehrwertdiensteverordnung 2009},
+ title = {Kommunikationsparameter-, Entgelt- und Mehrwertdiensteverordnung 2009},
date = {2017-10-25},
- url = {https://www.rtr.at/de/tk/KEMV2009kons}
+ url = {https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20006383}
}
@inreference{wikipedia-AT,
title = {Telefonvorwahl (Österreich)},
booktitle = {Wikipedia},
booksubtitle = {Die freie Enzyklopädie},
- date = {2018-06-19},
- url = {https://de.wikipedia.org/wiki/Telefonvorwahl_(%C3%96sterreich)}
+ url = {https://de.wikipedia.org/wiki/Telefonvorwahl_(%C3%96sterreich)},
+ urldate = {2021-08-18}
}
@online{ARCEP,
author = {{Autorité de régulation des communications électroniques et des postes}},
- title = {Plan national de numérotation téléphonique},
- date = {2015-10-22},
- url = {http://www.arcep.fr/uploads/tx_gsavis/05-1085.pdf}
+ title = {Plan national de numérotation},
+ date = {2019-08-01},
+ url = {https://www.arcep.fr/uploads/tx_gsavis/19-0954.pdf}
}
@inreference{wikipedia-FR-fr,
title = {Plan de numérotation en France},
booktitle = {Wikipédia en fran\c{c}ais},
- date = {2018-07-11},
url = {https://fr.wikipedia.org/wiki/Plan_de_num%C3%A9rotation_en_France},
+ urldate = {2021-08-18}
}
@inreference{wikipedia-FR-de,
title = {Telefonvorwahl (Frankreich)},
booktitle = {Wikipedia},
booksubtitle = {Die freie Enzyklopädie},
- date = {2017-11-22},
- url = {https://de.wikipedia.org/wiki/Telefonvorwahl_(Frankreich)}
+ url = {https://de.wikipedia.org/wiki/Telefonvorwahl_(Frankreich)},
+ urldate = {2021-08-18}
}
@inreference{wikipedia-NANP,
title = {North American Numbering Plan},
booktitle = {Wikipedia},
booksubtitle = {The Free Encyclopedia},
- date = {2018-07-15},
- url = {https://en.wikipedia.org/wiki/North_American_Numbering_Plan}
+ url = {https://en.wikipedia.org/wiki/North_American_Numbering_Plan},
+ urldate = {2021-08-16}
}
@inreference{wikipedia-conventions,
@@ -150,41 +149,41 @@
author = {{North American Numbering Plan Association}},
title = {Geographic NPAs in Service Sorted by Number},
url = {https://www.nationalnanpa.com/enas/geoAreaCodeNumberReport.do},
- urldate = {2018-07-29}
+ urldate = {2021-08-16}
}
@online{NANPA-non-geographic,
author = {{North American Numbering Plan Association}},
title = {Non-Geographic NPAs in Service},
url = {https://www.nationalnanpa.com/enas/nonGeoNpaServiceReport.do},
- urldate = {2018-07-29}
+ urldate = {2021-08-16}
}
@online{NANPA-ten-years,
author = {{North American Numbering Plan Association}},
title = {NPAs Introduced over the Last 10 Years},
url = {https://www.nationalnanpa.com/enas/npasOverLast10YearsReport.do},
- urldate = {2018-07-29}
+ urldate = {2021-08-16}
}
@online{NANPA-not-yet,
author = {{North American Numbering Plan Association}},
title = {Planned NPAs Not Yet in Service},
url = {https://www.nationalnanpa.com/enas/plannedNpasNotInServiceReport.do},
- urldate = {2018-07-29}
+ urldate = {2021-08-16}
}
@online{NANPA-ten-digit,
author = {{North American Numbering Plan Association}},
title = {Area Codes Requiring 10 Digit Dialing},
url = {https://www.nationalnanpa.com/enas/npasRequiring10DigitReport.do},
- urldate = {2018-07-29}
+ urldate = {2021-08-16}
}
@online{hyperref,
author = {Sebastian Rahtz and Heiko Oberdiek},
title = {hyperref},
- version = {6.86},
+ version = {7.00},
url = {http://ctan.org/pkg/hyperref}
}
@@ -206,27 +205,27 @@
title = {Telephone numbers in the United Kingdom},
booktitle = {Wikipedia},
booksubtitle = {The Free Encyclopedia},
- date = {2018-07-18},
- url = {https://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom}
+ url = {https://en.wikipedia.org/wiki/Telephone_numbers_in_the_United_Kingdom},
+ urldate = {2021-08-17}
}
@online{UK-formatting,
title = {Phone Number Formatting},
subtitle = {How to write UK telephone numbers},
url = {http://www.area-codes.org.uk/formatting.php},
- urldate = {2018-07-30}
+ urldate = {2021-08-17}
}
@online{UK-area-codes,
title = {UK Area Codes and Phone Number Information},
url = {http://www.area-codes.org.uk/},
- urldate = {2018-07-30}
+ urldate = {2021-08-17}
}
@online{Ofcom-plan,
author = {Ofcom},
title = {The National Telephone Numbering Plan},
- date = {2018-04-26},
+ date = {2021-01-04},
url = {https://www.ofcom.org.uk/__data/assets/pdf_file/0013/102613/national-numbering-plan.pdf}
}
@@ -234,5 +233,5 @@
author = {Ofcom},
title = {Ofcom Numbering Site},
url = {http://static.ofcom.org.uk/static/numbering/index.htm},
- urldate = {2018-07-30}
+ urldate = {2021-08-17}
}
diff --git a/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.pdf b/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.pdf
index 2844e5790a..bc0f466a74 100644
--- a/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.pdf
+++ b/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.tex b/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.tex
index 386d2b7702..ea51e371aa 100644
--- a/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.tex
+++ b/macros/latex/contrib/phonenumbers/doc/phonenumbers-de.tex
@@ -1,6 +1,6 @@
% phonenumbers package: German manual
-% Version 2.2
-% Datum: 18. August 2019
+% Version 2.3
+% Datum: 20. August 2021
\documentclass[numbers=noenddot]{scrreprt}
\usepackage[french,ngerman]{babel}
\usepackage{fontspec}
@@ -12,7 +12,6 @@
\usepackage{scrlayer-scrpage}
\usepackage{multicol}
\usepackage{metalogo}
-\usepackage[toc]{multitoc}
\usepackage[ngerman]{isodate}
\usepackage{cnltx-example}
\usepackage{cnltx-tools}
@@ -46,8 +45,8 @@
\renewcommand\@pnumwidth{2em}
\makeatother
-\DeclareTOCStyleEntry[raggedentrytext=on]{tocline}{chapter}
-\DeclareTOCStyleEntry[raggedentrytext=on]{tocline}{section}
+\BeforeStartingTOC{\begin{multicols}{2}}
+\AfterStartingTOC{\end{multicols}}
\addbibresource{Literatur.bib}
@@ -72,7 +71,7 @@
\makeatother
\DeclareNewLayer[background,bottommargin,mode=picture,hoffset=7cm,
- contents={\includegraphics{Telefonhörer}}]{Telefonebene}
+ contents={\includegraphics{Telefonhoerer}}]{Telefonebene}
\AddLayersToPageStyle{plain}{Telefonebene}
\AddLayersToPageStyle{scrheadings}{Telefonebene}
@@ -184,19 +183,25 @@ Am Ende der Teilnehmerrufnummer kann eine abgetrennte Durchwahlnummer stehen, di
\includegraphics{Titelbild-de}
\vfill
-\Large
+\large
\textit{Paketautor}
-\medskip
+\smallskip
Keno Wehr
-\large
+\bigskip
+\textit{Fehlermeldungen}
+
\smallskip
-\url{wehr@abgol.de}
+\normalsize
+\url{https://github.com/wehro/phonenumbers/issues}
\end{center}
-\vfill
+\bigskip
\noindent Dieses Paket ermöglicht es, Telefonnummern unterschiedlichen nationalen Konventionen entsprechend zu setzen und bei Bedarf auch zu verlinken. Unterstützt werden deutsche, österreichische, französische, britische und nordamerikanische Telefonnummern. Nummern aus anderen Ländern werden rudimentär unterstützt.
+
+\bigskip
+\noindent An English version of this manual is available in the file \texttt{phonenumbers-en.pdf}.
\end{titlepage}
\tableofcontents
@@ -212,7 +217,7 @@ Keno Wehr
\phonenumber[area-code-sep=brackets]{020432632194}
\end{sidebyside}
\begin{sidebyside}
- \phonenumber[area-code=place,area-code-sep=space]{0409188423}
+ \phonenumber[area-code=place,area-code-sep=space]{04066969123}
\end{sidebyside}
\begin{sidebyside}
\phonenumber[foreign]{0209576342}
@@ -237,13 +242,13 @@ Keno Wehr
\section{Frankreich}
\begin{sidebyside}
- \phonenumber[country=FR]{0123456789}
+ \phonenumber[country=FR]{0199006789}
\end{sidebyside}
\begin{sidebyside}
- \phonenumber[country=FR,area-code=place-and-number]{0123456789}
+ \phonenumber[country=FR,area-code=place-and-number]{0199006789}
\end{sidebyside}
\begin{sidebyside}
- \phonenumber[country=FR,foreign]{0123456789}
+ \phonenumber[country=FR,foreign]{0199006789}
\end{sidebyside}
\section{Großbritannien}
@@ -292,11 +297,11 @@ Das Ziel des Pakets \phone\ ist es, das Setzen von Telefonnummern zu ermögliche
Beispielsweise werden in den meisten Ländern Vorwahlen graphisch von der Rufnummer getrennt. Für die Darstellung der Telefonnummer mit dem Paket \phone\ braucht der Nutzer nicht zu wissen, welche Ziffern zur Vorwahl und welche zur Rufnummer gehören. Das Paket kennt alle Vorwahlen der unterstützten Länder und stellt diese automatisch richtig dar.
\begin{sidebyside}
- \phonenumber{0305226789}
+ \phonenumber{03023125789}
\end{sidebyside}
Hier wurden die ersten drei Ziffern als Vorwahl von Berlin erkannt. Dagegen können im folgenden Beispiel die ersten sechs Ziffern als Vorwahl von Bad Schandau identifiziert werden.
\begin{sidebyside}
- \phonenumber{0350226789}
+ \phonenumber{03502225789}
\end{sidebyside}
Das Paket hat nicht das Ziel, eine bestimmte Norm umzusetzen; es orientiert sich an den üblichen Gepflogenheiten zur Darstellung von Telefonnummern. Durch das Setzen von Optionen kann der Anwender das Land festlegen, aus dem die Telefonnummer stammt, sowie zwischen mehreren Formatierungsvarianten wählen. Hierzu zählt auch die zusätzliche Ausgabe der Auslandsvorwahl.
@@ -313,7 +318,7 @@ Setzt die \meta{Optionen} für alle folgenden Telefonnummern, für die nichts an
Setzt eine Telefonnummer. Die \meta{Optionen} gelten nur für diese Telefonnummer.
Die \meta{Nummer} kann im lokalen oder im internationalen Format eingegeben werden. Das lokale Format ist nur für unterstützte Länder möglich; das zugehörige Land ist durch die Option
-\option{country}
+\option{country}
festzulegen
\vglAbschnitt{optionen-allgemein}.
Das internationale Format beginnt stets mit
@@ -379,15 +384,15 @@ Gibt an, ob und in welcher Form die Auslandsvorwahl ausgegeben werden soll.
Mit \code{foreign=international} oder einfach \code{foreign} erhält man eine Auslandsvorwahl, die aus einem Pluszeichen gefolgt von der Landeskennzahl (z.\,B. 49 für deutsche Nummern) besteht. In dieser Form kann sie auf Mobiltelefonen direkt verwendet werden. Im Festnetz muss das + durch die am Ort des Anrufers verwendeten internationalen Verkehrsausscheidungsziffern ersetzt werden.
\begin{sidebyside}
- \phonenumber[foreign=international]{0305226789}
+ \phonenumber[foreign=international]{03023125789}
\end{sidebyside}
Die Variante \code{american} lässt die Auslandsvorwahl mit 011 beginnen, den in Nordamerika gebräuchlichen internationalen Verkehrsausscheidungsziffern.
\begin{sidebyside}
- \phonenumber[foreign=american]{0305226789}
+ \phonenumber[foreign=american]{03023125789}
\end{sidebyside}
Bei Auswahl von \code{european} beginnt die Nummer mit einer Doppelnull, wie sie in den meisten Ländern Europas und weiteren Teilen der Welt verwendet wird.
\begin{sidebyside}
- \phonenumber[foreign=european]{0305226789}
+ \phonenumber[foreign=european]{03023125789}
\end{sidebyside}
Bei Nummern aus nicht unterstützten Ländern wird die Wahl
@@ -413,7 +418,7 @@ Legt das Heimatland fest. Für Nummern aus diesem Land wird unabhängig vom Wert
\begin{sidebyside}
\setphonenumbers{foreign,home-country=FR}
\phonenumber[country=DE]{0441343396} \\
- \phonenumber[country=FR]{0123456789} \\
+ \phonenumber[country=FR]{0199006789} \\
\phonenumber[country=US]{2125550123}
\end{sidebyside}
@@ -427,7 +432,7 @@ Vor der Heimatvorwahl sollte das Heimatland mit der Option \option{home-country}
\setphonenumbers{home-country=US,home-area-code=242,foreign}
\phonenumber[country=US]{2125550123} \\
\phonenumber[country=US]{2425550124} \\
- \phonenumber[country=DE]{02581639737}
+ \phonenumber[country=DE]{0258163970}
\end{sidebyside}
Die Angabe einer Heimatvorwahl ist nur für Gebiete zulässig, in denen die Vorwahl bei Ortsgesprächen weggelassen werden kann.
\end{Befehlsliste}
@@ -486,15 +491,15 @@ Der zugehörige Tarif kann mit Hilfe der Option
\OptionsvariantenAreaCodeSep
\OptionsbeschreibungAreaCodeSep
\begin{sidebyside}
- \phonenumber[area-code-sep=space]{02581639737} \\
- \phonenumber[area-code-sep=hyphen]{01738642753}
+ \phonenumber[area-code-sep=space]{0258163970} \\
+ \phonenumber[area-code-sep=hyphen]{01749091317}
\end{sidebyside}
\WertbeschreibungBrackets
\begin{sidebyside}
\setphonenumbers{area-code-sep=brackets}
\phonenumber{02581639737} \\
- \phonenumber{01738642753}
+ \phonenumber{01749091317}
\end{sidebyside}
\HinweisForeignAreaCodeSep
@@ -505,7 +510,7 @@ Der zugehörige Tarif kann mit Hilfe der Option
\begin{sidebyside}
\setphonenumbers{area-code=place}
\phonenumber{08942630845} \\
- \phonenumber{01738642753} \\
+ \phonenumber{01749091317} \\
\phonenumber[foreign]{04414363524}
\end{sidebyside}
@@ -513,7 +518,7 @@ Der zugehörige Tarif kann mit Hilfe der Option
\begin{sidebyside}
\setphonenumbers{area-code=place-and-number}
\phonenumber{08942630845} \\
- \phonenumber{01738642753} \\
+ \phonenumber{01749091317} \\
\phonenumber{01803635341} \\
\phonenumber[foreign]{04414363524}
\end{sidebyside}
@@ -679,20 +684,26 @@ Er gilt hingegen nicht für die Pazifikgebiete Wallis und Futuna, Französisch-P
\UeberschriftAufbau
Französische Telefonnummern sind generell zehnstellig und werden in Zweiergruppen gegliedert. Die erste Ziffer ist immer eine 0.
\begin{sidebyside}
- \phonenumber[country=FR]{0123456789}
+ \phonenumber[country=FR]{0199006789}
\end{sidebyside}
-Die zweite Ziffer ermöglicht die Zuordnung der Nummer zu einem von fünf geographischen Bereichen bzw. einer besonderen Verwendung (z.\,B. Mobilfunk). Die folgenden Stellen erlauben prinzipiell eine genauere geographische Zuordnung der Nummer, doch macht das Paket \phone\ hiervon nur zur Identifikation von Nummern aus Überseegebieten Gebrauch
+Die zweite Ziffer ermöglicht die Zuordnung der Nummer zu einem von fünf geographischen Bereichen bzw. einer besonderen Verwendung (z.\,B. Mobilfunk). Bestimmte Nummerngruppen sind für Überseegebiete reserviert
\vglAnhang{vorwahlen-FR}.
\begin{sidebyside}
\setphonenumbers{country=FR,area-code=place-and-number}
- \phonenumber{0123456789} \\
- \phonenumber{0512345678} \\
+ \phonenumber{0199006789} \\
+ \phonenumber{0536495678} \\
\phonenumber{0596123456}
\end{sidebyside}
Bei Anrufen aus dem Ausland entfällt die führende 0 der Rufnummer.
\begin{sidebyside}
- \phonenumber[country=FR,foreign]{0123456789}
+ \phonenumber[country=FR,foreign]{0199006789}
+\end{sidebyside}
+
+Nummern für die maschinelle Kommunikation, die mit 07\,00 beginnen, haben mehr als zehn Ziffern. Sie sind im Mutterland 14-stellig, in den Überseegebieten 13-stellig \cite[19]{ARCEP}.
+\begin{sidebyside}
+ \phonenumber[country=FR]{07000123456789} \\
+ \phonenumber[country=FR]{0700512345678}
\end{sidebyside}
Einige Firmen und Institutionen haben vierstellige Kurznummern, die stets mit einer 3 beginnen.
@@ -717,19 +728,19 @@ Die erste Nummer im folgenden Beispiel stammt aus Mayotte und verwendet daher di
\begin{sidebyside}
\setphonenumbers{country=FR,foreign}
\phonenumber{0269123456} \\
- \phonenumber{0296123456}
+ \phonenumber{0261913456}
\end{sidebyside}
Die Auslandsvorwahl führt für einige Gebiete zu einer Verdopplung der ersten drei Ziffern, z.\,B. im Fall von Martinique (Regionalvorwahl 05\,96).
\begin{sidebyside}
\phonenumber[country=FR,foreign]{0596123456}
\end{sidebyside}
-Dagegen entfällt für Saint-Pierre und Miquelon die Regionalvorwahl 05\,08 bei Auslandsanrufen vollständig \cite[4]{ARCEP}.
+Dagegen entfällt für Saint-Pierre und Miquelon die Regionalvorwahl 05\,08 bei Auslandsanrufen vollständig \cite[13]{ARCEP}.
\begin{sidebyside}
\phonenumber[country=FR,foreign]{0508123456}
\end{sidebyside}
-In Saint-Pierre und Miquelon ist es außerdem möglich, bei lokalen Gesprächen die Vorwahl wegzulassen und nur sechs Ziffern zu wählen \cite[4]{ARCEP}.
+In Saint-Pierre und Miquelon ist es außerdem möglich, bei lokalen Gesprächen die Vorwahl wegzulassen und nur sechs Ziffern zu wählen \cite[13]{ARCEP}.
\begin{sidebyside}
\setphonenumbers{country=FR,home-area-code=0508}
\phonenumber{0508123456}
@@ -744,30 +755,31 @@ Da dies in anderen Gebieten Frankreichs nicht möglich ist, ist \code{0508} der
\WertbeschreibungPlaceAndNumber
\begin{sidebyside}
\setphonenumbers{country=FR,area-code=place-and-number}
- \phonenumber{0123456789} \\
+ \phonenumber{0199006789} \\
\phonenumber{0596123456} \\
\phonenumber{0612345678} \\
- \phonenumber[foreign]{0123456789}
+ \phonenumber[foreign]{0199006789}
\end{sidebyside}
\WertbeschreibungPlace
\ Da die Vorwahl in Frankreich stets mitgewählt werden muss, ist von der Verwendung dieser Option abzuraten.
\begin{sidebyside}
\setphonenumbers{country=FR,area-code=place}
- \phonenumber{0123456789} \\
+ \phonenumber{0199006789} \\
\phonenumber{0596123456} \\
\phonenumber{0612345678} \\
- \phonenumber[foreign]{0123456789}
+ \phonenumber[foreign]{0199006789}
\end{sidebyside}
\end{Befehlsliste}
\UeberschriftUngueltig
\WarnungWenn
\begin{itemize}
-\item die Nummer nicht genau 10 oder 4 Stellen hat,
+\item die Nummer nicht genau 10 oder 4 Stellen hat (außer bei Nummern, die mit 07\,00 beginnen),
\item eine Nummer mit 10 Stellen nicht mit einer 0 beginnt,
\item eine Nummer mit 4 Stellen nicht mir einer 3 beginnt,
-\item eine Nummer mit 10 Stellen keine gültige Vorwahl beinhaltet.
+\item eine Nummer mit 10 Stellen keine gültige Vorwahl beinhaltet,
+\item eine Nummer, die mit 07\,00 beginnt, nicht 14 oder 13 Stellen hat.
\end{itemize}
\chapter{Britische Telefonnummern}
@@ -993,9 +1005,9 @@ Gibt an, ob die Verkehrsausscheidungsziffer 1 für Ferngespräche ausgegeben wer
\chapter{Technische Hinweise}
Das Paket \phone\ verwendet das Paket
-\Paket{ltxcmds}
-sowie die experimentellen \LaTeX-3-Pakete
-\Paket{expl3}, \Paket{xparse} und \Paket{l3keys2e}.
+\Paket{ltxcmds}
+sowie das \LaTeX-3-Paket
+\Paket{l3keys2e}.
Bindestriche innerhalb von Telefonnummern werden durch
\verbcode:\kern1pt-\kern1pt: realisiert, das heißt sie werden mit einem Zusatzabstand von 1 Punkt zu den umgebenden Ziffern gesetzt. Das gilt auch für Schrägstriche, die als
@@ -1058,14 +1070,14 @@ expandiert.
\Schmalschrift
\AreaCodesGeographic[country=FR]
\egroup
-\Quellen \cite[5]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
+\Quellen \cite[14\psq]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
\UeberschriftSondervorwahlen
\bgroup
\Schmalschrift
\AreaCodesNonGeographic[country=FR]
\egroup
-\Quellen \cite[6--15]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
+\Quellen \cite[17--25]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
\chapter{Britische Vorwahlen}
\UeberschriftOrtsvorwahlen
@@ -1183,6 +1195,17 @@ am Anfang
\item Ermöglichung von Makros als Befehlsargumenten
\item leichte Veränderung der Warnmeldungen
\end{itemize}
+\item[2.3] \today
+\begin{itemize}
+\item Ergänzung der neuen deutschen Mobilfunkvorwahl 01\,50\,19
+\item Entfernung der deutschen Mobilfunkvorwahlen 01\,50\,20, 01\,50\,50, 01\,50\,80, 01\,55\,55
+\item Berücksichtigung der mit 07\,00 beginnenden französischen Machine-to-machine-Nummern (einschließlich derjenigen aus den Überseegebieten) mit 14 bzw. 13 Stellen
+\item Berücksichtigung der mit 09\,47 und 09\,76 beginnenden Nummern aus den französischen Überseegebieten
+\item Ergänzung der neuen britischen Vorwahlen 05604, 07354, 07355, 07357, 07359, 07360, 07361, 07362, 07363, 07364 und 0897
+\item Entfernung der britischen Vorwahl 07439
+\item Ergänzung der neuen nordamerikanischen Vorwahlen 227, 274, 341, 368, 428, 447, 448, 464, 474, 523, 524, 525, 526, 572, 582, 656, 659, 689, 730, 742, 771, 826, 839, 840, 943, 945 und 948
+\item Revision des Paketcodes
+\end{itemize}
\end{description}
\end{document}
diff --git a/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.pdf b/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.pdf
index e028bb23cb..526bac2a33 100644
--- a/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.pdf
+++ b/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.tex b/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.tex
index a16d6e56ce..f0533d6304 100644
--- a/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.tex
+++ b/macros/latex/contrib/phonenumbers/doc/phonenumbers-en.tex
@@ -1,6 +1,6 @@
% phonenumbers package: English manual
-% Version 2.2
-% Datum: 18. August 2019
+% Version 2.3
+% Datum: 20. August 2021
\documentclass[numbers=noenddot]{scrreprt}
\usepackage[french,UKenglish]{babel}
\usepackage{fontspec}
@@ -12,7 +12,6 @@
\usepackage{scrlayer-scrpage}
\usepackage{multicol}
\usepackage{metalogo}
-
\usepackage[UKenglish]{isodate}
\usepackage{cnltx-example}
\usepackage{cnltx-tools}
@@ -46,8 +45,8 @@
\renewcommand\@pnumwidth{2em}
\makeatother
-\DeclareTOCStyleEntry[raggedentrytext=on]{tocline}{chapter}
-\DeclareTOCStyleEntry[raggedentrytext=on]{tocline}{section}
+
+
\addbibresource{Literatur.bib}
@@ -72,7 +71,7 @@
\makeatother
\DeclareNewLayer[background,bottommargin,mode=picture,hoffset=7cm,
- contents={\includegraphics{Telefonhörer}}]{Telefonebene}
+ contents={\includegraphics{Telefonhoerer}}]{Telefonebene}
\AddLayersToPageStyle{plain}{Telefonebene}
\AddLayersToPageStyle{scrheadings}{Telefonebene}
@@ -184,19 +183,25 @@ The subscriber number can end in a separate extension, which can be input by an
\includegraphics{Titelbild-en}
\vfill
-\Large
+\large
\textit{Package author}
-\medskip
+\smallskip
Keno Wehr
-\large
+\bigskip
+\textit{Bug reports}
+
\smallskip
-\url{wehr@abgol.de}
+\normalsize
+\url{https://github.com/wehro/phonenumbers/issues}
\end{center}
-\vfill
+\bigskip
\noindent This package makes it possible to typeset telephone numbers according to different national conventions and to link them when required. German, Austrian, French, British, and North American phone numbers are supported. Phone numbers from other countries are supported rudimentarily.
+
+\bigskip
+\noindent A German version of this manual is available in the file \texttt{phonenumbers-de.pdf}.
\end{titlepage}
\tableofcontents
@@ -212,7 +217,7 @@ Keno Wehr
\phonenumber[area-code-sep=brackets]{020432632194}
\end{sidebyside}
\begin{sidebyside}
- \phonenumber[area-code=place,area-code-sep=space]{0409188423}
+ \phonenumber[area-code=place,area-code-sep=space]{04066969123}
\end{sidebyside}
\begin{sidebyside}
\phonenumber[foreign]{0209576342}
@@ -237,13 +242,13 @@ Keno Wehr
\section{France}
\begin{sidebyside}
- \phonenumber[country=FR]{0123456789}
+ \phonenumber[country=FR]{0199006789}
\end{sidebyside}
\begin{sidebyside}
- \phonenumber[country=FR,area-code=place-and-number]{0123456789}
+ \phonenumber[country=FR,area-code=place-and-number]{0199006789}
\end{sidebyside}
\begin{sidebyside}
- \phonenumber[country=FR,foreign]{0123456789}
+ \phonenumber[country=FR,foreign]{0199006789}
\end{sidebyside}
\section{United Kingdom}
@@ -292,11 +297,11 @@ The \phone\ package aims to enable the user to typeset telephone numbers without
For instance, area codes are separated from the subscriber number in most countries. To typeset the phone number with the aid of the \phone\ package the user does not need to know which digits belong to the area code and which to the subscriber number. The package knows all area codes of the supported countries and will automatically typeset them correctly.
\begin{sidebyside}
- \phonenumber{0305226789}
+ \phonenumber{03023125789}
\end{sidebyside}
The first three digits of this German phone number are recognized as the area code of Berlin, whereas in the following example the first six digits can be identified as the area code of the German spa town of Bad Schandau.
\begin{sidebyside}
- \phonenumber{0350226789}
+ \phonenumber{03502225789}
\end{sidebyside}
The package does not aim to implement a particular norm. Rather, it follows the usual conventions for typesetting phone numbers. By setting options the user can determine the country the number is belonging to and select from various formatting options. This includes the additional output of the country calling code.
@@ -313,7 +318,7 @@ Sets the \meta{options} for all following phone numbers not having contradictory
Typesets a telephone number. The \meta{options} are valid only for this phone number.
The \meta{number} can be input in the local or in the international format. The local format is possible for supported countries only; the country has to be set by the
-\option{country}
+\option{country}
option
\vglAbschnitt{optionen-allgemein}.
The international format always begins with
@@ -379,15 +384,15 @@ Specifies whether and in which form the country calling code will be output.
With \code{foreign=international} or simply \code{foreign} you will get a country calling code consisting of a plus sign followed by the country code (\eg\ 49 for German numbers). In this form the country calling code can be directly used on mobile phones. For landline calls the + has to be replaced by the international call prefix used in the country of the caller.
\begin{sidebyside}
- \phonenumber[foreign=international]{0305226789}
+ \phonenumber[foreign=international]{03023125789}
\end{sidebyside}
The choice \code{american} lets the country calling code begin with 011, the international call prefix used in North America.
\begin{sidebyside}
- \phonenumber[foreign=american]{0305226789}
+ \phonenumber[foreign=american]{03023125789}
\end{sidebyside}
With the choice \code{european} the number will begin with a double zero, used in most of Europe and further parts of the world.
\begin{sidebyside}
- \phonenumber[foreign=european]{0305226789}
+ \phonenumber[foreign=european]{03023125789}
\end{sidebyside}
For numbers from unsupported countries the choice
@@ -413,7 +418,7 @@ Sets the home country. Numbers from this country will be typeset without the cou
\begin{sidebyside}
\setphonenumbers{foreign,home-country=FR}
\phonenumber[country=DE]{0441343396} \\
- \phonenumber[country=FR]{0123456789} \\
+ \phonenumber[country=FR]{0199006789} \\
\phonenumber[country=US]{2125550123}
\end{sidebyside}
@@ -427,7 +432,7 @@ The \option{home-country} option should to be set before the home area code. If
\setphonenumbers{home-country=US,home-area-code=242,foreign}
\phonenumber[country=US]{2125550123} \\
\phonenumber[country=US]{2425550124} \\
- \phonenumber[country=DE]{02581639737}
+ \phonenumber[country=DE]{0258163970}
\end{sidebyside}
Setting a home area code is allowed only for areas where the area code can be left out for local calls.
\end{Befehlsliste}
@@ -486,15 +491,15 @@ The relevant tariff can be output using the
\OptionsvariantenAreaCodeSep
\OptionsbeschreibungAreaCodeSep
\begin{sidebyside}
- \phonenumber[area-code-sep=space]{02581639737} \\
- \phonenumber[area-code-sep=hyphen]{01738642753}
+ \phonenumber[area-code-sep=space]{0258163970} \\
+ \phonenumber[area-code-sep=hyphen]{01749091317}
\end{sidebyside}
\WertbeschreibungBrackets
\begin{sidebyside}
\setphonenumbers{area-code-sep=brackets}
\phonenumber{02581639737} \\
- \phonenumber{01738642753}
+ \phonenumber{01749091317}
\end{sidebyside}
\HinweisForeignAreaCodeSep
@@ -505,7 +510,7 @@ The relevant tariff can be output using the
\begin{sidebyside}
\setphonenumbers{area-code=place}
\phonenumber{08942630845} \\
- \phonenumber{01738642753} \\
+ \phonenumber{01749091317} \\
\phonenumber[foreign]{04414363524}
\end{sidebyside}
@@ -513,7 +518,7 @@ The relevant tariff can be output using the
\begin{sidebyside}
\setphonenumbers{area-code=place-and-number}
\phonenumber{08942630845} \\
- \phonenumber{01738642753} \\
+ \phonenumber{01749091317} \\
\phonenumber{01803635341} \\
\phonenumber[foreign]{04414363524}
\end{sidebyside}
@@ -679,20 +684,26 @@ However, it is not used for the Pacific territories Wallis and Futuna, French Po
\UeberschriftAufbau
French phone numbers generally have ten digits and are structured in groups of two digits. The first digit is always 0.
\begin{sidebyside}
- \phonenumber[country=FR]{0123456789}
+ \phonenumber[country=FR]{0199006789}
\end{sidebyside}
-The second digit makes it possible to assign a number to one of five geographic zones or to a special purpose (\eg\ mobile telephony), respectively. The following digits theoretically allow a more precise geographic assignment of the number, but the \phone\ package uses them only to identify numbers from the overseas territories
+The second digit makes it possible to assign a number to one of five geographic zones or to a special purpose (\eg\ mobile telephony). Certain number ranges are reserved for overseas territories
\vglAnhang{vorwahlen-FR}.
\begin{sidebyside}
\setphonenumbers{country=FR,area-code=place-and-number}
- \phonenumber{0123456789} \\
- \phonenumber{0512345678} \\
+ \phonenumber{0199006789} \\
+ \phonenumber{0536495678} \\
\phonenumber{0596123456}
\end{sidebyside}
The leading 0 is omitted for calls from abroad.
\begin{sidebyside}
- \phonenumber[country=FR,foreign]{0123456789}
+ \phonenumber[country=FR,foreign]{0199006789}
+\end{sidebyside}
+
+Numbers for machine to machine communication beginning with 07\,00 have more than ten digits. They have 14 digits in metropolitan France and 13 digits in the overseas territories \cite[19]{ARCEP}.
+\begin{sidebyside}
+ \phonenumber[country=FR]{07000123456789} \\
+ \phonenumber[country=FR]{0700512345678}
\end{sidebyside}
Some companies and institutions have four-digit short numbers, which always begin with 3.
@@ -717,19 +728,19 @@ The first number of the following example is from Mayotte and thus using the cou
\begin{sidebyside}
\setphonenumbers{country=FR,foreign}
\phonenumber{0269123456} \\
- \phonenumber{0296123456}
+ \phonenumber{0261913456}
\end{sidebyside}
For some areas the country code leads to doubling the first three digits, \eg\ in the case of Martinique (area code 05\,96).
\begin{sidebyside}
\phonenumber[country=FR,foreign]{0596123456}
\end{sidebyside}
-However, for Saint Pierre and Miquelon the area code 05\,08 is entirely omitted for calls from abroad \cite[4]{ARCEP}.
+However, for Saint Pierre and Miquelon the area code 05\,08 is entirely omitted for calls from abroad \cite[13]{ARCEP}.
\begin{sidebyside}
\phonenumber[country=FR,foreign]{0508123456}
\end{sidebyside}
-In Saint Pierre and Miquelon it is possible as well to omit the area code for local calls and to dial six digits only \cite[4]{ARCEP}.
+In Saint Pierre and Miquelon it is possible as well to omit the area code for local calls and to dial six digits only \cite[13]{ARCEP}.
\begin{sidebyside}
\setphonenumbers{country=FR,home-area-code=0508}
\phonenumber{0508123456}
@@ -744,30 +755,31 @@ Since this is not possible in other areas of France, \code{0508} is the only leg
\WertbeschreibungPlaceAndNumber
\begin{sidebyside}
\setphonenumbers{country=FR,area-code=place-and-number}
- \phonenumber{0123456789} \\
+ \phonenumber{0199006789} \\
\phonenumber{0596123456} \\
\phonenumber{0612345678} \\
- \phonenumber[foreign]{0123456789}
+ \phonenumber[foreign]{0199006789}
\end{sidebyside}
\WertbeschreibungPlace
\ The use of this option is deprecated because the area code has always to be dialled in France.
\begin{sidebyside}
\setphonenumbers{country=FR,area-code=place}
- \phonenumber{0123456789} \\
+ \phonenumber{0199006789} \\
\phonenumber{0596123456} \\
\phonenumber{0612345678} \\
- \phonenumber[foreign]{0123456789}
+ \phonenumber[foreign]{0199006789}
\end{sidebyside}
\end{Befehlsliste}
\UeberschriftUngueltig
\WarnungWenn
\begin{itemize}
-\item the number does not have exactly 10 or 4 digits,
+\item the number does not have exactly 10 or 4 digits (except for numbers beginning with 07\,00),
\item a 10-digit number does not begin with 0,
\item a 4-digit number does not begin with 3,
-\item a 10-digit number does not contain a valid area code.
+\item a 10-digit number does not contain a valid area code,
+\item a number beginning with 07\,00 does not have 14 or 13 digits.
\end{itemize}
\chapter{British Phone Numbers}
@@ -993,9 +1005,9 @@ Specifies whether the trunk prefix 1 for long-distance calls will be output. Ins
\chapter{Technical Remarks}
The \phone\ package uses the
-\Paket{ltxcmds}
-package as well as the experimental \LaTeX\ 3 packages
-\Paket{expl3}, \Paket{xparse}, and \Paket{l3keys2e}.
+\Paket{ltxcmds}
+package as well as the \LaTeX\ 3 package
+\Paket{l3keys2e}.
Hyphens within phone numbers are realized by
\verbcode:\kern1pt-\kern1pt:, \ie\ they are typeset with an additional distance of 1 point from the surrounding digits. The same goes for slashes too, which are output as
@@ -1058,14 +1070,14 @@ will be expanded to
\Schmalschrift
\AreaCodesGeographic[country=FR]
\egroup
-\Quellen \cite[5]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
+\Quellen \cite[14\psq]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
\UeberschriftSondervorwahlen
\bgroup
\Schmalschrift
\AreaCodesNonGeographic[country=FR]
\egroup
-\Quellen \cite[6--15]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
+\Quellen \cite[17--25]{ARCEP}, \cite{wikipedia-FR-fr}, \cite{wikipedia-FR-de}
\chapter{British Area Codes}
\UeberschriftOrtsvorwahlen
@@ -1183,6 +1195,17 @@ option for the area code separator in numbers with country calling code
\item Making macros possible as command arguments
\item Slight change of the warning messages
\end{itemize}
+\item[2.3] \today
+\begin{itemize}
+\item Addition of the new German mobile phone area code 01\,50\,19
+\item Removal of the German mobile phone area codes 01\,50\,20, 01\,50\,50, 01\,50\,80, 01\,55\,55
+\item Taking into account French machine to machine numbers beginning with 07\,00 (including those from the overseas territories) having 14 or 13 digits
+\item Taking into account the numbers from the French overseas territories beginning with 09\,47 and 09\,76
+\item Addition of the new British area codes 05604, 07354, 07355, 07357, 07359, 07360, 07361, 07362, 07363, 07364, and 0897
+\item Removal of the British area code 07439
+\item Addition of the new North American area codes 227, 274, 341, 368, 428, 447, 448, 464, 474, 523, 524, 525, 526, 572, 582, 656, 659, 689, 730, 742, 771, 826, 839, 840, 943, 945, and 948
+\item Revision of the package code
+\end{itemize}
\end{description}
\end{document}
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-AT_Ortsnamen.tex b/macros/latex/contrib/phonenumbers/tex/phn-AT_Ortsnamen.tex
index e6954c431f..ea6b95577f 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-AT_Ortsnamen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-AT_Ortsnamen.tex
@@ -1,5 +1,5 @@
% phonenumbers package: Austrian place names
-% Datum: 22. Oktober 2017
+% Datum: 20. August 2021
\tl_const:cn {c_phone_AT_ortsname_01_tl} {Wien}
\tl_const:cn {c_phone_AT_ortsname_02142_tl} {Gattendorf}
\tl_const:cn {c_phone_AT_ortsname_02143_tl} {Kittsee}
@@ -222,7 +222,7 @@
\tl_const:cn {c_phone_AT_ortsname_02824_tl} {Allentsteig}
\tl_const:cn {c_phone_AT_ortsname_02825_tl} {G\"opfritz~an~der~Wild}
\tl_const:cn {c_phone_AT_ortsname_02826_tl} {Rastenfeld}
-\tl_const:cn {c_phone_AT_ortsname_02827_tl} {Sch\"onbach}
+\tl_const:cn {c_phone_AT_ortsname_02827_tl} {Sch\"onbach~(Nieder\"osterreich)}
\tl_const:cn {c_phone_AT_ortsname_02828_tl} {Rappottenstein}
\tl_const:cn {c_phone_AT_ortsname_02829_tl} {Schweiggers}
\tl_const:cn {c_phone_AT_ortsname_02841_tl} {Vitis}
@@ -383,7 +383,7 @@
\tl_const:cn {c_phone_AT_ortsname_03464_tl} {Gro\ss\ Sankt~Florian}
\tl_const:cn {c_phone_AT_ortsname_03465_tl} {P\"olfing-Brunn}
\tl_const:cn {c_phone_AT_ortsname_03466_tl} {Eibiswald}
-\tl_const:cn {c_phone_AT_ortsname_03467_tl} {Schwanberg}
+\tl_const:cn {c_phone_AT_ortsname_03467_tl} {Bad~Schwanberg}
\tl_const:cn {c_phone_AT_ortsname_03468_tl} {Sankt~Oswald~ob~Eibiswald}
\tl_const:cn {c_phone_AT_ortsname_03469_tl} {Sankt~Oswald~in~Freiland}
\tl_const:cn {c_phone_AT_ortsname_03472_tl} {Mureck}
@@ -539,7 +539,7 @@
\tl_const:cn {c_phone_AT_ortsname_04279_tl} {Sirnitz}
\tl_const:cn {c_phone_AT_ortsname_04282_tl} {Hermagor}
\tl_const:cn {c_phone_AT_ortsname_04283_tl} {St.~Stefan~im~Gailtal}
-\tl_const:cn {c_phone_AT_ortsname_04284_tl} {Kirchbach}
+\tl_const:cn {c_phone_AT_ortsname_04284_tl} {Kirchbach~(K\"arnten)}
\tl_const:cn {c_phone_AT_ortsname_04285_tl} {Tr\"opolach}
\tl_const:cn {c_phone_AT_ortsname_04286_tl} {Wei\ss briach}
\tl_const:cn {c_phone_AT_ortsname_04350_tl} {Bad~St.~Leonhard~im~Lavanttal}
@@ -635,7 +635,7 @@
\tl_const:cn {c_phone_AT_ortsname_05279_tl} {St.~Jodok~am~Brenner}
\tl_const:cn {c_phone_AT_ortsname_05280_tl} {Hochf\"ugen}
\tl_const:cn {c_phone_AT_ortsname_05282_tl} {Zell~am~Ziller}
-\tl_const:cn {c_phone_AT_ortsname_05283_tl} {Kaltenbach}
+\tl_const:cn {c_phone_AT_ortsname_05283_tl} {Kaltenbach~(Tirol)}
\tl_const:cn {c_phone_AT_ortsname_05284_tl} {Gerlos}
\tl_const:cn {c_phone_AT_ortsname_05285_tl} {Mayrhofen}
\tl_const:cn {c_phone_AT_ortsname_05286_tl} {Ginzling}
@@ -644,7 +644,7 @@
\tl_const:cn {c_phone_AT_ortsname_05289_tl} {H\"ausling}
\tl_const:cn {c_phone_AT_ortsname_05331_tl} {Brandenberg}
\tl_const:cn {c_phone_AT_ortsname_05332_tl} {W\"orgl}
-\tl_const:cn {c_phone_AT_ortsname_05333_tl} {S\"oll}
+\tl_const:cn {c_phone_AT_ortsname_05333_tl} {S\"oll~(Tirol)}
\tl_const:cn {c_phone_AT_ortsname_05334_tl} {Westendorf}
\tl_const:cn {c_phone_AT_ortsname_05335_tl} {Hopfgarten~im~Brixental}
\tl_const:cn {c_phone_AT_ortsname_05336_tl} {Alpbach}
@@ -726,7 +726,7 @@
\tl_const:cn {c_phone_AT_ortsname_05674_tl} {Bichlbach}
\tl_const:cn {c_phone_AT_ortsname_05675_tl} {Tannheim}
\tl_const:cn {c_phone_AT_ortsname_05676_tl} {Jungholz}
-\tl_const:cn {c_phone_AT_ortsname_05677_tl} {Vils}
+\tl_const:cn {c_phone_AT_ortsname_05677_tl} {Vils~(Tirol)}
\tl_const:cn {c_phone_AT_ortsname_05678_tl} {Wei\ss enbach~am~Lech}
\tl_const:cn {c_phone_AT_ortsname_06131_tl} {Obertraun}
\tl_const:cn {c_phone_AT_ortsname_06132_tl} {Bad~Ischl}
@@ -766,7 +766,7 @@
\tl_const:cn {c_phone_AT_ortsname_06272_tl} {Oberndorf~bei~Salzburg}
\tl_const:cn {c_phone_AT_ortsname_06274_tl} {Lamprechtshausen}
\tl_const:cn {c_phone_AT_ortsname_06276_tl} {Nu\ss dorf~am~Haunsberg}
-\tl_const:cn {c_phone_AT_ortsname_06277_tl} {St.~Pantaleon}
+\tl_const:cn {c_phone_AT_ortsname_06277_tl} {St.~Pantaleon~(Ober\"osterreich)}
\tl_const:cn {c_phone_AT_ortsname_06278_tl} {Ostermiething}
\tl_const:cn {c_phone_AT_ortsname_06412_tl} {Sankt~Johann~im~Pongau}
\tl_const:cn {c_phone_AT_ortsname_06413_tl} {Wagrain}
@@ -830,7 +830,7 @@
\tl_const:cn {c_phone_AT_ortsname_07215_tl} {Hellmons\"odt}
\tl_const:cn {c_phone_AT_ortsname_07216_tl} {Helfenberg}
\tl_const:cn {c_phone_AT_ortsname_07217_tl} {St.~Veit~im~M\"uhlkreis}
-\tl_const:cn {c_phone_AT_ortsname_07218_tl} {Gro\ss traberg}
+\tl_const:cn {c_phone_AT_ortsname_07218_tl} {Gro\ss traberg~(Oberneukirchen)}
\tl_const:cn {c_phone_AT_ortsname_07219_tl} {Vorderwei\ss enbach}
\tl_const:cn {c_phone_AT_ortsname_07221_tl} {H\"orsching}
\tl_const:cn {c_phone_AT_ortsname_07223_tl} {Enns}
@@ -919,12 +919,12 @@
\tl_const:cn {c_phone_AT_ortsname_07472_tl} {Amstetten}
\tl_const:cn {c_phone_AT_ortsname_07473_tl} {Blindenmarkt}
\tl_const:cn {c_phone_AT_ortsname_07474_tl} {Euratsfeld}
-\tl_const:cn {c_phone_AT_ortsname_07475_tl} {Ulmerfeld-Hausmening-Neufurth}
+\tl_const:cn {c_phone_AT_ortsname_07475_tl} {Hausmening~(Neuhofen~an~der~Ybbs)}
\tl_const:cn {c_phone_AT_ortsname_07476_tl} {Aschbach-Markt}
\tl_const:cn {c_phone_AT_ortsname_07477_tl} {St.~Peter~in~der~Au}
\tl_const:cn {c_phone_AT_ortsname_07478_tl} {Oed-Oehling}
\tl_const:cn {c_phone_AT_ortsname_07479_tl} {Ardagger}
-\tl_const:cn {c_phone_AT_ortsname_07480_tl} {Langau}
+\tl_const:cn {c_phone_AT_ortsname_07480_tl} {Langau~(Gaming)}
\tl_const:cn {c_phone_AT_ortsname_07482_tl} {Scheibbs}
\tl_const:cn {c_phone_AT_ortsname_07483_tl} {Oberndorf~an~der~Melk}
\tl_const:cn {c_phone_AT_ortsname_07484_tl} {G\"ostling~an~der~Ybbs}
@@ -936,7 +936,7 @@
\tl_const:cn {c_phone_AT_ortsname_07562_tl} {Windischgarsten}
\tl_const:cn {c_phone_AT_ortsname_07563_tl} {Spital~am~Pyhrn}
\tl_const:cn {c_phone_AT_ortsname_07564_tl} {Hinterstoder}
-\tl_const:cn {c_phone_AT_ortsname_07565_tl} {St.~Pankraz}
+\tl_const:cn {c_phone_AT_ortsname_07565_tl} {St.~Pankraz~(Ober\"osterreich)}
\tl_const:cn {c_phone_AT_ortsname_07566_tl} {Rosenau~am~Hengstpa\ss}
\tl_const:cn {c_phone_AT_ortsname_07582_tl} {Kirchdorf~an~der~Krems}
\tl_const:cn {c_phone_AT_ortsname_07583_tl} {Kremsm\"unster}
@@ -951,7 +951,7 @@
\tl_const:cn {c_phone_AT_ortsname_07615_tl} {Scharnstein}
\tl_const:cn {c_phone_AT_ortsname_07616_tl} {Gr\"unau~im~Almtal}
\tl_const:cn {c_phone_AT_ortsname_07617_tl} {Traunkirchen}
-\tl_const:cn {c_phone_AT_ortsname_07618_tl} {Neukirchen~(Gemeinde~Altm\"unster)}
+\tl_const:cn {c_phone_AT_ortsname_07618_tl} {Neukirchen~(Altm\"unster)}
\tl_const:cn {c_phone_AT_ortsname_07619_tl} {Kirchham}
\tl_const:cn {c_phone_AT_ortsname_07662_tl} {Seewalchen~am~Attersee}
\tl_const:cn {c_phone_AT_ortsname_07663_tl} {Steinbach~am~Attersee}
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-DE_Ortsnamen.tex b/macros/latex/contrib/phonenumbers/tex/phn-DE_Ortsnamen.tex
index 370693cf8e..fc9b19ab8a 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-DE_Ortsnamen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-DE_Ortsnamen.tex
@@ -1,5 +1,5 @@
% phonenumbers package: German place names
-% Datum: 5. August 2018
+% Datum: 20. August 2021
\tl_const:cn {c_phone_DE_ortsname_0201_tl} {Essen}
\tl_const:cn {c_phone_DE_ortsname_0202_tl} {Wuppertal}
\tl_const:cn {c_phone_DE_ortsname_0203_tl} {Duisburg}
@@ -191,7 +191,7 @@
\tl_const:cn {c_phone_DE_ortsname_02421_tl} {D\"uren}
\tl_const:cn {c_phone_DE_ortsname_02422_tl} {Kreuzau}
\tl_const:cn {c_phone_DE_ortsname_02423_tl} {Langerwehe}
-\tl_const:cn {c_phone_DE_ortsname_02424_tl} {Vettweiß}
+\tl_const:cn {c_phone_DE_ortsname_02424_tl} {Vettwei\ss}
\tl_const:cn {c_phone_DE_ortsname_02425_tl} {Nideggen-Embken}
\tl_const:cn {c_phone_DE_ortsname_02426_tl} {N\"orvenich}
\tl_const:cn {c_phone_DE_ortsname_02427_tl} {Nideggen}
@@ -5209,9 +5209,7 @@
\tl_const:cn {c_phone_DE_ortsname_01377_tl} {Massenverkehrsdienst~(1\nobreakspace Euro/Anruf)}
\tl_const:cn {c_phone_DE_ortsname_01378_tl} {Massenverkehrsdienst~(50\,ct/Anruf)}
\tl_const:cn {c_phone_DE_ortsname_01379_tl} {Massenverkehrsdienst~(50\,ct/Anruf)}
-\tl_const:cn {c_phone_DE_ortsname_015020_tl} {Mobilfunk}
-\tl_const:cn {c_phone_DE_ortsname_015050_tl} {Mobilfunk}
-\tl_const:cn {c_phone_DE_ortsname_015080_tl} {Mobilfunk}
+\tl_const:cn {c_phone_DE_ortsname_015019_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_01511_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_01512_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_01514_tl} {Mobilfunk}
@@ -5225,7 +5223,6 @@
\tl_const:cn {c_phone_DE_ortsname_01525_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_01526_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_01529_tl} {Mobilfunk}
-\tl_const:cn {c_phone_DE_ortsname_015555_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_015566_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_015630_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_015678_tl} {Mobilfunk}
@@ -5236,7 +5233,6 @@
\tl_const:cn {c_phone_DE_ortsname_01578_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_01579_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_015888_tl} {Mobilfunk}
-\tl_const:cn {c_phone_DE_ortsname_015890_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_01590_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_0160_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_0162_tl} {Mobilfunk}
@@ -5254,7 +5250,6 @@
\tl_const:cn {c_phone_DE_ortsname_0177_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_0178_tl} {Mobilfunk}
\tl_const:cn {c_phone_DE_ortsname_0179_tl} {Mobilfunk}
-\tl_const:cn {c_phone_DE_ortsname_01800_tl} {Service-Dienst}
\tl_const:cn {c_phone_DE_ortsname_01801_tl} {Service-Dienst~(3,9\,ct/min)}
\tl_const:cn {c_phone_DE_ortsname_01802_tl} {Service-Dienst~(6\,ct/Anruf)}
\tl_const:cn {c_phone_DE_ortsname_01803_tl} {Service-Dienst~(9\,ct/min)}
@@ -5262,8 +5257,6 @@
\tl_const:cn {c_phone_DE_ortsname_01805_tl} {Service-Dienst~(14\,ct/min)}
\tl_const:cn {c_phone_DE_ortsname_01806_tl} {Service-Dienst~(20\,ct/Anruf)}
\tl_const:cn {c_phone_DE_ortsname_01807_tl} {Service-Dienst~(30\,s~frei,~danach~14\,ct/min)}
-\tl_const:cn {c_phone_DE_ortsname_01808_tl} {Service-Dienst}
-\tl_const:cn {c_phone_DE_ortsname_01809_tl} {Service-Dienst}
\tl_const:cn {c_phone_DE_ortsname_0181_tl} {Internationales~virtuelles~privates~Netz}
\tl_const:cn {c_phone_DE_ortsname_0182_tl} {Virtuelles~privates~Netz}
\tl_const:cn {c_phone_DE_ortsname_0183_tl} {Virtuelles~privates~Netz}
@@ -5273,10 +5266,10 @@
\tl_const:cn {c_phone_DE_ortsname_0187_tl} {Virtuelles~privates~Netz}
\tl_const:cn {c_phone_DE_ortsname_0188_tl} {Virtuelles~privates~Netz}
\tl_const:cn {c_phone_DE_ortsname_0189_tl} {Virtuelles~privates~Netz}
-\tl_const:cn {c_phone_DE_ortsname_0191_tl} {Onlinedienst}
-\tl_const:cn {c_phone_DE_ortsname_0192_tl} {Onlinedienst}
-\tl_const:cn {c_phone_DE_ortsname_0193_tl} {Onlinedienst}
-\tl_const:cn {c_phone_DE_ortsname_0194_tl} {Onlinedienst}
+\tl_const:cn {c_phone_DE_ortsname_0191_tl} {Online-Dienst}
+\tl_const:cn {c_phone_DE_ortsname_0192_tl} {Online-Dienst}
+\tl_const:cn {c_phone_DE_ortsname_0193_tl} {Online-Dienst}
+\tl_const:cn {c_phone_DE_ortsname_0194_tl} {Online-Dienst}
\tl_const:cn {c_phone_DE_ortsname_032_tl} {Nationale~Teilnehmerrufnummer}
\tl_const:cn {c_phone_DE_ortsname_0700_tl} {Pers\"onliche~Rufnummer}
\tl_const:cn {c_phone_DE_ortsname_0800_tl} {Entgeltfreier~Telefondienst}
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-DE_Vorwahlen.tex b/macros/latex/contrib/phonenumbers/tex/phn-DE_Vorwahlen.tex
index aba6b8b89a..9f188e30d3 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-DE_Vorwahlen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-DE_Vorwahlen.tex
@@ -1,5 +1,5 @@
% phonenumbers package: German area codes
-% Datum: 5. August 2018
+% Datum: 20. August 2021
\clist_const:Nn \c_phone_DE_ortsvorwahlen_clist {0201,
0202,
0203,
@@ -5209,9 +5209,7 @@
01377,
01378,
01379,
-015020,
-015050,
-015080,
+015019,
01511,
01512,
01514,
@@ -5225,7 +5223,6 @@
01525,
01526,
01529,
-015555,
015566,
015630,
015678,
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-FR_Ortsnamen.tex b/macros/latex/contrib/phonenumbers/tex/phn-FR_Ortsnamen.tex
index 5ec797c1bd..eda23d4664 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-FR_Ortsnamen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-FR_Ortsnamen.tex
@@ -1,9 +1,10 @@
% phonenumbers package: French place names
-% Datum: 22. Oktober 2017
+% Datum: 20. August 2021
\tl_const:cn {c_phone_FR_ortsname_01_tl} {\^{I}le-de-France}
\tl_const:cn {c_phone_FR_ortsname_02_tl} {Nord-ouest}
\tl_const:cn {c_phone_FR_ortsname_0262_tl} {La~R\a'{e}union}
\tl_const:cn {c_phone_FR_ortsname_026200_tl} {Terres~australes~et~antarctiques~fran\c{c}aises}
+\tl_const:cn {c_phone_FR_ortsname_0263_tl} {La~R\a'{e}union}
\tl_const:cn {c_phone_FR_ortsname_0269_tl} {Mayotte}
\tl_const:cn {c_phone_FR_ortsname_03_tl} {Nord-est}
\tl_const:cn {c_phone_FR_ortsname_04_tl} {Sud-est}
@@ -22,5 +23,26 @@
\tl_const:cn {c_phone_FR_ortsname_0696_tl} {T\a'{e}l\a'{e}phone~mobile~(Martinique)}
\tl_const:cn {c_phone_FR_ortsname_0697_tl} {T\a'{e}l\a'{e}phone~mobile~(Martinique)}
\tl_const:cn {c_phone_FR_ortsname_07_tl} {T\a'{e}l\a'{e}phone~mobile}
+\tl_const:cn {c_phone_FR_ortsname_0700_tl} {Communication~machine~\a`{a}~machine}
+\tl_const:cn {c_phone_FR_ortsname_07005_tl} {Communication~machine~\a`{a}~machine~(Guadeloupe)}
+\tl_const:cn {c_phone_FR_ortsname_07006_tl} {Communication~machine~\a`{a}~machine~(Guyane)}
+\tl_const:cn {c_phone_FR_ortsname_07007_tl} {Communication~machine~\a`{a}~machine~(Martinique)}
+\tl_const:cn {c_phone_FR_ortsname_07008_tl} {Communication~machine~\a`{a}~machine~(Mayotte)}
+\tl_const:cn {c_phone_FR_ortsname_07009_tl} {Communication~machine~\a`{a}~machine~(La~R\a'{e}union)}
\tl_const:cn {c_phone_FR_ortsname_08_tl} {Service~\a`{a}~valeur~ajout\a'{e}e}
\tl_const:cn {c_phone_FR_ortsname_09_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP}
+\tl_const:cn {c_phone_FR_ortsname_09475_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Guadeloupe)}
+\tl_const:cn {c_phone_FR_ortsname_09476_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Guyane)}
+\tl_const:cn {c_phone_FR_ortsname_09477_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Martinique)}
+\tl_const:cn {c_phone_FR_ortsname_09478_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Mayotte)}
+\tl_const:cn {c_phone_FR_ortsname_09479_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(La~R\a'{e}union)}
+\tl_const:cn {c_phone_FR_ortsname_09760_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Guadeloupe)}
+\tl_const:cn {c_phone_FR_ortsname_09761_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Guadeloupe)}
+\tl_const:cn {c_phone_FR_ortsname_09762_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(La~R\a'{e}union)}
+\tl_const:cn {c_phone_FR_ortsname_09763_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(La~R\a'{e}union)}
+\tl_const:cn {c_phone_FR_ortsname_09764_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Guyane)}
+\tl_const:cn {c_phone_FR_ortsname_09765_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Guyane)}
+\tl_const:cn {c_phone_FR_ortsname_09766_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Martinique)}
+\tl_const:cn {c_phone_FR_ortsname_09767_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Martinique)}
+\tl_const:cn {c_phone_FR_ortsname_09768_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(Guadeloupe)}
+\tl_const:cn {c_phone_FR_ortsname_09769_tl} {Service~t\a'{e}l\a'{e}phonique~en~VoIP~(La~R\a'{e}union)}
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-FR_Vorwahlen.tex b/macros/latex/contrib/phonenumbers/tex/phn-FR_Vorwahlen.tex
index 94658cbce0..965c0259b0 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-FR_Vorwahlen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-FR_Vorwahlen.tex
@@ -1,9 +1,10 @@
% phonenumbers package: French area codes
-% Datum: 6. November 2016
+% Datum: 20. August 2021
\clist_const:Nn \c_phone_FR_ortsvorwahlen_clist {01,
02,
0262,
026200,
+0263,
0269,
03,
04,
@@ -22,5 +23,26 @@
0696,
0697,
07,
+0700,
+07005,
+07006,
+07007,
+07008,
+07009,
08,
-09}
+09,
+09475,
+09476,
+09477,
+09478,
+09479,
+09760,
+09761,
+09762,
+09763,
+09764,
+09765,
+09766,
+09767,
+09768,
+09769}
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-UK_Ortsnamen.tex b/macros/latex/contrib/phonenumbers/tex/phn-UK_Ortsnamen.tex
index ac203278d8..29c8c2d138 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-UK_Ortsnamen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-UK_Ortsnamen.tex
@@ -1,5 +1,5 @@
% phonenumbers package: British place names
-% Datum: 5. August 2018
+% Datum: 20. August 2021
\tl_const:cn {c_phone_UK_ortsname_0113_tl} {Leeds}
\tl_const:cn {c_phone_UK_ortsname_0114_tl} {Sheffield}
\tl_const:cn {c_phone_UK_ortsname_0115_tl} {Nottingham}
@@ -234,7 +234,7 @@
\tl_const:cn {c_phone_UK_ortsname_01493_tl} {Great~Yarmouth}
\tl_const:cn {c_phone_UK_ortsname_01494_tl} {High~Wycombe}
\tl_const:cn {c_phone_UK_ortsname_01495_tl} {Pontypool}
-\tl_const:cn {c_phone_UK_ortsname_01496_tl} {Islay}
+\tl_const:cn {c_phone_UK_ortsname_01496_tl} {Islay~and~Jura}
\tl_const:cn {c_phone_UK_ortsname_01497_tl} {Hay-on-Wye}
\tl_const:cn {c_phone_UK_ortsname_01499_tl} {Inveraray}
\tl_const:cn {c_phone_UK_ortsname_01501_tl} {Harthill}
@@ -522,7 +522,7 @@
\tl_const:cn {c_phone_UK_ortsname_01876_tl} {North~Uist,~Outer~Hebrides}
\tl_const:cn {c_phone_UK_ortsname_01877_tl} {Callander}
\tl_const:cn {c_phone_UK_ortsname_01878_tl} {South~Uist,~Outer~Hebrides}
-\tl_const:cn {c_phone_UK_ortsname_01879_tl} {Scarinish}
+\tl_const:cn {c_phone_UK_ortsname_01879_tl} {Tiree~and~Coll,~Inner~Hebrides}
\tl_const:cn {c_phone_UK_ortsname_01880_tl} {Tarbert}
\tl_const:cn {c_phone_UK_ortsname_01882_tl} {Kinloch~Rannoch}
\tl_const:cn {c_phone_UK_ortsname_01883_tl} {Caterham}
@@ -631,6 +631,7 @@
\tl_const:cn {c_phone_UK_ortsname_05601_tl} {Electronic~communications~service}
\tl_const:cn {c_phone_UK_ortsname_05602_tl} {Electronic~communications~service}
\tl_const:cn {c_phone_UK_ortsname_05603_tl} {Electronic~communications~service}
+\tl_const:cn {c_phone_UK_ortsname_05604_tl} {Electronic~communications~service}
\tl_const:cn {c_phone_UK_ortsname_07000_tl} {Personal~number}
\tl_const:cn {c_phone_UK_ortsname_07002_tl} {Personal~number}
\tl_const:cn {c_phone_UK_ortsname_07003_tl} {Personal~number}
@@ -742,6 +743,15 @@
\tl_const:cn {c_phone_UK_ortsname_07340_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07341_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07342_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07354_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07355_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07357_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07359_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07360_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07361_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07362_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07363_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07364_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07365_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07366_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07367_tl} {Mobile~phone}
@@ -811,7 +821,6 @@
\tl_const:cn {c_phone_UK_ortsname_07436_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07437_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07438_tl} {Mobile~phone}
-\tl_const:cn {c_phone_UK_ortsname_07439_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07440_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07441_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07442_tl} {Mobile~phone}
@@ -1071,7 +1080,7 @@
\tl_const:cn {c_phone_UK_ortsname_07778_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07779_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07780_tl} {Mobile~phone}
-\tl_const:cn {c_phone_UK_ortsname_07781_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07781_tl} {Mobile~phone~(Guernsey)}
\tl_const:cn {c_phone_UK_ortsname_07782_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07783_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07784_tl} {Mobile~phone}
@@ -1087,7 +1096,7 @@
\tl_const:cn {c_phone_UK_ortsname_07794_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07795_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07796_tl} {Mobile~phone}
-\tl_const:cn {c_phone_UK_ortsname_07797_tl} {Mobile~phone}
+\tl_const:cn {c_phone_UK_ortsname_07797_tl} {Mobile~phone~(Jersey)}
\tl_const:cn {c_phone_UK_ortsname_07798_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07799_tl} {Mobile~phone}
\tl_const:cn {c_phone_UK_ortsname_07800_tl} {Mobile~phone}
@@ -1291,6 +1300,7 @@
\tl_const:cn {c_phone_UK_ortsname_0870_tl} {Special~service~higher~rate}
\tl_const:cn {c_phone_UK_ortsname_0871_tl} {Special~service~higher~rate}
\tl_const:cn {c_phone_UK_ortsname_0872_tl} {Special~service~higher~rate}
+\tl_const:cn {c_phone_UK_ortsname_0897_tl} {Inserted~network~number}
\tl_const:cn {c_phone_UK_ortsname_0899_tl} {Inbound~routing~code}
\tl_const:cn {c_phone_UK_ortsname_0900_tl} {Special~service~premium~rate}
\tl_const:cn {c_phone_UK_ortsname_0901_tl} {Special~service~premium~rate}
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-UK_Vorwahlen.tex b/macros/latex/contrib/phonenumbers/tex/phn-UK_Vorwahlen.tex
index b471389c15..62a5ab2422 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-UK_Vorwahlen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-UK_Vorwahlen.tex
@@ -1,5 +1,5 @@
% phonenumbers package: British area codes
-% Datum: 5. August 2018
+% Datum: 20. August 2021
\clist_const:Nn \c_phone_UK_ortsvorwahlen_clist {0113,
0114,
0115,
@@ -637,6 +637,7 @@
05601,
05602,
05603,
+05604,
07000,
07002,
07003,
@@ -748,6 +749,15 @@
07340,
07341,
07342,
+07354,
+07355,
+07357,
+07359,
+07360,
+07361,
+07362,
+07363,
+07364,
07365,
07366,
07367,
@@ -817,7 +827,6 @@
07436,
07437,
07438,
-07439, % nicht mehr in Gebrauch
07440,
07441,
07442,
@@ -1297,6 +1306,7 @@
0870,
0871,
0872,
+0897,
0899,
0900,
0901,
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-US_Ortsnamen.tex b/macros/latex/contrib/phonenumbers/tex/phn-US_Ortsnamen.tex
index 11c6978dac..a53bf4dec7 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-US_Ortsnamen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-US_Ortsnamen.tex
@@ -1,5 +1,5 @@
% phonenumbers package: place names of the North American Numbering Plan
-% Datum: 5. August 2018
+% Datum: 20. August 2021
\tl_const:cn {c_phone_US_ortsname_201_tl} {New~Jersey}
\tl_const:cn {c_phone_US_ortsname_202_tl} {Washington,~D.\,C.}
\tl_const:cn {c_phone_US_ortsname_203_tl} {Connecticut}
@@ -23,6 +23,7 @@
\tl_const:cn {c_phone_US_ortsname_224_tl} {Illinois}
\tl_const:cn {c_phone_US_ortsname_225_tl} {Louisiana}
\tl_const:cn {c_phone_US_ortsname_226_tl} {Ontario}
+\tl_const:cn {c_phone_US_ortsname_227_tl} {Maryland}
\tl_const:cn {c_phone_US_ortsname_228_tl} {Mississippi}
\tl_const:cn {c_phone_US_ortsname_229_tl} {Georgia}
\tl_const:cn {c_phone_US_ortsname_231_tl} {Michigan}
@@ -48,6 +49,7 @@
\tl_const:cn {c_phone_US_ortsname_269_tl} {Michigan}
\tl_const:cn {c_phone_US_ortsname_270_tl} {Kentucky}
\tl_const:cn {c_phone_US_ortsname_272_tl} {Pennsylvania}
+\tl_const:cn {c_phone_US_ortsname_274_tl} {Wisconsin}
\tl_const:cn {c_phone_US_ortsname_276_tl} {Virginia}
\tl_const:cn {c_phone_US_ortsname_279_tl} {California}
\tl_const:cn {c_phone_US_ortsname_281_tl} {Texas}
@@ -84,6 +86,7 @@
\tl_const:cn {c_phone_US_ortsname_337_tl} {Louisiana}
\tl_const:cn {c_phone_US_ortsname_339_tl} {Massachusetts}
\tl_const:cn {c_phone_US_ortsname_340_tl} {U.\,S.~Virgin~Islands}
+\tl_const:cn {c_phone_US_ortsname_341_tl} {California}
\tl_const:cn {c_phone_US_ortsname_343_tl} {Ontario}
\tl_const:cn {c_phone_US_ortsname_345_tl} {Cayman~Islands}
\tl_const:cn {c_phone_US_ortsname_346_tl} {Texas}
@@ -95,6 +98,7 @@
\tl_const:cn {c_phone_US_ortsname_364_tl} {Kentucky}
\tl_const:cn {c_phone_US_ortsname_365_tl} {Ontario}
\tl_const:cn {c_phone_US_ortsname_367_tl} {Quebec}
+\tl_const:cn {c_phone_US_ortsname_368_tl} {Alberta}
\tl_const:cn {c_phone_US_ortsname_380_tl} {Ohio}
\tl_const:cn {c_phone_US_ortsname_385_tl} {Utah}
\tl_const:cn {c_phone_US_ortsname_386_tl} {Florida}
@@ -119,6 +123,7 @@
\tl_const:cn {c_phone_US_ortsname_423_tl} {Tennessee}
\tl_const:cn {c_phone_US_ortsname_424_tl} {California}
\tl_const:cn {c_phone_US_ortsname_425_tl} {Washington}
+\tl_const:cn {c_phone_US_ortsname_428_tl} {New~Brunswick}
\tl_const:cn {c_phone_US_ortsname_430_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_431_tl} {Manitoba}
\tl_const:cn {c_phone_US_ortsname_432_tl} {Texas}
@@ -131,12 +136,16 @@
\tl_const:cn {c_phone_US_ortsname_442_tl} {California}
\tl_const:cn {c_phone_US_ortsname_443_tl} {Maryland}
\tl_const:cn {c_phone_US_ortsname_445_tl} {Pennsylvania}
+\tl_const:cn {c_phone_US_ortsname_447_tl} {Illinois}
+\tl_const:cn {c_phone_US_ortsname_448_tl} {Florida}
\tl_const:cn {c_phone_US_ortsname_450_tl} {Quebec}
\tl_const:cn {c_phone_US_ortsname_458_tl} {Oregon}
\tl_const:cn {c_phone_US_ortsname_463_tl} {Indiana}
+\tl_const:cn {c_phone_US_ortsname_464_tl} {Illinois}
\tl_const:cn {c_phone_US_ortsname_469_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_470_tl} {Georgia}
\tl_const:cn {c_phone_US_ortsname_473_tl} {Grenada}
+\tl_const:cn {c_phone_US_ortsname_474_tl} {Saskatchewan}
\tl_const:cn {c_phone_US_ortsname_475_tl} {Connecticut}
\tl_const:cn {c_phone_US_ortsname_478_tl} {Georgia}
\tl_const:cn {c_phone_US_ortsname_479_tl} {Arkansas}
@@ -177,12 +186,14 @@
\tl_const:cn {c_phone_US_ortsname_567_tl} {Ohio}
\tl_const:cn {c_phone_US_ortsname_570_tl} {Pennsylvania}
\tl_const:cn {c_phone_US_ortsname_571_tl} {Virginia}
+\tl_const:cn {c_phone_US_ortsname_572_tl} {Oklahoma}
\tl_const:cn {c_phone_US_ortsname_573_tl} {Missouri}
\tl_const:cn {c_phone_US_ortsname_574_tl} {Indiana}
\tl_const:cn {c_phone_US_ortsname_575_tl} {New~Mexico}
\tl_const:cn {c_phone_US_ortsname_579_tl} {Quebec}
\tl_const:cn {c_phone_US_ortsname_580_tl} {Oklahoma}
\tl_const:cn {c_phone_US_ortsname_581_tl} {Quebec}
+\tl_const:cn {c_phone_US_ortsname_582_tl} {Pennsylvania}
\tl_const:cn {c_phone_US_ortsname_585_tl} {New~York}
\tl_const:cn {c_phone_US_ortsname_586_tl} {Michigan}
\tl_const:cn {c_phone_US_ortsname_587_tl} {Alberta}
@@ -220,8 +231,10 @@
\tl_const:cn {c_phone_US_ortsname_649_tl} {Turks~and~Caicos~Islands}
\tl_const:cn {c_phone_US_ortsname_650_tl} {California}
\tl_const:cn {c_phone_US_ortsname_651_tl} {Minnesota}
+\tl_const:cn {c_phone_US_ortsname_656_tl} {Florida}
\tl_const:cn {c_phone_US_ortsname_657_tl} {California}
\tl_const:cn {c_phone_US_ortsname_658_tl} {Jamaica}
+\tl_const:cn {c_phone_US_ortsname_659_tl} {Alabama}
\tl_const:cn {c_phone_US_ortsname_660_tl} {Missouri}
\tl_const:cn {c_phone_US_ortsname_661_tl} {California}
\tl_const:cn {c_phone_US_ortsname_662_tl} {Mississippi}
@@ -236,6 +249,7 @@
\tl_const:cn {c_phone_US_ortsname_681_tl} {West~Virginia}
\tl_const:cn {c_phone_US_ortsname_682_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_684_tl} {American~Samoa}
+\tl_const:cn {c_phone_US_ortsname_689_tl} {Florida}
\tl_const:cn {c_phone_US_ortsname_701_tl} {North~Dakota}
\tl_const:cn {c_phone_US_ortsname_702_tl} {Nevada}
\tl_const:cn {c_phone_US_ortsname_703_tl} {Virginia}
@@ -259,11 +273,13 @@
\tl_const:cn {c_phone_US_ortsname_725_tl} {Nevada}
\tl_const:cn {c_phone_US_ortsname_726_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_727_tl} {Florida}
+\tl_const:cn {c_phone_US_ortsname_730_tl} {Illinois}
\tl_const:cn {c_phone_US_ortsname_731_tl} {Tennessee}
\tl_const:cn {c_phone_US_ortsname_732_tl} {New~Jersey}
\tl_const:cn {c_phone_US_ortsname_734_tl} {Michigan}
\tl_const:cn {c_phone_US_ortsname_737_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_740_tl} {Ohio}
+\tl_const:cn {c_phone_US_ortsname_742_tl} {Ontario}
\tl_const:cn {c_phone_US_ortsname_743_tl} {North~Carolina}
\tl_const:cn {c_phone_US_ortsname_747_tl} {California}
\tl_const:cn {c_phone_US_ortsname_754_tl} {Florida}
@@ -276,6 +292,7 @@
\tl_const:cn {c_phone_US_ortsname_767_tl} {Dominica}
\tl_const:cn {c_phone_US_ortsname_769_tl} {Mississippi}
\tl_const:cn {c_phone_US_ortsname_770_tl} {Georgia}
+\tl_const:cn {c_phone_US_ortsname_771_tl} {Washington,~D.\,C.}
\tl_const:cn {c_phone_US_ortsname_772_tl} {Florida}
\tl_const:cn {c_phone_US_ortsname_773_tl} {Illinois}
\tl_const:cn {c_phone_US_ortsname_774_tl} {Massachusetts}
@@ -309,12 +326,15 @@
\tl_const:cn {c_phone_US_ortsname_819_tl} {Quebec}
\tl_const:cn {c_phone_US_ortsname_820_tl} {California}
\tl_const:cn {c_phone_US_ortsname_825_tl} {Alberta}
+\tl_const:cn {c_phone_US_ortsname_826_tl} {Virginia}
\tl_const:cn {c_phone_US_ortsname_828_tl} {North~Carolina}
\tl_const:cn {c_phone_US_ortsname_829_tl} {Dominican~Republic}
\tl_const:cn {c_phone_US_ortsname_830_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_831_tl} {California}
\tl_const:cn {c_phone_US_ortsname_832_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_838_tl} {New~York}
+\tl_const:cn {c_phone_US_ortsname_839_tl} {South~Carolina}
+\tl_const:cn {c_phone_US_ortsname_840_tl} {California}
\tl_const:cn {c_phone_US_ortsname_843_tl} {South~Carolina}
\tl_const:cn {c_phone_US_ortsname_845_tl} {New~York}
\tl_const:cn {c_phone_US_ortsname_847_tl} {Illinois}
@@ -371,7 +391,10 @@
\tl_const:cn {c_phone_US_ortsname_939_tl} {Puerto~Rico}
\tl_const:cn {c_phone_US_ortsname_940_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_941_tl} {Florida}
+\tl_const:cn {c_phone_US_ortsname_943_tl} {Georgia}
+\tl_const:cn {c_phone_US_ortsname_945_tl} {Texas}
\tl_const:cn {c_phone_US_ortsname_947_tl} {Michigan}
+\tl_const:cn {c_phone_US_ortsname_948_tl} {Virginia}
\tl_const:cn {c_phone_US_ortsname_949_tl} {California}
\tl_const:cn {c_phone_US_ortsname_951_tl} {California}
\tl_const:cn {c_phone_US_ortsname_952_tl} {Minnesota}
@@ -392,6 +415,10 @@
\tl_const:cn {c_phone_US_ortsname_500_tl} {Non-Geographic~Service}
\tl_const:cn {c_phone_US_ortsname_521_tl} {Non-Geographic~Service}
\tl_const:cn {c_phone_US_ortsname_522_tl} {Non-Geographic~Service}
+\tl_const:cn {c_phone_US_ortsname_523_tl} {Non-Geographic~Service}
+\tl_const:cn {c_phone_US_ortsname_524_tl} {Non-Geographic~Service}
+\tl_const:cn {c_phone_US_ortsname_525_tl} {Non-Geographic~Service}
+\tl_const:cn {c_phone_US_ortsname_526_tl} {Non-Geographic~Service}
\tl_const:cn {c_phone_US_ortsname_533_tl} {Non-Geographic~Service}
\tl_const:cn {c_phone_US_ortsname_544_tl} {Non-Geographic~Service}
\tl_const:cn {c_phone_US_ortsname_566_tl} {Non-Geographic~Service}
diff --git a/macros/latex/contrib/phonenumbers/tex/phn-US_Vorwahlen.tex b/macros/latex/contrib/phonenumbers/tex/phn-US_Vorwahlen.tex
index b8989839b5..c79902373d 100644
--- a/macros/latex/contrib/phonenumbers/tex/phn-US_Vorwahlen.tex
+++ b/macros/latex/contrib/phonenumbers/tex/phn-US_Vorwahlen.tex
@@ -1,5 +1,5 @@
% phonenumbers package: area codes of the North American Numbering Plan
-% Datum: 5. August 2018
+% Datum: 20. August 2021
\clist_const:Nn \c_phone_US_ortsvorwahlen_clist {201,
202,
203,
@@ -23,6 +23,7 @@
224,
225,
226,
+227, % Freischaltungsdatum noch unklar
228,
229,
231,
@@ -48,6 +49,7 @@
269,
270,
272,
+274, % Freischaltungsdatum noch unklar
276,
279,
281,
@@ -84,6 +86,7 @@
337,
339,
340,
+341,
343,
345,
346,
@@ -95,6 +98,7 @@
364,
365,
367,
+368, % ab 2022-04-23
380,
385,
386,
@@ -119,6 +123,7 @@
423,
424,
425,
+428, % ab 2023-04-29
430,
431,
432,
@@ -131,12 +136,16 @@
442,
443,
445,
+447,
+448,
450,
458,
463,
+464, % Freischaltungsdatum noch unklar
469,
470,
473,
+474, % ab 2021-10-02
475,
478,
479,
@@ -177,12 +186,14 @@
567,
570,
571,
+572,
573,
574,
575,
579,
580,
581,
+582,
585,
586,
587,
@@ -220,8 +231,10 @@
649,
650,
651,
+656, % ab 2022-02-22
657,
658,
+659,
660,
661,
662,
@@ -236,6 +249,7 @@
681,
682,
684,
+689,
701,
702,
703,
@@ -259,11 +273,13 @@
725,
726,
727,
+730, % Freischaltungsdatum noch unklar
731,
732,
734,
737,
740,
+742, % ab 2021-10-16
743,
747,
754,
@@ -276,6 +292,7 @@
767,
769,
770,
+771, % ab 2021-11-09
772,
773,
774,
@@ -309,12 +326,15 @@
819,
820,
825,
+826, % ab 2022-06-14
828,
829,
830,
831,
832,
838,
+839,
+840,
843,
845,
847,
@@ -371,7 +391,10 @@
939,
940,
941,
+943, % ab 2022-03-15
+945,
947,
+948, % ab 2022-05-09
949,
951,
952,
@@ -390,8 +413,10 @@
986,
989}
\clist_const:Nn \c_phone_US_obligatorische_ortsvorwahlen_clist {201,
+% 202, bisher 7D, demnächst 10D (Einführung von 771)
203,
204,
+205,
206,
208,
210,
@@ -399,10 +424,12 @@
213,
214,
215,
+217,
220,
223,
224,
226,
+227, % Freischaltungsdatum noch unklar
234,
236,
240,
@@ -414,6 +441,7 @@
267,
270,
272,
+274, % Freischaltungsdatum noch unklar
279,
281,
289,
@@ -432,6 +460,7 @@
332,
336,
339,
+341,
343,
346,
347,
@@ -440,11 +469,13 @@
364,
365,
367,
+368, % ab 2022-04-23
380,
385,
402,
403,
404,
+405,
407,
408,
410,
@@ -455,6 +486,7 @@
419,
424,
425,
+428, % ab 2023-04-29
430,
431,
437,
@@ -462,15 +494,21 @@
442,
443,
445,
+447,
+448,
450,
458,
463,
+464, % Freischaltungsdatum noch unklar
469,
470,
+474, % ab 2021-10-02
475,
484,
503,
+% 506, bisher 7D, demnächst 10D (Einführung von 428)
508,
+510,
512,
514,
518,
@@ -478,6 +516,7 @@
531,
534,
539,
+% 540, bisher 7D, demnächst 10D (Einführung von 826)
541,
548,
551,
@@ -485,8 +524,10 @@
567,
570,
571,
+572,
579,
581,
+582,
587,
601,
604,
@@ -496,6 +537,7 @@
614,
615,
617,
+% 618, bisher 7D, demnächst 10D (Einführung von 730)
619,
628,
629,
@@ -505,8 +547,10 @@
640,
646,
647,
+656, % ab 2022-02-22
657,
658,
+659,
667,
669,
672,
@@ -514,30 +558,34 @@
680,
681,
682,
+689,
702,
703,
704,
706,
-% 709, Bisher 7D, demnächst 10D (Einführung von 879 in Neufundland)
+% 708, bisher 7D, demnächst 10D (Einführung von 464)
713,
714,
-715,
+% 715, 2021-08-16 nicht mehr in der Liste aufgeführt, aber Overlay zu 534
717,
718,
720,
724,
725,
726,
+730, % Freischaltungsdatum noch unklar
732,
737,
740,
743,
747,
754,
+% 757, bisher 7D, demnächst 10D (Einführung von 948)
760,
762,
769,
770,
+771, % ab 2021-11-09
773,
774,
778,
@@ -548,22 +596,29 @@
786,
787,
801,
+803,
805,
809,
812,
+% 813, bisher 7D, demnächst 10D (Einführung von 656)
+814,
815,
817,
818,
819,
820,
825,
+826, % ab 2022-06-14
829,
832,
838,
+839,
+840,
843,
847,
848,
849,
+850,
854,
857,
858,
@@ -572,20 +627,25 @@
872,
873,
878,
-879,
902,
903,
905,
+909,
916,
917,
918,
919,
+% 920, bisher 7D, demnächst 10D (Einführung von 274)
929,
930,
934,
+937,
938,
939,
+943, % ab 2022-03-15
+945,
947,
+948, % ab 2022-05-09
954,
959,
971,
@@ -598,6 +658,10 @@
\clist_const:Nn \c_phone_US_sondervorwahlen_clist {500,
521,
522,
+523,
+524,
+525,
+526,
533,
544,
566,
diff --git a/macros/latex/contrib/phonenumbers/tex/phonenumbers.sty b/macros/latex/contrib/phonenumbers/tex/phonenumbers.sty
index c91c3254a5..5b060f7b6e 100644
--- a/macros/latex/contrib/phonenumbers/tex/phonenumbers.sty
+++ b/macros/latex/contrib/phonenumbers/tex/phonenumbers.sty
@@ -2,8 +2,8 @@
% LaTeX-Paket zur Formatierung von Telefonnummern
% LaTeX package for formatting telephone numbers
% Autor: K. Wehr
-% Version: 2.2
-% Datum: 18. August 2019
+% Version: 2.3
+% Datum: 20. August 2021
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -14,8 +14,7 @@
% version 2005/12/01 or later.
-\RequirePackage{xparse}
-\ProvidesExplPackage {phonenumbers} {2019/08/18} {2.2} {Telephone number package}
+\ProvidesExplPackage {phonenumbers} {2021-08-20} {2.3} {Telephone number package}
\RequirePackage{l3keys2e}
\RequirePackage{ltxcmds}
@@ -23,9 +22,9 @@
\clist_const:Nn \c_phone_ziffern_clist {0,1,2,3,4,5,6,7,8,9}
\clist_const:Nn \c_phone_gliederungszeichen_clist {(,),[,],/}
-\tl_const:Nn \c_phone_bindestrich_tl {\kern1pt - \kern1pt}
-\tl_const:Nn \c_phone_schraegstrich_tl {\kern1pt \slash \kern1pt}
-\tl_const:Nn \c_phone_pluszeichen_tl {+ \kern1pt}
+\tl_const:Nn \c_phone_bindestrich_tl { \kern 1pt - \kern 1pt }
+\tl_const:Nn \c_phone_schraegstrich_tl { \kern 1pt \slash \kern 1pt }
+\tl_const:Nn \c_phone_pluszeichen_tl { + \kern 1pt }
\str_new:N \l_phone_land_str
\str_new:N \l_phone_heimatland_str
@@ -35,6 +34,7 @@
\str_new:N \l_phone_vorwahltrennung_str
\str_new:N \l_phone_auslandsvorwahltrennung_str
\str_new:N \l_phone_heimatvorwahl_str
+\str_new:N \l_phone_rufnummer_str
\str_new:N \l_phone_bereinigte_nummer_str
\str_new:N \l_phone_bereinigte_durchwahl_str
\str_new:N \l_phone_linktext_str
@@ -55,11 +55,10 @@
\cs_generate_variant:Nn \str_if_eq:nnT {xnT}
\cs_generate_variant:Nn \str_if_eq:nnF {xnF}
\cs_generate_variant:Nn \str_if_eq:nnTF {xnTF}
-\cs_generate_variant:Nn \str_case:nn {Vn,xn}
+\cs_generate_variant:Nn \str_case:nn {xn}
\cs_generate_variant:Nn \str_case:nnT {xnT}
-\cs_generate_variant:Nn \str_case:nnF {VnF,xnF}
-\cs_generate_variant:Nn \str_case:nnTF {VnTF,xnTF}
-\cs_generate_variant:Nn \str_put_right:Nn {NV}
+\cs_generate_variant:Nn \str_case:nnF {xnF}
+\cs_generate_variant:Nn \str_case:nnTF {xnTF}
\cs_generate_variant:Nn \str_tail:n {x}
\cs_generate_variant:Nn \tl_put_right:Nn {Nv}
\cs_generate_variant:Nn \msg_warning:nnn {onn}
@@ -68,17 +67,20 @@
\msg_new:nnn {phonenumbers} {illegal character}
{
- illegal~character~'#1'~in~phone~number~\msg_line_context:
+ illegal~character~'#1'~in~phone~number~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {empty input}
{
- empty~phone~number~\msg_line_context:
+ empty~phone~number~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {empty extension}
{
- empty~extension~(Durchwahl)~\msg_line_context:
+ empty~extension~(Durchwahl)~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {illegal extension}
@@ -118,47 +120,79 @@
\msg_new:nnn {phonenumbers} {illegal start of subscriber number}
{
- subscriber~number~(Teilnehmerrufnummer)~starts~with~#1~in~\phone_landesadjektiv:V \l_phone_land_str\ phone~number~\msg_line_context:
- }
+ subscriber~number~(Teilnehmerrufnummer)~starts~with~#1~in~
+ \phone_landesadjektiv:V \l_phone_land_str
+ \c_space_tl
+ phone~number~
+ \msg_line_context:
+ }
\msg_new:nnn {phonenumbers} {missing subscriber number}
{
- no~subscriber~number~(Teilnehmerrufnummer)~given~in~\phone_landesadjektiv:V \l_phone_land_str\ phone~number~\msg_line_context:
+ no~subscriber~number~(Teilnehmerrufnummer)~given~in~
+ \phone_landesadjektiv:V \l_phone_land_str
+ \c_space_tl
+ phone~number~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {invalid area code}
{
- unknown~area~code~(Vorwahl)~in~\phone_landesadjektiv:V \l_phone_land_str\ phone~number~\msg_line_context:
+ unknown~area~code~(Vorwahl)~in~
+ \phone_landesadjektiv:V \l_phone_land_str
+ \c_space_tl
+ phone~number~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {number too short}
{
- \phone_landesadjektiv:V \l_phone_land_str\ #1~number~has~less~than~#2~digits~\msg_line_context:
+ \phone_landesadjektiv:V \l_phone_land_str
+ \c_space_tl
+ #1~number~has~less~than~#2~digits~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {number too long}
{
- \phone_landesadjektiv:V \l_phone_land_str\ #1~number~has~more~than~#2~digits~\msg_line_context:
+ \phone_landesadjektiv:V \l_phone_land_str
+ \c_space_tl
+ #1~number~has~more~than~#2~digits~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {home country set}
{
- home~country~set~to~\l_phone_heimatland_str\ \msg_line_context:
+ home~country~set~to~
+ \l_phone_heimatland_str
+ \c_space_tl
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {home country cleared}
{
- home~country~\l_phone_heimatland_str\ has~been~deleted~\msg_line_context:
+ home~country~
+ \l_phone_heimatland_str
+ \c_space_tl
+ has~been~deleted~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {home area code set}
{
- Your~home~is~in~\tl_use:c {c_phone_\l_phone_heimatland_str _ortsname_#1_tl}~(area~code~#1)~according~to~line~\msg_line_number:.
+ Your~home~is~in~
+ \tl_use:c {c_phone_\l_phone_heimatland_str _ortsname_#1_tl}
+ \c_space_tl
+ (area~code~#1)~according~to~line~
+ \msg_line_number:.
}
\msg_new:nnn {phonenumbers} {home area code cleared}
{
- home~area~code~\l_phone_heimatvorwahl_str\ has~been~deleted~\msg_line_context:
+ home~area~code~
+ \l_phone_heimatvorwahl_str
+ \c_space_tl
+ has~been~deleted~\msg_line_context:
}
\msg_new:nnn {phonenumbers} {invalid home area code}
@@ -172,12 +206,14 @@
\msg_new:nnn {phonenumbers} {invalid country code}
{
- illegal~country~code~\msg_line_context:
+ illegal~country~code~
+ \msg_line_context:
}
\msg_new:nnn {phonenumbers} {country code only}
{
- phone~number~consists~of~a~country~code~only~\msg_line_context:
+ phone~number~consists~of~a~country~code~only~
+ \msg_line_context:
}
\cs_new:Npn \phone_landesadjektiv:n #1
@@ -372,30 +408,53 @@
}
}
-\cs_new:Npn \phone_gruppierte_ziffernfolge_schreiben:n #1
+
+\cs_new_protected:Npn \phone_von_vorne_gruppiert_schreiben:n #1
{
- \int_set:Nn \l_phone_ziffernzahl_int {\tl_count:n {#1}}
+ \int_set:Nn \l_phone_ziffernzahl_int { \tl_count:n {#1} }
+ \tl_clear:N \l_phone_formatierte_nummer_tl
+
+ \int_step_inline:nn {\l_phone_ziffernzahl_int}
+ {
+ \tl_put_right:Nx \l_phone_formatierte_nummer_tl { \tl_item:nn {#1} {##1} }
+
+ \int_if_even:nT {##1}
+ {
+ \int_compare:nNnT {##1} < {\l_phone_ziffernzahl_int}
+ { \tl_put_right:Nn \l_phone_formatierte_nummer_tl {\,} }
+ }
+ }
+
+ \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_formatierte_nummer_tl
+ }
+
+\cs_generate_variant:Nn \phone_von_vorne_gruppiert_schreiben:n {x,V}
+
+
+\cs_new_protected:Npn \phone_von_hinten_gruppiert_schreiben:n #1
+ {
+ \int_set:Nn \l_phone_ziffernzahl_int { \tl_count:n {#1} }
\tl_clear:N \l_phone_formatierte_nummer_tl
\int_step_inline:nnnn {\l_phone_ziffernzahl_int} {-1} {1}
{
- \tl_put_left:Nx \l_phone_formatierte_nummer_tl {\tl_item:nn {#1} {##1}}
+ \tl_put_left:Nx \l_phone_formatierte_nummer_tl { \tl_item:nn {#1} {##1} }
- \int_if_even:nT {\l_phone_ziffernzahl_int + 1 - ##1}
+ \int_if_even:nT { \l_phone_ziffernzahl_int + 1 - ##1 }
{
\int_compare:nNnT {##1} > {1}
- {\tl_put_left:Nn \l_phone_formatierte_nummer_tl {\,}}
+ { \tl_put_left:Nn \l_phone_formatierte_nummer_tl {\,} }
}
}
\tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_formatierte_nummer_tl
}
-\cs_generate_variant:Nn \phone_gruppierte_ziffernfolge_schreiben:n {V,x}
+\cs_generate_variant:Nn \phone_von_hinten_gruppiert_schreiben:n {x,V}
% #1: Landeskennzahl
-\cs_new:Npn \phone_auslandsvorwahl_schreiben:n #1
+\cs_new_protected:Npn \phone_auslandsvorwahl_schreiben:n #1
{
\str_case:VnTF \l_phone_land_str
{
@@ -406,9 +465,9 @@
{
\str_case:Vn \l_phone_auslandsvorwahltyp_str
{
- {international} {\tl_put_right:Nn \l_phone_ausgabetext_tl {\c_phone_pluszeichen_tl #1}}
- {european} {\phone_gruppierte_ziffernfolge_schreiben:n {00#1}}
- {american} {\phone_gruppierte_ziffernfolge_schreiben:n {011#1}}
+ {international} { \tl_put_right:Nn \l_phone_ausgabetext_tl { \c_phone_pluszeichen_tl #1 } }
+ {european} { \phone_von_hinten_gruppiert_schreiben:n {00#1} }
+ {american} { \phone_von_hinten_gruppiert_schreiben:n {011#1} }
}
}
{
@@ -461,7 +520,7 @@
% Ziffer eingelesen
\str_put_right:Nn \l_phone_bereinigte_nummer_str {##1}
- \bool_lazy_and:nnT {\l_phone_erstes_zeichen_bool} {\str_if_eq_p:nn {##1} {0}}
+ \bool_lazy_and:nnT {\l_phone_erstes_zeichen_bool} { \str_if_eq_p:nn {##1} {0} }
{
\bool_set_true:N \l_phone_null_am_anfang_bool
}
@@ -470,9 +529,9 @@
{
\bool_set_false:N \l_phone_zweites_zeichen_bool
- \bool_lazy_and:nnT {\l_phone_null_am_anfang_bool} {\str_if_eq_p:nn {##1} {0}}
+ \bool_lazy_and:nnT {\l_phone_null_am_anfang_bool} { \str_if_eq_p:nn {##1} {0} }
{
- \bool_set_true:N \l_phone_auslandsnummer_bool
+ \bool_set_true:N \l_phone_auslandsnummer_bool
\str_clear:N \l_phone_bereinigte_nummer_str
}
}
@@ -510,39 +569,39 @@
\bool_if:NT \l_phone_auslandsnummer_bool
{
- \int_set:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_nummer_str}
+ \int_set:Nn \l_tmpa_int { \str_count:N \l_phone_bereinigte_nummer_str }
\int_compare:nNnTF {\l_tmpa_int} > {1}
{
- \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {1}
+ \str_if_eq:xnTF { \str_head:N \l_phone_bereinigte_nummer_str } {1}
{
\str_set:Nn \l_phone_land_str {US}
- \str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {2} {-1}}
+ \str_set:Nx \l_phone_bereinigte_nummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {2} {-1} }
}
{
\int_compare:nNnTF {\l_tmpa_int} > {2}
{
- \str_case:xnTF {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {2}}
+ \str_case:xnTF { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {2} }
{
- {33} {\str_set:Nn \l_phone_land_str {FR}}
- {43} {\str_set:Nn \l_phone_land_str {AT}}
- {44} {\str_set:Nn \l_phone_land_str {UK}}
- {49} {\str_set:Nn \l_phone_land_str {DE}}
+ {33} { \str_set:Nn \l_phone_land_str {FR} }
+ {43} { \str_set:Nn \l_phone_land_str {AT} }
+ {44} { \str_set:Nn \l_phone_land_str {UK} }
+ {49} { \str_set:Nn \l_phone_land_str {DE} }
}
{
- \str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {3} {-1}}
+ \str_set:Nx \l_phone_bereinigte_nummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {3} {-1} }
\str_put_left:Nn \l_phone_bereinigte_nummer_str {0}
}
{
\int_compare:nNnTF {\l_tmpa_int} > {3}
{
- \str_case:xnTF {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3}}
+ \str_case:xnTF { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3} }
{
- {262} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
+ {262} { \str_set:Nx \l_phone_bereinigte_nummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1} } }
{508} { } % Saint-Pierre-et-Miquelon
- {590} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
- {594} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
- {596} {\str_set:Nx \l_phone_bereinigte_nummer_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1}}}
+ {590} { \str_set:Nx \l_phone_bereinigte_nummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1} } }
+ {594} { \str_set:Nx \l_phone_bereinigte_nummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1} } }
+ {596} { \str_set:Nx \l_phone_bereinigte_nummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {4} {-1} } }
}
{
\str_set:Nn \l_phone_land_str {FR}
@@ -569,7 +628,7 @@
\bool_lazy_and:nnT
{
- \bool_lazy_or_p:nn {\str_if_eq_p:Vn \l_phone_land_str {DE}} {\str_if_eq_p:Vn \l_phone_land_str {AT}}
+ \bool_lazy_or_p:nn { \str_if_eq_p:Vn \l_phone_land_str {DE} } { \str_if_eq_p:Vn \l_phone_land_str {AT} }
}
{
\str_if_empty_p:N \l_phone_bereinigte_durchwahl_str
@@ -592,7 +651,7 @@
\int_compare:nNnF {\l_phone_bindestrichposition_int} = {-1}
{
% Nummer enthält einen Bindestrich
- \str_set:Nx \l_tmpa_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {\l_phone_bindestrichposition_int - 1} }
+ \str_set:Nx \l_tmpa_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} { \l_phone_bindestrichposition_int - 1 } }
\tl_remove_all:Nn \l_tmpa_str {-}
\phone_enthaelt_vorwahl:NT \l_tmpa_str
@@ -607,13 +666,13 @@
\str_if_eq:xnF { \str_head:N \l_tmpa_str } {0}
{
\bool_set_true:N \l_tmpa_bool
- % Nummer beginnt nicht mit 0 (ist also eine reine Teilnehmerrufnummer)
+ % Nummer beginnt nicht mit 0 (ist also eine reine Teilnehmerrufnummer)
}
\bool_if:NT \l_tmpa_bool
{
% Teil nach dem Bindestrich als Durchwahl abtrennen
- \phone_durchwahl_ueberpruefen:x { \str_range:Nnn \l_phone_bereinigte_nummer_str {\l_phone_bindestrichposition_int + 1} {-1} }
+ \phone_durchwahl_ueberpruefen:x { \str_range:Nnn \l_phone_bereinigte_nummer_str { \l_phone_bindestrichposition_int + 1 } {-1} }
\str_set_eq:NN \l_phone_bereinigte_nummer_str \l_tmpa_str
}
}
@@ -626,7 +685,7 @@
% #1: eingebene Durchwahl
-\cs_new:Npn \phone_durchwahl_ueberpruefen:n #1
+\cs_new_protected:Npn \phone_durchwahl_ueberpruefen:n #1
{
\tl_if_blank:nTF {#1}
{
@@ -654,7 +713,7 @@
\cs_generate_variant:Nn \phone_durchwahl_ueberpruefen:n {x}
-\cs_new:Npn \phone_nummer_ausgeben:
+\cs_new_protected:Npn \phone_nummer_ausgeben:
{
\bool_if:NF \l_phone_eingabe_leer_bool
{
@@ -671,11 +730,11 @@
}
}
- \bool_lazy_and:nnTF {\l_phone_nummer_verlinken_bool} {!\str_if_empty_p:N \l_phone_linktext_str}
+ \bool_lazy_and:nnTF {\l_phone_nummer_verlinken_bool} { ! \str_if_empty_p:N \l_phone_linktext_str }
{
\ltx@ifpackageloaded {hyperref}
{
- \href{tel\c_colon_str\l_phone_linktext_str}{\l_phone_ausgabetext_tl}
+ \href { tel \c_colon_str \l_phone_linktext_str } {\l_phone_ausgabetext_tl}
}
{
\l_phone_ausgabetext_tl
@@ -686,17 +745,18 @@
}
}
-\cs_new:Npn \phone_vorwahlliste_ausgeben:n #1
+\cs_new_protected:Npn \phone_vorwahlliste_ausgeben:n #1
{
\begin{tabbing}
\str_case:VnF \l_phone_land_str
{
- {US} {\hspace{3em}}
+ {US} { \hspace {3em} }
}
{
- \hspace{4em}
+ \hspace {4em}
}
- \= \kill
+ \=
+ \kill
\bool_set_false:N \l_phone_zeilenumbruch_bool
@@ -721,9 +781,9 @@
\tl_use:N \l_phone_ausgabetext_tl
}
{
- \bool_if:nTF {\str_if_eq_p:Vn \l_phone_land_str {FR}}
+ \bool_if:nTF { \str_if_eq_p:Vn \l_phone_land_str {FR} }
{
- \phone_gruppierte_ziffernfolge_schreiben:n {##1}
+ \phone_von_vorne_gruppiert_schreiben:n {##1}
\tl_use:N \l_phone_ausgabetext_tl
}
{
@@ -764,7 +824,7 @@
\IfValueT {#3}
{
- \bool_lazy_or:nnF {\str_if_eq_p:Vn \l_phone_land_str {DE}} {\str_if_eq_p:Vn \l_phone_land_str {AT}}
+ \bool_lazy_or:nnF { \str_if_eq_p:Vn \l_phone_land_str {DE} } { \str_if_eq_p:Vn \l_phone_land_str {AT} }
{
\bool_if:NF \l_phone_durchwahl_leer_bool
{
@@ -829,15 +889,15 @@
{
\bool_set_false:N \l_phone_vorwahl_gefunden_bool
- \int_set:Nn \l_phone_pruefnummerlaenge_int {\str_count:N #1}
+ \int_set:Nn \l_phone_pruefnummerlaenge_int { \str_count:N #1 }
\int_step_inline:nnnn {6} {-1} {2}
{
\bool_if:NF \l_phone_vorwahl_gefunden_bool
{
- \int_compare:nT {\l_phone_pruefnummerlaenge_int >= ##1}
+ \int_compare:nT { \l_phone_pruefnummerlaenge_int >= ##1 }
{
- \str_set:Nx \l_phone_vorwahl_str {\str_range:Nnn #1 {1} {##1}}
+ \str_set:Nx \l_phone_vorwahl_str { \str_range:Nnn #1 {1} {##1} }
\clist_if_in:cVT {c_phone_\l_phone_land_str _vorwahlen_clist} \l_phone_vorwahl_str
{
@@ -858,12 +918,12 @@
% #1: Vorwahl, #2: Soll die führende null ausgegeben werden?
-\cs_new:Npn \phone_gruppierte_vorwahl_schreiben:nN #1#2
+\cs_new_protected:Npn \phone_gruppierte_vorwahl_schreiben:nN #1#2
{
\str_if_eq:VnTF \l_phone_land_str {UK}
{
% britische Vorwahl
- \int_compare:nNnTF {\str_count:n {#1}} = {6}
+ \int_compare:nNnTF { \str_count:n {#1} } = {6}
{
% sechsstellige britische Vorwahl: Gliederung vor der zweitletzten Ziffer
\bool_if:NTF #2
@@ -871,11 +931,11 @@
\tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {1} {4} }
}
{
- \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_tail:x {\str_range:nnn {#1} {1} {4}} }
+ \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_tail:x { \str_range:nnn {#1} {1} {4} } }
}
\tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
- \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:nnn {#1} {5} {6}}
+ \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#1} {5} {6} }
}
{
% nicht sechsstellige britische Vorwahl
@@ -884,29 +944,29 @@
\tl_put_right:Nn \l_phone_ausgabetext_tl {#1}
}
{
- \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_tail:n {#1}}
+ \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_tail:n {#1} }
}
}
}
{
% nichtbritische Vorwahl
- \bool_lazy_and:nnTF {\str_if_eq_p:Vn \l_phone_land_str {DE}} {\int_compare_p:nNn {\str_count:n {#1}} = {5}}
+ \bool_lazy_and:nnTF { \str_if_eq_p:Vn \l_phone_land_str {DE} } { \int_compare_p:nNn { \str_count:n {#1} } = {5} }
{
% fünfstellige deutsche Vorwahl
- \str_set:Nx \l_tmpa_str {\str_range:nnn {#1} {1} {4}}
- \str_set:Nx \l_tmpb_str {\str_range:nnn {#1} {5} {5}}
-
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn \l_tmpa_str {0137}} {\str_if_eq_p:Vn \l_tmpa_str {0180}}
+ \str_set:Nx \l_tmpa_str { \str_range:nnn {#1} {1} {4} }
+ \str_set:Nx \l_tmpb_str { \str_range:nnn {#1} {5} {5} }
+
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_tmpa_str {0137} } { \str_if_eq_p:Vn \l_tmpa_str {0180} }
{
% fünfstellige deutsche Vorwahl mit Tarifkennung: letzte Ziffer steht allein
\bool_if:NTF #2
{
- \phone_gruppierte_ziffernfolge_schreiben:V \l_tmpa_str
+ \phone_von_hinten_gruppiert_schreiben:V \l_tmpa_str
}
{
- \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:N \l_tmpa_str}
+ \phone_von_hinten_gruppiert_schreiben:x { \str_tail:N \l_tmpa_str }
}
-
+
\tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
\tl_put_right:NV \l_phone_ausgabetext_tl \l_tmpb_str
}
@@ -914,10 +974,10 @@
% fünfstellige deutsche Vorwahl ohne Tarifkennung
\bool_if:NTF #2
{
- \phone_gruppierte_ziffernfolge_schreiben:n {#1}
+ \phone_von_hinten_gruppiert_schreiben:n {#1}
}
{
- \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:n {#1}}
+ \phone_von_hinten_gruppiert_schreiben:x { \str_tail:n {#1} }
}
}
}
@@ -925,17 +985,17 @@
% sonstige Vorwahl
\bool_if:NTF #2
{
- \phone_gruppierte_ziffernfolge_schreiben:n {#1}
+ \phone_von_hinten_gruppiert_schreiben:n {#1}
}
{
- \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:n {#1}}
+ \phone_von_hinten_gruppiert_schreiben:x { \str_tail:n {#1} }
}
}
}
}
% #1: Vorwahl, #2: Soll die führende null ausgegeben werden?
-\cs_new:Npn \phone_geklammerte_vorwahl_schreiben:nN #1#2
+\cs_new_protected:Npn \phone_geklammerte_vorwahl_schreiben:nN #1#2
{
% Klammern werden nur bei Ortsvorwahlen gesetzt
\clist_if_in:cnTF {c_phone_\l_phone_land_str _ortsvorwahlen_clist} {#1}
@@ -950,9 +1010,9 @@
}
% #1: Nummer, #2: Mindestlänge, #3: Höchstlänge, #4: Nummernart
-\cs_new:Npn \phone_nummernlaenge_ueberpruefen:nnnn #1#2#3#4
+\cs_new_protected:Npn \phone_nummernlaenge_ueberpruefen:nnnn #1#2#3#4
{
- \int_set:Nn \l_tmpa_int {\str_count:n {#1}}
+ \int_set:Nn \l_tmpa_int { \str_count:n {#1} }
\int_compare:nNnTF {\l_tmpa_int} < {#2}
{
@@ -982,9 +1042,9 @@
% #1: Vorwahl, #2: Folgt eine Rufnummer?
-\cs_new:Npn \phone_DE_AT_vorwahl_schreiben:nn #1 #2
+\cs_new_protected:Npn \phone_DE_AT_vorwahl_schreiben:nn #1 #2
{
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off}} {\str_if_eq_p:NN \l_phone_heimatland_str \l_phone_land_str}
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:NN \l_phone_heimatland_str \l_phone_land_str }
{
\clist_if_in:cnT {c_phone_\l_phone_land_str _sondervorwahlen_clist} {#1}
{
@@ -994,7 +1054,7 @@
}
}
- \bool_lazy_and:nnF {\str_if_eq_p:NN \l_phone_heimatland_str \l_phone_land_str} {\str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1}}
+ \bool_lazy_and:nnF { \str_if_eq_p:NN \l_phone_heimatland_str \l_phone_land_str } { \str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1} }
{
\str_case:Vn \l_phone_vorwahldarstellung_str
{
@@ -1009,7 +1069,7 @@
}
{
\phone_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
-
+
\tl_put_right:Nx \l_phone_ausgabetext_tl
{
\str_case:VnF \l_phone_vorwahltrennung_str
@@ -1035,7 +1095,7 @@
{
\tl_put_right:Nn \l_phone_ausgabetext_tl {(}
}
-
+
\tl_if_exist:cTF {c_phone_\l_phone_land_str _ortsname_#1_tl}
{
\tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_\l_phone_land_str _ortsname_#1_tl}
@@ -1043,7 +1103,7 @@
{
\phone_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
}
-
+
\tl_put_right:Nx \l_phone_ausgabetext_tl
{
\str_case:VnF \l_phone_vorwahltrennung_str
@@ -1074,11 +1134,11 @@
\tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_\l_phone_land_str _ortsname_#1_tl}
\tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
}
-
+
\str_if_eq:VnTF \l_phone_vorwahltrennung_str {brackets}
{
\phone_geklammerte_vorwahl_schreiben:nN {#1} \c_true_bool
-
+
\bool_if:nT {#2}
{
\tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
@@ -1086,7 +1146,7 @@
}
{
\phone_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
-
+
\bool_if:nT {#2}
{
\tl_put_right:Nx \l_phone_ausgabetext_tl
@@ -1138,7 +1198,7 @@
{
\str_if_eq:VnTF \l_phone_land_str {DE} {+49} {+43}
}
- \str_put_right:Nx \l_phone_linktext_str {\str_tail:n {#1}}
+ \str_put_right:Nx \l_phone_linktext_str { \str_tail:n {#1} }
}
}
@@ -1146,11 +1206,11 @@
% #1: Vorwahl, #2: Teilnehmerrufnummer
-\cs_new:Npn \phone_DE_festnetzteilnehmerrufnummernlaenge_ueberpruefen:Nn #1#2
+\cs_new_protected:Npn \phone_DE_festnetzteilnehmerrufnummernlaenge_ueberpruefen:Nn #1#2
{
- \int_set:Nn \l_tmpa_int {\str_count:N #1}
- \int_add:Nn \l_tmpa_int {\str_count:n {#2}}
- \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_durchwahl_str}
+ \int_set:Nn \l_tmpa_int { \str_count:N #1 }
+ \int_add:Nn \l_tmpa_int { \str_count:n {#2} }
+ \int_add:Nn \l_tmpa_int { \str_count:N \l_phone_bereinigte_durchwahl_str }
\int_compare:nNnTF {\l_tmpa_int} > {13}
{
@@ -1158,8 +1218,8 @@
\msg_warning:nnnn {phonenumbers} {number too long} {landline} {13}
}
{
- \int_set:Nn \l_tmpa_int {\str_count:n {#2}}
- \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_durchwahl_str}
+ \int_set:Nn \l_tmpa_int { \str_count:n {#2} }
+ \int_add:Nn \l_tmpa_int { \str_count:N \l_phone_bereinigte_durchwahl_str }
\int_compare:nNnTF {\l_tmpa_int} < {3}
{
@@ -1173,10 +1233,10 @@
}
% #1: Nummer
-\cs_new:Npn \phone_DE_MABEZnummernlaenge_ueberpruefen:N #1
+\cs_new_protected:Npn \phone_DE_MABEZnummernlaenge_ueberpruefen:N #1
{
- \int_set:Nn \l_tmpa_int {\str_count:N #1}
- \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_durchwahl_str}
+ \int_set:Nn \l_tmpa_int { \str_count:N #1 }
+ \int_add:Nn \l_tmpa_int { \str_count:N \l_phone_bereinigte_durchwahl_str }
\int_compare:nNnTF {\l_tmpa_int} > {11}
{
@@ -1196,7 +1256,7 @@
}
% #1: Vorwahl, #2: Teilnehmerrufnummer
-\cs_new:Npn \phone_DE_teilnehmerrufnummer_schreiben:Nn #1 #2
+\cs_new_protected:Npn \phone_DE_teilnehmerrufnummer_schreiben:Nn #1 #2
{
% Überprüfen der Nummernlänge
\str_if_empty:NTF #1
@@ -1211,7 +1271,7 @@
\clist_if_in:NVTF \c_phone_DE_ortsvorwahlen_clist #1
{
% Festnetznummer
- \str_if_eq:xnTF {\str_head:n {#2}} {0}
+ \str_if_eq:xnTF { \str_head:n {#2} } {0}
{
\msg_warning:nnn {phonenumbers} {illegal start of subscriber number} {0}
}
@@ -1224,37 +1284,37 @@
\str_set_eq:NN \l_tmpa_str #1
\str_put_right:Nn \l_tmpa_str {#2}
- \str_if_eq:xnTF {\str_range:Nnn #1 {1} {5}} {09009}
+ \str_if_eq:xnTF { \str_range:Nnn #1 {1} {5} } {09009}
{
\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {09009}
}
{
- \str_case:xnF {\str_range:Nnn #1 {1} {4}}
+ \str_case:xnF { \str_range:Nnn #1 {1} {4} }
{
- {0137} {\phone_DE_MABEZnummernlaenge_ueberpruefen:N \l_tmpa_str}
- {0160} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone}}
- {0162} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone}}
- {0163} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone}}
- {0164} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0164}} % Funkruf
- {0168} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {15} {0168}} % Funkruf
- {0169} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {15} {0169}} % Funkruf
- {0180} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {11} {0180}}
- {0181} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {8} {15} {0181}}
- {0191} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0191}}
- {0192} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0192}}
- {0193} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0193}}
- {0194} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {7} {14} {0194}}
- {0700} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {0700}}
- {0800} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {14} {freephone}}
- {0900} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {11} {premium~service}}
+ {0137} { \phone_DE_MABEZnummernlaenge_ueberpruefen:N \l_tmpa_str }
+ {0160} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone} }
+ {0162} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone} }
+ {0163} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone} }
+ {0164} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0164} } % Funkruf
+ {0168} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {15} {0168} } % Funkruf
+ {0169} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {15} {0169} } % Funkruf
+ {0180} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {11} {0180} }
+ {0181} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {8} {15} {0181} }
+ {0191} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0191} }
+ {0192} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0192} }
+ {0193} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {5} {14} {0193} }
+ {0194} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {7} {14} {0194} }
+ {0700} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {0700} }
+ {0800} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {14} {freephone} }
+ {0900} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {11} {premium~service} }
}
{
\str_case:xn {\str_range:Nnn #1 {1} {3}}
{
- {015} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {mobile~phone}}
- {017} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone}}
- {018} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {018}}
- {032} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {032}}
+ {015} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {mobile~phone} }
+ {017} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {11} {12} {mobile~phone} }
+ {018} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {018} }
+ {032} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {12} {12} {032} }
}
}
}
@@ -1262,7 +1322,7 @@
\str_if_empty:NF \l_phone_bereinigte_durchwahl_str
{
% Mobilfunk- und Sondernummern dürfen keine Durchwahl enthalten (ausgenommen MABEZ-Nummern)
- \str_if_eq:xnF {\str_range:Nnn #1 {1} {4}} {0137}
+ \str_if_eq:xnF { \str_range:Nnn #1 {1} {4} } {0137}
{
\msg_warning:nn {phonenumbers} {odd extension}
}
@@ -1283,7 +1343,7 @@
\bool_if:NTF \l_phone_teilnehmerrufnummer_gueltig_bool
{
- \phone_gruppierte_ziffernfolge_schreiben:n {#2}
+ \phone_von_hinten_gruppiert_schreiben:n {#2}
}
{
\str_put_right:Nn \l_phone_ausgabetext_tl {#2}
@@ -1292,7 +1352,7 @@
\str_if_empty:NF \l_phone_bereinigte_durchwahl_str
{
\tl_put_right:NV \l_phone_ausgabetext_tl \c_phone_bindestrich_tl
- \phone_gruppierte_ziffernfolge_schreiben:V \l_phone_bereinigte_durchwahl_str
+ \phone_von_hinten_gruppiert_schreiben:V \l_phone_bereinigte_durchwahl_str
}
}
@@ -1304,12 +1364,12 @@
\cs_new_protected:Npn \phone_DE_AT_nummer_schreiben:
{
- \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {0}
+ \str_if_eq:xnTF { \str_head:N \l_phone_bereinigte_nummer_str } {0}
{
\phone_enthaelt_vorwahl:NTF \l_phone_bereinigte_nummer_str
{
- \int_set:Nn \l_phone_DE_AT_hauptnummerlaenge_int {\str_count:N \l_phone_bereinigte_nummer_str}
- \int_set:Nn \l_phone_DE_AT_vorwahllaenge_int {\str_count:N \l_phone_vorwahl_str}
+ \int_set:Nn \l_phone_DE_AT_hauptnummerlaenge_int { \str_count:N \l_phone_bereinigte_nummer_str }
+ \int_set:Nn \l_phone_DE_AT_vorwahllaenge_int { \str_count:N \l_phone_vorwahl_str }
\phone_DE_AT_vorwahl_schreiben:Vx \l_phone_vorwahl_str
{
@@ -1323,7 +1383,7 @@
{
\use:c {phone_\l_phone_land_str _teilnehmerrufnummer_schreiben:Nx} \l_phone_vorwahl_str
{
- \str_range:Nnn \l_phone_bereinigte_nummer_str {\l_phone_DE_AT_vorwahllaenge_int + 1} {-1}
+ \str_range:Nnn \l_phone_bereinigte_nummer_str { \l_phone_DE_AT_vorwahllaenge_int + 1 } {-1}
}
}
}
@@ -1349,11 +1409,11 @@
% #1: Vorwahl, #2: Teilnehmerrufnummer
-\cs_new:Npn \phone_AT_festnetzteilnehmerrufnummernlaenge_ueberpruefen:Nn #1#2
+\cs_new_protected:Npn \phone_AT_festnetzteilnehmerrufnummernlaenge_ueberpruefen:Nn #1#2
{
- \int_set:Nn \l_tmpa_int {\str_count:N #1}
- \int_add:Nn \l_tmpa_int {\str_count:n {#2}}
- \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_durchwahl_str}
+ \int_set:Nn \l_tmpa_int { \str_count:N #1 }
+ \int_add:Nn \l_tmpa_int { \str_count:n {#2} }
+ \int_add:Nn \l_tmpa_int { \str_count:N \l_phone_bereinigte_durchwahl_str }
\int_compare:nNnTF {\l_tmpa_int} > {13}
{
@@ -1361,8 +1421,8 @@
\msg_warning:nnnn {phonenumbers} {number too long} {landline} {13}
}
{
- \int_set:Nn \l_tmpa_int {\str_count:n {#2}}
- \int_add:Nn \l_tmpa_int {\str_count:N \l_phone_bereinigte_durchwahl_str}
+ \int_set:Nn \l_tmpa_int { \str_count:n {#2} }
+ \int_add:Nn \l_tmpa_int { \str_count:N \l_phone_bereinigte_durchwahl_str }
\int_compare:nNnTF {\l_tmpa_int} < {5}
{
@@ -1370,25 +1430,25 @@
\msg_warning:nnn {phonenumbers} {subscriber number too short} {5}
}
{
- \bool_lazy_and:nnTF {\str_if_eq_p:Vn #1 {01}} {\int_compare_p:nNn {\l_tmpa_int} < {7}}
+ \bool_lazy_and:nnTF { \str_if_eq_p:Vn #1 {01} } { \int_compare_p:nNn {\l_tmpa_int} < {7} }
{
% Wiener Teilnehmerrufnummer hat weniger als 7 Stellen
\msg_warning:nnn {phonenumbers} {subscriber number too short} {7}
}
- {
+ {
\bool_lazy_and:nnTF
{
\bool_lazy_any_p:n
{
- {\str_if_eq_p:Vn #1 {02236}}
- {\str_if_eq_p:Vn #1 {02252}}
- {\str_if_eq_p:Vn #1 {0316}}
- {\str_if_eq_p:Vn #1 {0463}}
- {\str_if_eq_p:Vn #1 {0512}}
- {\str_if_eq_p:Vn #1 {05572}}
- {\str_if_eq_p:Vn #1 {0662}}
- {\str_if_eq_p:Vn #1 {07242}}
- {\str_if_eq_p:Vn #1 {0732}}
+ { \str_if_eq_p:Vn #1 {02236} }
+ { \str_if_eq_p:Vn #1 {02252} }
+ { \str_if_eq_p:Vn #1 {0316} }
+ { \str_if_eq_p:Vn #1 {0463} }
+ { \str_if_eq_p:Vn #1 {0512} }
+ { \str_if_eq_p:Vn #1 {05572} }
+ { \str_if_eq_p:Vn #1 {0662} }
+ { \str_if_eq_p:Vn #1 {07242} }
+ { \str_if_eq_p:Vn #1 {0732} }
}
}
{
@@ -1414,11 +1474,11 @@
}
% #1: Vorwahl, #2: Teilnehmerrufnummer
-\cs_new:Npn \phone_AT_festnetzteilnehmerrufnummer_ueberpruefen:Nn #1#2
+\cs_new_protected:Npn \phone_AT_festnetzteilnehmerrufnummer_ueberpruefen:Nn #1#2
{
- \str_set:Nx \l_tmpa_str {\str_head:n {#2}}
+ \str_set:Nx \l_tmpa_str { \str_head:n {#2} }
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn \l_tmpa_str {0}} {\str_if_eq_p:Vn \l_tmpa_str {1}}
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_tmpa_str {0} } { \str_if_eq_p:Vn \l_tmpa_str {1} }
{
\msg_warning:nnV {phonenumbers} {illegal start of subscriber number} \l_tmpa_str
}
@@ -1428,7 +1488,7 @@
}
% #1: Vorwahl, #2: Teilnehmerrufnummer
-\cs_new:Npn \phone_AT_teilnehmerrufnummer_schreiben:Nn #1 #2
+\cs_new_protected:Npn \phone_AT_teilnehmerrufnummer_schreiben:Nn #1 #2
{
\str_if_empty:NTF #1
{
@@ -1451,33 +1511,33 @@
\str_case:VnF #1
{
- {0517} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN}}
- {0718} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {dial~up}}
- {0720} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {location~independant}}
- {0780} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {convergent~service}}
- {0800} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {freephone}}
- {0804} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {dial~up}}
- {0810} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service}}
- {0820} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service}}
- {0821} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service}}
- {0828} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service}}
- {0900} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service}}
- {0901} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service}}
- {0930} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service}}
- {0931} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service}}
- {0939} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service}}
- }
- {
- \str_case:xn {\str_range:Nnn #1 {1} {3}}
+ {0517} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN} }
+ {0718} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {dial~up} }
+ {0720} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {location~independant} }
+ {0780} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {convergent~service} }
+ {0800} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {freephone} }
+ {0804} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {dial~up} }
+ {0810} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service} }
+ {0820} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service} }
+ {0821} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service} }
+ {0828} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {service} }
+ {0900} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service} }
+ {0901} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service} }
+ {0930} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service} }
+ {0931} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service} }
+ {0939} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {10} {13} {premium~service} }
+ }
+ {
+ \str_case:xn { \str_range:Nnn #1 {1} {3} }
{
- {050} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN}}
- {057} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN}}
- {059} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN}}
- {065} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone}}
- {066} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone}}
- {067} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone}}
- {068} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone}}
- {069} {\phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone}}
+ {050} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN} }
+ {057} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN} }
+ {059} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {VPN} }
+ {065} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone} }
+ {066} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone} }
+ {067} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone} }
+ {068} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone} }
+ {069} { \phone_nummernlaenge_ueberpruefen:Vnnn \l_tmpa_str {9} {13} {mobile~phone} }
}
}
@@ -1501,7 +1561,7 @@
\bool_if:NTF \l_phone_teilnehmerrufnummer_gueltig_bool
{
- \phone_gruppierte_ziffernfolge_schreiben:n {#2}
+ \phone_von_hinten_gruppiert_schreiben:n {#2}
}
{
\str_put_right:Nn \l_phone_ausgabetext_tl {#2}
@@ -1510,7 +1570,7 @@
\str_if_empty:NF \l_phone_bereinigte_durchwahl_str
{
\tl_put_right:NV \l_phone_ausgabetext_tl \c_phone_bindestrich_tl
- \phone_gruppierte_ziffernfolge_schreiben:V \l_phone_bereinigte_durchwahl_str
+ \phone_von_hinten_gruppiert_schreiben:V \l_phone_bereinigte_durchwahl_str
}
}
@@ -1543,6 +1603,7 @@
{
{0262} {262}
{026200} {262}
+ {0263} {262}
{0269} {262}
{0508} {508}
{0590} {590}
@@ -1556,16 +1617,36 @@
{0694} {594}
{0696} {596}
{0697} {596}
+ {07005} {590}
+ {07006} {594}
+ {07007} {596}
+ {07008} {262}
+ {07009} {262}
+ {09475} {590}
+ {09476} {594}
+ {09477} {596}
+ {09478} {262}
+ {09479} {262}
+ {09760} {590}
+ {09761} {590}
+ {09762} {262}
+ {09763} {262}
+ {09764} {594}
+ {09765} {594}
+ {09766} {596}
+ {09767} {596}
+ {09768} {590}
+ {09769} {262}
}
{
33
}
}
-% #1: Vorwahl
-\cs_new:Npn \phone_FR_vorwahl_schreiben:n #1
+% #1: Vorwahl, #2: Rufnummer
+\cs_new_protected:Npn \phone_FR_vorwahl_schreiben:nn #1#2
{
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off}} {\str_if_eq_p:Vn \l_phone_heimatland_str {FR}}
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:Vn \l_phone_heimatland_str {FR} }
{
\clist_if_in:NnT \c_phone_FR_sondervorwahlen_clist {#1}
{
@@ -1575,14 +1656,15 @@
}
}
- \bool_lazy_and:nnF {\str_if_eq_p:Vn \l_phone_heimatland_str {FR}} {\str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1}}
+ \bool_lazy_and:nnF { \str_if_eq_p:Vn \l_phone_heimatland_str {FR} } { \str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1} }
{
\str_case:Vn \l_phone_vorwahldarstellung_str
{
{number}
{
- \phone_gruppierte_ziffernfolge_schreiben:n {#1}
- \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
+ \phone_von_vorne_gruppiert_schreiben:n {#1}
+ \int_if_even:nT { \str_count:n {#1} }
+ { \tl_put_right:Nn \l_phone_ausgabetext_tl {\,} }
}
{place}
{
@@ -1592,8 +1674,9 @@
\tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
}
{
- \phone_gruppierte_ziffernfolge_schreiben:n {#1}
- \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
+ \phone_von_vorne_gruppiert_schreiben:n {#1}
+ \int_if_even:nT { \str_count:n {#1} }
+ { \tl_put_right:Nn \l_phone_ausgabetext_tl {\,} }
}
}
{place-and-number}
@@ -1603,43 +1686,60 @@
\tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_FR_ortsname_#1_tl}
\tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
}
-
- \phone_gruppierte_ziffernfolge_schreiben:n {#1}
- \tl_put_right:NV \l_phone_ausgabetext_tl {\,}
+
+ \phone_von_vorne_gruppiert_schreiben:n {#1}
+ \int_if_even:nT { \str_count:n {#1} }
+ { \tl_put_right:Nn \l_phone_ausgabetext_tl {\,} }
}
}
}
}
{
- \phone_auslandsvorwahl_schreiben:x {\phone_FR_ermittle_landeskennzahl:n {#1}}
+ \phone_auslandsvorwahl_schreiben:x { \phone_FR_ermittle_landeskennzahl:n {#1} }
\tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
\str_if_eq:nnF {#1} {0508} % in Saint-Pierre-et-Miquelon entfällt die Ortsvorwahl
{
- \phone_gruppierte_ziffernfolge_schreiben:x {\str_tail:n {#1}}
- \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
+ \int_if_even:nTF { \str_count:n {#2} }
+ {
+ % Rufnummer hat gerade Stellenanzahl
+ \phone_von_hinten_gruppiert_schreiben:x { \str_tail:n {#1} }
+ \tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
+ }
+ {
+ \int_if_even:nTF { \str_count:n {#1} }
+ {
+ % Rufnummer hat ungerade Stellenanzahl, die Vorwahl ohne die 0 auch
+ \phone_von_vorne_gruppiert_schreiben:x { \str_tail:n {#1} }
+ }
+ {
+ % Rufnummer hat ungerade Stellenanzahl, die Vorwahl ohne die 0 hat gerade Stellenanzahl
+ \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_item:nn {#1} {2} \, }
+ \phone_von_vorne_gruppiert_schreiben:x { \str_range:nnn {#1} {3} {-1} }
+ }
+ }
}
}
- \str_put_right:Nx \l_phone_linktext_str {+\phone_FR_ermittle_landeskennzahl:n {#1}}
+ \str_put_right:Nx \l_phone_linktext_str { + \phone_FR_ermittle_landeskennzahl:n {#1} }
\str_if_eq:nnF {#1} {0508} % in Saint-Pierre-et-Miquelon entfällt die Ortsvorwahl
{
- \str_put_right:Nx \l_phone_linktext_str {\str_tail:n {#1}}
+ \str_put_right:Nx \l_phone_linktext_str { \str_tail:n {#1} }
}
}
-\cs_generate_variant:Nn \phone_FR_vorwahl_schreiben:n {V}
+\cs_generate_variant:Nn \phone_FR_vorwahl_schreiben:nn {VV,xV}
-\cs_new:Npn \phone_FR_nummer_schreiben:
+\cs_new_protected:Npn \phone_FR_nummer_schreiben:
{
- \int_set:Nn \l_phone_nummerlaenge_int {\str_count:N \l_phone_bereinigte_nummer_str}
-
+ \int_set:Nn \l_phone_nummerlaenge_int { \str_count:N \l_phone_bereinigte_nummer_str }
+
\int_compare:nNnTF {\l_phone_nummerlaenge_int} < {10}
{
- \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {3}
+ \str_if_eq:xnTF { \str_head:N \l_phone_bereinigte_nummer_str } {3}
{
\int_compare:nNnTF {\l_phone_nummerlaenge_int} < {4}
{
@@ -1650,10 +1750,10 @@
\int_compare:nNnTF {\l_phone_nummerlaenge_int} > {4}
{
\msg_warning:nnnn {phonenumbers} {number too long} {short} {4}
- \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
+ \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
}
{
- \phone_gruppierte_ziffernfolge_schreiben:V \l_phone_bereinigte_nummer_str
+ \phone_von_vorne_gruppiert_schreiben:V \l_phone_bereinigte_nummer_str
\str_put_right:NV \l_phone_linktext_str \l_phone_bereinigte_nummer_str
}
}
@@ -1666,36 +1766,80 @@
{
\int_compare:nNnTF {\l_phone_nummerlaenge_int} > {10}
{
- \msg_warning:nnnn {phonenumbers} {number too long} {phone} {10}
- \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
+ \str_if_eq:xnTF { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {4} } {0700}
+ {
+ \int_compare:nNnTF { \str_item:Nn \l_phone_bereinigte_nummer_str {5} } < {5}
+ {
+ % überlange Mobilfunknummer (machine to machine) im Mutterland (14 Stellen)
+ \str_set:Nx \l_phone_rufnummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {5} {-1} }
+ \phone_FR_vorwahl_schreiben:xV { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {4} } \l_phone_rufnummer_str
+ \phone_nummernlaenge_ueberpruefen:Vnnn \l_phone_bereinigte_nummer_str {14} {14} {machine~to~machine}
+ \bool_if:NT \l_phone_teilnehmerrufnummer_gueltig_bool
+ {
+ \phone_von_vorne_gruppiert_schreiben:V \l_phone_rufnummer_str
+ }
+ }
+ {
+ % überlange Mobilfunknummer (machine to machine) in den Überseegebieten (13 Stellen)
+ \str_set:Nx \l_phone_rufnummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {6} {-1} }
+ \phone_FR_vorwahl_schreiben:xV { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {5} } \l_phone_rufnummer_str
+ \phone_nummernlaenge_ueberpruefen:Vnnn \l_phone_bereinigte_nummer_str {13} {13} {machine~to~machine}
+ \bool_if:NT \l_phone_teilnehmerrufnummer_gueltig_bool
+ {
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:Vn \l_phone_heimatland_str {FR} }
+ {
+ % ohne Auslandsvorwahl steht am Ende eine Einzelziffer
+ \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_head:N \l_phone_rufnummer_str \, }
+ \phone_von_vorne_gruppiert_schreiben:x { \str_tail:N \l_phone_rufnummer_str }
+ }
+ {
+ % mit Auslandsvorwahl ergeben sich durchgehend Zweiergruppen
+ \phone_von_vorne_gruppiert_schreiben:V \l_phone_rufnummer_str
+ }
+ }
+ }
+
+ \bool_if:NTF \l_phone_teilnehmerrufnummer_gueltig_bool
+ {
+ % Für gültige Nummern Linktext schreiben:
+ \str_put_right:NV \l_phone_linktext_str \l_phone_rufnummer_str
+ }
+ {
+ % Für ungültige Nummern Linktext löschen und ungruppierte Nummer schreiben:
+ \str_clear:N \l_phone_linktext_str
+ \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_rufnummer_str
+ }
+ }
+ {
+ \msg_warning:nnnn {phonenumbers} {number too long} {phone} {10}
+ \tl_put_right:NV \l_phone_ausgabetext_tl \l_phone_bereinigte_nummer_str
+ }
}
{
- \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {0}
+ \str_if_eq:xnTF { \str_head:N \l_phone_bereinigte_nummer_str } {0}
{
\bool_set_false:N \l_phone_vorwahl_gefunden_bool
-
+
\int_step_inline:nnnn {6} {-1} {2}
{
\bool_if:NF \l_phone_vorwahl_gefunden_bool
{
- \int_compare:nT {\l_phone_nummerlaenge_int >= ##1}
+ \int_compare:nT { \l_phone_nummerlaenge_int >= ##1 }
{
- \str_set:Nx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1}}
-
+ \str_set:Nx \l_tmpa_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1} }
+
\clist_if_in:NVT \c_phone_FR_vorwahlen_clist \l_tmpa_str
{
\bool_set_true:N \l_phone_vorwahl_gefunden_bool
-
- \phone_FR_vorwahl_schreiben:V \l_tmpa_str
-
- \str_set:Nx \l_tmpb_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1}}
- \phone_gruppierte_ziffernfolge_schreiben:V \l_tmpb_str
- \str_put_right:NV \l_phone_linktext_str \l_tmpb_str
+ \str_set:Nx \l_phone_rufnummer_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1} }
+ \phone_FR_vorwahl_schreiben:VV \l_tmpa_str \l_phone_rufnummer_str
+ \phone_von_hinten_gruppiert_schreiben:V \l_phone_rufnummer_str
+ \str_put_right:NV \l_phone_linktext_str \l_phone_rufnummer_str
}
}
}
}
-
+
\bool_if:NF \l_phone_vorwahl_gefunden_bool
{
\msg_warning:nn {phonenumbers} {invalid area code}
@@ -1727,13 +1871,13 @@
\msg_new:nnn {phonenumbers} {UK/national dialling required}
{
British~subscriber~number~starting~with~0~or~1~requires~an~area~code~\msg_line_context:
- }
+ }
% #1: Vorwahl, #2: Folgt eine Rufnummer?
-\cs_new:Npn \phone_UK_vorwahl_schreiben:nn #1 #2
+\cs_new_protected:Npn \phone_UK_vorwahl_schreiben:nn #1 #2
{
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off}} {\str_if_eq_p:Vn \l_phone_heimatland_str {UK}}
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:Vn \l_phone_heimatland_str {UK} }
{
\clist_if_in:NnT \c_phone_UK_sondervorwahlen_clist {#1}
{
@@ -1743,7 +1887,7 @@
}
}
- \bool_lazy_and:nnF {\str_if_eq_p:Vn \l_phone_heimatland_str {UK}} {\str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1}}
+ \bool_lazy_and:nnF { \str_if_eq_p:Vn \l_phone_heimatland_str {UK} } { \str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1} }
{
\str_case:Vn \l_phone_vorwahldarstellung_str
{
@@ -1773,7 +1917,7 @@
{
\tl_put_right:Nn \l_phone_ausgabetext_tl {(}
}
-
+
\tl_if_exist:cTF {c_phone_UK_ortsname_#1_tl}
{
\tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_UK_ortsname_#1_tl}
@@ -1781,7 +1925,7 @@
{
\phone_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
}
-
+
\str_if_eq:VnF \l_phone_vorwahltrennung_str {space}
{
\tl_put_right:Nn \l_phone_ausgabetext_tl {)}
@@ -1806,7 +1950,7 @@
\tl_put_right:Nv \l_phone_ausgabetext_tl {c_phone_UK_ortsname_#1_tl}
\tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
}
-
+
\str_if_eq:VnTF \l_phone_vorwahltrennung_str {space}
{
\phone_gruppierte_vorwahl_schreiben:nN {#1} \c_true_bool
@@ -1846,7 +1990,7 @@
\bool_if:nT {#2}
{
\str_put_right:Nn \l_phone_linktext_str {+44}
- \str_put_right:Nx \l_phone_linktext_str {\str_tail:n {#1}}
+ \str_put_right:Nx \l_phone_linktext_str { \str_tail:n {#1} }
}
}
@@ -1854,7 +1998,7 @@
% #1: Vorwahl, #2: Teilnehmerrufnummer
-\cs_new:Npn \phone_UK_teilnehmerrufnummer_schreiben:Nn #1 #2
+\cs_new_protected:Npn \phone_UK_teilnehmerrufnummer_schreiben:Nn #1 #2
{
% Überprüfen der Nummernlänge
\str_if_empty:NTF #1
@@ -1863,7 +2007,7 @@
\phone_nummernlaenge_ueberpruefen:nnnn {#2} {4} {8} {landline}
% Nummern, die mit 0 oder 1 beginnen, erfordern das Wählen der Vorwahl
- \str_case:xnT {\str_head:n {#2}}
+ \str_case:xnT { \str_head:n {#2} }
{
{0} { }
{1} { }
@@ -1877,7 +2021,7 @@
{
% Festnetznummer, muss in der Regel 11 Ziffern umfassen
% Ausnahme: Bei den Vorwahlen 01XXX und 016977 sind auch 10 Ziffern möglich.
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn #1 {016977}} {\int_compare_p:nNn {\str_count:N #1} = {5}}
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn #1 {016977} } { \int_compare_p:nNn { \str_count:N #1 } = {5} }
{
\phone_nummernlaenge_ueberpruefen:onnn {#1#2} {10} {11} {landline}
}
@@ -1887,7 +2031,7 @@
}
{
% Mobilfunk-/Sondernummer
- \str_if_eq:xnTF {\str_range:Nnn #1 {1} {4}} {0800}
+ \str_if_eq:xnTF { \str_range:Nnn #1 {1} {4} } {0800}
{
% 0800er-Nummern haben 10 oder 11 Ziffern; Ausnahme: 0800 1111
\str_if_eq:nnTF {#2} {1111}
@@ -1917,12 +2061,12 @@
\bool_if:NTF \l_phone_teilnehmerrufnummer_gueltig_bool
{
- \int_compare:nNnTF {\str_count:n {#2}} > {6}
+ \int_compare:nNnTF { \str_count:n {#2} } > {6}
{
% Nummern mit mehr als 6 Ziffern werden in Vierergruppen gegliedert
- \str_put_right:Nx \l_phone_ausgabetext_tl {\str_range:nnn {#2} {1} {-5}}
+ \str_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#2} {1} {-5} }
\tl_put_right:Nn \l_phone_ausgabetext_tl {\,}
- \str_put_right:Nx \l_phone_ausgabetext_tl {\str_range:nnn {#2} {-4} {-1}}
+ \str_put_right:Nx \l_phone_ausgabetext_tl { \str_range:nnn {#2} {-4} {-1} }
}
{
\str_put_right:Nn \l_phone_ausgabetext_tl {#2}
@@ -1938,9 +2082,9 @@
\cs_new_protected:Npn \phone_UK_nummer_schreiben:
{
- \int_set:Nn \l_phone_nummerlaenge_int {\str_count:N \l_phone_bereinigte_nummer_str}
+ \int_set:Nn \l_phone_nummerlaenge_int { \str_count:N \l_phone_bereinigte_nummer_str }
- \str_if_eq:xnTF {\str_head:N \l_phone_bereinigte_nummer_str} {0}
+ \str_if_eq:xnTF { \str_head:N \l_phone_bereinigte_nummer_str } {0}
{
\bool_set_false:N \l_phone_vorwahl_gefunden_bool
@@ -1948,22 +2092,22 @@
{
\bool_if:NF \l_phone_vorwahl_gefunden_bool
{
- \int_compare:nT {\l_phone_nummerlaenge_int >= ##1}
+ \int_compare:nT { \l_phone_nummerlaenge_int >= ##1 }
{
- \str_set:Nx \l_phone_vorwahl_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1}}
+ \str_set:Nx \l_phone_vorwahl_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1} }
\clist_if_in:NVT \c_phone_UK_vorwahlen_clist \l_phone_vorwahl_str
{
\bool_set_true:N \l_phone_vorwahl_gefunden_bool
- \phone_UK_vorwahl_schreiben:Vx \l_phone_vorwahl_str {\int_compare_p:nNn {##1} < {\l_phone_nummerlaenge_int}}
-
+ \phone_UK_vorwahl_schreiben:Vx \l_phone_vorwahl_str { \int_compare_p:nNn {##1} < {\l_phone_nummerlaenge_int} }
+
\int_compare:nNnTF {##1} = {\l_phone_nummerlaenge_int}
{
\msg_warning:nn {phonenumbers} {missing subscriber number}
}
{
- \phone_UK_teilnehmerrufnummer_schreiben:Nx \l_phone_vorwahl_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1}}
+ \phone_UK_teilnehmerrufnummer_schreiben:Nx \l_phone_vorwahl_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1} }
}
}
}
@@ -2025,11 +2169,11 @@
% #1: Vorwahl, #2: Folgt eine Rufnummer?
-\cs_new:Npn \phone_US_vorwahl_schreiben:nN #1 #2
+\cs_new_protected:Npn \phone_US_vorwahl_schreiben:nN #1 #2
{
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off}} {\str_if_eq_p:Vn \l_phone_heimatland_str {US}}
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:Vn \l_phone_heimatland_str {US} }
{
- \bool_lazy_and:nnF {\str_if_eq_p:Vn \l_phone_heimatland_str {US}} {\str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1}}
+ \bool_lazy_and:nnF { \str_if_eq_p:Vn \l_phone_heimatland_str {US} } { \str_if_eq_p:Vn \l_phone_heimatvorwahl_str {#1} }
{
\bool_if:NTF \l_phone_US_ferngespraechspraefix_bool
{
@@ -2145,7 +2289,7 @@
\tl_use:c {c_phone_US_ortsname_#1_tl}
\c_space_tl
}
-
+
\bool_if:NTF #2
{
\str_case:VnF \l_phone_vorwahltrennung_str
@@ -2202,9 +2346,9 @@
% #1: Ortsvorwahl, #2: Vermittlungsstellennummer
-\cs_new:Npn \phone_US_vermittlungsstellennummer_schreiben:nn #1 #2
+\cs_new_protected:Npn \phone_US_vermittlungsstellennummer_schreiben:nn #1 #2
{
- \str_case:xnTF {\str_head:n {#2}}
+ \str_case:xnTF { \str_head:n {#2} }
{
{0} { }
{1} { }
@@ -2228,7 +2372,7 @@
\bool_if:NTF \l_tmpa_bool
{
- \str_if_eq:xnT {\str_range:nnn {#2} {2} {3}} {11}
+ \str_if_eq:xnT { \str_range:nnn {#2} {2} {3} } {11}
{
\msg_warning:nnn {phonenumbers} {US/invalid central office code} {#2}
}
@@ -2243,7 +2387,7 @@
\tl_put_right:Nn \l_phone_ausgabetext_tl {#2}
- \bool_lazy_or:nnTF {\str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off}} {\str_if_eq_p:Vn \l_phone_heimatland_str {US}}
+ \bool_lazy_or:nnTF { \str_if_eq_p:Vn \l_phone_auslandsvorwahltyp_str {off} } { \str_if_eq_p:Vn \l_phone_heimatland_str {US} }
{
\tl_put_right:NV \l_phone_ausgabetext_tl \c_phone_bindestrich_tl
}
@@ -2267,9 +2411,9 @@
\cs_generate_variant:Nn \phone_US_vermittlungsstellennummer_schreiben:nn {Vx}
-\cs_new:Npn \phone_US_nummer_schreiben:
+\cs_new_protected:Npn \phone_US_nummer_schreiben:
{
- \int_case:nnF {\str_count:N \l_phone_bereinigte_nummer_str}
+ \int_case:nnF { \str_count:N \l_phone_bereinigte_nummer_str }
{
{3}
{
@@ -2285,13 +2429,13 @@
}
{7}
{
- \phone_US_vermittlungsstellennummer_schreiben:Vx \c_empty_tl {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3}}
+ \phone_US_vermittlungsstellennummer_schreiben:Vx \c_empty_tl { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3} }
- \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {7}}
+ \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:Nnn \l_phone_bereinigte_nummer_str {4} {7} }
}
{10}
{
- \str_set:Nx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3}}
+ \str_set:Nx \l_tmpa_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {3} }
\clist_if_in:NVF \c_phone_US_vorwahlen_clist \l_tmpa_str
{
@@ -2300,14 +2444,14 @@
\phone_US_vorwahl_schreiben:VN \l_tmpa_str \c_true_bool
- \phone_US_vermittlungsstellennummer_schreiben:Vx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {4} {6}}
+ \phone_US_vermittlungsstellennummer_schreiben:Vx \l_tmpa_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {4} {6} }
- \tl_put_right:Nx \l_phone_ausgabetext_tl {\str_range:Nnn \l_phone_bereinigte_nummer_str {7} {10}}
- \str_put_right:Nx \l_phone_linktext_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {7} {10}}
+ \tl_put_right:Nx \l_phone_ausgabetext_tl { \str_range:Nnn \l_phone_bereinigte_nummer_str {7} {10} }
+ \str_put_right:Nx \l_phone_linktext_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {7} {10} }
}
}
{
- \int_compare:nNnTF {\str_count:N \l_phone_bereinigte_nummer_str} < {10}
+ \int_compare:nNnTF { \str_count:N \l_phone_bereinigte_nummer_str } < {10}
{
\msg_warning:nnnn {phonenumbers} {number too short} {phone} {10}
}
@@ -2322,9 +2466,9 @@
%%%%%%%%%%%%%%%%%%%% SONSTIGE LÄNDER %%%%%%%%%%%%%%%%%%%%
-\cs_new:Npn \phone_SONST_nummer_schreiben:
+\cs_new_protected:Npn \phone_SONST_nummer_schreiben:
{
- \int_set:Nn \l_phone_nummerlaenge_int {\str_count:N \l_phone_bereinigte_nummer_str}
+ \int_set:Nn \l_phone_nummerlaenge_int { \str_count:N \l_phone_bereinigte_nummer_str }
\bool_set_false:N \l_phone_vorwahl_gefunden_bool
@@ -2332,10 +2476,10 @@
{
\bool_if:NF \l_phone_vorwahl_gefunden_bool
{
- \int_compare:nT {\l_phone_nummerlaenge_int >= ##1}
+ \int_compare:nT { \l_phone_nummerlaenge_int >= ##1 }
{
- \str_set:Nx \l_tmpa_str {\str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1}}
-
+ \str_set:Nx \l_tmpa_str { \str_range:Nnn \l_phone_bereinigte_nummer_str {1} {##1} }
+
\clist_if_in:NVT \c_phone_landeskennzahlen_clist \l_tmpa_str
{
\bool_set_true:N \l_phone_vorwahl_gefunden_bool
@@ -2348,7 +2492,7 @@
}
{
\tl_put_right:NV \l_phone_ausgabetext_tl \c_space_tl
- \phone_gruppierte_ziffernfolge_schreiben:x {\str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1}}
+ \phone_von_hinten_gruppiert_schreiben:x { \str_range:Nnn \l_phone_bereinigte_nummer_str {##1 + 1} {-1} }
\str_put_right:Nn \l_phone_linktext_str {+}
\str_put_right:NV \l_phone_linktext_str \l_phone_bereinigte_nummer_str