summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-05-02 03:03:34 +0000
committerNorbert Preining <norbert@preining.info>2020-05-02 03:03:34 +0000
commit8626a9c3cb5dc8d02d779d5b5b1e3933d5626f43 (patch)
tree3cf05fd2ad850b994dafdcf497738d48a29634ca /macros
parent7039906aa6676b98933cd099d1cb038f1644c18f (diff)
CTAN sync 202005020303
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/hep-paper/bibliography.bib304
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper.dtx898
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper.ins5
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper.pdfbin535697 -> 525662 bytes
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx186
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin2701656 -> 2703938 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua2
-rw-r--r--macros/latex/contrib/univie-ling/README7
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx16
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx14
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdfbin443486 -> 443458 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex3
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdfbin438229 -> 438208 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex3
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdfbin441848 -> 441864 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex3
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdfbin329483 -> 329512 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex11
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls2
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls2
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls2
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls10
-rw-r--r--macros/latex/contrib/xcjk2uni/README.md6
-rw-r--r--macros/latex/contrib/xcjk2uni/xCJK2uni.dtx364
-rw-r--r--macros/latex/contrib/xcjk2uni/xCJK2uni.ins139
-rw-r--r--macros/latex/contrib/xcjk2uni/xCJK2uni.pdfbin129732 -> 126153 bytes
-rw-r--r--macros/latex/contrib/xpinyin/README.md4
-rw-r--r--macros/latex/contrib/xpinyin/xpinyin.dtx116
-rw-r--r--macros/latex/contrib/xpinyin/xpinyin.ins132
-rw-r--r--macros/latex/contrib/xpinyin/xpinyin.pdfbin207276 -> 207176 bytes
-rw-r--r--macros/latex/contrib/zhnumber/README.md4
-rw-r--r--macros/latex/contrib/zhnumber/zhnumber.dtx68
-rw-r--r--macros/latex/contrib/zhnumber/zhnumber.ins89
-rw-r--r--macros/latex/contrib/zhnumber/zhnumber.pdfbin270690 -> 271657 bytes
-rw-r--r--macros/xetex/latex/xecjk/README.md2
-rw-r--r--macros/xetex/latex/xecjk/teckit-mapping/full-stop.map9
-rw-r--r--macros/xetex/latex/xecjk/teckit-mapping/fullwidth-stop.map9
-rw-r--r--macros/xetex/latex/xecjk/teckit-mapping/han-simp.map3073
-rw-r--r--macros/xetex/latex/xecjk/teckit-mapping/han-trad.map3042
-rw-r--r--macros/xetex/latex/xecjk/xeCJK.dtx1139
-rw-r--r--macros/xetex/latex/xecjk/xeCJK.pdfbin1279166 -> 1280364 bytes
-rw-r--r--macros/xetex/latex/xecjk/xunicode-symbols.pdfbin292983 -> 292884 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/README.txt37
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdfbin0 -> 91744 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex (renamed from macros/xetex/latex/xepersian-hm/kashida-example.tex)47
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf (renamed from macros/xetex/latex/xepersian-hm/kashida-example.pdf)bin81523 -> 90703 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex109
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx160
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdfbin0 -> 46065 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm.dtx228
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm.ins8
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm.pdfbin75419 -> 55345 bytes
53 files changed, 2297 insertions, 7958 deletions
diff --git a/macros/latex/contrib/hep-paper/bibliography.bib b/macros/latex/contrib/hep-paper/bibliography.bib
index 5b295b1c37..d63b733947 100644
--- a/macros/latex/contrib/hep-paper/bibliography.bib
+++ b/macros/latex/contrib/hep-paper/bibliography.bib
@@ -1,4 +1,4 @@
-@manual{hep-paper,
+@article{hep-paper,
title = "The |hep-paper| package",
subtitle = "Publications in High Energy Physics",
author = "Jan Hajer",
@@ -15,18 +15,34 @@ eprintclass = "janhajer",
eprint = "hep-paper",
}
-@manual{cleveref,
+@article{kvoptions,
+title = "The |kvoptions| package",
+subtitle = "Key value format for package options",
+author = "Heiko Oberdiek",
+year = "2004",
+eprinttype = "ctan",
+eprint = "kvoptions",
+related = "kvoptions-1",
+}
+
+@manual{kvoptions-1,
+eprinttype = "github",
+eprintclass = "ho-tex",
+eprint = "kvoptions",
+}
+
+@article{cleveref,
title = "The |cleveref| package",
subtitle = "Intelligent cross-referencing",
author = "Toby Cubitt",
date = "2006",
-url = "http://www.dr-qubit.org/cleveref.html",
+url = "http://dr-qubit.org/cleveref",
eprinttype = "ctan",
eprint = "cleveref",
}
-@manual{foreign,
-title = "The |foreign| package for \LaTeX2e",
+@article{foreign,
+title = "The |foreign| package for \hologo{LaTeX2e}",
subtitle = "Systematic treatment of \enquote{foreign} words in documents",
author = "Philip G. Ratcliffe",
date = "2012",
@@ -34,7 +50,7 @@ eprinttype = "ctan",
eprint = "foreign",
}
-@manual{geometry,
+@article{geometry,
title = "The |geometry| package",
subtitle = "Flexible and complete interface to document dimensions",
author = "David Carlisle and Hideo Umeki",
@@ -50,7 +66,7 @@ eprintclass = "davidcarlisle",
eprint = "geometry",
}
-@manual{a4wide,
+@article{a4wide,
title = "The |a4wide| package",
subtitle = "\enquote{Wide} a4 layout",
author = "Alexander Holt and Jean-François Lamy",
@@ -60,7 +76,7 @@ eprint = "a4wide",
note = "depreciated and not used",
}
-@manual{microtype,
+@article{microtype,
title = "The |microtype| package",
subtitle = "Subliminal refinements towards typographical perfection",
author = "Robert Schlicht",
@@ -69,8 +85,8 @@ eprinttype = "ctan",
eprint = "microtype",
}
-@manual{authblk,
-title = "A \LaTeX\ Package to Prepare Author and Affiliation Blocks",
+@article{authblk,
+title = "A \hologo{LaTeX} Package to Prepare Author and Affiliation Blocks",
subtitle = "Support for footnote style author/affiliation",
author = "Patrick W. Daly",
date = "2001",
@@ -78,24 +94,24 @@ eprinttype = "ctan",
eprint = "authblk",
}
-@manual{bm,
+@article{bm,
title = "The |bm| package",
subtitle = "Access bold symbols in maths mode",
author = "David Carlisle and Frank Mittelbach",
-collaboration = "\LaTeX\ Team",
+collaboration = "\hologo{LaTeX} Team",
date = "1993",
eprinttype = "ctan",
eprint = "bm",
}
-@manual{empheq,
+@article{empheq,
title = "The |empheq| package",
author = "Lars Madsen and Morten Høgholm and Will Robertson and Joseph Wright",
eprinttype = "ctan",
eprint = "empheq",
}
-@manual{mathtools,
+@article{mathtools,
title = "The |mathtools| package",
subtitle = "Mathematical tools to use with |amsmath|",
author = "Lars Madsen and Morten Høgholm and Will Robertson and Joseph Wright",
@@ -104,29 +120,29 @@ eprinttype = "ctan",
eprint = "mathtools",
}
-@manual{amsmath,
+@article{amsmath,
title = "The |amsmath| package",
-subtitle = "AMS mathematical facilities for \LaTeX",
-author = "\LaTeX",
-collaboration = "\LaTeX\ Team",
+subtitle = "AMS mathematical facilities for \hologo{LaTeX}",
+author = "\hologo{LaTeX}",
+collaboration = "\hologo{LaTeX} Team",
date = "1994",
-url = "http://www.ams.org/tex/amslatex.html",
+url = "https://ams.org/tex/amslatex",
eprinttype = "ctan",
eprint = "amsmath",
}
-@manual{amsfonts,
+@article{amsfonts,
title = "The |amsfonts| package",
-subtitle = "\TeX\ fonts from the American Mathematical Society",
+subtitle = "\hologo{TeX} fonts from the American Mathematical Society",
author = "Michael Downes and David M. Jones and Frank Mittelbach and Rainer Schöpf",
collaboration = "American Mathematical Society",
date = "1995",
-url = "http://www.ams.org/tex/amsfonts.html",
+url = "https://ams.org/tex/amsfonts",
eprinttype = "ctan",
eprint = "amsfonts",
}
-@manual{amssymb,
+@article{amssymb,
title = "The |amssymb| package",
author = "Michael Downes and David M. Jones and Frank Mittelbach and Rainer Schöpf",
collaboration = "American Mathematical Society",
@@ -135,7 +151,7 @@ eprinttype = "ctan",
eprint = "amsfonts",
}
-@manual{slashed,
+@article{slashed,
title = "The |slashed| package",
subtitle = "Put a slash through characters",
author = "David Carlisle",
@@ -144,7 +160,7 @@ eprinttype = "ctan",
eprint = "slashed",
}
-@manual{physics,
+@article{physics,
title = "The |physics| package",
subtitle = "Macros supporting the Mathematics of Physics",
author = "Sergio C. de la Barrera",
@@ -153,7 +169,7 @@ eprinttype = "ctan",
eprint = "physics",
}
-@manual{units,
+@article{units,
title = "The |units| and |nicefrac| packages",
subtitle = "Typeset units",
author = "Axel Reichert",
@@ -162,16 +178,17 @@ eprinttype = "ctan",
eprint = "units",
}
-@manual{subcaption,
+@article{subcaption,
title = "The |subcaption| package",
subtitle = "Support for sub-captions",
author = "Axel Sommerfeldt",
date = "2007",
eprinttype = "ctan",
eprint = "subcaption",
+related = "caption-1",
}
-@manual{caption,
+@article{caption,
title = "The |caption| package",
subtitle = "Customising captions in floating environments",
author = "Axel Sommerfeldt",
@@ -188,9 +205,9 @@ eprint = "caption",
}
-@manual{biblatex,
+@article{biblatex,
title = "The |biblatex| Package",
-subtitle = "Sophisticated Bibliographies in \LaTeX",
+subtitle = "Sophisticated Bibliographies in \hologo{LaTeX}",
author = "Philipp Lehman and Joseph Wright and Audrey Boruvka and Philip Kime",
date = "2006",
eprinttype = "ctan",
@@ -204,11 +221,11 @@ eprintclass = "plk",
eprint = "biblatex",
}
-@manual{hyperref,
-title = "Hypertext marks in \LaTeX: a manual for |hyperref|",
-subtitle = "Extensive support for hypertext in \LaTeX",
+@article{hyperref,
+title = "Hypertext marks in \hologo{LaTeX}: a manual for |hyperref|",
+subtitle = "Extensive support for hypertext in \hologo{LaTeX}",
author = "Sebastian Rahtz and Heiko Oberdiek",
-collaboration = "\LaTeX3 Project",
+collaboration = "\hologo{LaTeX3} Project",
date = "1995",
eprinttype = "ctan",
eprint = "hyperref",
@@ -221,7 +238,7 @@ eprintclass = "latex3",
eprint = "hyperref",
}
-@manual{graphicx,
+@article{graphicx,
title = "Packages in the \enquote{graphics} bundle",
subtitle = "Enhanced support for graphics",
author = "David Carlisle and Sebastian Rahtz",
@@ -230,16 +247,16 @@ eprinttype = "ctan",
eprint = "graphicx",
}
-@manual{booktabs,
+@article{booktabs,
title = "The |booktabs| package",
-subtitle = "Publication quality tables in \LaTeX",
+subtitle = "Publication quality tables in \hologo{LaTeX}",
author = "Danie Els and Simon Fear",
date = "1995",
eprinttype = "ctan",
eprint = "booktabs",
}
-@manual{multirow,
+@article{multirow,
title = "The |multirow|, |bigstrut| and |bigdelim| packages",
subtitle = "Create tabular cells spanning multiple rows",
author = "Piet van Oostrum and Jerry Leichter",
@@ -248,8 +265,8 @@ eprinttype = "ctan",
eprint = "multirow",
}
-@manual{fixmath,
-title = "The |fixmath| package for \LaTeX2\epsilon",
+@article{fixmath,
+title = "The |fixmath| package for \hologo{LaTeX2e}",
subtitle = "Make maths comply with ISO 31-0:1992 to ISO 31-13:1992",
author = "Walter Schmidt",
date = "2000",
@@ -257,7 +274,7 @@ eprinttype = "ctan",
eprint = "fixmath",
}
-@manual{alphabeta,
+@article{alphabeta,
title = "The |alphabeta| package",
subtitle = "LICR macros and encoding definition files for Greek",
author = "Günter Milde",
@@ -266,17 +283,21 @@ eprinttype = "ctan",
eprint = "greek-fontenc",
}
-@manual{arxiv-collector,
-title = "arxiv-collector",
+@article{arxiv-collector,
+title = "|arxiv-collector|",
+subtitle = "A little Python script to collect \hologo{LaTeX} sources for upload to the arXiv",
author = "Dougal Sutherland",
+date = "2018",
eprinttype = "github",
eprintclass = "dougalsutherland",
eprint = "arxiv-collector",
}
-@manual{biber,
-title = "biber",
+@article{biber,
+title = "\hologo{biber}",
+subtitle = "Backend processor for Bib\hologo{LaTeX}",
author = "François Charette and Philip Kime",
+date = "2009",
eprinttype = "github",
eprintclass = "plk",
eprint = "biber",
@@ -288,30 +309,30 @@ eprinttype = "sourceforge",
eprint = "biblatex-biber",
}
-@manual{lmodern,
+@article{lmodern,
title = "Latin Modern Family of Fonts",
subtitle = "Latin modern fonts in outline formats",
date = "2003",
author = "B. Jackowski and J.M. Nowacki",
-url = "http://www.gust.org.pl/projects/e-foundry/latin-modern",
+url = "http://gust.org.pl/projects/e-foundry/latin-modern",
eprinttype = "ctan",
eprint = "lm",
}
-@manual{ifluatex,
+@article{ifluatex,
title = "The |ifluatex| package",
subtitle = "Provides the |\textbackslash ifluatex| switch",
author = "Heiko Oberdiek",
-collaboration = "\LaTeX\ Team",
+collaboration = "\hologo{LaTeX} Team",
date = "2007",
eprinttype = "ctan",
eprint = "ifluatex",
}
-@manual{ifxetex,
+@article{ifxetex,
title = "The |iftex| package",
-subtitle = "Am I running under XeTeX?",
-collaboration = "\LaTeX\ Team",
+subtitle = "Am I running under \hologo{XeTeX}?",
+collaboration = "\hologo{LaTeX} Team",
author = "Will Robertson",
date = "2006",
eprinttype = "ctan",
@@ -325,47 +346,49 @@ eprintclass = "latex3",
eprint = "iftex",
}
-@manual{fontspec,
+@article{fontspec,
title = "The |fontspec| package",
author = "Will Robertson and Khaled Hosny",
eprinttype = "ctan",
eprint = "fontspec",
}
-@manual{fontenc,
+@article{fontenc,
title = "The |fontenc| package",
subtitle = "Standard package for selecting font encodings",
-collaboration = "\LaTeX\ Team",
-author = "\LaTeX\ Team",
+collaboration = "\hologo{LaTeX} Team",
+author = "Frank Mittelbach and Robin Fairbairns and Werner Lemberg",
+date = "1995",
eprinttype = "ctan",
eprint = "fontenc",
}
-@manual{inputenc,
+@article{inputenc,
title = "The |inputenc| package",
subtitle = "Accept different input encodings",
-collaboration = "\LaTeX\ Team",
+collaboration = "\hologo{LaTeX} Team",
author = "Frank Mittelbach and Alan Jeffrey",
+date = "1989",
eprinttype = "ctan",
eprint = "inputenc",
}
-@manual{textcomp,
+@article{textcomp,
title = "The |textcomp| package",
-subtitle = "\LaTeX\ support for the Text Companion fonts",
-collaboration = "\LaTeX\ Team",
+subtitle = "\hologo{LaTeX} support for the Text Companion fonts",
+collaboration = "\hologo{LaTeX} Team",
author = "Sebastian Rahtz",
date = "1995",
eprinttype = "ctan",
eprint = "textcomp",
}
-@manual{enumitem,
+@article{enumitem,
title = "Customizing lists with the |enumitem| package",
subtitle = "Control layout of itemize, enumerate, description",
author = "Javier Bezos",
date = "2003",
-url = " http://www.texnia.com/enumitem.html",
+url = "https://texnia.com/enumitem.html",
eprinttype = "ctan",
eprint = "enumitem",
related = "enumitem-1",
@@ -377,7 +400,7 @@ eprintclass = "jbezos",
eprint = "enumitem",
}
-@manual{atbegshi,
+@article{atbegshi,
title = "The |atbegshi| package",
subtitle = "Execute stuff at |shipout| time",
author = "Heiko Oberdiek",
@@ -393,7 +416,7 @@ eprintclass = "ho-tex",
eprint = "atbegshi",
}
-@manual{picture,
+@article{picture,
title = "The |picture| package",
subtitle = "Dimens for picture macros",
author = "Heiko Oberdiek",
@@ -409,7 +432,7 @@ eprintclass = "ho-tex",
eprint = "picture",
}
-@manual{varwidth,
+@article{varwidth,
title = "The |varwidth| package",
subtitle = "A variable-width minipage",
author = "Donald Arseneau",
@@ -418,7 +441,7 @@ eprinttype = "ctan",
eprint = "varwidth",
}
-@manual{csquotes,
+@article{csquotes,
title = "The |csquotes| Package",
subtitle = "Context sensitive quotation facilities",
author = "Philipp Lehman and Joseph Wright",
@@ -427,9 +450,9 @@ eprinttype = "ctan",
eprint = "csquotes",
}
-@manual{babel,
+@article{babel,
title = "|Babel| Localization and internationalization",
-subtitle = "Multilingual support for Plain \TeX\ or \LaTeX",
+subtitle = "Multilingual support for Plain \hologo{TeX} or \hologo{LaTeX}",
author = "Johannes Braams and Javier Bezos and at al.",
date = "1989",
eprinttype = "ctan",
@@ -443,14 +466,14 @@ eprintclass = "latex3",
eprint = "babel",
}
-@manual{polyglossia,
+@article{polyglossia,
title = "The |polyglossia| package",
author = "Arthur Reutenauer and François Charette and Elie Roux and Bastien Roucariès and Jürgen Spitzmüller",
eprinttype = "ctan",
eprint = "polyglossia",
}
-@manual{parskip,
+@article{parskip,
title = "The |parskip| package",
subtitle = "Layout with zero |\textbackslash parindent|, non-zero |\textbackslash parskip|",
author = "Robin Fairbairns and Frank Mittelbach and H. Partl",
@@ -467,24 +490,24 @@ eprint = "fmitex",
}
-@manual{fntguide,
-title = "\LaTeX2\epsilon\ font selection",
-subtitle = "Docmentation of \LaTeX\ font commands",
-collaboration = "\LaTeX\ Team",
-author = "\LaTeX\ Team",
+@article{fntguide,
+title = "\hologo{LaTeX2e}\ font selection",
+subtitle = "Docmentation of \hologo{LaTeX} font commands",
+collaboration = "\hologo{LaTeX} Team",
+author = "\hologo{LaTeX} Team",
date = "1995",
eprinttype = "ctan",
eprint = "fntguide",
}
-@manual{euenc,
+@article{euenc,
title = "The Experimental Unicode `EUx’ Encodings",
author = "Will Robertson and Elie Roux and Khaled Hosny",
eprinttype = "ctan",
eprint = "euenc",
}
-@manual{soul,
+@article{soul,
title = "The |soul| package",
subtitle = "Hyphenation for letterspacing, underlining, and more",
author = "Melchior Franz",
@@ -493,7 +516,7 @@ eprinttype = "ctan",
eprint = "soul",
}
-@manual{glossaries,
+@article{glossaries,
title = "The |glossaries| package",
subtitle = "Create glossaries and lists of acronyms",
author = "Nicola Talbot",
@@ -502,7 +525,7 @@ eprinttype = "ctan",
eprint = "glossaries",
}
-@manual{glossaries-extra,
+@article{glossaries-extra,
title = "The |glossaries-extra| package",
subtitle = "An extension to the |glossaries| package",
author = "Dickimaw Books, Nicola Talbot",
@@ -511,34 +534,34 @@ eprinttype = "ctan",
eprint = "glossaries-extra",
}
-@manual{xparse,
+@article{xparse,
title = "The |xparse| package",
subtitle = "A generic document command parser",
author = "Frank Mittelbach and Chris Rowley and David Carlisle",
-collaboration = "\LaTeX3 Project",
+collaboration = "\hologo{LaTeX3} Project",
date = "1999",
eprinttype = "ctan",
eprint = "xparse",
}
-@manual{pdftexcmds,
+@article{pdftexcmds,
title = "The |pdftexcmds| package",
-subtitle = "LuaTeX support for pdfTeX utility functions",
+subtitle = "\hologo{LuaTeX} support for \hologo{pdfTeX} utility functions",
author = "Heiko Oberdiek",
date = "2007",
eprinttype = "ctan",
eprint = "pdftexcmds",
}
-@manual{fix-cm,
+@article{fix-cm,
title = "The |fix-cm| package",
author = "Frank Mittelbach and David Carlisle and Chris Rowley and Walter Schmidt",
eprinttype = "ctan",
eprint = "fix-cm",
}
-@manual{revtex,
-title = "The |revtex| package",
+@article{revtex,
+title = "The REV\hologo{TeX} package",
subtitle = "Styles for various Physics Journals",
author = "Mark Doyle and Arthur Ogawa",
collaboration = "American Physical Society",
@@ -548,27 +571,27 @@ eprinttype = "ctan",
eprint = "revtex",
}
-@manual{encguide,
-title = "\LaTeX\ font encodings",
-subtitle = "Documentation of \LaTeX\ font encodings",
+@article{encguide,
+title = "\hologo{LaTeX} font encodings",
+subtitle = "Documentation of \hologo{LaTeX} font encodings",
author = "Frank Mittelbach and Robin Fairbairns and Werner Lemberg",
-collaboration = "\LaTeX3 Project Team",
+collaboration = "\hologo{LaTeX3} Project Team",
date = "1995",
eprinttype = "ctan",
eprint = "encguide",
}
-@manual{sfmath,
+@article{sfmath,
title = "The |sfmath| package",
subtitle = "Sans-serif mathematics",
author = "Olaf Dietrich",
date = "2005",
-url = "http://dtrx.de/od/tex/sfmath.html",
+url = "https://dtrx.de/od/tex/sfmath",
eprinttype = "ctan",
eprint = "sfmath",
}
-@manual{relsize,
+@article{relsize,
title = "The |relsize| package",
subtitle = "Set the font size relative to the current font size",
author = "Donald Arseneau and Matt Swift",
@@ -577,12 +600,101 @@ eprinttype = "ctan",
eprint = "relsize",
}
-@manual{everyhook,
+@article{everyhook,
title = "The |everyhook| package",
-subtitle = "Hooks for standard \TeX\ token lists",
+subtitle = "Hooks for standard \hologo{TeX} token lists",
author = "Stephen Checkoway",
date = "2010",
eprinttype = "ctan",
eprint = "everyhook",
}
+
+@article{sansmathfonts,
+title = "The |sansmathfonts| package",
+subtitle = "Correct placement of accents in sans-serif maths",
+author = "Ariel Barton",
+date = "2013",
+eprinttype = "ctan",
+eprint = "sansmathfonts",
+}
+
+@article{xspace,
+title = "The |xspace| package",
+subtitle = "Define commands that appear not to eat spaces",
+author = "David Carlisle and Morten Høgholm",
+collaboration = "\hologo{LaTeX} Team",
+date = "1993",
+eprinttype = "ctan",
+eprint = "xspace",
+}
+
+@article{ragged2e,
+title = "The |ragged2e|-package",
+subtitle = "Alternative versions of \enquote{ragged}-type commands",
+author = "Martin Schröder",
+date = "1996",
+eprinttype = "ctan",
+eprint = "ragged2e",
+related = "ragged2e-1",
+}
+
+@manual{ragged2e-1,
+eprinttype = "gitlab",
+eprintclass = "hagenbuch",
+eprint = "ragged2e",
+}
+
+@article{url,
+title = "The |url| package",
+subtitle = "Verbatim with URL-sensitive line breaks",
+author = "Donald Arseneau",
+date = "1996",
+eprinttype = "ctan",
+eprint = "url",
+}
+
+@article{jhep,
+title = "The |JHEP| package",
+author = "SISSA Medialab",
+collaboration = "SISSA Medialab",
+date = "1997",
+url = "https://jhep.sissa.it/jhep/help/JHEP_TeXclass.jsp",
+}
+
+@article{jcap,
+title = "The |JCAP| package",
+author = "SISSA Medialab",
+collaboration = "SISSA Medialab",
+date = "2002",
+url = "https://jcap.sissa.it/jcap/help/JCAP_TeXclass.jsp",
+}
+
+@article{bbm-macros,
+title = "A package for using the |bbm| fonts in math environment",
+author = "Torsten Hilbrich",
+date = "1994",
+eprinttype = "ctan",
+eprint = "bbm-macros",
+related = "bbm"
+}
+
+@article{bbm,
+title = "|bbm|",
+subtitle = "\enquote{Blackboard-style} cm fonts",
+author = " Gilles Robert",
+date = "1993",
+eprinttype = "ctan",
+eprint = "bbm",
+}
+
+@online{arxiv,
+title = "arXiv",
+subtitle = "free distribution service and an open archive for scholarly articles",
+url = "https://arxiv.org",
+author = "Paul Ginsparg",
+collaboration = "arXiv Team",
+year = "1991",
+organization = "Cornell University",
+ReportNumber = "test",
+}
diff --git a/macros/latex/contrib/hep-paper/hep-paper.dtx b/macros/latex/contrib/hep-paper/hep-paper.dtx
index 9ba0f10dcd..5c9841bc6a 100644
--- a/macros/latex/contrib/hep-paper/hep-paper.dtx
+++ b/macros/latex/contrib/hep-paper/hep-paper.dtx
@@ -16,10 +16,13 @@
% \fi
%
% \iffalse
+%
%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-%<package>\ProvidesPackage{hep-paper}[2020/03/01 v1.2 Publications in High Energy Physics]
-
+%<package>\ProvidesPackage{hep-paper}[2020/05/01 v1.3 Publications in High Energy Physics]
+%<datamodel>\ProvidesFile{hep-paper.dbx}[2020/05/01 v1.3 HEP-Paper biblatex data model]
+%
%<*driver>
+
\documentclass{ltxdoc}
\MacroIndent=1.5em
@@ -39,26 +42,27 @@
% \vspace{2.3ex}\vskip -\parskip}
% \makeatother
-\newenvironment{example}[1][.5]{%
- \begin{minipage}[t]{\linewidth}%
- \begin{minipage}[t]{#1\linewidth}
- \newcommand{\second}{%
- \end{minipage}%
- \begin{minipage}[t]{\linewidth-#1\linewidth}%
- }%
-}{\end{minipage}\end{minipage}}
-
\usepackage[parskip]{hep-paper}
\bibliography{bibliography}
\acronym{PDF}{portable document format}
-\listfiles
+\usepackage{hologo}
+\usepackage{multicol}
\usepackage{titletoc}
\titlecontents{section}[0em]{\medskip\bfseries}{\thecontentslabel\hspace{.8em}}{}{\hfill\contentspage}
+\newenvironment{columns}[1][.5]{%
+ \begin{minipage}[t]{\linewidth}%
+ \begin{minipage}[t]{#1\linewidth}
+ \newcommand{\column}{%
+ \end{minipage}%
+ \begin{minipage}[t]{\linewidth-#1\linewidth}%
+ }%
+}{\end{minipage}\end{minipage}}
+
\EnableCrossrefs
\CodelineIndex
\RecordChanges
@@ -66,10 +70,12 @@
\begin{document}
\DocInput{hep-paper.dtx}
\end{document}
+
%</driver>
+%
% \fi
%
-% \CheckSum{0}
+% \CheckSum{1140}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -88,8 +94,9 @@
% Right brace \} Tilde \~}
%
% \changes{v1.0}{2019/01/01}{Initial version of the style file}
-% \changes{v1.1}{2020/01/01}{Transition to documented \LaTeX\ source file}
-% \changes{v1.2}{2020/03/01}{Inclusion of package options}
+% \changes{v1.1}{2020/01/01}{Transition to documented \hologo{LaTeX} source file}
+% \changes{v1.2}{2020/03/01}{Introduction of package options}
+% \changes{v1.3}{2020/05/01}{Inclusion of JHEP and JCAP package options, fix incompatibility with recent subcaption package version, move biblatex datamodel into its own file}
%
% \GetFileInfo{hep-paper.sty}
%
@@ -100,8 +107,7 @@
% \author{Jan Hajer \email{jan.hajer@uclouvain.be}}
% \affiliation{Centre for Cosmology, Particle Physics and Phenomenology, Université catholique de Louvain, Louvain-la-Neuve B-1348, Belgium}
% \preprint{Preprint-Number}
-% \date{\today}
-% \date{\normalsize\filedate}
+% \date{\normalfont\filedate}
%
% \maketitle
%
@@ -121,11 +127,11 @@
% | \documentclass{article}|\\
% | \usepackage{hep-paper}|
%
-% The most notable changes after loading the |hep-paper| package is the change of some \LaTeX\ defaults.
+% The most notable changes after loading the |hep-paper| package is the change of some \hologo{LaTeX} defaults.
% The paper and font sizes are set to A4 and \unit[11]{pt}, respectively.
% Additionally, the paper geometry is set to the values known from the (depreciated) |a4wide| package \cite{a4wide} using the |geometry| package \cite{geometry}.
-% Finally, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations.
-% \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}.
+% Furthermore, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations.
+% Finally, \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}.
%
% \subsection{Options}
%
@@ -153,26 +159,36 @@
%
% \DescribeMacro{parskip}
% The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other.
-% The \LaTeX\ default is separation via indentation the |parskip| option switches to separation via vertical space.
+% The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space.
% \footnote{The |parskip| option is used for this document.}
%
% \DescribeMacro{sansserif}
% The |sansserif| option switches the document including math to sans serif font shape.
%
% \DescribeMacro{title}
-% The |title=false| option deactivates the titlepage adjustments.
+% The |title=false| option deactivates the title page adjustments.
%
% \DescribeMacro{manualplacement}
% The |manualplacement| option reactivates manual float placement.
%
% \DescribeMacro{bibliography}
-% The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} for \meta{key}=|false| or passes the \meta{key} as |style| string to the |biblatex| package.
+% The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} if \meta{key}=|false|.
+% Otherwise the \meta{key} is passed as |style| string to the |biblatex| package.
%
% \DescribeMacro{glossaries}
-% The |glossaries=false| option deactives the use of the |glossaries| package \cite{glossaries, glossaries-extra}.
+% The |glossaries=false| option deactives the use of the |glossaries| package \cite{glossaries}.
+%
+% \DescribeMacro{jhep}
+% The |jhep| option activates the |JHEP| \cite{jhep} compatibility mode.
+%
+% \DescribeMacro{jcap}
+% The |jcap| option activates the |JCAP| \cite{jcap} compatibility mode.
%
% \DescribeMacro{revtex}
-% The |revtex| option switches the |hep-paper| package into a |revtex| \cite{revtex} compatibility mode.
+% The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode.
+%
+% \DescribeMacro{pos}
+% The |pos| option activates the |PoS| compatibility mode.
%
% \DescribeMacro{eqnarray}
% The |eqnarray| option reactivates the depreciated |eqnarray| environment.
@@ -181,7 +197,6 @@
%
% \subsection{Title page}
%
-% The \PDF meta information is set according to the |\title|\marg{text} and |\author|\marg{text} information.
% \DescribeMacro{\author}
% \DescribeMacro{\affiliation}
% \DescribeMacro{\email}
@@ -193,18 +208,21 @@
% | \author[2]{Author two \email{Email two}}|\\
% | \affiliation[1,2]{Affiliation two}|
%
+% \DescribeMacro{\title}
+% The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information.
+%
% \DescribeMacro{\preprint}
-% The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the first page.
+% The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page.
%
% \DescribeEnv{abstract}
-% The |abstract| environment has been adjusted to not start with an indentation.
+% The |abstract| environment is adjusted to not start with an indentation.
%
% \subsection{Text}
%
-% \DescribeMacro{\enquote}
% Hyphenation is provided by the |babel| package \cite{babel} and quotation commands are provided by the |csquotes| package \cite{csquotes} recommended by the |babel| package.
+% \DescribeMacro{\enquote}
% \DescribeMacro{\MakeOuterQuote}
-% The latter package provides the convenient macro |\MakeOuterQuote{"}| allowing to simply use |"| instead of the pair |``| and |''|.
+% The latter package provides the convenient macros |\enquote|\marg{text} and |\MakeOuterQuote{"}| allowing to leave the choice of quotation marks to \hologo{LaTeX} and use |"| instead of the pair |``| and |''|, respectively.
%
% \DescribeMacro{\eg}
% \DescribeMacro{\vs}
@@ -217,12 +235,12 @@
% The |\software|\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}.
%
% \DescribeMacro{\online}
-% The |\online|\marg{url}\marg{text} macro combines the features of the |\href|\marg{url}\marg{text} and the |\url|\marg{text} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}.
+% The |\online|\marg{url}\marg{text} macro combines the features of the |\href|\marg{url} \marg{text} \cite{hyperref} and the |\url|\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}.
%
-% \DescribeMacro{inlinelist}
-% Using the |enumitem| package \cite{enumitem} the |inlinelist|
+% The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}.
%
-% \begin{example}
+% \DescribeMacro{inlinelist}
+% \begin{columns}
% |The three main points are|
%
% |\begin{inlinelist}|
@@ -234,19 +252,17 @@
% | \item three|
%
% |\end{inlinelist}|
-% \second
+% \column
% The three main points are
% \begin{inlinelist}
% \item one
% \item two
% \item three
% \end{inlinelist}
-% \end{example}
+% \end{columns}
%
% \DescribeMacro{enumdescript}
-% and the |enumdescript| environments are defined
-%
-% \begin{example}[.6]
+% \begin{columns}[.6]
% |\begin{enumdescript}[label=\Roman*)]|
%
% | \item{First} one|
@@ -256,16 +272,21 @@
% | \item{Third} three|
%
% |\end{enumdescript}|
-% \second
+% \column
% \begin{enumdescript}[label=\Roman*)]
% \item{First} one
% \item{Second} two
% \item{Third} three
% \end{enumdescript}
-% \end{example}
+% \end{columns}
%
% \DescribeMacro{\textsc}
-% A sans serif version of \textsf{\textsc{Small Caps}} is provided.
+% A sans serif version of \textsf{\textsc{Small Caps}} is provided, using the |sansmathfonts| package \cite{sansmathfonts}.
+%
+% \DescribeMacro{\underline}
+% \DescribeMacro{\overline}
+% The |\underline| macro is redefined to allow linebreaks using the |soul| package \cite{soul}.
+% The |\overline| macro is extended to also \overline{overline} text outside of math environments.
%
% \DescribeMacro{\useparskip}
% \DescribeMacro{\useparindent}
@@ -274,8 +295,8 @@
% \subsubsection{References and footnotes}
%
% \DescribeMacro{\cref}
-% References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write 'Figure 1'.
-% Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key} (similar to the |\cite|\marg{key} macro).
+% References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{Figure 1}.
+% Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key1,key2}.
%
% \DescribeMacro{\cite}
% Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}.
@@ -293,8 +314,9 @@
% \DescribeMacro{\acronym}
% \DescribeMacro{\shortacronym}
% \DescribeMacro{\longacronym}
-% The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singluar |\|\meta{abbreviation} and plural |\|\meta{abbreviation}|s| macros.
-% The starred version does not add an \enquote{s} to the abbreviation plural.
+% The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singluar |\|\meta{abbreviation} and plural |\|\meta{abbreviation}|s| macros.
+% % The first star prevents the addition of an \enquote{s} to the abbreviation plural.
+% The second star restores the \hologo{TeX} default of swallowing subsequent white space.
% The long form is only shown at the first appearance of these macros, later appearances generate the abbreviation with a hyperlink to the long form.
% Capitalization at the beginning of paragraphs and sentences is ensured.
% The |\shortacronym| and |\longacronym| macros only show the short or long form of their acronym.
@@ -307,7 +329,8 @@
% \subsection{Math}
%
% The |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded.
-% They in turn load the |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages.
+% They in turn load the \hologo{AmSLaTeX} |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages.
+% Details about the font handling in \hologo{TeX} can be found in \cite{fntguide}.
% \DescribeMacro{\mathbf}
% Bold math, including |\mathbf| is provided by the |bm| package \cite{bm}, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$).
% Macros switching to |bfseries| such as |\section|\marg{text} are ensured to also typeset math in bold.
@@ -318,32 +341,34 @@
% This behaviour conflicts \eg with the |sansserif| package option.
% \DescribeMacro{\mathsf}
% The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$).
-% Details about the font handling in \TeX\ can be found in \cite{fntguide}.
% \DescribeMacro{\mathscr}
% The |\mathcal| font \ie ($\mathcal{ABCD}$) is accompanied by the |\mathscr| font \ie ($\mathscr{ABCD}$).
+% \DescribeMacro{\mathbb}
+% The |\mathbb| font is changed by the |bbm| \cite{bbm-macros} package and adjusted depending on the |sansserif| option \ie ($\mathbb{Ab1}${\mathversion{bold}$\mathbb{Ab1}$}).
%
% \DescribeMacro{\nicefrac}
% \DescribeMacro{\flatfrac}
-% The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number}
-% \begin{align}
-% \frac12 \ ,&& \nicefrac 12 \ ,&& \flatfrac 12\ .
-% \end{align}
+% The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac 12$, and $\flatfrac 12$.
% \DescribeMacro{\diag}
+%
% A diagonal matrix operator is defined |\diag|.
%
% \DescribeMacro{\mathdef}
% The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro (re-)defines macros only within math mode without changing the text mode definition.
+%
% \DescribeMacro{\i}
-% The imaginary unit $\i$ is defined using this functionality.
+% \DescribeMacro{\d}
+% The imaginary unit $\i$ and the differential $\d$ are defined using this functionality.
%
% \DescribeMacro{\numberwithin}
% For longer paper it can be useful to re-number the equation in accordance with the section numbering |\numberwithin{equation}{section}|.
-% \DescribeMacro{\subequations}
+% \DescribeMacro{subequations}
% In order to further reduce the size the of equation counter it can be useful to wrap |align| environments with multiple rows in a |subequations| environment.
+% Both macros are provided by the \hologo{AmSLaTeX} package.
%
% \DescribeMacro{eqnarray}
% The depreciated |eqnarray| environment is undefined as long this behaviour is not prevented by the |eqnarray| package option.
-% The |align| environment should be used instead.
+% The |split|, |multline|, |align|, |multlined|, |aligned|, |alignedat|, and |cases| environments should be used instead.
%
% \subsubsection{Physics}
%
@@ -353,7 +378,7 @@
% \sigma &= \unit[5]{fb} \ , & &\text{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \text{\unit[5]{\mu m}} \ ,
% \label{eq:greek}
% \end{align}
-% and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive light neutrinos.
+% and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos.
% Additionally, Greek letters can also be directly typed using Unicode.
%
% \DescribeMacro{\ev}
@@ -374,10 +399,11 @@
% The |\slashed|\marg{character} macro from the |slashed| \cite{slashed} package allows to use the Dirac slash notation.
%
% \DescribeMacro{\overleftright}
-% A better looking over left right arrow is defined $\overleftright{\partial}$.
+% A better looking over left right arrow is defined \ie $\overleftright{\partial}$.
+%
% \DescribeMacro{\unit}
% \DescribeMacro{\inv}
-% The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro |\unit|\oarg{value}\marg{unit} from the |units| package \cite{units} which can also be used in text mode.
+% The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro |\unit|\oarg{value} \marg{unit} from the |units| package \cite{units} which can also be used in text mode.
% The macro |\inv|\oarg{power}\marg{text} allows to avoid math mode also for inverse units such as \unit[5]{\inv{fb}} typeset via |\unit[5]{\inv{fb}}|.
%
% \subsection{Floats}
@@ -420,7 +446,7 @@
% \DescribeMacro{\panel}
% The |panels| environment makes use of the |subcaption| package \cite{subcaption}.
% It provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the |\linewidth|.
-% Within the |\begin{panels}|\oarg{vert}\marg{width} environment the |\panel| macro initiates a new sub-float.
+% Within the |\begin{panels}|\oarg{vertical alignment}\marg{width} environment the |\panel| macro initiates a new sub-float.
% In the case that the width of the first sub-float has been given as an optional argument to the |panels| environment the |\panel|\marg{width} macro takes the width of the next sub-float as mandatory argument.
% The example code is presented in \cref{tab:panels}.
%
@@ -438,9 +464,9 @@
% \DescribeMacro{\printbibliography}
% The |biblatex| package \cite{biblatex} is loaded for bibliography management.
% The user has to add the line |\bibliography|\marg{my.bib} to the preamble of the document and |\printbibliography| at the end of the document.
-% The bibliography is generated by |biber| \cite{biber}.
+% The bibliography is generated by \software{Biber} \cite{biber}.
% |biblatex| is extended to be able to cope with the |collaboration| and |reportNumber| fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed.
-% Additionally, \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are recognized as |eprinttype|s.
+% Additionally, \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://bitbucket.org}{bitbucket.org}, \online{https://www.launchpad.net}{launchpad.net}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are recognized as |eprinttype|s.
% \DescribeMacro{erratum}
% Errata can be included using the |related| feature.
%
@@ -459,7 +485,7 @@
% The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options.
%
% \DescribeMacro{arxiv-collector}
-% ArXiv requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \LaTeX\ version differs from the one used by arXiv.
+% ArXiv.org \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv.
% The |arxiv-collector| python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures).
%
% \StopEventually{
@@ -471,9 +497,12 @@
%
% \section{Options}
%
-% Load the |kvoptions| package and define a |hep| namespace.
+%<*package>
+
+% Load the |pdftexcmds| \cite{pdftexcmds} and |kvoptions| \cite{kvoptions} packages and define a |hep| namespace.
% \DoNotIndex{\RequirePackage,\SetupKeyvalOptions}
% \begin{macrocode}
+\RequirePackage{pdftexcmds}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=hep,
@@ -548,7 +577,7 @@
% \end{macro}
%
% \begin{macro}{glossaries}
-% Provide the option |glossaries| able to turn of the use of the |glossaries-extra| package \cite{glossaries-extra}.
+% Provide the option |glossaries| able to turn of the use of the |glossaries| package \cite{glossaries}.
% \DoNotIndex{\ifhep@glossaries}
% \begin{macrocode}
\DeclareBoolOption[true]{glossaries}
@@ -572,39 +601,94 @@
% \end{macro}
%
% \begin{macro}{revtex}
-% Provide the option |revtex| for |revtex| \cite{revtex} compatibility mode.
+% Provide the option |revtex| for REV\hologo{TeX} \cite{revtex} compatibility mode.
% \begin{macrocode}
\DeclareBoolOption[false]{revtex}
% \end{macrocode}
% \end{macro}
-
+%
+% \begin{macro}{jhep}
+% Provide the option |jhep| for |JHEP| \cite{jhep} compatibility mode.
+% \begin{macrocode}
+\DeclareBoolOption[false]{jhep}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jcap}
+% Provide the option |jcap| for |JCAP| \cite{jcap} compatibility mode.
+% \begin{macrocode}
+\DeclareBoolOption[false]{jcap}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{pos}
+% Provide the option |pos| for |PoS| compatibility mode.
+% \begin{macrocode}
+\DeclareBoolOption[false]{pos}
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Process options}
%
% \begin{macrocode}
\ProcessKeyvalOptions*
% \end{macrocode}
+%
+% Set the |pos| compatibility options.
+% \DoNotIndex{\ifhep@pos,\setkeys,\fi}
+% \begin{macrocode}
+\ifhep@pos
+ \setkeys{hep}{title=false, defaults}
+\fi
+% \end{macrocode}
+%
% Set the |revtex| compatibility options.
-% \DoNotIndex{\ifhep@revtex,\setkeys,\fi}
+% \DoNotIndex{\ifhep@revtex}
% \begin{macrocode}
\ifhep@revtex
\setkeys{hep}{defaults, title=false, lang=american, bibliography=false}
\fi
% \end{macrocode}
-
+%
+% Define the SISSA conditional.
+% \begin{macrocode}
+\newif\ifhep@sissa
+\ifhep@jhep\hep@sissatrue
+\else
+ \ifhep@jcap\hep@sissatrue
+ \else\hep@sissafalse
+ \fi
+\fi
+% \end{macrocode}
+%
+% Set the SISSA compatibility options.
+% \begin{macrocode}
+\ifhep@sissa
+ \setkeys{hep}{title=false, bibliography=false}
+ \PassOptionsToPackage{
+ colorlinks=true, linktocpage=true, pdfproducer=medialab, pdfa=true,
+ urlcolor=blue, anchorcolor=blue, citecolor=blue, filecolor=blue,
+ linkcolor=blue, menucolor=blue, pagecolor=blue
+ }{hyperref}
+ \hoffset 0pt
+ \voffset 0pt
+\fi
+% \end{macrocode}
% \section{Engine}
%
% \begin{macro}{\ifxetexorluatex}
% Load the |ifluatex| \cite{ifluatex} and |ifxetex| \cite{ifxetex} packages.
-% Define the |\ifxetexorluatex| conditional.
+% Define the |\ifxetexorluatex| conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}.
% \DoNotIndex{\newif,\ifxetex,\xetexorluatextrue,\else,\ifluatex,\xetexorluatexfalse,\fi}
% \begin{macrocode}
\RequirePackage{ifluatex}
\RequirePackage{ifxetex}
\newif\ifxetexorluatex
-\ifxetex\xetexorluatextrue\else
+\ifxetex\xetexorluatextrue
+\else
\ifluatex\xetexorluatextrue
- \else\xetexorluatexfalse
+ \else\xetexorluatexfalse
\fi
\fi
% \end{macrocode}
@@ -612,12 +696,23 @@
% \section{Text}
%
-% Load |alphabeta| package \cite{alphabeta} first in order to archive the correct behaviour.
+% Load the |alphabeta| package \cite{alphabeta} first in order to archive the correct behaviour.
% The |alphabeta| package provides upright Greek letters in text mode.
% \begin{macrocode}
\RequirePackage{alphabeta}
% \end{macrocode}
%
+% Set the whole text to sans serif if requested.
+% Load the |sansmathfonts| package \cite{sansmathfonts} first.
+% Although, most fonts will later be overwritten by the |lmodern| package \cite{lmodern} some mathematical objects are ensured to be in sans serif.
+% \DoNotIndex{\ifhep@serif,\renewcommand,\familydefault,\sfdefault}
+% \begin{macrocode}
+\ifhep@serif\else
+ \RequirePackage{sansmathfonts}
+ \renewcommand\familydefault{\sfdefault}
+\fi
+% \end{macrocode}
+%
% Pick the correct font encoding depending on the engine used and load the |fontenc| package \cite{fontenc} with this encoding.
% For details of the font encoding see \cite{encguide}.
% \DoNotIndex{\def,\@encoding}
@@ -635,8 +730,18 @@
\RequirePackage{textcomp}
\RequirePackage{microtype}
% \end{macrocode}
-
+%
% Define sans serif small caps font shapes.
+% The font abbreviations are
+% \begin{description}[nosep]
+% \item[lmss] Latin modern sans serif font
+% \item[cmss] Computer modern sans serif font
+% \item[xcmss] Extended computer modern sans serif font (from the |sansmathfonts| package \cite{sansmathfonts})
+% \item[bx] Bold extended series
+% \item[m] Medium weight and width series
+% \item[c] Medium weight, condensed width series
+% \item[sc] Caps and small caps font shape
+% \end{description}
% \DoNotIndex{\DeclareFontShape,\sffamily}
% \begin{macrocode}
\ifxetexorluatex
@@ -657,22 +762,14 @@
\RequirePackage[utf8]{inputenc}
\fi
% \end{macrocode}
-
+%
% Load the |babel| \cite{babel} package for hyphenation and the recommended |csquotes| package \cite{csquotes}.
% \DoNotIndex{\hep@lang}
% \begin{macrocode}
\RequirePackage[\hep@lang]{babel}
\RequirePackage{csquotes}
% \end{macrocode}
-
-% Set the whole text to sans serif if requested.
-% \DoNotIndex{\ifhep@serif,\renewcommand,\familydefault,\sfdefault}
-% \begin{macrocode}
-\ifhep@serif\else
- \renewcommand\familydefault{\sfdefault}
-\fi
-% \end{macrocode}
-
+%
% \begin{macro}{\underline}
% Load the |soul| package \cite{soul} for hyphenable underlined text.
% \DoNotIndex{\let}
@@ -681,10 +778,10 @@
\let\underline\ul
% \end{macrocode}
% \end{macro}
-
-% \subsection{Font size}
%
-% Undefine previously defined font sizes and load the \LaTeX\ font size file corresponding to the font size option.
+% \subsection{Font size} \label{sec:font size}
+%
+% Undefine previously defined font sizes and load the \hologo{LaTeX} font size file corresponding to the font size option.
% \DoNotIndex{\remove@pt,\edef,\@ptsize,\expandafter,\small,\relax,\footnotesize,\scriptsize}
% \begin{macrocode}
\ifhep@defaults\else
@@ -710,18 +807,25 @@
% Add the missing |\vs| command.
% \DoNotIndex{\DeclareRobustCommand,\xperiodafter,\foreignabbrfont,\pdf@strcmp,\hep@lang@foreign}
% \begin{macrocode}
-\RequirePackage{pdftexcmds}
-\newcommand{\hep@lang@foreign}{british}
-\ifnum\pdf@strcmp{\hep@lang}{american}=0%
- \renewcommand{\hep@lang@foreign}{USenglish}%
-\fi
-\ifnum\pdf@strcmp{\hep@lang}{USenglish}=0%
- \renewcommand{\hep@lang@foreign}{USenglish}%
+\ifnum\pdf@strcmp{\hep@lang}{american}=0
+ \newcommand{\hep@lang@foreign}{USenglish}
+\else
+ \ifnum\pdf@strcmp{\hep@lang}{USenglish}=0
+ \newcommand{\hep@lang@foreign}{USenglish}
+ \else
+ \newcommand{\hep@lang@foreign}{british}
+ \fi
\fi
\RequirePackage[all, \hep@lang@foreign]{foreign}
\DeclareRobustCommand\vs{\xperiodafter{{\foreignabbrfont{vs}}}}
% \end{macrocode}
% \end{macro}
+%
+% The |foreign| package relies on the |xspace| package \cite{xspace}.
+% Ensure that |\xspace| is compatible with the |\enquote| macro from the |csquote| package.
+% \begin{macrocode}
+\xspaceaddexceptions{\csq@qclose@i}
+% \end{macrocode}
%\begin{macro}{\no}
% Define the macro |\no|\marg{number} for the use of \textnumero\ with appropriate spacing.
@@ -729,7 +833,7 @@
\newcommand{\no}[1]{\textnumero~#1}
% \end{macrocode}
% \end{macro}
-
+%
%\begin{macro}{\software}
% Define a macro for software with optional version information |\software|\linebreak[1]\oarg{version}\linebreak[1]\marg{name}, using the |relsize| package \cite{relsize}.
% \DoNotIndex{\hspace,\fontdimen,\font,\smaller,\textsc}
@@ -740,17 +844,17 @@
}
% \end{macrocode}
% \end{macro}
-
+%
% \begin{macro}{\online}
% The |\online|\marg{text}\marg{url} macro combines the features of the |\href| and the |\url| macros.
% \DoNotIndex{\href,\url}
% \begin{macrocode}
-\newcommand{\online}[2]{\href{#1}{\url{#2}}}
+\newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}
% \end{macrocode}
% \end{macro}
% \subsection{Lists}
-
+%
% Load the |enumitem| package \cite{enumitem}.
% \begin{macrocode}
\RequirePackage[inline]{enumitem}
@@ -798,6 +902,7 @@
% \section{Geometry}
%
% Load the |geometry| package \cite{geometry} and adjust the text width and height to the values of the |a4wide| package \cite{a4wide}.
+% This step must happen after readjusting the font size in \cref{sec:font size}.
% \DoNotIndex{\ifhep@defaults,\hep@paper,\geometry}
% \begin{macrocode}
\ifhep@defaults\else
@@ -808,7 +913,7 @@
%\begin{macro}{\useparskip}
%\begin{macro}{\useparindent}
-% Load the |parskip| package \cite{parskip} and provide two commands switching between the two paragraph modes.
+% Load the |parskip| package \cite{parskip} if requested and provide two commands switching between the two paragraph modes.
% \DoNotIndex{\ifhep@parindent,\setlength,\parskip,\baselineskip,\parindent}
% \begin{macrocode}
\ifhep@parindent\else
@@ -853,13 +958,13 @@
% \begin{macrocode}
\RequirePackage{xparse}
\DeclareDocumentCommand{\mathdef}{mO{0}m}{%
- \expandafter\let\csname old\string#1\endcsname=#1
- \expandafter\newcommand\csname new\string#1\endcsname[#2]{#3}
+ \expandafter\let\csname text\string#1\endcsname=#1
+ \expandafter\newcommand\csname math\string#1\endcsname[#2]{#3}
\DeclareRobustCommand#1{%
\ifmmode
- \expandafter\let\expandafter\next\csname new\string#1\endcsname
+ \expandafter\let\expandafter\next\csname math\string#1\endcsname
\else
- \expandafter\let\expandafter\next\csname old\string#1\endcsname
+ \expandafter\let\expandafter\next\csname text\string#1\endcsname
\fi
\next
}%
@@ -874,10 +979,20 @@
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\overline}
+% Redefine |\overline| to be a text macro using the |soul| package \cite{soul}.
+% Extend it as a math macro with the original definition from |amsmath| \cite{amsmath}.
+% \begin{macrocode}
+\def\overline#1{{\setul{-2ex}{}\ul{#1}}}
+\DeclareRobustCommand{\over@line}[1]{\@@overline{#1}}
+\mathdef{\overline}{\over@line}
+% \end{macrocode}
+% \end{macro}
+
% \begin{macro}{eqnarray}
% Undefine the |eqnarray| environment.
% \begin{macrocode}
-\ifhep@eqnarray\else%
+\ifhep@eqnarray\else
\let\eqnarray\@undefined
\let\endeqnarray\@undefined
\fi
@@ -887,9 +1002,10 @@
% \subsection{Math fonts}
%
% \begin{macro}{\mathbf}
-% Load the |bm| package \cite{bm} for superior boldmath.
+% Load the |bm| package \cite{bm} for superior boldmath after limiting the number of allocated math alphabets.
% Make math symbols bold whenever they appear in bold macros such as |\section|\marg{text}.
% \begin{macrocode}
+\newcommand{\bmmax}{2}
\RequirePackage{bm}
\let\mathbf\bm
\g@addto@macro\bfseries{\boldmath}
@@ -900,6 +1016,15 @@
% Load the |fixmath| package \cite{fixmath} which ensures that upper Greek letters in math mode are italic.
% Ensure that also math mode is sans serif using the |sfmath| package \cite{sfmath} if the option sans serif is passed to the package.
% Ensure that |\mathsf| is italic as well as sans serif and sans for sans and sans serif documents, respectively.
+% The font abbreviations are
+% \begin{description}[nosep]
+% \item[OML] \hologo{TeX} math italic font encoding
+% \item[cmm] Computer modern math italic font
+% \item[cmbr] Computer modern bright font
+% \item[bx] Bold extended series
+% \item[m] Medium weight and width series
+% \item[it] Italic font shape
+% \end{description}
% \begin{macrocode}
\ifhep@serif
\RequirePackage{fixmath}
@@ -907,6 +1032,7 @@
\SetMathAlphabet{\mathsf}{bold}{OML}{cmbr}{bx}{it}
\else
\RequirePackage[slantedGreek]{sfmath}
+ \RequirePackage{sansmathfonts}
\DeclareMathAlphabet{\mathsf}{OML}{cmm}{m}{it}
\SetMathAlphabet{\mathsf}{bold}{OML}{cmm}{bx}{it}
\fi
@@ -918,11 +1044,22 @@
\RequirePackage{mathrsfs}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\mathbb}
+% Load the |bbm| package \cite{bbm-macros} for the |\mathbb| math blackboard style font in (sans-) serif.
+% \begin{macrocode}
+\RequirePackage{bbm}
+\ifhep@serif
+ \let\mathbb\mathbbm
+\else
+ \let\mathbb\mathbbmss
+\fi
+% \end{macrocode}
+% \end{macro}
% \subsection{Physics notation}
%
% \begin{macro}{\slashed}
-% \begin{macro}{\units}
+% \begin{macro}{\unit}
% Load the |physics| package \cite{physics} which provides macros useful for publications in physics.
% Additionally, load the |slashed| package \cite{slashed} which provides the slashed macro for Dirac notation.
% Finally, load the |units| package \cite{units} which provides the |\units| and |\nicefrac| macros.
@@ -941,6 +1078,13 @@
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\d}
+% Provide a differential |\d|.
+% \begin{macrocode}
+\AtBeginDocument{\mathdef{\d}{\dd}}
+% \end{macrocode}
+% \end{macro}
+
% \begin{macro}{\oset}
% Define a new overset macro |\oset|\oarg{offset}\marg{over}\marg{base}
% \begin{macrocode}
@@ -960,7 +1104,7 @@
% \section{Floats}
%
-% Adjust the \LaTeX\ float placement defaults
+% Adjust the \hologo{LaTeX} float placement defaults
% \begin{macrocode}
\renewcommand{\textfraction}{0.01}
\setcounter{topnumber}{1}
@@ -1019,14 +1163,18 @@
% \end{macrocode}
%
% Load the |subcaption| package \cite{subcaption}.
+% Provide old |\subcaption@minipage| macro.
% \begin{macrocode}
-\RequirePackage[subrefformat = parens]{subcaption}
+\RequirePackage[subrefformat=parens]{subcaption}
\captionsetup{font=small}
\captionsetup[sub]{font=small}
+\providecommand*\subcaption@minipage[2]{%
+ \minipage#1{#2}\setcaptionsubtype\relax%
+}
% \end{macrocode}
% \begin{environment}{panels}
% \begin{macro}{\panel}
-% Load the |subcaption| package \cite{subcaption} and define the |panels| environment as well as the |\panel| macro.
+% Define the |panels| environment and the |\panel| macro.
% \begin{macrocode}
\newenvironment{panels}[2][b]{%
% \end{macrocode}
@@ -1058,15 +1206,15 @@
% \end{macro}
% \end{environment}
-% Reajust the captions to the revtex class.
+% Reajust the captions to the revtex class using the |ragged2e| package \cite{ragged2e}.
% \begin{macrocode}
\ifhep@revtex
- \renewcommand{\figurename}{Figure}
- \renewcommand{\tablename}{Table}
\RequirePackage{ragged2e}
\DeclareCaptionFormat{revtex}{#1#2\justifying{#3}}
- \captionsetup{font = small, format = revtex}
- \captionsetup[sub]{font = footnotesize, format = plain}
+ \captionsetup{font=small, format=revtex}
+ \captionsetup[sub]{font=footnotesize, format=plain}
+ \renewcommand{\figurename}{Figure}
+ \renewcommand{\tablename}{Table}
\fi
% \end{macrocode}
@@ -1088,7 +1236,7 @@
\RequirePackage{graphicx}
\providecommand{\tikzsetnextfilename}[1]{}
\newcommand{\graphic}[2][1]{\tikzsetnextfilename{#2}{%
- \centering\includegraphics[width=#1\linewidth]{#2}%
+ \centering\includegraphics[width=#1\linewidth]{#2}\par%
}}
% \end{macrocode}
% \end{macro}
@@ -1119,7 +1267,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\email}
-% Provide macro for the email of authors used as |\author{|$\langle name\rangle$| \email{|$\langle email\rangle$|}}|.
+% Define a macro for the email of authors used as |\author{|$\langle name\rangle$| \email{|$\langle email\rangle$|}}|.
% \begin{macrocode}
\AtEndOfClass{\newcommand{\email}[1]{%
\unskip\thanks{\online{mailto:#1}{#1}}
@@ -1153,8 +1301,7 @@
% \subsection{Preprint}
%
% \begin{macro}{\preprint}
-% Places a preprint number in the top right corner of the first page.
-% This code uses the |varwidth| \cite{varwidth}, |atbegshi| \cite{atbegshi}, and |picture| \cite{picture} packages.
+% Define the |\preprint| macro using the |varwidth| package \cite{varwidth}.
% \begin{macrocode}
\let\@preprint\relax
\newcommand\preprint[1]{\long\gdef\@preprint{#1}}
@@ -1164,13 +1311,23 @@
\textsc{\small\@preprint}%
\end{varwidth}%
}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\maketitle}
+% Places a preprint number in the top right corner of the title page using the |atbegshi| \cite{atbegshi} and |picture| \cite{picture} packages.
+% \begin{macrocode}
\RequirePackage{atbegshi}
\RequirePackage{picture}
-\AtBeginShipoutFirst{%
- \put(
- \textwidth+\oddsidemargin-\widthof{\@preprint@box},
- -2pt-\topmargin-\heightof{\@preprint@box}
- ){\normalfont\@preprint@box}
+\let\old@maketitle\maketitle
+\renewcommand{\maketitle}{%
+ \old@maketitle%
+ \AtBeginShipoutFirst{%
+ \put(
+ \textwidth+\oddsidemargin-\widthof{\@preprint@box},
+ -2pt-\topmargin-\heightof{\@preprint@box}
+ ){\normalfont\@preprint@box}
+ }
}
% \end{macrocode}
% \end{macro}
@@ -1180,8 +1337,10 @@
% \begin{environment}{abstract}
% Adjust the |abstract| environment to not start with indentation.
% \begin{macrocode}
-\let\old@abstract\abstract
-\renewcommand\abstract{\old@abstract\noindent\ignorespaces}
+\@ifundefined{abstract}{}{%
+ \let\old@abstract\abstract%
+ \renewcommand\abstract{\old@abstract\noindent\ignorespaces}%
+}
% \end{macrocode}
% \end{environment}
% End of check for |title| option.
@@ -1191,143 +1350,272 @@
% \section{Bibliography}
%
-% Check if bibliography management is requested using the |pdftexcmds| package \cite{pdftexcmds}.
+% Check if bibliography management is requested.
% \begin{macrocode}
\ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else
% \end{macrocode}
%
% \begin{macro}{\bibliography}
-% Load the |biblatex| package \cite{biblatex} with a JHEP like bibliography style.
+% Load the |biblatex| package \cite{biblatex} with the datamodel defined in \cref{sec:data model}.
+% \begin{macrocode}
+\RequirePackage[style=\hep@bibliography, datamodel=hep-paper]{biblatex}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{hep-paper}
+% Define a new sorting template that sorts only multi key |\cite| entries according to their date and leaves the rest of the bibliography entries in the order they appear in the text.
+% Provide the |\DeclareSortingTemplate| macro for older |biblatex| installations.
+% \begin{macrocode}
+\providecommand{\DeclareSortingTemplate}{\DeclareSortingScheme}
+\DeclareSortingTemplate{hep-paper}{
+ \sort{\citeorder}
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ \literal{9999}
+ }
+ \sort{
+ \field{month}
+ }
+ \sort{
+ \field{eprint}
+ \field{doi}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{subtitle}
+ \field{volume}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Use the new sorting scheme and abbreviat all first names.
% \begin{macrocode}
-\RequirePackage[style=\hep@bibliography]{biblatex}
\ExecuteBibliographyOptions{
- sorting=none,
+ sorting=hep-paper,
giveninits=true
}
% \end{macrocode}
+%
+% \begin{macro}{erratum}
+% Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field.
+% \begin{macrocode}
+\NewBibliographyString{erratum}
+\DefineBibliographyStrings{english}{erratum={Erratum}}
+% \end{macrocode}
% \end{macro}
-% Read the collaboration and pre-print information if present.
-% Move letters from the volume field to the journal field.
+%
+% \begin{macro}{\printbibliography}
+% Allow the bibliography to be printed sloppy
+% \begin{macrocode}
+\let\old@printbibliography\printbibliography
+\renewcommand{\printbibliography}{\sloppy\old@printbibliography}
+% \end{macrocode}
+% \end{macro}
+
+% \subsection{Sourcemap}
+%
+% \begin{macro}{\reg@exp@one}
+% \begin{macro}{\reg@exp@two}
+% \begin{macro}{\reg@exp@url}
+% Define regular expressions in order to deal with inconsistent journal title and volume naming as well as URL protocols.
+% \begin{macrocode}
+\newcommand{\reg@exp@one}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}}
+\newcommand{\reg@exp@two}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}}
+\newcommand{\reg@exp@url}{\regexp{\A(ht|f)tp(s)?:\/\/}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\DeclareSourcemap}
+% Use the |\DeclareSourcemap| feature.
% \begin{macrocode}
-\newcommand{\@reg@exp}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}}
-\newcommand{\@reg@exp@}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}}
\DeclareSourcemap{%
- \maps[datatype=bibtex,overwrite=true]{%
+ \maps[datatype=bibtex, overwrite=true]{%
+% \end{macrocode}
+% \begin{macro}{collaboration}
+% Read the collaboration information if present.
+% \begin{macrocode}
\map{%
- \step[fieldsource=Collaboration,final=true]%
- \step[fieldset=usere,origfieldval,final=true]
+ \step[fieldsource=Collaboration, final=true]%
+ \step[fieldset=collaboration, origfieldval, final=true]
}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{reportnumber}
+% Read the pre-print information if present.
+% \begin{macrocode}
\map{%
- \step[fieldsource=reportNumber,final=true]%
- \step[fieldset=userf,origfieldval,final=true]
+ \step[fieldsource=reportNumber, final=true]%
+ \step[fieldset=reportnumber, origfieldval, final=true]
}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{journal}
+% Move letters from the volume field to the journal field.
+% \begin{macrocode}
\map[overwrite]{
- \step[fieldsource=volume, match=\@reg@exp, final]
- \step[fieldsource=volume, match=\@reg@exp@, replace={$2}]
+ \step[fieldsource=volume, match=\reg@exp@one, final]
+ \step[fieldsource=volume, match=\reg@exp@two, replace={$2}]
\step[fieldsource=journal, fieldtarget=journaltitle]
\step[fieldset=journaltitle, fieldvalue={\space$1$2}, append=true]
}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{url}
+% Remove the protocol from URL.
+% \begin{macrocode}
+ \map{
+ \step[fieldsource=url, final=true]
+ \step[fieldset=protocollessurl, origfieldval, final=true]
+ \step[fieldsource=protocollessurl, match=\reg@exp@url, replace={}]
+ }
}%
}
% \end{macrocode}
-
-% Override the author information with collaboration information if present.
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{In:}
+% Remove spurious \enquote{In:} if no journal is present.
% \begin{macrocode}
-\renewbibmacro*{author}{%
- \iffieldundef{usere}{\printnames{author}}{\textbf{\printfield{usere}}}%
+\renewbibmacro*{in:}{%
+ \iffieldundef{journaltitle}{}{\printtext{\bibstring{in}\intitlepunct}}%
}
% \end{macrocode}
-
-% Remove spurious `In:' if no journal is present.
+% \end{macro}
+%
+% \begin{macro}{url}
+% Show URLs without the protocol.
% \begin{macrocode}
-\renewbibmacro*{in:}{%
- \iffieldundef{journal}{}{\printtext{\bibstring{in}\intitlepunct}}%
+\DeclareFieldFormat{url}{%
+ \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}%
}
% \end{macrocode}
-
+% \end{macro}
+%
+% \begin{macro}{collaboration}
+% Override the author information with collaboration information if present.
+% \begin{macrocode}
+\renewbibmacro*{author}{%
+ \iffieldundef{collaboration}{%
+ \printnames{author}}{\textbf{\printfield{collaboration}}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\letbibmacro}
% Provide the |\letbibmacro| macro for old |biblatex| installations.
% \begin{macrocode}
\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}}
% \end{macrocode}
-
+% \end{macro}
+%
+% \begin{macro}{reportnumber}
% Add the pre-print information if present.
% \begin{macrocode}
\letbibmacro{doi+eprint+url-old}{doi+eprint+url}
\renewbibmacro*{doi+eprint+url}{%
\usebibmacro{doi+eprint+url-old}
- \iffieldundef{userf}{}{\textls[0]{%
+ \iffieldundef{reportnumber}{}{\textls[0]{%
\newunitpunct\textnumero\intitlepunct%
- \textsc{\small\printfield{userf}}%
+ \textsc{\small\printfield{reportnumber}}%
}}%
}
% \end{macrocode}
+% \end{macro}
-% Add CTAN as a pre-print option
+% \subsection{Eprints}
+%
+% \begin{macro}{\bib@online}
+% Private |\bib@online| macro
% \begin{macrocode}
-\DeclareFieldFormat{eprint:ctan}{%
- CTAN\addcolon\space\ifhyperref{%
- \href{https://ctan.org/pkg/#1}{\nolinkurl{#1}}%
- }{\nolinkurl{#1}}%
+\newcommand{\bib@online}[2]{%
+ \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}%
}
-\DeclareFieldAlias{eprint:CTAN}{eprint:ctan}
% \end{macrocode}
-
-% Add GitHub as a pre-print option
+% \end{macro}
+%
+% \begin{macro}{\new@eprint}
+% Private |\new@eprint| macro
% \begin{macrocode}
-\DeclareFieldFormat{eprint:github}{%
- GitHub\addcolon\space\ifhyperref{\href{%
- https://github.com/\thefield{eprintclass}/#1%
- }{\nolinkurl{\thefield{eprintclass}/#1}}%
- }{\nolinkurl{\thefield{eprintclass}/#1}}%
+\NewDocumentCommand{\new@eprint}{smm}{
+ \DeclareFieldFormat{eprint:#2}{%
+ \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}%
+ #2\addcolon\space\bib@online{#3/\@path}{\@path}%
+ }%
}
-\DeclareFieldAlias{eprint:GitHub}{eprint:github}
% \end{macrocode}
-
-% Add GitLab as a pre-print option
+% \end{macro}
+%
+% \begin{macro}{CTAN}
+% Add CTAN as a eprint option
% \begin{macrocode}
-\DeclareFieldFormat{eprint:gitlab}{%
- GitLab\addcolon\space\ifhyperref{\href{%
- https://gitlab.com/\thefield{eprintclass}/#1%
- }{\nolinkurl{\thefield{eprintclass}/#1}}%
- }{\nolinkurl{\thefield{eprintclass}/#1}}%
-}
-\DeclareFieldAlias{eprint:GitLab}{eprint:gitlab}
+\new@eprint{CTAN}{https://ctan.org/pkg}
+\DeclareFieldAlias{eprint:ctan}{eprint:CTAN}
% \end{macrocode}
-
-% Add SourceForge as a pre-print option
+% \end{macro}
+%
+% \begin{macro}{GitHub}
+% Add GitHub as a eprint option
% \begin{macrocode}
-\DeclareFieldFormat{eprint:sourceforge}{%
- SourceForge\addcolon\space\ifhyperref{%
- \href{https://sourceforge.net/projects/#1}{\nolinkurl{#1}}%
- }{\nolinkurl{#1}}%
-}
-\DeclareFieldAlias{eprint:SourceForge}{eprint:sourceforge}
+\new@eprint*{GitHub}{https://github.com}
+\DeclareFieldAlias{eprint:github}{eprint:GitHub}
% \end{macrocode}
-
-% Add HEPForge as a pre-print option
+% \end{macro}
+%
+% \begin{macro}{GitLab}
+% Add GitLab as a eprint option
% \begin{macrocode}
-\DeclareFieldFormat{eprint:hepforge}{%
- HEPForge\addcolon\space\ifhyperref{%
- \href{https://#1/hepforge.org/}{\nolinkurl{#1}}%
- }{\nolinkurl{#1}}%
-}
-\DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge}
+\new@eprint*{GitLab}{https://gitlab.com}
+\DeclareFieldAlias{eprint:gitlab}{eprint:GitLab}
% \end{macrocode}
-
-% Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field.
+% \end{macro}
+%
+% \begin{macro}{Bitbucket}
+% Add Bitbucket as a eprint option
% \begin{macrocode}
-\NewBibliographyString{erratum}
-\DefineBibliographyStrings{english}{erratum={Erratum:}}
+\new@eprint*{Bitbucket}{https://bitbucket.org}
+\DeclareFieldAlias{eprint:bitbucket}{eprint:Bitbucket}
% \end{macrocode}
-
-% \begin{macro}{\printbibliography}
-% Allow the bibliography to be printed sloppy
+% \end{macro}
+%
+% \begin{macro}{Launchpad}
+% Add Launchpad as a eprint option
% \begin{macrocode}
-\let\old@printbibliography\printbibliography
-\renewcommand{\printbibliography}{\sloppy\old@printbibliography}
+\new@eprint{Launchpad}{https://launchpad.net}
+\DeclareFieldAlias{eprint:launchpad}{eprint:Launchpad}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{SourceForge}
+% Add SourceForge as a eprint option
+% \begin{macrocode}
+\new@eprint{SourceForge}{https://sourceforge.net/projects}
+\DeclareFieldAlias{eprint:launchpad}{eprint:SourceForge}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{HEPForge}
+% Add HEPForge as a eprint option
+% \begin{macrocode}
+\DeclareFieldFormat{eprint:hepforge}{%
+ HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}%
+}
+\DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge}
% \end{macrocode}
% \end{macro}
%
+
% End check for bibliography option.
% \begin{macrocode}
\fi
@@ -1361,7 +1649,11 @@
\pdfstringdefDisableCommands{\let\footnote\@gobble}
\pdfstringdefDisableCommands{\let\\\@gobble}
}
-\AtBeginShipout{\hypersetup{pdftitle={\@title}}}
+\ifhep@revtex
+ \AtBeginShipout{\hypersetup{pdftitle={\@title}}}
+\else
+ \AtBeginDocument{\hypersetup{pdftitle={\@title}}}
+\fi
\ifhep@title
\AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}}
\else
@@ -1373,43 +1665,15 @@
% Improve reference using the |cleveref| package \cite{cleveref}.
%
% \begin{macrocode}
-\RequirePackage[noabbrev, capitalize, nameinlink]{cleveref}
+\RequirePackage[noabbrev, nameinlink]{cleveref}
+\newcommand{\creflastconjunction}{, and\nobreakspace}
\crefname{enumi}{point}{points}
\Crefname{enumi}{Point}{Points}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\refstepcounter@...}
-% Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|.
-% \begin{macrocode}
-\def\refstepcounter@noarg#1{%
- \cref@old@refstepcounter{#1}%
- \cref@constructprefix{#1}{\cref@result}%
- \@ifundefined{cref@#1@alias}%
- {\def\@tempa{#1}}%
- {\def\@tempa{\csname cref@#1@alias\endcsname}}%
- \protected@edef\cref@currentlabel{%
- [\@tempa][\arabic{#1}][\cref@result]%
- \noexpand\@currentlabel%
- }% changed
-}
-
-\def\refstepcounter@optarg[#1]#2{%
- \cref@old@refstepcounter{#2}%
- \cref@constructprefix{#2}{\cref@result}%
- \@ifundefined{cref@#1@alias}%
- {\def\@tempa{#1}}%
- {\def\@tempa{\csname cref@#1@alias\endcsname}}%
- \protected@edef\cref@currentlabel{%
- [\@tempa][\arabic{#2}][\cref@result]%
- \noexpand\@currentlabel% changed
- }%
-}
-% \end{macrocode}
-% \end{macro}
-
%\begin{macro}{\no@break@before}
-% Provide macro able to prevent line breaks.
+% Define a macro able to prevent line breaks.
% \DoNotIndex{\no@break@before,\ifvmode,\ifhmode,\ifdim,\lastskip,\unskip,\nobreakspace}
% \begin{macrocode}
\newcommand\no@break@before{%
@@ -1431,6 +1695,7 @@
\AtBeginDocument{\renewcommand\ref{\no@break@before\labelcref}}
% \end{macrocode}
% \end{macro}
+% ! Bug ! in equations the additional brackets from the cleveref macro conflict with the traditional |(\ref|\marg{key}|)| approach
% \begin{macro}{\eqref}
% Adjust |\eqref|\marg{key} in order to prevent preceding line breaks and to enable the possibility to reference multiple equations at once.
@@ -1461,7 +1726,7 @@
% \begin{macro}{\eqcrefname}
% Define the |\eqcrefname| macro for named equation types.
% \begin{macrocode}
-\DeclareDocumentCommand{\eqcrefname}{mmo}{
+\NewDocumentCommand{\eqcrefname}{mmo}{
\crefname{#1}{#2}{\IfValueTF{#3}{#3}{#2s}}
\creflabelformat{#1}{(##2##1##3)}
}
@@ -1477,7 +1742,7 @@
% \end{macrocode}
% \end{macro}
-% \subsection{Citation macros}
+% \subsection{Citations}
%
% \begin{macro}{\cite}
% Adjust |\cite|\marg{key} in order to prevent preceding line breaks.
@@ -1496,8 +1761,8 @@
\NewBibliographyString{refname}
\NewBibliographyString{refsname}
\DefineBibliographyStrings{english}{%
- refname = {Reference},
- refsname = {References}
+ refname = {reference},
+ refsname = {references}
}
% \end{macrocode}
% \begin{macro}{\ccite}
@@ -1505,7 +1770,7 @@
% Define \emph{clever} citation macros.
% \begin{macrocode}
\DeclareCiteCommand{\ccite}{%
- \ifnum\thecitetotal=1%
+ \ifnum\thecitetotal=1
\bibstring{refname}%
\else%
\bibstring{refsname}%
@@ -1562,40 +1827,60 @@
}}
% \end{macrocode}
-% \begin{macro}{\if@begin@of@sentence}
+% \begin{macro}{\begin@sentence}
% Mark the beginning of a paragraph as if it would follow a full stop using the |everyhook| package \cite{everyhook}.
-% Provide a macro checking for the beginning of a sentence by examining the length of the preceeding space. (This breaks if |\frenchspacing| is activated)
% \begin{macrocode}
-\usepackage[excludeor]{everyhook}
-\PushPostHook{par}{{\spacefactor=3000}}
+\RequirePackage[excludeor]{everyhook}
+\newcommand{\begin@sentence}{1001}
+\PushPostHook{par}{{\spacefactor=\begin@sentence}}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\frenchspacing}
+% Adjust the |\frenchspacing| macro to be compatibel with this idea.
+% \begin{macrocode}
+\def\frenchspacing{%
+ \sfcode`\.\begin@sentence \sfcode`\?\begin@sentence
+ \sfcode`\!\begin@sentence \sfcode`\:\begin@sentence
+ \sfcode`\;\@m \sfcode`\,\@m
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\if@begin@of@sentence}
+% Provide a macro checking for the beginning of a sentence by examining the length of the preceeding space.
+% \begin{macrocode}
\newcommand{\if@begin@of@sentence}[2]{\leavevmode\protecting{%
\ifboolexpr{ test {\ifnumcomp{\spacefactor}{=}{3000}} or%
- test {\ifnumcomp{\spacefactor}{=}{2000}}%
+ test {\ifnumcomp{\spacefactor}{=}{2000}} or%
+ test {\ifnumcomp{\spacefactor}{=}{\begin@sentence}}%
}{#1}{#2}%
}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\acronym}
-% The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\marg{definition}\oarg{plural\linebreak[4] definition} macro is defined.
+% The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4] definition} macro is defined.
% \begin{enumerate}[nosep, label=\#\arabic*]
% \item star for omitting the \enquote{s} in the short plural
% \item optional typeset abbreviation
% \item mandatory abbreviation
+% \item star for restoring the \hologo{TeX} default for space after text macros
% \item mandatory long form
% \item optional plural long form
% \end{enumerate}
% \begin{macrocode}
-\DeclareDocumentCommand{\acronym}{sommo}{
+\NewDocumentCommand{\acronym}{somsmo}{
\newabbreviation[
- longplural=\IfNoValueTF{#5}{#4s}{#5},
+ longplural=\IfNoValueTF{#6}{#5s}{#6},
\glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}
- ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#4}
+ ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5}
% \end{macrocode}
% Provide the singular acronym macro.
% \begin{macrocode}
\expandafter\newcommand\csname#3\endcsname{%
- \if@begin@of@sentence{\cGls{#3}}{\cgls{#3}}\@\xspace%
+ \if@begin@of@sentence{\cGls{#3}}{\cgls{#3}}%
+ \IfBooleanTF{#4}{}{\@\xspace}%
}
% \end{macrocode}
% Expand the singular acronym macro in \PDF labels.
@@ -1607,13 +1892,14 @@
% Provide the singular acronym macro in math mode.
% \begin{macrocode}
\expandafter\mathdef\csname#3\endcsname{%
- \text{\glsxtrshort{#3}}\glsunset{#3}%
+ \text{\glsxtrshort{#3}}\@gls@increment@currcount{#3}%
}
% \end{macrocode}
% Provide the plural acronym macro.
% \begin{macrocode}
\expandafter\newcommand\csname#3s\endcsname{%
- \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}\@\xspace%
+ \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}%
+ \IfBooleanTF{#4}{}{\@\xspace}%
}
% \end{macrocode}
% Expand the plural acronym macro in \PDF labels.
@@ -1625,7 +1911,7 @@
% Provide the plural acronym macro in math mode.
% \begin{macrocode}
\expandafter\mathdef\csname#3s\endcsname{%
- \text{\glsxtrshortpl{#3}}\glsunset{#3}%
+ \text{\glsxtrshortpl{#3}}\@gls@increment@currcount{#3}%
}
}
% \end{macrocode}
@@ -1634,14 +1920,13 @@
% \begin{macro}{\shortacronym}
% The |\shortacronym| never expands into the long form.
% \begin{macrocode}
-\DeclareDocumentCommand{\shortacronym}{somm}{
- \newabbreviation[
- \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}
- ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#4}
+\NewDocumentCommand{\shortacronym}{somsmo}{
% \end{macrocode}
% Provide the singular acronym macro.
% \begin{macrocode}
- \expandafter\newcommand\csname#3\endcsname{\cgls*{#3}\@\xspace}
+ \expandafter\newcommand\csname#3\endcsname{%
+ \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}%
+ }
% \end{macrocode}
% Expand the singular acronym macro in \PDF labels.
% \begin{macrocode}
@@ -1651,11 +1936,16 @@
% \end{macrocode}
% Provide the singular acronym macro in math mode.
% \begin{macrocode}
- \expandafter\mathdef\csname#3\endcsname{\text{\glsxtrshort*{#3}}}
+ \expandafter\mathdef\csname#3\endcsname{%
+ \text{\IfNoValueTF{#2}{#3}{#2}}%
+ }
% \end{macrocode}
% Provide the plural acronym macro.
% \begin{macrocode}
- \expandafter\newcommand\csname#3s\endcsname{\cglspl*{#3}\@\xspace}
+ \expandafter\newcommand\csname#3s\endcsname{%
+ \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}%
+ \IfBooleanTF{#4}{}{\@\xspace}%
+ }
% \end{macrocode}
% Expand the plural acronym macro in \PDF labels.
% \begin{macrocode}
@@ -1665,8 +1955,9 @@
% \end{macrocode}
% Provide the plural acronym macro in math mode.
% \begin{macrocode}
- \expandafter\mathdef\csname#3s\endcsname{\text{\glsxtrshortpl*{#3}}}%
- \glsunset{#3}
+ \expandafter\mathdef\csname#3s\endcsname{%
+ \text{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}%
+ }%
}
% \end{macrocode}
% \end{macro}
@@ -1674,31 +1965,32 @@
% \begin{macro}{\longacronym}
% The |\longacronym| never shows the abbreviated form.
% \begin{macrocode}
-\DeclareDocumentCommand{\longacronym}{sommo}{
+\NewDocumentCommand{\longacronym}{somsmo}{
% \end{macrocode}
% Provide the singular acronym macro.
% \begin{macrocode}
\expandafter\newcommand\csname#3\endcsname{%
- \if@begin@of@sentence{\MakeUppercase#4}{#4}\@\xspace%
+ \if@begin@of@sentence{\MakeUppercase#5}{#5}%
+ \IfBooleanTF{#4}{}{\@\xspace}%
}
% \end{macrocode}
% Expand the singular acronym macro in \PDF labels.
% \begin{macrocode}
- \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{#4 }}
+ \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{#5 }}
% \end{macrocode}
% Provide the plural acronym macro.
% \begin{macrocode}
\expandafter\newcommand\csname#3s\endcsname{%
\if@begin@of@sentence{%
- \IfNoValueTF{#5}{\MakeUppercase#4s}{\MakeUppercase#5}%
+ \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}%
}{%
- \IfNoValueTF{#5}{#4s}{#5}}\@\xspace%
+ \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}%
}
% \end{macrocode}
% Expand the plural acronym macro in \PDF labels.
% \begin{macrocode}
\pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{%
- \IfNoValueTF{#5}{#4s}{#5} }%
+ \IfNoValueTF{#6}{#5s}{#6} }%
}
}
% \end{macrocode}
@@ -1732,11 +2024,60 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+%
+% \begin{macro}{abstract}
+% Adjust the |abstract| environment to reset all acronym counters.
+% \begin{macrocode}
+\@ifundefined{abstract}{}{%
+ \let\end@old@abstract\endabstract%
+ \renewcommand\endabstract{\glsresetall\end@old@abstract}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tableofcontents}
+% Adjust the |\tableofcontents| macro to never show the long form of acronyms.
+% \begin{macrocode}
+\let\old@table@of@contents\tableofcontents
+\renewcommand\tableofcontents{%
+ \glsunsetall\old@table@of@contents\glsresetall%
+}
+% \end{macrocode}
+% \end{macro}
+%
% End of glossaries if.
% \begin{macrocode}
\fi
% \end{macrocode}
%
+%</package>
+%
+% \section{Biblatex datamodel file} \label{sec:data model}
+%
+%<*datamodel>
+
+% \begin{macro}{reportnumber}
+% \begin{macro}{collaboration}
+% \begin{macro}{protocollessurl}
+% Define the |dbx| file containing the |hep-paper| datamodel.
+% \begin{macrocode}
+\DeclareDatamodelFields[type=field, datatype=literal]{
+ reportnumber,
+ collaboration,
+}
+\DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl}
+\DeclareDatamodelEntryfields{
+ reportnumber,
+ collaboration,
+ protocollessurl,
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%</datamodel>
+%
% \Finale
\endinput
@@ -1744,3 +2085,32 @@
% \PrintIndex
% makeindex -s gglo.ist -o hep-paper.gls hep-paper.glo
% makeindex -s gglo.ist -o hep-paper.ind hep-paper.idx
+
+% \begin{macro}{\refstepcounter@...}
+% Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|.
+% \begin{macrocode}
+\def\refstepcounter@noarg#1{%
+ \cref@old@refstepcounter{#1}%
+ \cref@constructprefix{#1}{\cref@result}%
+ \@ifundefined{cref@#1@alias}%
+ {\def\@tempa{#1}}%
+ {\def\@tempa{\csname cref@#1@alias\endcsname}}%
+ \protected@edef\cref@currentlabel{%
+ [\@tempa][\arabic{#1}][\cref@result]%
+ \noexpand\@currentlabel%
+ }% changed
+}
+
+\def\refstepcounter@optarg[#1]#2{%
+ \cref@old@refstepcounter{#2}%
+ \cref@constructprefix{#2}{\cref@result}%
+ \@ifundefined{cref@#1@alias}%
+ {\def\@tempa{#1}}%
+ {\def\@tempa{\csname cref@#1@alias\endcsname}}%
+ \protected@edef\cref@currentlabel{%
+ [\@tempa][\arabic{#2}][\cref@result]%
+ \noexpand\@currentlabel% changed
+ }%
+}
+% \end{macrocode}
+% \end{macro}
diff --git a/macros/latex/contrib/hep-paper/hep-paper.ins b/macros/latex/contrib/hep-paper/hep-paper.ins
index b88c8423a5..881f9745b5 100644
--- a/macros/latex/contrib/hep-paper/hep-paper.ins
+++ b/macros/latex/contrib/hep-paper/hep-paper.ins
@@ -28,7 +28,10 @@ and version 1.3c or later is part of all distributions of
LaTeX version 2005/12/01 or later.
\endpreamble
-\generate{\file{hep-paper.sty}{\from{hep-paper.dtx}{package}}}
+\generate{
+ \file{hep-paper.sty}{\from{hep-paper.dtx}{package}}
+ \file{hep-paper.dbx}{\from{hep-paper.dtx}{datamodel}}
+}
\Msg{*********************************************************}
\Msg{*}
diff --git a/macros/latex/contrib/hep-paper/hep-paper.pdf b/macros/latex/contrib/hep-paper/hep-paper.pdf
index 29b7c506ae..4142b2afe7 100644
--- a/macros/latex/contrib/hep-paper/hep-paper.pdf
+++ b/macros/latex/contrib/hep-paper/hep-paper.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index d4c0b0a650..992bd5efd0 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.84 README.txt
+LaTeX lwarp package v0.85 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index f073d2bc36..8d1bb36cd3 100644
--- a/macros/latex/contrib/lwarp/lwarp.dtx
+++ b/macros/latex/contrib/lwarp/lwarp.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2020/04/24 v0.84 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2020/05/01 v0.85 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -1570,6 +1570,12 @@ Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfst
\end{itemize}
}
+\newcommand{\limitsacro}{%
+Define acronymn formats using \cs{textbf} instead
+\watchout[formats]
+of \cs{bfseries} etc.
+}
+
\newcommand{\limitschemfig}{%
If using \cs{polymerdelim} to add delimiters to a \cs{chemfig},
wrap both inside a single \env{lateximage}:
@@ -2999,7 +3005,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{44148}
+% \CheckSum{44178}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -3126,6 +3132,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.82}{2020/03/25}{\ 2020/03/25}
% \changes{v0.83}{2020/03/27}{\ 2020/03/27}
% \changes{v0.84}{2020/04/24}{\ 2020/04/24}
+% \changes{v0.85}{2020/05/01}{\ 2020/05/01}
@@ -3348,6 +3355,16 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.85:] \pkg{fontspec}
+% \begin{itemize}
+% \item \pkg{fontspec}: Fixed core font change macros for world languages.
+% \margintag{packages}
+% \item \pkg{acro}: Due to v3 changes, when defining acronym formats,
+% \watchout[\pkg{acro} formats]
+% use \cs{textbf} instead of \cs{bfseries}, etc.
+% \item Fixed \pkg{idxlayout}, \pkg{mathtools}, \pkg{titlesec}, \pkg{url}.
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.84:] Previous/next page links, numerous fixes.
% \begin{itemize}
% \item Added documentation of \env{BlockClass} and \cs{InlineClass}
@@ -10093,6 +10110,10 @@ This boolean may be tested by the user for later use.
% \limitsfixme
%
%
+% \subsubsection{\pkg{acro} package}
+% \limitsacro
+% \trouble{acro=\pkg{acro}}
+%
% \subsubsection{\pkg{chemfig} package}
%
% \limitschemfig
@@ -13919,6 +13940,7 @@ This boolean may be tested by the user for later use.
% ^^A
% ^^A
%
+% \DescribePackage{fontspec}
% Load \pkg{fontspec} if necessary:
% \changes{v0.50}{2018/02/24}{Fix: Load \pkg{fontspec} if necessary.}
% \begin{macrocode}
@@ -19014,7 +19036,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.84"
+printversion = "v0.85"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -21217,12 +21239,13 @@ end -- not --version
% Break ligatures and use upright apostrophes in \HTML\ tags.
%
% \cs{protect} is in case the tag appears in \TOC, \LOF, \LOT.
+% \changes{v0.85}{2020/04/30}{Fix: Added print macros for \pkg{fontspec}.}
% \begin{macrocode}
\newcommand*{\LWR@htmltagc}[1]{%
\LWR@traceinfo{LWR@htmltagc !\detokenize{#1}!}%
\begingroup%
\LWR@FBcancel%
-\ifmmode\else\protect\LWR@origttfamily\fi%
+\ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
\protect\LWR@origtextless%
\LWR@isolate{#1}%
\protect\LWR@origtextgreater%
@@ -21395,13 +21418,14 @@ end -- not --version
% \begin{macro}{\LWR@htmlclosecomment}
% \changes{v0.47}{2018/01/25}{Add \cs{mbox} to prevent line breaks.}
% \changes{v0.63}{2018/11/30}{Fix: Break ligature for \pkg{luatexko}.}
+% \changes{v0.85}{2020/04/29}{Fix: Added print macros for \pkg{fontspec}.}
% \begin{macrocode}
\newcommand*{\LWR@htmlopencomment}{%
{%
% \LWR@traceinfo{LWR@htmlopencomment}%
\begingroup%
\LWR@FBcancel%
-\ifmmode\else\protect\LWR@origttfamily\fi%
+\ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
\LWR@print@mbox{\LWR@origtextless{}!-\/-}%
\endgroup%
}%
@@ -21412,7 +21436,7 @@ end -- not --version
% \LWR@traceinfo{LWR@htmlclosecomment}%
\begingroup%
\LWR@FBcancel%
-\ifmmode\else\protect\LWR@origttfamily\fi%
+\ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
\LWR@print@mbox{-\/-\LWR@origtextgreater}%
\endgroup%
}%
@@ -21424,13 +21448,14 @@ end -- not --version
% \begin{macro}{\LWR@htmlcomment} \marg{comment}
%
% \changes{v0.28}{2017/04/13}{Breaks ligatures in \HTML\ comments.}
-%
+% \changes{v0.85}{2020/04/29}{Fix: Added print macros for \pkg{fontspec}.}
% \begin{macrocode}
\newcommand{\LWR@htmlcomment}[1]{%
\LWR@htmlopencomment{}%
{%
-\LWR@origttfamily% break ligatures
-#1%
+ \LWR@print@normalfont%
+ \LWR@origttfamily% break ligatures
+ #1%
}%
\LWR@htmlclosecomment{}}
% \end{macrocode}
@@ -26516,8 +26541,10 @@ end -- not --version
% \end{macrocode}
% \changes{v0.50}{2018/03/02}{Improved column alignment.}
% \changes{v0.54}{2018/04/06}{Improved column alignment.}
+% \changes{v0.85}{2020/04/29}{Fix: Added print macros for \pkg{fontspec}.}
% \begin{macrocode}
% \LWR@print@normalsize%
+\LWR@print@normalfont%
\LWR@origttfamily%
\LWR@print@small%
% \end{macrocode}
@@ -38151,17 +38178,24 @@ color:\LWR@origpound\LWR@tempcolor%
% \changes{v0.48}{2018/02/02}{Improved font control.}
% \changes{v0.50}{2018/02/20}{Robustify macros.}
% \changes{v0.72}{2019/05/24}{Use \cs{LWR@formatted} for \cs{bfseries}, etc.}
+% \changes{v0.85}{2020/04/29}{Fix: Added print macros for \pkg{fontspec}.}
%
% \begin{macro}{\mdseries}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@mdseries}{\renewcommand*{\LWR@f@series}{md}}
+\newrobustcmd*{\LWR@HTML@mdseries}{%
+ \LWR@print@mdseries%
+ \renewcommand*{\LWR@f@series}{md}%
+}
\LWR@formatted{mdseries}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\bfseries}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@bfseries}{\renewcommand*{\LWR@f@series}{bf}}
+\newrobustcmd*{\LWR@HTML@bfseries}{%
+ \LWR@print@bfseries%
+ \renewcommand*{\LWR@f@series}{bf}%
+}
\LWR@formatted{bfseries}
% \end{macrocode}
% \end{macro}
@@ -38169,7 +38203,10 @@ color:\LWR@origpound\LWR@tempcolor%
% \begin{macro}{\ebweight} From \pkg{nfssext-cfr}.
% \changes{v0.72}{2019/05/26}{\pkg{nfssext-cfr}: Added.}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@ebweight}{\renewcommand*{\LWR@f@series}{eb}}
+\newrobustcmd*{\LWR@HTML@ebweight}{%
+ \LWR@print@ebweight%
+ \renewcommand*{\LWR@f@series}{eb}%
+}
\LWR@formatted{ebweight}
% \end{macrocode}
% \end{macro}
@@ -38177,49 +38214,75 @@ color:\LWR@origpound\LWR@tempcolor%
% \begin{macro}{\lgweight} From \pkg{nfssext-cfr}.
% \changes{v0.72}{2019/05/26}{\pkg{nfssext-cfr}: Added.}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@lgweight}{\renewcommand*{\LWR@f@series}{lg}}
+\newrobustcmd*{\LWR@HTML@lgweight}{%
+ \LWR@print@lgweight%
+ \renewcommand*{\LWR@f@series}{lg}%
+}
\LWR@formatted{lgweight}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\rmfamily}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@rmfamily}{\renewcommand*{\LWR@f@family}{rm}}
+\newrobustcmd*{\LWR@HTML@rmfamily}{%
+ \LWR@print@rmfamily%
+ \renewcommand*{\LWR@f@family}{rm}%
+}
\LWR@formatted{rmfamily}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\sffamily}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@sffamily}{\renewcommand*{\LWR@f@family}{sf}}
+\newrobustcmd*{\LWR@HTML@sffamily}{%
+ \LWR@print@sffamily%
+ \renewcommand*{\LWR@f@family}{sf}%
+}
\LWR@formatted{sffamily}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\ttfamily}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@ttfamily}{\renewcommand*{\LWR@f@family}{tt}}
+\newrobustcmd*{\LWR@HTML@ttfamily}{%
+ \LWR@print@ttfamily%
+ \renewcommand*{\LWR@f@family}{tt}%
+}
\LWR@formatted{ttfamily}
% \end{macrocode}
% \end{macro}
-
+%
+%
+% The following use \cs{AtBeginDocument} due to the
+% \LaTeX\ core \cs{reinstall@nfss@defs}, which redefines these
+% \cs{AtBeginDocument}. See \cmds{texdoc source2e}.
+%
% \begin{macro}{\upshape}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@upshape}{\renewcommand*{\LWR@f@shape}{up}}
+\newrobustcmd*{\LWR@HTML@upshape}{%
+ \LWR@print@upshape%
+ \renewcommand*{\LWR@f@shape}{up}%
+}
\AtBeginDocument{\LWR@formatted{upshape}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\itshape}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@itshape}{\renewcommand*{\LWR@f@shape}{it}}
+\newrobustcmd*{\LWR@HTML@itshape}{%
+ \LWR@print@itshape%
+ \renewcommand*{\LWR@f@shape}{it}%
+}
\AtBeginDocument{\LWR@formatted{itshape}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\scshape}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@scshape}{\renewcommand*{\LWR@f@shapecaps}{sc}}
+\newrobustcmd*{\LWR@HTML@scshape}{%
+ \LWR@print@scshape%
+ \renewcommand*{\LWR@f@shapecaps}{sc}%
+}
\AtBeginDocument{\LWR@formatted{scshape}}
% \end{macrocode}
% \end{macro}
@@ -38230,7 +38293,10 @@ color:\LWR@origpound\LWR@tempcolor%
\@ifundefined{ulcshape}{
\LetLtxMacro\ulcshape\upshape
}{}
-\newrobustcmd*{\LWR@HTML@ulcshape}{\renewcommand*{\LWR@f@shapecaps}{ulc}}
+\newrobustcmd*{\LWR@HTML@ulcshape}{%
+ \LWR@print@ulcshape%
+ \renewcommand*{\LWR@f@shapecaps}{ulc}%
+}
\AtBeginDocument{\LWR@formatted{ulcshape}}
% \end{macrocode}
% \end{macro}
@@ -38242,6 +38308,7 @@ color:\LWR@origpound\LWR@tempcolor%
\LetLtxMacro\sishape\scshape
}{}
\newrobustcmd*{\LWR@HTML@sishape}{%
+ \LWR@print@sishape%
\renewcommand*{\LWR@f@shape}{it}
\renewcommand*{\LWR@f@shapecaps}{sc}%
}
@@ -38252,7 +38319,10 @@ color:\LWR@origpound\LWR@tempcolor%
% \begin{macro}{\slshape}
% \changes{v0.62}{2018/11/11}{Added.}
% \begin{macrocode}
-\newrobustcmd*{\LWR@HTML@slshape}{\renewcommand*{\LWR@f@shape}{sl}}
+\newrobustcmd*{\LWR@HTML@slshape}{%
+ \LWR@print@slshape%
+ \renewcommand*{\LWR@f@shape}{sl}%
+}
\AtBeginDocument{\LWR@formatted{slshape}}
% \end{macrocode}
% \end{macro}
@@ -40249,6 +40319,8 @@ color:\LWR@origpound\LWR@tempcolor%
% \DescribePackage{acro}
% \pkg{acro} is patched for use by \pkg{lwarp}.
%
+% \limitsacro
+%
% \changes{v0.48}{2018/02/02}{\pkg{acro}: Added.}
%
% \codehtml
@@ -40281,6 +40353,9 @@ color:\LWR@origpound\LWR@tempcolor%
% \changes{v0.76}{2019/10/07}{\pkg{acro}: Updated for v2.10.}
% \begin{macrocode}
\ExplSyntaxOn
+\@ifpackagelater{acro}{2020/04/29}%
+{}% v3 or later
+{% before v3
\@ifpackagelater{acro}{2019/09/23}%
{% v2.10 or later
\cs_gset_protected:Npn \__acro_typeset:nn #1#2
@@ -40377,6 +40452,7 @@ color:\LWR@origpound\LWR@tempcolor%
\group_end:
}
}% before v2.10
+}% before v3
\ExplSyntaxOff
% \end{macrocode}
@@ -45448,7 +45524,7 @@ s%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{chemgreek}[2016/02/10]
+\LWR@ProvidesPackagePass{chemgreek}[2020/01/16]
% \end{macrocode}
% \begin{macrocode}
@@ -52215,7 +52291,8 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
\providecommand*{\multfootsep}{,}
% \end{macrocode}
%
-% Using \pkg{cleveref}:
+% Using \pkg{cleveref}.
+% \cs{labelcref} only prints the number of the object, not its type.
% \begin{macrocode}
\providecommand*{\footref}[1]{\labelcref{#1}}
% \end{macrocode}
@@ -55190,16 +55267,24 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \begin{macrocode}
\newcommand{\LWR@indexprenote}{}
+% \end{macrocode}
+%
+% \cs{AtBeginDocument} to help with package load order.
+% \changes{v0.85}{2020/04/29}{\pkg{idxlayout}: Fixed: \cs{AtBeginDocument} for load order.}
+% \begin{macrocode}
+\AtBeginDocument{
+ \preto\printindex{
-\preto\printindex{
-
-\LWR@orignewpage
-\LWR@startpars
+ \LWR@orignewpage
+ \LWR@startpars
-\LWR@indexprenote
+ \LWR@indexprenote
+ }
}
-
+% \end{macrocode}
+%
+% \begin{macrocode}
\newcommand{\setindexprenote}[1]{\renewcommand{\LWR@indexprenote}{#1}}
\newcommand*{\noindexprenote}{\renewcommand{\LWR@indexprenote}{}}
@@ -58845,8 +58930,11 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{
\newcommand{\ArrowBetweenLines}[1][\Updownarrow]{#1}% no starred
}
-
-\CustomizeMathJax{\newcommand{\shortintertext}[1]{\\ \text{#1}\notag \\}}
+% \end{macrocode}
+%
+% \changes{v0.85}{2020/05/01}{\pkg{mathtools}: Fixed: \cs{shortintertext}.}
+% \begin{macrocode}
+\CustomizeMathJax{\newcommand{\shortintertext}[1]{\text{#1}\notag \\}}
\CustomizeMathJax{\newcommand{\vdotswithin}[1]{\hspace{.5em}\vdots}}
\CustomizeMathJax{\newcommand{\shortvdotswithin}[1]{ & \hspace{.5em}\vdots \\}}
@@ -61742,7 +61830,13 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\newcommand*{\LWR@nccmath@eqs}[2][]{\begin{eqnarray}#2\end{eqnarray}}
\begin{warpMathJax}
-\CustomizeMathJax{\renewcommand{\intertext}[2][]{\\ \text{#2}\notag \\}}
+% \end{macrocode}
+%
+% \changes{v0.85}{2020/05/01}{\pkg{mathtools}: Fixed: \cs{shortintertext}.}
+% \begin{macrocode}
+\CustomizeMathJax{\renewcommand{\intertext}[2][]{\text{#2}\notag \\}}
+% \end{macrocode}
+% \begin{macrocode}
\CustomizeMathJax{\newenvironment{fleqn}[1][]{}{}}
\CustomizeMathJax{\newenvironment{ceqn}{}{}}
\CustomizeMathJax{\newenvironment{darray}[2][c]{\begin{array}[#1]{#2}}{\end{array}}}
@@ -72956,10 +73050,28 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% Discard all options for \pkg{lwarp-titlesec}:
-
+%
% \codehtml
+%
+% \changes{v0.85}{2020/04/30}{\pkg{titlesec}: \optn{pagestyles} option.}
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{titlesec}[2016/03/21]
+\PackageInfo{lwarp}{Using the lwarp version of package `titlesec'.}%
+\ProvidesPackage{lwarp-titlesec}[2016/03/21]
+
+\newbool{LWR@loadtitleps}
+\boolfalse{LWR@loadtitleps}
+
+\DeclareOption{pagestyles}{
+ \booltrue{LWR@loadtitleps}
+}
+
+\DeclareOption*{}
+
+\ProcessOptions\relax
+
+\ifbool{LWR@loadtitleps}{
+ \RequirePackage{lwarp-titleps}
+}{}
% \end{macrocode}
% \begin{noindmacro}{\titlelabel} \marg{label-format}
@@ -75388,6 +75500,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \changes{v0.52}{2018/03/29}{\pkg{url}: Added.}
% \changes{v0.80}{2020/02/06}{\pkg{url}: Creates hyperlinks.}
+% \changes{v0.85}{2020/05/01}{\pkg{url}: Fixed print mode.}
%
% \codehtml
%
@@ -75406,9 +75519,10 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% ^^A \LWR@url@origUrl@FormatString%
%
% \begin{macrocode}
-\renewcommand*{\Url@FormatString}{%
+\newcommand*{\LWR@HTML@Url@FormatString}{%
\expandafter\LWR@url@orig@url\expandafter{\Url@String}%
}
+\LWR@formatted{Url@FormatString}
% \end{macrocode}
%
% \iffalse
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index eea09fbc8e..44912c4d03 100644
--- a/macros/latex/contrib/lwarp/lwarp.pdf
+++ b/macros/latex/contrib/lwarp/lwarp.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/lwarpmk.lua b/macros/latex/contrib/lwarp/lwarpmk.lua
index a6239409bc..b2e06788aa 100755
--- a/macros/latex/contrib/lwarp/lwarpmk.lua
+++ b/macros/latex/contrib/lwarp/lwarpmk.lua
@@ -2,7 +2,7 @@
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.84"
+printversion = "v0.85"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
diff --git a/macros/latex/contrib/univie-ling/README b/macros/latex/contrib/univie-ling/README
index 8f87c4fe2b..3992b6e1a2 100644
--- a/macros/latex/contrib/univie-ling/README
+++ b/macros/latex/contrib/univie-ling/README
@@ -80,6 +80,13 @@ also have a look at the example files.
== CHANGES ==
+V. 1.10 (2020-05-01):
+ - univie-ling-wlg.cls:
+ * fix encoding incompatibilities.
+ - univie-ling.bbx:
+ * only print origyear (not full origdate) in label.
+ * fix title capitalization in inbook, mvbook and mvcollection types.
+
V. 1.9 (2019-01-21)
- univie-ling.bbx: correct fix of duplicate editorstrg parentheses.
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
index 86bc01fbda..c41cc4ff75 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
@@ -36,7 +36,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.bbx}[2019/01/21 v1.9 biblatex bibliography style]
+\ProvidesFile{univie-ling.bbx}[2019/01/22 v1.10dev biblatex bibliography style]
% Load base style (authoryear)
\RequireBibliographyStyle{authoryear}
@@ -116,7 +116,17 @@
\iffieldundef{pubstate}{%
\iffieldundef{labelyear}{}{%
\printlabeldateextra%
- \iffieldundef{origyear}{}{\addspace\mkbibbrackets{\printorigdate}}%
+ \iffieldundef{origyear}{}{%
+ \addspace\mkbibbrackets{%
+ \iffieldundef{origmonth}{%
+ \printorigdate}{%
+ \printfield{origyear}%
+ \iffieldundef{origenddate}{}{%
+ \bibdaterangesep\printfield{origendyear}%
+ }%
+ }%
+ }%
+ }%
\clearfield{year}%
}%
}{%
@@ -567,7 +577,7 @@
% FIELD FORMATS
%
-\DeclareFieldFormat[article,book,collection,incollection,inproceedings,thesis,unpublished]{titlecase}{\MakeSentenceCase*{#1}}%
+\DeclareFieldFormat[article,book,mvbook,inbook,collection,mvcollection,incollection,inproceedings,thesis,unpublished]{titlecase}{\MakeSentenceCase*{#1}}%
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1}
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
index aeed54c5bd..3a7815e0c6 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
@@ -34,7 +34,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.cbx}[2019/01/21 v1.9 biblatex citation style]
+\ProvidesFile{univie-ling.cbx}[2019/01/22 v1.10dev biblatex citation style]
\RequireCitationStyle{authoryear}
@@ -70,7 +70,17 @@
{\printtext[bibhyperref]{%
\printfield{labelyear}%
\printfield{extradate}}%
- \iffieldundef{origyear}{}{\addspace\mkbibbrackets{\printorigdate}}%
+ \iffieldundef{origyear}{}{%
+ \addspace\mkbibbrackets{%
+ \iffieldundef{origmonth}{%
+ \printorigdate}{%
+ \printfield{origyear}%
+ \iffieldundef{origenddate}{}{%
+ \bibdaterangesep\printfield{origendyear}%
+ }%
+ }%
+ }%
+ }%
}%
}
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
index 44743fba7e..a0b21eae63 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
index 2e5b42d01e..26a611ffcd 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.9, 2019/01/21}
+\date{Version 1.10, 2020/05/01}
\maketitle
@@ -315,6 +315,7 @@ Templates are provided as well:
\section{Release History}
\begin{description}
+ \item 2020/05/01 (v.\,1.10) No change to this class.
\item 2019/01/21 (v.\,1.9) No change to this class.
\item 2019/01/15 (v.\,1.8) No change to this class.
\item 2018/11/07 (v.\,1.7) No change to this class.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
index d0d41dec34..78f1ef1fb5 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
index 859ac65c0d..c691588972 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.9, 2019/01/21}
+\date{Version 1.10, 2020/05/01}
\maketitle
@@ -339,6 +339,7 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2020/05/01 (v.\,1.10) No change to this class.
\item 2019/01/21 (v.\,1.9) No change to this class.
\item 2019/01/15 (v.\,1.8) Fix encoding of German declaration string.
\item 2018/11/07 (v.\,1.7) No change to this class.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
index f7cdd4f59e..471763d75c 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
index 1ee24a3dad..4c43f624ce 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.9, 2019/01/21}
+\date{Version 1.10, 2020/05/01}
\maketitle
@@ -363,6 +363,7 @@ Templates are provided as well:
\section{Release History}
\begin{itemize}
+ \item 2020/05/01 (v.\,1.10) No change to this class.
\item 2019/01/21 (v.\,1.9) No change to this class.
\item 2019/01/15 (v.\,1.8) Fix title abbreviations (MA, BA).
\item 2018/11/07 (v.\,1.7) No change to this class.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
index 57659d94f6..d9bac596d1 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
index 6c491d7d2d..34fc150c1e 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.9, 2019/01/21}
+\date{Version 1.10, 2020/05/01}
\maketitle
@@ -212,10 +212,11 @@ A template is provided as well: \url{https://github.com/jspitz/univie-ling/raw/m
\section{Release History}
\begin{itemize}
- \item 2019/01/21 (v.\,1.9) No change to this class.
- \item 2019/01/15 (v.\,1.8) No change to this class.
- \item 2018/11/07 (v.\,1.7) No change to this class.
- \item 2018/11/04 (v.\,1.6) Remove \jmacro{subexamples} environment as this is now provided by \textsf{covington}.
+ \item 2020/05/01 (v.\,1.10) Fix encoding incompatibilities.
+ \item 2019/01/21 (v.\,1.9) No change to this class.
+ \item 2019/01/15 (v.\,1.8) No change to this class.
+ \item 2018/11/07 (v.\,1.7) No change to this class.
+ \item 2018/11/04 (v.\,1.6) Remove \jmacro{subexamples} environment as this is now provided by \textsf{covington}.
\item 2018/09/03 (v.\,1.5)
\begin{itemize}
\item Introduce \jmacro{subexamples} environment.
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
index c065ef81b7..b135db0976 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
@@ -31,7 +31,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{univie-ling-expose}[2019/01/21 v1.9 Univie Linguistic Exposes (JSp)]
+\ProvidesPackage{univie-ling-expose}[2019/05/01 v1.10 Univie Linguistic Exposes (JSp)]
\RequirePackage{xkeyval}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
index fd63517941..c190660feb 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
@@ -31,7 +31,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{univie-ling-paper}[2019/01/21 v1.9 Univie Linguistic Papers (JSp)]
+\ProvidesPackage{univie-ling-paper}[2019/05/01 v1.10 Univie Linguistic Papers (JSp)]
\RequirePackage{xkeyval}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
index c0e25d7e53..b43242a9ed 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
@@ -31,7 +31,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{univie-ling-thesis}[2019/01/21 v1.9 Univie Linguistic Theses (JSp)]
+\ProvidesPackage{univie-ling-thesis}[2019/05/01 v1.10 Univie Linguistic Theses (JSp)]
\RequirePackage{xkeyval}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
index ec2a665e22..f24a6c12bf 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
@@ -194,9 +194,9 @@
\deftranslation[to=English]{corrauthors}{Corresponding authors}
\deftranslation[to=German]{edby}{Hg.\,v.}
\deftranslation[to=English]{edby}{Ed.\,by}
-\deftranslation[to=German]{imp-editor}{Eigentmer, Herausgeber und Verleger}
+\deftranslation[to=German]{imp-editor}{Eigent\"umer, Herausgeber und Verleger}
\deftranslation[to=English]{imp-editor}{Owner, editor and publisher}
-\deftranslation[to=German]{univie-address}{Sensengasse 3a\\1090 Wien\\sterreich}
+\deftranslation[to=German]{univie-address}{Sensengasse 3a\\1090 Wien\\\"Osterreich}
\deftranslation[to=English]{univie-address}{Sensengasse 3a\\1090 Vienna\\Austria}
\deftranslation[to=German]{edboard}{Redaktion}
\deftranslation[to=English]{edboard}{Editorial board}
@@ -206,7 +206,7 @@
\deftranslation[to=English]{contact}{Contact}
\deftranslation[to=German]{appform}{Die \emph{Wiener Linguistische Gazette} erscheint in loser Folge
im Open-Access-Format.\\
- Alle Ausgaben ab Nr. 72 (2005) sind online verfgbar.}
+ Alle Ausgaben ab Nr. 72 (2005) sind online verf\"ugbar.}
\deftranslation[to=English]{appform}{The \versal{WLG} journal is published in loose sequence and in
open access format.\\
All issues as of 72 (2005) are available online.}
@@ -912,8 +912,8 @@ pdfborder={0 0 0}
% Varioref:
\RequirePackage[ngerman]{varioref}
\AtBeginDocument{%
-\renewcommand\reftextafter{auf der \reftextvario{folgenden}{nchsten} Seite}%
-\renewcommand\reftextfaceafter{auf der \reftextvario{folgenden}{nchsten} Seite}%
+\renewcommand\reftextafter{auf der \reftextvario{folgenden}{n\"achsten} Seite}%
+\renewcommand\reftextfaceafter{auf der \reftextvario{folgenden}{n\"achsten} Seite}%
\renewcommand\reftextbefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
\renewcommand\reftextfacebefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
\renewcommand\reftextfaraway[1]{auf S.~\pageref{#1}}%
diff --git a/macros/latex/contrib/xcjk2uni/README.md b/macros/latex/contrib/xcjk2uni/README.md
index 26676edd3f..8f9535728f 100644
--- a/macros/latex/contrib/xcjk2uni/README.md
+++ b/macros/latex/contrib/xcjk2uni/README.md
@@ -19,12 +19,10 @@ Set the current encoding. The default encoding is GBK.
\CJKchartouni{<character>}
Convert a single CJK character to its Unicode.
-It requires two steps of expansion.
\CJKsfdtouni{<plane>}{<slot>}
Convert the .sfd coordinate to its Unicode.
-It requires two steps of expansion.
You can read the package manual (in Chinese) for more detailed explanations.
@@ -38,7 +36,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2013-2014, 2016, 2018 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2013-2014, 2016, 2018-2020 by Qing Lee <sobenlee@gmail.com>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -51,7 +49,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
diff --git a/macros/latex/contrib/xcjk2uni/xCJK2uni.dtx b/macros/latex/contrib/xcjk2uni/xCJK2uni.dtx
index 860d37f915..7a87a2a2b5 100644
--- a/macros/latex/contrib/xcjk2uni/xCJK2uni.dtx
+++ b/macros/latex/contrib/xcjk2uni/xCJK2uni.dtx
@@ -25,12 +25,10 @@ Set the current encoding. The default encoding is GBK.
\CJKchartouni{<character>}
Convert a single CJK character to its Unicode.
-It requires two steps of expansion.
\CJKsfdtouni{<plane>}{<slot>}
Convert the .sfd coordinate to its Unicode.
-It requires two steps of expansion.
You can read the package manual (in Chinese) for more detailed explanations.
@@ -44,7 +42,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2013-2014, 2016, 2018-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2013-2014, 2016, 2018-2020 by Qing Lee <sobenlee@gmail.com>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -57,7 +55,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
@@ -89,7 +87,7 @@ Copyright and Licence
\preamble
- Copyright (C) 2013-2014, 2016, 2018-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2013-2014, 2016, 2018-2020 by Qing Lee <sobenlee@gmail.com>
--------------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -102,7 +100,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
@@ -192,7 +190,7 @@ Copyright and Licence
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\RequirePackage{expl3}
%<make>\input expl3-generic %
-%<+package|make|def>\GetIdInfo$Id: xCJK2uni.dtx 21b29fd 2019-04-07 23:27:31 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+package|make|def>\GetIdInfo$Id: xCJK2uni.dtx daef005 2020-05-01 21:09:45 +0800 Qing Lee <sobenlee@gmail.com> $
%<package|make|def> {Convert CJK character to Unicode.}
%<*driver>
\def\ctxaux#1#2#3{\def\ctxversion{v#2}}\ctxaux
@@ -202,7 +200,7 @@ Copyright and Licence
%<make>\cs_if_exist:NF \ProvidesExplFile
%<make> {
%<make> \group_begin:
-%<make> \cs_set_nopar:Npn \ProvidesExplFile #1#2#3#4
+%<make> \cs_set:Npn \ProvidesExplFile #1#2#3#4
%<make> { \iow_log:x { File:~#1~#2~v#3~#4 } }
%<make> \exp_after:wN \group_end:
%<make> }
@@ -214,7 +212,7 @@ Copyright and Licence
%<JIS>\ProvidesExplFile{xCJK2uni-UJIS.def}
%<KS>\ProvidesExplFile{xCJK2uni-UKS.def}
%<*driver|package|make|def>
- {\ExplFileDate}{0.8}{\ExplFileDescription}
+ {\ExplFileDate}{1.0}{\ExplFileDescription}
%</driver|package|make|def>
%<*driver>
\documentclass{ctxdoc}
@@ -226,7 +224,7 @@ Copyright and Licence
%</driver>
% \fi
%
-% \CheckSum{585}
+% \CheckSum{532}
% \GetFileId{xCJK2uni.sty}
%
% \title{\bfseries\pkg{xCJK2uni} 宏包}
@@ -264,8 +262,7 @@ Copyright and Licence
% \begin{syntax}
% \cs{CJKchartouni} \Arg{单个CJK文字}
% \end{syntax}
-% 将文字转换成 $16$ 进制形式的 Unicode。例如 |\CJKchartouni{一}| 将得到 |4E00|。
-% 将它展开两次就可以得到结果。
+% 将文字转换成 Unicode。例如 |\CJKchartouni{一}| 将得到 \texttt{\number\string"4E00 }。
% \end{function}
%
% \begin{function}[EXP]{\CJKsfdtouni}
@@ -273,8 +270,8 @@ Copyright and Licence
% \cs{CJKsfdtouni} \Arg{plane} \Arg{slot}
% \end{syntax}
% \meta{plane} 表示由 \file{.sfd} 文件定义的子字体的编号,\meta{slot} 表示在
-% 子字体中的位置,这个命令将得到该坐标位置的 Unicode。将它展开两次就可以得到结果。
-% 如果在当前编码下,该坐标位置不合法,将展开为空。
+% 子字体中的位置,这个命令将得到该坐标位置的 Unicode。
+% 如果在当前编码下,该坐标位置不合法,将展开为空并报错。
% \end{function}
%
% \end{documentation}
@@ -300,7 +297,7 @@ Copyright and Licence
'l3kernel'~and~'l3packages'\\\\
using~your~TeX~package~manager~or~from~CTAN.
}
-\@ifpackagelater { expl3 } { 2019/03/05 } { }
+\@ifpackagelater { expl3 } { 2020/03/06 } { }
{ \msg_error:nn { xCJK2uni } { l3-too-old } }
% \end{macrocode}
%
@@ -330,7 +327,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_set_enc:nnnnnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_enc:nnnnnn #1#2#3#4#5#6
+\cs_new_protected:Npn \@@_set_enc:nnnnnn #1#2#3#4#5#6
{
\seq_gput_right:Nn \c_@@_encoding_seq {#1}
\prop_gput:Nnn \c_@@_sfd_prop {#1} {#2}
@@ -366,25 +363,63 @@ Copyright and Licence
%
% \begin{macro}{\@@_enc_map:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_enc_map:nn #1#2
+\cs_new_protected:Npn \@@_enc_map:nn #1#2
{
\int_set_eq:Nc \l_@@_i_min_int { c_@@_ #1 _i_min_int }
\int_set_eq:Nc \l_@@_ii_min_int { c_@@_ #1 _ii_min_int }
\int_set_eq:Nc \l_@@_gap_begin_int { c_@@_ #1 _gap_begin_int }
\int_set_eq:Nc \l_@@_gap_end_int { c_@@_ #1 _gap_end_int }
\int_set_eq:Nc \l_@@_plane_int { c_@@_ #1 _plane_int }
- \cs_if_exist:cF { CJKtu_ #1 _sfd_map:nn }
- { \group_begin: \file_input:n { xCJK2uni-#2.def } \group_end: }
- \cs_set_eq:Nc \CJKtu_sfd_map:nn { CJKtu_ #1 _sfd_map:nn }
+ \cs_if_exist:cF { CJKtu_ #1 _index_map:n }
+ { \@@_input_sfd_map:n {#2} }
+ \cs_set_eq:Nc \@@_index_map:n { CJKtu_ #1 _index_map:n }
+ }
+\cs_new_protected:Npn \@@_input_sfd_map:n #1
+ {
+ \group_begin:
+ \ExplSyntaxOn
+ \file_input:n { xCJK2uni-#1.def }
+ \group_end:
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_use_enc_map:n}
+% \begin{macro}[int]{\CJKtu_index_map:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_use_enc_map:n #1
+\cs_new:Npn \CJKtu_index_map:n #1
+ { \CJKtu_unicode:n { \@@_index_map:n {#1} } }
+\cs_new_eq:NN \CJKtu_unicode:n \use:n
+\cs_new_eq:NN \@@_index_map:n \use_none:n
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\CJKtu_index_map:nn}
+% \begin{macrocode}
+\cs_new_protected:Npn \CJKtu_index_map:nn #1
+ {
+ \exp_args:Ncc \@@_index_map_aux:NNn
+ { CJKtu_ #1 _index_map:n } { c_@@_ #1 _intarray }
+ }
+\cs_new_protected:Npn \@@_index_map_aux:NNn #1#2
{
- \prop_get:NxNTF \c_@@_sfd_prop {#1} \l_@@_sfd_tl
+ \cs_new:Npn #1 ##1 { \intarray_item:Nn #2 { ##1 + 1 } }
+ \intarray_const_from_clist:Nn #2
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\CJKtu_sfd_map:nn}
+% \begin{macrocode}
+\cs_new:Npn \CJKtu_sfd_map:nn #1#2
+ { \CJKtu_index_map:n { ( #1 - 1 ) * 256 + (#2) } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\CJKtu_use_enc_map:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \CJKtu_use_enc_map:n #1
+ {
+ \prop_get:NnNTF \c_@@_sfd_prop {#1} \l_@@_sfd_tl
{ \@@_enc_map:nn {#1} { \l_@@_sfd_tl } }
{ \msg_error:nnx { xCJK2uni } { invalid-encoding } {#1} }
}
@@ -394,7 +429,7 @@ Copyright and Licence
Only~\seq_use:Nnnn \c_@@_encoding_seq { ~and~ } { ,~ } { ,~and~ } ~
are~supported.
}
-\prg_generate_conditional_variant:Nnn \prop_get:NnN { Nx } { TF }
+\cs_generate_variant:Nn \CJKtu_use_enc_map:n { x }
% \end{macrocode}
% \end{macro}
%
@@ -407,36 +442,12 @@ Copyright and Licence
\@@_set_enc:nnnnnn { GBK } { UGBK } { "81 } { "40 } { "7E } { "80 }
% \end{macrocode}
%
-% \begin{macro}{\@@_sfd_to_unicode:nn}
-% \begin{macrocode}
-\cs_new_nopar:Npn \@@_sfd_to_unicode:nn #1#2
- {
- \exp:w \exp_last_unbraced:Nf
- \@@_get_unicode:w \CJKtu_sfd_map:nn {#1} {#2} \exp_end:
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_get_unicode:w}
-% \begin{macrocode}
-\cs_new_nopar:Npn \@@_get_unicode:w #1 \exp_end:
- {
- \tl_if_empty:nTF {#1}
- { \exp_end: }
- { \@@_get_unicode_aux:w #1 \q_stop }
- }
-\cs_new_nopar:Npn \@@_get_unicode_aux:w #1 \or: #2 \q_stop
- { \or: #2 \exp_end: #1 }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_char_to_unicode:n}
+% \begin{macro}[int]{\CJKtu_char_to_unicode:n}
% \begin{macrocode}
\group_begin:
\char_set_catcode_active:n { "7F }
-\cs_new_nopar:Npn \@@_char_to_unicode:n #1
+\cs_new:Npn \CJKtu_char_to_unicode:n #1
{
- \exp:w
\int_compare:nNnTF { \tl_count:n {#1} } = 2
{ \CJKtu_byte:NN #1 }
{
@@ -445,23 +456,23 @@ Copyright and Licence
{ \@@_encoding_error: }
}
}
-\cs_new_nopar:Npn \@@_byte:wNwnw ^^7f #1 ^^7f #2 ^^7f
+\cs_new:Npn \@@_byte:wNwnw ^^7f #1 ^^7f #2 ^^7f
{ \CJKtu_byte_map:nn { `#1 } {#2} }
-\cs_new_nopar:Npn \@@_byte:Nwnw #1 ^^7f #2 ^^7f
+\cs_new:Npn \@@_active_byte:Nwnw #1 ^^7f #2 ^^7f
{ \CJKtu_byte_map:nn { `#1 } {#2} }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\CJKtu_bookmarks_hook:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CJKtu_bookmarks_hook:
+\cs_new_protected:Npn \CJKtu_bookmarks_hook:
{
- \cs_set_eq:NN ^^7f \@@_byte:Nwnw
- \cs_set_eq:NN \CJK@XX \CJKtu_byte:NN
- \cs_set_eq:NN \CJKchar \@@_byte:wnn
- \cs_set_eq:NN \CCTchar \CJKtu_byte:nn
- \cs_set_eq:NN \@CCTSetChar \@@_CCT_byte:NNN
- \cs_set_eq:NN \@@_get_unicode:n \@@_UTF_xvi_be:n
+ \cs_set_eq:NN ^^7f \@@_active_byte:Nwnw
+ \cs_set_eq:NN \CJK@XX \CJKtu_byte:NN
+ \cs_set_eq:NN \CJKchar \@@_byte:wnn
+ \cs_set_eq:NN \CCTchar \CJKtu_byte:nn
+ \cs_set_eq:NN \@CCTSetChar \@@_CCT_byte:NNN
+ \cs_set_eq:NN \CJKtu_unicode:n \@@_UTF_xvi_be_octal:n
}
\group_end:
% \end{macrocode}
@@ -470,9 +481,9 @@ Copyright and Licence
% \begin{macro}[int]{\CJKtu_byte:NN}
% \begin{macro}{\@@_CCT_byte:NNN}
% \begin{macrocode}
-\cs_new_nopar:Npn \CJKtu_byte:NN #1#2
+\cs_new:Npn \CJKtu_byte:NN #1#2
{ \CJKtu_byte:nn { `#1 } { `#2 } }
-\cs_new_nopar:Npn \@@_CCT_byte:NNN #1#2#3
+\cs_new:Npn \@@_CCT_byte:NNN #1#2#3
{ \CJKtu_byte:nn { `#1 } { `#3 } }
% \end{macrocode}
% \end{macro}
@@ -480,13 +491,13 @@ Copyright and Licence
%
% \begin{macro}{\@@_byte:wnn}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_byte:wnn #1# { \CJKtu_byte:nn }
+\cs_new:Npn \@@_byte:wnn #1# { \CJKtu_byte:nn }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\CJKtu_byte:nn}
% \begin{macrocode}
-\cs_new_nopar:Npn \CJKtu_byte:nn #1#2
+\cs_new:Npn \CJKtu_byte:nn #1#2
{
\int_compare:nTF { \l_@@_i_min_int <= #1 <= \l_@@_i_max_int }
{
@@ -501,11 +512,8 @@ Copyright and Licence
}
{ \@@_encoding_error: }
}
-\cs_new_nopar:Npn \@@_encoding_error:
- {
- \msg_expandable_error:nn { xCJK2uni } { encoding-error }
- \exp_end:
- }
+\cs_new:Npn \@@_encoding_error:
+ { \msg_expandable_error:nn { xCJK2uni } { encoding-error } }
\msg_new:nnn { xCJK2uni } { encoding-error }
{ Wrong~encoding~scheme. }
% \end{macrocode}
@@ -513,9 +521,9 @@ Copyright and Licence
%
% \begin{macro}[int]{\CJKtu_byte_map:nn}
% \begin{macrocode}
-\cs_new_nopar:Npn \CJKtu_byte_map:nn #1#2
+\cs_new:Npn \CJKtu_byte_map:nn #1#2
{
- \exp_args:Nf \@@_index_map:n
+ \exp_args:Nf \CJKtu_index_map:n
{
\int_eval:n
{
@@ -529,38 +537,21 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_index_map:n}
+% \begin{macro}{\@@_UTF_xvi_be_octal:n}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_index_map:n #1
+\cs_new:Npn \@@_UTF_xvi_be_octal:n #1
+ { \exp_args:Nf \@@_UTF_xvi_be_octal_aux:n { \int_eval:n {#1} } }
+\cs_new:Npn \@@_UTF_xvi_be_octal_aux:n #1
{
- \@@_get_unicode:n
- {
- \CJKtu_sfd_map:nn
- { \int_div_truncate:nn {#1} { 256 } + 1 }
- { \int_mod:nn {#1} { 256 } }
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_get_unicode:n}
-% \begin{macrocode}
-\cs_new_nopar:Npn \@@_get_unicode:n #1
- { \exp_last_unbraced:Nf \@@_get_unicode:w #1 \exp_end: }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_UTF_xvi_be:n}
-% \begin{macrocode}
-\cs_new_nopar:Npn \@@_UTF_xvi_be:n #1
- { \exp_args:Nf \@@_UTF_xvi_aux:n { \int_eval:n { "#1 } } }
-\cs_new_nopar:Npn \@@_UTF_xvi_aux:n #1
- {
- \HyPsd@DecimalToOctalFirst
+ \@@_UTF_xvi_be_octal:nn
{ \int_div_truncate:nn {#1} { 256 } }
- \HyPsd@DecimalToOctalSecond
{ \int_mod:nn {#1} { 256 } }
}
+\cs_new:Npn \@@_UTF_xvi_be_octal:nn #1#2
+ {
+ \HyPsd@DecimalToOctalFirst {#1}
+ \HyPsd@DecimalToOctalSecond {#2}
+ }
% \end{macrocode}
% \end{macro}
%
@@ -589,29 +580,31 @@ Copyright and Licence
%
% \begin{macro}{\useCJKencmap,\CJKchartouni,\CJKsfdtouni}
% \begin{macrocode}
-\cs_new_eq:NN \useCJKencmap \@@_use_enc_map:n
-\cs_new_eq:NN \CJKchartouni \@@_char_to_unicode:n
-\cs_new_eq:NN \CJKsfdtouni \@@_sfd_to_unicode:nn
+\cs_new_eq:NN \useCJKencmap \CJKtu_use_enc_map:x
+\cs_new_eq:NN \CJKchartouni \CJKtu_char_to_unicode:n
+\cs_new_eq:NN \CJKsfdtouni \CJKtu_sfd_map:nn
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_initial:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_initial:N #1
+\cs_new_protected:Npn \@@_initial:N #1
{
\tl_if_exist:NTF #1
{
\prop_get:NxNTF \c_@@_sfd_prop {#1} \l_@@_sfd_tl
{ \@@_enc_map:nn {#1} { \l_@@_sfd_tl } }
- { \@@_use_enc_map:n { GBK } }
+ { \CJKtu_use_enc_map:n { GBK } }
}
- { \@@_use_enc_map:n { GBK } }
+ { \CJKtu_use_enc_map:n { GBK } }
}
+\prg_generate_conditional_variant:Nnn \prop_get:NnN { Nx } { TF }
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
-\exp_args:Nc \@@_initial:N { CJK @ @ @ enc }
+\group_begin: \exp_args:NNc \group_end:
+\@@_initial:N { CJK @ @ @ enc }
% \end{macrocode}
%
% \begin{macrocode}
@@ -641,7 +634,7 @@ Copyright and Licence
{
\lua_now:e
{
- kpse.set_program_name("kpsewhich") ~
+ kpse.set_program_name("luatex") ~
local ~ sfd = kpse.find_file("UGBK.sfd", "subfont~definition~files") ~
if ~ sfd ~ then ~
tex.write(sfd) ~
@@ -650,7 +643,7 @@ Copyright and Licence
}
}
{
- \sys_shell_get:nnNTF { kpsewhich ~ UGBK.sfd } { } \l_tmpa_str
+ \sys_get_shell:nnNTF { kpsewhich ~ UGBK.sfd } { } \l_tmpa_str
{ \str_gset_eq:NN \g_@@_path_str \l_tmpa_str }
{ \msg_fatal:nnnn { xCJK2uni } { file-not-found } { GBK } { UGBK.sfd } }
}
@@ -694,7 +687,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_write_file:nnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_write_file:nnn #1#2#3
+\cs_new_protected:Npn \@@_write_file:nnn #1#2#3
{
\group_begin:
\seq_put_right:No \l_file_search_path_seq { \g_@@_path_str }
@@ -704,19 +697,14 @@ Copyright and Licence
\seq_clear:N \l_@@_sfd_plane_seq
\@@_write_sfd_map_header:n {#1}
\ior_str_map_inline:Nn \g_@@_sfd_ior
- { \str_if_eq:nnT {##1} { 00 ~ 0x0000_0x00FF } { \ior_map_break: } }
+ { \str_if_eq:nnT { ##1 } { 00 ~ 0x0000_0x00FF } { \ior_map_break: } }
\ior_str_map_inline:Nn \g_@@_sfd_ior
{
- \tl_if_blank:nTF {##1}
- {
- \ior_map_break:n
- {
- \@@_write_sfd_map_trailer:n {#1}
- \@@_write_cmap_file:n {#2}
- }
- }
- { \@@_read_sfd_line:nnn {##1} {#1} {#2} }
+ \tl_if_blank:nT { ##1 } { \ior_map_break: }
+ \@@_read_sfd_line:nn { ##1 } {#2}
}
+ \@@_write_sfd_map_trailer:n {#1}
+ \@@_write_cmap_file:n {#2}
\iow_close:N \g_@@_sfd_cmap_iow
\ior_close:N \g_@@_sfd_ior
\seq_clear:N \l_@@_sfd_plane_seq
@@ -732,19 +720,18 @@ Copyright and Licence
%
% \begin{macro}{\@@_read_sfd_line:n,\@@_read_sfd_line:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npx \@@_read_sfd_line:nnn #1#2#3
+\cs_new_protected:Npx \@@_read_sfd_line:nn #1
{
- \exp_not:N \@@_read_sfd_line:nwnn #1
- \c_backslash_str \exp_not:N \q_nil \exp_not:N \q_stop {#2} {#3}
+ \exp_not:N \@@_read_sfd_line:nwn #1
+ \c_backslash_str \exp_not:N \q_nil \exp_not:N \q_stop
}
-\use:x
+\use:e
{
- \cs_new_protected_nopar:Npn \exp_not:N \@@_read_sfd_line:nwnn
- ##1 0 \token_to_str:N x ##2 \c_backslash_str ##3 \exp_not:N \q_stop
- ##4##5
+ \cs_new_protected:Npn \exp_not:N \@@_read_sfd_line:nwn
+ #1 0 \token_to_str:N x #2 \c_backslash_str #3 \exp_not:N \q_stop
{
- \exp_not:N \@@_read_sfd_line:nnnnn
- {##1} { 0 \token_to_str:N x } {##2} {##4} {##5}
+ \exp_not:N \@@_read_sfd_line:nnnn
+ {#1} { 0 \token_to_str:N x } {#2}
}
}
% \end{macrocode}
@@ -752,48 +739,22 @@ Copyright and Licence
%
% \begin{macro}{\@@_read_sfd_line:nnnnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_read_sfd_line:nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \@@_read_sfd_line:nnnn #1#2#3#4
{
\tl_if_blank:nF {#1}
{
\seq_if_empty:NF \l_@@_sfd_plane_seq
- {
- \iow_now:Nx \g_@@_sfd_map_iow
- {
- \c_@@_indent_str \c_@@_indent_str
- \token_to_str:N \fi: \iow_newline:
- \c_@@_indent_str \c_right_brace_str
- }
- \@@_write_cmap_file:n {#5}
- }
- \@@_write_plane_map:nn {#1} {#4}
+ { \@@_write_cmap_file:n {#4} }
\tl_set:Nx \l_@@_sfd_plane_tl { \tl_trim_spaces:n {#1} }
+ \@@_write_plane_map:n { \l_@@_sfd_plane_tl }
}
\seq_set_split:Nnn \l_@@_sfd_line_seq {#2} {#3}
\seq_concat:NNN \l_@@_sfd_plane_seq
\l_@@_sfd_plane_seq \l_@@_sfd_line_seq
\iow_now:Nx \g_@@_sfd_map_iow
{
- \c_@@_indent_str \c_@@_indent_str \c_@@_indent_str
- \seq_use:Nn \l_@@_sfd_line_seq { ~ \or: } ~
- \token_to_str:N \or:
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_write_plane_map:nn}
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_write_plane_map:nn #1#2
- {
- \iow_now:Nx \g_@@_sfd_map_iow
- {
- \cs_new_nopar:cpn { ~ @@_ #2 _sfd_map_ \int_eval:n {#1} :n ~ } ~
- \c_hash_str 1 \iow_newline:
- \c_@@_indent_str \c_left_brace_str \iow_newline:
\c_@@_indent_str \c_@@_indent_str
- \exp_not:N \if_case:w \tex_numexpr:D
- \c_hash_str 1 ~ \token_to_str:N \scan_stop:
+ " \seq_use:Nn \l_@@_sfd_line_seq { ~ , ~ " } ~ ,
}
}
% \end{macrocode}
@@ -801,7 +762,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_write_cmap_file:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_write_cmap_file:n #1
+\cs_new_protected:Npn \@@_write_cmap_file:n #1
{
\tl_clear:N \l_@@_cmap_block_tl
\int_zero:N \l_@@_sfd_index_int
@@ -809,13 +770,13 @@ Copyright and Licence
\@@_write_cmap_header:nn { C #1 } { \l_@@_sfd_plane_tl }
\iow_now:Nx \g_@@_sfd_cmap_iow
{
- \iow_newline:
- 1~begincodespacerange \iow_newline:
+ \iow_newline:
+ 1~begincodespacerange \iow_newline:
\c_@@_indent_str < 00 > ~
<
\int_to_Hex:n
{ \seq_count:N \l_@@_sfd_plane_seq - 1 }
- > \iow_newline:
+ > \iow_newline:
endcodespacerange
}
\seq_map_function:NN \l_@@_sfd_plane_seq \@@_write_cmap_body:n
@@ -823,9 +784,9 @@ Copyright and Licence
{
\iow_now:Nx \g_@@_sfd_cmap_iow
{
- \iow_newline:
+ \iow_newline:
\int_mod:nn { \l_@@_sfd_index_int } { 100 } ~
- beginbfchar \iow_newline:
+ beginbfchar \iow_newline:
\l_@@_cmap_block_tl
endbfchar
}
@@ -838,18 +799,18 @@ Copyright and Licence
%
% \begin{macro}{\@@_write_cmap_body:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_write_cmap_body:n #1
+\cs_new_protected:Npn \@@_write_cmap_body:n #1
{
\int_case:nnTF { \l_@@_sfd_index_int }
{ { 99 } { } { 199 } { } }
{
\iow_now:Nx \g_@@_sfd_cmap_iow
{
- \iow_newline:
- 100 ~ beginbfchar \iow_newline:
+ \iow_newline:
+ 100 ~ beginbfchar \iow_newline:
\l_@@_cmap_block_tl
< \int_to_Hex:n { \l_@@_sfd_index_int } > ~
- <#1> \iow_newline:
+ <#1> \iow_newline:
endbfchar
}
\tl_clear:N \l_@@_cmap_block_tl
@@ -860,7 +821,7 @@ Copyright and Licence
<
\int_compare:nNnF \l_@@_sfd_index_int > { 15 } { 0 }
\int_to_Hex:n { \l_@@_sfd_index_int }
- > ~ <#1> \iow_newline:
+ > ~ <#1> \iow_newline:
}
}
\int_incr:N \l_@@_sfd_index_int
@@ -872,20 +833,13 @@ Copyright and Licence
% \begin{macrocode}
\group_begin:
\char_set_catcode_other:N \%
-\cs_new_protected_nopar:Npn \@@_write_sfd_map_header:n #1
+\cs_new_protected:Npn \@@_write_sfd_map_header:n #1
{
\iow_now:Nx \g_@@_sfd_map_iow
{
- %<*#1> \iow_newline:
- \cs_new_nopar:cpn { ~ CJKtu_#1_sfd_map:nn ~ } ~ \c_hash_str 1
- \iow_newline: \c_@@_indent_str \c_left_brace_str \iow_newline:
- \c_@@_indent_str \c_@@_indent_str
- \token_to_str:N \cs_if_exist_use:cF
- \iow_newline: \c_@@_indent_str \c_@@_indent_str \c_@@_indent_str
- { ~ @@_#1_sfd_map_ ~ \exp_not:N \int_eval:n { \c_hash_str 1 } ~ :n ~}
- \iow_newline: \c_@@_indent_str \c_@@_indent_str \c_@@_indent_str
- { ~ \exp_not:N \use_none:n } \iow_newline:
- \c_@@_indent_str \c_right_brace_str
+ %<*#1> \iow_newline:
+ \exp_not:N \CJKtu_index_map:nn { ~ #1 ~ } \iow_newline:
+ \c_@@_indent_str \c_left_brace_str
}
}
% \end{macrocode}
@@ -893,22 +847,30 @@ Copyright and Licence
%
% \begin{macro}{\@@_write_sfd_map_trailer:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_write_sfd_map_trailer:n #1
+\cs_new_protected:Npn \@@_write_sfd_map_trailer:n #1
{
\iow_now:Nx \g_@@_sfd_map_iow
{
- \c_@@_indent_str \c_@@_indent_str
- \token_to_str:N \fi: \iow_newline:
- \c_@@_indent_str \c_right_brace_str \iow_newline:
+ \c_@@_indent_str \c_right_brace_str \iow_newline:
%</#1>
}
}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_write_plane_map:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_write_plane_map:n #1
+ {
+ \iow_now:Nx \g_@@_sfd_map_iow
+ { %% ~ <#1> }
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@@_write_cmap_header:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_write_cmap_header:nn #1#2
+\cs_new_protected:Npn \@@_write_cmap_header:nn #1#2
{
\iow_now:Nx \g_@@_sfd_cmap_iow
{
@@ -919,17 +881,17 @@ Copyright and Licence
%%Title:~(TeX-#1-#2-0~TeX~#1-#2~0) \iow_newline:
%%Version:~1.000 \iow_newline:
%%EndComments \iow_newline: \iow_newline:
- /CIDInit~/ProcSet~findresource~begin \iow_newline: \iow_newline:
- 12~dict~begin \iow_newline: \iow_newline:
- begincmap \iow_newline: \iow_newline:
- /CIDSystemInfo~3~dict~dup~begin \iow_newline:
- \c_@@_indent_str /Registry~(TeX)~def \iow_newline:
- \c_@@_indent_str /Ordering~(#1-#2)~def \iow_newline:
- \c_@@_indent_str /Supplement~0~def \iow_newline:
- end~def \iow_newline: \iow_newline:
- /CMapName~/TeX-#1-#2-0~def \iow_newline:
- /CMapVersion~1.000~def \iow_newline:
- /CMapType~2~def \iow_newline: \iow_newline:
+ /CIDInit~/ProcSet~findresource~begin \iow_newline: \iow_newline:
+ 12~dict~begin \iow_newline: \iow_newline:
+ begincmap \iow_newline: \iow_newline:
+ /CIDSystemInfo~3~dict~dup~begin \iow_newline:
+ \c_@@_indent_str /Registry~(TeX)~def \iow_newline:
+ \c_@@_indent_str /Ordering~(#1-#2)~def \iow_newline:
+ \c_@@_indent_str /Supplement~0~def \iow_newline:
+ end~def \iow_newline: \iow_newline:
+ /CMapName~/TeX-#1-#2-0~def \iow_newline:
+ /CMapVersion~1.000~def \iow_newline:
+ /CMapType~2~def \iow_newline: \iow_newline:
/WMode~0~def
}
}
@@ -938,16 +900,16 @@ Copyright and Licence
%
% \begin{macro}{\@@_write_cmap_trailer:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npx \@@_write_cmap_trailer:
+\cs_new_protected:Npx \@@_write_cmap_trailer:
{
\iow_now:Nn \g_@@_sfd_cmap_iow
{
- \iow_newline:
- endcmap \iow_newline:
- CMapName~currentdict~/CMap~defineresource~pop \iow_newline:
- end \iow_newline:
- end \iow_newline: \iow_newline:
- %%EndResource \iow_newline:
+ \iow_newline:
+ endcmap \iow_newline:
+ CMapName~currentdict~/CMap~defineresource~pop \iow_newline:
+ end \iow_newline:
+ end \iow_newline: \iow_newline:
+ %%EndResource \iow_newline:
%%EOF
}
}
diff --git a/macros/latex/contrib/xcjk2uni/xCJK2uni.ins b/macros/latex/contrib/xcjk2uni/xCJK2uni.ins
deleted file mode 100644
index 31967db2ee..0000000000
--- a/macros/latex/contrib/xcjk2uni/xCJK2uni.ins
+++ /dev/null
@@ -1,139 +0,0 @@
-%%
-%% This is file `xCJK2uni.ins',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% xCJK2uni.dtx (with options: `install')
-%%
-%% Copyright (C) 2013-2014, 2016, 2018-2019 by Qing Lee <sobenlee@gmail.com>
-%% --------------------------------------------------------------------------
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either
-%% version 1.3c of this license or (at your option) any later
-%% version. This version of this license is in
-%% http://www.latex-project.org/lppl/lppl-1-3c.txt
-%% and the latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of
-%% LaTeX version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Qing Lee.
-%%
-%% --------------------------------------------------------------------------
-%%
-
-\input ctxdocstrip %
-
-\preamble
-
- Copyright (C) 2013-2014, 2016, 2018-2019 by Qing Lee <sobenlee@gmail.com>
---------------------------------------------------------------------------
-
- This work may be distributed and/or modified under the
- conditions of the LaTeX Project Public License, either
- version 1.3c of this license or (at your option) any later
- version. This version of this license is in
- http://www.latex-project.org/lppl/lppl-1-3c.txt
- and the latest version of this license is in
- http://www.latex-project.org/lppl.txt
- and version 1.3 or later is part of all distributions of
- LaTeX version 2005/12/01 or later.
-
- This work has the LPPL maintenance status `maintained'.
-
- The Current Maintainer of this work is Qing Lee.
-
---------------------------------------------------------------------------
-
-\endpreamble
-\postamble
-
- This package consists of the file xCJK2uni.dtx,
- and the derived files xCJK2uni.pdf,
- xCJK2uni.sty,
- xCJK2uni.ins,
- xCJK2uni-make.tex,
- xCJK2uni-sfd.def,
- xCJK2uni-UBg5plus.def,
- xCJK2uni-UBig5.def,
- xCJK2uni-UGB.def,
- xCJK2uni-UGBK.def,
- xCJK2uni-UJIS.def,
- xCJK2uni-UKS.def,
- c****.cmap, and
- README.md.
-\endpostamble
-
-\generate
- {
- \usedir{tex/latex/xcjk2uni}
- \file{xCJK2uni.sty} {\from{\jobname.dtx}{package}}
- \file{xCJK2uni-make.tex} {\from{\jobname.dtx}{make}}
- \nopreamble\nopostamble
- \usedir{doc/latex/xcjk2uni}
- \file{README.md} {\from{\jobname.dtx}{readme}}
- }
-
-\let\input\@@input
-\def\CJKtuend{\ExplSyntaxOff}
-\input xCJK2uni-make %
-\let\input\skip@input
-
-\generate
- {
- \usedir{tex/latex/xcjk2uni}
- \usepostamble\emptypostamble
- \file{xCJK2uni-UBig5.def}
- {
- \from{\jobname.dtx} {def,Bg5}
- \from{xCJK2uni-sfd.def} {Bg5}
- }
- \file{xCJK2uni-UBg5plus.def}
- {
- \from{\jobname.dtx} {def,Bg5+}
- \from{xCJK2uni-sfd.def} {Bg5+}
- }
- \file{xCJK2uni-UGB.def}
- {
- \from{\jobname.dtx} {def,GB}
- \from{xCJK2uni-sfd.def} {GB}
- }
- \file{xCJK2uni-UGBK.def}
- {
- \from{\jobname.dtx} {def,GBK}
- \from{xCJK2uni-sfd.def} {GBK}
- }
- \file{xCJK2uni-UJIS.def}
- {
- \from{\jobname.dtx} {def,JIS}
- \from{xCJK2uni-sfd.def} {JIS}
- }
- \file{xCJK2uni-UKS.def}
- {
- \from{\jobname.dtx} {def,KS}
- \from{xCJK2uni-sfd.def} {KS}
- }
- }
-
-\endbatchfile
-%%
-%% This package consists of the file xCJK2uni.dtx,
-%% and the derived files xCJK2uni.pdf,
-%% xCJK2uni.sty,
-%% xCJK2uni.ins,
-%% xCJK2uni-make.tex,
-%% xCJK2uni-sfd.def,
-%% xCJK2uni-UBg5plus.def,
-%% xCJK2uni-UBig5.def,
-%% xCJK2uni-UGB.def,
-%% xCJK2uni-UGBK.def,
-%% xCJK2uni-UJIS.def,
-%% xCJK2uni-UKS.def,
-%% c****.cmap, and
-%% README.md.
-%%
-%% End of file `xCJK2uni.ins'.
diff --git a/macros/latex/contrib/xcjk2uni/xCJK2uni.pdf b/macros/latex/contrib/xcjk2uni/xCJK2uni.pdf
index d2ba50e042..b143ba1467 100644
--- a/macros/latex/contrib/xcjk2uni/xCJK2uni.pdf
+++ b/macros/latex/contrib/xcjk2uni/xCJK2uni.pdf
Binary files differ
diff --git a/macros/latex/contrib/xpinyin/README.md b/macros/latex/contrib/xpinyin/README.md
index 7c11c0fb0a..b9f5f5c6cc 100644
--- a/macros/latex/contrib/xpinyin/README.md
+++ b/macros/latex/contrib/xpinyin/README.md
@@ -20,7 +20,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2012-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012-2020 by Qing Lee <sobenlee@gmail.com>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -33,7 +33,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
diff --git a/macros/latex/contrib/xpinyin/xpinyin.dtx b/macros/latex/contrib/xpinyin/xpinyin.dtx
index 8d50b231f2..b23d96db64 100644
--- a/macros/latex/contrib/xpinyin/xpinyin.dtx
+++ b/macros/latex/contrib/xpinyin/xpinyin.dtx
@@ -26,7 +26,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2012-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012-2020 by Qing Lee <sobenlee@gmail.com>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -39,7 +39,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
@@ -81,7 +81,7 @@ Copyright and Licence
\preamble
- Copyright (C) 2012-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012-2020 by Qing Lee <sobenlee@gmail.com>
--------------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -94,7 +94,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
@@ -167,12 +167,12 @@ Copyright and Licence
%</internal>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\RequirePackage{expl3}
-%<+package>\GetIdInfo$Id: xpinyin.dtx 81bb941 2019-04-07 23:27:58 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+package>\GetIdInfo$Id: xpinyin.dtx 789567a 2020-05-01 21:10:07 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Automatically add pinyin to Chinese characters}
%<package>\ProvidesExplPackage{\ExplFileName}
-%<package> {\ExplFileDate}{2.7}{\ExplFileDescription}
+%<package> {\ExplFileDate}{2.8}{\ExplFileDescription}
%<database>\ProvidesFile{xpinyin-database.def}%
-%<database> [2019/04/07 v2.7 xpinyin database]
+%<database> [2020/05/01 v2.8 xpinyin database]
%<*driver>
\documentclass{ctxdoc}
\usepackage{xpinyin}
@@ -186,7 +186,7 @@ Copyright and Licence
%</driver>
% \fi
%
-% \CheckSum{696}
+% \CheckSum{694}
% \GetFileId{xpinyin.sty}
%
% \title{\bfseries\pkg{xpinyin} 宏包}
@@ -359,14 +359,14 @@ Copyright and Licence
% \begin{syntax}
% format = \Arg{format}
% \end{syntax}
-% 设置拼音的其它格式,例如颜色等,缺省值为空。
+% 设置拼音的其他格式,例如颜色等,缺省值为空。
% \end{function}
%
% \begin{function}{multiple}
% \begin{syntax}
% multiple = \Arg{format}
% \end{syntax}
-% 设置多音字拼音的其它格式,缺省值为空。可以通过这个选项来提醒校正多音字的拼音。例如
+% 设置多音字拼音的其他格式,缺省值为空。可以通过这个选项来提醒校正多音字的拼音。例如
% 本文档设置多音字拼音的颜色是红色(需要载入 \pkg{color} 宏包):
% \begin{frameverb}
% \xpinyinsetup{multiple={\color{red}}}
@@ -467,7 +467,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_UTF_char:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_UTF_char:nn #1#2
+\cs_new_protected:Npn \@@_UTF_char:nn #1#2
{
\cs_if_exist:cF { u8:#1 }
{ \tl_const:cn { u8:#1 } {#2} }
@@ -478,14 +478,14 @@ Copyright and Licence
%
% \begin{macro}{\@@_GBK_char:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_GBK_char:nn #1#2
+\cs_new_protected:Npn \@@_GBK_char:nn #1#2
{
\@@_UTF_char:nn {#1} {#2}
\exp_args:Nx \@@_GBK_char_aux:nn { \tl_head:n {#1} } {#1}
}
-\cs_new_protected_nopar:Npn \@@_GBK_char_aux:nn #1#2
+\cs_new_protected:Npn \@@_GBK_char_aux:nn #1#2
{ \exp_args:Nf \@@_GBK_char_aux:nnn { \int_eval:n { `#1 } } {#1} {#2} }
-\cs_new_protected_nopar:Npn \@@_GBK_char_aux:nnn #1#2#3
+\cs_new_protected:Npn \@@_GBK_char_aux:nnn #1#2#3
{
\cs_if_exist:cF { @@_UTF_ #1 :w }
{
@@ -505,9 +505,9 @@ Copyright and Licence
\char_set_catcode_active:n {#1}
}
}
-\cs_new_protected_nopar:Npn \@@_GBK_char_def:nnn #1#2#3
+\cs_new_protected:Npn \@@_GBK_char_def:nnn #1#2#3
{
- \cs_new_protected_nopar:cpn { @@_UTF_ #2 :w } #1
+ \cs_new_protected:cpn { @@_UTF_ #2 :w } #1
{ \use:c { u8: \tl_to_str:n { #3#1 } } }
}
\tl_new:N \c_@@_reset_UTF_catcode_tl
@@ -518,7 +518,7 @@ Copyright and Licence
% \begin{macrocode}
\group_begin:
\char_set_catcode_active:n { 126 }
-\cs_new_protected_nopar:Npn \@@_save_UTF_cs:Nn #1#2
+\cs_new_protected:Npn \@@_save_UTF_cs:Nn #1#2
{
\group_begin:
\char_set_lccode:nn { 126 } {#2}
@@ -592,7 +592,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_make_pinyin_box:nnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_make_pinyin_box:nnn #1#2#3
+\cs_new_protected:Npn \@@_make_pinyin_box:nnn #1#2#3
{
\@@_leavevmode:
\hbox_overlap_right:n
@@ -637,9 +637,9 @@ Copyright and Licence
%
% \begin{macro}{\@@_CJKsymbol:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_CJKsymbol:n #1
+\cs_new_protected:Npn \@@_CJKsymbol:n #1
{ \@@_CJKsymbol:xn { \@@_to_unicode:n {#1} } {#1} }
-\cs_new_protected_nopar:Npn \@@_CJKsymbol:nn #1#2
+\cs_new_protected:Npn \@@_CJKsymbol:nn #1#2
{
\@@_make_pinyin_box:nnn {#1} {#2} { \use:c { c_@@_ #1 _tl } }
\@@_save_CJKsymbol:n {#2}
@@ -691,7 +691,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_CJKglue:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_CJKglue:
+\cs_new_protected:Npn \@@_CJKglue:
{ \skip_horizontal:n { \l_@@_hsep_tl } }
% \end{macrocode}
% \end{macro}
@@ -733,7 +733,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_restore_footnote:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_restore_footnote:
+\cs_new_protected:Npn \@@_restore_footnote:
{
\bool_if:NF \l_@@_footnote_bool
{ \tl_put_left:Nn \@parboxrestore { \l_@@_restore_footnote_tl } }
@@ -760,19 +760,19 @@ Copyright and Licence
%
% \begin{macro}{\@@_single_aux:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_single_aux:nn #1#2
+\cs_new_protected:Npn \@@_single_aux:nn #1#2
{
\@@_replace_CJKsymbol_single:n {#2}
#1
\group_end:
}
-\cs_new_protected_nopar:Npn \@@_replace_CJKsymbol_single_aux:n #1
+\cs_new_protected:Npn \@@_replace_CJKsymbol_single_aux:n #1
{
\bool_if:NF \l_@@_enable_bool { \@@_replace_CJKsymbol: }
- \cs_set_protected_nopar:Npn \CJKsymbol ##1
+ \cs_set_protected:Npn \CJKsymbol ##1
{ \@@_single_CJKsymbol:nn {##1} {#1} }
}
-\cs_new_protected_nopar:Npn \@@_single_CJKsymbol:nn #1#2
+\cs_new_protected:Npn \@@_single_CJKsymbol:nn #1#2
{
\@@_make_pinyin_box:xnn
{ \@@_to_unicode:n {#1} } {#1} { \@@_pinyin:n {#2} }
@@ -783,7 +783,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_replace_CJKsymbol_aux:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_replace_CJKsymbol_aux:
+\cs_new_protected:Npn \@@_replace_CJKsymbol_aux:
{
\cs_set_eq:NN \@@_save_CJKsymbol:n \CJKsymbol
\cs_set_eq:NN \CJKsymbol \@@_CJKsymbol:n
@@ -793,14 +793,14 @@ Copyright and Licence
%
% \begin{macro}{\@@_restore_CJKsymbol_aux:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_restore_CJKsymbol_aux:
+\cs_new_protected:Npn \@@_restore_CJKsymbol_aux:
{ \cs_set_eq:NN \CJKsymbol \@@_save_CJKsymbol:n }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_select_font_xetex:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_select_font_xetex:
+\cs_new_protected:Npn \@@_select_font_xetex:
{
\cs_if_exist_use:cF { \l_@@_coor_tl }
{
@@ -818,7 +818,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_select_font_aux:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_select_font_aux:
+\cs_new_protected:Npn \@@_select_font_aux:
{
\fontsize
{ \l_@@_ratio_tl \tex_dimexpr:D \f@size pt \scan_stop: }
@@ -832,21 +832,21 @@ Copyright and Licence
%
% \begin{macro}{\@@_to_unicode_xetex:n}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_to_unicode_xetex:n #1
+\cs_new:Npn \@@_to_unicode_xetex:n #1
{ \int_to_arabic:n { `#1 } }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_UTF_to_unicode:n,\@@_UTFchar_to_unicode:n}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_UTF_to_unicode:n #1
+\cs_new:Npn \@@_UTF_to_unicode:n #1
{
\int_to_arabic:n
{ \exp_args:No \int_from_hex:n { \CJK@plane } * "100 + #1 }
}
-\cs_new_nopar:Npn \@@_UTFchar_to_unicode:n #1
+\cs_new:Npn \@@_UTFchar_to_unicode:n #1
{ \int_to_arabic:n { \@@_UTF_viii_to_unicode:NNNw #1 \q_stop } }
-\cs_new_nopar:Npn \@@_UTF_viii_to_unicode:NNNw #1#2#3#4 \q_stop
+\cs_new:Npn \@@_UTF_viii_to_unicode:NNNw #1#2#3#4 \q_stop
{
\tl_if_empty:nTF {#4}
{ ( `#1 - "E0 ) * "1000 + ( `#2 - "80 ) * "40 + ( `#3 - "80 ) }
@@ -857,16 +857,16 @@ Copyright and Licence
%
% \begin{macro}{\@@_GBK_to_unicode:n,\@@_GBKchar_to_unicode:n}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_GBK_to_unicode:n #1
- { \int_to_arabic:n { " \CJKtu_sfd_map:nn { \CJK@plane } {#1} } }
-\cs_new_nopar:Npn \@@_GBKchar_to_unicode:n #1
- { \int_to_arabic:n { " \CJKchartouni {#1} } }
+\cs_new:Npn \@@_GBK_to_unicode:n
+ { \CJKtu_sfd_map:nn { \CJK@plane } }
+\cs_new:Npn \@@_GBKchar_to_unicode:n
+ { \CJKtu_char_to_unicode:n }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_adjust_xeCJK_hook:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_adjust_xeCJK_hook:
+\cs_new_protected:Npn \@@_adjust_xeCJK_hook:
{
\cs_new_eq:NN \@@_select_font: \@@_select_font_xetex:
\cs_new_eq:NN \@@_to_unicode:n \@@_to_unicode_xetex:n
@@ -891,7 +891,7 @@ Copyright and Licence
}
}
\cs_new_eq:NN \@@_leavevmode: \prg_do_nothing:
- \cs_new_protected_nopar:Npx \@@_CJKsymbol_hook:
+ \cs_new_protected:Npx \@@_CJKsymbol_hook:
{
\exp_not:N \makexeCJKinactive
\cs_if_exist_use:NF \xeCJK_select_font:
@@ -903,7 +903,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_adjust_CJK_hook:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_adjust_CJK_hook:
+\cs_new_protected:Npn \@@_adjust_CJK_hook:
{
\bool_if:NTF \g_@@_GBK_bool
{
@@ -941,15 +941,15 @@ Copyright and Licence
%
% \begin{macro}{\@@_adjust_CJKpunct_hook:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_adjust_CJKpunct_hook:
+\cs_new_protected:Npn \@@_adjust_CJKpunct_hook:
{
- \cs_new_protected_nopar:Npn \@@_restore_CJKsymbol:
+ \cs_new_protected:Npn \@@_restore_CJKsymbol:
{
\int_compare:nNnTF { \CJKpunct@punctstyle } = { \CJKpunct@ps@plain }
{ \@@_restore_CJKsymbol_aux: }
{ \cs_set_eq:NN \CJKosymbol \@@_save_CJKsymbol:n }
}
- \cs_new_protected_nopar:Npn \@@_replace_CJKsymbol:
+ \cs_new_protected:Npn \@@_replace_CJKsymbol:
{
\int_compare:nNnTF { \CJKpunct@punctstyle } = { \CJKpunct@ps@plain }
{ \@@_replace_CJKsymbol_aux: }
@@ -958,14 +958,14 @@ Copyright and Licence
\cs_set_eq:NN \CJKosymbol \@@_CJKsymbol:n
}
}
- \cs_new_protected_nopar:Npn \@@_replace_CJKsymbol_single:n ##1
+ \cs_new_protected:Npn \@@_replace_CJKsymbol_single:n ##1
{
\int_compare:nNnTF { \CJKpunct@punctstyle } = { \CJKpunct@ps@plain }
{ \@@_replace_CJKsymbol_single_aux:n { ##1 } }
{
\bool_if:NF \l_@@_enable_bool
{ \cs_set_eq:NN \@@_save_CJKsymbol:n \CJKosymbol }
- \cs_set_protected_nopar:Npn \CJKosymbol ####1
+ \cs_set_protected:Npn \CJKosymbol ####1
{ \@@_single_CJKsymbol:nn { ####1 } { ##1 } }
}
}
@@ -991,7 +991,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_pinyin:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_pinyin:n #1
+\cs_new_protected:Npn \@@_pinyin:n #1
{
\@@_pinyin_init:
\bool_set_true:N \l_@@_first_bool
@@ -1003,7 +1003,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_pinyin_aux:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_pinyin_aux:n #1
+\cs_new_protected:Npn \@@_pinyin_aux:n #1
{
\quark_if_recursion_tail_stop_do:nn {#1}
{
@@ -1039,7 +1039,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_tone:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_tone:nn #1#2
+\cs_new_protected:Npn \@@_tone:nn #1#2
{ \use:c { @@_num_to_tone_ #1 :Nn } {#1} {#2} }
\cs_generate_variant:Nn \@@_tone:nn { V }
% \end{macrocode}
@@ -1047,7 +1047,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_replace_v:n}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_replace_v:n #1
+\cs_new:Npn \@@_replace_v:n #1
{
\str_if_eq:nnTF {#1} { v }
{
@@ -1062,7 +1062,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_pinyin_init:}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_pinyin_init:
+\cs_new:Npn \@@_pinyin_init:
{
\tl_clear:N \l_@@_pre_tl \tl_clear:N \l_@@_post_tl
\tl_clear:N \l_@@_item_tl \tl_clear:N \l_@@_tone_tl
@@ -1100,19 +1100,19 @@ Copyright and Licence
%
% \begin{macro}{\@@_num_to_tone:Nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_num_to_tone:Nn #1#2
+\cs_new_protected:Npn \@@_num_to_tone:Nn #1#2
{
\if_case:w \int_eval:n { #2 - 1 } \exp_stop_f:
\= {#1} \or: \'{#1} \or: \v {#1} \or: \` {#1} \else: #1 \fi:
}
\tl_map_inline:nn { a o e u }
{ \cs_new_eq:cN { @@_num_to_tone_ #1 :Nn } \@@_num_to_tone:Nn }
-\cs_new_nopar:Npn \@@_num_to_tone_i:Nn #1#2
+\cs_new:Npn \@@_num_to_tone_i:Nn #1#2
{
\if_case:w \int_eval:n { #2 - 1 } \exp_stop_f:
ī \or: í \or: ǐ \or: ì \else: i \fi:
}
-\cs_new_protected_nopar:Npn \@@_num_to_tone_v:Nn #1#2
+\cs_new_protected:Npn \@@_num_to_tone_v:Nn #1#2
{
\str_case:onTF { \l_@@_pre_tl }
{ { l } { } { n } { } { L } { } { N } { } }
@@ -1150,10 +1150,10 @@ Copyright and Licence
%
% \begin{macro}[int]{\xpinyin_customary:nnn,\xpinyin_multiple:nnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xpinyin_customary:nnn #1#2#3
- { \cs_gset_nopar:cpn { c_@@_ #2 _tl } {#3} }
-\cs_new_protected_nopar:Npn \xpinyin_multiple:nnn #1#2#3
- { \cs_gset_nopar:cpn { c_@@_multiple_ #2 _clist } {#3} }
+\cs_new_protected:Npn \xpinyin_customary:nnn #1#2
+ { \cs_gset_nopar:cpn { c_@@_ #2 _tl } }
+\cs_new_protected:Npn \xpinyin_multiple:nnn #1#2
+ { \cs_gset_nopar:cpn { c_@@_multiple_ #2 _clist } }
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/xpinyin/xpinyin.ins b/macros/latex/contrib/xpinyin/xpinyin.ins
deleted file mode 100644
index bc0657b87a..0000000000
--- a/macros/latex/contrib/xpinyin/xpinyin.ins
+++ /dev/null
@@ -1,132 +0,0 @@
-%%
-%% This is file `xpinyin.ins',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% xpinyin.dtx (with options: `install')
-%%
-%% Copyright (C) 2012-2019 by Qing Lee <sobenlee@gmail.com>
-%% --------------------------------------------------------------------------
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either
-%% version 1.3c of this license or (at your option) any later
-%% version. This version of this license is in
-%% http://www.latex-project.org/lppl/lppl-1-3c.txt
-%% and the latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of
-%% LaTeX version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Qing Lee.
-%%
-%% --------------------------------------------------------------------------
-%%
-
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname directlua\endcsname\relax
- \begingroup
- \newlinechar=10 %
- \errmessage{^^J
- ********************************************^^J
- * LuaTeX is required to unpack this package.^^J
- ********************************************^^J
- }
- \endgroup
- \csname @@end\expandafter\endcsname\expandafter\end
-\fi
-
-\input ctxdocstrip %
-
-\let\MetaPrefix\relax
-
-\preamble
-
- Copyright (C) 2012-2019 by Qing Lee <sobenlee@gmail.com>
---------------------------------------------------------------------------
-
- This work may be distributed and/or modified under the
- conditions of the LaTeX Project Public License, either
- version 1.3c of this license or (at your option) any later
- version. This version of this license is in
- http://www.latex-project.org/lppl/lppl-1-3c.txt
- and the latest version of this license is in
- http://www.latex-project.org/lppl.txt
- and version 1.3 or later is part of all distributions of
- LaTeX version 2005/12/01 or later.
-
- This work has the LPPL maintenance status `maintained'.
-
- The Current Maintainer of this work is Qing Lee.
-
---------------------------------------------------------------------------
-
-\endpreamble
-
-\postamble
-
- This package consists of the file xpinyin.dtx,
- and the derived files xpinyin.sty,
- xpinyin.pdf,
- xpinyin.ins,
- xpinyin.lua,
- xpinyin.db,
- xpinyin-database.def and
- README.md.
-\endpostamble
-
-\declarepostamble\emptypostamble
-\endpostamble
-
-\def\MetaPrefix{-- }
-
-\generate
- {
- \usedir{source/latex/xpinyin}
- \usepostamble\emptypostamble
- \file{xpinyin.lua} {\from{\jobname.dtx}{lua}}
- }
-
-\let\MetaPrefix\DoubleperCent
-
-\directlua
- {
- if not kpse.find_file("xpinyin.db") then
- dofile(kpse.find_file("xpinyin.lua"))
- end
- }
-\generate
- {
- \usedir{tex/latex/xpinyin}
- \usepostamble\emptypostamble
- \file{xpinyin-database.def}
- {
- \from{\jobname.dtx} {database}
- \from{xpinyin.db} {}
- }
- }
-
-\generate
- {
- \usedir{tex/latex/xpinyin}
- \file{xpinyin.sty} {\from{\jobname.dtx}{package}}
- \nopreamble\nopostamble
- \usedir{doc/latex/xpinyin}
- \file{README.md} {\from{\jobname.dtx}{readme}}
- }
-
-\endbatchfile
-%%
-%% This package consists of the file xpinyin.dtx,
-%% and the derived files xpinyin.sty,
-%% xpinyin.pdf,
-%% xpinyin.ins,
-%% xpinyin.lua,
-%% xpinyin.db,
-%% xpinyin-database.def and
-%% README.md.
-%%
-%% End of file `xpinyin.ins'.
diff --git a/macros/latex/contrib/xpinyin/xpinyin.pdf b/macros/latex/contrib/xpinyin/xpinyin.pdf
index e3ab9f27a2..125f64ac81 100644
--- a/macros/latex/contrib/xpinyin/xpinyin.pdf
+++ b/macros/latex/contrib/xpinyin/xpinyin.pdf
Binary files differ
diff --git a/macros/latex/contrib/zhnumber/README.md b/macros/latex/contrib/zhnumber/README.md
index a8ac1b7a7c..48cd3d5733 100644
--- a/macros/latex/contrib/zhnumber/README.md
+++ b/macros/latex/contrib/zhnumber/README.md
@@ -38,7 +38,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2012, 2014-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012, 2014-2020 by Qing Lee <sobenlee@gmail.com>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -51,7 +51,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
diff --git a/macros/latex/contrib/zhnumber/zhnumber.dtx b/macros/latex/contrib/zhnumber/zhnumber.dtx
index 05472f8fd1..d5ed4bdd22 100644
--- a/macros/latex/contrib/zhnumber/zhnumber.dtx
+++ b/macros/latex/contrib/zhnumber/zhnumber.dtx
@@ -44,7 +44,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2012, 2014-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012, 2014-2020 by Qing Lee <sobenlee@gmail.com>
----------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -57,7 +57,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
@@ -83,7 +83,7 @@ Copyright and Licence
\preamble
- Copyright (C) 2012, 2014-2019 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012, 2014-2020 by Qing Lee <sobenlee@gmail.com>
--------------------------------------------------------------------------
This work may be distributed and/or modified under the
@@ -96,7 +96,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Qing Lee.
@@ -120,18 +120,18 @@ Copyright and Licence
%</install>
%<*internal>
\usedir{source/latex/zhnumber}
- \file{zhnumber.ins} {\from{\jobname.dtx}{install}}
+ \file{zhnumber.ins} {\from{\jobname.dtx}{install}}
%</internal>
%<*install>
\usedir{tex/latex/zhnumber}
- \file{zhnumber.sty} {\from{\jobname.dtx}{package}}
+ \file{zhnumber.sty} {\from{\jobname.dtx}{package}}
\usedir{tex/latex/zhnumber/config}
- \file{zhnumber-utf8.cfg} {\from{\jobname.dtx}{config,utf8}}
- \file{zhnumber-big5.cfg} {\from{\jobname.dtx}{config,big5}}
- \file{zhnumber-gbk.cfg} {\from{\jobname.dtx}{config,gbk}}
+ \file{zhnumber-utf8.cfg} {\from{\jobname.dtx}{config,utf8}}
+ \ctxfile{Big5}{zhnumber-big5.cfg} {\from{\jobname.dtx}{config,big5}}
+ \ctxfile{GBK}{zhnumber-gbk.cfg} {\from{\jobname.dtx}{config,gbk}}
\nopreamble\nopostamble
\usedir{doc/latex/zhnumber}
- \file{README.md} {\from{\jobname.dtx}{readme}}
+ \file{README.md} {\from{\jobname.dtx}{readme}}
}
\endbatchfile
@@ -141,7 +141,7 @@ Copyright and Licence
%</internal>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\RequirePackage{expl3}
-%<+package|config>\GetIdInfo$Id: zhnumber.dtx 311c61d 2019-04-07 23:29:51 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+package|config>\GetIdInfo$Id: zhnumber.dtx c4664c6 2020-05-01 21:10:24 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Typesetting numbers with Chinese glyphs}
%<config&utf8> {Chinese numerals with UTF8 encoding}
%<config&big5> {Chinese numerals with Big5 encoding}
@@ -150,7 +150,7 @@ Copyright and Licence
%<config&utf8>\ProvidesExplFile{\ExplFileName-utf8.cfg}
%<config&big5>\ProvidesExplFile{\ExplFileName-big5.cfg}
%<config&gbk>\ProvidesExplFile{\ExplFileName-gbk.cfg}
-%<package|config> {\ExplFileDate}{2.7}{\ExplFileDescription}
+%<package|config> {\ExplFileDate}{2.8}{\ExplFileDescription}
%<*driver>
\documentclass{ctxdoc}
\begin{document}
@@ -161,7 +161,7 @@ Copyright and Licence
%</driver>
% \fi
%
-% \CheckSum{1186}
+% \CheckSum{1189}
% \GetFileId{zhnumber.sty}
%
% \title{\bfseries\pkg{zhnumber} 宏包}
@@ -400,7 +400,7 @@ Copyright and Licence
% \begin{syntax}
% null = <\TFF>
% \end{syntax}
-% 缺省状态下,除了 \tn{zhdigits} 外,其它的格式转换命令,将 0 映射成零,如果需要将 0 映射
+% 缺省状态下,除了 \tn{zhdigits} 外,其他的格式转换命令,将 0 映射成零,如果需要将 0 映射
% 成〇,可以使用这个选项。
% \end{function}
%
@@ -437,7 +437,7 @@ Copyright and Licence
% 其中 |-| 设置负,|-0| 设置〇,|dot| 设置小数的点,|and| 和 |parts| 分别设置分数
% 的“又”和“分之”,|E|$n$ 设置 $10^n$,|F|$n$ 设置数字 $n$ 的大写,|T|$n$ 设置
% 数字 $n$ 的天干,|D|$n$ 设置数字 $n$ 的地支,而 |GZ|$n$ 设置数字 $n$ 的干支。
-% 其它的选项同字面意思,不再赘述。例如
+% 其他的选项同字面意思,不再赘述。例如
% \begin{verbatim}[frame=single]
% \zhnumsetup{2={两}}
% \end{verbatim}
@@ -664,7 +664,7 @@ Copyright and Licence
% \begin{macro}[int]{\@zhnum}
% 用于支持 |\pagenumbering{zhnum}|。
% \begin{macrocode}
-\cs_new_nopar:Npn \@zhnum { \zhnum_int:n }
+\cs_new:Npn \@zhnum { \zhnum_int:n }
% \end{macrocode}
% \end{macro}
%
@@ -906,7 +906,7 @@ Copyright and Licence
% \begin{macro}[int]{\@zhdig}
% 用于支持 |\pagenumbering{zhdig}|。
% \begin{macrocode}
-\cs_new_nopar:Npn \@zhdig #1 { \zhnum_digits_null:f { \int_eval:n {#1} } }
+\cs_new:Npn \@zhdig #1 { \zhnum_digits_null:f { \int_eval:n {#1} } }
% \end{macrocode}
% \end{macro}
%
@@ -933,9 +933,9 @@ Copyright and Licence
% \begin{macro}[int]{\zhnum_digits_zero:n,\zhnum_digits_null:n}
% 快捷方式。
% \begin{macrocode}
-\cs_new_nopar:Npn \zhnum_digits_zero:n
+\cs_new:Npn \zhnum_digits_zero:n
{ \zhnum_digits:Nn \BooleanTrue }
-\cs_new_nopar:Npn \zhnum_digits_null:n
+\cs_new:Npn \zhnum_digits_null:n
{ \zhnum_digits:Nn \BooleanFalse }
\cs_generate_variant:Nn \zhnum_digits_null:n { V , v , f }
% \end{macrocode}
@@ -1012,14 +1012,14 @@ Copyright and Licence
% \begin{macro}{\zhtoday}
% 输出当天日期。
% \begin{macrocode}
-\cs_new_nopar:Npn \zhtoday
+\cs_new:Npn \zhtoday
{ \@@_date_aux:Vnn \tex_year:D \tex_month:D \tex_day:D }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_date_aux:nnn}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_date_aux:nnn
+\cs_new:Npn \@@_date_aux:nnn
{
\bool_if:NTF \l_@@_time_bool
{ \@@_date_aux:NNnnnn \zhnum_digits_null:n \zhnum_int:n { } }
@@ -1152,7 +1152,7 @@ Copyright and Licence
% \begin{macro}{\zhcurrtime}
% 输出当前时间。
% \begin{macrocode}
-\cs_new_nopar:Npn \zhcurrtime
+\cs_new:Npn \zhcurrtime
{
\@@_time_aux:nn
{ \int_div_truncate:nn \tex_time:D { 60 } }
@@ -1163,7 +1163,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_time_aux:nn,\@@_time_aux:Nnnn}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_time_aux:nn
+\cs_new:Npn \@@_time_aux:nn
{
\bool_if:NTF \l_@@_time_bool
{ \@@_time_aux:Nnnn \zhnum_int:n { } }
@@ -1453,7 +1453,7 @@ Copyright and Licence
% }
% 将 \texttt{prop} 表转化到单独的 \texttt{tl} 变量。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \zhnum_parse_config:
+\cs_new_protected:Npn \zhnum_parse_config:
{
\prop_map_function:NN \l_@@_cfg_map_prop \zhnum_check_simp:nn
\prop_map_function:NN \l_@@_cfg_map_ganzhi_prop \zhnum_assgin_ganzhi:nn
@@ -1485,7 +1485,7 @@ Copyright and Licence
}
{ \tl_set:cn { l_@@_ #2 _tl } {#1} }
}
-\cs_new_protected_nopar:Npn \zhnum_assgin_const:
+\cs_new_protected:Npn \zhnum_assgin_const:
{
\prop_map_function:NN \l_@@_cfg_map_prop \zhnum_check_financial:nn
\zhnum_set_alias:
@@ -1506,7 +1506,7 @@ Copyright and Licence
{ c_@@_ #1 _tl } { \exp_not:c { l_@@_ #1 _tl } }
}
}
-\cs_new_protected_nopar:Npn \zhnum_set_zero:
+\cs_new_protected:Npn \zhnum_set_zero:
{
\tl_set:cx { l_@@_0_tl }
{
@@ -1514,7 +1514,7 @@ Copyright and Licence
{ \exp_not:o \l_@@_null_tl } { \exp_not:v { l_@@_0_tl } }
}
}
-\cs_new_protected_nopar:Npn \zhnum_set_week_day:
+\cs_new_protected:Npn \zhnum_set_week_day:
{
\tl_set:Nx \l_@@_mon_tl
{ \exp_not:N \c_@@_weekday_tl \exp_not:v { l_@@_1_tl } }
@@ -1565,7 +1565,7 @@ Copyright and Licence
% 一些易于使用的别名。
% \begin{macrocode}
\cs_new_eq:NN \zhnum_set_alias:NN \cs_new_eq:NN
-\cs_new_protected_nopar:Npx \zhnum_set_alias:
+\cs_new_protected:Npx \zhnum_set_alias:
{
\zhnum_set_alias:NN \exp_not:N \c_@@_zero_tl
\exp_not:c { c_@@_ 0 _tl }
@@ -1677,9 +1677,9 @@ Copyright and Licence
}
\cs_new_eq:NN \zhnum_reset_config: \zhnum_parse_config:
\else:
- \cs_new_protected_nopar:Npn \zhnum_set_catcode:
+ \cs_new_protected:Npn \zhnum_set_catcode:
{ \bool_if:NT \l_@@_active_char_bool { \zhnum_set_active: } }
- \cs_new_protected_nopar:Npn \zhnum_set_active:
+ \cs_new_protected:Npn \zhnum_set_active:
{
\str_case:onTF { \l_@@_encoding_str }
{
@@ -1706,7 +1706,7 @@ Copyright and Licence
\bool_if:NT \l_@@_active_char_bool { _active }
}
}
- \cs_new_protected_nopar:Npn \zhnum_reset_config:
+ \cs_new_protected:Npn \zhnum_reset_config:
{ \zhnum_load_cfg:o { \l_@@_encoding_str } }
\bool_new:N \l_@@_active_char_bool
\bool_set_true:N \l_@@_active_char_bool
@@ -1723,7 +1723,7 @@ Copyright and Licence
{ UTF8 , GBK , Big5 }
{
\str_set:Nx \l_@@_encoding_str
- { \str_fold_case:V \l_keys_choice_tl }
+ { \exp_args:No \str_lowercase:n { \l_keys_choice_tl } }
\zhnum_load_cfg:o { \l_@@_encoding_str }
} ,
encoding .default:n = { GBK } ,
@@ -1897,12 +1897,14 @@ Copyright and Licence
\zhnum_set_financial_map:nn { null } { 零 }
\zhnum_set_financial_map:nn { 0 } { 零 }
\zhnum_set_financial_map:nn { 1 } { 壹 }
-\zhnum_set_financial_map:nn { 2 } { 貳 }
%<*!big5>
+\zhnum_set_financial_map:nnn { 2 } { simp } { 贰 }
+\zhnum_set_financial_map:nnn { 2 } { trad } { 貳 }
\zhnum_set_financial_map:nnn { 3 } { simp } { 叁 }
\zhnum_set_financial_map:nnn { 3 } { trad } { 叄 }
%</!big5>
%<*big5>
+\zhnum_set_financial_map:nn { 2 } { 貳 }
\zhnum_set_financial_map:nn { 3 } { 參 }
%</big5>
\zhnum_set_financial_map:nn { 4 } { 肆 }
diff --git a/macros/latex/contrib/zhnumber/zhnumber.ins b/macros/latex/contrib/zhnumber/zhnumber.ins
deleted file mode 100644
index d403166319..0000000000
--- a/macros/latex/contrib/zhnumber/zhnumber.ins
+++ /dev/null
@@ -1,89 +0,0 @@
-%%
-%% This is file `zhnumber.ins',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% zhnumber.dtx (with options: `install')
-%%
-%% Copyright (C) 2012, 2014-2019 by Qing Lee <sobenlee@gmail.com>
-%% --------------------------------------------------------------------------
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either
-%% version 1.3c of this license or (at your option) any later
-%% version. This version of this license is in
-%% http://www.latex-project.org/lppl/lppl-1-3c.txt
-%% and the latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of
-%% LaTeX version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Qing Lee.
-%%
-%% --------------------------------------------------------------------------
-%%
-
-\input ctxdocstrip %
-
-\preamble
-
- Copyright (C) 2012, 2014-2019 by Qing Lee <sobenlee@gmail.com>
---------------------------------------------------------------------------
-
- This work may be distributed and/or modified under the
- conditions of the LaTeX Project Public License, either
- version 1.3c of this license or (at your option) any later
- version. This version of this license is in
- http://www.latex-project.org/lppl/lppl-1-3c.txt
- and the latest version of this license is in
- http://www.latex-project.org/lppl.txt
- and version 1.3 or later is part of all distributions of
- LaTeX version 2005/12/01 or later.
-
- This work has the LPPL maintenance status `maintained'.
-
- The Current Maintainer of this work is Qing Lee.
-
---------------------------------------------------------------------------
-
-\endpreamble
-\postamble
-
- This package consists of the file zhnumber.dtx,
- and the derived files zhnumber.pdf,
- zhnumber.sty,
- zhnumber-utf8.cfg,
- zhnumber-gbk.cfg,
- zhnumber-big5.cfg,
- zhnumber.ins and
- README.md.
-\endpostamble
-
-\generate
- {
- \usedir{tex/latex/zhnumber}
- \file{zhnumber.sty} {\from{\jobname.dtx}{package}}
- \usedir{tex/latex/zhnumber/config}
- \file{zhnumber-utf8.cfg} {\from{\jobname.dtx}{config,utf8}}
- \file{zhnumber-big5.cfg} {\from{\jobname.dtx}{config,big5}}
- \file{zhnumber-gbk.cfg} {\from{\jobname.dtx}{config,gbk}}
- \nopreamble\nopostamble
- \usedir{doc/latex/zhnumber}
- \file{README.md} {\from{\jobname.dtx}{readme}}
- }
-
-\endbatchfile
-%%
-%% This package consists of the file zhnumber.dtx,
-%% and the derived files zhnumber.pdf,
-%% zhnumber.sty,
-%% zhnumber-utf8.cfg,
-%% zhnumber-gbk.cfg,
-%% zhnumber-big5.cfg,
-%% zhnumber.ins and
-%% README.md.
-%%
-%% End of file `zhnumber.ins'.
diff --git a/macros/latex/contrib/zhnumber/zhnumber.pdf b/macros/latex/contrib/zhnumber/zhnumber.pdf
index 7a3936c5ff..3010ea379d 100644
--- a/macros/latex/contrib/zhnumber/zhnumber.pdf
+++ b/macros/latex/contrib/zhnumber/zhnumber.pdf
Binary files differ
diff --git a/macros/xetex/latex/xecjk/README.md b/macros/xetex/latex/xecjk/README.md
index 00f0e74c7f..0b9712861b 100644
--- a/macros/xetex/latex/xecjk/README.md
+++ b/macros/xetex/latex/xecjk/README.md
@@ -34,7 +34,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are Leo Liu and Qing Lee.
diff --git a/macros/xetex/latex/xecjk/teckit-mapping/full-stop.map b/macros/xetex/latex/xecjk/teckit-mapping/full-stop.map
deleted file mode 100644
index 0a23fe0e05..0000000000
--- a/macros/xetex/latex/xecjk/teckit-mapping/full-stop.map
+++ /dev/null
@@ -1,9 +0,0 @@
-; TECkit mapping for conversion of `FULLWIDTH FULL STOP" to `IDEOGRAPHIC FULL STOP"
-;
-
-LHSName "FULLWIDTH FULL STOP"
-RHSName "IDEOGRAPHIC FULL STOP"
-
-pass(Unicode)
-
-U+FF0E <> U+3002
diff --git a/macros/xetex/latex/xecjk/teckit-mapping/fullwidth-stop.map b/macros/xetex/latex/xecjk/teckit-mapping/fullwidth-stop.map
deleted file mode 100644
index 4c2c9c991a..0000000000
--- a/macros/xetex/latex/xecjk/teckit-mapping/fullwidth-stop.map
+++ /dev/null
@@ -1,9 +0,0 @@
-; TECkit mapping for conversion of `IDEOGRAPHIC FULL STOP" to `FULLWIDTH FULL STOP"
-;
-
-LHSName "IDEOGRAPHIC FULL STOP"
-RHSName "FULLWIDTH FULL STOP"
-
-pass(Unicode)
-
-U+3002 <> U+FF0E
diff --git a/macros/xetex/latex/xecjk/teckit-mapping/han-simp.map b/macros/xetex/latex/xecjk/teckit-mapping/han-simp.map
deleted file mode 100644
index bbb50a7d75..0000000000
--- a/macros/xetex/latex/xecjk/teckit-mapping/han-simp.map
+++ /dev/null
@@ -1,3073 +0,0 @@
-; TECkit mapping for conversion of traditional Chinese characters to simplified Chinese characters
-; from the Unicode Unihan database: <http://www.unicode.org/Public/UNIDATA/Unihan.zip>
-;
-; Unihan_Variants.txt
-; Date: 2018-11-09 21:36:19 GMT [JHJ]
-; Unicode version: 12.0.0
-;
-
-LHSName "traditional"
-RHSName "simplified"
-
-pass(Unicode)
-
-U+300C <> U+201C
-U+300D <> U+201D
-U+300E <> U+2018
-U+300F <> U+2019
-
-U+346F <> U+3454
-U+3473 <> U+3447
-U+3493 <> U+20242
-U+34E8 <> U+523E
-U+35F2 <> U+20D7E
-U+361A <> U+360E
-U+3704 <> U+36AF
-U+370F <> U+36E3
-U+3722 <> U+217B1
-U+3737 <> U+21760
-U+379E <> U+2AA0A
-U+380F <> U+37C6
-U+389D <> U+222C8
-U+396E <> U+3918
-U+398E <> U+226EF
-U+3A5C <> U+3A2B
-U+3A73 <> U+39D0
-U+3DFF <> U+24237
-U+3E8F <> U+2480B
-U+3FE7 <> U+24F6F
-U+4039 <> U+25174
-U+406A <> U+251E2
-U+407B <> U+4025
-U+4259 <> U+25B00
-U+426C <> U+2B088
-U+4272 <> U+25B9C
-U+42AD <> U+25E85
-U+42B7 <> U+4336
-U+42D9 <> U+433A
-U+42DA <> U+433B
-U+42FB <> U+433E
-U+42FF <> U+26213
-U+4308 <> U+26216
-U+430B <> U+26218
-U+4316 <> U+2621C
-U+431D <> U+2621F
-U+431F <> U+2621E
-U+4325 <> U+26220
-U+4330 <> U+26219
-U+4573 <> U+26C34
-U+45FF <> U+2725E
-U+4661 <> U+464C
-U+4700 <> U+4727
-U+477B <> U+27E55
-U+477C <> U+478D
-U+4788 <> U+27E51
-U+48A8 <> U+28479
-U+4947 <> U+4982
-U+4951 <> U+9FCF
-U+4969 <> U+28C56
-U+4971 <> U+497E
-U+4998 <> U+28E04
-U+499B <> U+49B6
-U+499F <> U+49B7
-U+49B3 <> U+28DFF
-U+49E2 <> U+28E1F
-U+4A8F <> U+293FC
-U+4A97 <> U+29400
-U+4A98 <> U+293FF
-U+4AF4 <> U+29597
-U+4B18 <> U+2966E
-U+4B1D <> U+2966F
-U+4B1E <> U+29667
-U+4B40 <> U+29807
-U+4B43 <> U+29808
-U+4B7F <> U+299ED
-U+4B9D <> U+299F0
-U+4B9E <> U+29A01
-U+4BA0 <> U+299FF
-U+4BAB <> U+29A07
-U+4BB3 <> U+29A0F
-U+4BBE <> U+299EA
-U+4BC0 <> U+4BC5
-U+4C3E <> U+9C83
-U+4C59 <> U+29F88
-U+4C6C <> U+29F8A
-U+4C70 <> U+29F8B
-U+4C77 <> U+4CA3
-U+4C7D <> U+4C9D
-U+4C81 <> U+9CDA
-U+4C96 <> U+29F82
-U+4CB0 <> U+2A242
-U+4D09 <> U+9E6E
-U+4D2C <> U+2A388
-U+4D34 <> U+2A38B
-U+4E1F <> U+4E22
-U+4E26 <> U+5E76
-U+4E7E <> U+5E72
-U+4E82 <> U+4E71
-U+4E9E <> U+4E9A
-U+4F47 <> U+4F2B
-U+4F59 <> U+4F59
-U+4F75 <> U+5E76
-U+4F86 <> U+6765
-U+4F96 <> U+4ED1
-U+4FB6 <> U+4FA3
-U+4FC1 <> U+4FE3
-U+4FC2 <> U+7CFB
-U+4FD4 <> U+4F23
-U+4FE0 <> U+4FA0
-U+4FE5 <> U+4F21
-U+5000 <> U+4F25
-U+5006 <> U+4FE9
-U+5008 <> U+4FEB
-U+5009 <> U+4ED3
-U+500B <> U+4E2A
-U+5011 <> U+4EEC
-U+502B <> U+4F26
-U+5032 <> U+3448
-U+5049 <> U+4F1F
-U+5051 <> U+343D
-U+5074 <> U+4FA7
-U+5075 <> U+4FA6
-U+507D <> U+4F2A
-U+5091 <> U+6770
-U+5096 <> U+4F27
-U+5098 <> U+4F1E
-U+5099 <> U+5907
-U+50AD <> U+4F63
-U+50AF <> U+506C
-U+50B3 <> U+4F20
-U+50B4 <> U+4F1B
-U+50B5 <> U+503A
-U+50B7 <> U+4F24
-U+50BE <> U+503E
-U+50C2 <> U+507B
-U+50C5 <> U+4EC5
-U+50C9 <> U+4F65
-U+50D1 <> U+4FA8
-U+50D5 <> U+4EC6
-U+50DE <> U+4F2A
-U+50E5 <> U+4FA5
-U+50E8 <> U+507E
-U+50F9 <> U+4EF7
-U+5100 <> U+4EEA
-U+5102 <> U+4FAC
-U+5104 <> U+4EBF
-U+5108 <> U+4FA9
-U+5109 <> U+4FED
-U+5110 <> U+50A7
-U+5114 <> U+4FE6
-U+5115 <> U+4FAA
-U+5118 <> U+5C3D
-U+511F <> U+507F
-U+5123 <> U+201B2
-U+512A <> U+4F18
-U+5132 <> U+50A8
-U+5137 <> U+4FEA
-U+5138 <> U+3469
-U+513A <> U+50A9
-U+513B <> U+50A5
-U+513C <> U+4FE8
-U+514C <> U+5151
-U+5152 <> U+513F
-U+5157 <> U+5156
-U+5167 <> U+5185
-U+5169 <> U+4E24
-U+518A <> U+518C
-U+51AA <> U+5E42
-U+51C8 <> U+51C0
-U+51CD <> U+51BB
-U+51D9 <> U+2A79D
-U+51DC <> U+51DB
-U+51F1 <> U+51EF
-U+5225 <> U+522B
-U+522A <> U+5220
-U+5244 <> U+522D
-U+5247 <> U+5219
-U+524B <> U+514B
-U+524E <> U+5239
-U+5257 <> U+522C
-U+525B <> U+521A
-U+525D <> U+5265
-U+526E <> U+5250
-U+5274 <> U+5240
-U+5275 <> U+521B
-U+527E <> U+206C5
-U+5283 <> U+5212
-U+5287 <> U+5267
-U+5289 <> U+5218
-U+528A <> U+523D
-U+528C <> U+523F
-U+528D <> U+5251
-U+528F <> U+34E5
-U+5291 <> U+5242
-U+529A <> U+3509
-U+52C1 <> U+52B2
-U+52D5 <> U+52A8
-U+52D9 <> U+52A1
-U+52DB <> U+52CB
-U+52DD <> U+80DC
-U+52DE <> U+52B3
-U+52E2 <> U+52BF
-U+52E9 <> U+52DA
-U+52F1 <> U+52A2
-U+52F5 <> U+52B1
-U+52F8 <> U+529D
-U+52FB <> U+5300
-U+532D <> U+5326
-U+532F <> U+6C47
-U+5331 <> U+532E
-U+5340 <> U+533A
-U+5354 <> U+534F
-U+537B <> U+5374
-U+5399 <> U+538D
-U+53AD <> U+538C
-U+53B2 <> U+5389
-U+53B4 <> U+53A3
-U+53C3 <> U+53C2
-U+53C4 <> U+53C1
-U+53E2 <> U+4E1B
-U+53F0 <> U+53F0
-U+540C <> U+540C
-U+540E <> U+540E
-U+5412 <> U+54A4
-U+5433 <> U+5434
-U+5436 <> U+5450
-U+5442 <> U+5415
-U+54BC <> U+5459
-U+54E1 <> U+5458
-U+54EF <> U+20BDF
-U+5504 <> U+5457
-U+551A <> U+5423
-U+554F <> U+95EE
-U+555E <> U+54D1
-U+555F <> U+542F
-U+5562 <> U+5521
-U+558E <> U+359E
-U+559A <> U+5524
-U+55AA <> U+4E27
-U+55AC <> U+4E54
-U+55AE <> U+5355
-U+55B2 <> U+54DF
-U+55C6 <> U+545B
-U+55C7 <> U+556C
-U+55CA <> U+551D
-U+55CE <> U+5417
-U+55DA <> U+545C
-U+55E9 <> U+5522
-U+55F6 <> U+54D4
-U+55F9 <> U+2A84F
-U+5606 <> U+53F9
-U+560D <> U+55BD
-U+5613 <> U+556F
-U+5614 <> U+5455
-U+5616 <> U+5567
-U+5617 <> U+5C1D
-U+561C <> U+551B
-U+5629 <> U+54D7
-U+562E <> U+5520
-U+562F <> U+5578
-U+5630 <> U+53FD
-U+5635 <> U+54D3
-U+5638 <> U+5452
-U+563D <> U+5574
-U+5645 <> U+20BE0
-U+5653 <> U+5618
-U+565A <> U+358A
-U+565D <> U+549D
-U+5660 <> U+54D2
-U+5665 <> U+54DD
-U+5666 <> U+54D5
-U+566F <> U+55F3
-U+5672 <> U+54D9
-U+5674 <> U+55B7
-U+5678 <> U+5428
-U+5679 <> U+5F53
-U+5680 <> U+549B
-U+5687 <> U+5413
-U+568C <> U+54DC
-U+5695 <> U+565C
-U+5699 <> U+556E
-U+56A6 <> U+5456
-U+56A8 <> U+5499
-U+56B2 <> U+4EB8
-U+56B3 <> U+55BE
-U+56B4 <> U+4E25
-U+56B6 <> U+5624
-U+56C0 <> U+556D
-U+56C1 <> U+55EB
-U+56C2 <> U+56A3
-U+56C5 <> U+5181
-U+56C8 <> U+5453
-U+56C9 <> U+5570
-U+56D1 <> U+5631
-U+56EA <> U+56F1
-U+5707 <> U+56F5
-U+570B <> U+56FD
-U+570D <> U+56F4
-U+5712 <> U+56ED
-U+5713 <> U+5706
-U+5716 <> U+56FE
-U+5718 <> U+56E2
-U+571E <> U+2A8AE
-U+57B5 <> U+57EF
-U+57E1 <> U+57AD
-U+57F0 <> U+91C7
-U+57F7 <> U+6267
-U+5805 <> U+575A
-U+580A <> U+57A9
-U+5816 <> U+57B4
-U+581D <> U+57DA
-U+582F <> U+5C27
-U+5831 <> U+62A5
-U+5834 <> U+573A
-U+584A <> U+5757
-U+584B <> U+8314
-U+584F <> U+57B2
-U+5852 <> U+57D8
-U+5857 <> U+6D82
-U+5862 <> U+575E
-U+5864 <> U+57D9
-U+5875 <> U+5C18
-U+5879 <> U+5811
-U+588A <> U+57AB
-U+589C <> U+5760
-U+58AE <> U+5815
-U+58B3 <> U+575F
-U+58BE <> U+57A6
-U+58C7 <> U+575B
-U+58C8 <> U+21484
-U+58CB <> U+57B1
-U+58D3 <> U+538B
-U+58D8 <> U+5792
-U+58D9 <> U+5739
-U+58DA <> U+5786
-U+58DE <> U+574F
-U+58DF <> U+5784
-U+58E0 <> U+5785
-U+58E2 <> U+575C
-U+58E9 <> U+575D
-U+58EF <> U+58EE
-U+58FA <> U+58F6
-U+58FC <> U+58F8
-U+58FD <> U+5BFF
-U+5920 <> U+591F
-U+5922 <> U+68A6
-U+593E <> U+5939
-U+5950 <> U+5942
-U+5967 <> U+5965
-U+5969 <> U+5941
-U+596A <> U+593A
-U+596E <> U+594B
-U+597C <> U+59F9
-U+599D <> U+5986
-U+59CD <> U+59D7
-U+59E6 <> U+5978
-U+5A1B <> U+5A31
-U+5A41 <> U+5A04
-U+5A66 <> U+5987
-U+5A6D <> U+5A05
-U+5AA7 <> U+5A32
-U+5AAF <> U+59AB
-U+5AB0 <> U+36C0
-U+5ABC <> U+5AAA
-U+5ABD <> U+5988
-U+5AD7 <> U+59AA
-U+5AF5 <> U+59A9
-U+5AFB <> U+5A34
-U+5AFF <> U+5A73
-U+5B03 <> U+5AAD
-U+5B08 <> U+5A06
-U+5B0B <> U+5A75
-U+5B0C <> U+5A07
-U+5B19 <> U+5AF1
-U+5B21 <> U+5AD2
-U+5B24 <> U+5B37
-U+5B2A <> U+5AD4
-U+5B30 <> U+5A74
-U+5B38 <> U+5A76
-U+5B4B <> U+36E4
-U+5B4C <> U+5A08
-U+5B6B <> U+5B59
-U+5B78 <> U+5B66
-U+5B7F <> U+5B6A
-U+5BAE <> U+5BAB
-U+5BE2 <> U+5BDD
-U+5BE6 <> U+5B9E
-U+5BE7 <> U+5B81
-U+5BE9 <> U+5BA1
-U+5BEB <> U+5199
-U+5BEC <> U+5BBD
-U+5BF5 <> U+5BA0
-U+5BF6 <> U+5B9D
-U+5C07 <> U+5C06
-U+5C08 <> U+4E13
-U+5C0B <> U+5BFB
-U+5C0D <> U+5BF9
-U+5C0E <> U+5BFC
-U+5C37 <> U+5C34
-U+5C46 <> U+5C4A
-U+5C4D <> U+5C38
-U+5C53 <> U+5C43
-U+5C5C <> U+5C49
-U+5C62 <> U+5C61
-U+5C64 <> U+5C42
-U+5C68 <> U+5C66
-U+5C69 <> U+2AA17
-U+5C6C <> U+5C5E
-U+5CA1 <> U+5188
-U+5CF4 <> U+5C98
-U+5CF6 <> U+5C9B
-U+5CFD <> U+5CE1
-U+5D0D <> U+5D03
-U+5D17 <> U+5C97
-U+5D22 <> U+5CE5
-U+5D2C <> U+5CBD
-U+5D50 <> U+5C9A
-U+5D7C <> U+21DB4
-U+5D81 <> U+5D5D
-U+5D84 <> U+5D2D
-U+5D87 <> U+5C96
-U+5D94 <> U+5D5A
-U+5D97 <> U+5D02
-U+5DA0 <> U+5CE4
-U+5DA2 <> U+5CE3
-U+5DA7 <> U+5CC4
-U+5DAE <> U+5D04
-U+5DB4 <> U+5C99
-U+5DB8 <> U+5D58
-U+5DBA <> U+5CAD
-U+5DBC <> U+5C7F
-U+5DCB <> U+5CBF
-U+5DD2 <> U+5CE6
-U+5DD4 <> U+5DC5
-U+5DF0 <> U+5DEF
-U+5E25 <> U+5E05
-U+5E2B <> U+5E08
-U+5E33 <> U+5E10
-U+5E36 <> U+5E26
-U+5E40 <> U+5E27
-U+5E43 <> U+5E0F
-U+5E57 <> U+5E3C
-U+5E58 <> U+5E3B
-U+5E5F <> U+5E1C
-U+5E63 <> U+5E01
-U+5E6B <> U+5E2E
-U+5E6C <> U+5E31
-U+5E79 <> U+5E72
-U+5E7A <> U+4E48
-U+5E7E <> U+51E0
-U+5EAB <> U+5E93
-U+5EC1 <> U+5395
-U+5EC2 <> U+53A2
-U+5EC4 <> U+53A9
-U+5EC8 <> U+53A6
-U+5EDA <> U+53A8
-U+5EDD <> U+53AE
-U+5EDF <> U+5E99
-U+5EE0 <> U+5382
-U+5EE1 <> U+5E91
-U+5EE2 <> U+5E9F
-U+5EE3 <> U+5E7F
-U+5EE9 <> U+5EEA
-U+5EEC <> U+5E90
-U+5EF3 <> U+5385
-U+5F12 <> U+5F11
-U+5F33 <> U+5F2A
-U+5F35 <> U+5F20
-U+5F37 <> U+5F3A
-U+5F48 <> U+5F39
-U+5F4C <> U+5F25
-U+5F4E <> U+5F2F
-U+5F59 <> U+6C47
-U+5F5E <> U+5F5D
-U+5F60 <> U+5F5F
-U+5F65 <> U+5F66
-U+5F72 <> U+5F68
-U+5F81 <> U+5F81
-U+5F8C <> U+540E
-U+5F91 <> U+5F84
-U+5F9E <> U+4ECE
-U+5FA0 <> U+5F95
-U+5FA9 <> U+590D
-U+5FB5 <> U+5F81
-U+5FB9 <> U+5F7B
-U+5FD7 <> U+5FD7
-U+6046 <> U+6052
-U+6065 <> U+803B
-U+6085 <> U+60A6
-U+609E <> U+60AE
-U+60B5 <> U+6005
-U+60B6 <> U+95F7
-U+60E1 <> U+6076
-U+60F1 <> U+607C
-U+60F2 <> U+607D
-U+60FB <> U+607B
-U+611B <> U+7231
-U+611C <> U+60EC
-U+6128 <> U+60AB
-U+6134 <> U+6006
-U+6137 <> U+607A
-U+613E <> U+5FFE
-U+613F <> U+613F
-U+6144 <> U+6817
-U+614B <> U+6001
-U+614D <> U+6120
-U+6158 <> U+60E8
-U+615A <> U+60ED
-U+615F <> U+6078
-U+6163 <> U+60EF
-U+616A <> U+6004
-U+616B <> U+6002
-U+616E <> U+8651
-U+6173 <> U+60AD
-U+6176 <> U+5E86
-U+6182 <> U+5FE7
-U+618A <> U+60EB
-U+6190 <> U+601C
-U+6191 <> U+51ED
-U+6192 <> U+6126
-U+619A <> U+60EE
-U+61A4 <> U+6124
-U+61AB <> U+60AF
-U+61AE <> U+6003
-U+61B2 <> U+5BAA
-U+61B6 <> U+5FC6
-U+61C0 <> U+22653
-U+61C7 <> U+6073
-U+61C9 <> U+5E94
-U+61CC <> U+603F
-U+61CD <> U+61D4
-U+61DF <> U+603C
-U+61E3 <> U+61D1
-U+61E8 <> U+6079
-U+61F2 <> U+60E9
-U+61F6 <> U+61D2
-U+61F7 <> U+6000
-U+61F8 <> U+60AC
-U+61FA <> U+5FCF
-U+61FC <> U+60E7
-U+61FE <> U+6151
-U+6200 <> U+604B
-U+6207 <> U+6206
-U+6214 <> U+620B
-U+6227 <> U+6217
-U+6229 <> U+622C
-U+6230 <> U+6218
-U+6231 <> U+622F
-U+6232 <> U+620F
-U+6236 <> U+6237
-U+62CB <> U+629B
-U+6329 <> U+635D
-U+633E <> U+631F
-U+6368 <> U+820D
-U+636B <> U+626A
-U+6383 <> U+626B
-U+6384 <> U+62A1
-U+6386 <> U+39CF
-U+6397 <> U+631C
-U+6399 <> U+6323
-U+639B <> U+6302
-U+63A1 <> U+91C7
-U+63C0 <> U+62E3
-U+63DA <> U+626C
-U+63DB <> U+6362
-U+63EE <> U+6325
-U+640D <> U+635F
-U+6416 <> U+6447
-U+6417 <> U+6363
-U+6435 <> U+63FE
-U+6436 <> U+62A2
-U+644B <> U+22AEC
-U+6451 <> U+63B4
-U+645C <> U+63BC
-U+645F <> U+6402
-U+646F <> U+631A
-U+6473 <> U+62A0
-U+6476 <> U+629F
-U+647B <> U+63BA
-U+6488 <> U+635E
-U+648F <> U+6326
-U+6490 <> U+6491
-U+6493 <> U+6320
-U+649D <> U+39D1
-U+649F <> U+6322
-U+64A3 <> U+63B8
-U+64A5 <> U+62E8
-U+64AB <> U+629A
-U+64B2 <> U+6251
-U+64B3 <> U+63FF
-U+64BB <> U+631E
-U+64BE <> U+631D
-U+64BF <> U+6361
-U+64C1 <> U+62E5
-U+64C4 <> U+63B3
-U+64C7 <> U+62E9
-U+64CA <> U+51FB
-U+64CB <> U+6321
-U+64D3 <> U+39DF
-U+64D4 <> U+62C5
-U+64DA <> U+636E
-U+64E0 <> U+6324
-U+64E3 <> U+22B4F
-U+64EC <> U+62DF
-U+64EF <> U+6448
-U+64F0 <> U+62E7
-U+64F1 <> U+6401
-U+64F2 <> U+63B7
-U+64F4 <> U+6269
-U+64F7 <> U+64B7
-U+64FA <> U+6446
-U+64FB <> U+64DE
-U+64FC <> U+64B8
-U+64FD <> U+39F0
-U+64FE <> U+6270
-U+6504 <> U+6445
-U+6506 <> U+64B5
-U+650F <> U+62E2
-U+6514 <> U+62E6
-U+6516 <> U+6484
-U+6519 <> U+6400
-U+651B <> U+64BA
-U+651C <> U+643A
-U+651D <> U+6444
-U+6522 <> U+6512
-U+6523 <> U+631B
-U+6524 <> U+644A
-U+652A <> U+6405
-U+652C <> U+63FD
-U+6557 <> U+8D25
-U+6558 <> U+53D9
-U+6575 <> U+654C
-U+6578 <> U+6570
-U+6582 <> U+655B
-U+6583 <> U+6BD9
-U+6585 <> U+22F7E
-U+6586 <> U+6569
-U+6595 <> U+6593
-U+65AC <> U+65A9
-U+65B7 <> U+65AD
-U+65BC <> U+4E8E
-U+6642 <> U+65F6
-U+6649 <> U+664B
-U+665D <> U+663C
-U+6688 <> U+6655
-U+6689 <> U+6656
-U+6698 <> U+65F8
-U+66A2 <> U+7545
-U+66AB <> U+6682
-U+66C4 <> U+6654
-U+66C6 <> U+5386
-U+66C7 <> U+6619
-U+66C9 <> U+6653
-U+66CF <> U+5411
-U+66D6 <> U+66A7
-U+66E0 <> U+65F7
-U+66E5 <> U+23190
-U+66E8 <> U+663D
-U+66EC <> U+6652
-U+66F8 <> U+4E66
-U+6703 <> U+4F1A
-U+6725 <> U+266E8
-U+6727 <> U+80E7
-U+6771 <> U+4E1C
-U+6774 <> U+9528
-U+6781 <> U+6781
-U+67F5 <> U+6805
-U+687F <> U+6746
-U+6894 <> U+6800
-U+6898 <> U+67A7
-U+689D <> U+6761
-U+689F <> U+67AD
-U+68B2 <> U+68C1
-U+68C4 <> U+5F03
-U+68D6 <> U+67A8
-U+68D7 <> U+67A3
-U+68DF <> U+680B
-U+68E1 <> U+3B4E
-U+68E7 <> U+6808
-U+68F2 <> U+6816
-U+68F6 <> U+68BE
-U+690F <> U+6860
-U+6932 <> U+3B4F
-U+694A <> U+6768
-U+6953 <> U+67AB
-U+6968 <> U+6862
-U+696D <> U+4E1A
-U+6975 <> U+6781
-U+69AA <> U+6769
-U+69AE <> U+8363
-U+69B2 <> U+6985
-U+69BF <> U+6864
-U+69CB <> U+6784
-U+69CD <> U+67AA
-U+69E4 <> U+68BF
-U+69E7 <> U+6920
-U+69E8 <> U+6901
-U+69F3 <> U+6868
-U+69F6 <> U+6922
-U+69FC <> U+691D
-U+6A01 <> U+6869
-U+6A02 <> U+4E50
-U+6A05 <> U+679E
-U+6A13 <> U+697C
-U+6A19 <> U+6807
-U+6A1E <> U+67A2
-U+6A22 <> U+3B64
-U+6A23 <> U+6837
-U+6A2B <> U+3B74
-U+6A33 <> U+686A
-U+6A38 <> U+6734
-U+6A39 <> U+6811
-U+6A3A <> U+6866
-U+6A3F <> U+692B
-U+6A48 <> U+6861
-U+6A4B <> U+6865
-U+6A5F <> U+673A
-U+6A62 <> U+692D
-U+6A6B <> U+6A2A
-U+6A81 <> U+6AA9
-U+6A89 <> U+67FD
-U+6A94 <> U+6863
-U+6A9C <> U+6867
-U+6A9F <> U+69DA
-U+6AA2 <> U+68C0
-U+6AA3 <> U+6A2F
-U+6AAD <> U+23634
-U+6AAE <> U+68BC
-U+6AAF <> U+53F0
-U+6AB3 <> U+69DF
-U+6AB8 <> U+67E0
-U+6ABB <> U+69DB
-U+6AC3 <> U+67DC
-U+6AD3 <> U+6A79
-U+6ADA <> U+6988
-U+6ADB <> U+6809
-U+6ADD <> U+691F
-U+6ADE <> U+6A7C
-U+6ADF <> U+680E
-U+6AE5 <> U+6A71
-U+6AE7 <> U+69E0
-U+6AE8 <> U+680C
-U+6AEA <> U+67A5
-U+6AEB <> U+6A65
-U+6AEC <> U+6987
-U+6AF1 <> U+8616
-U+6AF3 <> U+680A
-U+6AF8 <> U+6989
-U+6AFB <> U+6A31
-U+6B04 <> U+680F
-U+6B0A <> U+6743
-U+6B0D <> U+23424
-U+6B0F <> U+6924
-U+6B12 <> U+683E
-U+6B13 <> U+235CB
-U+6B16 <> U+6984
-U+6B1E <> U+68C2
-U+6B3D <> U+94A6
-U+6B50 <> U+6B27
-U+6B5F <> U+6B24
-U+6B61 <> U+6B22
-U+6B72 <> U+5C81
-U+6B77 <> U+5386
-U+6B78 <> U+5F52
-U+6B7F <> U+6B81
-U+6B98 <> U+6B8B
-U+6B9E <> U+6B92
-U+6BA4 <> U+6B87
-U+6BA8 <> U+3C6E
-U+6BAB <> U+6B9A
-U+6BAE <> U+6B93
-U+6BAF <> U+6BA1
-U+6BB0 <> U+3C69
-U+6BB2 <> U+6B7C
-U+6BBA <> U+6740
-U+6BBC <> U+58F3
-U+6BC0 <> U+6BC1
-U+6BC6 <> U+6BB4
-U+6BFF <> U+6BF5
-U+6C02 <> U+7266
-U+6C08 <> U+6BE1
-U+6C0C <> U+6C07
-U+6C23 <> U+6C14
-U+6C2B <> U+6C22
-U+6C2C <> U+6C29
-U+6C33 <> U+6C32
-U+6C7A <> U+51B3
-U+6C92 <> U+6CA1
-U+6C96 <> U+51B2
-U+6CC1 <> U+51B5
-U+6D36 <> U+6C79
-U+6D79 <> U+6D43
-U+6D87 <> U+6CFE
-U+6DBC <> U+51C9
-U+6DDA <> U+6CEA
-U+6DE5 <> U+6E0C
-U+6DEA <> U+6CA6
-U+6DF5 <> U+6E0A
-U+6DF6 <> U+6D9E
-U+6DFA <> U+6D45
-U+6E19 <> U+6DA3
-U+6E1B <> U+51CF
-U+6E22 <> U+6CA8
-U+6E26 <> U+6DA1
-U+6E2C <> U+6D4B
-U+6E3E <> U+6D51
-U+6E4A <> U+51D1
-U+6E5E <> U+6D48
-U+6E6F <> U+6C64
-U+6E88 <> U+6CA9
-U+6E96 <> U+51C6
-U+6E9D <> U+6C9F
-U+6EAB <> U+6E29
-U+6EB3 <> U+6DA2
-U+6EC4 <> U+6CA7
-U+6EC5 <> U+706D
-U+6ECC <> U+6DA4
-U+6ECE <> U+8365
-U+6EEC <> U+6CAA
-U+6EEF <> U+6EDE
-U+6EF2 <> U+6E17
-U+6EF8 <> U+6D52
-U+6EFB <> U+6D50
-U+6EFE <> U+6EDA
-U+6EFF <> U+6EE1
-U+6F01 <> U+6E14
-U+6F0A <> U+6E87
-U+6F1A <> U+6CA4
-U+6F22 <> U+6C49
-U+6F23 <> U+6D9F
-U+6F2C <> U+6E0D
-U+6F32 <> U+6DA8
-U+6F35 <> U+6E86
-U+6F38 <> U+6E10
-U+6F3F <> U+6D46
-U+6F41 <> U+988D
-U+6F51 <> U+6CFC
-U+6F54 <> U+6D01
-U+6F5B <> U+6F5C
-U+6F64 <> U+6DA6
-U+6F6F <> U+6D54
-U+6F70 <> U+6E83
-U+6F77 <> U+6ED7
-U+6F7F <> U+6DA0
-U+6F80 <> U+6DA9
-U+6F85 <> U+23DA9
-U+6F86 <> U+6D47
-U+6F87 <> U+6D9D
-U+6F97 <> U+6DA7
-U+6FA0 <> U+6E11
-U+6FA4 <> U+6CFD
-U+6FA6 <> U+6EEA
-U+6FA9 <> U+6CF6
-U+6FAE <> U+6D4D
-U+6FB1 <> U+6DC0
-U+6FBE <> U+3CE0
-U+6FC1 <> U+6D4A
-U+6FC3 <> U+6D53
-U+6FC4 <> U+3CE1
-U+6FC6 <> U+23E23
-U+6FD5 <> U+6E7F
-U+6FD8 <> U+6CDE
-U+6FDC <> U+6D55
-U+6FDF <> U+6D4E
-U+6FE4 <> U+6D9B
-U+6FE7 <> U+3CD4
-U+6FEB <> U+6EE5
-U+6FF0 <> U+6F4D
-U+6FF1 <> U+6EE8
-U+6FFA <> U+6E85
-U+6FFC <> U+6CFA
-U+6FFE <> U+6EE4
-U+7002 <> U+6F9B
-U+7003 <> U+23F77
-U+7005 <> U+6EE2
-U+7006 <> U+6E0E
-U+7007 <> U+3CBF
-U+7009 <> U+6CFB
-U+700B <> U+6C88
-U+700F <> U+6D4F
-U+7015 <> U+6FD2
-U+7018 <> U+6CF8
-U+701D <> U+6CA5
-U+701F <> U+6F47
-U+7020 <> U+6F46
-U+7026 <> U+6F74
-U+7027 <> U+6CF7
-U+7028 <> U+6FD1
-U+7030 <> U+3CFD
-U+7032 <> U+6F4B
-U+703E <> U+6F9C
-U+7043 <> U+6CA3
-U+7044 <> U+6EE0
-U+7051 <> U+6D12
-U+7055 <> U+6F13
-U+7058 <> U+6EE9
-U+7059 <> U+23EBC
-U+705D <> U+704F
-U+7060 <> U+6F24
-U+7061 <> U+3CD5
-U+7063 <> U+6E7E
-U+7064 <> U+6EE6
-U+7067 <> U+6EDF
-U+707D <> U+707E
-U+70BA <> U+4E3A
-U+70CF <> U+4E4C
-U+70F4 <> U+70C3
-U+7121 <> U+65E0
-U+7149 <> U+70BC
-U+7152 <> U+709C
-U+7159 <> U+70DF
-U+7162 <> U+8315
-U+7165 <> U+7115
-U+7169 <> U+70E6
-U+716C <> U+7080
-U+7171 <> U+3DBD
-U+7185 <> U+7174
-U+7189 <> U+24236
-U+718C <> U+241C4
-U+7192 <> U+8367
-U+7193 <> U+241A1
-U+7197 <> U+709D
-U+71A1 <> U+242CF
-U+71B1 <> U+70ED
-U+71B2 <> U+988E
-U+71BE <> U+70BD
-U+71C1 <> U+70E8
-U+71C8 <> U+706F
-U+71D2 <> U+70E7
-U+71D9 <> U+70EB
-U+71DC <> U+7116
-U+71DF <> U+8425
-U+71E6 <> U+707F
-U+71ED <> U+70DB
-U+71F4 <> U+70E9
-U+71F6 <> U+3DB6
-U+71FC <> U+70EC
-U+71FE <> U+7118
-U+7204 <> U+241C3
-U+720D <> U+70C1
-U+7210 <> U+7089
-U+721B <> U+70C2
-U+722D <> U+4E89
-U+723A <> U+7237
-U+723E <> U+5C14
-U+7246 <> U+5899
-U+7258 <> U+724D
-U+727D <> U+7275
-U+7296 <> U+8366
-U+72A2 <> U+728A
-U+72A7 <> U+727A
-U+72C0 <> U+72B6
-U+72F9 <> U+72ED
-U+72FD <> U+72C8
-U+7319 <> U+72F0
-U+7336 <> U+72B9
-U+733B <> U+72F2
-U+7341 <> U+72B8
-U+7344 <> U+72F1
-U+7345 <> U+72EE
-U+734E <> U+5956
-U+7368 <> U+72EC
-U+736A <> U+72EF
-U+736B <> U+7303
-U+736E <> U+72DD
-U+7370 <> U+72DE
-U+7371 <> U+3E8D
-U+7372 <> U+83B7
-U+7375 <> U+730E
-U+7377 <> U+72B7
-U+7378 <> U+517D
-U+737A <> U+736D
-U+737B <> U+732E
-U+737C <> U+7315
-U+7380 <> U+7321
-U+7381 <> U+247A4
-U+73FE <> U+73B0
-U+743A <> U+73D0
-U+743F <> U+73F2
-U+744B <> U+73AE
-U+7452 <> U+739A
-U+7463 <> U+7410
-U+7464 <> U+7476
-U+7469 <> U+83B9
-U+746A <> U+739B
-U+7472 <> U+73B1
-U+747D <> U+2AED0
-U+7489 <> U+740F
-U+74A3 <> U+7391
-U+74A6 <> U+7477
-U+74AB <> U+73F0
-U+74AF <> U+3EC5
-U+74B0 <> U+73AF
-U+74BD <> U+73BA
-U+74CA <> U+743C
-U+74CF <> U+73D1
-U+74D4 <> U+748E
-U+74D5 <> U+24980
-U+74DA <> U+74D2
-U+750C <> U+74EF
-U+7522 <> U+4EA7
-U+755D <> U+4EA9
-U+7562 <> U+6BD5
-U+756B <> U+753B
-U+7570 <> U+5F02
-U+7576 <> U+5F53
-U+7587 <> U+7574
-U+758A <> U+53E0
-U+75D9 <> U+75C9
-U+75FE <> U+75B4
-U+7602 <> U+75D6
-U+760B <> U+75AF
-U+760D <> U+75A1
-U+7613 <> U+75EA
-U+761E <> U+7617
-U+7621 <> U+75AE
-U+7627 <> U+759F
-U+762E <> U+7606
-U+7632 <> U+75AD
-U+763A <> U+7618
-U+7642 <> U+7597
-U+7646 <> U+75E8
-U+7647 <> U+75EB
-U+7649 <> U+7605
-U+7658 <> U+75A0
-U+765F <> U+762A
-U+7662 <> U+75D2
-U+7664 <> U+7596
-U+7665 <> U+75C7
-U+7667 <> U+75AC
-U+7669 <> U+765E
-U+766C <> U+7663
-U+766D <> U+763F
-U+766E <> U+763E
-U+7670 <> U+75C8
-U+7671 <> U+762B
-U+7672 <> U+766B
-U+767C <> U+53D1
-U+769A <> U+7691
-U+769F <> U+24F80
-U+76B0 <> U+75B1
-U+76B8 <> U+76B2
-U+76BA <> U+76B1
-U+76DC <> U+76D7
-U+76DE <> U+76CF
-U+76E1 <> U+5C3D
-U+76E3 <> U+76D1
-U+76E4 <> U+76D8
-U+76E7 <> U+5362
-U+76EA <> U+8361
-U+7725 <> U+7726
-U+773E <> U+4F17
-U+774D <> U+2AFA2
-U+774F <> U+56F0
-U+775C <> U+7741
-U+775E <> U+7750
-U+7798 <> U+770D
-U+779C <> U+4056
-U+779E <> U+7792
-U+77A4 <> U+251A7
-U+77B6 <> U+7786
-U+77BC <> U+7751
-U+77D3 <> U+772C
-U+77DA <> U+77A9
-U+77EF <> U+77EB
-U+785C <> U+7841
-U+7864 <> U+7856
-U+7868 <> U+7817
-U+786F <> U+781A
-U+7899 <> U+2543B
-U+78A9 <> U+7855
-U+78AD <> U+7800
-U+78B8 <> U+781C
-U+78BA <> U+786E
-U+78BC <> U+7801
-U+78BD <> U+40B5
-U+78D1 <> U+7859
-U+78DA <> U+7816
-U+78E0 <> U+7875
-U+78E3 <> U+789C
-U+78E7 <> U+789B
-U+78EF <> U+77F6
-U+78FD <> U+7857
-U+7904 <> U+785A
-U+7906 <> U+7877
-U+790E <> U+7840
-U+7912 <> U+2541F
-U+7919 <> U+788D
-U+7926 <> U+77FF
-U+792A <> U+783A
-U+792B <> U+783E
-U+792C <> U+77FE
-U+7931 <> U+783B
-U+797F <> U+7984
-U+798D <> U+7978
-U+798E <> U+796F
-U+7995 <> U+794E
-U+79A1 <> U+7943
-U+79A6 <> U+5FA1
-U+79AA <> U+7985
-U+79AE <> U+793C
-U+79B0 <> U+7962
-U+79B1 <> U+7977
-U+79BF <> U+79C3
-U+79C8 <> U+7C7C
-U+7A05 <> U+7A0E
-U+7A08 <> U+79C6
-U+7A0F <> U+4149
-U+7A1F <> U+7980
-U+7A2E <> U+79CD
-U+7A31 <> U+79F0
-U+7A40 <> U+8C37
-U+7A4C <> U+7A23
-U+7A4D <> U+79EF
-U+7A4E <> U+9896
-U+7A60 <> U+79FE
-U+7A61 <> U+7A51
-U+7A62 <> U+79FD
-U+7A68 <> U+2C4FC
-U+7A69 <> U+7A33
-U+7A6B <> U+83B7
-U+7A6D <> U+7A06
-U+7AA9 <> U+7A9D
-U+7AAA <> U+6D3C
-U+7AAE <> U+7A77
-U+7AAF <> U+7A91
-U+7AB5 <> U+7A8E
-U+7AB6 <> U+7AAD
-U+7ABA <> U+7AA5
-U+7AC4 <> U+7A9C
-U+7AC5 <> U+7A8D
-U+7AC7 <> U+7AA6
-U+7ACA <> U+7A83
-U+7AF6 <> U+7ADE
-U+7B46 <> U+7B14
-U+7B4D <> U+7B0B
-U+7B67 <> U+7B15
-U+7B74 <> U+41F2
-U+7B8B <> U+7B3A
-U+7B8F <> U+7B5D
-U+7BC0 <> U+8282
-U+7BC4 <> U+8303
-U+7BC9 <> U+7B51
-U+7BCB <> U+7BA7
-U+7BD4 <> U+7B7C
-U+7BD8 <> U+25B20
-U+7BE4 <> U+7B03
-U+7BE9 <> U+7B5B
-U+7BF3 <> U+7B5A
-U+7C00 <> U+7BA6
-U+7C0D <> U+7BD3
-U+7C1E <> U+7BAA
-U+7C21 <> U+7B80
-U+7C23 <> U+7BD1
-U+7C2B <> U+7BAB
-U+7C39 <> U+7B5C
-U+7C3D <> U+7B7E
-U+7C3E <> U+5E18
-U+7C43 <> U+7BEE
-U+7C4B <> U+25B1E
-U+7C4C <> U+7B79
-U+7C54 <> U+4264
-U+7C59 <> U+7B93
-U+7C5B <> U+7BEF
-U+7C5C <> U+7BA8
-U+7C5F <> U+7C41
-U+7C60 <> U+7B3C
-U+7C69 <> U+7B3E
-U+7C6A <> U+7C16
-U+7C6C <> U+7BF1
-U+7C6E <> U+7BA9
-U+7CB5 <> U+7CA4
-U+7CDD <> U+7CC1
-U+7CDE <> U+7CAA
-U+7CE7 <> U+7CAE
-U+7CF2 <> U+7C9D
-U+7CF4 <> U+7C74
-U+7CF6 <> U+7C9C
-U+7CF9 <> U+7E9F
-U+7CFE <> U+7EA0
-U+7D00 <> U+7EAA
-U+7D02 <> U+7EA3
-U+7D04 <> U+7EA6
-U+7D05 <> U+7EA2
-U+7D06 <> U+7EA1
-U+7D07 <> U+7EA5
-U+7D08 <> U+7EA8
-U+7D09 <> U+7EAB
-U+7D0B <> U+7EB9
-U+7D0D <> U+7EB3
-U+7D10 <> U+7EBD
-U+7D13 <> U+7EBE
-U+7D14 <> U+7EAF
-U+7D15 <> U+7EB0
-U+7D16 <> U+7EBC
-U+7D17 <> U+7EB1
-U+7D18 <> U+7EAE
-U+7D19 <> U+7EB8
-U+7D1A <> U+7EA7
-U+7D1B <> U+7EB7
-U+7D1C <> U+7EAD
-U+7D1D <> U+7EB4
-U+7D21 <> U+7EBA
-U+7D2C <> U+4337
-U+7D30 <> U+7EC6
-U+7D31 <> U+7EC2
-U+7D32 <> U+7EC1
-U+7D33 <> U+7EC5
-U+7D35 <> U+7EBB
-U+7D39 <> U+7ECD
-U+7D3A <> U+7EC0
-U+7D3C <> U+7ECB
-U+7D3F <> U+7ED0
-U+7D40 <> U+7ECC
-U+7D42 <> U+7EC8
-U+7D44 <> U+7EC4
-U+7D45 <> U+4339
-U+7D46 <> U+7ECA
-U+7D4E <> U+7ED7
-U+7D50 <> U+7ED3
-U+7D55 <> U+7EDD
-U+7D5B <> U+7EE6
-U+7D5D <> U+7ED4
-U+7D5E <> U+7EDE
-U+7D61 <> U+7EDC
-U+7D62 <> U+7EDA
-U+7D66 <> U+7ED9
-U+7D68 <> U+7ED2
-U+7D70 <> U+7ED6
-U+7D71 <> U+7EDF
-U+7D72 <> U+4E1D
-U+7D73 <> U+7EDB
-U+7D79 <> U+7EE2
-U+7D7A <> U+2B128
-U+7D80 <> U+2620C
-U+7D81 <> U+7ED1
-U+7D83 <> U+7EE1
-U+7D86 <> U+7EE0
-U+7D87 <> U+2620B
-U+7D88 <> U+7EE8
-U+7D8C <> U+7EE4
-U+7D8F <> U+7EE5
-U+7D90 <> U+433C
-U+7D93 <> U+7ECF
-U+7D9C <> U+7EFC
-U+7D9D <> U+2C62D
-U+7D9E <> U+7F0D
-U+7DA0 <> U+7EFF
-U+7DA2 <> U+7EF8
-U+7DA3 <> U+7EFB
-U+7DAC <> U+7EF6
-U+7DAD <> U+7EF4
-U+7DAF <> U+7EF9
-U+7DB0 <> U+7EFE
-U+7DB1 <> U+7EB2
-U+7DB2 <> U+7F51
-U+7DB4 <> U+7F00
-U+7DB5 <> U+433D
-U+7DB8 <> U+7EB6
-U+7DB9 <> U+7EFA
-U+7DBA <> U+7EEE
-U+7DBB <> U+7EFD
-U+7DBD <> U+7EF0
-U+7DBE <> U+7EEB
-U+7DBF <> U+7EF5
-U+7DC4 <> U+7EF2
-U+7DC7 <> U+7F01
-U+7DCA <> U+7D27
-U+7DCB <> U+7EEF
-U+7DCD <> U+2620F
-U+7DD2 <> U+7EEA
-U+7DD3 <> U+7EEC
-U+7DD7 <> U+7F03
-U+7DD8 <> U+7F04
-U+7DD9 <> U+7F02
-U+7DDA <> U+7EBF
-U+7DDD <> U+7F09
-U+7DDE <> U+7F0E
-U+7DE0 <> U+7F14
-U+7DE1 <> U+7F17
-U+7DE3 <> U+7F18
-U+7DE6 <> U+7F0C
-U+7DE8 <> U+7F16
-U+7DE9 <> U+7F13
-U+7DEC <> U+7F05
-U+7DEF <> U+7EAC
-U+7DF0 <> U+26215
-U+7DF1 <> U+7F11
-U+7DF2 <> U+7F08
-U+7DF4 <> U+7EC3
-U+7DF6 <> U+7F0F
-U+7DF7 <> U+26209
-U+7DF8 <> U+26211
-U+7DF9 <> U+7F07
-U+7DFB <> U+81F4
-U+7E08 <> U+8426
-U+7E09 <> U+7F19
-U+7E0A <> U+7F22
-U+7E0B <> U+7F12
-U+7E0E <> U+26214
-U+7E10 <> U+7EC9
-U+7E11 <> U+7F23
-U+7E15 <> U+7F0A
-U+7E17 <> U+7F1E
-U+7E1B <> U+7F1A
-U+7E1D <> U+7F1C
-U+7E1E <> U+7F1F
-U+7E1F <> U+7F1B
-U+7E23 <> U+53BF
-U+7E2B <> U+7F1D
-U+7E2C <> U+2621A
-U+7E2D <> U+7F21
-U+7E2E <> U+7F29
-U+7E31 <> U+7EB5
-U+7E32 <> U+7F27
-U+7E33 <> U+4338
-U+7E35 <> U+7F26
-U+7E36 <> U+7D77
-U+7E37 <> U+7F15
-U+7E39 <> U+7F25
-U+7E3A <> U+26210
-U+7E3D <> U+603B
-U+7E3E <> U+7EE9
-U+7E43 <> U+7EF7
-U+7E45 <> U+7F2B
-U+7E46 <> U+7F2A
-U+7E4F <> U+2621D
-U+7E52 <> U+7F2F
-U+7E53 <> U+2621B
-U+7E54 <> U+7EC7
-U+7E55 <> U+7F2E
-U+7E5A <> U+7F2D
-U+7E5E <> U+7ED5
-U+7E5F <> U+2620E
-U+7E61 <> U+7EE3
-U+7E62 <> U+7F0B
-U+7E69 <> U+7EF3
-U+7E6A <> U+7ED8
-U+7E6B <> U+7CFB
-U+7E6D <> U+8327
-U+7E6F <> U+7F33
-U+7E70 <> U+7F32
-U+7E73 <> U+7F34
-U+7E78 <> U+4341
-U+7E79 <> U+7ECE
-U+7E7B <> U+26221
-U+7E7C <> U+7EE7
-U+7E7D <> U+7F24
-U+7E7E <> U+7F31
-U+7E7F <> U+4340
-U+7E81 <> U+2B138
-U+7E87 <> U+98A3
-U+7E88 <> U+7F2C
-U+7E8A <> U+7EA9
-U+7E8C <> U+7EED
-U+7E8D <> U+7D2F
-U+7E8F <> U+7F20
-U+7E93 <> U+7F28
-U+7E96 <> U+7EA4
-U+7E98 <> U+7F35
-U+7E9C <> U+7F06
-U+7F3D <> U+94B5
-U+7F48 <> U+575B
-U+7F4C <> U+7F42
-U+7F70 <> U+7F5A
-U+7F75 <> U+9A82
-U+7F77 <> U+7F62
-U+7F85 <> U+7F57
-U+7F86 <> U+7F74
-U+7F88 <> U+7F81
-U+7F8B <> U+8288
-U+7FA5 <> U+7F9F
-U+7FA9 <> U+4E49
-U+7FD2 <> U+4E60
-U+7FEC <> U+7FDA
-U+7FF9 <> U+7FD8
-U+7FFD <> U+7FD9
-U+802C <> U+8027
-U+802E <> U+8022
-U+8056 <> U+5723
-U+805E <> U+95FB
-U+806F <> U+8054
-U+8070 <> U+806A
-U+8072 <> U+58F0
-U+8073 <> U+8038
-U+8075 <> U+8069
-U+8076 <> U+8042
-U+8077 <> U+804C
-U+8079 <> U+804D
-U+807D <> U+542C
-U+807E <> U+804B
-U+8085 <> U+8083
-U+8105 <> U+80C1
-U+8108 <> U+8109
-U+811B <> U+80EB
-U+8125 <> U+23370
-U+812B <> U+8131
-U+8139 <> U+80C0
-U+814E <> U+80BE
-U+8156 <> U+80E8
-U+8161 <> U+8136
-U+8166 <> U+8111
-U+816A <> U+2336F
-U+816B <> U+80BF
-U+8173 <> U+811A
-U+8178 <> U+80A0
-U+8183 <> U+817D
-U+8195 <> U+8158
-U+819A <> U+80A4
-U+81A0 <> U+80F6
-U+81A2 <> U+2677C
-U+81A9 <> U+817B
-U+81BD <> U+80C6
-U+81BE <> U+810D
-U+81BF <> U+8113
-U+81C9 <> U+8138
-U+81CD <> U+8110
-U+81CF <> U+8191
-U+81D7 <> U+23391
-U+81D8 <> U+814A
-U+81DA <> U+80EA
-U+81DF <> U+810F
-U+81E0 <> U+8114
-U+81E2 <> U+81DC
-U+81E8 <> U+4E34
-U+81FA <> U+53F0
-U+8207 <> U+4E0E
-U+8208 <> U+5174
-U+8209 <> U+4E3E
-U+820A <> U+65E7
-U+8259 <> U+8231
-U+8264 <> U+8223
-U+8266 <> U+8230
-U+826B <> U+823B
-U+8271 <> U+8270
-U+8277 <> U+8273
-U+82BB <> U+520D
-U+82E7 <> U+82CE
-U+8332 <> U+5179
-U+834A <> U+8346
-U+838A <> U+5E84
-U+8396 <> U+830E
-U+83A2 <> U+835A
-U+83A7 <> U+82CB
-U+83EF <> U+534E
-U+8407 <> U+82CC
-U+840A <> U+83B1
-U+842C <> U+4E07
-U+8434 <> U+835D
-U+8435 <> U+83B4
-U+8449 <> U+53F6
-U+8452 <> U+836D
-U+8457 <> U+7740
-U+8464 <> U+836E
-U+8466 <> U+82C7
-U+8477 <> U+8364
-U+8494 <> U+83B3
-U+849E <> U+8385
-U+84BC <> U+82CD
-U+84C0 <> U+836A
-U+84CB <> U+76D6
-U+84EE <> U+83B2
-U+84EF <> U+82C1
-U+84F4 <> U+83BC
-U+84FD <> U+835C
-U+851E <> U+848C
-U+8523 <> U+848B
-U+8525 <> U+8471
-U+8526 <> U+8311
-U+852D <> U+836B
-U+8541 <> U+8368
-U+8546 <> U+8487
-U+854E <> U+835E
-U+8552 <> U+836C
-U+8553 <> U+82B8
-U+8555 <> U+83B8
-U+8558 <> U+835B
-U+8562 <> U+8489
-U+8569 <> U+8361
-U+856A <> U+829C
-U+856D <> U+8427
-U+8577 <> U+84E3
-U+8580 <> U+8570
-U+8588 <> U+835F
-U+858A <> U+84DF
-U+858C <> U+8297
-U+8594 <> U+8537
-U+8598 <> U+8359
-U+859F <> U+83B6
-U+85A6 <> U+8350
-U+85A9 <> U+8428
-U+85B3 <> U+44D5
-U+85B4 <> U+82E7
-U+85BA <> U+8360
-U+85CD <> U+84DD
-U+85CE <> U+8369
-U+85DD <> U+827A
-U+85E5 <> U+836F
-U+85EA <> U+85AE
-U+85F6 <> U+82C8
-U+85F9 <> U+853C
-U+85FA <> U+853A
-U+8604 <> U+8572
-U+8606 <> U+82A6
-U+8607 <> U+82CF
-U+860A <> U+8574
-U+860B <> U+82F9
-U+861A <> U+85D3
-U+861E <> U+8539
-U+8622 <> U+830F
-U+862D <> U+5170
-U+863A <> U+84E0
-U+863F <> U+841D
-U+8646 <> U+8502
-U+8655 <> U+5904
-U+865B <> U+865A
-U+865C <> U+864F
-U+865F <> U+53F7
-U+8667 <> U+4E8F
-U+866F <> U+866C
-U+86FA <> U+86F1
-U+86FB <> U+8715
-U+8706 <> U+86AC
-U+8721 <> U+8721
-U+8755 <> U+8680
-U+875F <> U+732C
-U+8766 <> U+867E
-U+8778 <> U+8717
-U+8784 <> U+86F3
-U+879E <> U+8682
-U+87A2 <> U+8424
-U+87AE <> U+45D6
-U+87BB <> U+877C
-U+87BF <> U+8780
-U+87C4 <> U+86F0
-U+87C8 <> U+8748
-U+87CE <> U+87A8
-U+87E3 <> U+866E
-U+87EC <> U+8749
-U+87EF <> U+86F2
-U+87F2 <> U+866B
-U+87F6 <> U+86CF
-U+87FB <> U+8681
-U+8801 <> U+8683
-U+8805 <> U+8747
-U+8806 <> U+867F
-U+8810 <> U+86F4
-U+8811 <> U+877E
-U+881F <> U+8721
-U+8823 <> U+86CE
-U+8828 <> U+87CF
-U+8831 <> U+86CA
-U+8836 <> U+8695
-U+883B <> U+86EE
-U+8853 <> U+672F
-U+8855 <> U+540C
-U+885A <> U+80E1
-U+885B <> U+536B
-U+885D <> U+51B2
-U+889E <> U+886E
-U+88CA <> U+8885
-U+88DC <> U+8865
-U+88DD <> U+88C5
-U+88E1 <> U+91CC
-U+88FD <> U+5236
-U+8907 <> U+590D
-U+890C <> U+88C8
-U+8918 <> U+8886
-U+8932 <> U+88E4
-U+8933 <> U+88E2
-U+8938 <> U+891B
-U+893B <> U+4EB5
-U+8940 <> U+2B300
-U+8949 <> U+88E5
-U+894F <> U+88AF
-U+8956 <> U+8884
-U+895D <> U+88E3
-U+8960 <> U+88C6
-U+8964 <> U+8934
-U+896A <> U+889C
-U+896C <> U+4653
-U+896F <> U+886C
-U+8972 <> U+88AD
-U+8974 <> U+8955
-U+8986 <> U+590D
-U+898B <> U+89C1
-U+898E <> U+89C3
-U+898F <> U+89C4
-U+8993 <> U+89C5
-U+8996 <> U+89C6
-U+8998 <> U+89C7
-U+89A1 <> U+89CB
-U+89A5 <> U+89CD
-U+89A6 <> U+89CE
-U+89AA <> U+4EB2
-U+89AC <> U+89CA
-U+89AF <> U+89CF
-U+89B2 <> U+89D0
-U+89B7 <> U+89D1
-U+89BA <> U+89C9
-U+89BC <> U+2B328
-U+89BD <> U+89C8
-U+89BF <> U+89CC
-U+89C0 <> U+89C2
-U+89F4 <> U+89DE
-U+89F6 <> U+89EF
-U+89F8 <> U+89E6
-U+8A01 <> U+8BA0
-U+8A02 <> U+8BA2
-U+8A03 <> U+8BA3
-U+8A08 <> U+8BA1
-U+8A0A <> U+8BAF
-U+8A0C <> U+8BA7
-U+8A0E <> U+8BA8
-U+8A10 <> U+8BA6
-U+8A11 <> U+2B359
-U+8A12 <> U+8BB1
-U+8A13 <> U+8BAD
-U+8A15 <> U+8BAA
-U+8A16 <> U+8BAB
-U+8A17 <> U+8BAC
-U+8A18 <> U+8BB0
-U+8A1B <> U+8BB9
-U+8A1D <> U+8BB6
-U+8A1F <> U+8BBC
-U+8A22 <> U+4723
-U+8A23 <> U+8BC0
-U+8A25 <> U+8BB7
-U+8A29 <> U+8BBB
-U+8A2A <> U+8BBF
-U+8A2D <> U+8BBE
-U+8A31 <> U+8BB8
-U+8A34 <> U+8BC9
-U+8A36 <> U+8BC3
-U+8A3A <> U+8BCA
-U+8A3B <> U+6CE8
-U+8A40 <> U+27BAA
-U+8A41 <> U+8BC2
-U+8A46 <> U+8BCB
-U+8A4E <> U+8BB5
-U+8A50 <> U+8BC8
-U+8A51 <> U+2B35F
-U+8A52 <> U+8BD2
-U+8A54 <> U+8BCF
-U+8A55 <> U+8BC4
-U+8A56 <> U+8BD0
-U+8A57 <> U+8BC7
-U+8A58 <> U+8BCE
-U+8A5B <> U+8BC5
-U+8A5E <> U+8BCD
-U+8A60 <> U+548F
-U+8A61 <> U+8BE9
-U+8A62 <> U+8BE2
-U+8A63 <> U+8BE3
-U+8A66 <> U+8BD5
-U+8A69 <> U+8BD7
-U+8A6B <> U+8BE7
-U+8A6C <> U+8BDF
-U+8A6D <> U+8BE1
-U+8A6E <> U+8BE0
-U+8A70 <> U+8BD8
-U+8A71 <> U+8BDD
-U+8A72 <> U+8BE5
-U+8A73 <> U+8BE6
-U+8A75 <> U+8BDC
-U+8A7C <> U+8BD9
-U+8A7F <> U+8BD6
-U+8A84 <> U+8BD4
-U+8A85 <> U+8BDB
-U+8A86 <> U+8BD3
-U+8A87 <> U+5938
-U+8A8C <> U+5FD7
-U+8A8D <> U+8BA4
-U+8A91 <> U+8BF3
-U+8A92 <> U+8BF6
-U+8A95 <> U+8BDE
-U+8A98 <> U+8BF1
-U+8A9A <> U+8BEE
-U+8A9E <> U+8BED
-U+8AA0 <> U+8BDA
-U+8AA1 <> U+8BEB
-U+8AA3 <> U+8BEC
-U+8AA4 <> U+8BEF
-U+8AA5 <> U+8BF0
-U+8AA6 <> U+8BF5
-U+8AA8 <> U+8BF2
-U+8AAA <> U+8BF4
-U+8AB0 <> U+8C01
-U+8AB2 <> U+8BFE
-U+8AB6 <> U+8C07
-U+8AB9 <> U+8BFD
-U+8ABC <> U+8C0A
-U+8ABE <> U+8A1A
-U+8ABF <> U+8C03
-U+8AC2 <> U+8C04
-U+8AC4 <> U+8C06
-U+8AC7 <> U+8C08
-U+8AC9 <> U+8BFF
-U+8ACB <> U+8BF7
-U+8ACD <> U+8BE4
-U+8ACF <> U+8BF9
-U+8AD1 <> U+8BFC
-U+8AD2 <> U+8C05
-U+8AD6 <> U+8BBA
-U+8AD7 <> U+8C02
-U+8ADB <> U+8C00
-U+8ADC <> U+8C0D
-U+8ADD <> U+8C1E
-U+8ADE <> U+8C1D
-U+8AE2 <> U+8BE8
-U+8AE4 <> U+8C14
-U+8AE6 <> U+8C1B
-U+8AE7 <> U+8C10
-U+8AEB <> U+8C0F
-U+8AED <> U+8C15
-U+8AEE <> U+8C18
-U+8AF0 <> U+2B370
-U+8AF1 <> U+8BB3
-U+8AF3 <> U+8C19
-U+8AF6 <> U+8C0C
-U+8AF7 <> U+8BBD
-U+8AF8 <> U+8BF8
-U+8AFA <> U+8C1A
-U+8AFC <> U+8C16
-U+8AFE <> U+8BFA
-U+8B00 <> U+8C0B
-U+8B01 <> U+8C12
-U+8B02 <> U+8C13
-U+8B04 <> U+8A8A
-U+8B05 <> U+8BCC
-U+8B0A <> U+8C0E
-U+8B0E <> U+8C1C
-U+8B0F <> U+2B372
-U+8B10 <> U+8C27
-U+8B14 <> U+8C11
-U+8B16 <> U+8C21
-U+8B17 <> U+8C24
-U+8B19 <> U+8C26
-U+8B1A <> U+8C25
-U+8B1B <> U+8BB2
-U+8B1D <> U+8C22
-U+8B20 <> U+8C23
-U+8B28 <> U+8C1F
-U+8B2B <> U+8C2A
-U+8B2C <> U+8C2C
-U+8B33 <> U+8BB4
-U+8B39 <> U+8C28
-U+8B3E <> U+8C29
-U+8B49 <> U+8BC1
-U+8B4A <> U+2B362
-U+8B4E <> U+8C32
-U+8B4F <> U+8BA5
-U+8B54 <> U+2C925
-U+8B56 <> U+8C2E
-U+8B58 <> U+8BC6
-U+8B59 <> U+8C2F
-U+8B5A <> U+8C2D
-U+8B5C <> U+8C31
-U+8B6B <> U+8C35
-U+8B6F <> U+8BD1
-U+8B70 <> U+8BAE
-U+8B74 <> U+8C34
-U+8B77 <> U+62A4
-U+8B78 <> U+8BEA
-U+8B7D <> U+8A89
-U+8B7E <> U+8C2B
-U+8B80 <> U+8BFB
-U+8B8A <> U+53D8
-U+8B8B <> U+8A5F
-U+8B8C <> U+4729
-U+8B8E <> U+96E0
-U+8B92 <> U+8C17
-U+8B93 <> U+8BA9
-U+8B95 <> U+8C30
-U+8B96 <> U+8C36
-U+8B9C <> U+8C20
-U+8B9E <> U+8C33
-U+8C48 <> U+5C82
-U+8C4E <> U+7AD6
-U+8C50 <> U+4E30
-U+8C6C <> U+732A
-U+8C76 <> U+8C6E
-U+8C93 <> U+732B
-U+8C99 <> U+4759
-U+8C9D <> U+8D1D
-U+8C9E <> U+8D1E
-U+8C9F <> U+8D20
-U+8CA0 <> U+8D1F
-U+8CA1 <> U+8D22
-U+8CA2 <> U+8D21
-U+8CA7 <> U+8D2B
-U+8CA8 <> U+8D27
-U+8CA9 <> U+8D29
-U+8CAA <> U+8D2A
-U+8CAB <> U+8D2F
-U+8CAC <> U+8D23
-U+8CAF <> U+8D2E
-U+8CB0 <> U+8D33
-U+8CB2 <> U+8D40
-U+8CB3 <> U+8D30
-U+8CB4 <> U+8D35
-U+8CB6 <> U+8D2C
-U+8CB7 <> U+4E70
-U+8CB8 <> U+8D37
-U+8CBA <> U+8D36
-U+8CBB <> U+8D39
-U+8CBC <> U+8D34
-U+8CBD <> U+8D3B
-U+8CBF <> U+8D38
-U+8CC0 <> U+8D3A
-U+8CC1 <> U+8D32
-U+8CC2 <> U+8D42
-U+8CC3 <> U+8D41
-U+8CC4 <> U+8D3F
-U+8CC5 <> U+8D45
-U+8CC7 <> U+8D44
-U+8CC8 <> U+8D3E
-U+8CCA <> U+8D3C
-U+8CD1 <> U+8D48
-U+8CD2 <> U+8D4A
-U+8CD3 <> U+5BBE
-U+8CD5 <> U+8D47
-U+8CD9 <> U+8D52
-U+8CDA <> U+8D49
-U+8CDC <> U+8D50
-U+8CDE <> U+8D4F
-U+8CDF <> U+27E56
-U+8CE0 <> U+8D54
-U+8CE1 <> U+8D53
-U+8CE2 <> U+8D24
-U+8CE3 <> U+5356
-U+8CE4 <> U+8D31
-U+8CE6 <> U+8D4B
-U+8CE7 <> U+8D55
-U+8CEA <> U+8D28
-U+8CEC <> U+8D26
-U+8CED <> U+8D4C
-U+8CF0 <> U+4790
-U+8CF4 <> U+8D56
-U+8CF5 <> U+8D57
-U+8CFA <> U+8D5A
-U+8CFB <> U+8D59
-U+8CFC <> U+8D2D
-U+8CFD <> U+8D5B
-U+8CFE <> U+8D5C
-U+8D03 <> U+27E57
-U+8D04 <> U+8D3D
-U+8D05 <> U+8D58
-U+8D07 <> U+8D5F
-U+8D08 <> U+8D60
-U+8D0A <> U+8D5E
-U+8D0D <> U+8D61
-U+8D0F <> U+8D62
-U+8D10 <> U+8D46
-U+8D13 <> U+8D43
-U+8D14 <> U+8D51
-U+8D16 <> U+8D4E
-U+8D17 <> U+8D5D
-U+8D1B <> U+8D63
-U+8D6C <> U+8D6A
-U+8D95 <> U+8D76
-U+8D99 <> U+8D75
-U+8DA8 <> U+8D8B
-U+8DB2 <> U+8DB1
-U+8DE1 <> U+8FF9
-U+8E10 <> U+8DF5
-U+8E34 <> U+8E0A
-U+8E4C <> U+8DC4
-U+8E55 <> U+8DF8
-U+8E63 <> U+8E52
-U+8E64 <> U+8E2A
-U+8E7A <> U+8DF7
-U+8E7B <> U+2B3CB
-U+8E82 <> U+8DF6
-U+8E89 <> U+8DB8
-U+8E8A <> U+8E0C
-U+8E8B <> U+8DFB
-U+8E8D <> U+8DC3
-U+8E8E <> U+47E2
-U+8E91 <> U+8E2F
-U+8E92 <> U+8DDE
-U+8E93 <> U+8E2C
-U+8E95 <> U+8E70
-U+8E9A <> U+8DF9
-U+8E9D <> U+2816C
-U+8EA1 <> U+8E51
-U+8EA5 <> U+8E7F
-U+8EA6 <> U+8E9C
-U+8EAA <> U+8E8F
-U+8EC0 <> U+8EAF
-U+8EC9 <> U+28257
-U+8ECA <> U+8F66
-U+8ECB <> U+8F67
-U+8ECC <> U+8F68
-U+8ECD <> U+519B
-U+8ECF <> U+2B404
-U+8ED1 <> U+8F6A
-U+8ED2 <> U+8F69
-U+8ED4 <> U+8F6B
-U+8ED7 <> U+28405
-U+8EDB <> U+8F6D
-U+8EDF <> U+8F6F
-U+8EE4 <> U+8F77
-U+8EE8 <> U+2B409
-U+8EEB <> U+8F78
-U+8EF2 <> U+8F71
-U+8EF8 <> U+8F74
-U+8EF9 <> U+8F75
-U+8EFA <> U+8F7A
-U+8EFB <> U+8F72
-U+8EFC <> U+8F76
-U+8EFE <> U+8F7C
-U+8F03 <> U+8F83
-U+8F04 <> U+28408
-U+8F05 <> U+8F82
-U+8F07 <> U+8F81
-U+8F08 <> U+8F80
-U+8F09 <> U+8F7D
-U+8F0A <> U+8F7E
-U+8F12 <> U+8F84
-U+8F13 <> U+633D
-U+8F14 <> U+8F85
-U+8F15 <> U+8F7B
-U+8F17 <> U+2B410
-U+8F1B <> U+8F86
-U+8F1C <> U+8F8E
-U+8F1D <> U+8F89
-U+8F1E <> U+8F8B
-U+8F1F <> U+8F8D
-U+8F25 <> U+8F8A
-U+8F26 <> U+8F87
-U+8F29 <> U+8F88
-U+8F2A <> U+8F6E
-U+8F2C <> U+8F8C
-U+8F2E <> U+2B413
-U+8F2F <> U+8F91
-U+8F33 <> U+8F8F
-U+8F38 <> U+8F93
-U+8F3B <> U+8F90
-U+8F3E <> U+8F97
-U+8F3F <> U+8206
-U+8F40 <> U+8F92
-U+8F42 <> U+6BC2
-U+8F44 <> U+8F96
-U+8F45 <> U+8F95
-U+8F46 <> U+8F98
-U+8F49 <> U+8F6C
-U+8F4D <> U+8F99
-U+8F4E <> U+8F7F
-U+8F54 <> U+8F9A
-U+8F5F <> U+8F70
-U+8F61 <> U+8F94
-U+8F62 <> U+8F79
-U+8F63 <> U+2B406
-U+8F64 <> U+8F73
-U+8FA6 <> U+529E
-U+8FAD <> U+8F9E
-U+8FAE <> U+8FAB
-U+8FAF <> U+8FA9
-U+8FB2 <> U+519C
-U+9015 <> U+8FF3
-U+9019 <> U+8FD9
-U+9023 <> U+8FDE
-U+9032 <> U+8FDB
-U+904B <> U+8FD0
-U+904E <> U+8FC7
-U+9054 <> U+8FBE
-U+9055 <> U+8FDD
-U+9059 <> U+9065
-U+905C <> U+900A
-U+905E <> U+9012
-U+9060 <> U+8FDC
-U+9069 <> U+9002
-U+9072 <> U+8FDF
-U+9077 <> U+8FC1
-U+9078 <> U+9009
-U+907A <> U+9057
-U+907C <> U+8FBD
-U+9081 <> U+8FC8
-U+9084 <> U+8FD8
-U+9087 <> U+8FE9
-U+908A <> U+8FB9
-U+908F <> U+903B
-U+9090 <> U+9026
-U+90DF <> U+90CF
-U+90F5 <> U+90AE
-U+9106 <> U+90D3
-U+9109 <> U+4E61
-U+9112 <> U+90B9
-U+9114 <> U+90AC
-U+9116 <> U+90E7
-U+9127 <> U+9093
-U+912D <> U+90D1
-U+9130 <> U+90BB
-U+9132 <> U+90F8
-U+9134 <> U+90BA
-U+9136 <> U+90D0
-U+913A <> U+909D
-U+9147 <> U+9142
-U+9148 <> U+90E6
-U+919C <> U+4E11
-U+919E <> U+915D
-U+91AB <> U+533B
-U+91AC <> U+9171
-U+91B1 <> U+9166
-U+91C0 <> U+917F
-U+91C1 <> U+8845
-U+91C3 <> U+917E
-U+91C5 <> U+917D
-U+91CB <> U+91CA
-U+91D0 <> U+5398
-U+91D2 <> U+9485
-U+91D3 <> U+9486
-U+91D4 <> U+9487
-U+91D5 <> U+948C
-U+91D7 <> U+948A
-U+91D8 <> U+9489
-U+91D9 <> U+948B
-U+91DD <> U+9488
-U+91E3 <> U+9493
-U+91E4 <> U+9490
-U+91E7 <> U+948F
-U+91E9 <> U+9492
-U+91F3 <> U+28C3F
-U+91F5 <> U+9497
-U+91F7 <> U+948D
-U+91F9 <> U+9495
-U+91FA <> U+948E
-U+91FE <> U+497A
-U+9200 <> U+94AF
-U+9201 <> U+94AB
-U+9203 <> U+9498
-U+9204 <> U+94AD
-U+9207 <> U+2B4E7
-U+9208 <> U+949A
-U+9209 <> U+94A0
-U+920B <> U+28C42
-U+920D <> U+949D
-U+9210 <> U+94A4
-U+9211 <> U+94A3
-U+9212 <> U+9491
-U+9214 <> U+949E
-U+9215 <> U+94AE
-U+921E <> U+94A7
-U+9220 <> U+28C41
-U+9223 <> U+9499
-U+9225 <> U+94AC
-U+9226 <> U+949B
-U+9227 <> U+94AA
-U+922E <> U+94CC
-U+922F <> U+28C44
-U+9230 <> U+94C8
-U+9232 <> U+28C43
-U+9233 <> U+94B6
-U+9234 <> U+94C3
-U+9237 <> U+94B4
-U+9238 <> U+94B9
-U+9239 <> U+94CD
-U+923A <> U+94B0
-U+923D <> U+94B8
-U+923E <> U+94C0
-U+923F <> U+94BF
-U+9240 <> U+94BE
-U+9241 <> U+28C45
-U+9245 <> U+949C
-U+9248 <> U+94CA
-U+9249 <> U+94C9
-U+924B <> U+94C7
-U+924D <> U+94CB
-U+9251 <> U+94C2
-U+9255 <> U+94B7
-U+9257 <> U+94B3
-U+925A <> U+94C6
-U+925B <> U+94C5
-U+925E <> U+94BA
-U+9264 <> U+94A9
-U+9266 <> U+94B2
-U+9268 <> U+9FED
-U+926C <> U+94BC
-U+926D <> U+94BD
-U+9276 <> U+94CF
-U+9278 <> U+94F0
-U+927A <> U+94D2
-U+927B <> U+94EC
-U+927F <> U+94EA
-U+9280 <> U+94F6
-U+9283 <> U+94F3
-U+9285 <> U+94DC
-U+928D <> U+94DA
-U+9291 <> U+94E3
-U+9293 <> U+94E8
-U+9296 <> U+94E2
-U+9298 <> U+94ED
-U+929A <> U+94EB
-U+929B <> U+94E6
-U+929C <> U+8854
-U+92A0 <> U+94D1
-U+92A3 <> U+94F7
-U+92A5 <> U+94F1
-U+92A6 <> U+94DF
-U+92A8 <> U+94F5
-U+92A9 <> U+94E5
-U+92AA <> U+94D5
-U+92AB <> U+94EF
-U+92AC <> U+94D0
-U+92B1 <> U+94DE
-U+92B3 <> U+9510
-U+92B6 <> U+28C47
-U+92B7 <> U+9500
-U+92BB <> U+9511
-U+92BC <> U+9509
-U+92C1 <> U+94DD
-U+92C3 <> U+9512
-U+92C5 <> U+950C
-U+92C7 <> U+94A1
-U+92C9 <> U+28C48
-U+92CC <> U+94E4
-U+92CF <> U+94D7
-U+92D2 <> U+950B
-U+92D9 <> U+94FB
-U+92DD <> U+950A
-U+92DF <> U+9513
-U+92E3 <> U+94D8
-U+92E4 <> U+9504
-U+92E5 <> U+9503
-U+92E6 <> U+9514
-U+92E8 <> U+9507
-U+92E9 <> U+94D3
-U+92EA <> U+94FA
-U+92EE <> U+94D6
-U+92EF <> U+9506
-U+92F0 <> U+9502
-U+92F1 <> U+94FD
-U+92F6 <> U+950D
-U+92F8 <> U+952F
-U+92FC <> U+94A2
-U+9301 <> U+951E
-U+9302 <> U+28C4B
-U+9304 <> U+5F55
-U+9306 <> U+9516
-U+9307 <> U+952B
-U+9308 <> U+9529
-U+930F <> U+94D4
-U+9310 <> U+9525
-U+9312 <> U+9515
-U+9315 <> U+951F
-U+9318 <> U+9524
-U+9319 <> U+9531
-U+931A <> U+94EE
-U+931B <> U+951B
-U+931F <> U+952C
-U+9320 <> U+952D
-U+9321 <> U+951C
-U+9322 <> U+94B1
-U+9326 <> U+9526
-U+9328 <> U+951A
-U+9329 <> U+9520
-U+932B <> U+9521
-U+932E <> U+9522
-U+932F <> U+9519
-U+9333 <> U+9530
-U+9336 <> U+8868
-U+9338 <> U+94FC
-U+9340 <> U+951D
-U+9343 <> U+952A
-U+9344 <> U+28C49
-U+9346 <> U+9494
-U+9347 <> U+9534
-U+9348 <> U+9533
-U+934B <> U+9505
-U+934D <> U+9540
-U+9354 <> U+9537
-U+9358 <> U+94E1
-U+935A <> U+9496
-U+935B <> U+953B
-U+9360 <> U+953D
-U+9364 <> U+9538
-U+9365 <> U+9532
-U+9369 <> U+9518
-U+936C <> U+9539
-U+936E <> U+28C4E
-U+9370 <> U+953E
-U+9375 <> U+952E
-U+9376 <> U+9536
-U+937A <> U+9517
-U+937E <> U+949F
-U+9382 <> U+9541
-U+9384 <> U+953F
-U+9387 <> U+9545
-U+938A <> U+9551
-U+9394 <> U+9555
-U+9396 <> U+9501
-U+9398 <> U+9549
-U+939B <> U+9548
-U+939D <> U+28C4F
-U+93A1 <> U+9543
-U+93A2 <> U+94A8
-U+93A3 <> U+84E5
-U+93A6 <> U+954F
-U+93A7 <> U+94E0
-U+93A9 <> U+94E9
-U+93AA <> U+953C
-U+93AC <> U+9550
-U+93AE <> U+9547
-U+93AF <> U+28C4D
-U+93B0 <> U+9552
-U+93B2 <> U+954B
-U+93B3 <> U+954D
-U+93B5 <> U+9553
-U+93B6 <> U+9FD4
-U+93B7 <> U+28C3E
-U+93BF <> U+954E
-U+93C3 <> U+955E
-U+93C6 <> U+28C4C
-U+93C7 <> U+955F
-U+93C8 <> U+94FE
-U+93C9 <> U+28C52
-U+93CC <> U+9546
-U+93CD <> U+9559
-U+93D0 <> U+9560
-U+93D1 <> U+955D
-U+93D7 <> U+94FF
-U+93D8 <> U+9535
-U+93DC <> U+9557
-U+93DD <> U+9558
-U+93DE <> U+955B
-U+93DF <> U+94F2
-U+93E1 <> U+955C
-U+93E2 <> U+9556
-U+93E4 <> U+9542
-U+93E6 <> U+2B4E9
-U+93E8 <> U+933E
-U+93F0 <> U+955A
-U+93F5 <> U+94E7
-U+93F7 <> U+9564
-U+93F9 <> U+956A
-U+93FA <> U+497D
-U+93FD <> U+9508
-U+9403 <> U+94D9
-U+9404 <> U+28C51
-U+940B <> U+94F4
-U+940D <> U+2B50E
-U+940E <> U+28C53
-U+940F <> U+28C54
-U+9410 <> U+9563
-U+9412 <> U+94F9
-U+9413 <> U+9566
-U+9414 <> U+9561
-U+9418 <> U+949F
-U+9419 <> U+956B
-U+9420 <> U+9568
-U+9425 <> U+4985
-U+9426 <> U+950E
-U+9427 <> U+950F
-U+9428 <> U+9544
-U+942B <> U+954C
-U+942E <> U+9570
-U+942F <> U+4983
-U+9432 <> U+956F
-U+9433 <> U+956D
-U+9435 <> U+94C1
-U+9436 <> U+956E
-U+9438 <> U+94CE
-U+943A <> U+94DB
-U+943F <> U+9571
-U+9444 <> U+94F8
-U+9448 <> U+9FED
-U+944A <> U+956C
-U+944C <> U+9554
-U+9452 <> U+9274
-U+9454 <> U+9572
-U+9455 <> U+9527
-U+945E <> U+9574
-U+9460 <> U+94C4
-U+9463 <> U+9573
-U+9465 <> U+9565
-U+946D <> U+9567
-U+9470 <> U+94A5
-U+9471 <> U+9575
-U+9472 <> U+9576
-U+9477 <> U+954A
-U+9479 <> U+9569
-U+947C <> U+9523
-U+947D <> U+94BB
-U+947E <> U+92AE
-U+947F <> U+51FF
-U+9481 <> U+9562
-U+9577 <> U+957F
-U+9580 <> U+95E8
-U+9582 <> U+95E9
-U+9583 <> U+95EA
-U+9586 <> U+95EB
-U+9588 <> U+95EC
-U+9589 <> U+95ED
-U+958B <> U+5F00
-U+958C <> U+95F6
-U+958D <> U+28E02
-U+958E <> U+95F3
-U+958F <> U+95F0
-U+9590 <> U+28E03
-U+9591 <> U+95F2
-U+9593 <> U+95F4
-U+9594 <> U+95F5
-U+9598 <> U+95F8
-U+95A1 <> U+9602
-U+95A3 <> U+9601
-U+95A5 <> U+9600
-U+95A8 <> U+95FA
-U+95A9 <> U+95FD
-U+95AB <> U+9603
-U+95AC <> U+9606
-U+95AD <> U+95FE
-U+95B1 <> U+9605
-U+95B6 <> U+960A
-U+95B9 <> U+9609
-U+95BB <> U+960E
-U+95BC <> U+960F
-U+95BD <> U+960D
-U+95BE <> U+9608
-U+95BF <> U+960C
-U+95C3 <> U+9612
-U+95C6 <> U+677F
-U+95C8 <> U+95F1
-U+95CA <> U+9614
-U+95CB <> U+9615
-U+95CC <> U+9611
-U+95CD <> U+9607
-U+95D0 <> U+9617
-U+95D2 <> U+9618
-U+95D3 <> U+95FF
-U+95D4 <> U+9616
-U+95D5 <> U+9619
-U+95D6 <> U+95EF
-U+95DC <> U+5173
-U+95DE <> U+961A
-U+95E0 <> U+9613
-U+95E1 <> U+9610
-U+95E4 <> U+961B
-U+95E5 <> U+95FC
-U+962A <> U+5742
-U+9658 <> U+9649
-U+965D <> U+9655
-U+9663 <> U+9635
-U+9670 <> U+9634
-U+9673 <> U+9648
-U+9678 <> U+9646
-U+967D <> U+9633
-U+9689 <> U+9667
-U+968A <> U+961F
-U+968E <> U+9636
-U+9695 <> U+9668
-U+969B <> U+9645
-U+96A4 <> U+2CBCE
-U+96A8 <> U+968F
-U+96AA <> U+9669
-U+96B1 <> U+9690
-U+96B4 <> U+9647
-U+96B8 <> U+96B6
-U+96BB <> U+53EA
-U+96CB <> U+96BD
-U+96D6 <> U+867D
-U+96D9 <> U+53CC
-U+96DB <> U+96CF
-U+96DC <> U+6742
-U+96DE <> U+9E21
-U+96E2 <> U+79BB
-U+96E3 <> U+96BE
-U+96F2 <> U+4E91
-U+96FB <> U+7535
-U+9722 <> U+9721
-U+9727 <> U+96FE
-U+973D <> U+9701
-U+9742 <> U+96F3
-U+9744 <> U+972D
-U+9748 <> U+7075
-U+975A <> U+9753
-U+975C <> U+9759
-U+9766 <> U+817C
-U+9768 <> U+9765
-U+9780 <> U+9F17
-U+978F <> U+5DE9
-U+979D <> U+7EF1
-U+97BD <> U+9792
-U+97C1 <> U+7F30
-U+97C3 <> U+9791
-U+97C9 <> U+97AF
-U+97CB <> U+97E6
-U+97CC <> U+97E7
-U+97CD <> U+97E8
-U+97D3 <> U+97E9
-U+97D9 <> U+97EA
-U+97DC <> U+97EC
-U+97DE <> U+97EB
-U+97FB <> U+97F5
-U+97FF <> U+54CD
-U+9801 <> U+9875
-U+9802 <> U+9876
-U+9803 <> U+9877
-U+9805 <> U+9879
-U+9806 <> U+987A
-U+9807 <> U+9878
-U+9808 <> U+987B
-U+980A <> U+987C
-U+980C <> U+9882
-U+980E <> U+9880
-U+980F <> U+9883
-U+9810 <> U+9884
-U+9811 <> U+987D
-U+9812 <> U+9881
-U+9813 <> U+987F
-U+9817 <> U+9887
-U+9818 <> U+9886
-U+981C <> U+988C
-U+9821 <> U+9889
-U+9824 <> U+9890
-U+9826 <> U+988F
-U+982D <> U+5934
-U+982E <> U+9892
-U+9830 <> U+988A
-U+9832 <> U+988B
-U+9834 <> U+9895
-U+9837 <> U+9894
-U+9838 <> U+9888
-U+9839 <> U+9893
-U+983B <> U+9891
-U+9843 <> U+29596
-U+9846 <> U+9897
-U+984C <> U+9898
-U+984D <> U+989D
-U+984E <> U+989A
-U+984F <> U+989C
-U+9852 <> U+9899
-U+9853 <> U+989B
-U+9858 <> U+613F
-U+9859 <> U+98A1
-U+985B <> U+98A0
-U+985E <> U+7C7B
-U+9862 <> U+989F
-U+9865 <> U+98A2
-U+9867 <> U+987E
-U+986B <> U+98A4
-U+986C <> U+98A5
-U+986F <> U+663E
-U+9870 <> U+98A6
-U+9871 <> U+9885
-U+9873 <> U+989E
-U+9874 <> U+98A7
-U+98A8 <> U+98CE
-U+98AD <> U+98D0
-U+98AE <> U+98D1
-U+98AF <> U+98D2
-U+98B0 <> U+29665
-U+98B1 <> U+53F0
-U+98B3 <> U+522E
-U+98B6 <> U+98D3
-U+98B7 <> U+2966A
-U+98B8 <> U+98D4
-U+98BA <> U+98CF
-U+98BB <> U+98D6
-U+98BC <> U+98D5
-U+98BE <> U+2966B
-U+98C0 <> U+98D7
-U+98C4 <> U+98D8
-U+98C6 <> U+98D9
-U+98C8 <> U+98DA
-U+98DB <> U+98DE
-U+98E0 <> U+9963
-U+98E2 <> U+9965
-U+98E3 <> U+9964
-U+98E5 <> U+9966
-U+98E9 <> U+9968
-U+98EA <> U+996A
-U+98EB <> U+996B
-U+98ED <> U+996C
-U+98EF <> U+996D
-U+98F2 <> U+996E
-U+98F4 <> U+9974
-U+98FC <> U+9972
-U+98FD <> U+9971
-U+98FE <> U+9970
-U+98FF <> U+9973
-U+9903 <> U+997A
-U+9904 <> U+9978
-U+9905 <> U+997C
-U+9909 <> U+9977
-U+990A <> U+517B
-U+990C <> U+9975
-U+990E <> U+9979
-U+990F <> U+997B
-U+9911 <> U+997D
-U+9912 <> U+9981
-U+9913 <> U+997F
-U+9914 <> U+2B5E6
-U+9915 <> U+9982
-U+9916 <> U+997E
-U+9917 <> U+2B5E7
-U+9918 <> U+4F59
-U+991A <> U+80B4
-U+991B <> U+9984
-U+991C <> U+9983
-U+991E <> U+996F
-U+9921 <> U+9985
-U+9926 <> U+2B5E0
-U+9928 <> U+9986
-U+992D <> U+2B5EE
-U+9931 <> U+7CC7
-U+9933 <> U+9967
-U+9936 <> U+9989
-U+9937 <> U+9987
-U+9938 <> U+2980C
-U+993A <> U+998E
-U+993C <> U+9969
-U+993E <> U+998F
-U+993F <> U+998A
-U+9941 <> U+998C
-U+9943 <> U+998D
-U+9945 <> U+9992
-U+9948 <> U+9990
-U+9949 <> U+9991
-U+994A <> U+9993
-U+994B <> U+9988
-U+994C <> U+9994
-U+9952 <> U+9976
-U+9957 <> U+98E8
-U+9958 <> U+2B5F4
-U+995C <> U+990D
-U+995E <> U+998B
-U+9962 <> U+9995
-U+99AC <> U+9A6C
-U+99AD <> U+9A6D
-U+99AE <> U+51AF
-U+99B1 <> U+9A6E
-U+99B3 <> U+9A70
-U+99B4 <> U+9A6F
-U+99B9 <> U+9A72
-U+99C1 <> U+9A73
-U+99C3 <> U+2B61D
-U+99CE <> U+299E8
-U+99D0 <> U+9A7B
-U+99D1 <> U+9A7D
-U+99D2 <> U+9A79
-U+99D4 <> U+9A75
-U+99D5 <> U+9A7E
-U+99D8 <> U+9A80
-U+99D9 <> U+9A78
-U+99DA <> U+299EB
-U+99DB <> U+9A76
-U+99DD <> U+9A7C
-U+99DF <> U+9A77
-U+99E2 <> U+9A88
-U+99E7 <> U+299F2
-U+99E9 <> U+299F4
-U+99ED <> U+9A87
-U+99F0 <> U+9A83
-U+99F1 <> U+9A86
-U+99F6 <> U+299FA
-U+99F8 <> U+9A8E
-U+99FB <> U+2B623
-U+99FF <> U+9A8F
-U+9A01 <> U+9A8B
-U+9A02 <> U+9A8D
-U+9A03 <> U+2B624
-U+9A05 <> U+9A93
-U+9A0C <> U+9A94
-U+9A0D <> U+9A92
-U+9A0E <> U+9A91
-U+9A0F <> U+9A90
-U+9A14 <> U+29A00
-U+9A16 <> U+9A9B
-U+9A19 <> U+9A97
-U+9A1A <> U+29A0A
-U+9A1D <> U+29A03
-U+9A1F <> U+29A08
-U+9A20 <> U+2B628
-U+9A24 <> U+9A99
-U+9A27 <> U+4BC4
-U+9A2A <> U+29A04
-U+9A2B <> U+9A9E
-U+9A2D <> U+9A98
-U+9A2E <> U+9A9D
-U+9A30 <> U+817E
-U+9A36 <> U+9A7A
-U+9A37 <> U+9A9A
-U+9A38 <> U+9A9F
-U+9A3E <> U+9AA1
-U+9A40 <> U+84E6
-U+9A41 <> U+9A9C
-U+9A42 <> U+9A96
-U+9A43 <> U+9AA0
-U+9A44 <> U+9AA2
-U+9A45 <> U+9A71
-U+9A4A <> U+9A85
-U+9A4B <> U+299EF
-U+9A4C <> U+9A95
-U+9A4D <> U+9A81
-U+9A4F <> U+9AA3
-U+9A55 <> U+9A84
-U+9A57 <> U+9A8C
-U+9A5A <> U+60CA
-U+9A5B <> U+9A7F
-U+9A5F <> U+9AA4
-U+9A62 <> U+9A74
-U+9A64 <> U+9AA7
-U+9A65 <> U+9AA5
-U+9A66 <> U+9AA6
-U+9A6A <> U+9A8A
-U+9A6B <> U+9A89
-U+9AAF <> U+80AE
-U+9ACF <> U+9AC5
-U+9AD2 <> U+810F
-U+9AD4 <> U+4F53
-U+9AD5 <> U+9ACC
-U+9AD6 <> U+9ACB
-U+9AEE <> U+53D1
-U+9B06 <> U+677E
-U+9B0D <> U+80E1
-U+9B1A <> U+987B
-U+9B22 <> U+9B13
-U+9B25 <> U+6597
-U+9B27 <> U+95F9
-U+9B29 <> U+960B
-U+9B2E <> U+9604
-U+9B31 <> U+90C1
-U+9B39 <> U+9B36
-U+9B4E <> U+9B49
-U+9B58 <> U+9B47
-U+9B5A <> U+9C7C
-U+9B5B <> U+9C7D
-U+9B5F <> U+2B689
-U+9B62 <> U+9C7E
-U+9B65 <> U+29F79
-U+9B68 <> U+9C80
-U+9B6F <> U+9C81
-U+9B74 <> U+9C82
-U+9B77 <> U+9C7F
-U+9B7A <> U+9C84
-U+9B81 <> U+9C85
-U+9B83 <> U+9C86
-U+9B84 <> U+2B692
-U+9B8A <> U+9C8C
-U+9B8B <> U+9C89
-U+9B8D <> U+9C8F
-U+9B90 <> U+9C90
-U+9B91 <> U+9C8D
-U+9B92 <> U+9C8B
-U+9B93 <> U+9C8A
-U+9B9A <> U+9C92
-U+9B9C <> U+9C98
-U+9B9E <> U+9C95
-U+9B9F <> U+29F7E
-U+9BA3 <> U+4C9F
-U+9BA6 <> U+9C96
-U+9BAA <> U+9C94
-U+9BAB <> U+9C9B
-U+9BAD <> U+9C91
-U+9BAE <> U+9C9C
-U+9BB0 <> U+2B694
-U+9BB3 <> U+9C93
-U+9BB6 <> U+9CAA
-U+9BB8 <> U+29F83
-U+9BBA <> U+9C9D
-U+9BC0 <> U+9CA7
-U+9BC1 <> U+9CA0
-U+9BC4 <> U+29F81
-U+9BC6 <> U+2B699
-U+9BC7 <> U+9CA9
-U+9BC9 <> U+9CA4
-U+9BCA <> U+9CA8
-U+9BD2 <> U+9CAC
-U+9BD4 <> U+9CBB
-U+9BD5 <> U+9CAF
-U+9BD6 <> U+9CAD
-U+9BD7 <> U+9C9E
-U+9BDB <> U+9CB7
-U+9BDD <> U+9CB4
-U+9BE1 <> U+9CB1
-U+9BE2 <> U+9CB5
-U+9BE4 <> U+9CB2
-U+9BE7 <> U+9CB3
-U+9BE8 <> U+9CB8
-U+9BEA <> U+9CAE
-U+9BEB <> U+9CB0
-U+9BF1 <> U+29F87
-U+9BF4 <> U+9CBA
-U+9BF6 <> U+29F7C
-U+9BF7 <> U+9CC0
-U+9BFD <> U+9CAB
-U+9BFF <> U+9CCA
-U+9C01 <> U+9CC8
-U+9C02 <> U+9C97
-U+9C03 <> U+9CC2
-U+9C06 <> U+4CA0
-U+9C08 <> U+9CBD
-U+9C09 <> U+9CC7
-U+9C0C <> U+4CA1
-U+9C0D <> U+9CC5
-U+9C0F <> U+9CBE
-U+9C12 <> U+9CC6
-U+9C13 <> U+9CC3
-U+9C1C <> U+9CD2
-U+9C1F <> U+9CD1
-U+9C20 <> U+9CCB
-U+9C23 <> U+9CA5
-U+9C24 <> U+2B695
-U+9C25 <> U+9CCF
-U+9C27 <> U+4CA2
-U+9C28 <> U+9CCE
-U+9C29 <> U+9CD0
-U+9C2D <> U+9CCD
-U+9C2E <> U+9CC1
-U+9C31 <> U+9CA2
-U+9C32 <> U+9CCC
-U+9C33 <> U+9CD3
-U+9C35 <> U+9CD8
-U+9C37 <> U+9CA6
-U+9C39 <> U+9CA3
-U+9C3A <> U+9CB9
-U+9C3B <> U+9CD7
-U+9C3C <> U+9CDB
-U+9C3E <> U+9CD4
-U+9C42 <> U+9CC9
-U+9C45 <> U+9CD9
-U+9C47 <> U+29F8C
-U+9C48 <> U+9CD5
-U+9C49 <> U+9CD6
-U+9C52 <> U+9CDF
-U+9C54 <> U+9CDD
-U+9C56 <> U+9CDC
-U+9C57 <> U+9CDE
-U+9C58 <> U+9C9F
-U+9C5D <> U+9CBC
-U+9C5F <> U+9C8E
-U+9C60 <> U+9C99
-U+9C63 <> U+9CE3
-U+9C64 <> U+9CE1
-U+9C67 <> U+9CE2
-U+9C68 <> U+9CBF
-U+9C6D <> U+9C9A
-U+9C6E <> U+2B688
-U+9C6F <> U+9CE0
-U+9C72 <> U+2B6AD
-U+9C77 <> U+9CC4
-U+9C78 <> U+9C88
-U+9C7A <> U+9CA1
-U+9CE5 <> U+9E1F
-U+9CE7 <> U+51EB
-U+9CE9 <> U+9E20
-U+9CF2 <> U+9E24
-U+9CF3 <> U+51E4
-U+9CF4 <> U+9E23
-U+9CF6 <> U+9E22
-U+9CF7 <> U+2B6DB
-U+9CFC <> U+2A243
-U+9CFE <> U+4D13
-U+9D03 <> U+2B6DE
-U+9D06 <> U+9E29
-U+9D07 <> U+9E28
-U+9D09 <> U+9E26
-U+9D12 <> U+9E30
-U+9D15 <> U+9E35
-U+9D17 <> U+2B061
-U+9D1B <> U+9E33
-U+9D1C <> U+2A248
-U+9D1D <> U+9E32
-U+9D1E <> U+9E2E
-U+9D1F <> U+9E31
-U+9D23 <> U+9E2A
-U+9D26 <> U+9E2F
-U+9D28 <> U+9E2D
-U+9D2F <> U+9E38
-U+9D30 <> U+9E39
-U+9D32 <> U+2A246
-U+9D34 <> U+9E3B
-U+9D37 <> U+4D15
-U+9D3B <> U+9E3F
-U+9D3F <> U+9E3D
-U+9D41 <> U+4D14
-U+9D42 <> U+9E3A
-U+9D43 <> U+9E3C
-U+9D50 <> U+9E40
-U+9D51 <> U+9E43
-U+9D52 <> U+9E46
-U+9D53 <> U+9E41
-U+9D5A <> U+2A24D
-U+9D5C <> U+9E48
-U+9D5D <> U+9E45
-U+9D60 <> U+9E44
-U+9D61 <> U+9E49
-U+9D6A <> U+9E4C
-U+9D6C <> U+9E4F
-U+9D6E <> U+9E50
-U+9D6F <> U+9E4E
-U+9D72 <> U+9E4A
-U+9D77 <> U+9E53
-U+9D7E <> U+9E4D
-U+9D84 <> U+4D16
-U+9D87 <> U+9E2B
-U+9D89 <> U+9E51
-U+9D8A <> U+9E52
-U+9D92 <> U+2B6F6
-U+9D93 <> U+9E4B
-U+9D96 <> U+9E59
-U+9D97 <> U+2B6F8
-U+9D98 <> U+9E55
-U+9D9A <> U+9E57
-U+9DA1 <> U+9E56
-U+9DA5 <> U+9E5B
-U+9DA9 <> U+9E5C
-U+9DAA <> U+4D17
-U+9DAC <> U+9E27
-U+9DAF <> U+83BA
-U+9DB1 <> U+2CE23
-U+9DB2 <> U+9E5F
-U+9DB4 <> U+9E64
-U+9DB9 <> U+9E60
-U+9DBA <> U+9E61
-U+9DBB <> U+9E58
-U+9DBC <> U+9E63
-U+9DBF <> U+9E5A
-U+9DC1 <> U+9E62
-U+9DC2 <> U+9E5E
-U+9DC8 <> U+4D18
-U+9DCA <> U+9E5D
-U+9DD3 <> U+9E67
-U+9DD4 <> U+2A251
-U+9DD6 <> U+9E65
-U+9DD7 <> U+9E25
-U+9DD9 <> U+9E37
-U+9DDA <> U+9E68
-U+9DE5 <> U+9E36
-U+9DE6 <> U+9E6A
-U+9DE8 <> U+2A24A
-U+9DEB <> U+9E54
-U+9DEF <> U+9E69
-U+9DF2 <> U+9E6B
-U+9DF3 <> U+9E47
-U+9DF8 <> U+9E6C
-U+9DF9 <> U+9E70
-U+9DFA <> U+9E6D
-U+9DFD <> U+9E34
-U+9DFF <> U+4D19
-U+9E02 <> U+3D89
-U+9E07 <> U+9E6F
-U+9E0B <> U+2B6E2
-U+9E0C <> U+9E71
-U+9E0F <> U+9E72
-U+9E15 <> U+9E2C
-U+9E18 <> U+9E74
-U+9E1A <> U+9E66
-U+9E1B <> U+9E73
-U+9E1D <> U+9E42
-U+9E1E <> U+9E3E
-U+9E75 <> U+5364
-U+9E79 <> U+54B8
-U+9E7A <> U+9E7E
-U+9E7C <> U+7877
-U+9E7D <> U+76D0
-U+9E97 <> U+4E3D
-U+9EA5 <> U+9EA6
-U+9EA8 <> U+2A38A
-U+9EA9 <> U+9EB8
-U+9EB2 <> U+2A389
-U+9EB5 <> U+9762
-U+9EBC <> U+4E48
-U+9EBD <> U+4E48
-U+9EC3 <> U+9EC4
-U+9ECC <> U+9EC9
-U+9EDE <> U+70B9
-U+9EE8 <> U+515A
-U+9EF2 <> U+9EEA
-U+9EF6 <> U+9EE1
-U+9EF7 <> U+9EE9
-U+9EFD <> U+9EFE
-U+9EFF <> U+9F0B
-U+9F09 <> U+9F0D
-U+9F34 <> U+9F39
-U+9F4A <> U+9F50
-U+9F4B <> U+658B
-U+9F4E <> U+8D4D
-U+9F4F <> U+9F51
-U+9F52 <> U+9F7F
-U+9F54 <> U+9F80
-U+9F55 <> U+9F81
-U+9F57 <> U+9F82
-U+9F59 <> U+9F85
-U+9F5C <> U+9F87
-U+9F5F <> U+9F83
-U+9F60 <> U+9F86
-U+9F61 <> U+9F84
-U+9F66 <> U+9F88
-U+9F6A <> U+9F8A
-U+9F6C <> U+9F89
-U+9F72 <> U+9F8B
-U+9F76 <> U+816D
-U+9F77 <> U+9F8C
-U+9F8D <> U+9F99
-U+9F8E <> U+5390
-U+9F90 <> U+5E9E
-U+9F91 <> U+4DAE
-U+9F94 <> U+9F9A
-U+9F95 <> U+9F9B
-U+9F9C <> U+9F9F
-U+9FAD <> U+29A0E
-U+9FAF <> U+28C46
-U+9FC1 <> U+4724
-U+9FD0 <> U+4CA4
-U+9FD2 <> U+9FD3
-U+20325 <> U+201BF
-U+203E2 <> U+20257
-U+20786 <> U+206C6
-U+2080E <> U+206B3
-U+21114 <> U+20D22
-U+21123 <> U+20D78
-U+2114F <> U+20CA5
-U+2146D <> U+212D7
-U+214FE <> U+212C0
-U+217B5 <> U+36DF
-U+21839 <> U+36FF
-U+21883 <> U+36E0
-U+21B89 <> U+21B5C
-U+21BA3 <> U+21B6C
-U+21FB1 <> U+37DC
-U+228DA <> U+2261D
-U+228ED <> U+2261E
-U+22DAB <> U+22ADE
-U+22DEE <> U+22ACA
-U+22E7F <> U+22B26
-U+2364E <> U+3B63
-U+23755 <> U+23637
-U+237BB <> U+23613
-U+23832 <> U+23476
-U+23BF4 <> U+23B64
-U+23FB7 <> U+3CE2
-U+23FC9 <> U+23DAB
-U+24063 <> U+23EBD
-U+2448E <> U+24280
-U+24ABA <> U+3ED8
-U+24AE9 <> U+3ECF
-U+24CF8 <> U+24CC4
-U+24E2B <> U+24DA7
-U+25303 <> U+25158
-U+25565 <> U+25430
-U+25585 <> U+2542F
-U+258A2 <> U+416A
-U+25A10 <> U+259C2
-U+25D43 <> U+25C54
-U+25D4A <> U+25B49
-U+25E20 <> U+25B8B
-U+25F3D <> U+25E65
-U+25F56 <> U+25E87
-U+25FCA <> U+26208
-U+26085 <> U+26212
-U+260C4 <> U+26217
-U+26888 <> U+23368
-U+268CE <> U+267D7
-U+26ABD <> U+26A29
-U+27525 <> U+274AD
-U+27717 <> U+461E
-U+27735 <> U+464A
-U+2775E <> U+461B
-U+27A59 <> U+4725
-U+27CDF <> U+27CD5
-U+27D73 <> U+478C
-U+27D94 <> U+27E53
-U+27DA7 <> U+478E
-U+28123 <> U+28031
-U+2814D <> U+28074
-U+281C1 <> U+27FC8
-U+281DE <> U+2816B
-U+2820A <> U+280BA
-U+2820C <> U+28104
-U+282B0 <> U+4880
-U+282B8 <> U+4881
-U+282BB <> U+28406
-U+282E2 <> U+4882
-U+283AE <> U+28409
-U+283E0 <> U+28407
-U+283E5 <> U+2840A
-U+2893B <> U+28930
-U+2895B <> U+28C40
-U+289AB <> U+4980
-U+289DC <> U+4981
-U+289F1 <> U+28C4A
-U+28AD2 <> U+28C50
-U+28B82 <> U+28C55
-U+28BC5 <> U+497F
-U+28CD1 <> U+28E01
-U+28CD5 <> U+28E00
-U+28D17 <> U+28E05
-U+28D69 <> U+28E06
-U+28D78 <> U+28E07
-U+28D80 <> U+28E09
-U+28D8F <> U+28E0A
-U+28DAE <> U+28E0C
-U+28DB2 <> U+28E0B
-U+28DF2 <> U+28E0E
-U+28F4F <> U+28E18
-U+293A2 <> U+293FE
-U+293EA <> U+293FD
-U+294E3 <> U+29595
-U+295C0 <> U+29666
-U+29600 <> U+29669
-U+2961D <> U+2966D
-U+29639 <> U+29668
-U+2963A <> U+2966C
-U+29648 <> U+29670
-U+2969B <> U+297FF
-U+296A5 <> U+29800
-U+296B5 <> U+29801
-U+296C6 <> U+29802
-U+296E9 <> U+29803
-U+29707 <> U+29809
-U+29726 <> U+29806
-U+29735 <> U+2980A
-U+29754 <> U+2980B
-U+29784 <> U+2980E
-U+297A6 <> U+2980F
-U+297AF <> U+4B6A
-U+297D0 <> U+29805
-U+29834 <> U+29820
-U+2987A <> U+299E6
-U+298A1 <> U+299EC
-U+298B4 <> U+299F5
-U+298B8 <> U+299F3
-U+298BE <> U+299EE
-U+298CF <> U+299F6
-U+298D1 <> U+4BC3
-U+298FA <> U+299FC
-U+2990A <> U+299E9
-U+29919 <> U+29A06
-U+29932 <> U+29A09
-U+29938 <> U+29A05
-U+29944 <> U+29A0B
-U+29947 <> U+29A0D
-U+29949 <> U+299F1
-U+29951 <> U+29A0C
-U+299C6 <> U+29A10
-U+29B59 <> U+29B23
-U+29BF3 <> U+29BD2
-U+29C00 <> U+29B24
-U+29CE4 <> U+29C92
-U+29D69 <> U+29F7A
-U+29D79 <> U+29F7B
-U+29D98 <> U+4C9E
-U+29DB0 <> U+29F7F
-U+29DB1 <> U+29F7D
-U+29DF0 <> U+29F84
-U+29E03 <> U+29F85
-U+29E26 <> U+29F86
-U+29FEA <> U+2A244
-U+2A026 <> U+2A245
-U+2A03E <> U+2A24B
-U+2A048 <> U+2A249
-U+2A056 <> U+2A24C
-U+2A086 <> U+2A24E
-U+2A0CD <> U+2A250
-U+2A0CF <> U+2A24F
-U+2A106 <> U+2A254
-U+2A115 <> U+2A252
-U+2A1F3 <> U+2A255
-U+2A2FF <> U+2A38D
-U+2A535 <> U+2A52D
-U+2A600 <> U+2A68F
-U+2A62F <> U+2A690
diff --git a/macros/xetex/latex/xecjk/teckit-mapping/han-trad.map b/macros/xetex/latex/xecjk/teckit-mapping/han-trad.map
deleted file mode 100644
index 4471e15dc4..0000000000
--- a/macros/xetex/latex/xecjk/teckit-mapping/han-trad.map
+++ /dev/null
@@ -1,3042 +0,0 @@
-; TECkit mapping for conversion of simplified Chinese characters to traditional Chinese characters
-; from the Unicode Unihan database: <http://www.unicode.org/Public/UNIDATA/Unihan.zip>
-;
-; Unihan_Variants.txt
-; Date: 2018-11-09 21:36:19 GMT [JHJ]
-; Unicode version: 12.0.0
-;
-
-LHSName "simplified"
-RHSName "traditional"
-
-pass(Unicode)
-
-U+201C <> U+300C
-U+201D <> U+300D
-U+2018 <> U+300E
-U+2019 <> U+300F
-
-U+343D <> U+5051
-U+3447 <> U+3473
-U+3448 <> U+5032
-U+3454 <> U+346F
-U+3469 <> U+5138
-U+34E5 <> U+528F
-U+3509 <> U+529A
-U+358A <> U+565A
-U+359E <> U+558E
-U+360E <> U+361A
-U+36AF <> U+3704
-U+36C0 <> U+5AB0
-U+36DF <> U+217B5
-U+36E0 <> U+21883
-U+36E3 <> U+370F
-U+36E4 <> U+5B4B
-U+36FF <> U+21839
-U+37C6 <> U+380F
-U+37DC <> U+21FB1
-U+3918 <> U+396E
-U+39CF <> U+6386
-U+39D0 <> U+3A73
-U+39D1 <> U+649D
-U+39DF <> U+64D3
-U+39F0 <> U+64FD
-U+3A2B <> U+3A5C
-U+3B4E <> U+68E1
-U+3B4F <> U+6932
-U+3B63 <> U+2364E
-U+3B64 <> U+6A22
-U+3B74 <> U+6A2B
-U+3C69 <> U+6BB0
-U+3C6E <> U+6BA8
-U+3CBF <> U+7007
-U+3CD4 <> U+6FE7
-U+3CD5 <> U+7061
-U+3CE0 <> U+6FBE
-U+3CE1 <> U+6FC4
-U+3CE2 <> U+23FB7
-U+3CFD <> U+7030
-U+3D89 <> U+9E02
-U+3DB6 <> U+71F6
-U+3DBD <> U+7171
-U+3E8D <> U+7371
-U+3EC5 <> U+74AF
-U+3ECF <> U+24AE9
-U+3ED8 <> U+24ABA
-U+4025 <> U+407B
-U+4056 <> U+779C
-U+40B5 <> U+78BD
-U+4149 <> U+7A0F
-U+416A <> U+258A2
-U+41F2 <> U+7B74
-U+4264 <> U+7C54
-U+4336 <> U+42B7
-U+4337 <> U+7D2C
-U+4338 <> U+7E33
-U+4339 <> U+7D45
-U+433A <> U+42D9
-U+433B <> U+42DA
-U+433C <> U+7D90
-U+433D <> U+7DB5
-U+433E <> U+42FB
-U+4340 <> U+7E7F
-U+4341 <> U+7E78
-U+44D5 <> U+85B3
-U+45D6 <> U+87AE
-U+461B <> U+2775E
-U+461E <> U+27717
-U+464A <> U+27735
-U+464C <> U+4661
-U+4653 <> U+896C
-U+4723 <> U+8A22
-U+4724 <> U+9FC1
-U+4725 <> U+27A59
-U+4727 <> U+4700
-U+4729 <> U+8B8C
-U+4759 <> U+8C99
-U+478C <> U+27D73
-U+478D <> U+477C
-U+478E <> U+27DA7
-U+4790 <> U+8CF0
-U+47E2 <> U+8E8E
-U+4880 <> U+282B0
-U+4881 <> U+282B8
-U+4882 <> U+282E2
-U+497A <> U+91FE
-U+497D <> U+93FA
-U+497E <> U+4971
-U+497F <> U+28BC5
-U+4980 <> U+289AB
-U+4981 <> U+289DC
-U+4982 <> U+4947
-U+4983 <> U+942F
-U+4985 <> U+9425
-U+49B6 <> U+499B
-U+49B7 <> U+499F
-U+4B6A <> U+297AF
-U+4BC3 <> U+298D1
-U+4BC4 <> U+9A27
-U+4BC5 <> U+4BC0
-U+4C9D <> U+4C7D
-U+4C9E <> U+29D98
-U+4C9F <> U+9BA3
-U+4CA0 <> U+9C06
-U+4CA1 <> U+9C0C
-U+4CA2 <> U+9C27
-U+4CA3 <> U+4C77
-U+4CA4 <> U+9FD0
-U+4D13 <> U+9CFE
-U+4D14 <> U+9D41
-U+4D15 <> U+9D37
-U+4D16 <> U+9D84
-U+4D17 <> U+9DAA
-U+4D18 <> U+9DC8
-U+4D19 <> U+9DFF
-U+4DAE <> U+9F91
-U+4E07 <> U+842C
-U+4E0E <> U+8207
-U+4E11 <> U+919C
-U+4E13 <> U+5C08
-U+4E1A <> U+696D
-U+4E1B <> U+53E2
-U+4E1C <> U+6771
-U+4E1D <> U+7D72
-U+4E22 <> U+4E1F
-U+4E24 <> U+5169
-U+4E25 <> U+56B4
-U+4E27 <> U+55AA
-U+4E2A <> U+500B
-U+4E30 <> U+8C50
-U+4E34 <> U+81E8
-U+4E3A <> U+70BA
-U+4E3D <> U+9E97
-U+4E3E <> U+8209
-U+4E48 <> U+5E7A
-U+4E49 <> U+7FA9
-U+4E4C <> U+70CF
-U+4E50 <> U+6A02
-U+4E54 <> U+55AC
-U+4E60 <> U+7FD2
-U+4E61 <> U+9109
-U+4E66 <> U+66F8
-U+4E70 <> U+8CB7
-U+4E71 <> U+4E82
-U+4E89 <> U+722D
-U+4E8E <> U+65BC
-U+4E8F <> U+8667
-U+4E91 <> U+96F2
-U+4E9A <> U+4E9E
-U+4EA7 <> U+7522
-U+4EA9 <> U+755D
-U+4EB2 <> U+89AA
-U+4EB5 <> U+893B
-U+4EB8 <> U+56B2
-U+4EBF <> U+5104
-U+4EC5 <> U+50C5
-U+4EC6 <> U+50D5
-U+4ECE <> U+5F9E
-U+4ED1 <> U+4F96
-U+4ED3 <> U+5009
-U+4EEA <> U+5100
-U+4EEC <> U+5011
-U+4EF7 <> U+50F9
-U+4F17 <> U+773E
-U+4F18 <> U+512A
-U+4F1A <> U+6703
-U+4F1B <> U+50B4
-U+4F1E <> U+5098
-U+4F1F <> U+5049
-U+4F20 <> U+50B3
-U+4F21 <> U+4FE5
-U+4F23 <> U+4FD4
-U+4F24 <> U+50B7
-U+4F25 <> U+5000
-U+4F26 <> U+502B
-U+4F27 <> U+5096
-U+4F2A <> U+507D
-U+4F2B <> U+4F47
-U+4F53 <> U+9AD4
-U+4F59 <> U+4F59
-U+4F63 <> U+50AD
-U+4F65 <> U+50C9
-U+4FA0 <> U+4FE0
-U+4FA3 <> U+4FB6
-U+4FA5 <> U+50E5
-U+4FA6 <> U+5075
-U+4FA7 <> U+5074
-U+4FA8 <> U+50D1
-U+4FA9 <> U+5108
-U+4FAA <> U+5115
-U+4FAC <> U+5102
-U+4FE3 <> U+4FC1
-U+4FE6 <> U+5114
-U+4FE8 <> U+513C
-U+4FE9 <> U+5006
-U+4FEA <> U+5137
-U+4FEB <> U+5008
-U+4FED <> U+5109
-U+503A <> U+50B5
-U+503E <> U+50BE
-U+506C <> U+50AF
-U+507B <> U+50C2
-U+507E <> U+50E8
-U+507F <> U+511F
-U+50A5 <> U+513B
-U+50A7 <> U+5110
-U+50A8 <> U+5132
-U+50A9 <> U+513A
-U+513F <> U+5152
-U+514B <> U+524B
-U+5151 <> U+514C
-U+5156 <> U+5157
-U+515A <> U+9EE8
-U+5170 <> U+862D
-U+5173 <> U+95DC
-U+5174 <> U+8208
-U+5179 <> U+8332
-U+517B <> U+990A
-U+517D <> U+7378
-U+5181 <> U+56C5
-U+5185 <> U+5167
-U+5188 <> U+5CA1
-U+518C <> U+518A
-U+5199 <> U+5BEB
-U+519B <> U+8ECD
-U+519C <> U+8FB2
-U+51AF <> U+99AE
-U+51B2 <> U+6C96
-U+51B3 <> U+6C7A
-U+51B5 <> U+6CC1
-U+51BB <> U+51CD
-U+51C0 <> U+51C8
-U+51C6 <> U+6E96
-U+51C9 <> U+6DBC
-U+51CF <> U+6E1B
-U+51D1 <> U+6E4A
-U+51DB <> U+51DC
-U+51E0 <> U+5E7E
-U+51E4 <> U+9CF3
-U+51EB <> U+9CE7
-U+51ED <> U+6191
-U+51EF <> U+51F1
-U+51FB <> U+64CA
-U+51FF <> U+947F
-U+520D <> U+82BB
-U+5212 <> U+5283
-U+5218 <> U+5289
-U+5219 <> U+5247
-U+521A <> U+525B
-U+521B <> U+5275
-U+5220 <> U+522A
-U+522B <> U+5225
-U+522C <> U+5257
-U+522D <> U+5244
-U+522E <> U+98B3
-U+5236 <> U+88FD
-U+5239 <> U+524E
-U+523D <> U+528A
-U+523E <> U+34E8
-U+523F <> U+528C
-U+5240 <> U+5274
-U+5242 <> U+5291
-U+5250 <> U+526E
-U+5251 <> U+528D
-U+5265 <> U+525D
-U+5267 <> U+5287
-U+529D <> U+52F8
-U+529E <> U+8FA6
-U+52A1 <> U+52D9
-U+52A2 <> U+52F1
-U+52A8 <> U+52D5
-U+52B1 <> U+52F5
-U+52B2 <> U+52C1
-U+52B3 <> U+52DE
-U+52BF <> U+52E2
-U+52CB <> U+52DB
-U+52DA <> U+52E9
-U+5300 <> U+52FB
-U+5326 <> U+532D
-U+532E <> U+5331
-U+533A <> U+5340
-U+533B <> U+91AB
-U+534E <> U+83EF
-U+534F <> U+5354
-U+5355 <> U+55AE
-U+5356 <> U+8CE3
-U+5362 <> U+76E7
-U+5364 <> U+9E75
-U+536B <> U+885B
-U+5374 <> U+537B
-U+5382 <> U+5EE0
-U+5385 <> U+5EF3
-U+5386 <> U+66C6
-U+5389 <> U+53B2
-U+538B <> U+58D3
-U+538C <> U+53AD
-U+538D <> U+5399
-U+5390 <> U+9F8E
-U+5395 <> U+5EC1
-U+5398 <> U+91D0
-U+53A2 <> U+5EC2
-U+53A3 <> U+53B4
-U+53A6 <> U+5EC8
-U+53A8 <> U+5EDA
-U+53A9 <> U+5EC4
-U+53AE <> U+5EDD
-U+53BF <> U+7E23
-U+53C1 <> U+53C4
-U+53C2 <> U+53C3
-U+53CC <> U+96D9
-U+53D1 <> U+767C
-U+53D8 <> U+8B8A
-U+53D9 <> U+6558
-U+53E0 <> U+758A
-U+53EA <> U+96BB
-U+53F0 <> U+53F0
-U+53F6 <> U+8449
-U+53F7 <> U+865F
-U+53F9 <> U+5606
-U+53FD <> U+5630
-U+540C <> U+540C
-U+540E <> U+540E
-U+5411 <> U+66CF
-U+5413 <> U+5687
-U+5415 <> U+5442
-U+5417 <> U+55CE
-U+5423 <> U+551A
-U+5428 <> U+5678
-U+542C <> U+807D
-U+542F <> U+555F
-U+5434 <> U+5433
-U+5450 <> U+5436
-U+5452 <> U+5638
-U+5453 <> U+56C8
-U+5455 <> U+5614
-U+5456 <> U+56A6
-U+5457 <> U+5504
-U+5458 <> U+54E1
-U+5459 <> U+54BC
-U+545B <> U+55C6
-U+545C <> U+55DA
-U+548F <> U+8A60
-U+5499 <> U+56A8
-U+549B <> U+5680
-U+549D <> U+565D
-U+54A4 <> U+5412
-U+54B8 <> U+9E79
-U+54CD <> U+97FF
-U+54D1 <> U+555E
-U+54D2 <> U+5660
-U+54D3 <> U+5635
-U+54D4 <> U+55F6
-U+54D5 <> U+5666
-U+54D7 <> U+5629
-U+54D9 <> U+5672
-U+54DC <> U+568C
-U+54DD <> U+5665
-U+54DF <> U+55B2
-U+551B <> U+561C
-U+551D <> U+55CA
-U+5520 <> U+562E
-U+5521 <> U+5562
-U+5522 <> U+55E9
-U+5524 <> U+559A
-U+5567 <> U+5616
-U+556C <> U+55C7
-U+556D <> U+56C0
-U+556E <> U+5699
-U+556F <> U+5613
-U+5570 <> U+56C9
-U+5574 <> U+563D
-U+5578 <> U+562F
-U+55B7 <> U+5674
-U+55BD <> U+560D
-U+55BE <> U+56B3
-U+55EB <> U+56C1
-U+55F3 <> U+566F
-U+5618 <> U+5653
-U+5624 <> U+56B6
-U+5631 <> U+56D1
-U+565C <> U+5695
-U+56A3 <> U+56C2
-U+56E2 <> U+5718
-U+56ED <> U+5712
-U+56F0 <> U+774F
-U+56F1 <> U+56EA
-U+56F4 <> U+570D
-U+56F5 <> U+5707
-U+56FD <> U+570B
-U+56FE <> U+5716
-U+5706 <> U+5713
-U+5723 <> U+8056
-U+5739 <> U+58D9
-U+573A <> U+5834
-U+5742 <> U+962A
-U+574F <> U+58DE
-U+5757 <> U+584A
-U+575A <> U+5805
-U+575B <> U+58C7
-U+575C <> U+58E2
-U+575D <> U+58E9
-U+575E <> U+5862
-U+575F <> U+58B3
-U+5760 <> U+589C
-U+5784 <> U+58DF
-U+5785 <> U+58E0
-U+5786 <> U+58DA
-U+5792 <> U+58D8
-U+57A6 <> U+58BE
-U+57A9 <> U+580A
-U+57AB <> U+588A
-U+57AD <> U+57E1
-U+57B1 <> U+58CB
-U+57B2 <> U+584F
-U+57B4 <> U+5816
-U+57D8 <> U+5852
-U+57D9 <> U+5864
-U+57DA <> U+581D
-U+57EF <> U+57B5
-U+5811 <> U+5879
-U+5815 <> U+58AE
-U+5899 <> U+7246
-U+58EE <> U+58EF
-U+58F0 <> U+8072
-U+58F3 <> U+6BBC
-U+58F6 <> U+58FA
-U+58F8 <> U+58FC
-U+5904 <> U+8655
-U+5907 <> U+5099
-U+590D <> U+5FA9
-U+591F <> U+5920
-U+5934 <> U+982D
-U+5938 <> U+8A87
-U+5939 <> U+593E
-U+593A <> U+596A
-U+5941 <> U+5969
-U+5942 <> U+5950
-U+594B <> U+596E
-U+5956 <> U+734E
-U+5965 <> U+5967
-U+5978 <> U+59E6
-U+5986 <> U+599D
-U+5987 <> U+5A66
-U+5988 <> U+5ABD
-U+59A9 <> U+5AF5
-U+59AA <> U+5AD7
-U+59AB <> U+5AAF
-U+59D7 <> U+59CD
-U+59F9 <> U+597C
-U+5A04 <> U+5A41
-U+5A05 <> U+5A6D
-U+5A06 <> U+5B08
-U+5A07 <> U+5B0C
-U+5A08 <> U+5B4C
-U+5A31 <> U+5A1B
-U+5A32 <> U+5AA7
-U+5A34 <> U+5AFB
-U+5A73 <> U+5AFF
-U+5A74 <> U+5B30
-U+5A75 <> U+5B0B
-U+5A76 <> U+5B38
-U+5AAA <> U+5ABC
-U+5AAD <> U+5B03
-U+5AD2 <> U+5B21
-U+5AD4 <> U+5B2A
-U+5AF1 <> U+5B19
-U+5B37 <> U+5B24
-U+5B59 <> U+5B6B
-U+5B66 <> U+5B78
-U+5B6A <> U+5B7F
-U+5B81 <> U+5BE7
-U+5B9D <> U+5BF6
-U+5B9E <> U+5BE6
-U+5BA0 <> U+5BF5
-U+5BA1 <> U+5BE9
-U+5BAA <> U+61B2
-U+5BAB <> U+5BAE
-U+5BBD <> U+5BEC
-U+5BBE <> U+8CD3
-U+5BDD <> U+5BE2
-U+5BF9 <> U+5C0D
-U+5BFB <> U+5C0B
-U+5BFC <> U+5C0E
-U+5BFF <> U+58FD
-U+5C06 <> U+5C07
-U+5C14 <> U+723E
-U+5C18 <> U+5875
-U+5C1D <> U+5617
-U+5C27 <> U+582F
-U+5C34 <> U+5C37
-U+5C38 <> U+5C4D
-U+5C3D <> U+5118
-U+5C42 <> U+5C64
-U+5C43 <> U+5C53
-U+5C49 <> U+5C5C
-U+5C4A <> U+5C46
-U+5C5E <> U+5C6C
-U+5C61 <> U+5C62
-U+5C66 <> U+5C68
-U+5C7F <> U+5DBC
-U+5C81 <> U+6B72
-U+5C82 <> U+8C48
-U+5C96 <> U+5D87
-U+5C97 <> U+5D17
-U+5C98 <> U+5CF4
-U+5C99 <> U+5DB4
-U+5C9A <> U+5D50
-U+5C9B <> U+5CF6
-U+5CAD <> U+5DBA
-U+5CBD <> U+5D2C
-U+5CBF <> U+5DCB
-U+5CC4 <> U+5DA7
-U+5CE1 <> U+5CFD
-U+5CE3 <> U+5DA2
-U+5CE4 <> U+5DA0
-U+5CE5 <> U+5D22
-U+5CE6 <> U+5DD2
-U+5D02 <> U+5D97
-U+5D03 <> U+5D0D
-U+5D04 <> U+5DAE
-U+5D2D <> U+5D84
-U+5D58 <> U+5DB8
-U+5D5A <> U+5D94
-U+5D5D <> U+5D81
-U+5DC5 <> U+5DD4
-U+5DE9 <> U+978F
-U+5DEF <> U+5DF0
-U+5E01 <> U+5E63
-U+5E05 <> U+5E25
-U+5E08 <> U+5E2B
-U+5E0F <> U+5E43
-U+5E10 <> U+5E33
-U+5E18 <> U+7C3E
-U+5E1C <> U+5E5F
-U+5E26 <> U+5E36
-U+5E27 <> U+5E40
-U+5E2E <> U+5E6B
-U+5E31 <> U+5E6C
-U+5E3B <> U+5E58
-U+5E3C <> U+5E57
-U+5E42 <> U+51AA
-U+5E72 <> U+4E7E
-U+5E76 <> U+4E26
-U+5E7F <> U+5EE3
-U+5E84 <> U+838A
-U+5E86 <> U+6176
-U+5E90 <> U+5EEC
-U+5E91 <> U+5EE1
-U+5E93 <> U+5EAB
-U+5E94 <> U+61C9
-U+5E99 <> U+5EDF
-U+5E9E <> U+9F90
-U+5E9F <> U+5EE2
-U+5EEA <> U+5EE9
-U+5F00 <> U+958B
-U+5F02 <> U+7570
-U+5F03 <> U+68C4
-U+5F11 <> U+5F12
-U+5F20 <> U+5F35
-U+5F25 <> U+5F4C
-U+5F2A <> U+5F33
-U+5F2F <> U+5F4E
-U+5F39 <> U+5F48
-U+5F3A <> U+5F37
-U+5F52 <> U+6B78
-U+5F53 <> U+5679
-U+5F55 <> U+9304
-U+5F5D <> U+5F5E
-U+5F5F <> U+5F60
-U+5F66 <> U+5F65
-U+5F68 <> U+5F72
-U+5F7B <> U+5FB9
-U+5F81 <> U+5F81
-U+5F84 <> U+5F91
-U+5F95 <> U+5FA0
-U+5FA1 <> U+79A6
-U+5FB5 <> U+5FB5
-U+5FC6 <> U+61B6
-U+5FCF <> U+61FA
-U+5FD7 <> U+5FD7
-U+5FE7 <> U+6182
-U+5FFE <> U+613E
-U+6000 <> U+61F7
-U+6001 <> U+614B
-U+6002 <> U+616B
-U+6003 <> U+61AE
-U+6004 <> U+616A
-U+6005 <> U+60B5
-U+6006 <> U+6134
-U+601C <> U+6190
-U+603B <> U+7E3D
-U+603C <> U+61DF
-U+603F <> U+61CC
-U+604B <> U+6200
-U+6052 <> U+6046
-U+6073 <> U+61C7
-U+6076 <> U+60E1
-U+6078 <> U+615F
-U+6079 <> U+61E8
-U+607A <> U+6137
-U+607B <> U+60FB
-U+607C <> U+60F1
-U+607D <> U+60F2
-U+60A6 <> U+6085
-U+60AB <> U+6128
-U+60AC <> U+61F8
-U+60AD <> U+6173
-U+60AE <> U+609E
-U+60AF <> U+61AB
-U+60CA <> U+9A5A
-U+60E7 <> U+61FC
-U+60E8 <> U+6158
-U+60E9 <> U+61F2
-U+60EB <> U+618A
-U+60EC <> U+611C
-U+60ED <> U+615A
-U+60EE <> U+619A
-U+60EF <> U+6163
-U+6120 <> U+614D
-U+6124 <> U+61A4
-U+6126 <> U+6192
-U+613F <> U+613F
-U+6151 <> U+61FE
-U+61D1 <> U+61E3
-U+61D2 <> U+61F6
-U+61D4 <> U+61CD
-U+6206 <> U+6207
-U+620B <> U+6214
-U+620F <> U+6232
-U+6217 <> U+6227
-U+6218 <> U+6230
-U+622C <> U+6229
-U+622F <> U+6231
-U+6237 <> U+6236
-U+6251 <> U+64B2
-U+6267 <> U+57F7
-U+6269 <> U+64F4
-U+626A <> U+636B
-U+626B <> U+6383
-U+626C <> U+63DA
-U+6270 <> U+64FE
-U+629A <> U+64AB
-U+629B <> U+62CB
-U+629F <> U+6476
-U+62A0 <> U+6473
-U+62A1 <> U+6384
-U+62A2 <> U+6436
-U+62A4 <> U+8B77
-U+62A5 <> U+5831
-U+62C5 <> U+64D4
-U+62DF <> U+64EC
-U+62E2 <> U+650F
-U+62E3 <> U+63C0
-U+62E5 <> U+64C1
-U+62E6 <> U+6514
-U+62E7 <> U+64F0
-U+62E8 <> U+64A5
-U+62E9 <> U+64C7
-U+6302 <> U+639B
-U+631A <> U+646F
-U+631B <> U+6523
-U+631C <> U+6397
-U+631D <> U+64BE
-U+631E <> U+64BB
-U+631F <> U+633E
-U+6320 <> U+6493
-U+6321 <> U+64CB
-U+6322 <> U+649F
-U+6323 <> U+6399
-U+6324 <> U+64E0
-U+6325 <> U+63EE
-U+6326 <> U+648F
-U+633D <> U+8F13
-U+635D <> U+6329
-U+635E <> U+6488
-U+635F <> U+640D
-U+6361 <> U+64BF
-U+6362 <> U+63DB
-U+6363 <> U+6417
-U+636E <> U+64DA
-U+63B3 <> U+64C4
-U+63B4 <> U+6451
-U+63B7 <> U+64F2
-U+63B8 <> U+64A3
-U+63BA <> U+647B
-U+63BC <> U+645C
-U+63FD <> U+652C
-U+63FE <> U+6435
-U+63FF <> U+64B3
-U+6400 <> U+6519
-U+6401 <> U+64F1
-U+6402 <> U+645F
-U+6405 <> U+652A
-U+643A <> U+651C
-U+6444 <> U+651D
-U+6445 <> U+6504
-U+6446 <> U+64FA
-U+6447 <> U+6416
-U+6448 <> U+64EF
-U+644A <> U+6524
-U+6484 <> U+6516
-U+6491 <> U+6490
-U+64B5 <> U+6506
-U+64B7 <> U+64F7
-U+64B8 <> U+64FC
-U+64BA <> U+651B
-U+64DE <> U+64FB
-U+6512 <> U+6522
-U+654C <> U+6575
-U+655B <> U+6582
-U+6569 <> U+6586
-U+6570 <> U+6578
-U+658B <> U+9F4B
-U+6593 <> U+6595
-U+6597 <> U+9B25
-U+65A9 <> U+65AC
-U+65AD <> U+65B7
-U+65E0 <> U+7121
-U+65E7 <> U+820A
-U+65F6 <> U+6642
-U+65F7 <> U+66E0
-U+65F8 <> U+6698
-U+6619 <> U+66C7
-U+663C <> U+665D
-U+663D <> U+66E8
-U+663E <> U+986F
-U+664B <> U+6649
-U+6652 <> U+66EC
-U+6653 <> U+66C9
-U+6654 <> U+66C4
-U+6655 <> U+6688
-U+6656 <> U+6689
-U+6682 <> U+66AB
-U+66A7 <> U+66D6
-U+672F <> U+8853
-U+6734 <> U+6A38
-U+673A <> U+6A5F
-U+6740 <> U+6BBA
-U+6742 <> U+96DC
-U+6743 <> U+6B0A
-U+6746 <> U+687F
-U+6761 <> U+689D
-U+6765 <> U+4F86
-U+6768 <> U+694A
-U+6769 <> U+69AA
-U+6770 <> U+5091
-U+677E <> U+9B06
-U+677F <> U+95C6
-U+6781 <> U+6781
-U+6784 <> U+69CB
-U+679E <> U+6A05
-U+67A2 <> U+6A1E
-U+67A3 <> U+68D7
-U+67A5 <> U+6AEA
-U+67A7 <> U+6898
-U+67A8 <> U+68D6
-U+67AA <> U+69CD
-U+67AB <> U+6953
-U+67AD <> U+689F
-U+67DC <> U+6AC3
-U+67E0 <> U+6AB8
-U+67FD <> U+6A89
-U+6800 <> U+6894
-U+6805 <> U+67F5
-U+6807 <> U+6A19
-U+6808 <> U+68E7
-U+6809 <> U+6ADB
-U+680A <> U+6AF3
-U+680B <> U+68DF
-U+680C <> U+6AE8
-U+680E <> U+6ADF
-U+680F <> U+6B04
-U+6811 <> U+6A39
-U+6816 <> U+68F2
-U+6817 <> U+6144
-U+6837 <> U+6A23
-U+683E <> U+6B12
-U+6860 <> U+690F
-U+6861 <> U+6A48
-U+6862 <> U+6968
-U+6863 <> U+6A94
-U+6864 <> U+69BF
-U+6865 <> U+6A4B
-U+6866 <> U+6A3A
-U+6867 <> U+6A9C
-U+6868 <> U+69F3
-U+6869 <> U+6A01
-U+686A <> U+6A33
-U+68A6 <> U+5922
-U+68BC <> U+6AAE
-U+68BE <> U+68F6
-U+68BF <> U+69E4
-U+68C0 <> U+6AA2
-U+68C1 <> U+68B2
-U+68C2 <> U+6B1E
-U+6901 <> U+69E8
-U+691D <> U+69FC
-U+691F <> U+6ADD
-U+6920 <> U+69E7
-U+6922 <> U+69F6
-U+6924 <> U+6B0F
-U+692B <> U+6A3F
-U+692D <> U+6A62
-U+697C <> U+6A13
-U+6984 <> U+6B16
-U+6985 <> U+69B2
-U+6987 <> U+6AEC
-U+6988 <> U+6ADA
-U+6989 <> U+6AF8
-U+69DA <> U+6A9F
-U+69DB <> U+6ABB
-U+69DF <> U+6AB3
-U+69E0 <> U+6AE7
-U+6A2A <> U+6A6B
-U+6A2F <> U+6AA3
-U+6A31 <> U+6AFB
-U+6A65 <> U+6AEB
-U+6A71 <> U+6AE5
-U+6A79 <> U+6AD3
-U+6A7C <> U+6ADE
-U+6AA9 <> U+6A81
-U+6B22 <> U+6B61
-U+6B24 <> U+6B5F
-U+6B27 <> U+6B50
-U+6B7C <> U+6BB2
-U+6B81 <> U+6B7F
-U+6B87 <> U+6BA4
-U+6B8B <> U+6B98
-U+6B92 <> U+6B9E
-U+6B93 <> U+6BAE
-U+6B9A <> U+6BAB
-U+6BA1 <> U+6BAF
-U+6BB4 <> U+6BC6
-U+6BC1 <> U+6BC0
-U+6BC2 <> U+8F42
-U+6BD5 <> U+7562
-U+6BD9 <> U+6583
-U+6BE1 <> U+6C08
-U+6BF5 <> U+6BFF
-U+6C07 <> U+6C0C
-U+6C14 <> U+6C23
-U+6C22 <> U+6C2B
-U+6C29 <> U+6C2C
-U+6C32 <> U+6C33
-U+6C47 <> U+532F
-U+6C49 <> U+6F22
-U+6C64 <> U+6E6F
-U+6C79 <> U+6D36
-U+6C88 <> U+700B
-U+6C9F <> U+6E9D
-U+6CA1 <> U+6C92
-U+6CA3 <> U+7043
-U+6CA4 <> U+6F1A
-U+6CA5 <> U+701D
-U+6CA6 <> U+6DEA
-U+6CA7 <> U+6EC4
-U+6CA8 <> U+6E22
-U+6CA9 <> U+6E88
-U+6CAA <> U+6EEC
-U+6CDE <> U+6FD8
-U+6CE8 <> U+8A3B
-U+6CEA <> U+6DDA
-U+6CF6 <> U+6FA9
-U+6CF7 <> U+7027
-U+6CF8 <> U+7018
-U+6CFA <> U+6FFC
-U+6CFB <> U+7009
-U+6CFC <> U+6F51
-U+6CFD <> U+6FA4
-U+6CFE <> U+6D87
-U+6D01 <> U+6F54
-U+6D12 <> U+7051
-U+6D3C <> U+7AAA
-U+6D43 <> U+6D79
-U+6D45 <> U+6DFA
-U+6D46 <> U+6F3F
-U+6D47 <> U+6F86
-U+6D48 <> U+6E5E
-U+6D4A <> U+6FC1
-U+6D4B <> U+6E2C
-U+6D4D <> U+6FAE
-U+6D4E <> U+6FDF
-U+6D4F <> U+700F
-U+6D50 <> U+6EFB
-U+6D51 <> U+6E3E
-U+6D52 <> U+6EF8
-U+6D53 <> U+6FC3
-U+6D54 <> U+6F6F
-U+6D55 <> U+6FDC
-U+6D82 <> U+5857
-U+6D9B <> U+6FE4
-U+6D9D <> U+6F87
-U+6D9E <> U+6DF6
-U+6D9F <> U+6F23
-U+6DA0 <> U+6F7F
-U+6DA1 <> U+6E26
-U+6DA2 <> U+6EB3
-U+6DA3 <> U+6E19
-U+6DA4 <> U+6ECC
-U+6DA6 <> U+6F64
-U+6DA7 <> U+6F97
-U+6DA8 <> U+6F32
-U+6DA9 <> U+6F80
-U+6DC0 <> U+6FB1
-U+6E0A <> U+6DF5
-U+6E0C <> U+6DE5
-U+6E0D <> U+6F2C
-U+6E0E <> U+7006
-U+6E10 <> U+6F38
-U+6E11 <> U+6FA0
-U+6E14 <> U+6F01
-U+6E17 <> U+6EF2
-U+6E29 <> U+6EAB
-U+6E7E <> U+7063
-U+6E7F <> U+6FD5
-U+6E83 <> U+6F70
-U+6E85 <> U+6FFA
-U+6E86 <> U+6F35
-U+6E87 <> U+6F0A
-U+6ED7 <> U+6F77
-U+6EDA <> U+6EFE
-U+6EDE <> U+6EEF
-U+6EDF <> U+7067
-U+6EE0 <> U+7044
-U+6EE1 <> U+6EFF
-U+6EE2 <> U+7005
-U+6EE4 <> U+6FFE
-U+6EE5 <> U+6FEB
-U+6EE6 <> U+7064
-U+6EE8 <> U+6FF1
-U+6EE9 <> U+7058
-U+6EEA <> U+6FA6
-U+6F13 <> U+7055
-U+6F24 <> U+7060
-U+6F46 <> U+7020
-U+6F47 <> U+701F
-U+6F4B <> U+7032
-U+6F4D <> U+6FF0
-U+6F5C <> U+6F5B
-U+6F74 <> U+7026
-U+6F9B <> U+7002
-U+6F9C <> U+703E
-U+6FD1 <> U+7028
-U+6FD2 <> U+7015
-U+704F <> U+705D
-U+706D <> U+6EC5
-U+706F <> U+71C8
-U+7075 <> U+9748
-U+707E <> U+707D
-U+707F <> U+71E6
-U+7080 <> U+716C
-U+7089 <> U+7210
-U+709C <> U+7152
-U+709D <> U+7197
-U+70B9 <> U+9EDE
-U+70BC <> U+7149
-U+70BD <> U+71BE
-U+70C1 <> U+720D
-U+70C2 <> U+721B
-U+70C3 <> U+70F4
-U+70DB <> U+71ED
-U+70DF <> U+7159
-U+70E6 <> U+7169
-U+70E7 <> U+71D2
-U+70E8 <> U+71C1
-U+70E9 <> U+71F4
-U+70EB <> U+71D9
-U+70EC <> U+71FC
-U+70ED <> U+71B1
-U+7115 <> U+7165
-U+7116 <> U+71DC
-U+7118 <> U+71FE
-U+7174 <> U+7185
-U+7231 <> U+611B
-U+7237 <> U+723A
-U+724D <> U+7258
-U+7266 <> U+6C02
-U+7275 <> U+727D
-U+727A <> U+72A7
-U+728A <> U+72A2
-U+72B6 <> U+72C0
-U+72B7 <> U+7377
-U+72B8 <> U+7341
-U+72B9 <> U+7336
-U+72C8 <> U+72FD
-U+72DD <> U+736E
-U+72DE <> U+7370
-U+72EC <> U+7368
-U+72ED <> U+72F9
-U+72EE <> U+7345
-U+72EF <> U+736A
-U+72F0 <> U+7319
-U+72F1 <> U+7344
-U+72F2 <> U+733B
-U+7303 <> U+736B
-U+730E <> U+7375
-U+7315 <> U+737C
-U+7321 <> U+7380
-U+732A <> U+8C6C
-U+732B <> U+8C93
-U+732C <> U+875F
-U+732E <> U+737B
-U+736D <> U+737A
-U+7391 <> U+74A3
-U+739A <> U+7452
-U+739B <> U+746A
-U+73AE <> U+744B
-U+73AF <> U+74B0
-U+73B0 <> U+73FE
-U+73B1 <> U+7472
-U+73BA <> U+74BD
-U+73D0 <> U+743A
-U+73D1 <> U+74CF
-U+73F0 <> U+74AB
-U+73F2 <> U+743F
-U+740F <> U+7489
-U+7410 <> U+7463
-U+743C <> U+74CA
-U+7476 <> U+7464
-U+7477 <> U+74A6
-U+748E <> U+74D4
-U+74D2 <> U+74DA
-U+74EF <> U+750C
-U+7535 <> U+96FB
-U+753B <> U+756B
-U+7545 <> U+66A2
-U+7574 <> U+7587
-U+7596 <> U+7664
-U+7597 <> U+7642
-U+759F <> U+7627
-U+75A0 <> U+7658
-U+75A1 <> U+760D
-U+75AC <> U+7667
-U+75AD <> U+7632
-U+75AE <> U+7621
-U+75AF <> U+760B
-U+75B1 <> U+76B0
-U+75B4 <> U+75FE
-U+75C7 <> U+7665
-U+75C8 <> U+7670
-U+75C9 <> U+75D9
-U+75D2 <> U+7662
-U+75D6 <> U+7602
-U+75E8 <> U+7646
-U+75EA <> U+7613
-U+75EB <> U+7647
-U+7605 <> U+7649
-U+7606 <> U+762E
-U+7617 <> U+761E
-U+7618 <> U+763A
-U+762A <> U+765F
-U+762B <> U+7671
-U+763E <> U+766E
-U+763F <> U+766D
-U+765E <> U+7669
-U+7663 <> U+766C
-U+766B <> U+7672
-U+7691 <> U+769A
-U+76B1 <> U+76BA
-U+76B2 <> U+76B8
-U+76CF <> U+76DE
-U+76D0 <> U+9E7D
-U+76D1 <> U+76E3
-U+76D6 <> U+84CB
-U+76D7 <> U+76DC
-U+76D8 <> U+76E4
-U+770D <> U+7798
-U+7726 <> U+7725
-U+772C <> U+77D3
-U+7740 <> U+8457
-U+7741 <> U+775C
-U+7750 <> U+775E
-U+7751 <> U+77BC
-U+7786 <> U+77B6
-U+7792 <> U+779E
-U+77A9 <> U+77DA
-U+77EB <> U+77EF
-U+77F6 <> U+78EF
-U+77FE <> U+792C
-U+77FF <> U+7926
-U+7800 <> U+78AD
-U+7801 <> U+78BC
-U+7816 <> U+78DA
-U+7817 <> U+7868
-U+781A <> U+786F
-U+781C <> U+78B8
-U+783A <> U+792A
-U+783B <> U+7931
-U+783E <> U+792B
-U+7840 <> U+790E
-U+7841 <> U+785C
-U+7855 <> U+78A9
-U+7856 <> U+7864
-U+7857 <> U+78FD
-U+7859 <> U+78D1
-U+785A <> U+7904
-U+786E <> U+78BA
-U+7875 <> U+78E0
-U+7877 <> U+7906
-U+788D <> U+7919
-U+789B <> U+78E7
-U+789C <> U+78E3
-U+793C <> U+79AE
-U+7943 <> U+79A1
-U+794E <> U+7995
-U+7962 <> U+79B0
-U+796F <> U+798E
-U+7977 <> U+79B1
-U+7978 <> U+798D
-U+7980 <> U+7A1F
-U+7984 <> U+797F
-U+7985 <> U+79AA
-U+79BB <> U+96E2
-U+79C3 <> U+79BF
-U+79C6 <> U+7A08
-U+79CD <> U+7A2E
-U+79EF <> U+7A4D
-U+79F0 <> U+7A31
-U+79FD <> U+7A62
-U+79FE <> U+7A60
-U+7A06 <> U+7A6D
-U+7A0E <> U+7A05
-U+7A23 <> U+7A4C
-U+7A33 <> U+7A69
-U+7A51 <> U+7A61
-U+7A77 <> U+7AAE
-U+7A83 <> U+7ACA
-U+7A8D <> U+7AC5
-U+7A8E <> U+7AB5
-U+7A91 <> U+7AAF
-U+7A9C <> U+7AC4
-U+7A9D <> U+7AA9
-U+7AA5 <> U+7ABA
-U+7AA6 <> U+7AC7
-U+7AAD <> U+7AB6
-U+7AD6 <> U+8C4E
-U+7ADE <> U+7AF6
-U+7B03 <> U+7BE4
-U+7B0B <> U+7B4D
-U+7B14 <> U+7B46
-U+7B15 <> U+7B67
-U+7B3A <> U+7B8B
-U+7B3C <> U+7C60
-U+7B3E <> U+7C69
-U+7B51 <> U+7BC9
-U+7B5A <> U+7BF3
-U+7B5B <> U+7BE9
-U+7B5C <> U+7C39
-U+7B5D <> U+7B8F
-U+7B79 <> U+7C4C
-U+7B7C <> U+7BD4
-U+7B7E <> U+7C3D
-U+7B80 <> U+7C21
-U+7B93 <> U+7C59
-U+7BA6 <> U+7C00
-U+7BA7 <> U+7BCB
-U+7BA8 <> U+7C5C
-U+7BA9 <> U+7C6E
-U+7BAA <> U+7C1E
-U+7BAB <> U+7C2B
-U+7BD1 <> U+7C23
-U+7BD3 <> U+7C0D
-U+7BEE <> U+7C43
-U+7BEF <> U+7C5B
-U+7BF1 <> U+7C6C
-U+7C16 <> U+7C6A
-U+7C41 <> U+7C5F
-U+7C74 <> U+7CF4
-U+7C7B <> U+985E
-U+7C7C <> U+79C8
-U+7C9C <> U+7CF6
-U+7C9D <> U+7CF2
-U+7CA4 <> U+7CB5
-U+7CAA <> U+7CDE
-U+7CAE <> U+7CE7
-U+7CC1 <> U+7CDD
-U+7CC7 <> U+9931
-U+7CFB <> U+4FC2
-U+7D27 <> U+7DCA
-U+7D2F <> U+7E8D
-U+7D77 <> U+7E36
-U+7E9F <> U+7CF9
-U+7EA0 <> U+7CFE
-U+7EA1 <> U+7D06
-U+7EA2 <> U+7D05
-U+7EA3 <> U+7D02
-U+7EA4 <> U+7E96
-U+7EA5 <> U+7D07
-U+7EA6 <> U+7D04
-U+7EA7 <> U+7D1A
-U+7EA8 <> U+7D08
-U+7EA9 <> U+7E8A
-U+7EAA <> U+7D00
-U+7EAB <> U+7D09
-U+7EAC <> U+7DEF
-U+7EAD <> U+7D1C
-U+7EAE <> U+7D18
-U+7EAF <> U+7D14
-U+7EB0 <> U+7D15
-U+7EB1 <> U+7D17
-U+7EB2 <> U+7DB1
-U+7EB3 <> U+7D0D
-U+7EB4 <> U+7D1D
-U+7EB5 <> U+7E31
-U+7EB6 <> U+7DB8
-U+7EB7 <> U+7D1B
-U+7EB8 <> U+7D19
-U+7EB9 <> U+7D0B
-U+7EBA <> U+7D21
-U+7EBB <> U+7D35
-U+7EBC <> U+7D16
-U+7EBD <> U+7D10
-U+7EBE <> U+7D13
-U+7EBF <> U+7DDA
-U+7EC0 <> U+7D3A
-U+7EC1 <> U+7D32
-U+7EC2 <> U+7D31
-U+7EC3 <> U+7DF4
-U+7EC4 <> U+7D44
-U+7EC5 <> U+7D33
-U+7EC6 <> U+7D30
-U+7EC7 <> U+7E54
-U+7EC8 <> U+7D42
-U+7EC9 <> U+7E10
-U+7ECA <> U+7D46
-U+7ECB <> U+7D3C
-U+7ECC <> U+7D40
-U+7ECD <> U+7D39
-U+7ECE <> U+7E79
-U+7ECF <> U+7D93
-U+7ED0 <> U+7D3F
-U+7ED1 <> U+7D81
-U+7ED2 <> U+7D68
-U+7ED3 <> U+7D50
-U+7ED4 <> U+7D5D
-U+7ED5 <> U+7E5E
-U+7ED6 <> U+7D70
-U+7ED7 <> U+7D4E
-U+7ED8 <> U+7E6A
-U+7ED9 <> U+7D66
-U+7EDA <> U+7D62
-U+7EDB <> U+7D73
-U+7EDC <> U+7D61
-U+7EDD <> U+7D55
-U+7EDE <> U+7D5E
-U+7EDF <> U+7D71
-U+7EE0 <> U+7D86
-U+7EE1 <> U+7D83
-U+7EE2 <> U+7D79
-U+7EE3 <> U+7E61
-U+7EE4 <> U+7D8C
-U+7EE5 <> U+7D8F
-U+7EE6 <> U+7D5B
-U+7EE7 <> U+7E7C
-U+7EE8 <> U+7D88
-U+7EE9 <> U+7E3E
-U+7EEA <> U+7DD2
-U+7EEB <> U+7DBE
-U+7EEC <> U+7DD3
-U+7EED <> U+7E8C
-U+7EEE <> U+7DBA
-U+7EEF <> U+7DCB
-U+7EF0 <> U+7DBD
-U+7EF1 <> U+979D
-U+7EF2 <> U+7DC4
-U+7EF3 <> U+7E69
-U+7EF4 <> U+7DAD
-U+7EF5 <> U+7DBF
-U+7EF6 <> U+7DAC
-U+7EF7 <> U+7E43
-U+7EF8 <> U+7DA2
-U+7EF9 <> U+7DAF
-U+7EFA <> U+7DB9
-U+7EFB <> U+7DA3
-U+7EFC <> U+7D9C
-U+7EFD <> U+7DBB
-U+7EFE <> U+7DB0
-U+7EFF <> U+7DA0
-U+7F00 <> U+7DB4
-U+7F01 <> U+7DC7
-U+7F02 <> U+7DD9
-U+7F03 <> U+7DD7
-U+7F04 <> U+7DD8
-U+7F05 <> U+7DEC
-U+7F06 <> U+7E9C
-U+7F07 <> U+7DF9
-U+7F08 <> U+7DF2
-U+7F09 <> U+7DDD
-U+7F0A <> U+7E15
-U+7F0B <> U+7E62
-U+7F0C <> U+7DE6
-U+7F0D <> U+7D9E
-U+7F0E <> U+7DDE
-U+7F0F <> U+7DF6
-U+7F11 <> U+7DF1
-U+7F12 <> U+7E0B
-U+7F13 <> U+7DE9
-U+7F14 <> U+7DE0
-U+7F15 <> U+7E37
-U+7F16 <> U+7DE8
-U+7F17 <> U+7DE1
-U+7F18 <> U+7DE3
-U+7F19 <> U+7E09
-U+7F1A <> U+7E1B
-U+7F1B <> U+7E1F
-U+7F1C <> U+7E1D
-U+7F1D <> U+7E2B
-U+7F1E <> U+7E17
-U+7F1F <> U+7E1E
-U+7F20 <> U+7E8F
-U+7F21 <> U+7E2D
-U+7F22 <> U+7E0A
-U+7F23 <> U+7E11
-U+7F24 <> U+7E7D
-U+7F25 <> U+7E39
-U+7F26 <> U+7E35
-U+7F27 <> U+7E32
-U+7F28 <> U+7E93
-U+7F29 <> U+7E2E
-U+7F2A <> U+7E46
-U+7F2B <> U+7E45
-U+7F2C <> U+7E88
-U+7F2D <> U+7E5A
-U+7F2E <> U+7E55
-U+7F2F <> U+7E52
-U+7F30 <> U+97C1
-U+7F31 <> U+7E7E
-U+7F32 <> U+7E70
-U+7F33 <> U+7E6F
-U+7F34 <> U+7E73
-U+7F35 <> U+7E98
-U+7F42 <> U+7F4C
-U+7F51 <> U+7DB2
-U+7F57 <> U+7F85
-U+7F5A <> U+7F70
-U+7F62 <> U+7F77
-U+7F74 <> U+7F86
-U+7F81 <> U+7F88
-U+7F9F <> U+7FA5
-U+7FD8 <> U+7FF9
-U+7FD9 <> U+7FFD
-U+7FDA <> U+7FEC
-U+8022 <> U+802E
-U+8027 <> U+802C
-U+8038 <> U+8073
-U+803B <> U+6065
-U+8042 <> U+8076
-U+804B <> U+807E
-U+804C <> U+8077
-U+804D <> U+8079
-U+8054 <> U+806F
-U+8069 <> U+8075
-U+806A <> U+8070
-U+8083 <> U+8085
-U+80A0 <> U+8178
-U+80A4 <> U+819A
-U+80AE <> U+9AAF
-U+80B4 <> U+991A
-U+80BE <> U+814E
-U+80BF <> U+816B
-U+80C0 <> U+8139
-U+80C1 <> U+8105
-U+80C6 <> U+81BD
-U+80DC <> U+52DD
-U+80E1 <> U+885A
-U+80E7 <> U+6727
-U+80E8 <> U+8156
-U+80EA <> U+81DA
-U+80EB <> U+811B
-U+80F6 <> U+81A0
-U+8109 <> U+8108
-U+810D <> U+81BE
-U+810F <> U+81DF
-U+8110 <> U+81CD
-U+8111 <> U+8166
-U+8113 <> U+81BF
-U+8114 <> U+81E0
-U+811A <> U+8173
-U+8131 <> U+812B
-U+8136 <> U+8161
-U+8138 <> U+81C9
-U+814A <> U+81D8
-U+8158 <> U+8195
-U+816D <> U+9F76
-U+817B <> U+81A9
-U+817C <> U+9766
-U+817D <> U+8183
-U+817E <> U+9A30
-U+8191 <> U+81CF
-U+81DC <> U+81E2
-U+81F4 <> U+7DFB
-U+8206 <> U+8F3F
-U+820D <> U+6368
-U+8223 <> U+8264
-U+8230 <> U+8266
-U+8231 <> U+8259
-U+823B <> U+826B
-U+8270 <> U+8271
-U+8273 <> U+8277
-U+827A <> U+85DD
-U+8282 <> U+7BC0
-U+8288 <> U+7F8B
-U+8297 <> U+858C
-U+829C <> U+856A
-U+82A6 <> U+8606
-U+82B8 <> U+8553
-U+82C1 <> U+84EF
-U+82C7 <> U+8466
-U+82C8 <> U+85F6
-U+82CB <> U+83A7
-U+82CC <> U+8407
-U+82CD <> U+84BC
-U+82CE <> U+82E7
-U+82CF <> U+8607
-U+82E7 <> U+85B4
-U+82F9 <> U+860B
-U+8303 <> U+7BC4
-U+830E <> U+8396
-U+830F <> U+8622
-U+8311 <> U+8526
-U+8314 <> U+584B
-U+8315 <> U+7162
-U+8327 <> U+7E6D
-U+8346 <> U+834A
-U+8350 <> U+85A6
-U+8359 <> U+8598
-U+835A <> U+83A2
-U+835B <> U+8558
-U+835C <> U+84FD
-U+835D <> U+8434
-U+835E <> U+854E
-U+835F <> U+8588
-U+8360 <> U+85BA
-U+8361 <> U+76EA
-U+8363 <> U+69AE
-U+8364 <> U+8477
-U+8365 <> U+6ECE
-U+8366 <> U+7296
-U+8367 <> U+7192
-U+8368 <> U+8541
-U+8369 <> U+85CE
-U+836A <> U+84C0
-U+836B <> U+852D
-U+836C <> U+8552
-U+836D <> U+8452
-U+836E <> U+8464
-U+836F <> U+85E5
-U+8385 <> U+849E
-U+83B1 <> U+840A
-U+83B2 <> U+84EE
-U+83B3 <> U+8494
-U+83B4 <> U+8435
-U+83B6 <> U+859F
-U+83B7 <> U+7372
-U+83B8 <> U+8555
-U+83B9 <> U+7469
-U+83BA <> U+9DAF
-U+83BC <> U+84F4
-U+841D <> U+863F
-U+8424 <> U+87A2
-U+8425 <> U+71DF
-U+8426 <> U+7E08
-U+8427 <> U+856D
-U+8428 <> U+85A9
-U+8471 <> U+8525
-U+8487 <> U+8546
-U+8489 <> U+8562
-U+848B <> U+8523
-U+848C <> U+851E
-U+84DD <> U+85CD
-U+84DF <> U+858A
-U+84E0 <> U+863A
-U+84E3 <> U+8577
-U+84E5 <> U+93A3
-U+84E6 <> U+9A40
-U+8502 <> U+8646
-U+8537 <> U+8594
-U+8539 <> U+861E
-U+853A <> U+85FA
-U+853C <> U+85F9
-U+8570 <> U+8580
-U+8572 <> U+8604
-U+8574 <> U+860A
-U+85AE <> U+85EA
-U+85D3 <> U+861A
-U+8616 <> U+6AF1
-U+864F <> U+865C
-U+8651 <> U+616E
-U+865A <> U+865B
-U+866B <> U+87F2
-U+866C <> U+866F
-U+866E <> U+87E3
-U+867D <> U+96D6
-U+867E <> U+8766
-U+867F <> U+8806
-U+8680 <> U+8755
-U+8681 <> U+87FB
-U+8682 <> U+879E
-U+8683 <> U+8801
-U+8695 <> U+8836
-U+86AC <> U+8706
-U+86CA <> U+8831
-U+86CE <> U+8823
-U+86CF <> U+87F6
-U+86EE <> U+883B
-U+86F0 <> U+87C4
-U+86F1 <> U+86FA
-U+86F2 <> U+87EF
-U+86F3 <> U+8784
-U+86F4 <> U+8810
-U+8715 <> U+86FB
-U+8717 <> U+8778
-U+8721 <> U+8721
-U+8747 <> U+8805
-U+8748 <> U+87C8
-U+8749 <> U+87EC
-U+877C <> U+87BB
-U+877E <> U+8811
-U+8780 <> U+87BF
-U+87A8 <> U+87CE
-U+87CF <> U+8828
-U+8845 <> U+91C1
-U+8854 <> U+929C
-U+8865 <> U+88DC
-U+8868 <> U+9336
-U+886C <> U+896F
-U+886E <> U+889E
-U+8884 <> U+8956
-U+8885 <> U+88CA
-U+8886 <> U+8918
-U+889C <> U+896A
-U+88AD <> U+8972
-U+88AF <> U+894F
-U+88C5 <> U+88DD
-U+88C6 <> U+8960
-U+88C8 <> U+890C
-U+88E2 <> U+8933
-U+88E3 <> U+895D
-U+88E4 <> U+8932
-U+88E5 <> U+8949
-U+891B <> U+8938
-U+8934 <> U+8964
-U+8955 <> U+8974
-U+89C1 <> U+898B
-U+89C2 <> U+89C0
-U+89C3 <> U+898E
-U+89C4 <> U+898F
-U+89C5 <> U+8993
-U+89C6 <> U+8996
-U+89C7 <> U+8998
-U+89C8 <> U+89BD
-U+89C9 <> U+89BA
-U+89CA <> U+89AC
-U+89CB <> U+89A1
-U+89CC <> U+89BF
-U+89CD <> U+89A5
-U+89CE <> U+89A6
-U+89CF <> U+89AF
-U+89D0 <> U+89B2
-U+89D1 <> U+89B7
-U+89DE <> U+89F4
-U+89E6 <> U+89F8
-U+89EF <> U+89F6
-U+8A1A <> U+8ABE
-U+8A5F <> U+8B8B
-U+8A89 <> U+8B7D
-U+8A8A <> U+8B04
-U+8BA0 <> U+8A01
-U+8BA1 <> U+8A08
-U+8BA2 <> U+8A02
-U+8BA3 <> U+8A03
-U+8BA4 <> U+8A8D
-U+8BA5 <> U+8B4F
-U+8BA6 <> U+8A10
-U+8BA7 <> U+8A0C
-U+8BA8 <> U+8A0E
-U+8BA9 <> U+8B93
-U+8BAA <> U+8A15
-U+8BAB <> U+8A16
-U+8BAC <> U+8A17
-U+8BAD <> U+8A13
-U+8BAE <> U+8B70
-U+8BAF <> U+8A0A
-U+8BB0 <> U+8A18
-U+8BB1 <> U+8A12
-U+8BB2 <> U+8B1B
-U+8BB3 <> U+8AF1
-U+8BB4 <> U+8B33
-U+8BB5 <> U+8A4E
-U+8BB6 <> U+8A1D
-U+8BB7 <> U+8A25
-U+8BB8 <> U+8A31
-U+8BB9 <> U+8A1B
-U+8BBA <> U+8AD6
-U+8BBB <> U+8A29
-U+8BBC <> U+8A1F
-U+8BBD <> U+8AF7
-U+8BBE <> U+8A2D
-U+8BBF <> U+8A2A
-U+8BC0 <> U+8A23
-U+8BC1 <> U+8B49
-U+8BC2 <> U+8A41
-U+8BC3 <> U+8A36
-U+8BC4 <> U+8A55
-U+8BC5 <> U+8A5B
-U+8BC6 <> U+8B58
-U+8BC7 <> U+8A57
-U+8BC8 <> U+8A50
-U+8BC9 <> U+8A34
-U+8BCA <> U+8A3A
-U+8BCB <> U+8A46
-U+8BCC <> U+8B05
-U+8BCD <> U+8A5E
-U+8BCE <> U+8A58
-U+8BCF <> U+8A54
-U+8BD0 <> U+8A56
-U+8BD1 <> U+8B6F
-U+8BD2 <> U+8A52
-U+8BD3 <> U+8A86
-U+8BD4 <> U+8A84
-U+8BD5 <> U+8A66
-U+8BD6 <> U+8A7F
-U+8BD7 <> U+8A69
-U+8BD8 <> U+8A70
-U+8BD9 <> U+8A7C
-U+8BDA <> U+8AA0
-U+8BDB <> U+8A85
-U+8BDC <> U+8A75
-U+8BDD <> U+8A71
-U+8BDE <> U+8A95
-U+8BDF <> U+8A6C
-U+8BE0 <> U+8A6E
-U+8BE1 <> U+8A6D
-U+8BE2 <> U+8A62
-U+8BE3 <> U+8A63
-U+8BE4 <> U+8ACD
-U+8BE5 <> U+8A72
-U+8BE6 <> U+8A73
-U+8BE7 <> U+8A6B
-U+8BE8 <> U+8AE2
-U+8BE9 <> U+8A61
-U+8BEA <> U+8B78
-U+8BEB <> U+8AA1
-U+8BEC <> U+8AA3
-U+8BED <> U+8A9E
-U+8BEE <> U+8A9A
-U+8BEF <> U+8AA4
-U+8BF0 <> U+8AA5
-U+8BF1 <> U+8A98
-U+8BF2 <> U+8AA8
-U+8BF3 <> U+8A91
-U+8BF4 <> U+8AAA
-U+8BF5 <> U+8AA6
-U+8BF6 <> U+8A92
-U+8BF7 <> U+8ACB
-U+8BF8 <> U+8AF8
-U+8BF9 <> U+8ACF
-U+8BFA <> U+8AFE
-U+8BFB <> U+8B80
-U+8BFC <> U+8AD1
-U+8BFD <> U+8AB9
-U+8BFE <> U+8AB2
-U+8BFF <> U+8AC9
-U+8C00 <> U+8ADB
-U+8C01 <> U+8AB0
-U+8C02 <> U+8AD7
-U+8C03 <> U+8ABF
-U+8C04 <> U+8AC2
-U+8C05 <> U+8AD2
-U+8C06 <> U+8AC4
-U+8C07 <> U+8AB6
-U+8C08 <> U+8AC7
-U+8C0A <> U+8ABC
-U+8C0B <> U+8B00
-U+8C0C <> U+8AF6
-U+8C0D <> U+8ADC
-U+8C0E <> U+8B0A
-U+8C0F <> U+8AEB
-U+8C10 <> U+8AE7
-U+8C11 <> U+8B14
-U+8C12 <> U+8B01
-U+8C13 <> U+8B02
-U+8C14 <> U+8AE4
-U+8C15 <> U+8AED
-U+8C16 <> U+8AFC
-U+8C17 <> U+8B92
-U+8C18 <> U+8AEE
-U+8C19 <> U+8AF3
-U+8C1A <> U+8AFA
-U+8C1B <> U+8AE6
-U+8C1C <> U+8B0E
-U+8C1D <> U+8ADE
-U+8C1E <> U+8ADD
-U+8C1F <> U+8B28
-U+8C20 <> U+8B9C
-U+8C21 <> U+8B16
-U+8C22 <> U+8B1D
-U+8C23 <> U+8B20
-U+8C24 <> U+8B17
-U+8C25 <> U+8B1A
-U+8C26 <> U+8B19
-U+8C27 <> U+8B10
-U+8C28 <> U+8B39
-U+8C29 <> U+8B3E
-U+8C2A <> U+8B2B
-U+8C2B <> U+8B7E
-U+8C2C <> U+8B2C
-U+8C2D <> U+8B5A
-U+8C2E <> U+8B56
-U+8C2F <> U+8B59
-U+8C30 <> U+8B95
-U+8C31 <> U+8B5C
-U+8C32 <> U+8B4E
-U+8C33 <> U+8B9E
-U+8C34 <> U+8B74
-U+8C35 <> U+8B6B
-U+8C36 <> U+8B96
-U+8C37 <> U+7A40
-U+8C6E <> U+8C76
-U+8D1D <> U+8C9D
-U+8D1E <> U+8C9E
-U+8D1F <> U+8CA0
-U+8D20 <> U+8C9F
-U+8D21 <> U+8CA2
-U+8D22 <> U+8CA1
-U+8D23 <> U+8CAC
-U+8D24 <> U+8CE2
-U+8D25 <> U+6557
-U+8D26 <> U+8CEC
-U+8D27 <> U+8CA8
-U+8D28 <> U+8CEA
-U+8D29 <> U+8CA9
-U+8D2A <> U+8CAA
-U+8D2B <> U+8CA7
-U+8D2C <> U+8CB6
-U+8D2D <> U+8CFC
-U+8D2E <> U+8CAF
-U+8D2F <> U+8CAB
-U+8D30 <> U+8CB3
-U+8D31 <> U+8CE4
-U+8D32 <> U+8CC1
-U+8D33 <> U+8CB0
-U+8D34 <> U+8CBC
-U+8D35 <> U+8CB4
-U+8D36 <> U+8CBA
-U+8D37 <> U+8CB8
-U+8D38 <> U+8CBF
-U+8D39 <> U+8CBB
-U+8D3A <> U+8CC0
-U+8D3B <> U+8CBD
-U+8D3C <> U+8CCA
-U+8D3D <> U+8D04
-U+8D3E <> U+8CC8
-U+8D3F <> U+8CC4
-U+8D40 <> U+8CB2
-U+8D41 <> U+8CC3
-U+8D42 <> U+8CC2
-U+8D43 <> U+8D13
-U+8D44 <> U+8CC7
-U+8D45 <> U+8CC5
-U+8D46 <> U+8D10
-U+8D47 <> U+8CD5
-U+8D48 <> U+8CD1
-U+8D49 <> U+8CDA
-U+8D4A <> U+8CD2
-U+8D4B <> U+8CE6
-U+8D4C <> U+8CED
-U+8D4D <> U+9F4E
-U+8D4E <> U+8D16
-U+8D4F <> U+8CDE
-U+8D50 <> U+8CDC
-U+8D51 <> U+8D14
-U+8D52 <> U+8CD9
-U+8D53 <> U+8CE1
-U+8D54 <> U+8CE0
-U+8D55 <> U+8CE7
-U+8D56 <> U+8CF4
-U+8D57 <> U+8CF5
-U+8D58 <> U+8D05
-U+8D59 <> U+8CFB
-U+8D5A <> U+8CFA
-U+8D5B <> U+8CFD
-U+8D5C <> U+8CFE
-U+8D5D <> U+8D17
-U+8D5E <> U+8D0A
-U+8D5F <> U+8D07
-U+8D60 <> U+8D08
-U+8D61 <> U+8D0D
-U+8D62 <> U+8D0F
-U+8D63 <> U+8D1B
-U+8D6A <> U+8D6C
-U+8D75 <> U+8D99
-U+8D76 <> U+8D95
-U+8D8B <> U+8DA8
-U+8DB1 <> U+8DB2
-U+8DB8 <> U+8E89
-U+8DC3 <> U+8E8D
-U+8DC4 <> U+8E4C
-U+8DDE <> U+8E92
-U+8DF5 <> U+8E10
-U+8DF6 <> U+8E82
-U+8DF7 <> U+8E7A
-U+8DF8 <> U+8E55
-U+8DF9 <> U+8E9A
-U+8DFB <> U+8E8B
-U+8E0A <> U+8E34
-U+8E0C <> U+8E8A
-U+8E2A <> U+8E64
-U+8E2C <> U+8E93
-U+8E2F <> U+8E91
-U+8E51 <> U+8EA1
-U+8E52 <> U+8E63
-U+8E70 <> U+8E95
-U+8E7F <> U+8EA5
-U+8E8F <> U+8EAA
-U+8E9C <> U+8EA6
-U+8EAF <> U+8EC0
-U+8F66 <> U+8ECA
-U+8F67 <> U+8ECB
-U+8F68 <> U+8ECC
-U+8F69 <> U+8ED2
-U+8F6A <> U+8ED1
-U+8F6B <> U+8ED4
-U+8F6C <> U+8F49
-U+8F6D <> U+8EDB
-U+8F6E <> U+8F2A
-U+8F6F <> U+8EDF
-U+8F70 <> U+8F5F
-U+8F71 <> U+8EF2
-U+8F72 <> U+8EFB
-U+8F73 <> U+8F64
-U+8F74 <> U+8EF8
-U+8F75 <> U+8EF9
-U+8F76 <> U+8EFC
-U+8F77 <> U+8EE4
-U+8F78 <> U+8EEB
-U+8F79 <> U+8F62
-U+8F7A <> U+8EFA
-U+8F7B <> U+8F15
-U+8F7C <> U+8EFE
-U+8F7D <> U+8F09
-U+8F7E <> U+8F0A
-U+8F7F <> U+8F4E
-U+8F80 <> U+8F08
-U+8F81 <> U+8F07
-U+8F82 <> U+8F05
-U+8F83 <> U+8F03
-U+8F84 <> U+8F12
-U+8F85 <> U+8F14
-U+8F86 <> U+8F1B
-U+8F87 <> U+8F26
-U+8F88 <> U+8F29
-U+8F89 <> U+8F1D
-U+8F8A <> U+8F25
-U+8F8B <> U+8F1E
-U+8F8C <> U+8F2C
-U+8F8D <> U+8F1F
-U+8F8E <> U+8F1C
-U+8F8F <> U+8F33
-U+8F90 <> U+8F3B
-U+8F91 <> U+8F2F
-U+8F92 <> U+8F40
-U+8F93 <> U+8F38
-U+8F94 <> U+8F61
-U+8F95 <> U+8F45
-U+8F96 <> U+8F44
-U+8F97 <> U+8F3E
-U+8F98 <> U+8F46
-U+8F99 <> U+8F4D
-U+8F9A <> U+8F54
-U+8F9E <> U+8FAD
-U+8FA9 <> U+8FAF
-U+8FAB <> U+8FAE
-U+8FB9 <> U+908A
-U+8FBD <> U+907C
-U+8FBE <> U+9054
-U+8FC1 <> U+9077
-U+8FC7 <> U+904E
-U+8FC8 <> U+9081
-U+8FD0 <> U+904B
-U+8FD8 <> U+9084
-U+8FD9 <> U+9019
-U+8FDB <> U+9032
-U+8FDC <> U+9060
-U+8FDD <> U+9055
-U+8FDE <> U+9023
-U+8FDF <> U+9072
-U+8FE9 <> U+9087
-U+8FF3 <> U+9015
-U+8FF9 <> U+8DE1
-U+9002 <> U+9069
-U+9009 <> U+9078
-U+900A <> U+905C
-U+9012 <> U+905E
-U+9026 <> U+9090
-U+903B <> U+908F
-U+9057 <> U+907A
-U+9065 <> U+9059
-U+9093 <> U+9127
-U+909D <> U+913A
-U+90AC <> U+9114
-U+90AE <> U+90F5
-U+90B9 <> U+9112
-U+90BA <> U+9134
-U+90BB <> U+9130
-U+90C1 <> U+9B31
-U+90CF <> U+90DF
-U+90D0 <> U+9136
-U+90D1 <> U+912D
-U+90D3 <> U+9106
-U+90E6 <> U+9148
-U+90E7 <> U+9116
-U+90F8 <> U+9132
-U+9142 <> U+9147
-U+915D <> U+919E
-U+9166 <> U+91B1
-U+9171 <> U+91AC
-U+917D <> U+91C5
-U+917E <> U+91C3
-U+917F <> U+91C0
-U+91C7 <> U+57F0
-U+91CA <> U+91CB
-U+91CC <> U+88E1
-U+9274 <> U+9452
-U+92AE <> U+947E
-U+933E <> U+93E8
-U+9485 <> U+91D2
-U+9486 <> U+91D3
-U+9487 <> U+91D4
-U+9488 <> U+91DD
-U+9489 <> U+91D8
-U+948A <> U+91D7
-U+948B <> U+91D9
-U+948C <> U+91D5
-U+948D <> U+91F7
-U+948E <> U+91FA
-U+948F <> U+91E7
-U+9490 <> U+91E4
-U+9491 <> U+9212
-U+9492 <> U+91E9
-U+9493 <> U+91E3
-U+9494 <> U+9346
-U+9495 <> U+91F9
-U+9496 <> U+935A
-U+9497 <> U+91F5
-U+9498 <> U+9203
-U+9499 <> U+9223
-U+949A <> U+9208
-U+949B <> U+9226
-U+949C <> U+9245
-U+949D <> U+920D
-U+949E <> U+9214
-U+949F <> U+937E
-U+94A0 <> U+9209
-U+94A1 <> U+92C7
-U+94A2 <> U+92FC
-U+94A3 <> U+9211
-U+94A4 <> U+9210
-U+94A5 <> U+9470
-U+94A6 <> U+6B3D
-U+94A7 <> U+921E
-U+94A8 <> U+93A2
-U+94A9 <> U+9264
-U+94AA <> U+9227
-U+94AB <> U+9201
-U+94AC <> U+9225
-U+94AD <> U+9204
-U+94AE <> U+9215
-U+94AF <> U+9200
-U+94B0 <> U+923A
-U+94B1 <> U+9322
-U+94B2 <> U+9266
-U+94B3 <> U+9257
-U+94B4 <> U+9237
-U+94B5 <> U+7F3D
-U+94B6 <> U+9233
-U+94B7 <> U+9255
-U+94B8 <> U+923D
-U+94B9 <> U+9238
-U+94BA <> U+925E
-U+94BB <> U+947D
-U+94BC <> U+926C
-U+94BD <> U+926D
-U+94BE <> U+9240
-U+94BF <> U+923F
-U+94C0 <> U+923E
-U+94C1 <> U+9435
-U+94C2 <> U+9251
-U+94C3 <> U+9234
-U+94C4 <> U+9460
-U+94C5 <> U+925B
-U+94C6 <> U+925A
-U+94C7 <> U+924B
-U+94C8 <> U+9230
-U+94C9 <> U+9249
-U+94CA <> U+9248
-U+94CB <> U+924D
-U+94CC <> U+922E
-U+94CD <> U+9239
-U+94CE <> U+9438
-U+94CF <> U+9276
-U+94D0 <> U+92AC
-U+94D1 <> U+92A0
-U+94D2 <> U+927A
-U+94D3 <> U+92E9
-U+94D4 <> U+930F
-U+94D5 <> U+92AA
-U+94D6 <> U+92EE
-U+94D7 <> U+92CF
-U+94D8 <> U+92E3
-U+94D9 <> U+9403
-U+94DA <> U+928D
-U+94DB <> U+943A
-U+94DC <> U+9285
-U+94DD <> U+92C1
-U+94DE <> U+92B1
-U+94DF <> U+92A6
-U+94E0 <> U+93A7
-U+94E1 <> U+9358
-U+94E2 <> U+9296
-U+94E3 <> U+9291
-U+94E4 <> U+92CC
-U+94E5 <> U+92A9
-U+94E6 <> U+929B
-U+94E7 <> U+93F5
-U+94E8 <> U+9293
-U+94E9 <> U+93A9
-U+94EA <> U+927F
-U+94EB <> U+929A
-U+94EC <> U+927B
-U+94ED <> U+9298
-U+94EE <> U+931A
-U+94EF <> U+92AB
-U+94F0 <> U+9278
-U+94F1 <> U+92A5
-U+94F2 <> U+93DF
-U+94F3 <> U+9283
-U+94F4 <> U+940B
-U+94F5 <> U+92A8
-U+94F6 <> U+9280
-U+94F7 <> U+92A3
-U+94F8 <> U+9444
-U+94F9 <> U+9412
-U+94FA <> U+92EA
-U+94FB <> U+92D9
-U+94FC <> U+9338
-U+94FD <> U+92F1
-U+94FE <> U+93C8
-U+94FF <> U+93D7
-U+9500 <> U+92B7
-U+9501 <> U+9396
-U+9502 <> U+92F0
-U+9503 <> U+92E5
-U+9504 <> U+92E4
-U+9505 <> U+934B
-U+9506 <> U+92EF
-U+9507 <> U+92E8
-U+9508 <> U+93FD
-U+9509 <> U+92BC
-U+950A <> U+92DD
-U+950B <> U+92D2
-U+950C <> U+92C5
-U+950D <> U+92F6
-U+950E <> U+9426
-U+950F <> U+9427
-U+9510 <> U+92B3
-U+9511 <> U+92BB
-U+9512 <> U+92C3
-U+9513 <> U+92DF
-U+9514 <> U+92E6
-U+9515 <> U+9312
-U+9516 <> U+9306
-U+9517 <> U+937A
-U+9518 <> U+9369
-U+9519 <> U+932F
-U+951A <> U+9328
-U+951B <> U+931B
-U+951C <> U+9321
-U+951D <> U+9340
-U+951E <> U+9301
-U+951F <> U+9315
-U+9520 <> U+9329
-U+9521 <> U+932B
-U+9522 <> U+932E
-U+9523 <> U+947C
-U+9524 <> U+9318
-U+9525 <> U+9310
-U+9526 <> U+9326
-U+9527 <> U+9455
-U+9528 <> U+6774
-U+9529 <> U+9308
-U+952A <> U+9343
-U+952B <> U+9307
-U+952C <> U+931F
-U+952D <> U+9320
-U+952E <> U+9375
-U+952F <> U+92F8
-U+9530 <> U+9333
-U+9531 <> U+9319
-U+9532 <> U+9365
-U+9533 <> U+9348
-U+9534 <> U+9347
-U+9535 <> U+93D8
-U+9536 <> U+9376
-U+9537 <> U+9354
-U+9538 <> U+9364
-U+9539 <> U+936C
-U+953A <> U+937E
-U+953B <> U+935B
-U+953C <> U+93AA
-U+953D <> U+9360
-U+953E <> U+9370
-U+953F <> U+9384
-U+9540 <> U+934D
-U+9541 <> U+9382
-U+9542 <> U+93E4
-U+9543 <> U+93A1
-U+9544 <> U+9428
-U+9545 <> U+9387
-U+9546 <> U+93CC
-U+9547 <> U+93AE
-U+9548 <> U+939B
-U+9549 <> U+9398
-U+954A <> U+9477
-U+954B <> U+93B2
-U+954C <> U+942B
-U+954D <> U+93B3
-U+954E <> U+93BF
-U+954F <> U+93A6
-U+9550 <> U+93AC
-U+9551 <> U+938A
-U+9552 <> U+93B0
-U+9553 <> U+93B5
-U+9554 <> U+944C
-U+9555 <> U+9394
-U+9556 <> U+93E2
-U+9557 <> U+93DC
-U+9558 <> U+93DD
-U+9559 <> U+93CD
-U+955A <> U+93F0
-U+955B <> U+93DE
-U+955C <> U+93E1
-U+955D <> U+93D1
-U+955E <> U+93C3
-U+955F <> U+93C7
-U+9560 <> U+93D0
-U+9561 <> U+9414
-U+9562 <> U+9481
-U+9563 <> U+9410
-U+9564 <> U+93F7
-U+9565 <> U+9465
-U+9566 <> U+9413
-U+9567 <> U+946D
-U+9568 <> U+9420
-U+9569 <> U+9479
-U+956A <> U+93F9
-U+956B <> U+9419
-U+956C <> U+944A
-U+956D <> U+9433
-U+956E <> U+9436
-U+956F <> U+9432
-U+9570 <> U+942E
-U+9571 <> U+943F
-U+9572 <> U+9454
-U+9573 <> U+9463
-U+9574 <> U+945E
-U+9575 <> U+9471
-U+9576 <> U+9472
-U+957F <> U+9577
-U+95E8 <> U+9580
-U+95E9 <> U+9582
-U+95EA <> U+9583
-U+95EB <> U+9586
-U+95EC <> U+9588
-U+95ED <> U+9589
-U+95EE <> U+554F
-U+95EF <> U+95D6
-U+95F0 <> U+958F
-U+95F1 <> U+95C8
-U+95F2 <> U+9591
-U+95F3 <> U+958E
-U+95F4 <> U+9593
-U+95F5 <> U+9594
-U+95F6 <> U+958C
-U+95F7 <> U+60B6
-U+95F8 <> U+9598
-U+95F9 <> U+9B27
-U+95FA <> U+95A8
-U+95FB <> U+805E
-U+95FC <> U+95E5
-U+95FD <> U+95A9
-U+95FE <> U+95AD
-U+95FF <> U+95D3
-U+9600 <> U+95A5
-U+9601 <> U+95A3
-U+9602 <> U+95A1
-U+9603 <> U+95AB
-U+9604 <> U+9B2E
-U+9605 <> U+95B1
-U+9606 <> U+95AC
-U+9607 <> U+95CD
-U+9608 <> U+95BE
-U+9609 <> U+95B9
-U+960A <> U+95B6
-U+960B <> U+9B29
-U+960C <> U+95BF
-U+960D <> U+95BD
-U+960E <> U+95BB
-U+960F <> U+95BC
-U+9610 <> U+95E1
-U+9611 <> U+95CC
-U+9612 <> U+95C3
-U+9613 <> U+95E0
-U+9614 <> U+95CA
-U+9615 <> U+95CB
-U+9616 <> U+95D4
-U+9617 <> U+95D0
-U+9618 <> U+95D2
-U+9619 <> U+95D5
-U+961A <> U+95DE
-U+961B <> U+95E4
-U+961F <> U+968A
-U+9633 <> U+967D
-U+9634 <> U+9670
-U+9635 <> U+9663
-U+9636 <> U+968E
-U+9645 <> U+969B
-U+9646 <> U+9678
-U+9647 <> U+96B4
-U+9648 <> U+9673
-U+9649 <> U+9658
-U+9655 <> U+965D
-U+9667 <> U+9689
-U+9668 <> U+9695
-U+9669 <> U+96AA
-U+968F <> U+96A8
-U+9690 <> U+96B1
-U+96B6 <> U+96B8
-U+96BD <> U+96CB
-U+96BE <> U+96E3
-U+96CF <> U+96DB
-U+96E0 <> U+8B8E
-U+96F3 <> U+9742
-U+96FE <> U+9727
-U+9701 <> U+973D
-U+9721 <> U+9722
-U+972D <> U+9744
-U+9753 <> U+975A
-U+9759 <> U+975C
-U+9762 <> U+9EB5
-U+9765 <> U+9768
-U+9791 <> U+97C3
-U+9792 <> U+97BD
-U+97AF <> U+97C9
-U+97E6 <> U+97CB
-U+97E7 <> U+97CC
-U+97E8 <> U+97CD
-U+97E9 <> U+97D3
-U+97EA <> U+97D9
-U+97EB <> U+97DE
-U+97EC <> U+97DC
-U+97F5 <> U+97FB
-U+9875 <> U+9801
-U+9876 <> U+9802
-U+9877 <> U+9803
-U+9878 <> U+9807
-U+9879 <> U+9805
-U+987A <> U+9806
-U+987B <> U+9808
-U+987C <> U+980A
-U+987D <> U+9811
-U+987E <> U+9867
-U+987F <> U+9813
-U+9880 <> U+980E
-U+9881 <> U+9812
-U+9882 <> U+980C
-U+9883 <> U+980F
-U+9884 <> U+9810
-U+9885 <> U+9871
-U+9886 <> U+9818
-U+9887 <> U+9817
-U+9888 <> U+9838
-U+9889 <> U+9821
-U+988A <> U+9830
-U+988B <> U+9832
-U+988C <> U+981C
-U+988D <> U+6F41
-U+988E <> U+71B2
-U+988F <> U+9826
-U+9890 <> U+9824
-U+9891 <> U+983B
-U+9892 <> U+982E
-U+9893 <> U+9839
-U+9894 <> U+9837
-U+9895 <> U+9834
-U+9896 <> U+7A4E
-U+9897 <> U+9846
-U+9898 <> U+984C
-U+9899 <> U+9852
-U+989A <> U+984E
-U+989B <> U+9853
-U+989C <> U+984F
-U+989D <> U+984D
-U+989E <> U+9873
-U+989F <> U+9862
-U+98A0 <> U+985B
-U+98A1 <> U+9859
-U+98A2 <> U+9865
-U+98A3 <> U+7E87
-U+98A4 <> U+986B
-U+98A5 <> U+986C
-U+98A6 <> U+9870
-U+98A7 <> U+9874
-U+98CE <> U+98A8
-U+98CF <> U+98BA
-U+98D0 <> U+98AD
-U+98D1 <> U+98AE
-U+98D2 <> U+98AF
-U+98D3 <> U+98B6
-U+98D4 <> U+98B8
-U+98D5 <> U+98BC
-U+98D6 <> U+98BB
-U+98D7 <> U+98C0
-U+98D8 <> U+98C4
-U+98D9 <> U+98C6
-U+98DA <> U+98C8
-U+98DE <> U+98DB
-U+98E8 <> U+9957
-U+990D <> U+995C
-U+9963 <> U+98E0
-U+9964 <> U+98E3
-U+9965 <> U+98E2
-U+9966 <> U+98E5
-U+9967 <> U+9933
-U+9968 <> U+98E9
-U+9969 <> U+993C
-U+996A <> U+98EA
-U+996B <> U+98EB
-U+996C <> U+98ED
-U+996D <> U+98EF
-U+996E <> U+98F2
-U+996F <> U+991E
-U+9970 <> U+98FE
-U+9971 <> U+98FD
-U+9972 <> U+98FC
-U+9973 <> U+98FF
-U+9974 <> U+98F4
-U+9975 <> U+990C
-U+9976 <> U+9952
-U+9977 <> U+9909
-U+9978 <> U+9904
-U+9979 <> U+990E
-U+997A <> U+9903
-U+997B <> U+990F
-U+997C <> U+9905
-U+997D <> U+9911
-U+997E <> U+9916
-U+997F <> U+9913
-U+9980 <> U+9918
-U+9981 <> U+9912
-U+9982 <> U+9915
-U+9983 <> U+991C
-U+9984 <> U+991B
-U+9985 <> U+9921
-U+9986 <> U+9928
-U+9987 <> U+9937
-U+9988 <> U+994B
-U+9989 <> U+9936
-U+998A <> U+993F
-U+998B <> U+995E
-U+998C <> U+9941
-U+998D <> U+9943
-U+998E <> U+993A
-U+998F <> U+993E
-U+9990 <> U+9948
-U+9991 <> U+9949
-U+9992 <> U+9945
-U+9993 <> U+994A
-U+9994 <> U+994C
-U+9995 <> U+9962
-U+9A6C <> U+99AC
-U+9A6D <> U+99AD
-U+9A6E <> U+99B1
-U+9A6F <> U+99B4
-U+9A70 <> U+99B3
-U+9A71 <> U+9A45
-U+9A72 <> U+99B9
-U+9A73 <> U+99C1
-U+9A74 <> U+9A62
-U+9A75 <> U+99D4
-U+9A76 <> U+99DB
-U+9A77 <> U+99DF
-U+9A78 <> U+99D9
-U+9A79 <> U+99D2
-U+9A7A <> U+9A36
-U+9A7B <> U+99D0
-U+9A7C <> U+99DD
-U+9A7D <> U+99D1
-U+9A7E <> U+99D5
-U+9A7F <> U+9A5B
-U+9A80 <> U+99D8
-U+9A81 <> U+9A4D
-U+9A82 <> U+7F75
-U+9A83 <> U+99F0
-U+9A84 <> U+9A55
-U+9A85 <> U+9A4A
-U+9A86 <> U+99F1
-U+9A87 <> U+99ED
-U+9A88 <> U+99E2
-U+9A89 <> U+9A6B
-U+9A8A <> U+9A6A
-U+9A8B <> U+9A01
-U+9A8C <> U+9A57
-U+9A8D <> U+9A02
-U+9A8E <> U+99F8
-U+9A8F <> U+99FF
-U+9A90 <> U+9A0F
-U+9A91 <> U+9A0E
-U+9A92 <> U+9A0D
-U+9A93 <> U+9A05
-U+9A94 <> U+9A0C
-U+9A95 <> U+9A4C
-U+9A96 <> U+9A42
-U+9A97 <> U+9A19
-U+9A98 <> U+9A2D
-U+9A99 <> U+9A24
-U+9A9A <> U+9A37
-U+9A9B <> U+9A16
-U+9A9C <> U+9A41
-U+9A9D <> U+9A2E
-U+9A9E <> U+9A2B
-U+9A9F <> U+9A38
-U+9AA0 <> U+9A43
-U+9AA1 <> U+9A3E
-U+9AA2 <> U+9A44
-U+9AA3 <> U+9A4F
-U+9AA4 <> U+9A5F
-U+9AA5 <> U+9A65
-U+9AA6 <> U+9A66
-U+9AA7 <> U+9A64
-U+9AC5 <> U+9ACF
-U+9ACB <> U+9AD6
-U+9ACC <> U+9AD5
-U+9B13 <> U+9B22
-U+9B36 <> U+9B39
-U+9B47 <> U+9B58
-U+9B49 <> U+9B4E
-U+9C7C <> U+9B5A
-U+9C7D <> U+9B5B
-U+9C7E <> U+9B62
-U+9C7F <> U+9B77
-U+9C80 <> U+9B68
-U+9C81 <> U+9B6F
-U+9C82 <> U+9B74
-U+9C83 <> U+4C3E
-U+9C84 <> U+9B7A
-U+9C85 <> U+9B81
-U+9C86 <> U+9B83
-U+9C88 <> U+9C78
-U+9C89 <> U+9B8B
-U+9C8A <> U+9B93
-U+9C8B <> U+9B92
-U+9C8C <> U+9B8A
-U+9C8D <> U+9B91
-U+9C8E <> U+9C5F
-U+9C8F <> U+9B8D
-U+9C90 <> U+9B90
-U+9C91 <> U+9BAD
-U+9C92 <> U+9B9A
-U+9C93 <> U+9BB3
-U+9C94 <> U+9BAA
-U+9C95 <> U+9B9E
-U+9C96 <> U+9BA6
-U+9C97 <> U+9C02
-U+9C98 <> U+9B9C
-U+9C99 <> U+9C60
-U+9C9A <> U+9C6D
-U+9C9B <> U+9BAB
-U+9C9C <> U+9BAE
-U+9C9D <> U+9BBA
-U+9C9E <> U+9BD7
-U+9C9F <> U+9C58
-U+9CA0 <> U+9BC1
-U+9CA1 <> U+9C7A
-U+9CA2 <> U+9C31
-U+9CA3 <> U+9C39
-U+9CA4 <> U+9BC9
-U+9CA5 <> U+9C23
-U+9CA6 <> U+9C37
-U+9CA7 <> U+9BC0
-U+9CA8 <> U+9BCA
-U+9CA9 <> U+9BC7
-U+9CAA <> U+9BB6
-U+9CAB <> U+9BFD
-U+9CAC <> U+9BD2
-U+9CAD <> U+9BD6
-U+9CAE <> U+9BEA
-U+9CAF <> U+9BD5
-U+9CB0 <> U+9BEB
-U+9CB1 <> U+9BE1
-U+9CB2 <> U+9BE4
-U+9CB3 <> U+9BE7
-U+9CB4 <> U+9BDD
-U+9CB5 <> U+9BE2
-U+9CB7 <> U+9BDB
-U+9CB8 <> U+9BE8
-U+9CB9 <> U+9C3A
-U+9CBA <> U+9BF4
-U+9CBB <> U+9BD4
-U+9CBC <> U+9C5D
-U+9CBD <> U+9C08
-U+9CBE <> U+9C0F
-U+9CBF <> U+9C68
-U+9CC0 <> U+9BF7
-U+9CC1 <> U+9C2E
-U+9CC2 <> U+9C03
-U+9CC3 <> U+9C13
-U+9CC4 <> U+9C77
-U+9CC5 <> U+9C0D
-U+9CC6 <> U+9C12
-U+9CC7 <> U+9C09
-U+9CC8 <> U+9C01
-U+9CC9 <> U+9C42
-U+9CCA <> U+9BFF
-U+9CCB <> U+9C20
-U+9CCC <> U+9C32
-U+9CCD <> U+9C2D
-U+9CCE <> U+9C28
-U+9CCF <> U+9C25
-U+9CD0 <> U+9C29
-U+9CD1 <> U+9C1F
-U+9CD2 <> U+9C1C
-U+9CD3 <> U+9C33
-U+9CD4 <> U+9C3E
-U+9CD5 <> U+9C48
-U+9CD6 <> U+9C49
-U+9CD7 <> U+9C3B
-U+9CD8 <> U+9C35
-U+9CD9 <> U+9C45
-U+9CDA <> U+4C81
-U+9CDB <> U+9C3C
-U+9CDC <> U+9C56
-U+9CDD <> U+9C54
-U+9CDE <> U+9C57
-U+9CDF <> U+9C52
-U+9CE0 <> U+9C6F
-U+9CE1 <> U+9C64
-U+9CE2 <> U+9C67
-U+9CE3 <> U+9C63
-U+9E1F <> U+9CE5
-U+9E20 <> U+9CE9
-U+9E21 <> U+96DE
-U+9E22 <> U+9CF6
-U+9E23 <> U+9CF4
-U+9E24 <> U+9CF2
-U+9E25 <> U+9DD7
-U+9E26 <> U+9D09
-U+9E27 <> U+9DAC
-U+9E28 <> U+9D07
-U+9E29 <> U+9D06
-U+9E2A <> U+9D23
-U+9E2B <> U+9D87
-U+9E2C <> U+9E15
-U+9E2D <> U+9D28
-U+9E2E <> U+9D1E
-U+9E2F <> U+9D26
-U+9E30 <> U+9D12
-U+9E31 <> U+9D1F
-U+9E32 <> U+9D1D
-U+9E33 <> U+9D1B
-U+9E34 <> U+9DFD
-U+9E35 <> U+9D15
-U+9E36 <> U+9DE5
-U+9E37 <> U+9DD9
-U+9E38 <> U+9D2F
-U+9E39 <> U+9D30
-U+9E3A <> U+9D42
-U+9E3B <> U+9D34
-U+9E3C <> U+9D43
-U+9E3D <> U+9D3F
-U+9E3E <> U+9E1E
-U+9E3F <> U+9D3B
-U+9E40 <> U+9D50
-U+9E41 <> U+9D53
-U+9E42 <> U+9E1D
-U+9E43 <> U+9D51
-U+9E44 <> U+9D60
-U+9E45 <> U+9D5D
-U+9E46 <> U+9D52
-U+9E47 <> U+9DF3
-U+9E48 <> U+9D5C
-U+9E49 <> U+9D61
-U+9E4A <> U+9D72
-U+9E4B <> U+9D93
-U+9E4C <> U+9D6A
-U+9E4D <> U+9D7E
-U+9E4E <> U+9D6F
-U+9E4F <> U+9D6C
-U+9E50 <> U+9D6E
-U+9E51 <> U+9D89
-U+9E52 <> U+9D8A
-U+9E53 <> U+9D77
-U+9E54 <> U+9DEB
-U+9E55 <> U+9D98
-U+9E56 <> U+9DA1
-U+9E57 <> U+9D9A
-U+9E58 <> U+9DBB
-U+9E59 <> U+9D96
-U+9E5A <> U+9DBF
-U+9E5B <> U+9DA5
-U+9E5C <> U+9DA9
-U+9E5D <> U+9DCA
-U+9E5E <> U+9DC2
-U+9E5F <> U+9DB2
-U+9E60 <> U+9DB9
-U+9E61 <> U+9DBA
-U+9E62 <> U+9DC1
-U+9E63 <> U+9DBC
-U+9E64 <> U+9DB4
-U+9E65 <> U+9DD6
-U+9E66 <> U+9E1A
-U+9E67 <> U+9DD3
-U+9E68 <> U+9DDA
-U+9E69 <> U+9DEF
-U+9E6A <> U+9DE6
-U+9E6B <> U+9DF2
-U+9E6C <> U+9DF8
-U+9E6D <> U+9DFA
-U+9E6E <> U+4D09
-U+9E6F <> U+9E07
-U+9E70 <> U+9DF9
-U+9E71 <> U+9E0C
-U+9E72 <> U+9E0F
-U+9E73 <> U+9E1B
-U+9E74 <> U+9E18
-U+9E7E <> U+9E7A
-U+9EA6 <> U+9EA5
-U+9EB8 <> U+9EA9
-U+9EC4 <> U+9EC3
-U+9EC9 <> U+9ECC
-U+9EE1 <> U+9EF6
-U+9EE9 <> U+9EF7
-U+9EEA <> U+9EF2
-U+9EFE <> U+9EFD
-U+9F0B <> U+9EFF
-U+9F0D <> U+9F09
-U+9F17 <> U+9780
-U+9F39 <> U+9F34
-U+9F50 <> U+9F4A
-U+9F51 <> U+9F4F
-U+9F7F <> U+9F52
-U+9F80 <> U+9F54
-U+9F81 <> U+9F55
-U+9F82 <> U+9F57
-U+9F83 <> U+9F5F
-U+9F84 <> U+9F61
-U+9F85 <> U+9F59
-U+9F86 <> U+9F60
-U+9F87 <> U+9F5C
-U+9F88 <> U+9F66
-U+9F89 <> U+9F6C
-U+9F8A <> U+9F6A
-U+9F8B <> U+9F72
-U+9F8C <> U+9F77
-U+9F99 <> U+9F8D
-U+9F9A <> U+9F94
-U+9F9B <> U+9F95
-U+9F9F <> U+9F9C
-U+9FCF <> U+4951
-U+9FD3 <> U+9FD2
-U+9FD4 <> U+93B6
-U+9FED <> U+9268
-U+201B2 <> U+5123
-U+201BF <> U+20325
-U+20242 <> U+3493
-U+20257 <> U+203E2
-U+206B3 <> U+2080E
-U+206C5 <> U+527E
-U+206C6 <> U+20786
-U+20BDF <> U+54EF
-U+20BE0 <> U+5645
-U+20CA5 <> U+2114F
-U+20D22 <> U+21114
-U+20D78 <> U+21123
-U+20D7E <> U+35F2
-U+212C0 <> U+214FE
-U+212D7 <> U+2146D
-U+21484 <> U+58C8
-U+21760 <> U+3737
-U+217B1 <> U+3722
-U+21B5C <> U+21B89
-U+21B6C <> U+21BA3
-U+21DB4 <> U+5D7C
-U+222C8 <> U+389D
-U+2261D <> U+228DA
-U+2261E <> U+228ED
-U+22653 <> U+61C0
-U+226EF <> U+398E
-U+22ACA <> U+22DEE
-U+22ADE <> U+22DAB
-U+22AEC <> U+644B
-U+22B26 <> U+22E7F
-U+22B4F <> U+64E3
-U+22F7E <> U+6585
-U+23190 <> U+66E5
-U+23368 <> U+26888
-U+2336F <> U+816A
-U+23370 <> U+8125
-U+23391 <> U+81D7
-U+23424 <> U+6B0D
-U+23476 <> U+23832
-U+235CB <> U+6B13
-U+23613 <> U+237BB
-U+23634 <> U+6AAD
-U+23637 <> U+23755
-U+23B64 <> U+23BF4
-U+23DA9 <> U+6F85
-U+23DAB <> U+23FC9
-U+23E23 <> U+6FC6
-U+23EBC <> U+7059
-U+23EBD <> U+24063
-U+23F77 <> U+7003
-U+241A1 <> U+7193
-U+241C3 <> U+7204
-U+241C4 <> U+718C
-U+24236 <> U+7189
-U+24237 <> U+3DFF
-U+24280 <> U+2448E
-U+242CF <> U+71A1
-U+247A4 <> U+7381
-U+2480B <> U+3E8F
-U+24980 <> U+74D5
-U+24CC4 <> U+24CF8
-U+24DA7 <> U+24E2B
-U+24F6F <> U+3FE7
-U+24F80 <> U+769F
-U+25158 <> U+25303
-U+25174 <> U+4039
-U+251A7 <> U+77A4
-U+251E2 <> U+406A
-U+2541F <> U+7912
-U+2542F <> U+25585
-U+25430 <> U+25565
-U+2543B <> U+7899
-U+259C2 <> U+25A10
-U+25B00 <> U+4259
-U+25B1E <> U+7C4B
-U+25B20 <> U+7BD8
-U+25B49 <> U+25D4A
-U+25B8B <> U+25E20
-U+25B9C <> U+4272
-U+25C54 <> U+25D43
-U+25E65 <> U+25F3D
-U+25E85 <> U+42AD
-U+25E87 <> U+25F56
-U+26208 <> U+25FCA
-U+26209 <> U+7DF7
-U+2620B <> U+7D87
-U+2620C <> U+7D80
-U+2620E <> U+7E5F
-U+2620F <> U+7DCD
-U+26210 <> U+7E3A
-U+26211 <> U+7DF8
-U+26212 <> U+26085
-U+26213 <> U+42FF
-U+26214 <> U+7E0E
-U+26215 <> U+7DF0
-U+26216 <> U+4308
-U+26217 <> U+260C4
-U+26218 <> U+430B
-U+26219 <> U+4330
-U+2621A <> U+7E2C
-U+2621B <> U+7E53
-U+2621C <> U+4316
-U+2621D <> U+7E4F
-U+2621E <> U+431F
-U+2621F <> U+431D
-U+26220 <> U+4325
-U+26221 <> U+7E7B
-U+266E8 <> U+6725
-U+2677C <> U+81A2
-U+267D7 <> U+268CE
-U+26A29 <> U+26ABD
-U+26C34 <> U+4573
-U+2725E <> U+45FF
-U+274AD <> U+27525
-U+27BAA <> U+8A40
-U+27CD5 <> U+27CDF
-U+27E51 <> U+4788
-U+27E53 <> U+27D94
-U+27E55 <> U+477B
-U+27E56 <> U+8CDF
-U+27E57 <> U+8D03
-U+27FC8 <> U+281C1
-U+28031 <> U+28123
-U+28074 <> U+2814D
-U+280BA <> U+2820A
-U+28104 <> U+2820C
-U+2816B <> U+281DE
-U+2816C <> U+8E9D
-U+28257 <> U+8EC9
-U+28405 <> U+8ED7
-U+28406 <> U+282BB
-U+28407 <> U+283E0
-U+28408 <> U+8F04
-U+28409 <> U+283AE
-U+2840A <> U+283E5
-U+28479 <> U+48A8
-U+28930 <> U+2893B
-U+28C3E <> U+93B7
-U+28C3F <> U+91F3
-U+28C40 <> U+2895B
-U+28C41 <> U+9220
-U+28C42 <> U+920B
-U+28C43 <> U+9232
-U+28C44 <> U+922F
-U+28C45 <> U+9241
-U+28C46 <> U+9FAF
-U+28C47 <> U+92B6
-U+28C48 <> U+92C9
-U+28C49 <> U+9344
-U+28C4A <> U+289F1
-U+28C4B <> U+9302
-U+28C4C <> U+93C6
-U+28C4D <> U+93AF
-U+28C4E <> U+936E
-U+28C4F <> U+939D
-U+28C50 <> U+28AD2
-U+28C51 <> U+9404
-U+28C52 <> U+93C9
-U+28C53 <> U+940E
-U+28C54 <> U+940F
-U+28C55 <> U+28B82
-U+28C56 <> U+4969
-U+28DFF <> U+49B3
-U+28E00 <> U+28CD5
-U+28E01 <> U+28CD1
-U+28E02 <> U+958D
-U+28E03 <> U+9590
-U+28E04 <> U+4998
-U+28E05 <> U+28D17
-U+28E06 <> U+28D69
-U+28E07 <> U+28D78
-U+28E09 <> U+28D80
-U+28E0A <> U+28D8F
-U+28E0B <> U+28DB2
-U+28E0C <> U+28DAE
-U+28E0E <> U+28DF2
-U+28E18 <> U+28F4F
-U+28E1F <> U+49E2
-U+293FC <> U+4A8F
-U+293FD <> U+293EA
-U+293FE <> U+293A2
-U+293FF <> U+4A98
-U+29400 <> U+4A97
-U+29595 <> U+294E3
-U+29596 <> U+9843
-U+29597 <> U+4AF4
-U+29665 <> U+98B0
-U+29666 <> U+295C0
-U+29667 <> U+4B1E
-U+29668 <> U+29639
-U+29669 <> U+29600
-U+2966A <> U+98B7
-U+2966B <> U+98BE
-U+2966C <> U+2963A
-U+2966D <> U+2961D
-U+2966E <> U+4B18
-U+2966F <> U+4B1D
-U+29670 <> U+29648
-U+297FF <> U+2969B
-U+29800 <> U+296A5
-U+29801 <> U+296B5
-U+29802 <> U+296C6
-U+29803 <> U+296E9
-U+29805 <> U+297D0
-U+29806 <> U+29726
-U+29807 <> U+4B40
-U+29808 <> U+4B43
-U+29809 <> U+29707
-U+2980A <> U+29735
-U+2980B <> U+29754
-U+2980C <> U+9938
-U+2980E <> U+29784
-U+2980F <> U+297A6
-U+29820 <> U+29834
-U+299E6 <> U+2987A
-U+299E8 <> U+99CE
-U+299E9 <> U+2990A
-U+299EA <> U+4BBE
-U+299EB <> U+99DA
-U+299EC <> U+298A1
-U+299ED <> U+4B7F
-U+299EE <> U+298BE
-U+299EF <> U+9A4B
-U+299F0 <> U+4B9D
-U+299F1 <> U+29949
-U+299F2 <> U+99E7
-U+299F3 <> U+298B8
-U+299F4 <> U+99E9
-U+299F5 <> U+298B4
-U+299F6 <> U+298CF
-U+299FA <> U+99F6
-U+299FC <> U+298FA
-U+299FF <> U+4BA0
-U+29A00 <> U+9A14
-U+29A01 <> U+4B9E
-U+29A03 <> U+9A1D
-U+29A04 <> U+9A2A
-U+29A05 <> U+29938
-U+29A06 <> U+29919
-U+29A07 <> U+4BAB
-U+29A08 <> U+9A1F
-U+29A09 <> U+29932
-U+29A0A <> U+9A1A
-U+29A0B <> U+29944
-U+29A0C <> U+29951
-U+29A0D <> U+29947
-U+29A0E <> U+9FAD
-U+29A0F <> U+4BB3
-U+29A10 <> U+299C6
-U+29B23 <> U+29B59
-U+29B24 <> U+29C00
-U+29BD2 <> U+29BF3
-U+29C92 <> U+29CE4
-U+29F79 <> U+9B65
-U+29F7A <> U+29D69
-U+29F7B <> U+29D79
-U+29F7C <> U+9BF6
-U+29F7D <> U+29DB1
-U+29F7E <> U+9B9F
-U+29F7F <> U+29DB0
-U+29F81 <> U+9BC4
-U+29F82 <> U+4C96
-U+29F83 <> U+9BB8
-U+29F84 <> U+29DF0
-U+29F85 <> U+29E03
-U+29F86 <> U+29E26
-U+29F87 <> U+9BF1
-U+29F88 <> U+4C59
-U+29F8A <> U+4C6C
-U+29F8B <> U+4C70
-U+29F8C <> U+9C47
-U+2A242 <> U+4CB0
-U+2A243 <> U+9CFC
-U+2A244 <> U+29FEA
-U+2A245 <> U+2A026
-U+2A246 <> U+9D32
-U+2A248 <> U+9D1C
-U+2A249 <> U+2A048
-U+2A24A <> U+9DE8
-U+2A24B <> U+2A03E
-U+2A24C <> U+2A056
-U+2A24D <> U+9D5A
-U+2A24E <> U+2A086
-U+2A24F <> U+2A0CF
-U+2A250 <> U+2A0CD
-U+2A251 <> U+9DD4
-U+2A252 <> U+2A115
-U+2A254 <> U+2A106
-U+2A255 <> U+2A1F3
-U+2A388 <> U+4D2C
-U+2A389 <> U+9EB2
-U+2A38A <> U+9EA8
-U+2A38B <> U+4D34
-U+2A38D <> U+2A2FF
-U+2A52D <> U+2A535
-U+2A68F <> U+2A600
-U+2A690 <> U+2A62F
-U+2A79D <> U+51D9
-U+2A84F <> U+55F9
-U+2A8AE <> U+571E
-U+2AA0A <> U+379E
-U+2AA17 <> U+5C69
-U+2AED0 <> U+747D
-U+2AFA2 <> U+774D
-U+2B061 <> U+9D17
-U+2B088 <> U+426C
-U+2B128 <> U+7D7A
-U+2B138 <> U+7E81
-U+2B300 <> U+8940
-U+2B328 <> U+89BC
-U+2B359 <> U+8A11
-U+2B35F <> U+8A51
-U+2B362 <> U+8B4A
-U+2B370 <> U+8AF0
-U+2B372 <> U+8B0F
-U+2B3CB <> U+8E7B
-U+2B404 <> U+8ECF
-U+2B406 <> U+8F63
-U+2B409 <> U+8EE8
-U+2B410 <> U+8F17
-U+2B413 <> U+8F2E
-U+2B4E7 <> U+9207
-U+2B4E9 <> U+93E6
-U+2B50E <> U+940D
-U+2B5B8 <> U+9858
-U+2B5E0 <> U+9926
-U+2B5E6 <> U+9914
-U+2B5E7 <> U+9917
-U+2B5EE <> U+992D
-U+2B5F4 <> U+9958
-U+2B61D <> U+99C3
-U+2B623 <> U+99FB
-U+2B624 <> U+9A03
-U+2B628 <> U+9A20
-U+2B688 <> U+9C6E
-U+2B689 <> U+9B5F
-U+2B692 <> U+9B84
-U+2B694 <> U+9BB0
-U+2B695 <> U+9C24
-U+2B699 <> U+9BC6
-U+2B6AD <> U+9C72
-U+2B6DB <> U+9CF7
-U+2B6DE <> U+9D03
-U+2B6E2 <> U+9E0B
-U+2B6F6 <> U+9D92
-U+2B6F8 <> U+9D97
-U+2C4FC <> U+7A68
-U+2C62D <> U+7D9D
-U+2C925 <> U+8B54
-U+2CBCE <> U+96A4
-U+2CE23 <> U+9DB1
diff --git a/macros/xetex/latex/xecjk/xeCJK.dtx b/macros/xetex/latex/xecjk/xeCJK.dtx
index 360459e541..998b4d5ca1 100644
--- a/macros/xetex/latex/xecjk/xeCJK.dtx
+++ b/macros/xetex/latex/xecjk/xeCJK.dtx
@@ -40,7 +40,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are Leo Liu and Qing Lee.
@@ -106,7 +106,7 @@ Copyright and Licence
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
- This work has the LPPL maintenance status `maintained'.
+ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are Leo Liu and Qing Lee.
@@ -194,7 +194,7 @@ Copyright and Licence
%<*package|config|fntef|listings|xunicode|xunextra>
%<!(config|xunextra)>\NeedsTeXFormat{LaTeX2e}
%<!(config|xunextra)>\RequirePackage{expl3}
-%<+!driver>\GetIdInfo$Id: xeCJK.dtx 165cecc 2020-02-18 20:38:34 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+!driver>\GetIdInfo$Id: xeCJK.dtx b971c22 2020-05-01 21:10:43 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Typesetting CJK scripts with XeLaTeX}
%<config> {Configuration file for xeCJK package}
%<fntef> {xeCJK font effect}
@@ -207,7 +207,7 @@ Copyright and Licence
%<listings>\ProvidesExplPackage{xeCJK-listings}
%<xunicode>\ProvidesExplPackage{xunicode-addon}
%<xunextra>\ProvidesExplFile{xunicode-extra.def}
-%<!driver> {\ExplFileDate}{3.8.2}{\ExplFileDescription}
+%<!driver> {\ExplFileDate}{3.8.3}{\ExplFileDescription}
%</package|config|fntef|listings|xunicode|xunextra>
%<*driver>
\documentclass{ctxdoc}
@@ -284,8 +284,9 @@ Copyright and Licence
% \changes{v3.7.2}{2019/03/23}{同步 \LaTeXiii{} 2019/03/05。}
% \changes{v3.8.0}{2020/02/09}{兼容 \LaTeXe\ 2020/02/02 对 \pkg{NFSS} 的修改。}
% \changes{v3.8.0}{2020/02/09}{清理过时的兼容性补丁代码。}
+% \changes{v3.8.3}{2020/04/07}{删除 \texttt{\_nopar}。}
%
-% \CheckSum{10763}
+% \CheckSum{10799}
% \GetFileId{xeCJK.sty}
%
% \title{\bfseries\pkg{xeCJK} 宏包}
@@ -303,7 +304,7 @@ Copyright and Licence
% \pkg{xeCJK} 是一个 \XeLaTeX 宏包,用于排版中日韩(CJK)文字。主要功能:
% \begin{enumerate}
% \item 分别设置 CJK 和英文字体;
-% \item 自动忽略 CJK 文字间的空格而保留其它空格,允许在非标点汉字和英文
+% \item 自动忽略 CJK 文字间的空格而保留其他空格,允许在非标点汉字和英文
% 字母 (a -- z, A -- Z) 间断行;
% \item 提供多种标点处理方式: 全角式、半角式、开明式、行末半角式和 CCT 式;
% \item 自动调整中英文间空白。
@@ -311,7 +312,7 @@ Copyright and Licence
%
% \pkg{xeCJK} 使用了 \XeTeX 的一些最新特性,需要 \XeTeX{} 0.9995.0 (2009/06/29) 以
% 后的版本。\pkg{xeCJK} 依赖 \LaTeXiii{} 项目的宏包套件
-% \package{l3kernel} 和 \package{l3packages} 。
+% \package{l3kernel} 和 \package{l3packages}。
% \pkg{xeCJK} 还需要通过 \package{fontspec} 宏包来调用系统字体。
% \pkg{xeCJK} 会自动根据需要载入这些宏包。
%
@@ -802,7 +803,7 @@ Copyright and Licence
% \tn{addCJKfontfeatures} * \oarg{block_1, block_2, ...} \Arg{font features}
% \end{syntax}
% 临时增加当前使用的 CJK 字体的选项。第一条命令,仅对当前 CJK 主分区字体有效;
-% 第二条对主分区和其它分区的字体都有效;第三条仅对可选参数中指定的分区有效;
+% 第二条对主分区和其他分区的字体都有效;第三条仅对可选参数中指定的分区有效;
% 第四条对主分区和可选参数中指定的分区有效。例如,使用
% \begin{ctexexam}
% \addCJKfontfeatures{Scale=1.1}
@@ -1353,8 +1354,8 @@ Copyright and Licence
% \begin{function}[added=2016-06-03]{textformat}
% 设置下划线或点的正文的格式。例如:\smallskip
% \begin{Example}[frame=single,numbers=left,gobble=6]
-% \CJKunderline[textformat=\color{red}]{虚室生白,吉祥止止}\\
-% \CJKunderdot[textformat=\bfseries, format=\color{blue}]{虚室生白,吉祥止止}
+% \CJKunderline[textformat=\color{blue}]{虚室生白,吉祥止止}\\
+% \CJKunderdot[textformat=\bfseries, format=\color{red}]{虚室生白,吉祥止止}
% \end{Example}
% \end{function}
%
@@ -1505,7 +1506,7 @@ Copyright and Licence
% 等宽字体的代码对齐等情形。需要注意的是,\tn{xeCJKVerbAddon} 对 \pkg{xeCJK} 的内
% 部进行了比较大的修改,使用它之后,将禁止在 CJK 字符类之间自动换行,这与西文在
% 抄录环境中的情况是一致的。所以不应该单独使用,应该放在分组里限制其作用域,否则
-% 是无效的。当然它可以和其它关于代码抄录的宏包配合使用。例如,可以使用于
+% 是无效的。当然它可以和其他关于代码抄录的宏包配合使用。例如,可以使用于
% \package{fancyvrb} 宏包的 \texttt{formatcom} 选项。此时设置的西文字体应该确实
% 是等宽的以保证对齐。若西文等宽字体发生变动(包括字体大小),则需要在其后面使用
% \tn{xeCJKVerbAddon},重新计算间距的宽度。\tn{xeCJKOffVerbAddon}
@@ -1526,7 +1527,7 @@ Copyright and Licence
% \pkg{xeCJK} 在正文中的一些特殊设置(汉字下加点、在 \env{verbatim} 或
% \env{lstlisting} 环境中分页)可能会影响到 \TeX 的输出例行程序(output routine)
% 中的内容(比如页眉和页脚)。\tn{xeCJKShipoutHook} 用于恢复正文中的普通设置。
-% \pkg{xeCJK} 已经处理了页眉和页脚的情况,其它的就需要根据情况自行调用。
+% \pkg{xeCJK} 已经处理了页眉和页脚的情况,其他的就需要根据情况自行调用。
% 比如若使用 \pkg{eso-pic} 或者 \pkg{atbegshi} 实现文字水印,并且正文中使用了
% 以上所列的特殊形式,就需要在命令 \tn{AtBeginShipout} 的参数的最前面使用
% \tn{xeCJKShipoutHook}。
@@ -1534,7 +1535,7 @@ Copyright and Licence
%
% \section{已知问题和兼容性}
%
-% \XeTeX 在配置文件 \file{unicode-letters.tex} 中将所有 CJK 表意文字的 \tn{catcode}
+% 根据 \pkg{unicode-data} 宏包,\XeTeX 将所有 CJK 表意文字的 \tn{catcode}
% 设置为 $11$。因此汉字可以直接用作控制序列的名字,但是当汉字出现在控制序列后面的
% 时候,要用空格分隔开,否则就会出现“\texttt{! Undefined control sequence.}”的错误。
%
@@ -1565,7 +1566,7 @@ Copyright and Licence
% \let\cprotect\icprotect
% \end{frameverb}
% 来取消 \tn{cprotect} 的外部宏限制。但由于 \tn{cprotect} 的特殊性,应该只在外部
-% 使用它,即不要让它出现在任何宏的参数中。其它 \tn{outer} 宏的情况,可以在它前面
+% 使用它,即不要让它出现在任何宏的参数中。其他 \tn{outer} 宏的情况,可以在它前面
% 加上 \tn{relax} 来回避上面的错误。
%
% \pkg{xeCJK} 依赖 \XeTeX 的 \tn{XeTeXinterchartoks} 机制,与使用相同机制的宏包(例如
@@ -1677,60 +1678,56 @@ Copyright and Licence
% {\@@_msg_new:nn ,\@@_error:n,\@@_error:nx,\@@_warning:nx,\@@_info:nxx}
% 各种信息函数的缩略形式。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_msg_new:nn { \msg_new:nnn { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_msg_new:nnn { \msg_new:nnnn { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_error:n { \msg_error:nn { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_error:nx { \msg_error:nnx { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_warning:n { \msg_warning:nn { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_warning:nx { \msg_warning:nnx { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_warning:nxx { \msg_warning:nnxx { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_warning:nxxx { \msg_warning:nnxxx { xeCJK } }
-\cs_new_protected_nopar:Npn \@@_info:nxx { \msg_info:nnxx { xeCJK } }
+\cs_new_protected:Npn \@@_msg_new:nn { \msg_new:nnn { xeCJK } }
+\cs_new_protected:Npn \@@_msg_new:nnn { \msg_new:nnnn { xeCJK } }
+\cs_new_protected:Npn \@@_error:n { \msg_error:nn { xeCJK } }
+\cs_new_protected:Npn \@@_error:nx { \msg_error:nnx { xeCJK } }
+\cs_new_protected:Npn \@@_warning:n { \msg_warning:nn { xeCJK } }
+\cs_new_protected:Npn \@@_warning:nx { \msg_warning:nnx { xeCJK } }
+\cs_new_protected:Npn \@@_warning:nxx { \msg_warning:nnxx { xeCJK } }
+\cs_new_protected:Npn \@@_warning:nxxx { \msg_warning:nnxxx { xeCJK } }
+\cs_new_protected:Npn \@@_info:nxx { \msg_info:nnxx { xeCJK } }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\xeCJK_allow_break:,\xeCJK_no_break:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_allow_break:
+\cs_new_protected:Npn \xeCJK_allow_break:
{ \tex_penalty:D \c_zero_int }
-\cs_new_protected_nopar:Npn \xeCJK_no_break:
+\cs_new_protected:Npn \xeCJK_no_break:
{ \tex_penalty:D \c_@@_nobreak_penalty_int }
\int_const:Nn \c_@@_nobreak_penalty_int { 10 000 }
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.8.3}{2020/04/07}{依赖 \pkg{ctexhook} 宏包。}
+%
% \begin{macro}
-% {\@@_at_end_preamble:n,\@@_after_preamble:n,\@@_after_end_preamble:n}
-% 在 \tn{document} 前后加上各种钩子。
-% \begin{macrocode}
+% {\@@_at_end_preamble:n,\@@_after_preamble:n,
+% \@@_after_end_preamble:n,\@@_package_hook:nn}
+% 在 \tn{document} 前后和宏包后加上各种钩子,依赖 \pkg{ctexhook}。
+% \begin{macrocode}
+\RequirePackage { ctexhook }
+\AtBeginDocument { \xeCJK@document@hook }
+\ctex_at_end_preamble:n { \xeCJK@document@left@hook }
+\ctex_after_end_preamble:n { \xeCJK@document@right@hook }
+\cs_new_protected:Npn \xeCJK@document@hook
+ { \tl_use:N \g_@@_after_preamble_hook_tl }
+\cs_new_protected:Npn \xeCJK@document@left@hook
+ { \tl_use:N \g_@@_at_end_preamble_hook_tl }
+\cs_new_protected:Npn \xeCJK@document@right@hook
+ { \tl_use:N \g_@@_after_end_preamble_hook_tl }
+\cs_new_protected:Npn \@@_at_end_preamble:n
+ { \tl_gput_right:Nn \g_@@_at_end_preamble_hook_tl }
+\cs_new_protected:Npn \@@_after_preamble:n
+ { \tl_gput_right:Nn \g_@@_after_preamble_hook_tl }
+\cs_new_protected:Npn \@@_after_end_preamble:n
+ { \tl_gput_right:Nn \g_@@_after_end_preamble_hook_tl }
+\cs_new_protected:Npn \@@_package_hook:nn
+ { \ctex_at_end_package:nn }
\tl_new:N \g_@@_at_end_preamble_hook_tl
\tl_new:N \g_@@_after_preamble_hook_tl
\tl_new:N \g_@@_after_end_preamble_hook_tl
-\cs_new_protected:Npn \@@_at_end_preamble:n #1
- { \tl_gput_right:Nn \g_@@_at_end_preamble_hook_tl {#1} }
-\cs_new_protected:Npn \@@_after_preamble:n #1
- { \tl_gput_right:Nn \g_@@_after_preamble_hook_tl {#1} }
-\cs_new_protected:Npn \@@_after_end_preamble:n #1
- { \tl_gput_right:Nn \g_@@_after_end_preamble_hook_tl {#1} }
-\xeCJK_if_package_loaded:nTF { etoolbox }
- {
- \AtEndPreamble { \g_@@_at_end_preamble_hook_tl }
- \AfterPreamble { \g_@@_after_preamble_hook_tl }
- \AfterEndPreamble { \g_@@_after_end_preamble_hook_tl }
- }
- {
- \AtBeginDocument { \g_@@_after_preamble_hook_tl }
- \cs_new_protected_nopar:Npn \xeCJK@document@left@hook
- { \group_end: \g_@@_at_end_preamble_hook_tl \group_begin: }
- \cs_new_protected_nopar:Npn \xeCJK@document@right@hook
- { \scan_stop: \g_@@_after_end_preamble_hook_tl \tex_ignorespaces:D }
- \cs_gset_nopar:Npx \document
- {
- \xeCJK@document@left@hook
- \exp_not:o { \document }
- \xeCJK@document@right@hook
- }
- }
% \end{macrocode}
% \end{macro}
%
@@ -1745,7 +1742,7 @@ Copyright and Licence
% \begin{macrocode}
\@@_after_preamble:n
{ \tl_put_right:Nn \@begindvi { \xeCJK@first@begindvi } }
-\cs_new_protected_nopar:Npn \xeCJK@first@begindvi
+\cs_new_protected:Npn \xeCJK@first@begindvi
{
\xeCJKShipoutHook
\cs_if_exist:NTF \@begindvi
@@ -1780,7 +1777,7 @@ Copyright and Licence
% \changes{v3.2.4}{2013/07/02}{去掉外层分组括号时,移除空格,避免死循环。}
% 去掉 |#1| 外层的分组括号。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_tl_remove_outer_braces:N #1
+\cs_new_protected:Npn \xeCJK_tl_remove_outer_braces:N #1
{ \tl_set:Nx #1 { \exp_args:No \xeCJK_tl_remove_outer_braces:n {#1} } }
\cs_new:Npn \xeCJK_tl_remove_outer_braces:n #1
{
@@ -1827,7 +1824,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_font_gset_to_current:N}
% |#1| 是控制序列的名字,令它等于当前字体命令。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_font_gset_to_current:N #1
+\cs_new_protected:Npn \xeCJK_font_gset_to_current:N #1
{ \exp_after:wN \cs_gset_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D }
\cs_generate_variant:Nn \xeCJK_font_gset_to_current:N { c }
% \end{macrocode}
@@ -1870,13 +1867,13 @@ Copyright and Licence
{
\int_compare:nNnTF \g_@@_space_factor_int < { 2000 }
{
- \_@@_space_skip_scale:nnn
+ \@@_space_skip_scale:nnn
{ \tex_fontdimen:D 2 ~ \tex_font:D }
}
{
\skip_if_eq:nnTF \tex_xspaceskip:D \c_zero_skip
{
- \_@@_space_skip_scale:nnn
+ \@@_space_skip_scale:nnn
{
\tex_fontdimen:D 2 ~ \tex_font:D +
\tex_fontdimen:D 7 ~ \tex_font:D
@@ -1889,11 +1886,11 @@ Copyright and Licence
}
{
\int_compare:nNnTF \g_@@_space_factor_int < { 2000 }
- { \_@@_space_skip_scale:nnn { \tex_spaceskip:D } }
+ { \@@_space_skip_scale:nnn { \tex_spaceskip:D } }
{
\skip_if_eq:nnTF \tex_xspaceskip:D \c_zero_skip
{
- \_@@_space_skip_scale:nnn
+ \@@_space_skip_scale:nnn
{
\tex_spaceskip:D +
\tex_fontdimen:D 7 ~ \tex_font:D
@@ -1906,7 +1903,7 @@ Copyright and Licence
}
}
}
-\cs_new_nopar:Npn \_@@_space_skip_scale:nnn #1#2#3
+\cs_new:Npn \@@_space_skip_scale:nnn #1#2#3
{
\dim_eval:n {#1}
plus \fp_eval:n { \g_@@_space_factor_int / 1000 } #2
@@ -1914,15 +1911,26 @@ Copyright and Licence
\int_div_truncate:nn
{ 1000 * \int_value:w #3 } { \g_@@_space_factor_int } sp
}
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}[int]{\xeCJK_reset_space_factor:}
+% \begin{variable}[int]{\g_@@_space_factor_int}
+% 在 \tn{XeTeXinterchartoks} 里,\tn{spacefactor} 已经被重置为 $1000$。
+% 我们需要在 Default 类里保存 \tn{spacefactor} 用于计算空格宽度。
+% \begin{macrocode}
\int_new:N \g_@@_space_factor_int
-\int_gset:Nn \g_@@_space_factor_int { 1000 }
+\cs_new_protected:Npn \xeCJK_reset_space_factor:
+ { \int_gset:Nn \g_@@_space_factor_int { 1000 } }
+\xeCJK_reset_space_factor:
% \end{macrocode}
% \end{variable}
+% \end{macro}
%
% \begin{macro}[int]{\xeCJK_glue_to_skip:nN}
% 取得一个 |glue| 的长度,包括伸展和收缩部分。如果参数不是 |glue|,则取其宽度。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_glue_to_skip:nN #1#2
+\cs_new_protected:Npn \xeCJK_glue_to_skip:nN #1#2
{
\group_begin:
\hbox_set:Nw \l_@@_tmp_box #1 \scan_stop:
@@ -1989,7 +1997,7 @@ Copyright and Licence
\group_align_safe_begin:
\peek_after:Nw \@@_peek_catcode_ignore_spaces_branches:w
}
-\cs_new_protected_nopar:Npn \@@_peek_catcode_ignore_spaces_branches:w
+\cs_new_protected:Npn \@@_peek_catcode_ignore_spaces_branches:w
{
\if_meaning:w \l_peek_token \c_space_token
\bool_set_true:N \l_@@_peek_ignore_spaces_bool
@@ -2020,7 +2028,7 @@ Copyright and Licence
% 用于取得记号 |#1| 所在的 \XeTeX 字符类。|#1| 应为 \tn{catcode} 为 |11| 或 |12|
% 的显性或隐性记号。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_token_value_class:N #1
+\cs_new:Npn \xeCJK_token_value_class:N #1
{ \tex_XeTeXcharclass:D \xeCJK_token_value_charcode:N #1 }
% \end{macrocode}
% \end{macro}
@@ -2038,20 +2046,20 @@ Copyright and Licence
% 这一 Bug 在 TeX Live 2015 的 \texttt{0.99992} 版中得到修复^^A
% \footnote{参见\url{http://tug.org/pipermail/xetex/2015-May/025941.html}}。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_token_value_charcode:N #1
+\cs_new:Npn \xeCJK_token_value_charcode:N #1
{ \exp_after:wN \@@_get_charcode:w \token_to_meaning:N #1 \q_stop }
\group_begin:
\cs_set:Npn \@@_tmp:w #1 ~ #2 ~ #3#4#5 \q_stop
{
\tl_if_empty:nTF { #4#5 }
{
- \cs_new_nopar:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3 \q_stop
+ \cs_new:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3 \q_stop
{ \int_eval:n { `##3 } }
}
{
\tl_if_empty:nTF {#5}
{
- \cs_new_nopar:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop
+ \cs_new:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop
{
\int_eval:n
{
@@ -2062,7 +2070,7 @@ Copyright and Licence
}
}
{
- \cs_new_nopar:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop
+ \cs_new:Npn \@@_get_charcode:w ##1 ~ ##2 ~ ##3##4 \q_stop
{ \int_eval:n { \tl_if_empty:nTF { ##4 } { `##3 } { "20000 } } }
}
}
@@ -2082,7 +2090,7 @@ Copyright and Licence
\cs_end:
\prg_return_true: \else: \prg_return_false: \fi:
}
-\cs_new_nopar:Npn \@@_CJK_class_tl:n #1
+\cs_new:Npn \@@_CJK_class_tl:n #1
{ c_@@_CJK_class_ \int_eval:n {#1} _tl }
% \end{macrocode}
% \end{macro}
@@ -2102,7 +2110,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_make_boundary:}
% 利用 \cs{scan_stop:} 结束 CJK 分组,用于恢复字体等。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_make_boundary:
+\cs_new_protected:Npn \xeCJK_make_boundary:
{ \bool_if:NT \l_@@_CJK_group_bool { \scan_stop: } }
% \end{macrocode}
% \end{macro}
@@ -2149,7 +2157,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_new_class:n}
% 新建一个字符类别。|#1| 是自定义名称。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_new_class:n #1
+\cs_new_protected:Npn \xeCJK_new_class:n #1
{
\int_if_exist:cTF { \@@_class_csname:n {#1} }
{ \@@_error:nx { class-already-defined } {#1} }
@@ -2170,7 +2178,7 @@ Copyright and Licence
% {使用 \cs{xeCJK_save_class:nn} 保存 \XeTeX 预定义的字符类别。}
% 保存 \XeTeX 预定义的字符类别。|#1| 是自定义名称,|#2| 是编号。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_save_class:nn #1#2
+\cs_new_protected:Npn \xeCJK_save_class:nn #1#2
{
\int_if_exist:cTF { \@@_class_csname:n {#1} }
{ \@@_error:nx { class-already-defined } {#1} }
@@ -2186,7 +2194,7 @@ Copyright and Licence
% \begin{macro}{\@@_class_csname:n}
% 字符类名称对应的控制序列名字。
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_class_csname:n #1 { c_@@_#1_class_int }
+\cs_new:Npn \@@_class_csname:n #1 { c_@@_#1_class_int }
\cs_new_eq:cN { \@@_class_csname:n { Others } } \l_@@_tmp_int
\@@_msg_new:nn { class-already-defined }
{
@@ -2453,6 +2461,8 @@ Copyright and Licence
% \changes{v3.4.1}{2016/08/18}{补充 Unicode 9.0.0 的西夏文。}
% \changes{v3.5.0}{2017/07/22}{补充 Ext-F。}
% \changes{v3.7.3}{2019/04/15}{补充日文假名扩展。}
+% \changes{v3.8.3}{2020/03/15}{同步 Unicode 13.0.0。}
+% \changes{v3.8.3}{2020/04/09}{补充 \texttt{U+02EA} 和 \texttt{U+02EB}。}
%
% \begin{variable}{\c_@@_CJK_chars_clist}
% CJK 字符类,包括文字和标点符号。
@@ -2461,6 +2471,10 @@ Copyright and Licence
{
% \end{macrocode}
% \begin{itemize}[nosep,leftmargin=0pt]
+% \item 闽南语、客家话阴去和阳去声调标记
+% \begin{macrocode}
+ "02EA -> "02EB ,
+% \end{macrocode}
% \item CJK Radicals Supplement (中日韩部首补充)
% \begin{macrocode}
"2E80 -> "2EFF ,
@@ -2569,6 +2583,14 @@ Copyright and Licence
% \begin{macrocode}
"18800 -> "18AFF ,
% \end{macrocode}
+% \item Khitan Small Script (契丹小字)
+% \begin{macrocode}
+ "18B00 -> "18CFF ,
+% \end{macrocode}
+% \item Tangut Supplement (西夏文增补)
+% \begin{macrocode}
+ "18D00 -> "18D8F ,
+% \end{macrocode}
% \item Kana Supplement (日文假名增补)
% \begin{macrocode}
"1B000 -> "1B0FF ,
@@ -2607,7 +2629,11 @@ Copyright and Licence
% \end{macrocode}
% \item CJK Compatibility Ideographs Supplement (中日韩兼容表意文字增补)
% \begin{macrocode}
- "2F800 -> "2FA1F
+ "2F800 -> "2FA1F ,
+% \end{macrocode}
+% \item CJK Unified Ideographs Extension-G (中日韩统一表意文字扩展 G)
+% \begin{macrocode}
+ "30000 -> "3134F
% \end{macrocode}
% \end{itemize}
% \begin{macrocode}
@@ -2687,7 +2713,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_class_num:n}
% |#1| 为字符类别名称,用于取得字符类别对应的编号。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_class_num:n #1
+\cs_new:Npn \xeCJK_class_num:n #1
{ \use:c { \@@_class_csname:n {#1} } }
% \end{macrocode}
% \end{macro}
@@ -2707,12 +2733,12 @@ Copyright and Licence
% 用于设置字符所属的类别,|#1| 为类别名称,|#2| 为字符的 |Unicode|,相邻字符用
% 半角逗号隔开,支持类似 |"1100 -> "11FF| 起止范围的使用方式。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_declare_char_class:nn #1#2
+\cs_new_protected:Npn \xeCJK_declare_char_class:nn #1#2
{
\clist_set:Nx \l_@@_tmp_clist {#2}
\xeCJK_declare_char_class:nN {#1} \l_@@_tmp_clist
}
-\cs_new_protected_nopar:Npn \xeCJK_declare_char_class:nN #1#2
+\cs_new_protected:Npn \xeCJK_declare_char_class:nN #1#2
{
\clist_gconcat:ccN
{ g_@@_#1_range_clist } { g_@@_#1_range_clist } #2
@@ -2735,7 +2761,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_check_num_range:nnNN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_check_num_range:nnNN #1#2#3#4
+\cs_new_protected:Npn \@@_check_num_range:nnNN #1#2#3#4
{
\bool_lazy_or:nnTF
{ \xeCJK_if_blank_x_p:n {#1} }
@@ -2772,7 +2798,7 @@ Copyright and Licence
% \changes{v3.1.1}{2012/12/05}{在文档中设置字符类别时不重复设置 \tn{catcode}。}
% 设置字符类别,|#1| 和 |#2| 为字符类别起止的 |Unicode|,|#3| 为类别名称对应编号。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_char_class:nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_set_char_class:nnn #1#2#3
{
\@@_check_num_range:nnNN {#1} {#2} \l_@@_begin_int \l_@@_end_int
\int_set:Nn \l_@@_tmp_int {#3}
@@ -2790,7 +2816,7 @@ Copyright and Licence
% 将字符类 |#1| 中的字符全部设置成字符类 |#2|。只适用于 |#1| 的字符类范围为离散的
% 逗号列表的情况。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_char_class_eq:nn #1#2
+\cs_new_protected:Npn \@@_set_char_class_eq:nn #1#2
{
\int_set:Nn \l_@@_tmp_int { \xeCJK_class_num:n {#2} }
\clist_map_inline:cn { c_@@_#1_chars_clist }
@@ -2854,7 +2880,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_inter_class_toks:nnn}
% 在相邻类别之间插入内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_inter_class_toks:nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_inter_class_toks:nnn #1#2#3
{
\tex_XeTeXinterchartoks:D \xeCJK_class_num:n {#1} ~
\xeCJK_class_num:n {#2} = {#3}
@@ -2866,7 +2892,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_get_inter_class_toks:nn}
% 取出相邻类别之间的内容。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_get_inter_class_toks:nn #1#2
+\cs_new:Npn \xeCJK_get_inter_class_toks:nn #1#2
{
\tex_the:D \tex_XeTeXinterchartoks:D \xeCJK_class_num:n {#1} ~
\xeCJK_class_num:n {#2}
@@ -2886,8 +2912,10 @@ Copyright and Licence
% \bye
% \end{verbatim}
% 如果把上述例子中的分组 \tn{begingroup} 和 \tn{endgroup} 去掉,则结果正常,甚为怪异。
+% 此处 \XeTeX 的 bug 已经在 0.999992 版中修复^^A
+% \footnote{\url{http://tug.org/svn/texlive?view=revision&revision=53880}}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_clear_inter_class_toks:nn #1#2
+\cs_new_protected:Npn \xeCJK_clear_inter_class_toks:nn #1#2
{ \xeCJK_inter_class_toks:nnn {#1} {#2} { \prg_do_nothing: } }
% \end{macrocode}
% \end{macro}
@@ -2895,7 +2923,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_pre_inter_class_toks:nnn}
% 在相邻类别之间已有的内容前增加内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_pre_inter_class_toks:nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_pre_inter_class_toks:nnn #1#2#3
{
\xeCJK_inter_class_toks:nnx {#1} {#2}
{ \exp_not:n {#3} \xeCJK_get_inter_class_toks:nn {#1} {#2} }
@@ -2907,7 +2935,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_app_inter_class_toks:nnn}
% 在相邻类别之间已有的内容后追加内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_app_inter_class_toks:nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_app_inter_class_toks:nnn #1#2#3
{
\xeCJK_inter_class_toks:nnx {#1} {#2}
{ \xeCJK_get_inter_class_toks:nn {#1} {#2} \exp_not:n {#3} }
@@ -2919,7 +2947,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_copy_inter_class_toks:nnnn}
% 将 |#3| 和 |#4| 之间的内容复制到 |#1| 和 |#2| 之间。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_copy_inter_class_toks:nnnn #1#2#3#4
+\cs_new_protected:Npn \xeCJK_copy_inter_class_toks:nnnn #1#2#3#4
{
\tl_set:Nx \l_@@_tmp_tl
{ \xeCJK_get_inter_class_toks:nn {#3} {#4} }
@@ -2938,7 +2966,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_replace_inter_class_toks:nnnn}
% 将 |#1| 和 |#2| 之间出现的 |#3| 用 |#4| 替换。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_replace_inter_class_toks:nnnn #1#2#3#4
+\cs_new_protected:Npn \xeCJK_replace_inter_class_toks:nnnn #1#2#3#4
{
\tl_set:Nx \l_@@_tmp_tl
{ \xeCJK_get_inter_class_toks:nn {#1} {#2} }
@@ -2956,11 +2984,11 @@ Copyright and Licence
% \changes{v3.4.2}{2016/10/19}{提高效率,避免重复循环。}
% 清除边界与 CJK 文字、全角左右标点之间的内容。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_clear_Boundary_and_CJK_toks:
+\cs_new_protected:Npn \xeCJK_clear_Boundary_and_CJK_toks:
{ }
-\cs_new_protected_nopar:Npn \@@_update_clear_toks:n #1
+\cs_new_protected:Npn \@@_update_clear_toks:n #1
{
- \cs_gset_protected_nopar:Npx \xeCJK_clear_Boundary_and_CJK_toks:
+ \cs_gset_protected:Npx \xeCJK_clear_Boundary_and_CJK_toks:
{
\exp_not:o { \xeCJK_clear_Boundary_and_CJK_toks: }
\tex_XeTeXinterchartoks:D
@@ -2981,7 +3009,7 @@ Copyright and Licence
\seq_gset_from_clist:Nn \g_@@_non_CJK_class_seq
{ Default , HalfLeft , HalfRight , NormalSpace , Boundary }
\seq_new:N \g_@@_CJK_class_seq
-\cs_new_protected_nopar:Npn \@@_save_CJK_class:n #1
+\cs_new_protected:Npn \@@_save_CJK_class:n #1
{
\seq_gput_right:Nn \g_@@_CJK_class_seq {#1}
\tl_const:cn
@@ -3100,11 +3128,11 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_class_group_begin:,\xeCJK_class_group_end:}
% 在 CJK 类开始时,设置 \tn{XeTeXdashbreakstate} 为零,避免破折号之间的折行。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_class_group_begin:
+\cs_new_protected:Npn \xeCJK_class_group_begin:
{
\c_group_begin_token
\bool_set_true:N \l_@@_CJK_group_bool
- \int_gset:Nn \g_@@_space_factor_int { 1000 }
+ \xeCJK_reset_space_factor:
\int_zero:N \tex_XeTeXdashbreakstate:D
}
\bool_new:N \l_@@_CJK_group_bool
@@ -3175,15 +3203,15 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_Boundary_and_Default:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_Boundary_and_Default:
+\cs_new_protected:Npn \xeCJK_Boundary_and_Default:
{ \xeCJK_check_for_ecglue: }
-\cs_new_protected_nopar:Npn \@@_check_for_xecglue:
+\cs_new_protected:Npn \@@_check_for_xecglue:
{
\int_compare:nNnTF \tex_lastnodetype:D = { 11 }
{ \@@_replace_space: }
{ \@@_check_for_ecglue: }
}
-\cs_new_protected_nopar:Npn \@@_check_for_ecglue:
+\cs_new_protected:Npn \@@_check_for_ecglue:
{
\xeCJK_if_last_node:nTF { CJK }
{ \use_i:nn }
@@ -3204,7 +3232,7 @@ Copyright and Licence
% 将空格替换为 \tn{CJKecglue}。注意由 \tn{leaders} 等产生的 glue,并不能正确地还回去。
% 好在 \LaTeXe{} 中常用的 \tn{hrulefill} 和 \tn{dotfill} 定义末尾都有 |\kern\z@| 保护。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_replace_space:
+\cs_new_protected:Npn \@@_replace_space:
{
\skip_set_eq:NN \l_@@_last_skip \tex_lastskip:D
\tex_unskip:D
@@ -3259,15 +3287,15 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_Boundary_and_NormalSp:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_Boundary_and_NormalSp:
+\cs_new_protected:Npn \xeCJK_Boundary_and_NormalSp:
{ \xeCJK_check_for_ecglue_normalsp: }
-\cs_new_protected_nopar:Npn \@@_check_for_xecglue_normalsp:
+\cs_new_protected:Npn \@@_check_for_xecglue_normalsp:
{
\int_compare:nNnTF \tex_lastnodetype:D = { 11 }
{ \@@_replace_space: }
{ \@@_check_for_ecglue_normalsp: }
}
-\cs_new_protected_nopar:Npn \@@_check_for_ecglue_normalsp:
+\cs_new_protected:Npn \@@_check_for_ecglue_normalsp:
{
\xeCJK_if_last_node:nT { CJK-space }
{ \xeCJK_remove_node: \xeCJK_space_or_xecglue: }
@@ -3309,7 +3337,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_check_for_glue:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_for_glue:
+\cs_new_protected:Npn \xeCJK_check_for_glue:
{
\int_compare:nNnTF \tex_lastnodetype:D = { 12 }
{ \@@_check_for_glue_auxi: }
@@ -3319,7 +3347,7 @@ Copyright and Licence
{ \@@_check_for_glue_auxii: }
}
}
-\cs_new_protected_nopar:Npn \@@_check_for_glue_auxi:
+\cs_new_protected:Npn \@@_check_for_glue_auxi:
{
\dim_case:nn { \tex_lastkern:D }
{
@@ -3333,13 +3361,13 @@ Copyright and Licence
{ \xeCJK_remove_node: \CJKecglue }
}
}
-\cs_new_protected_nopar:Npn \@@_check_for_glue_auxii:
+\cs_new_protected:Npn \@@_check_for_glue_auxii:
{
\xeCJK_if_last_punct:TF
{ \@@_check_for_glue_auxiii: }
{ \xeCJK_check_for_xglue: }
}
-\cs_new_protected_nopar:Npn \@@_check_for_glue_auxiii:
+\cs_new_protected:Npn \@@_check_for_glue_auxiii:
{
\bool_if:NT \l_@@_last_penalty_bool
{ \tex_penalty:D \l_@@_last_penalty_int }
@@ -3347,7 +3375,7 @@ Copyright and Licence
\tl_if_eq:NNF \l_@@_aligni_tl \c_@@_left_tl { \CJKglue }
}
\cs_new_eq:NN \xeCJK_check_for_xglue: \prg_do_nothing:
-\cs_new_protected_nopar:Npn \@@_check_for_xglue:
+\cs_new_protected:Npn \@@_check_for_xglue:
{
\int_compare:nNnT \tex_lastnodetype:D = { 11 }
{
@@ -3362,7 +3390,7 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_check_for_xglue_aux:
+\cs_new_protected:Npn \@@_check_for_xglue_aux:
{
\skip_if_eq:nnTF
{ \l_@@_last_skip }
@@ -3382,7 +3410,7 @@ Copyright and Licence
}
{ \skip_horizontal:N \l_@@_last_skip }
}
-\cs_new_protected_nopar:Npn \@@_ccglue_or_space:
+\cs_new_protected:Npn \@@_ccglue_or_space:
{ \CJKglue }
% \end{macrocode}
% \end{macro}
@@ -3403,7 +3431,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_declare_node:n,\xeCJK_make_node:n}
% 用于判断插入的各种 |kern|。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_declare_node:n #1
+\cs_new_protected:Npn \xeCJK_declare_node:n #1
{
\int_gincr:N \g_@@_node_int
\dim_if_exist:cTF { c_@@_#1_node_dim }
@@ -3412,16 +3440,16 @@ Copyright and Licence
}
\int_new:N \g_@@_node_int
\int_gset:Nn \g_@@_node_int { 10 }
-\cs_new_protected_nopar:Npn \xeCJK_make_node:n #1
+\cs_new_protected:Npn \xeCJK_make_node:n #1
{ \exp_args:Nc \@@_make_node:N { c_@@_#1_node_dim } }
-\cs_new_nopar:Npn \@@_node:n #1
+\cs_new:Npn \@@_node:n #1
{ \use:c { c_@@_#1_node_dim } }
-\cs_new_protected_nopar:Npn \@@_make_node:N #1
+\cs_new_protected:Npn \@@_make_node:N #1
{
\tex_kern:D - #1
\tex_kern:D #1
}
-\cs_new_protected_nopar:Npn \xeCJK_remove_node:
+\cs_new_protected:Npn \xeCJK_remove_node:
{ \tex_unkern:D \tex_unkern:D }
\xeCJK_declare_node:n { CJK }
\xeCJK_declare_node:n { CJK-space }
@@ -3439,7 +3467,7 @@ Copyright and Licence
{
CJKglue .code:n =
{
- \cs_set_protected_nopar:Npn \CJKglue {#1}
+ \cs_set_protected:Npn \CJKglue {#1}
\xeCJK_glue_to_skip:nN {#1} \l_@@_ccglue_skip
}
}
@@ -3456,7 +3484,7 @@ Copyright and Licence
{
CJKecglue .code:n =
{
- \cs_set_protected_nopar:Npn \CJKecglue {#1}
+ \cs_set_protected:Npn \CJKecglue {#1}
\xeCJK_glue_to_skip:nN {#1} \l_@@_ecglue_skip
} ,
xCJKecglue .choice: ,
@@ -3483,7 +3511,7 @@ Copyright and Licence
xCJKecglue / unknown .code:n =
{
\bool_set_true:N \l_@@_xecglue_bool
- \cs_set_protected_nopar:Npn \CJKecglue {#1}
+ \cs_set_protected:Npn \CJKecglue {#1}
\xeCJK_glue_to_skip:nN {#1} \l_@@_ecglue_skip
\cs_set_eq:NN \xeCJK_space_or_xecglue: \CJKecglue
\cs_set_eq:NN \xeCJK_check_for_xglue: \@@_check_for_xglue:
@@ -3512,13 +3540,13 @@ Copyright and Licence
CJKspace / true .code:n =
{
\bool_set_true:N \l_@@_reserve_space_bool
- \cs_set_protected_nopar:Npn \@@_ccglue_or_space:
+ \cs_set_protected:Npn \@@_ccglue_or_space:
{ \xeCJK_space_glue: }
} ,
CJKspace / false .code:n =
{
\bool_set_false:N \l_@@_reserve_space_bool
- \cs_set_protected_nopar:Npn \@@_ccglue_or_space:
+ \cs_set_protected:Npn \@@_ccglue_or_space:
{ \CJKglue }
} ,
CJKspace .default:n = { true } ,
@@ -3540,7 +3568,7 @@ Copyright and Licence
% 这样就可能出现问题\footnote{参见 \url{http://bbs.ctex.org/forum.php?mod=viewthread&tid=71563}。}。
% 原来是都在未定义控制序列前都加上 \cs{exp_not:N},现在是采用分组结束后手工恢复的方式。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_Boundary:w
+\cs_new_protected:Npn \xeCJK_CJK_and_Boundary:w
{
\xeCJK_peek_catcode_ignore_spaces:NTF \c_math_toggle_token
{
@@ -3563,7 +3591,7 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_boundary_reserve_space:
+\cs_new_protected:Npn \@@_boundary_reserve_space:
{
\@@_boundary_group_end:n { CJK-space }
\xeCJK_space_or_xecglue:
@@ -3574,7 +3602,7 @@ Copyright and Licence
\token_if_eq_meaning:NNTF #1 \scan_stop:
{#1} { \cs_set_eq:NN #1 \scan_stop: #1 }
}
-\cs_new_protected_nopar:Npn \@@_boundary_group_end:n #1
+\cs_new_protected:Npn \@@_boundary_group_end:n #1
{
\group_align_safe_end:
\xeCJK_class_group_end:
@@ -3585,7 +3613,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_ignore_spaces:w}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ignore_spaces:w
+\cs_new_protected:Npn \xeCJK_ignore_spaces:w
{
\xeCJK_peek_catcode_ignore_spaces:NTF \c_math_toggle_token
{
@@ -3609,7 +3637,7 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_reserve_space_aux:
+\cs_new_protected:Npn \@@_reserve_space_aux:
{
\group_align_safe_end:
\xeCJK_space_or_xecglue:
@@ -3625,7 +3653,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_CJK_and_CJK:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_CJK:N
+\cs_new_protected:Npn \xeCJK_CJK_and_CJK:N
{ \CJKglue \CJKsymbol }
% \end{macrocode}
% \end{macro}
@@ -3667,7 +3695,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_FullLeft_and_Boundary:}
% \hypertarget{fl-fr-bound}{}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_Boundary:
+\cs_new_protected:Npn \xeCJK_FullLeft_and_Boundary:
{
\@@_punct_if_middle:NTF \g_@@_last_punct_tl
{
@@ -3689,7 +3717,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullRight_and_Boundary:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_Boundary:
+\cs_new_protected:Npn \xeCJK_FullRight_and_Boundary:
{
\@@_punct_rule:NN \c_@@_right_tl \g_@@_last_punct_tl
\xeCJK_class_group_end:
@@ -3703,7 +3731,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_punct_node:N}
% 保存标点的当前边界宽度和字符码,通过插入 \tn{kern} 实现。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_node:N #1
+\cs_new_protected:Npn \xeCJK_punct_node:N #1
{
\@@_punct_bound_unitization:NN #1 \l_@@_tmp_dim
\@@_make_node:N \l_@@_tmp_dim
@@ -3717,7 +3745,7 @@ Copyright and Licence
% 我们不想出现过大的 \tn{kern},因此当边界大于 \SI{1}{pt} 时,以 \cs{c_max_dim} 为标准
% 对其进行“单位化”。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_bound_unitization:NN #1#2
+\cs_new_protected:Npn \@@_punct_bound_unitization:NN #1#2
{
\dim_set:Nn #2
{
@@ -3734,12 +3762,12 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_punct_bound_kern:N}
% \begin{macro}{\@@_punct_bound_kern:NN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_bound_kern:N #1
+\cs_new_protected:Npn \xeCJK_punct_bound_kern:N #1
{
\exp_after:wN \@@_punct_bound_kern:NN
\g_@@_last_punct_tl #1
}
-\cs_new_protected_nopar:Npn \@@_punct_bound_kern:NN #1#2
+\cs_new_protected:Npn \@@_punct_bound_kern:NN #1#2
{
\xeCJK_get_punct_bounds:NN \l_@@_aligni_tl #1
\xeCJK_get_punct_kerning:NN #1 #2
@@ -3764,7 +3792,7 @@ Copyright and Licence
% \begin{macro}{\@@_punct_bound_kern_ratio:NN}
% 当标点前后的字体情况不一致时,按一定的比例进行压缩。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_bound_kern_ratio:NN #1#2
+\cs_new_protected:Npn \@@_punct_bound_kern_ratio:NN #1#2
{
\dim_set:Nn \l_@@_bound_dim
{ \@@_use_punct_dim:nNN { bound_width } #1 #2 }
@@ -3781,7 +3809,7 @@ Copyright and Licence
\@@_punct_bound_kern_ratio_aux:N #2
}
}
-\cs_new_protected_nopar:Npn \@@_punct_bound_kern_ratio_aux:N #1
+\cs_new_protected:Npn \@@_punct_bound_kern_ratio_aux:N #1
{
\skip_set:Nn \l_@@_punct_kern_skip
{
@@ -3801,12 +3829,12 @@ Copyright and Licence
% \begin{macro}{\@@_nobreak_hskip:N,\@@_nobreak_hskip:n,
% \@@_punct_bound_kern:N, \@@_punct_bound_breakable_kern:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_nobreak_hskip:N
+\cs_new_protected:Npn \@@_nobreak_hskip:N
{ \xeCJK_no_break: \skip_horizontal:N }
-\cs_new_protected_nopar:Npn \@@_nobreak_hskip:n
+\cs_new_protected:Npn \@@_nobreak_hskip:n
{ \xeCJK_no_break: \skip_horizontal:n }
\cs_new_eq:NN \@@_punct_bound_kern:N \@@_nobreak_hskip:N
-\cs_new_protected_nopar:Npn \@@_punct_bound_breakable_kern:N
+\cs_new_protected:Npn \@@_punct_bound_breakable_kern:N
{
\tl_if_eq:NNTF \l_@@_aligni_tl \c_@@_right_tl
{
@@ -3816,7 +3844,7 @@ Copyright and Licence
}
{ \@@_nobreak_hskip:N }
}
-\cs_new_protected_nopar:Npn \@@_punct_bound_kern_aux:NNN #1#2
+\cs_new_protected:Npn \@@_punct_bound_kern_aux:NNN #1#2
{
\str_if_eq:nnTF {#1} {#2}
{ \@@_nobreak_hskip:N }
@@ -3848,7 +3876,7 @@ Copyright and Licence
% \begin{macro}{\@@_punct_bound_rule:NN}
% 用于抹去标点符号的全部左/右空白。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_bound_rule:NN #1#2
+\cs_new_protected:Npn \@@_punct_bound_rule:NN #1#2
{
\tex_vrule:D
width - \@@_use_punct_dim:nNN { bound } #1 #2 ~
@@ -3861,7 +3889,7 @@ Copyright and Licence
% \begin{macro}{\@@_punct_rule:NN}
% 用于减少标点符号的左/右空白。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_rule:NN #1#2
+\cs_new_protected:Npn \@@_punct_rule:NN #1#2
{
\tex_vrule:D
width \@@_use_punct_dim:nNN { rule } #1 #2 ~
@@ -3876,7 +3904,7 @@ Copyright and Licence
% {标点符号左/右空白的伸展值不超过原始边界,收缩值不小于另一侧边界。}
% 根据所选的标点处理方式在标点符号左/右增加的空白。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_glue:NN #1#2
+\cs_new_protected:Npn \@@_punct_glue:NN #1#2
{ \@@_punct_hskip:n { \@@_use_dim_or_skip:nNN { glue } #1 #2 } }
\cs_new_eq:NN \@@_punct_hskip:n \skip_horizontal:n
% \end{macrocode}
@@ -3886,7 +3914,7 @@ Copyright and Licence
% \begin{macro}{\xeCJK_punct_kern:NN,\@@_punct_kern:NN}
% 相邻两个标点之间的间距,总允许长标点与其他标点之间折行。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_kern:NN #1#2
+\cs_new_protected:Npn \@@_punct_kern:NN #1#2
{
\str_if_eq:eeTF {#1} {#2}
{ \@@_punct_nobreak_kern:NN }
@@ -3907,7 +3935,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_punct_nobreak_kern:NN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_nobreak_kern:NN #1#2
+\cs_new_protected:Npn \@@_punct_nobreak_kern:NN #1#2
{ \@@_nobreak_hskip:n { \@@_use_dim_or_skip:nNN { kern } #1 #2 } }
% \end{macrocode}
% \end{macro}
@@ -3919,7 +3947,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_punct_breakable_kern:NN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_punct_breakable_kern:NN #1#2
+\cs_new_protected:Npn \@@_punct_breakable_kern:NN #1#2
{
\exp_after:wN \@@_punct_if_right:NT #1
{ \@@_punct_rule:NN \c_@@_right_tl #1 }
@@ -3941,7 +3969,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullLeft_and_CJK:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_CJK:
+\cs_new_protected:Npn \xeCJK_FullLeft_and_CJK:
{
\@@_punct_if_middle:NTF \g_@@_last_punct_tl
{
@@ -3960,7 +3988,7 @@ Copyright and Licence
% \changes{v3.7.2}{2018/05/21}{再次修正 FullLeft 类字符与西文连用断词失败的问题。}
% \cs{@@_nobreak_zero_glue:} 用于确保 FullLeft 类后的西文单词可以断词。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_Default:
+\cs_new_protected:Npn \xeCJK_FullLeft_and_Default:
{
\@@_punct_if_middle:NTF \g_@@_last_punct_tl
{
@@ -3973,19 +4001,19 @@ Copyright and Licence
\@@_nobreak_zero_glue:
}
}
-\cs_new_protected_nopar:Npn \@@_nobreak_zero_glue:
+\cs_new_protected:Npn \@@_nobreak_zero_glue:
{
\tex_penalty:D \c_@@_nobreak_penalty_int
\skip_horizontal:N \c_zero_skip
}
-\cs_new_protected_nopar:Npn \@@_zero_glue:
+\cs_new_protected:Npn \@@_zero_glue:
{ \skip_horizontal:N \c_zero_skip }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\xeCJK_FullRight_and_CJK:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_CJK:
+\cs_new_protected:Npn \xeCJK_FullRight_and_CJK:
{
\@@_punct_rule:NN \c_@@_right_tl \g_@@_last_punct_tl
\@@_punct_glue:NN \c_@@_right_tl \g_@@_last_punct_tl
@@ -3997,7 +4025,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullRight_and_Default:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_Default:
+\cs_new_protected:Npn \xeCJK_FullRight_and_Default:
{
\@@_punct_rule:NN \c_@@_right_tl \g_@@_last_punct_tl
\xeCJK_class_group_end:
@@ -4008,7 +4036,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_Default_and_FullLeft:nN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_Default_and_FullLeft:nN #1#2
+\cs_new_protected:Npn \xeCJK_Default_and_FullLeft:nN #1#2
{
\xeCJK_get_punct_bounds:NN \c_@@_left_tl #2
\@@_Default_and_FullLeft_glue:N #2
@@ -4020,14 +4048,14 @@ Copyright and Licence
\@@_punct_rule:NN \c_@@_left_tl #2
\CJKpunctsymbol #2
}
-\cs_new_protected_nopar:Npn \@@_Default_and_FullLeft_glue:N #1
+\cs_new_protected:Npn \@@_Default_and_FullLeft_glue:N #1
{ \@@_punct_glue:NN \c_@@_left_tl #1 }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\xeCJK_CJK_and_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_FullLeft:N #1
+\cs_new_protected:Npn \xeCJK_CJK_and_FullLeft:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_left_tl #1
\@@_CJK_and_FullLeft_glue:N #1
@@ -4036,7 +4064,7 @@ Copyright and Licence
\@@_select_punct_font:
\CJKpunctsymbol #1
}
-\cs_new_protected_nopar:Npn \@@_CJK_and_FullLeft_glue:N #1
+\cs_new_protected:Npn \@@_CJK_and_FullLeft_glue:N #1
{
\CJKglue
\@@_punct_glue:NN \c_@@_left_tl #1
@@ -4046,7 +4074,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_Boundary_and_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_Boundary_and_FullLeft:N #1
+\cs_new_protected:Npn \xeCJK_Boundary_and_FullLeft:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_left_tl #1
\@@_Boundary_and_FullLeft_glue:N #1
@@ -4068,7 +4096,7 @@ Copyright and Licence
% \changes{v3.2.5}{2013/07/13}{增加对 \pkg{enumitem} 宏包修改的 \tn{item} 的判断。}
% 根据 \cs{etex_lastnodetype:D} 的值进行分别处理。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_Boundary_and_FullLeft_glue:N #1
+\cs_new_protected:Npn \@@_Boundary_and_FullLeft_glue:N #1
{
\tl_set_eq:NN \l_@@_alignii_tl \c_@@_left_tl
\group_begin: \exp_args:NNc \group_end: \cs_if_exist_use:NTF
@@ -4085,7 +4113,7 @@ Copyright and Licence
% \cs{etex_lastnodetype:D} 为 $-1$ 表示 empty list,常出现在盒子的起始位置,
% 在段落前使用 \tn{noindent} 就是这种情况。
% \begin{macrocode}
-\cs_new_protected_nopar:cpn { @@_bound_type_ -1 _glue:Nn } #1#2
+\cs_new_protected:cpn { @@_bound_type_ -1 _glue:Nn } #1#2
{ \@@_zero_glue: }
% \end{macrocode}
% \end{macro}
@@ -4094,7 +4122,7 @@ Copyright and Licence
% $1$ 表示 hlist node,在这里用来判断是否位于段首。基于正常情况下,\TeX 会在段落开头插入宽度为
% \tn{parindent} 的水平盒子用于缩进。
% \begin{macrocode}
-\cs_new_protected_nopar:cpn { @@_bound_type_ 1 _glue:Nn } #1#2
+\cs_new_protected:cpn { @@_bound_type_ 1 _glue:Nn } #1#2
{
\box_set_to_last:N \l_@@_tmp_box
\int_compare:nNnTF \tex_lastnodetype:D = { -1 }
@@ -4117,19 +4145,19 @@ Copyright and Licence
% \env{description} 环境中使用的 \tn{item}(\tn{enit@postlabel@i}),
% 在这里起到影响作用的是 |\penalty\z@ \hskip\labelsep|。
% \begin{macrocode}
-\cs_new_protected_nopar:cpn { @@_bound_type_ 11 _glue:Nn } #1#2
+\cs_new_protected:cpn { @@_bound_type_ 11 _glue:Nn } #1#2
{
\skip_if_finite:nTF { \tex_lastskip:D }
{ \@@_bound_glue_auxi:Nn #1 {#2} }
{ \@@_zero_glue: }
}
-\cs_new_protected_nopar:Npn \@@_bound_glue_auxi:Nn #1#2
+\cs_new_protected:Npn \@@_bound_glue_auxi:Nn #1#2
{
\@@_if_last_punct_glue:TF
{ \xeCJK_punct_bound_kern:N #1 }
{ \@@_bound_glue_auxii:n {#2} }
}
-\cs_new_protected_nopar:Npn \@@_bound_glue_auxii:n #1
+\cs_new_protected:Npn \@@_bound_glue_auxii:n #1
{
\skip_set_eq:NN \l_@@_last_skip \tex_lastskip:D
\skip_if_eq:nnTF { \l_@@_last_skip } { 1sp }
@@ -4155,7 +4183,7 @@ Copyright and Licence
% \begin{macro}{\@@_bound_type_12_glue:Nn}
% $12$ 表示 kern node,用于判断之前的字符是否是 CJK 类,如果是,则插入 \tn{CJKglue}。
% \begin{macrocode}
-\cs_new_protected_nopar:cpn { @@_bound_type_ 12 _glue:Nn } #1#2
+\cs_new_protected:cpn { @@_bound_type_ 12 _glue:Nn } #1#2
{
\xeCJK_if_last_node:nF { CJK }
{ \xeCJK_if_last_node:nF { CJK-space } { \use_none:nn } }
@@ -4170,7 +4198,7 @@ Copyright and Licence
% 能对齐到边界。判断基于 \tn{item} 的内部定义 \tn{@item} 对 \tn{everypar} 进行了修改,在这里起
% 到影响作用的是 |\box\@labels \penalty\z@|。以上判断都比较粗略,暂时也没有想起更好的办法。
% \begin{macrocode}
-\cs_new_protected_nopar:cpn { @@_bound_type_ 13 _glue:Nn } #1#2
+\cs_new_protected:cpn { @@_bound_type_ 13 _glue:Nn } #1#2
{
\@@_if_last_punct_penalty:TF
{ \xeCJK_punct_bound_kern:N #1 }
@@ -4190,7 +4218,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_Default_and_FullRight:nN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_Default_and_FullRight:nN #1#2
+\cs_new_protected:Npn \xeCJK_Default_and_FullRight:nN #1#2
{
\xeCJK_get_punct_bounds:NN \c_@@_right_tl #2
\@@_Default_and_FullRight_glue:N #2
@@ -4206,7 +4234,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_Boundary_and_FullRight:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_Boundary_and_FullRight:N #1
+\cs_new_protected:Npn \xeCJK_Boundary_and_FullRight:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_right_tl #1
\xeCJK_if_last_punct:TF
@@ -4227,7 +4255,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_CJK_and_FullRight:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_CJK_and_FullRight:N #1
+\cs_new_protected:Npn \xeCJK_CJK_and_FullRight:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_right_tl #1
\@@_CJK_and_FullRight_glue:N #1
@@ -4240,12 +4268,13 @@ Copyright and Licence
%
% \changes{v3.6.0}{2018/01/23}{解决标点中间被隔开的禁则与压缩问题。}
% \changes{v3.7.3}{2019/04/15}{修复 penalty 数值错误。}
+% \changes{v3.8.3}{2020/04/27}{修复 \opt{xCJKecglue} 选项。}
%
% \begin{macro}{\xeCJK_if_last_punct:TF}
% \changes{v3.6.1}{2018/02/25}{细化判断。}
% 判断之前是否是一个标点符号。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_if_last_punct:TF
+\cs_new_protected:Npn \xeCJK_if_last_punct:TF
{
\bool_set_false:N \l_@@_last_penalty_bool
\int_compare:nNnTF \tex_lastnodetype:D = { 11 }
@@ -4256,14 +4285,14 @@ Copyright and Licence
{ \use_ii:nn }
}
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_glue:TF
+\cs_new_protected:Npn \@@_if_last_punct_glue:TF
{
\prop_get:NoNTF \g_@@_punct_skip_prop
{ \skip_use:N \tex_lastskip:D } \l_@@_tmp_tl
{ \@@_if_last_punct_glue_auxi:TF }
{ \@@_if_last_punct_glue_auxii:TF }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_glue_auxi:TF
+\cs_new_protected:Npn \@@_if_last_punct_glue_auxi:TF
{
\skip_set_eq:NN \l_@@_last_skip \tex_lastskip:D
\tex_unskip:D
@@ -4276,14 +4305,15 @@ Copyright and Licence
}
{ \skip_horizontal:N \l_@@_last_skip \use_ii:nn }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_glue_auxii:TF
+\cs_new_protected:Npn \@@_if_last_punct_glue_auxii:TF
{
- \int_gset_eq:NN \g_@@_space_factor_int \tex_spacefactor:D
- \skip_if_eq:nnTF { \tex_lastskip:D } { \c_xeCJK_space_skip_tl }
- { \@@_if_last_punct_glue_auxiii:TF }
- { \use_ii:nn }
+ \group_begin:
+ \g_@@_space_factor_int \tex_spacefactor:D
+ \skip_if_eq:nnTF { \tex_lastskip:D } { \c_xeCJK_space_skip_tl }
+ { \group_end: \@@_if_last_punct_glue_auxiii:TF }
+ { \group_end: \use_ii:nn }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_glue_auxiii:TF
+\cs_new_protected:Npn \@@_if_last_punct_glue_auxiii:TF
{
\skip_set_eq:NN \l_@@_tmp_skip \tex_lastskip:D
\tex_unskip:D
@@ -4297,7 +4327,7 @@ Copyright and Licence
{ \use:n }
{ \skip_horizontal:N \l_@@_tmp_skip \use_ii:nn }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_penalty:TF
+\cs_new_protected:Npn \@@_if_last_punct_penalty:TF
{
\int_set_eq:NN \l_@@_last_penalty_int \tex_lastpenalty:D
\tex_unpenalty:D
@@ -4307,7 +4337,7 @@ Copyright and Licence
{ \use:n }
{ \tex_penalty:D \l_@@_last_penalty_int \use_ii:nn }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_auxi:TF
+\cs_new_protected:Npn \@@_if_last_punct_auxi:TF
{
\tex_unpenalty:D
\bool_if:NF \l_@@_last_penalty_bool
@@ -4320,13 +4350,13 @@ Copyright and Licence
{ \use:n }
{ \xeCJK_no_break: \use_ii:nn }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_auxii:TF
+\cs_new_protected:Npn \@@_if_last_punct_auxii:TF
{
\dim_compare:nNnTF \l_@@_last_kern_dim > \c_zero_dim
{ \@@_if_last_punct_auxiii:TF }
{ \@@_make_node:N \l_@@_last_kern_dim \use_ii:nn }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_auxiii:TF
+\cs_new_protected:Npn \@@_if_last_punct_auxiii:TF
{
\int_case:nnTF { \tex_XeTeXcharclass:D \l_@@_last_kern_dim }
{
@@ -4338,7 +4368,7 @@ Copyright and Licence
{ \@@_if_last_punct_auxiv:TF }
{ \use_ii:nn }
}
-\cs_new_protected_nopar:Npn \@@_if_last_punct_auxiv:TF
+\cs_new_protected:Npn \@@_if_last_punct_auxiv:TF
{
\dim_set_eq:NN \l_@@_tmp_dim \l_@@_last_kern_dim
\xeCJK_if_last_node:TF
@@ -4388,7 +4418,7 @@ Copyright and Licence
% \begin{macro}
% {\@@_CJK_and_FullRight_glue:N,\@@_Default_and_FullRight_glue:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_CJK_and_FullRight_glue:N #1
+\cs_new_protected:Npn \@@_CJK_and_FullRight_glue:N #1
{
\@@_punct_if_long:NTF #1
{ \xeCJK_allow_break: }
@@ -4400,7 +4430,7 @@ Copyright and Licence
\@@_punct_bound_rule:NN \c_@@_left_tl #1
}
}
-\cs_new_protected_nopar:Npn \@@_Default_and_FullRight_glue:N #1
+\cs_new_protected:Npn \@@_Default_and_FullRight_glue:N #1
{
\@@_punct_if_long:NTF #1
{ \xeCJK_allow_break: }
@@ -4416,7 +4446,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullLeft_and_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_FullLeft:N #1
+\cs_new_protected:Npn \xeCJK_FullLeft_and_FullLeft:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_left_tl #1
\xeCJK_get_punct_kerning:oN \g_@@_last_punct_tl #1
@@ -4429,7 +4459,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullLeft_and_FullRight:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullLeft_and_FullRight:N #1
+\cs_new_protected:Npn \xeCJK_FullLeft_and_FullRight:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_right_tl #1
\xeCJK_get_punct_kerning:oN \g_@@_last_punct_tl #1
@@ -4442,7 +4472,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullRight_and_FullLeft:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_FullLeft:N #1
+\cs_new_protected:Npn \xeCJK_FullRight_and_FullLeft:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_left_tl #1
\xeCJK_get_punct_kerning:oN \g_@@_last_punct_tl #1
@@ -4455,7 +4485,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullRight_and_FullRight:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_FullRight_and_FullRight:N #1
+\cs_new_protected:Npn \xeCJK_FullRight_and_FullRight:N #1
{
\xeCJK_get_punct_bounds:NN \c_@@_right_tl #1
\xeCJK_get_punct_kerning:oN \g_@@_last_punct_tl #1
@@ -4506,13 +4536,13 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_FullRight_symbol:N}
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_FullRight_symbol:N { \CJKpunctsymbol }
+\cs_new:Npn \xeCJK_FullRight_symbol:N { \CJKpunctsymbol }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\xeCJK_check_FullRight:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_FullRight:
+\cs_new_protected:Npn \xeCJK_check_FullRight:
{
\xeCJK_get_punct_bounds:No \c_@@_right_tl \g_@@_last_punct_tl
\@@_punct_rule:NN \c_@@_right_tl \g_@@_last_punct_tl
@@ -4535,7 +4565,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_check_FullRight_symbol:Nw}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_FullRight_symbol:Nw #1
+\cs_new_protected:Npn \xeCJK_check_FullRight_symbol:Nw #1
{ \peek_remove_spaces:n { \@@_save_FullRight_symbol:N #1 } }
% \end{macrocode}
% \end{macro}
@@ -4666,7 +4696,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_widow_penalty:}
% 预防段末孤字而插入的 penalty,值为 \cs{l_@@_widow_penalty_int}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_widow_penalty:
+\cs_new_protected:Npn \xeCJK_widow_penalty:
{ \tex_penalty:D \l_@@_widow_penalty_int }
% \end{macrocode}
% \end{macro}
@@ -4676,7 +4706,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_check_single:Nw}
% \begin{macro}{\@@_check_single_end:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_single:Nw #1
+\cs_new_protected:Npn \xeCJK_check_single:Nw #1
{
\group_align_safe_begin:
\peek_catcode:NTF \c_catcode_letter_token
@@ -4688,7 +4718,7 @@ Copyright and Licence
#1
}
}
-\cs_new_protected_nopar:Npn \@@_check_single_end:N
+\cs_new_protected:Npn \@@_check_single_end:N
{
\group_align_safe_end:
\@@_check_single_save:N
@@ -4704,7 +4734,7 @@ Copyright and Licence
% 使用 \cs{group_align_safe_begin:} 和 \cs{group_align_safe_end:} 是为了防止在表格
% 里面报错。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_single:NNw #1#2
+\cs_new_protected:Npn \xeCJK_check_single:NNw #1#2
{
\xeCJK_peek_catcode_ignore_spaces:NTF \c_catcode_letter_token
{
@@ -4731,7 +4761,7 @@ Copyright and Licence
#1 #2
}
}
-\cs_new_protected_nopar:Npn \@@_check_single_aux:nNNw #1#2#3
+\cs_new_protected:Npn \@@_check_single_aux:nNNw #1#2#3
{
\token_if_cs:NTF \l_peek_token
{ \xeCJK_check_single_cs:NNn }
@@ -4745,10 +4775,10 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_check_single_end:NNnw}
% \begin{macro}{\@@_check_single_end_aux:NNn,\@@_check_single_end_equation:NNnw}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_check_single_end_aux:NNn #1#2#3
+\cs_new_protected:Npn \@@_check_single_end_aux:NNn #1#2#3
{ \@@_check_single_end:N #1 #2 #3 }
\cs_new_eq:NN \xeCJK_check_single_end:NNnw \@@_check_single_end_aux:NNn
-\cs_new_protected_nopar:Npn \@@_check_single_end_equation:NNnw
+\cs_new_protected:Npn \@@_check_single_end_equation:NNnw
{
\token_if_math_toggle:NTF \l_peek_token
{ \xeCJK_check_single_equation:NNnNw }
@@ -4785,7 +4815,7 @@ Copyright and Licence
% \changes{v3.1.2}{2012/12/27}
% {使用 \cs{xeCJK_if_CJK_class:NTF} 来代替 \cs{int_case:nnn} 判断是否是 CJK 字符类。}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_check_single_space:NN #1#2
+\cs_new_protected:Npn \@@_check_single_space:NN #1#2
{
\xeCJK_if_CJK_class:NTF #2
{
@@ -4800,7 +4830,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_check_single_equation:NNnNw}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_single_equation:NNnNw #1#2#3#4
+\cs_new_protected:Npn \xeCJK_check_single_equation:NNnNw #1#2#3#4
{
\peek_catcode:NTF \c_math_toggle_token
{
@@ -4832,7 +4862,7 @@ Copyright and Licence
% \tn{ifx} 判断。解决办法是将判断用 \cs{group_align_safe_begin:} 和
% \cs{group_align_safe_end:} 包起来。或者改用原语 \cs{tex_par:D} 作为判断条件。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_single_cs:NNn #1#2#3
+\cs_new_protected:Npn \xeCJK_check_single_cs:NNn #1#2#3
{
\tl_case:NoF \l_peek_token
{ \l_@@_check_single_cs_case_tl }
@@ -4851,7 +4881,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_check_single_env:nnNn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_check_single_env:nnNn #1#2#3#4
+\cs_new_protected:Npn \xeCJK_check_single_env:nnNn #1#2#3#4
{
\str_case_e:noTF {#4}
{ \l_@@_inline_env_case_tl }
@@ -4980,7 +5010,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_sub_restore_or_cancel:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_sub_restore_or_cancel:n #1
+\cs_new_protected:Npn \@@_sub_restore_or_cancel:n #1
{
\clist_map_inline:nn {#1}
{
@@ -5005,7 +5035,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_declare_sub_char_class:nnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_declare_sub_char_class:nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_declare_sub_char_class:nnn #1#2#3
{
\int_if_exist:cF { \@@_class_csname:n { #1/#2 } }
{
@@ -5021,7 +5051,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_set_sub_class_toks:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_sub_class_toks:nn #1#2
+\cs_new_protected:Npn \@@_set_sub_class_toks:nn #1#2
{
\seq_map_inline:Nn \g_@@_base_class_seq
{
@@ -5080,11 +5110,11 @@ Copyright and Licence
{
\keys_define:nn { xeCJK / options }
{
- PunctStyle / unknown .code:n =
- { \@@_error:nx { punct-style-unknown } { \l_keys_value_tl } }
+ PunctStyle .code:n =
+ { \@@_error:nx { punct-style-unknown } {#1} }
}
\seq_gclear:N \g_@@_punct_style_seq
- \keys_set:nn { xeCJK / options } { PunctStyle = plain }
+ \@@_set_punct_style:n { plain }
}
}
% \end{macrocode}
@@ -5183,11 +5213,11 @@ Copyright and Licence
% \begin{macrocode}
\clist_new:N \g_@@_special_punct_clist
\clist_gset:Nn \g_@@_special_punct_clist { mixed_width , long , middle }
-\cs_new_nopar:Npn \@@_special_punct_seq:n #1 { g_@@_special_punct_#1_seq }
-\cs_new_nopar:Npn \@@_special_punct_tl:nN #1#2 { g_@@_special_punct_#1_#2_tl }
+\cs_new:Npn \@@_special_punct_seq:n #1 { g_@@_special_punct_#1_seq }
+\cs_new:Npn \@@_special_punct_tl:nN #1#2 { g_@@_special_punct_#1_#2_tl }
\clist_map_inline:Nn \g_@@_special_punct_clist
{ \seq_new:c { \@@_special_punct_seq:n {#1} } }
-\cs_new_protected_nopar:Npn \@@_set_special_punct:nn #1#2
+\cs_new_protected:Npn \@@_set_special_punct:nn #1#2
{
\seq_map_inline:cn { \@@_special_punct_seq:n {#1} }
{ \cs_undefine:c { \@@_special_punct_tl:nN {#1} {##1} } }
@@ -5198,7 +5228,7 @@ Copyright and Licence
\seq_gput_right:cn { \@@_special_punct_seq:n {#1} } {##1}
}
}
-\cs_new_protected_nopar:Npn \@@_add_special_punct:nn #1#2
+\cs_new_protected:Npn \@@_add_special_punct:nn #1#2
{
\tl_map_inline:xn {#2}
{
@@ -5209,7 +5239,7 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_sub_special_punct:nn #1#2
+\cs_new_protected:Npn \@@_sub_special_punct:nn #1#2
{
\tl_map_inline:xn {#2}
{
@@ -5389,20 +5419,20 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_get_punct_bounds:NN}
% |#1| 为 \cs{c_@@_left_tl} 或 \cs{c_@@_right_tl},|#2| 为标点符号。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_bounds:NN #1#2
+\cs_new_protected:Npn \xeCJK_get_punct_bounds:NN #1#2
{
\tl_if_exist:cF { \@@_punct_csname:n { dim/glue/#1/#2 } }
{ \@@_get_punct_bounds_aux:NN #1 #2 }
}
-\cs_new_protected_nopar:Npn \@@_get_punct_bounds_aux:NN
+\cs_new_protected:Npn \@@_get_punct_bounds_aux:NN
{
\tl_if_eq:NNTF \l_xeCJK_punct_style_tl \c_@@_punct_style_plain_tl
{ \@@_save_punct_margin_plain:NN }
{ \@@_save_punct_margin:NN }
}
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_bounds:No
+\cs_new_protected:Npn \xeCJK_get_punct_bounds:No
{ \exp_last_unbraced:NNo \xeCJK_get_punct_bounds:NN }
-\cs_new_protected_nopar:Npn \@@_save_punct_margin_plain:NN #1#2
+\cs_new_protected:Npn \@@_save_punct_margin_plain:NN #1#2
{
\@@_save_punct_dim:nNNn { rule } #1 #2 { \c_zero_dim }
\@@_save_punct_dim:nNNn { glue } #1 #2 { \c_zero_dim }
@@ -5412,7 +5442,7 @@ Copyright and Licence
\@@_save_punct_dim:nNNn { bound } \c_@@_right_tl {#2} { \c_zero_dim }
\@@_save_punct_skip:nNNn { glue } #1 #2 { \c_zero_skip }
}
-\cs_new_protected_nopar:Npn \@@_save_punct_margin:NN #1#2
+\cs_new_protected:Npn \@@_save_punct_margin:NN #1#2
{
\group_begin:
\xeCJK_select_punct_font:
@@ -5445,7 +5475,7 @@ Copyright and Licence
% 相同长标点压缩。对于破折号,计算两标点之间的空白,保证它中间不被断开。
% 注意,破折号的边界可能为负值(比如方正新书宋),此时不必压缩。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_long_punct_kerning:N #1
+\cs_new_protected:Npn \@@_long_punct_kerning:N #1
{
\dim_set:Nn \l_@@_tmp_dim
{
@@ -5474,7 +5504,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_get_punct_kerning:NN}
% 标点压缩。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_kerning:NN #1#2
+\cs_new_protected:Npn \xeCJK_get_punct_kerning:NN #1#2
{
\tl_if_exist:cF { \@@_punct_csname:n { dim/kern/#1/#2 } }
{
@@ -5484,9 +5514,9 @@ Copyright and Licence
#1 #2
}
}
-\cs_new_protected_nopar:Npn \xeCJK_get_punct_kerning:oN
+\cs_new_protected:Npn \xeCJK_get_punct_kerning:oN
{ \exp_after:wN \xeCJK_get_punct_kerning:NN }
-\cs_new_protected_nopar:Npn \@@_save_punct_kerning_plain:NN #1#2
+\cs_new_protected:Npn \@@_save_punct_kerning_plain:NN #1#2
{
\@@_save_punct_dim:nNNn { kern } #1 #2 { \c_zero_dim }
\@@_save_punct_dim:nNNn { bound_kern } #1 #2 { \c_zero_dim }
@@ -5494,7 +5524,7 @@ Copyright and Licence
\@@_save_punct_skip:nNNn { kern } #1 #2 { \c_zero_skip }
\@@_save_punct_skip:nNNn { bound_kern } #1 #2 { \c_zero_skip }
}
-\cs_new_protected_nopar:Npn \@@_save_punct_kerning:NN
+\cs_new_protected:Npn \@@_save_punct_kerning:NN
{
\UseInstance { xeCJK / punctuation } { \l_xeCJK_punct_style_tl }
\xeCJK_punct_kerning_process:NN
@@ -5504,7 +5534,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_punct_margin_process:NN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_margin_process:NN #1#2
+\cs_new_protected:Npn \xeCJK_punct_margin_process:NN #1#2
{
\dim_set:Nn \l_@@_tmp_dim
{
@@ -5566,7 +5596,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_calc_punct_width:N}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_calc_punct_width:N #1
+\cs_new:Npn \@@_calc_punct_width:N #1
{
\@@_punct_if_middle:NTF #1
{ \@@_punct_width_or_ratio:nN { middle } }
@@ -5582,7 +5612,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_calc_margin_width:N}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_calc_margin_width:N #1
+\cs_new:Npn \@@_calc_margin_width:N #1
{
\@@_punct_if_middle:NTF #1
{
@@ -5606,7 +5636,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_punct_offset_process:NN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_offset_process:NN #1#2
+\cs_new_protected:Npn \xeCJK_punct_offset_process:NN #1#2
{
\dim_set:Nn \l_@@_tmp_dim
{
@@ -5680,7 +5710,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_punct_width_or_ratio:nN}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_punct_width_or_ratio:nN #1#2
+\cs_new:Npn \@@_punct_width_or_ratio:nN #1#2
{
\dim_compare:nNnTF { \use:c { l_@@_#1_punct_width_dim } } < \c_max_dim
{ \use:c { l_@@_#1_punct_width_dim } }
@@ -5698,7 +5728,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_margin_width_or_ratio:n}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_margin_width_or_ratio:n #1
+\cs_new:Npn \@@_margin_width_or_ratio:n #1
{
\dim_compare:nNnTF { \use:c { l_@@_#1_margin_width_dim } } < \c_max_dim
{ \use:c { l_@@_#1_margin_width_dim } }
@@ -5717,7 +5747,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_punct_kerning_process:NN}
% 当标点之一为长标点时,不必进行压缩。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_punct_kerning_process:NN #1#2
+\cs_new_protected:Npn \xeCJK_punct_kerning_process:NN #1#2
{
\dim_set:Nn \l_@@_margin_dim
{ \@@_original_kerning_margin:NN #1 #2 }
@@ -5754,7 +5784,7 @@ Copyright and Licence
}
#1 #2
}
-\cs_new_nopar:Npn \@@_punct_kerning_process_aux:NN #1#2
+\cs_new:Npn \@@_punct_kerning_process_aux:NN #1#2
{
\bool_if:NTF \l_@@_enabled_kerning_bool
{ \@@_calc_kerning_margin:NN #1 #2 }
@@ -5770,9 +5800,9 @@ Copyright and Licence
% \begin{macro}{\@@_save_kerning:nnNN}
% 相邻两个标点符号的间距能伸长到原始空白(未压缩时的状态),能收缩到较小边距。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_save_kerning:nnNN #1#2
+\cs_new_protected:Npn \@@_save_kerning:nnNN #1#2
{ \@@_save_kerning:nnnNN {#1} {#2} {#2} }
-\cs_new_protected_nopar:Npn \@@_save_kerning:nnnNN #1#2#3#4#5
+\cs_new_protected:Npn \@@_save_kerning:nnnNN #1#2#3#4#5
{
\dim_set:Nn \l_@@_tmp_dim
{
@@ -5792,7 +5822,7 @@ Copyright and Licence
% \begin{macro}{\@@_original_kerning_margin:NN}
% 相邻两个标点符号之间的本来空白宽度。
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_original_kerning_margin:NN #1#2
+\cs_new:Npn \@@_original_kerning_margin:NN #1#2
{
\dim_eval:n
{
@@ -5808,7 +5838,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_calc_kerning_margin:NN,\@@_calc_kerning_margin_aux:NN}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_calc_kerning_margin:NN #1#2
+\cs_new:Npn \@@_calc_kerning_margin:NN #1#2
{
\dim_max:nn
{ \l_@@_kerning_margin_minimum_dim }
@@ -5823,7 +5853,7 @@ Copyright and Licence
}
}
}
-\cs_new_nopar:Npn \@@_calc_kerning_margin_aux:NN #1#2
+\cs_new:Npn \@@_calc_kerning_margin_aux:NN #1#2
{
\dim_compare:nNnTF \l_@@_kerning_total_width_dim < \c_max_dim
{ \@@_calc_kerning_margin:nNN \l_@@_kerning_total_width_dim }
@@ -5852,7 +5882,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_kerning_width_or_ratio:nNN}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_kerning_width_or_ratio:nNN #1#2#3
+\cs_new:Npn \@@_kerning_width_or_ratio:nNN #1#2#3
{
\dim_compare:nNnTF { \use:c { l_@@_#1_align_margin_dim } } < \c_max_dim
{ \use:c { l_@@_#1_align_margin_dim } }
@@ -5872,7 +5902,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_punct_min_bound:NN}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_punct_min_bound:NN #1#2
+\cs_new:Npn \@@_punct_min_bound:NN #1#2
{
\dim_max:nn
{
@@ -5892,7 +5922,7 @@ Copyright and Licence
% \begin{macro}{\@@_calc_kerning_margin:nNN}
% |#2| 和 |#3| 为相邻的两个标点,|#1| 为要确定的相邻两个标点总共占的宽度。
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_calc_kerning_margin:nNN #1#2#3
+\cs_new:Npn \@@_calc_kerning_margin:nNN #1#2#3
{
\dim_eval:n
{
@@ -5913,7 +5943,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_calc_punct_dimen:N}
% 计算标点的左右实际边距和实际尺寸。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_calc_punct_dimen:N #1
+\cs_new_protected:Npn \xeCJK_calc_punct_dimen:N #1
{
\@@_save_punct_dim:nNNn { bound } \c_@@_left_tl #1
{ \xeCJK_glyph_bounds:NN 1 #1 }
@@ -5934,37 +5964,54 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_glyph_bounds:NN}
% 用 \tn{XeTeXglyphbounds} 取得标点符号的上下左右空白。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_glyph_bounds:NN #1#2
+\cs_new:Npn \xeCJK_glyph_bounds:NN #1#2
{ \tex_XeTeXglyphbounds:D #1 ~ \tex_XeTeXcharglyph:D `#2 \exp_stop_f: }
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.8.3}{2020/04/09}{重构 \opt{PunctStyle} 选项,完全展开参数。}
+%
% \begin{macro}{PunctStyle}
% \begin{macrocode}
\keys_define:nn { xeCJK / options }
+ { PunctStyle .code:n = \exp_args:Nx \@@_set_punct_style:n {#1} }
+\cs_new_protected:Npn \@@_set_punct_style:n #1
{
- PunctStyle .choice: ,
- PunctStyle .default:n = { quanjiao } ,
- PunctStyle / halfwidth .meta:n = { PunctStyle = banjiao } ,
- PunctStyle / fullwidth .meta:n = { PunctStyle = quanjiao } ,
- PunctStyle / mixedwidth .meta:n = { PunctStyle = kaiming } ,
- PunctStyle / marginkerning .meta:n = { PunctStyle = hangmobanjiao } ,
- PunctStyle / plain .code:n =
- { \tl_set_eq:NN \l_xeCJK_punct_style_tl \c_@@_punct_style_plain_tl } ,
- PunctStyle / unknown .code:n =
+ \IfInstanceExistTF { xeCJK / punctuation } {#1}
+ { \tl_set:Nn \l_xeCJK_punct_style_tl {#1} }
{
- \IfInstanceExistTF { xeCJK / punctuation } { \l_keys_value_tl }
- { \tl_set:Nx \l_xeCJK_punct_style_tl { \l_keys_value_tl } }
- { \@@_error:nx { punct-style-unknown } { \l_keys_value_tl } }
+ \prop_get:NnNF \c_@@_punct_style_alias_prop
+ {#1} \l_xeCJK_punct_style_tl
+ { \@@_error:nx { punct-style-unknown } {#1} }
}
}
+\prop_const_from_keyval:Nn \c_@@_punct_style_alias_prop
+ {
+ halfwidth = banjiao ,
+ fullwidth = quanjiao ,
+ mixedwidth = kaiming ,
+ marginkerning = hangmobanjiao ,
+ plain = plain
+ }
\tl_new:N \l_xeCJK_punct_style_tl
\tl_const:Nn \c_@@_punct_style_plain_tl { plain }
\@@_msg_new:nn { punct-style-unknown }
{
Punctuation~style~"#1"~is~unknown. \\\\
The~available~styles~are~listed~as~follow.\\\\
- "plain,~\seq_use:Nnnn \g_@@_punct_style_seq { ~and~ } { ,~ } { ,~and~ }".\\
+ "plain,~\seq_use:Nnnn \g_@@_punct_style_seq
+ { ~and~ } { ,~ } { ,~and~ }".\\
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_trim_spaces:n}
+% \pkg{xparse} 处理函数,先完全展开参数再删除两边空格。
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_trim_spaces:n #1
+ {
+ \tl_set:Nx \ProcessedArgument
+ { \exp_args:Ne \tl_trim_spaces:n {#1} }
}
% \end{macrocode}
% \end{macro}
@@ -5972,12 +6019,13 @@ Copyright and Licence
% \begin{macro}{\xeCJKDeclarePunctStyle}
% 定义新的标点处理风格,已经存在的同名风格将被覆盖。
% \begin{macrocode}
-\NewDocumentCommand \xeCJKDeclarePunctStyle { > { \TrimSpaces } m m }
+\NewDocumentCommand \xeCJKDeclarePunctStyle
+ { > { \@@_trim_spaces:n } m m }
{
\IfInstanceExistTF { xeCJK / punctuation } {#1}
{ \@@_warning:nx { punct-style-already-defined } {#1} }
- { \seq_gput_right:Nx \g_@@_punct_style_seq {#1} }
- \exp_args:Nnx \DeclareInstance { xeCJK / punctuation } {#1} { basic } {#2}
+ { \seq_gput_right:Nn \g_@@_punct_style_seq {#1} }
+ \DeclareInstance { xeCJK / punctuation } {#1} { basic } {#2}
}
\seq_new:N \g_@@_punct_style_seq
\@@_msg_new:nn { punct-style-already-defined }
@@ -5992,10 +6040,11 @@ Copyright and Licence
% \begin{macro}{\xeCJKEditPunctStyle}
% 对已有的标点处理风格进行修改。
% \begin{macrocode}
-\NewDocumentCommand \xeCJKEditPunctStyle { > { \TrimSpaces } m m }
+\NewDocumentCommand \xeCJKEditPunctStyle
+ { > { \@@_trim_spaces:n } m m }
{
\IfInstanceExistTF { xeCJK / punctuation } {#1}
- { \exp_args:Nnx \EditInstance { xeCJK / punctuation } {#1} {#2} }
+ { \EditInstance { xeCJK / punctuation } {#1} {#2} }
{ \@@_error:nx { punct-style-unknown } {#1} }
}
\@onlypreamble \xeCJKEditPunctStyle
@@ -6072,7 +6121,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_fallback_test_glyph:N}
% 测试当前字体中是否存在当前字符,如存在则直接输出,否则启用后备字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_fallback_test_glyph:N #1
+\cs_new_protected:Npn \xeCJK_fallback_test_glyph:N #1
{
\xeCJK_glyph_if_exist:NTF #1
{ \@@_fallback_save_CJKsymbol:N #1 }
@@ -6092,7 +6141,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_aftergroup_reset_Boundary:N}
% 在分组中暂时清空 |#1| 与边界的 toks,分组后恢复。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_aftergroup_reset_Boundary:N #1
+\cs_new_protected:Npn \xeCJK_aftergroup_reset_Boundary:N #1
{
\tl_set:Nx \l_@@_tmp_tl
{ \tex_the:D \tex_XeTeXcharclass:D `#1 ~ \xeCJK_class_num:n { Boundary } }
@@ -6114,7 +6163,7 @@ Copyright and Licence
% 循环测试后备字体是否包含字符 |#1|。若后备字体中存在该字符或者再没有后备字体,则
% 结束循环。当前字体族没有备用字体时,使用 \tn{CJKfamilydefault} 的设置。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_fallback_loop:Nn #1#2
+\cs_new_protected:Npn \xeCJK_fallback_loop:Nn #1#2
{
\xeCJK_family_if_exist:nTF {#2}
{
@@ -6163,7 +6212,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_set_family_fallback:nnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_family_fallback:nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_set_family_fallback:nnn #1#2#3
{
\group_begin:
\tl_set:Nn \l_@@_fallback_family_tl {#1}
@@ -6232,7 +6281,7 @@ Copyright and Licence
% 用于定义 CJK 子区字体和备用字体的选项。
% \begin{macrocode}
\seq_new:N \g_@@_sub_key_seq
-\cs_new_protected_nopar:Npn \xeCJK_new_sub_key:n #1
+\cs_new_protected:Npn \xeCJK_new_sub_key:n #1
{
\seq_gput_right:Nn \g_@@_sub_key_seq {#1}
\keys_define:nn { xeCJK / features }
@@ -6264,7 +6313,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_get_sub_features:nn,\@@_get_sub_features:w}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_get_sub_features:nn #1#2
+\cs_new_protected:Npn \@@_get_sub_features:nn #1#2
{
\tl_set:Nx \l_@@_tmp_tl { \xeCJK_tl_remove_outer_braces:n {#2} }
\clist_clear:N \l_@@_sub_font_options_clist
@@ -6279,7 +6328,7 @@ Copyright and Licence
{ \exp_not:V \l_@@_sub_font_name_tl }
}
}
-\cs_new_protected_nopar:Npn \@@_get_sub_features:w #1 [#2] #3 \q_mark #4 \q_stop
+\cs_new_protected:Npn \@@_get_sub_features:w #1 [#2] #3 \q_mark #4 \q_stop
{
\quark_if_nil:nTF {#2}
{ \tl_set_eq:NN \l_@@_sub_font_name_tl \l_@@_tmp_tl }
@@ -6357,7 +6406,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_set_family_initial:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_family_initial:
+\cs_new_protected:Npn \@@_set_family_initial:
{
\int_gincr:N \g_@@_family_int
\prop_clear:N \l_@@_sub_key_prop
@@ -6383,7 +6432,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_set_family:nnn}
% 设置一个 CJK 新字体族,与 \tn{newfontfamily} 类似,增加 |FallBack| 选项。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_family:nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_set_family:nnn #1#2#3
{
\group_begin:
\@@_set_family_initial:
@@ -6413,7 +6462,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_binding_sub_family:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_binding_sub_family:
+\cs_new_protected:Npn \@@_binding_sub_family:
{
\tl_if_empty:NF \l_@@_sub_family_name_tl
{ \tl_set_eq:NN \l_@@_family_name_tl \l_@@_sub_family_name_tl }
@@ -6423,9 +6472,9 @@ Copyright and Licence
%
% \begin{macro}{\@@_gset_family_cs:x}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_gset_family_cs:x #1
+\cs_new_protected:Npn \@@_gset_family_cs:x #1
{
- \cs_gset_protected_nopar:cpx { \@@_family_csname:n {#1} }
+ \cs_gset_protected:cpx { \@@_family_csname:n {#1} }
{
\group_begin:
\exp_not:n { \cs_set_eq:NN \xeCJK@fontfamily \use_none:n }
@@ -6446,7 +6495,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_check_family:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_check_family:n #1
+\cs_new_protected:Npn \@@_check_family:n #1
{
\prop_gpop:NnNT \g_@@_family_font_name_prop {#1} \l_@@_tmp_tl
{
@@ -6466,7 +6515,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_parse_font_shape:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_parse_font_shape:
+\cs_new_protected:Npn \@@_parse_font_shape:
{
\tl_if_blank:VTF \l_@@_font_name_bf_tl
{
@@ -6507,7 +6556,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_save_family_info:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_save_family_info:
+\cs_new_protected:Npn \@@_save_family_info:
{
\prop_gput:NVV \g_@@_family_font_name_prop
\l_@@_family_name_tl \l_@@_font_name_tl
@@ -6519,7 +6568,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_set_sub_block_family:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_sub_block_family:
+\cs_new_protected:Npn \@@_set_sub_block_family:
{
\prop_map_inline:Nn \l_@@_sub_key_prop
{
@@ -6532,7 +6581,7 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_copy_sub_family:n #1
+\cs_new_protected:Npn \@@_copy_sub_family:n #1
{
\@@_check_family:V \l_@@_sub_family_name_tl
\prop_get:NoNT \g_@@_family_font_name_prop
@@ -6548,7 +6597,7 @@ Copyright and Licence
\prop_gput:NVV \g_@@_family_font_options_prop
\l_@@_sub_family_name_tl \l_@@_sub_font_options_clist
}
- \cs_gset_protected_nopar:cpx
+ \cs_gset_protected:cpx
{ \@@_family_csname:n { \l_@@_sub_family_name_tl } }
{
\xeCJK_family_if_exist:xT { \l_@@_family_name_tl }
@@ -6564,7 +6613,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_copy_family:nn,\@@_copy_family:xx}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_copy_family:nn #1#2
+\cs_new_protected:Npn \@@_copy_family:nn #1#2
{
\xeCJK_family_if_exist:nT {#2}
{
@@ -6584,7 +6633,7 @@ Copyright and Licence
{ \@@_family_nfss_csname:n {#2} }
}
}
-\cs_new_protected_nopar:Npn \@@_copy_family:xx #1#2
+\cs_new_protected:Npn \@@_copy_family:xx #1#2
{ \use:x { \@@_copy_family:nn {#1} {#2} } }
% \end{macrocode}
% \end{macro}
@@ -6595,18 +6644,18 @@ Copyright and Licence
% \begin{variable}[int]{\l_xeCJK_current_font_tl}
% 缓存当前字体的原始格式,以加速编译。
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_font_csname:n #1
+\cs_new:Npn \@@_font_csname:n #1
{ xeCJK/#1/\f@series/\f@shape/\f@size }
\tl_new:N \l_xeCJK_current_font_tl
\tl_set:No \l_xeCJK_current_font_tl
{ \@@_font_csname:n { \CJK@family } }
-\cs_new_protected_nopar:Npn \xeCJK_select_font:
+\cs_new_protected:Npn \xeCJK_select_font:
{
\@@_select_font:cn
{ \l_xeCJK_current_font_tl }
{ \l_xeCJK_family_tl }
}
-\cs_new_protected_nopar:Npn \@@_select_font:Nn #1#2
+\cs_new_protected:Npn \@@_select_font:Nn #1#2
{
\cs_if_exist:NF #1 { \@@_font_initial:Nn #1 {#2} }
#1
@@ -6624,7 +6673,7 @@ Copyright and Licence
% 注意要将 \tn{selectfont} 放在分组中调用,防止 \tn{f@series} 等字体参数被修改,
% 导致 \cs{l_xeCJK_current_font_tl} 标记前后不一致,引发错误(见~\ghissue{486})。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_font_initial:Nn #1#2
+\cs_new_protected:Npn \@@_font_initial:Nn #1#2
{
\group_begin:
\@@_family_use:n {#2}
@@ -6639,7 +6688,7 @@ Copyright and Licence
% 切换标点符号字体。
% \begin{macrocode}
\cs_new_eq:NN \xeCJK_select_punct_font: \xeCJK_select_font:
-\cs_new_protected_nopar:Npn \@@_select_punct_font_aux:
+\cs_new_protected:Npn \@@_select_punct_font_aux:
{
\@@_select_font:cn
{ \l_xeCJK_current_punct_font_tl }
@@ -6660,7 +6709,7 @@ Copyright and Licence
% \changes{v3.1.0}{2012/11/18}{改进定义,加快切换速度。}
% 两个 CJK 分区之间的字体切换。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_switch_font:nn #1#2
+\cs_new_protected:Npn \@@_switch_font:nn #1#2
{
\str_if_eq:nnF {#1} {#2}
{
@@ -6681,26 +6730,26 @@ Copyright and Licence
% 分区字体;若 \tn{CJKfamilydefault} 也没有定义该分区字体,则使用当前 CJK 字体族的
% 主分区字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_select_font:n #1
+\cs_new_protected:Npn \xeCJK_select_font:n #1
{
\@@_select_font:cnn
{ \@@_font_csname:n { \CJK@family/#1 } }
{ \l_xeCJK_family_tl }
{#1}
}
-\cs_new_protected_nopar:Npn \@@_select_font:Nnn #1#2#3
+\cs_new_protected:Npn \@@_select_font:Nnn #1#2#3
{
\cs_if_exist:NF #1
{ \@@_block_font_initial:Nnn #1 {#2} {#3} }
#1
}
\cs_generate_variant:Nn \@@_select_font:Nnn { c }
-\cs_new_protected_nopar:Npn \@@_block_font_initial:Nnn #1#2#3
+\cs_new_protected:Npn \@@_block_font_initial:Nnn #1#2#3
{
\xeCJK_block_family:nn {#2} {#3}
\@@_font_initial:Nn #1 { #2/#3 }
}
-\cs_new_protected_nopar:Npn \xeCJK_block_family:nn #1#2
+\cs_new_protected:Npn \xeCJK_block_family:nn #1#2
{
\xeCJK_family_if_exist:xF { #1/#2 }
{
@@ -6719,16 +6768,16 @@ Copyright and Licence
% {\@@_family_csname:n,\@@_family_nfss_csname:n,
% \@@_family_use:n,\@@_gset_family_nfss_cs:nn}
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_family_csname:n #1
+\cs_new:Npn \@@_family_csname:n #1
{ xeCJK/family/#1 }
-\cs_new_nopar:Npn \@@_family_nfss_csname:n #1
+\cs_new:Npn \@@_family_nfss_csname:n #1
{ xeCJK/family/nfss/#1 }
-\cs_new_protected_nopar:Npn \@@_family_use:n #1
+\cs_new_protected:Npn \@@_family_use:n #1
{ \use:c { \@@_family_nfss_csname:n {#1} } }
-\cs_new_protected_nopar:Npn \@@_gset_family_nfss_cs:nn #1#2
+\cs_new_protected:Npn \@@_gset_family_nfss_cs:nn #1#2
{
\prop_gput:Nnn \g_@@_family_name_prop {#1} {#2}
- \cs_gset_protected_nopar:cpx
+ \cs_gset_protected:cpx
{ \@@_family_nfss_csname:n {#1} }
{ \@@_nfss_family:nn { \c_@@_encoding_tl } {#2} }
}
@@ -6741,7 +6790,7 @@ Copyright and Licence
% \begin{macrocode}
\cs_if_exist:NTF \fontseriesforce
{
- \cs_new_protected_nopar:Npn \@@_nfss_family:nn #1#2
+ \cs_new_protected:Npn \@@_nfss_family:nn #1#2
{
\fontencoding {#1}
\str_if_eq:eeF { \f@series } { \bfdefault }
@@ -6756,14 +6805,14 @@ Copyright and Licence
\fontfamily {#2}
\selectfont
}
- \cs_new_protected_nopar:Npn \@@_nfss_series:n #1
+ \cs_new_protected:Npn \@@_nfss_series:n #1
{
\str_if_eq:eeT { \f@series } { \use:c { bfseries@#1 } }
{ \fontseriesforce { \bfdefault } }
}
}
{
- \cs_new_protected_nopar:Npn \@@_nfss_family:nn #1#2
+ \cs_new_protected:Npn \@@_nfss_family:nn #1#2
{
\fontencoding {#1}
\tl_set:Nn \f@family {#2}
@@ -6798,7 +6847,7 @@ Copyright and Licence
\xeCJK_family:NNx #1 #2 {#3}
\tex_ignorespaces:D
}
-\cs_new_protected_nopar:Npn \xeCJK_family:NNn #1#2#3
+\cs_new_protected:Npn \xeCJK_family:NNn #1#2#3
{
\tl_if_blank:nTF {#3}
{
@@ -6820,7 +6869,7 @@ Copyright and Licence
}
}
\cs_generate_variant:Nn \xeCJK_family:NNn { NNx }
-\cs_new_protected_nopar:Npn \xeCJK_switch_family:n #1
+\cs_new_protected:Npn \xeCJK_switch_family:n #1
{
\xeCJK_family_if_exist:nTF {#1}
{
@@ -6853,7 +6902,7 @@ Copyright and Licence
PunctFamily / unknown .code:n =
{ \xeCJK_punct_family:x {#1} } ,
}
-\cs_new_protected_nopar:Npn \xeCJK_punct_family:n #1
+\cs_new_protected:Npn \xeCJK_punct_family:n #1
{
\xeCJK_family_if_exist:nTF {#1}
{
@@ -6887,7 +6936,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_gobble_CJKfamily:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_gobble_CJKfamily:
+\cs_new_protected:Npn \@@_gobble_CJKfamily:
{ \cs_set_eq:NN \CJKfamily \@@_gobble_CJKfamily:wn }
\NewExpandableDocumentCommand \@@_gobble_CJKfamily:wn { t+ t- m } { }
% \end{macrocode}
@@ -6895,7 +6944,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_family_if_exist_use:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_family_if_exist_use:n #1
+\cs_new_protected:Npn \xeCJK_family_if_exist_use:n #1
{
\xeCJK_family_if_exist:nTF {#1}
{ \@@_family_use:n {#1} }
@@ -6909,7 +6958,7 @@ Copyright and Licence
% \changes{v3.1.2}{2013/01/01}
% {在没有定义任何 CJK 字体的情况下,不再重复给出字体没有定义的警告。}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_family_unknown_warning:n #1
+\cs_new_protected:Npn \@@_family_unknown_warning:n #1
{
\prop_if_empty:NF \g_@@_family_font_name_prop
{
@@ -6927,7 +6976,7 @@ Copyright and Licence
Unknown~CJK~family~`\@@_msg_family_map:n {#1}'~is~being~ignored.\\\\
Try~to~use~`\@@_msg_def_family_map:n {#1}'~to~define~it.
}
-\cs_new_nopar:Npn \@@_msg_def_family_map:n #1
+\cs_new:Npn \@@_msg_def_family_map:n #1
{
\str_case_e:nnF {#1}
{
@@ -6938,7 +6987,7 @@ Copyright and Licence
{ \token_to_str:N \setCJKfamilyfont \{ #1 \} }
[...]\{...\}
}
-\cs_new_nopar:Npn \@@_msg_family_map:n #1
+\cs_new:Npn \@@_msg_family_map:n #1
{
\str_case_e:nnF {#1}
{
@@ -7012,7 +7061,7 @@ Copyright and Licence
% \begin{macro}{\@@_preamble_family:n}
% 用在 \tn{setCJKmainfont} 等主要命令之后,确保导言区有 CJK 字体可用。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_preamble_family:n #1
+\cs_new_protected:Npn \@@_preamble_family:n #1
{ \str_if_eq:eeT {#1} { \CJKfamilydefault } { \normalfont } }
% \end{macrocode}
% \end{macro}
@@ -7031,7 +7080,7 @@ Copyright and Licence
{
\tl_set:Nx \l_@@_tmp_tl
{ \tl_if_novalue:nTF {#1} { \cs_to_str:N #2 } {#1} }
- \cs_new_protected_nopar:Npx #2
+ \cs_new_protected:Npx #2
{ \xeCJK_switch_family:n { \l_@@_tmp_tl } }
\@@_pass_args:nnnn
{ \xeCJK_set_family:nnn { \l_@@_tmp_tl } } {#3} {#4}
@@ -7048,7 +7097,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_fontspec:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_fontspec:nn #1#2
+\cs_new_protected:Npn \xeCJK_fontspec:nn #1#2
{
\prop_get:NnNTF \g_@@_fontspec_prop
{ CJKfontspec/#1/#2/id } \l_xeCJK_family_tl
@@ -7059,7 +7108,7 @@ Copyright and Licence
{#1} {#2}
}
}
-\cs_new_protected_nopar:Npn \@@_fontspec:nnn #1#2#3
+\cs_new_protected:Npn \@@_fontspec:nnn #1#2#3
{
\prop_gput:Nnn \g_@@_fontspec_prop { CJKfontspec/#2/#3/id } {#1}
\xeCJK_set_family:nnn {#1} {#2} {#3}
@@ -7090,7 +7139,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\xeCJK_add_font_features:Nnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_add_font_features:Nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_add_font_features:Nnn #1#2#3
{
\prop_get:NoNTF \g_@@_family_font_name_prop
\l_xeCJK_family_tl \l_@@_font_name_tl
@@ -7146,7 +7195,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_add_sub_class_features:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_add_sub_class_features:n #1
+\cs_new_protected:Npn \@@_add_sub_class_features:n #1
{
\prop_get:NoNTF \g_@@_family_font_name_prop
{ \l_xeCJK_family_tl/#1 } \l_@@_sub_font_name_tl
@@ -7189,7 +7238,7 @@ Copyright and Licence
% \begin{macrocode}
\keys_define:nn { xeCJK / options }
{ LoadFandol .bool_gset:N = \g_@@_fandol_bool }
-\cs_new_protected_nopar:Npn \@@_load_fandol:
+\cs_new_protected:Npn \@@_load_fandol:
{
\xeCJK_set_family:xnn { \CJKrmdefault }
{ Extension = .otf , BoldFont = FandolSong-Bold , ItalicFont = FandolKai-Regular }
@@ -7241,7 +7290,7 @@ Copyright and Licence
}
{ \xeCJK_ensure_default_family: }
}
-\cs_new_protected_nopar:Npn \xeCJK_ensure_default_family:
+\cs_new_protected:Npn \xeCJK_ensure_default_family:
{
\xeCJK_family_if_exist:xF { \CJKfamilydefault }
{
@@ -7315,8 +7364,9 @@ Copyright and Licence
% \changes{v3.4.0}{2016/05/01}{CJKmath 的字符范围遵从 \tn{xeCJKDeclareCharClass} 的设置。}
% 当没有设置 CJK 数学字体时,使用 \tn{CJKfamilydefault} 作为数学字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_mathfont:
+\cs_new_protected:Npn \xeCJK_set_mathfont:
{
+ \cs_if_exist_use:N \@@_save_um_char:
\xeCJK_family_if_exist:xTF { \c_@@_math_tl }
{ \@@_set_mathfont_aux: }
{
@@ -7326,8 +7376,9 @@ Copyright and Licence
\@@_set_mathfont_aux:
}
}
+ \cs_if_exist_use:N \@@_restore_um_char:
}
-\cs_new_protected_nopar:Npn \@@_set_mathfont_aux:
+\cs_new_protected:Npn \@@_set_mathfont_aux:
{
\tl_const:Nx \c_@@_math_family_tl
{ \l_@@_fontspec_family_tl }
@@ -7354,7 +7405,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_set_mathfont_block:}
% 分区数学字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_set_mathfont_block:
+\cs_new_protected:Npn \xeCJK_set_mathfont_block:
{
\seq_if_empty:NF \g_@@_CJK_sub_class_seq
{
@@ -7363,7 +7414,7 @@ Copyright and Licence
\xeCJK_set_mathfont_block:n
}
}
-\cs_new_protected_nopar:Npn \xeCJK_set_mathfont_block:n #1
+\cs_new_protected:Npn \xeCJK_set_mathfont_block:n #1
{
\xeCJK_block_family:nn { \c_@@_math_tl } {#1}
\prop_get:NoNTF \g_@@_fam_prop
@@ -7378,7 +7429,7 @@ Copyright and Licence
}
\xeCJK_gset_mathcode:cn { g_@@_CJK/#1_range_clist } { \l_@@_fam_int }
}
-\cs_new_protected_nopar:Npn \@@_set_mathfont_block_aux:Nn #1#2
+\cs_new_protected:Npn \@@_set_mathfont_block_aux:Nn #1#2
{
\int_set_eq:NN \l_@@_fam_int #1
\prop_gput:Nnn \g_@@_block_fam_prop {#2} {#1}
@@ -7396,7 +7447,7 @@ Copyright and Licence
% 而 \tn{updefault} 初始值是 \texttt{up},两者并不一致。
% \pkg{fontspec} 包定义字体使用的是 \tn{shapedefault}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_declare_mathfont:nn #1#2
+\cs_new_protected:Npn \xeCJK_declare_mathfont:nn #1#2
{
\xeCJK_declare_symbol_font:nnnnn {#1} { \c_@@_encoding_tl }
{#2} { \mddefault } { \shapedefault }
@@ -7465,7 +7516,7 @@ Copyright and Licence
\cs_new_protected:Npn \@@_new_symbol_font:NN #1#2
{
\tl_put_right:Nn \group@list { \group@elt #1 #2 }
- \cs_set_nopar:Npn \version@elt ##1
+ \cs_set:Npn \version@elt ##1
{ \tl_put_right:Nn ##1 { \getanddefine@fonts #1 #2 } }
\version@list
}
@@ -7478,7 +7529,7 @@ Copyright and Licence
% \xeCJK_gset_mathcode:Nnn,\xeCJK_gset_mathcode:nnnn}
% CJK 字符的数学类别固定为 $0$(\tn{mathord})。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_gset_mathcode:Nn #1#2
+\cs_new_protected:Npn \xeCJK_gset_mathcode:Nn #1#2
{
\clist_map_inline:Nn #1
{
@@ -7487,7 +7538,7 @@ Copyright and Licence
}
}
\cs_generate_variant:Nn \xeCJK_gset_mathcode:Nn { c }
-\cs_new_protected_nopar:Npn \xeCJK_gset_mathcode:nnnn #1#2#3#4
+\cs_new_protected:Npn \xeCJK_gset_mathcode:nnnn #1#2#3#4
{
\@@_check_num_range:nnNN {#1} {#2} \l_@@_begin_int \l_@@_end_int
\xeCJK_int_until_do:nn { \l_@@_begin_int > \l_@@_end_int }
@@ -7496,7 +7547,7 @@ Copyright and Licence
\int_incr:N \l_@@_begin_int
}
}
-\cs_new_protected_nopar:Npn \xeCJK_gset_mathcode:Nnn #1#2#3
+\cs_new_protected:Npn \xeCJK_gset_mathcode:Nnn #1#2#3
{ \tex_global:D \tex_Umathcode:D #1 = #2 ~ #3 ~ #1 }
% \end{macrocode}
% \end{macro}
@@ -7524,7 +7575,7 @@ Copyright and Licence
{ \int_set_eq:NN \l_@@_verb_case_int \l_keys_choice_int } ,
Verb .default:n = { env }
}
-\cs_new_protected_nopar:Npn \@@_verb_font_hook:
+\cs_new_protected:Npn \@@_verb_font_hook:
{
\if_case:w \l_@@_verb_case_int
\or:
@@ -7541,7 +7592,7 @@ Copyright and Licence
}
\@@_after_preamble:n
{
- \cs_set_protected_nopar:Npx \verbatim@font
+ \cs_set_protected:Npx \verbatim@font
{ \exp_not:o { \verbatim@font } \@@_verb_font_hook: }
}
% \end{macrocode}
@@ -7550,7 +7601,7 @@ Copyright and Licence
% \begin{macro}{\@@_nobreak_skip_zero:,\@@_nobreak_skip:}
% \changes{v3.2.8}{2013/11/16}{禁止在 \tn{verb} 中断行。}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_nobreak_skip_zero:
+\cs_new_protected:Npn \@@_nobreak_skip_zero:
{
\@@_reset_shipout_skip:
\cs_set_eq:NN \@@_shipout_check_for_glue: \xeCJK_check_for_glue:
@@ -7567,7 +7618,7 @@ Copyright and Licence
\cs_set_eq:NN \@@_punct_hskip:n \@@_nobreak_hskip:n
\cs_set_eq:NN \@@_punct_breakable_kern:n \@@_nobreak_hskip:n
}
-\cs_new_protected_nopar:Npn \@@_nobreak_skip:
+\cs_new_protected:Npn \@@_nobreak_skip:
{
\@@_reset_shipout_skip:
\xeCJK_glue_to_skip:nN { \CJKglue } \l_@@_ccglue_skip
@@ -7581,16 +7632,16 @@ Copyright and Licence
\cs_set_eq:NN \@@_punct_hskip:n \@@_nobreak_hskip:n
\cs_set_eq:NN \@@_punct_breakable_kern:n \@@_nobreak_hskip:n
}
-\cs_new_protected_nopar:Npn \@@_nobreak_ccglue:
+\cs_new_protected:Npn \@@_nobreak_ccglue:
{ \xeCJK_no_break: \skip_horizontal:N \l_@@_ccglue_skip }
-\cs_new_protected_nopar:Npn \@@_nobreak_ecglue:
+\cs_new_protected:Npn \@@_nobreak_ecglue:
{ \xeCJK_no_break: \skip_horizontal:N \l_@@_ecglue_skip }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_reset_shipout_skip:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_reset_shipout_skip:
+\cs_new_protected:Npn \@@_reset_shipout_skip:
{
\cs_set_eq:NN \@@_shipout_CJKglue: \CJKglue
\cs_set_eq:NN \@@_shipout_CJKecglue: \CJKecglue
@@ -7657,7 +7708,7 @@ Copyright and Licence
\NewDocumentCommand \xeCJKOffVerbAddon { }
{ \tl_use:N \l_@@_off_verb_addon_tl }
\tl_new:N \l_@@_off_verb_addon_tl
-\cs_new_protected_nopar:Npn \@@_verb_addon:
+\cs_new_protected:Npn \@@_verb_addon:
{
\bool_if:NF \l_@@_verb_addon_bool
{
@@ -7671,7 +7722,7 @@ Copyright and Licence
\cs_set_eq:NN \@@_shipout_CJKecglue: \CJKecglue
\cs_set_eq:NN \@@_shipout_check_for_glue: \xeCJK_check_for_glue:
\cs_set_eq:NN \@@_shipout_boundary:w \xeCJK_CJK_and_Boundary:w
- \cs_set_protected_nopar:Npx \xeCJKOffVerbAddon
+ \cs_set_protected:Npx \xeCJKOffVerbAddon
{
\@@_reset_char_class:n { FullLeft }
\@@_reset_char_class:n { FullRight }
@@ -7706,9 +7757,9 @@ Copyright and Licence
\cs_set_eq:NN \xeCJK_check_for_glue: \CJKecglue
\cs_set_eq:NN \xeCJK_CJK_and_Boundary:w \@@_verb_CJK_and_Boundary:w
}
-\cs_new_protected_nopar:Npn \@@_verb_CJK_and_Boundary:w
+\cs_new_protected:Npn \@@_verb_CJK_and_Boundary:w
{ \xeCJK_class_group_end: \CJKecglue }
-\cs_new_protected_nopar:Npn \@@_reset_char_class:n #1
+\cs_new_protected:Npn \@@_reset_char_class:n #1
{
\int_set:Nn \l_@@_tmp_int { \xeCJK_class_num:n {#1} }
\clist_map_inline:cn { c_@@_#1_chars_clist }
@@ -7725,7 +7776,7 @@ Copyright and Licence
% 在抄录环境中,CJK 文字之间的间距为当前西文字体两个空格的宽度与当前字体大小之差,
% 而与西文和空格的间距为 CJK 文字之间的间距的一半。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_verb_exspace:
+\cs_new_protected:Npn \@@_set_verb_exspace:
{
\tl_if_exist:cTF { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size }
{
@@ -7754,7 +7805,7 @@ Copyright and Licence
% \begin{macro}{\@@_set_verb_exspace:n}
% 当两个西文空格的宽度小于一个 CJK 文字的宽度时,对目前使用的 CJK 字体进行适当缩小。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_verb_exspace:n #1
+\cs_new_protected:Npn \@@_set_verb_exspace:n #1
{
\skip_set:Nn \l_@@_verb_exspace_skip
{ 2 \tex_fontdimen:D 2 ~ \tex_font:D - #1 }
@@ -7779,7 +7830,7 @@ Copyright and Licence
% \begin{macro}{\@@_set_verb_scale:nn}
% 缩小 CJK 字体,并保存相关信息。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_set_verb_scale:nn #1#2
+\cs_new_protected:Npn \@@_set_verb_scale:nn #1#2
{
\fp_set:Nn \l_@@_scale_factor_fp { #1 / #2 }
\@@_warning:nxx { scale-factor }
@@ -7811,7 +7862,7 @@ Copyright and Licence
% 如果文档不使用 \texttt{EU1} 作为默认字体编码,那么默认的打字机字体族很可能是
% 传统的 \TeX 字体,这时可视空格按照 \texttt{OT1} 编码传统一般就是字体中的 |\char32|。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_setup_visible_space:
+\cs_new_protected:Npn \xeCJK_setup_visible_space:
{
\xeCJK_make_boundary:
\xeCJK_glyph_if_exist:NTF { ^^^^2423 }
@@ -7841,12 +7892,12 @@ Copyright and Licence
% 的后备,但是 |lmtt| 的字体大小未必与当前字体匹配。因此,这里需要做一些调整,以
% 保证使用后备可视空格符号时,也能保证对齐。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_visible_space_fallback:
+\cs_new_protected:Npn \@@_visible_space_fallback:
{
\exp_args:Nc \@@_visible_space_fallback_auxi:N
{ xeCJK/space/\curr@fontshape/\f@size }
}
-\cs_new_protected_nopar:Npn \@@_visible_space_fallback_auxi:N #1
+\cs_new_protected:Npn \@@_visible_space_fallback_auxi:N #1
{
\cs_if_exist:NF #1
{ \@@_visible_space_fallback_auxii:N #1 }
@@ -7859,16 +7910,16 @@ Copyright and Licence
% 当前字体空格的宽度与后备字体 |lmtt| 不一样时,就对 \tn{textvisiblespace} 的字体尺寸
% 按相应的比例放缩。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_visible_space_fallback_auxii:N #1
+\cs_new_protected:Npn \@@_visible_space_fallback_auxii:N #1
{
\group_begin:
\exp_args:No \@@_set_visible_space_size:n
{ \dim_use:N \tex_fontdimen:D 2 ~ \tex_font:D }
- \cs_new_protected_nopar:Npx #1
+ \cs_new_protected:Npx #1
{ \group_begin: \tex_the:D \tex_font:D ^^^^2423 \group_end: }
\group_end:
}
-\cs_new_protected_nopar:Npn \@@_set_visible_space_size:n #1
+\cs_new_protected:Npn \@@_set_visible_space_size:n #1
{
\fontencoding { \UnicodeEncodingName }
\tl_set:Nn \f@family { lmtt }
@@ -7890,7 +7941,7 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \subsection{\pkg{xeCJK} 其它选项}
+% \subsection{\pkg{xeCJK} 其他选项}
%
% \begin{macro}{LocalConfig}
% \changes{v3.1.0}{2012/11/20}{增加 \texttt{LocalConfig} 选项用于载入本地配置文件。}
@@ -7979,8 +8030,8 @@ Copyright and Licence
%
% \begin{macro}[int]{\CJKsymbol, \CJKpunctsymbol}
% \begin{macrocode}
-\cs_new_nopar:Npn \CJKsymbol #1 {#1}
-\cs_new_nopar:Npn \CJKpunctsymbol #1 {#1}
+\cs_new:Npn \CJKsymbol #1 {#1}
+\cs_new:Npn \CJKpunctsymbol #1 {#1}
% \end{macrocode}
% \end{macro}
%
@@ -8156,7 +8207,7 @@ Copyright and Licence
% \tn{check@mathfonts} 之后生效,不会被它覆盖。
% 更合理的方式是定义一个新的 \tn{mathversion} 来切换。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK@update@fam
+\cs_new_protected:Npn \xeCJK@update@fam
{
\addto@hook \everymath
{
@@ -8164,14 +8215,14 @@ Copyright and Licence
\@@_update_block_fam:
}
}
-\cs_new_protected_nopar:Npn \@@_update_main_fam:
+\cs_new_protected:Npn \@@_update_main_fam:
{
\group_begin:
\xeCJK_select_font:
\exp_last_unbraced:NNNo \group_end:
\tex_textfont:D \c_xeCJK_math_fam_int \tex_the:D \tex_font:D
}
-\cs_new_protected_nopar:Npn \@@_update_block_fam:
+\cs_new_protected:Npn \@@_update_block_fam:
{
\prop_if_empty:NF \g_@@_block_fam_prop
{
@@ -8180,7 +8231,7 @@ Copyright and Licence
\@@_update_block_fam:nn
}
}
-\cs_new_protected_nopar:Npn \@@_update_block_fam:nn #1#2
+\cs_new_protected:Npn \@@_update_block_fam:nn #1#2
{
\int_set:Nn \l_@@_fam_int {#2}
\group_begin:
@@ -8225,12 +8276,12 @@ Copyright and Licence
% \pkg{fixltx2e} 使用 \tn{providecommand}|*| 来定义 \tn{MakeRobust})。但是 \pkg{ulem}
% 的定义并不完全正确,没有考虑 \TeX 不会略去控制符号后面的空格的情况。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_math_robust:N #1
+\cs_new_protected:Npn \@@_math_robust:N #1
{
\group_begin: \exp_args:NcNc \group_end:
{ @@_math_robust_aux:NN } #1 { \cs_to_str:N #1 ~ }
}
-\cs_new_protected_nopar:Npn \@@_math_robust_aux:NN #1#2
+\cs_new_protected:Npn \@@_math_robust_aux:NN #1#2
{
\exp_args:Nx \str_case:nnTF { \cs_replacement_spec:N #1 }
{
@@ -8240,19 +8291,19 @@ Copyright and Licence
{ \@@_math_robust:NN #1#2 }
{ \@@_math_robust:NN #1#1 }
}
-\cs_new_protected_nopar:Npn \@@_math_robust:NN #1#2
+\cs_new_protected:Npn \@@_math_robust:NN #1#2
{
\str_if_eq:eeTF { \cs_argument_spec:N #2 } { }
{
\exp_args:No \tl_if_head_eq_meaning:nNTF {#2} \scan_stop:
{
- \cs_gset_protected_nopar:Npx #1
+ \cs_gset_protected:Npx #1
{ \tl_tail:N #2 }
}
{
\cs_if_eq:NNTF #1 \ensuremath
{
- \cs_gset_protected_nopar:Npx #1
+ \cs_gset_protected:Npx #1
{ \exp_not:o {#2} }
}
{
@@ -8334,13 +8385,13 @@ Copyright and Licence
\tl_set:Nx \f@family {#1}
\xeCJK@fontfamily {#1}
}
- \cs_new_protected_nopar:Npn \xeCJK@fontfamily #1
+ \cs_new_protected:Npn \xeCJK@fontfamily #1
{
\str_if_eq:nnTF {#1} { \familydefault }
{ \xeCJK_switch_family:x { \CJKfamilydefault } }
{ \@@_update_family_aux: }
}
- \cs_new_protected_nopar:Npn \@@_update_family_aux:
+ \cs_new_protected:Npn \@@_update_family_aux:
{
\str_case_e:nn { \f@family }
{
@@ -8378,7 +8429,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK@italiccorr}
% 修复倾斜校正,并处理汉字后面的空格。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK@italiccorr
+\cs_new_protected:Npn \xeCJK@italiccorr
{
\int_compare:nNnTF \tex_XeTeXinterchartokenstate:D > \c_zero_int
{ \xeCJK_italic_correction: }
@@ -8394,12 +8445,12 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_italic_correction:}
% 修复倾斜校正,并处理汉字后面的空格。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_italic_correction:
+\cs_new_protected:Npn \xeCJK_italic_correction:
{
\int_compare:nNnT \tex_lastnodetype:D = { 12 }
{ \@@_italic_correction: }
}
-\cs_new_protected_nopar:Npn \@@_italic_correction:
+\cs_new_protected:Npn \@@_italic_correction:
{
\dim_case:nnF { \tex_lastkern:D }
{
@@ -8431,7 +8482,7 @@ Copyright and Licence
% \verb*|\textit{...} | 等后面原来存在的空格作为完全展开的结束。要正确使用它还
% 需要另外的处理(使用 \cs{exp_stop_f:})。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_italic_correction_aux:
+\cs_new_protected:Npn \@@_italic_correction_aux:
{
\exp_after:wN \exp_after:wN \exp_after:wN
\exp_after:wN \exp_after:wN \exp_after:wN \exp_after:wN
@@ -8469,7 +8520,7 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_set_others_toks:n #1
+\cs_new_protected:Npn \@@_set_others_toks:n #1
{
\int_set:cn { \@@_class_csname:n { Others } } {#1}
\seq_map_inline:Nn \g_@@_CJK_class_seq
@@ -8500,7 +8551,7 @@ Copyright and Licence
% \begin{macro}{\@@_inactive_group_begin:,\@@_inactive_group_end:}
% 用于保护下面歧义宽度标点的分组。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_inactive_group_begin:
+\cs_new_protected:Npn \@@_inactive_group_begin:
{ \group_begin: \makexeCJKinactive }
\cs_new_eq:NN \@@_inactive_group_end: \group_end:
% \end{macrocode}
@@ -8527,7 +8578,7 @@ Copyright and Licence
"2E3A = \texttwoemdash
}
\@@_at_end_preamble:n { \@@_patch_text_command: }
-\cs_new_protected_nopar:Npn \@@_patch_text_command:
+\cs_new_protected:Npn \@@_patch_text_command:
{
\xeCJK_if_package_loaded:nTF { xunicode }
{ \@@_patch_xunicode_ambiguous_char: }
@@ -8538,7 +8589,7 @@ Copyright and Licence
\@@_patch_tuenc_composite:
}
}
-\cs_new_protected_nopar:Npn \@@_patch_xunicode_ambiguous_char:
+\cs_new_protected:Npn \@@_patch_xunicode_ambiguous_char:
{
\RequirePackage { xunicode-addon }
\prop_map_inline:Nn \c_@@_ambiguous_char_prop
@@ -8553,7 +8604,7 @@ Copyright and Licence
}
\xunadd_append_begin_hook:n { \xeCJK_make_boundary: }
}
-\cs_new_protected_nopar:Npn \@@_patch_tuenc_ambiguous_char:n #1
+\cs_new_protected:Npn \@@_patch_tuenc_ambiguous_char:n #1
{
\prop_map_inline:Nn \c_@@_ambiguous_char_prop
{
@@ -8565,13 +8616,13 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_patch_ambiguous_char:nN #1#2
+\cs_new_protected:Npn \@@_patch_ambiguous_char:nN #1#2
{
\exp_args:Nx \@@_patch_ambiguous_char:nn
{ #1 \token_to_str:N #2 }
{ #1 - #2 }
}
-\cs_new_protected_nopar:Npx \@@_patch_ambiguous_char:nNn #1#2#3
+\cs_new_protected:Npx \@@_patch_ambiguous_char:nNn #1#2#3
{
\exp_args:Nx \exp_not:N \@@_patch_ambiguous_char:nn
{
@@ -8581,28 +8632,28 @@ Copyright and Licence
}
{ #1 - #2#3 }
}
-\cs_new_protected_nopar:Npn \@@_patch_ambiguous_char:nn #1#2
+\cs_new_protected:Npn \@@_patch_ambiguous_char:nn #1#2
{
\cs_if_free:cF {#1}
{ \exp_args:Nc \@@_patch_ambiguous_char:Nn {#1} {#2} }
}
-\cs_new_protected_nopar:Npn \@@_patch_ambiguous_char:Nn #1#2
+\cs_new_protected:Npn \@@_patch_ambiguous_char:Nn #1#2
{
\token_if_chardef:NTF #1
{
\prop_gput:Nnx \c_@@_ambiguous_slot_prop {#2}
{ \int_eval:n {#1} }
- \cs_set_protected_nopar:Npx #1
+ \cs_set_protected:Npx #1
{ \@@_ambiguous_char:n { \tex_Uchar:D #1 } }
}
{
\prop_gput:Nnx \c_@@_ambiguous_slot_prop {#2}
{ \int_eval:n { \exp_after:wN ` #1 } }
- \cs_set_protected_nopar:Npx #1
+ \cs_set_protected:Npx #1
{ \@@_ambiguous_char:n { \exp_not:o {#1} } }
}
}
-\cs_new_protected_nopar:Npn \@@_ambiguous_char:n #1
+\cs_new_protected:Npn \@@_ambiguous_char:n #1
{
\int_compare:nNnTF \tex_XeTeXinterchartokenstate:D > \c_zero_int
{ \@@_inactive_group_begin: #1 \@@_inactive_group_end: }
@@ -8618,7 +8669,7 @@ Copyright and Licence
% \tn{DeclareUnicodeComposite} 具有检查字符是否存在的功能,
% 当符号命令紧跟在 CJK 字符类后面时,需要使字体回到西文状态
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_text_composite_patch:
+\cs_new_protected:Npn \xeCJK_text_composite_patch:
{
\str_if_eq:eeT { \f@encoding } { \UnicodeEncodingName }
{ \xeCJK_make_boundary: }
@@ -8627,7 +8678,7 @@ Copyright and Licence
% 注意 \cs{xeCJK_text_composite_patch:} 可能会结束分组,从而导致 |##1| 没有定义时是
% \tn{undefined} 而不是 \tn{relax},所以不能将它与 \tn{relax} 作比较。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_patch_tuenc_composite:
+\cs_new_protected:Npn \@@_patch_tuenc_composite:
{
\cs_set_nopar:Npn \@text@composite@x
{
@@ -8643,7 +8694,7 @@ Copyright and Licence
% \begin{macrocode}
\group_begin:
\char_set_catcode_other:n { "A0 }
-\cs_new_protected_nopar:Npn \@@_patch_tuenc_accent:
+\cs_new_protected:Npn \@@_patch_tuenc_accent:
{
\cs_set_protected_nopar:Npn \add@unicode@accent ##1 ##2
{
@@ -8690,13 +8741,13 @@ Copyright and Licence
T5 = \` \ecircumflex
}
\@@_at_end_preamble:n { \@@_patch_middle_dot: }
-\cs_new_protected_nopar:Npn \@@_patch_middle_dot:
+\cs_new_protected:Npn \@@_patch_middle_dot:
{
\prop_map_inline:Nn \c_@@_middle_dot_prop
{ \@@_patch_middle_dot:nw { ##1 } ##2 \q_stop }
\@@_patch_ambiguous_char:nNn { T5 } \` { \^ - e }
}
-\cs_new_protected_nopar:Npn \@@_patch_middle_dot:nw #1#2#3 \q_stop
+\cs_new_protected:Npn \@@_patch_middle_dot:nw #1#2#3 \q_stop
{
\tl_if_empty:nTF {#3}
{ \@@_patch_ambiguous_char:nN {#1} #2 }
@@ -8705,27 +8756,63 @@ Copyright and Licence
% \end{macrocode}
% \pkg{pifont} 宏包的符号 |\ding{183}| 也有冲突。
% \begin{macrocode}
-\@@_after_end_preamble:n
+\@@_package_hook:nn { pifont }
+ {
+ \RenewDocumentCommand \Pifont { m }
+ { \makexeCJKinactive \usefont { U } {#1} { m } { n } }
+ }
+% \end{macrocode}
+% \end{variable}
+% \end{macro}
+%
+% \changes{v3.8.3}{2020/04/09}{兼容 \pkg{unicode-math} 和 \opt{CJKmath} 选项。}
+%
+% \begin{macro}{\@@_save_um_char:, \@@_save_um_char:}
+% 兼容 \pkg{unicode-math} 和 \opt{CJKmath} 选项,
+% 避免将一些中西文混用的标点设置为 CJK 字体。
+% \begin{macrocode}
+\@@_package_hook:nn { unicode-math }
{
- \xeCJK_if_package_loaded:nT { pifont }
+ \prop_const_from_keyval:Nn \c_@@_um_ambiguous_char_prop
+ {
+ "00B7 = \cdotp ,
+ "2025 = \enleadertwodots ,
+ "2026 = \unicodeellipsis
+ }
+ \cs_new_protected:Npn \@@_save_um_char:
{
- \RenewDocumentCommand \Pifont { m }
- { \makexeCJKinactive \usefont { U } {#1} { m } { n } }
+ \cs_set_protected:Npx \@@_restore_um_char:
+ {
+ \prop_map_function:NN
+ \c_@@_um_ambiguous_char_prop
+ \@@_restore_um_char_aux:nn
+ }
+ }
+ \cs_new_eq:NN \@@_restore_um_char: \prg_do_nothing:
+ \cs_new:Npn \@@_restore_um_char_aux:nn #1#2
+ {
+ \@@_gset_mathcodenum:nn
+ { \int_value:w #1 }
+ { \int_value:w \tex_Umathcodenum:D #1 }
+ }
+ \cs_new_protected:Npn \@@_gset_mathcodenum:nn #1#2
+ {
+ \int_compare:nNnF { \tex_Umathcodenum:D #1 } = {#2}
+ { \tex_global:D \tex_Umathcodenum:D #1 = #2 ~ }
}
}
% \end{macrocode}
-% \end{variable}
% \end{macro}
%
% \begin{macro}{\@@_patch_microtype_get_slot:}
% 兼容 \pkg{microtype}。
% \begin{macrocode}
-\@@_at_end_preamble:n
+\@@_package_hook:nn { microtype }
{
\cs_if_free:NF \MT@get@slot@
{ \@@_patch_microtype_get_slot: }
}
-\cs_new_protected_nopar:Npn \@@_patch_microtype_get_slot:
+\cs_new_protected:Npn \@@_patch_microtype_get_slot:
{
\cs_new_eq:NN \xeCJK@original@get@slot \MT@get@slot@
\cs_set_eq:NN \MT@get@slot@ \xeCJK@microtype@get@slot
@@ -8737,7 +8824,7 @@ Copyright and Licence
{ \@@_get_ambiguous_slot: }
\xeCJK@original@get@slot
}
-\cs_new_protected_nopar:Npn \@@_get_ambiguous_slot:
+\cs_new_protected:Npn \@@_get_ambiguous_slot:
{
\exp_args:NNx \prop_get:NnNT \c_@@_ambiguous_slot_prop
{ \MT@encoding - \tex_the:D \MT@toks } \l_@@_tmp_tl
@@ -8748,17 +8835,15 @@ Copyright and Licence
%
% 简单处理与 \pkg{hyperref} 宏包的兼容问题。
% \begin{macrocode}
-\@@_after_end_preamble:n
+\@@_package_hook:nn { hyperref }
{
- \cs_if_exist_use:NT \pdfstringdefDisableCommands
+ \pdfstringdefDisableCommands
{
- {
- \@@_gobble_CJKfamily:
- \xeCJK_cs_clear:N \@@_inactive_group_begin:
- \xeCJK_cs_clear:N \@@_inactive_group_end:
- \xeCJK_cs_clear:N \makexeCJKinactive
- \xeCJK_cs_clear:N \xeCJK@composite@patch
- }
+ \@@_gobble_CJKfamily:
+ \xeCJK_cs_clear:N \@@_inactive_group_begin:
+ \xeCJK_cs_clear:N \@@_inactive_group_end:
+ \xeCJK_cs_clear:N \makexeCJKinactive
+ \xeCJK_cs_clear:N \xeCJK@composite@patch
}
}
% \end{macrocode}
@@ -8766,11 +8851,9 @@ Copyright and Licence
% \changes{v3.1.0}{2012/11/13}{取消 \tn{cprotect} 的外部宏限制。}
% 当探测到 \pkg{cprotect} 宏包被引入时,则取消 \tn{cprotect} 宏的 \tn{outer} 定义。
% \begin{macrocode}
-\@@_after_end_preamble:n
+\@@_package_hook:nn { cprotect }
{
- \bool_lazy_and:nnT
- { \xeCJK_if_package_loaded_p:n { cprotect } }
- { \cs_if_exist_p:N \icprotect }
+ \cs_if_free:NF \icprotect
{ \exp_after:wN \tex_let:D \cs:w cprotect \cs_end: \icprotect }
}
% \end{macrocode}
@@ -8778,30 +8861,21 @@ Copyright and Licence
% \changes{v3.2.11}{2014/03/14}{删除 \tn{xeCJKcaption}。}
% \changes{v3.8.0}{2020/02/09}{删除 \pkg{CJKfntef} 补丁。}
%
-% 导言区末尾检测到 \pkg{listings} 时,自动载入 \pkg{xeCJK-listings}。
+% 在 \pkg{listings} 宏包后自动载入 \pkg{xeCJK-listings}。
% \begin{macrocode}
-\@@_at_end_preamble:n
- {
- \xeCJK_if_package_loaded:nT { listings }
- { \RequirePackage { xeCJK-listings } }
- }
+\@@_package_hook:nn { listings }
+ { \RequirePackage { xeCJK-listings } }
% \end{macrocode}
%
%
% \changes{v3.3.3}{2015/12/12}{解决与 \pkg{microtype} 宏包的兼容问题。}
-% 由于 \pkg{xeCJK} 假装 \pkg{CJK} 已经被引入了,这回导致 \pkg{everysel} 和
+% 由于 \pkg{xeCJK} 假装 \pkg{CJK} 已经被引入了,这会导致 \pkg{everysel} 和
% \pkg{microtype} 等宏包判断错误。需要在它们判断之前取消定义。
% \begin{macrocode}
-\@@_at_end_preamble:n
+\clist_map_inline:nn { everysel , microtype }
{
- \clist_map_inline:nn { everysel , microtype }
- {
- \xeCJK_if_package_loaded:nT {#1}
- {
- \cs_undefine:c { ver@CJK . \c_@@_package_ext_tl }
- \clist_map_break:
- }
- }
+ \@@_package_hook:nn {#1}
+ { \cs_undefine:c { ver@CJK . \c_@@_package_ext_tl } }
}
% \end{macrocode}
%
@@ -8831,7 +8905,7 @@ Copyright and Licence
{ \cs_new_eq:NN \Unicode \xeCJK_unicode_char:nn }
}
}
-\cs_new_nopar:Npn \xeCJK_unicode_char:nn #1#2
+\cs_new:Npn \xeCJK_unicode_char:nn #1#2
{ \tex_Uchar:D \tex_numexpr:D (#1) * 256 + (#2) \scan_stop: }
% \end{macrocode}
% \end{macro}
@@ -8884,7 +8958,7 @@ Copyright and Licence
% \changes{v3.1.0}{2012/11/16}{简化对 \pkg{ulem} 宏包的兼容补丁。}
% \changes{v3.1.1}{2012/12/08}{完全处理下划线里的标点符号的有关问题。}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_hook_for_ulem:
+\cs_new_protected:Npn \xeCJK_hook_for_ulem:
{
\xeCJK_ulem_detect_node:
\l_@@_ulem_text_format_tl
@@ -8895,7 +8969,7 @@ Copyright and Licence
}
\xeCJK_ulem_begin_node:
}
-\cs_new_protected_nopar:Npn \@@_ulem_hook:
+\cs_new_protected:Npn \@@_ulem_hook:
{
\@@_ulem_initial:
\bool_if:NT \l_@@_ulem_subtract_bool
@@ -8931,11 +9005,11 @@ Copyright and Licence
\CJKecglue
} \l_@@_ecglue_skip
\xeCJK_glue_to_skip:nN { \xeCJK_space_glue: } \l_@@_space_skip
- \cs_set_protected_nopar:Npn \CJKglue
+ \cs_set_protected:Npn \CJKglue
{ \@@_ulem_glue:n \l_@@_ccglue_skip }
- \cs_set_protected_nopar:Npn \CJKecglue
+ \cs_set_protected:Npn \CJKecglue
{ \@@_ulem_glue:n \l_@@_ecglue_skip }
- \cs_set_protected_nopar:Npn \xeCJK_space_glue:
+ \cs_set_protected:Npn \xeCJK_space_glue:
{ \@@_ulem_glue:n \l_@@_space_skip }
\cs_set_eq:NN \xeCJK_punct_node:N \use_none:n
\cs_set_eq:NN \xeCJK_if_last_punct:TF \use_ii:nn
@@ -8950,7 +9024,7 @@ Copyright and Licence
% \begin{macro}[int]{\UL@word,\xeCJK_ulem_word:nw}
% 修改 \tn{UL@word},目的是取得分组中的 \tn{UL@leadtype},以便加入 \cs{xeCJK_ulem_right_skip:}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ulem_word:nw #1 ~
+\cs_new_protected:Npn \xeCJK_ulem_word:nw #1 ~
{
\exp_after:wN \UL@start #1 ~
\exp_after:wN \if_meaning:w \exp_after:wN \UL@end #1
@@ -8959,7 +9033,7 @@ Copyright and Licence
\exp_after:wN \@@_ulem_loop:nw
\fi:
}
-\cs_new_protected_nopar:Npn \@@_ulem_end:
+\cs_new_protected:Npn \@@_ulem_end:
{
\c_group_end_token
\c_group_end_token
@@ -8969,7 +9043,7 @@ Copyright and Licence
\xeCJK_ulem_right_node:
\int_set:Nn \tex_spacefactor:D { \UL@spfactor }
}
-\cs_new_protected_nopar:Npn \@@_ulem_loop:nw
+\cs_new_protected:Npn \@@_ulem_loop:nw
{
\reverse_if:N \if_mode_math:
\reverse_if:N \if_dim:w \tex_lastskip:D = \c_zero_dim
@@ -8987,13 +9061,13 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_ulem_left:, \xeCJK_ulem_detect_node:}
% 在下划线开始之前探测之前的 \texttt{node},以便随后插入 \tn{CJKglue} 或 \tn{CJKecglue}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ulem_left:
+\cs_new_protected:Npn \xeCJK_ulem_left:
{
\xeCJK_ulem_left_node:
\xeCJK_make_group_tag:
}
\cs_new_eq:NN \xeCJK_ulem_left_node: \prg_do_nothing:
-\cs_new_protected_nopar:Npn \xeCJK_ulem_detect_node:
+\cs_new_protected:Npn \xeCJK_ulem_detect_node:
{
\scan_stop:
\dim_compare:nNnTF \tex_lastkern:D = \c_zero_dim
@@ -9008,12 +9082,12 @@ Copyright and Licence
\dim_compare:nNnTF \tex_lastkern:D = { - \l_@@_tmp_dim }
{
\tex_unkern:D
- \cs_set_protected_nopar:Npx \xeCJK_ulem_left_node:
+ \cs_set_protected:Npx \xeCJK_ulem_left_node:
{
\tex_kern:D - \dim_use:N \l_@@_tmp_dim \exp_stop_f:
\tex_kern:D \dim_use:N \l_@@_tmp_dim \exp_stop_f:
}
- \cs_set_protected_nopar:Npn \xeCJK_ulem_begin_node:
+ \cs_set_protected:Npn \xeCJK_ulem_begin_node:
{ { \xeCJK_make_node:n { ulem-begin } } }
\cs_set_eq:NN \@@_ulem_hskip:n \@@_ulem_hskip_first:n
}
@@ -9034,7 +9108,7 @@ Copyright and Licence
% 如果第一次调用的 \tn{CJKglue} 或 \tn{CJKecglue} 由下划线中的第一个文字和之前的
% 内容产生,就不用画下划线。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_hskip_first:n #1
+\cs_new_protected:Npn \@@_ulem_hskip_first:n #1
{
\xeCJK_if_last_node:nTF { ulem-begin }
{
@@ -9045,7 +9119,7 @@ Copyright and Licence
\cs_set_eq:NN \@@_ulem_hskip:n \xeCJK_ulem_hskip:n
}
\cs_new_eq:NN \@@_ulem_hskip:n \@@_ulem_hskip_first:n
-\cs_new_protected_nopar:Npn \xeCJK_ulem_hskip:n #1
+\cs_new_protected:Npn \xeCJK_ulem_hskip:n #1
{ { \skip_set:Nn \UL@skip {#1} \UL@leaders } }
% \end{macrocode}
% \end{macro}
@@ -9053,7 +9127,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_ulem_right:, \xeCJK_ulem_right_node:}
% 在下划线最后的位置保存 \texttt{node}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ulem_right:
+\cs_new_protected:Npn \xeCJK_ulem_right:
{
\scan_stop:
\dim_compare:nNnTF \tex_lastkern:D = \c_zero_dim
@@ -9067,12 +9141,12 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_ulem_right_aux:n #1
+\cs_new_protected:Npn \@@_ulem_right_aux:n #1
{
\dim_compare:nNnTF \tex_lastkern:D = { - #1 }
{
\tex_unkern:D
- \cs_gset_protected_nopar:Npn \xeCJK_ulem_right_node:
+ \cs_gset_protected:Npn \xeCJK_ulem_right_node:
{
\tex_kern:D - #1 \exp_stop_f:
\tex_kern:D #1 \exp_stop_f:
@@ -9091,9 +9165,9 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_ulem_var_leaders:}
% 第一次画下划线时,不需要向左平移 \tn{UL@pixel},让左侧有间距。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ulem_leaders:
+\cs_new_protected:Npn \xeCJK_ulem_leaders:
{ \@@_ulem_var_leaders: }
-\cs_new_protected_nopar:Npn \xeCJK_ulem_var_leaders:
+\cs_new_protected:Npn \xeCJK_ulem_var_leaders:
{
\scan_stop:
\skip_if_eq:nnF { \UL@skip } { \c_zero_skip }
@@ -9112,7 +9186,7 @@ Copyright and Licence
% 重新画一个减少 \tn{UL@pixel} 的。
% \begin{macrocode}
\cs_new_eq:NN \xeCJK_ulem_right_skip: \prg_do_nothing:
-\cs_new_protected_nopar:Npn \@@_ulem_right_skip:
+\cs_new_protected:Npn \@@_ulem_right_skip:
{
\int_case:nn { \tex_lastnodetype:D }
{
@@ -9121,7 +9195,7 @@ Copyright and Licence
{ 13 } { \@@_ulem_right_skip_penalty: }
}
}
-\cs_new_protected_nopar:Npn \@@_ulem_right_skip_hbox:
+\cs_new_protected:Npn \@@_ulem_right_skip_hbox:
{
\box_set_to_last:N \l_@@_tmp_box
\int_compare:nNnTF \tex_lastnodetype:D = { 12 }
@@ -9129,7 +9203,7 @@ Copyright and Licence
{ \@@_ulem_right_skip_glue: }
\box_use_drop:N \l_@@_tmp_box
}
-\cs_new_protected_nopar:Npn \@@_ulem_right_skip_kern:
+\cs_new_protected:Npn \@@_ulem_right_skip_kern:
{
\dim_set:Nn \l_@@_tmp_dim { - \box_wd:N \l_@@_tmp_box }
\dim_compare:nNnT \tex_lastkern:D = \l_@@_tmp_dim
@@ -9139,7 +9213,7 @@ Copyright and Licence
\tex_kern:D \l_@@_tmp_dim
}
}
-\cs_new_protected_nopar:Npn \@@_ulem_right_skip_glue:
+\cs_new_protected:Npn \@@_ulem_right_skip_glue:
{
\skip_if_eq:nnT { \tex_lastskip:D } { - \UL@pixel }
{
@@ -9149,7 +9223,7 @@ Copyright and Licence
\UL@leadtype \skip_horizontal:N \l_@@_tmp_skip
}
}
-\cs_new_protected_nopar:Npn \@@_ulem_right_skip_penalty:
+\cs_new_protected:Npn \@@_ulem_right_skip_penalty:
{
\int_set_eq:NN \l_@@_tmp_int \tex_lastpenalty:D
\tex_unpenalty:D
@@ -9160,39 +9234,43 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.8.3}{2020/04/23}{\opt{hidden} 选项保留原内容的高度和深度。}
+%
% \begin{macro}{\@@_ulem_hidden_box:}
% 只画线,不输出盒子。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_hidden_box:
+\cs_new_protected:Npn \@@_ulem_hidden_box:
{
\tl_if_empty:NF \UL@start
{
- \box_use:N \c_@@_null_box
+ \box_set_ht:Nn \l_@@_hidden_box { \box_ht:N \UL@box }
+ \box_set_dp:Nn \l_@@_hidden_box { \box_dp:N \UL@box }
+ \box_use:N \l_@@_hidden_box
\xeCJK_no_break:
\xeCJK_ulem_hskip:n { \box_wd:N \UL@box }
- \box_use:N \c_@@_null_box
+ \box_use:N \l_@@_hidden_box
}
}
-\box_new:N \c_@@_null_box
-\hbox_gset:Nn \c_@@_null_box { }
+\box_new:N \l_@@_hidden_box
+\hbox_set:Nn \l_@@_hidden_box { }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_ulem_skip_punct_begin:,\@@_ulem_skip_punct_end:}
% 让下划线跳过标点符号的设置。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_skip_punct_begin:
+\cs_new_protected:Npn \@@_ulem_skip_punct_begin:
{
\cs_set_eq:NN \UL@putbox \@@_ulem_skip_putbox:
\cs_set_eq:NN \xeCJK_ulem_hskip:n \skip_horizontal:n
}
-\cs_new_protected_nopar:Npn \@@_ulem_skip_punct_end:
+\cs_new_protected:Npn \@@_ulem_skip_punct_end:
{
\cs_set_eq:NN \UL@putbox \@@_ulem_putbox:
\cs_set_eq:NN \xeCJK_ulem_hskip:n \@@_ulem_hskip_aux:n
}
\cs_new_eq:NN \@@_ulem_putbox: \UL@putbox
-\cs_new_protected_nopar:Npn \@@_ulem_skip_putbox:
+\cs_new_protected:Npn \@@_ulem_skip_putbox:
{
\tl_if_empty:NF \UL@start
{ \box_use_drop:N \UL@box }
@@ -9204,7 +9282,7 @@ Copyright and Licence
% 这里的设置是为了在下划线状态下,下划线可以自动跳过全角标点符号和正确的在它们
% 前/后断行,并且与行首行末对齐。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_initial:
+\cs_new_protected:Npn \@@_ulem_initial:
{
\@@_ulem_swap_cs:NN
\xeCJK_FullLeft_and_Default: \@@_ulem_FullLeft_and_Default:
@@ -9241,7 +9319,7 @@ Copyright and Licence
}
}
}
-\cs_new_protected_nopar:Npn \@@_ulem_swap_cs:NN #1#2
+\cs_new_protected:Npn \@@_ulem_swap_cs:NN #1#2
{
\quark_if_recursion_tail_stop:N #1
\xeCJK_swap_cs:NN #1#2
@@ -9257,7 +9335,7 @@ Copyright and Licence
% \verb*|\ | 等的定义,此时不需要使用 \tn{UL@stop} 和 \tn{UL@start} 来断开下划线而
% 产生断点。
% \begin{macrocode}
-\cs_new_nopar:Npn \xeCJK_if_ulem_patch:TF
+\cs_new:Npn \xeCJK_if_ulem_patch:TF
{
\if_meaning:w \ \LA@space
\exp_after:wN \use_ii:nn
@@ -9270,7 +9348,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_CJK_and_Boundary:w}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_CJK_and_Boundary:w
+\cs_new_protected:Npn \@@_ulem_CJK_and_Boundary:w
{
\xeCJK_if_ulem_patch:TF
{
@@ -9300,7 +9378,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_fix_penalty:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_fix_penalty:
+\cs_new_protected:Npn \@@_ulem_fix_penalty:
{
\xeCJK_if_ulem_patch:TF
{ \fix@penalty }
@@ -9311,7 +9389,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_CJK_and_CJK:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_CJK_and_CJK:N
+\cs_new_protected:Npn \@@_ulem_CJK_and_CJK:N
{
\xeCJK_if_ulem_patch:TF
{
@@ -9328,7 +9406,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_class_group_begin:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_class_group_begin:
+\cs_new_protected:Npn \@@_ulem_class_group_begin:
{
\xeCJK_class_group_begin:
\xeCJK_clear_Boundary_and_CJK_toks:
@@ -9338,7 +9416,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_between_CJK_blocks:nnN}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_between_CJK_blocks:nnN #1#2
+\cs_new_protected:Npn \@@_ulem_between_CJK_blocks:nnN #1#2
{
\xeCJK_if_ulem_patch:TF
{
@@ -9360,7 +9438,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_Default_and_FullLeft_glue:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_Default_and_FullLeft_glue:N #1
+\cs_new_protected:Npn \@@_ulem_Default_and_FullLeft_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
@@ -9376,7 +9454,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_Boundary_and_FullLeft_glue:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_Boundary_and_FullLeft_glue:N #1
+\cs_new_protected:Npn \@@_ulem_Boundary_and_FullLeft_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
@@ -9392,7 +9470,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_CJK_and_FullLeft_glue:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_CJK_and_FullLeft_glue:N #1
+\cs_new_protected:Npn \@@_ulem_CJK_and_FullLeft_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
@@ -9412,7 +9490,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_Default_and_FullRight_glue:N}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_Default_and_FullRight_glue:N #1
+\cs_new_protected:Npn \@@_ulem_Default_and_FullRight_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
@@ -9436,7 +9514,7 @@ Copyright and Licence
% \begin{macro}{\@@_ulem_CJK_and_FullRight_glue:N}
% \changes{v3.2.2}{2013/05/30}{修正下划线不能跳过全角右标点的问题。}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_CJK_and_FullRight_glue:N #1
+\cs_new_protected:Npn \@@_ulem_CJK_and_FullRight_glue:N #1
{
\xeCJK_if_ulem_patch:TF
{
@@ -9463,7 +9541,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_FullLeft_and_Default:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_FullLeft_and_Default:
+\cs_new_protected:Npn \@@_ulem_FullLeft_and_Default:
{
\xeCJK_if_ulem_patch:TF
{
@@ -9486,7 +9564,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_FullLeft_and_Boundary:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_FullLeft_and_Boundary:
+\cs_new_protected:Npn \@@_ulem_FullLeft_and_Boundary:
{
\xeCJK_if_ulem_patch:TF
{
@@ -9512,7 +9590,7 @@ Copyright and Licence
% \changes{v3.2.3}{2013/06/04}
% {修正全角左标点后下划线与 \tn{CJKunderdot} 连用时结果不正常的问题。}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_FullLeft_and_CJK:
+\cs_new_protected:Npn \@@_ulem_FullLeft_and_CJK:
{
\xeCJK_if_ulem_patch:TF
{
@@ -9527,7 +9605,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_FullRight_and_Default:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_FullRight_and_Default:
+\cs_new_protected:Npn \@@_ulem_FullRight_and_Default:
{
\xeCJK_if_ulem_patch:TF
{
@@ -9545,7 +9623,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_FullRight_and_Boundary:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_FullRight_and_Boundary:
+\cs_new_protected:Npn \@@_ulem_FullRight_and_Boundary:
{
\xeCJK_if_ulem_patch:TF
{
@@ -9564,7 +9642,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_FullRight_and_CJK:}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_FullRight_and_CJK:
+\cs_new_protected:Npn \@@_ulem_FullRight_and_CJK:
{
\xeCJK_if_ulem_patch:TF
{
@@ -9585,7 +9663,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_punct_hskip:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_punct_hskip:n
+\cs_new_protected:Npn \@@_ulem_punct_hskip:n
{
\xeCJK_if_ulem_patch:TF
{ \xeCJK_ulem_hskip:n }
@@ -9596,7 +9674,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_ulem_punct_breakable_kern:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_punct_breakable_kern:n #1
+\cs_new_protected:Npn \@@_ulem_punct_breakable_kern:n #1
{
\xeCJK_if_ulem_patch:TF
{
@@ -9613,7 +9691,7 @@ Copyright and Licence
% \begin{macro}{\@@_ulem_glue:n,\@@_ulem_ccglue:,\@@_ulem_punct_ccglue:}
% 在下划线状态下的分别代替 \tn{CJKglue} 等。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_ulem_glue:n #1
+\cs_new_protected:Npn \@@_ulem_glue:n #1
{
\xeCJK_if_ulem_patch:TF
{
@@ -9627,7 +9705,7 @@ Copyright and Licence
}
{ \skip_horizontal:n {#1} }
}
-\cs_new_protected_nopar:Npn \xeCJK_make_group_tag:
+\cs_new_protected:Npn \xeCJK_make_group_tag:
{ \tl_set:Nx \l_@@_group_tag_tl { \c_@@_group_tag_tl } }
\tl_new:N \l_@@_group_tag_tl
\tl_const:Nn \c_@@_group_tag_tl
@@ -9635,23 +9713,23 @@ Copyright and Licence
T \int_use:N \tex_currentgrouptype:D
L \int_use:N \tex_currentgrouplevel:D
}
-\cs_new_protected_nopar:Npn \@@_ulem_ccglue:
+\cs_new_protected:Npn \@@_ulem_ccglue:
{ { \skip_set_eq:NN \UL@skip \l_@@_ccglue_skip \UL@leaders } }
-\cs_new_protected_nopar:Npn \@@_ulem_punct_ccglue:
+\cs_new_protected:Npn \@@_ulem_punct_ccglue:
{ \@@_punct_hskip:n { \l_@@_ccglue_skip } }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\xeCJK_ulem_group_begin:,\xeCJK_ulem_group_end:,\xeCJK_ulem_on:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_ulem_group_begin:
+\cs_new_protected:Npn \xeCJK_ulem_group_begin:
{
\mode_leave_vertical:
\c_group_begin_token
}
-\cs_new_protected_nopar:Npn \xeCJK_ulem_group_end:
+\cs_new_protected:Npn \xeCJK_ulem_group_end:
{ \c_group_end_token }
-\cs_new_protected_nopar:Npn \xeCJK_ulem_on:n
+\cs_new_protected:Npn \xeCJK_ulem_on:n
{ \ULon }
\cs_new_eq:NN \@@_ulem_on:n \UL@on
\cs_set_protected:Npn \UL@on #1
@@ -9843,7 +9921,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_fntef_initial:n}
% 不支持下划线的嵌套使用。下划线嵌套使用时,里层的下划线会被放在盒子里,不能折行。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_fntef_initial:n
+\cs_new_protected:Npn \xeCJK_fntef_initial:n
{
\bool_if:NTF \l_@@_nest_bool
{ \@@_warning:n { fntef-nesting } }
@@ -10001,20 +10079,10 @@ Copyright and Licence
sout / height = 0.35 em ,
xout / skip = true
}
-\cs_if_free:NF \color
- {
- \keys_set:nn { xeCJK / options }
- {
- underdot / format = \color { red } ,
- underline / format = \color { blue } ,
- underdblline / format = \color { blue } ,
- underwave / format = \color { blue } ,
- sout / format = \color { red } ,
- xout / format = \color { blue }
- }
- }
% \end{macrocode}
%
+% \changes{v3.8.3}{2020/04/07}{取消 \pkg{xeCJKfntef} 的初始彩色设置。}
+%
% \begin{macro}{\CJKunderanysymbol}
% \begin{macrocode}
\NewDocumentCommand \CJKunderanysymbol { o m m m }
@@ -10044,7 +10112,7 @@ Copyright and Licence
% \begin{macro}[int]{\xeCJK_under_symbol:nnnnnn}
% 当处在下划线中时,我们先断开下划线,在分组外设置下划符号。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_under_symbol:nnnnnn
+\cs_new_protected:Npn \xeCJK_under_symbol:nnnnnn
{
\xeCJK_if_ulem_patch:TF
{ \@@_under_symbol_auxi:nnnnnn }
@@ -10153,7 +10221,7 @@ Copyright and Licence
% \begin{macro}{\@@_under_CJKsymbol:N}
% 盒子放在汉字的左侧,比较容易处理状态转移的问题。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_under_CJKsymbol:N
+\cs_new_protected:Npn \@@_under_CJKsymbol:N
{
\box_use:N \l_@@_under_symbol_box
\xeCJK_no_break: \@@_under_CJKsymbol:N
@@ -10209,7 +10277,7 @@ Copyright and Licence
% \pkg{colortbl} 将表格 |c| 列用于填充的 \tn{hfil} 改为了更高阶的 \texttt{fill},
% 影响到了 \env{CJKfilltwosides*}。因此,我们也要用高阶的 \texttt{filll}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xeCJK_fntef_hfilll:
+\cs_new_protected:Npn \xeCJK_fntef_hfilll:
{ \skip_horizontal:N \c_@@_filll_skip }
\skip_const:Nn \c_@@_filll_skip { \c_zero_dim plus 1 filll }
% \end{macrocode}
@@ -10266,7 +10334,7 @@ Copyright and Licence
% \tn{lst@prebreak} 和 \tn{lst@postbreak} 是在 \tn{discretionary} 中直接输出的,
% 应该恢复正常的 \tn{XeTeXinterchartoks}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_initial_hook:
+\cs_new_protected:Npn \@@_listings_initial_hook:
{
\tex_noindent:D
\bool_gset_false:N \g_@@_listings_CM_bool
@@ -10290,7 +10358,7 @@ Copyright and Licence
% 采用不同的 \tn{XeTeXinterchartoks} 处理方式,输入的时候是将汉字加入到 \pkg{listings}
% 的输出队列,实际输出的时候是普通文字。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_toks_hook:
+\cs_new_protected:Npn \@@_listings_toks_hook:
{
\tl_clear:N \l_@@_restore_listings_toks_tl
\seq_map_function:NN
@@ -10313,7 +10381,7 @@ Copyright and Licence
% \begin{macro}{\@@_backup_inter_class_toks:n}
% 注意,给 \tn{XeTeXinterchartoks} 赋空值,会导致 \XeTeX 崩溃!
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_backup_inter_class_toks:n #1
+\cs_new_protected:Npn \@@_backup_inter_class_toks:n #1
{
\tl_set:Nx \l_@@_tmp_tl
{ \xeCJK_get_inter_class_toks:nn { Boundary } {#1} }
@@ -10334,7 +10402,7 @@ Copyright and Licence
% \begin{macro}{\@@_listings_CJK_toks_hook:,\@@_listings_breaklines_toks:}
% 根据 \texttt{breaklines} 选项的使用与否,选择不同的处理方式。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_CJK_toks_hook:
+\cs_new_protected:Npn \@@_listings_CJK_toks_hook:
{
\xeCJK_inter_class_toks:nnn { Boundary } { CJK }
{ \@@_listings_process_CJK:nN { 2 } }
@@ -10350,7 +10418,7 @@ Copyright and Licence
{ \@@_listings_process_CJK:nN { 2 } }
}
}
-\cs_new_protected_nopar:Npn \@@_listings_breaklines_toks:
+\cs_new_protected:Npn \@@_listings_breaklines_toks:
{
\xeCJK_inter_class_toks:nnn { Boundary } { CJK }
{ \@@_listings_process_breaklines_CJK:nN { 2 } }
@@ -10376,7 +10444,7 @@ Copyright and Licence
% 七位或八位字符。}
% 对于 \tn{charcode} 大于 $255$ 的字符,根据 \tn{catcode} 进行处理。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_process_Default:nN #1#2
+\cs_new_protected:Npn \@@_listings_process_Default:nN #1#2
{
\int_compare:nNnTF
{ \xeCJK_token_value_charcode:N #2 } > \l_@@_listings_max_char_int
@@ -10391,7 +10459,7 @@ Copyright and Licence
% 输出时,要注意把对应的 \tn{XeTeXinterchartoks} 清空掉,否则会造成死循环。
% \cs{scan_stop:} 是造边界,输出 \cs{group_end:}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_output_Default:nN #1#2
+\cs_new_protected:Npn \@@_listings_output_Default:nN #1#2
{
\group_begin:
\xeCJK_clear_inter_class_toks:nn { Boundary } {#1}
@@ -10405,7 +10473,7 @@ Copyright and Licence
% \begin{macro}{\@@_listings_process_CJK:nN}
% 对 CJK 字符类的处理。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_process_CJK:nN #1#2
+\cs_new_protected:Npn \@@_listings_process_CJK:nN #1#2
{
\token_if_letter:NTF #2
{ \@@_listings_process_letter:nN {#1} #2 }
@@ -10419,7 +10487,7 @@ Copyright and Licence
% 对 CJK 字符类中的一些半角字符(例如半角日文假名)没有区分开。\pkg{listings} 通过
% 重定义 \tn{lst@Append} 将代码写入外部文件,因此需要保留。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_append:nN #1#2
+\cs_new_protected:Npn \@@_listings_append:nN #1#2
{
\int_add:Nn \lst@length { #1 - 1 }
\lst@Append #2
@@ -10430,7 +10498,7 @@ Copyright and Licence
% \begin{macro}{\@@_listings_process_letter:nN,\@@_listings_process_other:nN}
% 在 \texttt{letter} 类中区分汉字和西文字母。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_process_letter:nN
+\cs_new_protected:Npn \@@_listings_process_letter:nN
{
\lst@whitespacefalse
\bool_if:NTF \l_@@_listings_letter_bool
@@ -10442,7 +10510,7 @@ Copyright and Licence
\@@_listings_append:nN
}
\bool_new:N \l_@@_listings_letter_bool
-\cs_new_protected_nopar:Npn \@@_listings_process_other:nN #1#2
+\cs_new_protected:Npn \@@_listings_process_other:nN #1#2
{
\lst@whitespacefalse
\bool_if:NTF \l_@@_listings_letter_bool
@@ -10467,7 +10535,7 @@ Copyright and Licence
% 当使用 \texttt{breaklines} 选项时,立即输出之前的单个文字,以便于断行。并将标点
% 与它前/后的 CJK 文字放在同一个盒子中,以保持禁则。但是不能区分 letter 和 other。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_process_breaklines_CJK:nN
+\cs_new_protected:Npn \@@_listings_process_breaklines_CJK:nN
{
\lst@whitespacefalse
\bool_if:NTF \l_@@_listings_letter_bool
@@ -10482,7 +10550,7 @@ Copyright and Licence
\int_set_eq:NN \l_@@_listings_flag_int \c_one_int
\@@_listings_append:nN
}
-\cs_new_protected_nopar:Npn \@@_listings_process_FullLeft:nN #1#2
+\cs_new_protected:Npn \@@_listings_process_FullLeft:nN #1#2
{
\lst@whitespacefalse
\bool_if:NTF \l_@@_listings_letter_bool
@@ -10502,7 +10570,7 @@ Copyright and Licence
\int_set:Nn \l_@@_listings_flag_int { 2 }
\@@_listings_append:nN {#1} #2
}
-\cs_new_protected_nopar:Npn \@@_listings_process_FullRight:nN #1#2
+\cs_new_protected:Npn \@@_listings_process_FullRight:nN #1#2
{
\lst@whitespacefalse
\bool_if:NTF \l_@@_listings_letter_bool
@@ -10524,7 +10592,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\lst@AppendLetter,\lst@AppendOther}
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \lst@AppendLetter
+\cs_set_protected:Npn \lst@AppendLetter
{
\bool_if:NTF \l_@@_listings_letter_bool
{
@@ -10535,7 +10603,7 @@ Copyright and Licence
\lst@ifbreaklines \int_zero:N \l_@@_listings_flag_int \fi:
\lst@Append
}
-\cs_set_protected_nopar:Npn \lst@AppendOther
+\cs_set_protected:Npn \lst@AppendOther
{
\bool_if:NTF \l_@@_listings_letter_bool
{
@@ -10552,7 +10620,7 @@ Copyright and Licence
% \begin{macro}{\@@_listings_process_CM:nN}
% \texttt{CM} 类作为 \texttt{letter} 处理,不用增加 \tn{lst@length}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_process_CM:nN
+\cs_new_protected:Npn \@@_listings_process_CM:nN
{
\reverse_if:N \lst@ifflexible
\bool_gset_true:N \g_@@_listings_CM_bool
@@ -10566,7 +10634,7 @@ Copyright and Licence
% 在使用 \texttt{columns=fixed} 选项时,\pkg{listings} 会在输出盒子里的每个字符
% 之间加入 \tn{hss},这就破坏了 \XeTeX 将基本字和组合标识正确的组合起来。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_listings_output_CM:
+\cs_new_protected:Npn \@@_listings_output_CM:
{
\reverse_if:N \lst@ifflexible
\bool_if:NT \g_@@_listings_CM_bool
@@ -10583,7 +10651,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_listings_peek_active_loop:TF}
% \tn{lstinline} 通过判断参数中第一个字符是否是 \texttt{active} 类来区分
-% 它是否被用在其它宏的参数之中。如果这第一个字符不在 \pkg{listings} 预定义的
+% 它是否被用在其他宏的参数之中。如果这第一个字符不在 \pkg{listings} 预定义的
% 符号表中,判断就会出问题。我们在这里通过一个循环跳过这些字符。
% \begin{macrocode}
\cs_new_protected:Npn \@@_listings_peek_active_loop:TF #1#2#3
@@ -10624,7 +10692,7 @@ Copyright and Licence
\tl_put_right:No \lst@arg { \l_@@_tmp_tl }
}
\cs_set_eq:NN \lst@InsideConvert@ \@@_listings_inside_convert:nw
-\cs_new_protected_nopar:Npn \@@_listings_inline_group:w
+\cs_new_protected:Npn \@@_listings_inline_group:w
{
\exp_after:wN \@@_listings_inline_group:n
\exp_after:wN { \if_int_compare:w `} = \c_zero_int \fi:
@@ -10646,7 +10714,7 @@ Copyright and Licence
\cs_set:Npn \@@_tmp:w #1
{
\group_end:
- \cs_new_protected_nopar:Npn \@@_listings_set_escape:
+ \cs_new_protected:Npn \@@_listings_set_escape:
{ \xeCJK_swap_cs:NN #1 \@@_listings_escape:N }
\cs_new_protected:Npn \@@_listings_escape:N ##1
{ \cs_if_eq:NNTF #1 ##1 { \@@_listings_escape:N } {##1} }
@@ -10665,7 +10733,7 @@ Copyright and Licence
% \begin{macro}{\@@_listings_escape_backslash:}
% \tn{catcode} 为 $12$ 的 |\| 需要双写转义。
% \begin{macrocode}
-\cs_new_protected_nopar:Npx \@@_listings_escape_backslash:
+\cs_new_protected:Npx \@@_listings_escape_backslash:
{
\tl_replace_all:Nnn \exp_not:N \l_@@_tmp_tl
{ \c_backslash_str }
@@ -10834,12 +10902,12 @@ Copyright and Licence
\bool_set_true:N \l_@@_math_as_UTF_text_bool
}
\@onlypreamble \UseMathAsText
-\cs_new_protected_nopar:Npn \@@_declare_math_as_UTF_text:n #1
+\cs_new_protected:Npn \@@_declare_math_as_UTF_text:n #1
{
\cs_if_exist:cTF {#1}
{
\cs_new_eq:cc { keepmathUTF #1 } {#1}
- \cs_gset_protected_nopar:cpx {#1}
+ \cs_gset_protected:cpx {#1}
{
\exp_not:N \mode_if_math:TF
{ \exp_not:c { keepmathUTF #1 } }
@@ -10848,7 +10916,7 @@ Copyright and Licence
\tl_put_right:Nx \l_@@_hyperref_hook_tl
{ \cs_set_eq:NN \exp_not:c {#1} \exp_not:c { text #1 } }
}
- { \cs_new_nopar:cpx {#1} { \exp_not:c { text #1 } } }
+ { \cs_new:cpx {#1} { \exp_not:c { text #1 } } }
}
\tl_new:N \l_@@_hyperref_hook_tl
\AtBeginDocument
@@ -10950,20 +11018,20 @@ Copyright and Licence
% \begin{macro}{\@@_restore_cmd:N}
% 恢复 \tn{hbar} 和 \tn{nobreakspace} 为原本定义。
% \begin{macrocode}
-\cs_new_protected_nopar:cpn
+\cs_new_protected:cpn
{ @@_restore_ \tl_to_str:n { \hbar } : }
{ \@@_restore_cmd:N \hbar }
-\cs_new_protected_nopar:cpn
+\cs_new_protected:cpn
{ @@_restore_ \tl_to_str:n { \nobreakspace } : }
{ \@@_restore_cmd:N \nobreakspace }
-\cs_new_protected_nopar:Npn \@@_restore_cmd:N #1
+\cs_new_protected:Npn \@@_restore_cmd:N #1
{ \@@_restore_cmd:Nx #1 { ? - \token_to_str:N #1 } }
-\cs_new_protected_nopar:Npn \@@_restore_cmd:Nn #1#2
+\cs_new_protected:Npn \@@_restore_cmd:Nn #1#2
{
\cs_if_free:cF {#2}
{ \@@_restore_cmd:Nc #1 {#2} }
}
-\cs_new_protected_nopar:Npn \@@_restore_cmd:NN #1#2
+\cs_new_protected:Npn \@@_restore_cmd:NN #1#2
{
\cs_gset_eq:NN #1 #2
\cs_undefine:N #2
@@ -11059,7 +11127,7 @@ Copyright and Licence
% \begin{macro}{\@@_check_slot:n}
% \pkg{xunicode} 中使用的 Unicode 格式是诸如 |x0022| 的形式,这就需要一些转换。
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_check_slot:n #1
+\cs_new:Npn \@@_check_slot:n #1
{
\int_eval:n
{
@@ -11455,7 +11523,7 @@ Copyright and Licence
% \end{macro}
%
% \begin{macro}{\@@_add_double_symbol:nN}
-% 如果参数的第一个记号是字母类、其它符号类或者由 \tn{chardef} 定义,则将组合符号
+% 如果参数的第一个记号是字母类、其他符号类或者由 \tn{chardef} 定义,则将组合符号
% 放在它的右边,否则不作处理。
% \begin{macrocode}
\cs_new_protected:Npn \@@_add_double_symbol:nN #1#2
@@ -11515,17 +11583,17 @@ Copyright and Licence
%
% \begin{macro}[int]{\xunadd_set_begin_hook:n,\xunadd_set_end_hook:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \xunadd_set_begin_hook:n
+\cs_new_protected:Npn \xunadd_set_begin_hook:n
{ \tl_set:Nn \l_@@_begin_hook_tl }
-\cs_new_protected_nopar:Npn \xunadd_append_begin_hook:n
+\cs_new_protected:Npn \xunadd_append_begin_hook:n
{ \tl_put_right:Nn \l_@@_begin_hook_tl }
-\cs_new_protected_nopar:Npn \xunadd_set_end_hook:n
+\cs_new_protected:Npn \xunadd_set_end_hook:n
{ \tl_set:Nn \l_@@_end_hook_tl }
-\cs_new_protected_nopar:Npn \xunadd_append_end_hook:n
+\cs_new_protected:Npn \xunadd_append_end_hook:n
{ \tl_put_right:Nn \l_@@_end_hook_tl }
-\cs_new_protected_nopar:Npn \xunadd_set_begin_hook:nn
+\cs_new_protected:Npn \xunadd_set_begin_hook:nn
{ \@@_set_cmd_hook:nnn { begin } }
-\cs_new_protected_nopar:Npn \xunadd_set_end_hook:nn
+\cs_new_protected:Npn \xunadd_set_end_hook:nn
{ \@@_set_cmd_hook:nnn { end } }
\cs_new_protected:Npn \@@_set_cmd_hook:nnn #1#2#3
{
@@ -11539,8 +11607,8 @@ Copyright and Licence
}
\cs_new:Npn \@@_set_cmd_hook_aux:Nnwn #1#2 \q_stop #3
{ \use:c { @@_#3_csname:n } { \token_to_str:N #1 - \tl_to_str:n {#2} } }
-\cs_new_nopar:Npn \@@_begin_csname:n #1 { @@_begin_#1_hook:n }
-\cs_new_nopar:Npn \@@_end_csname:n #1 { @@_end_#1_hook:n }
+\cs_new:Npn \@@_begin_csname:n #1 { @@_begin_#1_hook:n }
+\cs_new:Npn \@@_end_csname:n #1 { @@_end_#1_hook:n }
\tl_new:N \l_@@_begin_hook_tl
\tl_new:N \l_@@_end_hook_tl
% \end{macrocode}
@@ -11651,7 +11719,7 @@ Copyright and Licence
% \begin{macro}[int]{\xunadd@microtype@is@charx}
% \pkg{microtype} 宏包中使用的函数,我们通过对 \tn{MT@is@charx} 打补丁来实现功能。
% \begin{macrocode}
-\cs_new_protected:Npn \xunadd@microtype@is@charx #1 \relax
+\cs_new_protected_nopar:Npn \xunadd@microtype@is@charx #1 \relax
{
\use:x
{ \xunadd_get_slot:nn { \MT@encoding } { \tex_the:D \MT@toks } }
@@ -11662,7 +11730,7 @@ Copyright and Licence
\bool_if:NT \l_xunadd_rest_bool { \MT@norestfalse }
}
}
-\AtBeginDocument
+\cs_new_protected_nopar:Npn \xunadd@microtype@hook
{
\cs_if_free:NF \MT@is@charx
{
@@ -11671,6 +11739,9 @@ Copyright and Licence
\cs_set_eq:NN \MT@warn@unknown@once \use_none:n
}
}
+\@ifpackageloaded { microtype }
+ { \use:n } { \AtBeginDocument }
+ { \xunadd@microtype@hook }
% \end{macrocode}
% \end{macro}
%
@@ -13801,7 +13872,7 @@ int main()
[ #1 , Color = \test_color:n {#1} , BoldFont = SimHei ] { SimSun }
\setCJKmonofont [ #1 ] { KaiTi }
}
-\cs_new_protected_nopar:Npn \TEST
+\cs_new_protected:Npn \TEST
{
\exp_args:No \path { \c_test_text_tl } \par
\c_test_text_tl \par
@@ -13847,7 +13918,7 @@ int main()
\makeatletter
\ExplSyntaxOn
-\cs_new_protected_nopar:Npx \@@_restore_catcode:
+\cs_new_protected:Npx \@@_restore_catcode:
{ \char_set_catcode:nn { 0 } { \char_value_catcode:n { 0 } } }
\file_if_exist:nTF { xunicode-commands.tex }
{ \char_set_catcode_comment:n { 0 } }
@@ -13860,7 +13931,7 @@ int main()
^^@ \prop_new:N \l_@@_command_prop
^^@ \prop_new:N \l_@@_combine_mark_prop
^^@ \prop_new:N \l_@@_combine_marks_prop
-^^@ \cs_new_protected_nopar:Npn \SaveUTFCommands
+^^@ \cs_new_protected:Npn \SaveUTFCommands
^^@ {
^^@ \group_begin:
^^@ \@@_restore_catcode:
@@ -13980,7 +14051,7 @@ int main()
\int_gincr:N \g_@@_table_int
\exp_args:Nx \@@_make_table:nnn { UTFTABLE - \int_use:N \g_@@_table_int } {#1} {#2}
}
-\cs_new_protected_nopar:Npn \@@_make_table:nnn #1#2#3
+\cs_new_protected:Npn \@@_make_table:nnn #1#2#3
{
\section{#2~(\zref@extractdefault{#1}{default}{0})}
\zref@refused{#1}
diff --git a/macros/xetex/latex/xecjk/xeCJK.pdf b/macros/xetex/latex/xecjk/xeCJK.pdf
index ae7269bfd0..1726fe6fc8 100644
--- a/macros/xetex/latex/xecjk/xeCJK.pdf
+++ b/macros/xetex/latex/xecjk/xeCJK.pdf
Binary files differ
diff --git a/macros/xetex/latex/xecjk/xunicode-symbols.pdf b/macros/xetex/latex/xecjk/xunicode-symbols.pdf
index cc30fd0c5a..5392212ff8 100644
--- a/macros/xetex/latex/xecjk/xunicode-symbols.pdf
+++ b/macros/xetex/latex/xecjk/xunicode-symbols.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/README.txt b/macros/xetex/latex/xepersian-hm/README.txt
index 9911cde284..30f6d3240c 100644
--- a/macros/xetex/latex/xepersian-hm/README.txt
+++ b/macros/xetex/latex/xepersian-hm/README.txt
@@ -1,35 +1,22 @@
-%%
-%% This is file `README.txt',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% xepersian-hm.dtx (with options: `README')
-%%
-%% Copyright (C) 2020 Hossein Movahhedian
-%%
-%% It may be distributed and/or modified under the LaTeX Project Public License,
-%% version 1.3c or higher (your choice). The latest version of
-%% this license is at: http://www.latex-project.org/lppl.txt
-%%
The XEPERSIAN-HM package
------------------------
-Kashida feature in `xepersian' has problems with some fonts such as `HM Series'
-fonts available at `https://dma8hm1334.bitbucket.io' and `X Series 2' fonts
-available at `http://wiki.irmug.com/index.php/X_Series_2'. The `xepersian-hm'
-package fixes these problems.
+Kashida feature in 'xepersian' has problems with some fonts such as 'HM Series'
+available at 'https://dma8hm1334.bitbucket.io' and 'X Series 2' available at
+'http://wiki.irmug.com/index.php/X_Series_2'. The 'xepersian-hm' package fixes
+these problems.
-The file `texmf-dist/doc/xelatex/xepersian-hm/kashida-example.tex' can be used as
-a simple example of the usage of the package.
+The files 'kashida-glyph-example.tex' and 'kashida-hrule-example.tex' in
+the directory 'texmf-dist/doc/xelatex/xepersian-hm/' can be used as simple
+examples of the usage of the package.
Please use the Bitbucket issue tracker:
-https://bitbucket.org/dma8hm1334/xepersian-hm/issues
-to report a bug, request a feature or if you have a comment.
+'https://bitbucket.org/dma8hm1334/xepersian-hm/issues' to report a bug, request
+a feature or if you have a comment.
-I will do my best to fix all the bugs you report, but, unfortunately,
-time is a big hurdle to overcome; so, my apologies in advance for those
-which I cannot make time to fix.
+I will do my best to fix all the bugs you report, but, unfortunately, time is a
+big hurdle to overcome; so, my apologies in advance for those which I cannot
+make time to fix.
%%
%%
%% End of file `README.txt'.
diff --git a/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf
new file mode 100644
index 0000000000..91047f8cec
--- /dev/null
+++ b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/kashida-example.tex b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex
index 6702fd3687..299b605aa7 100644
--- a/macros/xetex/latex/xepersian-hm/kashida-example.tex
+++ b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex
@@ -31,56 +31,79 @@
\defpersianfont\HMXKayhanSd[Scale=4.5]{HM XKayhan Shadow}
% \def\SampleText{\discouragebadlinebreaks[8][0.14 em plus 5.5 em]{
-% راهی جایی تابی چاپی چاههی تلاشهایی
-% شتابهایی تابی چاپی راهی تلاشهــایی
-% که کتابهایی که کلاههایی که کتابهایی }}
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
% \def\SampleText{\discouragebadlinebreaks[10][0.12 em plus 5.5 em]{
-% راهی جایی تابی چاپی چاههی تلاشهایی
-% شتابهایی تابی چاپی راهی تلاشهــایی
-% که کتابهایی که کلاههایی که کتابهایی }}
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
\def\SampleText{\discouragebadlinebreaks{
راهی جایی تابی چاپی چاههی تلاشهایی
شتابهایی تابی چاپی راهی تلاشهــایی
که کتابهایی که کلاههایی که کتابهایی }}
+% \def\SampleText{
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }
+
\setlength\parindent{0pt}
\pagestyle{empty}
\begin{document}
-\KashidaOff\lr{(Kashida Off, Regular)}
+\begin{latin}
+\begin{center}
+\Huge\textsf{xepersian-hm}\\ \vspace{20pt} Example of Use\vspace{20pt}\\ \texttt{Kashida=glyph} \vspace{40pt}
+
+{\Large
+\begin{tabular}{ll}
+ \textsf{Font:} & \textsf{HM XKayhan} \\
+ \textsf{Font Scale:} & \texttt{4.5} \\
+ \textsf{linebreakpenalty:} & \texttt8 \\
+ \textsf{kashidastretch:} & \texttt{0.14em plus 5.5em}
+\end{tabular}
+}
+\end{center}
+
+\end{latin}
+
+\newpage
+
+\KashidaOff{\hfill\lr{(Kashida Off, Regular)}\hfill}
\SampleText
\newpage
-\KashidaOn\lr{(Kashida On, Regular)}
+\KashidaOn{\hfill\lr{(Kashida On, Regular)}\hfill}
\SampleText
\newpage
-\KashidaOn\lr{(Kashida On, Italic)}
+\KashidaOn{\hfill\lr{(Kashida On, Italic)}\hfill}
{\HMXKayhanIt \SampleText}
\newpage
-\KashidaOn\lr{(Kashida On, Oblique)}
+\KashidaOn{\hfill\lr{(Kashida On, Oblique)}\hfill}
{\HMXKayhanOb \SampleText}
\newpage
-\KashidaOn\lr{(Kashida On, Outline)}
+\KashidaOn{\hfill\lr{(Kashida On, Outline)}\hfill}
{\HMXKayhanOl \SampleText}
\newpage
-\KashidaOn\lr{(Kashida On, Shadow)}
+\KashidaOn{\hfill\lr{(Kashida On, Shadow)}\hfill}
{\HMXKayhanSd \SampleText}
diff --git a/macros/xetex/latex/xepersian-hm/kashida-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf
index 2585a68426..865d7a3551 100644
--- a/macros/xetex/latex/xepersian-hm/kashida-example.pdf
+++ b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex
new file mode 100644
index 0000000000..64926c354a
--- /dev/null
+++ b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex
@@ -0,0 +1,109 @@
+% \PassOptionsToPackage{Kashida=off,RTLdocument=on}{xepersian} % Load xepersian with a few options
+\documentclass{report}
+% \textwidth=345.0pt
+% \textheight=550.0pt
+% \textheight=620pt
+% \usepackage[Kashida]{xepersian} % Fails
+% \usepackage{xepersian-hm} % Succeeds
+\usepackage[Kashida=hrule,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida=hrule,kashidastretch=0.14 em plus 5.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida=glyph,linebreakpenalty=8,kashidastretch=0.14 em plus 5.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida=glyph,kashidastretch=kayhan]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=noskip]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=default]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=kayhan]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=khorramshahr]{xepersian-hm} % Succeeds
+
+% \settextfont[Scale=4.5,Colour=darkgray]{XB Kayhan}
+\settextfont[Scale=4.5]{HM XKayhan}
+% \settextfont[Scale=4.5,Colour=darkgray]{HM XNiloofar}
+% \settextfont[Scale=4.5,Colour=darkgray]{HM XYas}
+% \settextfont[Scale=4.5,Colour=darkgray]{HM XZar}
+% \settextfont[Scale=1,Colour=darkgray]{HM XKayhan}
+
+% \setlatintextfont[Scale=2.5,Colour=0000FF]{XB Kayhan}
+\setlatintextfont[Scale=1.5,Colour=0000FF]{HM XKayhan}
+
+\defpersianfont\HMXKayhanIt[Scale=4.5]{HM XKayhan Italic}
+\defpersianfont\HMXKayhanOb[Scale=4.5]{HM XKayhanOb Oblique}
+\defpersianfont\HMXKayhanOl[Scale=4.5]{HM XKayhan Outline}
+\defpersianfont\HMXKayhanSd[Scale=4.5]{HM XKayhan Shadow}
+
+% \def\SampleText{\discouragebadlinebreaks[8][0.14 em plus 5.5 em]{
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
+
+% \def\SampleText{\discouragebadlinebreaks[10][0.12 em plus 5.5 em]{
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
+
+% \def\SampleText{\discouragebadlinebreaks{
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
+
+\def\SampleText{
+ راهی جایی تابی چاپی چاههی تلاشهایی
+ شتابهایی تابی چاپی راهی تلاشهــایی
+ که کتابهایی که کلاههایی که کتابهایی }
+
+\setlength\parindent{0pt}
+\pagestyle{empty}
+
+\begin{document}
+
+\begin{latin}
+\begin{center}
+\Huge\textsf{xepersian-hm}\vspace{20pt}\\ Example of Use\vspace{20pt}\\ \texttt{Kashida=hrule} \vspace{40pt}
+
+{\Large
+\begin{tabular}{ll}
+ \textsf{Font:} & \textsf{HM XKayhan} \\
+ \textsf{Font Scale:} & \texttt{4.5} \\
+ \textsf{kashidastretch:} & \texttt{0.14em plus 0.5em}
+\end{tabular}
+}
+\end{center}
+
+\end{latin}
+
+\newpage
+
+\KashidaOff{\hfill\lr{(Kashida Off, Regular)}\hfill}
+
+\SampleText
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Regular)}\hfill}
+
+\SampleText
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Italic)}\hfill}
+
+{\HMXKayhanIt \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Oblique)}\hfill}
+
+{\HMXKayhanOb \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Outline)}\hfill}
+
+{\HMXKayhanOl \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Shadow)}\hfill}
+
+{\HMXKayhanSd \SampleText}
+
+\end{document}
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx
new file mode 100644
index 0000000000..1a2d88f8aa
--- /dev/null
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx
@@ -0,0 +1,160 @@
+%%
+%% This is file `xepersian-hm-doc.tex'
+%%
+%% Copyright (c) Hossein Movahhedian 2020
+%%
+%% It may be distributed and/or modified under the LaTeX Project Public License,
+%% version 1.3c or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%%
+\documentclass{ltxdoc}
+\usepackage{longtable}
+\usepackage{hypdoc}
+
+\title{
+ The \textsf{xepersian-hm} package\\Fixing kashida in xepersian\\User Documentation
+}
+
+\author{
+ Hossein Movahhedian\thanks
+ {
+ E-mail:
+ \href{mailto:dma8hm1334@gmail.com}
+ {\textsf{dma8hm1334@gmail.com}}
+ }
+}
+
+\date{Released \quad 2020-05-01 \quad v0.5c}
+
+\begin{document}
+
+\maketitle
+
+Kashida feature in \textsf{xepersian} has problems with some fonts such as \mbox{\textsf{HM Series}}
+available at
+\href{https://dma8hm1334.bitbucket.io}{\texttt{https://dma8hm1334.bitbucket.io}}
+and \mbox{\textsf{X Series 2}} available at
+\href{http://wiki.irmug.com/index.php/X_Series_2}{\texttt{http://wiki.irmug.com/index.php/X\_Series\_2}}.
+The \textsf{xepersian-hm} package fixes these problems.
+
+The files \texttt{kashida-glyph-example.tex} and \texttt{kashida-hrule-example.tex}
+in the directory \texttt{texmf-dist/doc/xelatex/xepersian-hm/} can be used as simple
+examples of the usage of the package.
+
+Please use the Bitbucket issue tracker:
+\href{https://bitbucket.org/dma8hm1334/xepersian-hm/issues}{\textsf{https://bitbucket.org/dma8hm1334/\linebreak[4]xepersian-hm/issues}}
+to report a bug, request a feature or if you have a comment.
+
+I will do my best to fix all the bugs you report, but, unfortunately,
+time is a big hurdle to overcome; so, my apologies in advance for those
+which I cannot make time to fix.
+
+\section{Package loading and options}
+
+Please note that \textsf{xepersian-hm} loads \textsf{xepersian} automatically,
+so you may only pass options to the package using the command
+\verb|\PassOptionsToPackage| before \verb|\documentclass|. For example:
+
+\begin{verbatim}
+\PassOptionsToPackage{Kashida=off,RTLdocument=on}{xepersian}
+\documentclass{report}
+\usepackage{xcolor}
+\usepackage[Kashida,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm}
+\end{verbatim}
+
+The options available in \textsf{xepersian-hm} are:
+\begin{itemize}
+ \item \texttt{Kashida}: \\
+ which implements kashida feature with two possible values:
+ \begin{itemize}
+ \item \texttt{glyph}: \\
+ which uses the \texttt{Kashida} character to stretch the text.
+ With this option you should run \texttt{xelatex} thrice. For example: \\
+
+ \texttt{rm -f kashida-example.aux \\
+ xelatex kashida-example.tex \\
+ xelatex kashida-example.tex \\
+ xelatex kashida-example.tex}
+
+ Please note that this feature is still experimental and is not regarded as stable.
+ If you are going to use this option be ready for unpredictable results.
+
+ \item \texttt{hrule}: \\
+ which uses a horizontal rule (\verb|\hrule|) to stretch the text.
+
+ \end{itemize}
+ For example \texttt{Kashida=glyph} inserts a stretched \texttt{Kashida} glyph where ever it is needed.
+
+ \item \texttt{linebreakpenalty}: \\
+ which specifies the amount of penalty for preventing bad line-breaking.
+ You may strictly specify the value of this option. For example \texttt{'linebreakpenalty=8'} or you
+ may use the default values. The available default values of penalties which are put into the
+ horizontal list output are the negative of the followings:
+
+ \begin{longtable}{ll}
+ \texttt{min}: & \texttt{0} \\
+ \texttt{low}: & \texttt{8} \\
+ \texttt{medium}: & \texttt{15} \\
+ \texttt{high}: & \texttt{25} \\
+ \texttt{max}: & \texttt{10000}
+ \end{longtable}
+ \item \texttt{kashidastretch}: \\
+ which specifies the amount of extra stretching
+ for some combinations of characters. You may strictly specify the value of
+ this option. For example \texttt{'kashidastretch=0.14 em plus 0.5 em'} or you
+ may use the default values. The available default values are:
+
+ \begin{longtable}{lll}
+ \texttt{kayhan} & \texttt{0.14 em plus 0.5 em} \\
+ \texttt{khorramshahr} & \texttt{0.131 em plus 0.5 em} \\
+ \texttt{kayhannavaar} & \texttt{0.129 em plus 0.5 em} \\
+ \texttt{kayhanpook} & \texttt{0.133 em plus 0.5 em} \\
+ \texttt{kayhansayeh} & \texttt{0.135 em plus 0.5 em} \\
+ \texttt{khoramshahr} & \texttt{0.128 em plus 0.5 em} \\
+ \texttt{khorramshahr} & \texttt{0.13 em plus 0.5 em} \\
+ \texttt{niloofar} & \texttt{0.132 em plus 0.5 em} \\
+ \texttt{paatch} & \texttt{0.127 em plus 0.5 em} \\
+ \texttt{riyaz} & \texttt{0.125 em plus 0.5 em} \\
+ \texttt{roya} & \texttt{0.142 em plus 0.5 em} \\
+ \texttt{shafigh} & \texttt{0.143 em plus 0.5 em} \\
+ \texttt{shafighKurd} & \texttt{0.126 em plus 0.5 em} \\
+ \texttt{shafighUzbek} & \texttt{0.123 em plus 0.5 em} \\
+ \texttt{shiraz} & \texttt{0.122 em plus 0.5 em} \\
+ \texttt{sols} & \texttt{0.124 em plus 0.5 em} \\
+ \texttt{tabriz} & \texttt{0.119 em plus 0.5 em} \\
+ \texttt{titr} & \texttt{0.12 em plus 0.5 em} \\
+ \texttt{titre} & \texttt{0.121 em plus 0.5 em} \\
+ \texttt{traffic} & \texttt{0.124 em plus 0.5 em} \\
+ \texttt{vahid} & \texttt{0.134 em plus 0.5 em} \\
+ \texttt{vosta} & \texttt{0.136 em plus 0.5 em} \\
+ \texttt{yaghut} & \texttt{0.138 em plus 0.5 em} \\
+ \texttt{yagut} & \texttt{0.137 em plus 0.5 em} \\
+ \texttt{yas} & \texttt{0.126 em plus 0.5 em} \\
+ \texttt{yekan} & \texttt{0.141 em plus 0.5 em} \\
+ \texttt{yermook} & \texttt{0.139 em plus 0.5 em} \\
+ \texttt{zar} & \texttt{0.116 em plus 0.5 em} \\
+ \texttt{ziba} & \texttt{0.119 em plus 0.5 em} \\
+ \texttt{default} & \texttt{0.14 em plus 0.5 em} \\
+ \texttt{noskip} & \texttt{0 em plus 0.5 em}
+ \end{longtable}
+
+ For example: \mbox{\texttt{'kashidastretch=titr'}} is equivalent to\linebreak
+ \mbox{\texttt{'kashidastretch=0.12 em plus 0.5 em'}}
+\end{itemize}
+
+\section{Commands}
+
+\begin{description}
+ \item \verb|\discouragebadlinebreaks[linebreakpenalty][kashidastretch]{|{\it text}\verb|}|:
+
+ {\it text} may not contain paragraph breaks.
+ This command puts a penalty after each Persian word.
+ The optional arguments \texttt{linebreakpenalty} and \texttt{kashidastretch} locally specify the value of the penalty and the amount
+ of extra stretching for some combinations of characters respectively as discussed previously. For example:
+
+ \texttt{\bslash discouragebadlinebreaks[9][0.12 em plus 0.5 em]\{\dots\}}
+\end{description}
+\end{document}
+%%
+%%
+%% End of file `xepersian-hm-doc.ltx'.
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf
new file mode 100644
index 0000000000..cc80a88443
--- /dev/null
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx b/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
index 0d5d19f524..0cf960fe36 100644
--- a/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
@@ -1,28 +1,37 @@
% \iffalse meta-comment
+%
+% This is file `xepersian-hm.dtx'
+%
+% Copyright (C) 2020 Hossein Movahhedian
%
+% It may be distributed and/or modified under the LaTeX Project Public License,
+% version 1.3c or higher (your choice). The latest version of
+% this license is at: http://www.latex-project.org/lppl.txt
+%
%<*internal>
\iffalse
%</internal>
-%<*README>
+%<*README-txt>
The XEPERSIAN-HM package
------------------------
-Kashida feature in `xepersian' has problems with some fonts such as `HM Series'
-fonts available at `https://dma8hm1334.bitbucket.io' and `X Series 2' fonts
-available at `http://wiki.irmug.com/index.php/X_Series_2'. The `xepersian-hm'
-package fixes these problems.
+Kashida feature in 'xepersian' has problems with some fonts such as 'HM Series'
+available at 'https://dma8hm1334.bitbucket.io' and 'X Series 2' available at
+'http://wiki.irmug.com/index.php/X_Series_2'. The 'xepersian-hm' package fixes
+these problems.
-The file `texmf-dist/doc/xelatex/xepersian-hm/kashida-example.tex' can be used as
-a simple example of the usage of the package.
+The files 'kashida-glyph-example.tex' and 'kashida-hrule-example.tex' in
+the directory 'texmf-dist/doc/xelatex/xepersian-hm/' can be used as simple
+examples of the usage of the package.
Please use the Bitbucket issue tracker:
-https://bitbucket.org/dma8hm1334/xepersian-hm/issues
-to report a bug, request a feature or if you have a comment.
+'https://bitbucket.org/dma8hm1334/xepersian-hm/issues' to report a bug, request
+a feature or if you have a comment.
-I will do my best to fix all the bugs you report, but, unfortunately,
-time is a big hurdle to overcome; so, my apologies in advance for those
-which I cannot make time to fix.
-%</README>
+I will do my best to fix all the bugs you report, but, unfortunately, time is a
+big hurdle to overcome; so, my apologies in advance for those which I cannot
+make time to fix.
+%</README-txt>
%<*internal>
\fi
%</internal>
@@ -43,8 +52,10 @@ which I cannot make time to fix.
% \end{macrocode}
% \fi
%
+% \immediate\write18{xelatex xepersian-hm-doc.ltx}
+%
% \title{^^A
-% The \textsf{xepersian-hm} package\\Fixing kashida in xepersian^^A
+% The \textsf{xepersian-hm} package\\Fixing kashida in xepersian\\Source code documentation^^A
% }
%
% \author{^^A
@@ -56,140 +67,16 @@ which I cannot make time to fix.
% }^^A
% }
%
-% \date{Released 2020-04-26 \qquad v0.5b}
+% \date{Released \quad 2020-05-01 \quad v0.5c}
%
% \maketitle
%
-% Kashida feature in \textsf{xepersian} has problems with some fonts such as \texttt{HM Series}
-% fonts available at
-% \href{https://dma8hm1334.bitbucket.io}{\texttt{https://dma8hm1334.bitbucket.io}}
-% and \texttt{X Series 2} fonts available at
-% \href{http://wiki.irmug.com/index.php/X_Series_2}{\texttt{http://wiki.irmug.com/index.php/X\_Series\_2}}.
-% The \textsf{xepersian-hm} package fixes these problems.
-%
-% The file \texttt{texmf-dist/doc/xelatex/xepersian-hm/kashida-example.tex} can be
-% used as a simple example of the usage of the package.
-%
-% Please use the Bitbucket issue tracker:
-% \href{https://bitbucket.org/dma8hm1334/xepersian-hm/issues}{\textsf{https://bitbucket.org/dma8hm1334/xepersian-hm/issues}}
-% to report a bug, request a feature or if you have a comment.
-%
-% I will do my best to fix all the bugs you report, but, unfortunately,
-% time is a big hurdle to overcome; so, my apologies in advance for those
-% which I cannot make time to fix.
-%
-% \section{Package loading and options}
-%
-% Please note that \textsf{xepersian-hm} loads \textsf{xepersian} automatically,
-% so you may only pass options to the package using the command
-% \verb|\PassOptionsToPackage| before \verb|\documentclass|. For example:
-%
-% \begin{verbatim}
-% \PassOptionsToPackage{Kashida=off,RTLdocument=on}{xepersian}
-% \documentclass{report}
-% \usepackage{xcolor}
-% \usepackage[Kashida,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm}
-% \end{verbatim}
-%
-% The options available in \textsf{xepersian-hm} are:
-% \begin{itemize}
-% \item \texttt{Kashida}: \\
-% which implements kashida feature with two possible values:
-% \begin{itemize}
-% \item \texttt{glyph}: \\
-% which uses the \texttt{Kashida} character to stretch the text.
-% With this option you should run \texttt{xelatex} thrice. For example: \\
-%
-% \texttt{rm -f kashida-example.aux \\
-% xelatex kashida-example.tex \\
-% xelatex kashida-example.tex \\
-% xelatex kashida-example.tex}
-%
-% Please note that this feature is still experimental and is not regarded as stable.
-% If you are going to use this option be ready for unpredictable results.
-%
-% \item \texttt{hrule}: \\
-% which uses a horizontal rule (\verb|\hrule|) to stretch the text.
-%
-% \end{itemize}
-% For example \texttt{Kashida=glyph} inserts a stretched \texttt{Kashida} glyph where ever it is needed.
-%
-% \item \texttt{linebreakpenalty}: \\
-% which specifies the amount of penalty for preventing bad line-breaking.
-% You may strictly specify the value of this option. For example \texttt{'linebreakpenalty=8'} or you
-% may use the default values. The available default values of penalties which are put into the
-% horizontal list output are the negative of the followings:
-%
-% \begin{longtable}{ll}
-% \texttt{min}: & \texttt{0} \\
-% \texttt{low}: & \texttt{8} \\
-% \texttt{medium}: & \texttt{15} \\
-% \texttt{high}: & \texttt{25} \\
-% \texttt{max}: & \texttt{10000}
-% \end{longtable}
-% \item \texttt{kashidastretch}: \\
-% which specifies the amount of extra stretching
-% for some combinations of characters. You may strictly specify the value of
-% this option. For example \texttt{'kashidastretch=0.14 em plus 0.5 em'} or you
-% may use the default values. The available default values are:
-%
-% \begin{longtable}{lll}
-% \texttt{kayhan} & \texttt{0.14 em plus 0.5 em} \\
-% \texttt{khorramshahr} & \texttt{0.131 em plus 0.5 em} \\
-% \texttt{kayhannavaar} & \texttt{0.129 em plus 0.5 em} \\
-% \texttt{kayhanpook} & \texttt{0.133 em plus 0.5 em} \\
-% \texttt{kayhansayeh} & \texttt{0.135 em plus 0.5 em} \\
-% \texttt{khoramshahr} & \texttt{0.128 em plus 0.5 em} \\
-% \texttt{khorramshahr} & \texttt{0.13 em plus 0.5 em} \\
-% \texttt{niloofar} & \texttt{0.132 em plus 0.5 em} \\
-% \texttt{paatch} & \texttt{0.127 em plus 0.5 em} \\
-% \texttt{riyaz} & \texttt{0.125 em plus 0.5 em} \\
-% \texttt{roya} & \texttt{0.142 em plus 0.5 em} \\
-% \texttt{shafigh} & \texttt{0.143 em plus 0.5 em} \\
-% \texttt{shafighKurd} & \texttt{0.126 em plus 0.5 em} \\
-% \texttt{shafighUzbek} & \texttt{0.123 em plus 0.5 em} \\
-% \texttt{shiraz} & \texttt{0.122 em plus 0.5 em} \\
-% \texttt{sols} & \texttt{0.124 em plus 0.5 em} \\
-% \texttt{tabriz} & \texttt{0.119 em plus 0.5 em} \\
-% \texttt{titr} & \texttt{0.12 em plus 0.5 em} \\
-% \texttt{titre} & \texttt{0.121 em plus 0.5 em} \\
-% \texttt{traffic} & \texttt{0.124 em plus 0.5 em} \\
-% \texttt{vahid} & \texttt{0.134 em plus 0.5 em} \\
-% \texttt{vosta} & \texttt{0.136 em plus 0.5 em} \\
-% \texttt{yaghut} & \texttt{0.138 em plus 0.5 em} \\
-% \texttt{yagut} & \texttt{0.137 em plus 0.5 em} \\
-% \texttt{yas} & \texttt{0.126 em plus 0.5 em} \\
-% \texttt{yekan} & \texttt{0.141 em plus 0.5 em} \\
-% \texttt{yermook} & \texttt{0.139 em plus 0.5 em} \\
-% \texttt{zar} & \texttt{0.116 em plus 0.5 em} \\
-% \texttt{ziba} & \texttt{0.119 em plus 0.5 em} \\
-% \texttt{default} & \texttt{0.14 em plus 0.5 em} \\
-% \texttt{noskip} & \texttt{0 em plus 0.5 em}
-% \end{longtable}
-%
-% For example: \mbox{\texttt{'kashidastretch=titr'}} is equivalent to\linebreak
-% \mbox{\texttt{'kashidastretch=0.12 em plus 0.5 em'}}
-% \end{itemize}
-%
-% \section{Commands}
-%
-% \begin{description}
-% \item \verb|\discouragebadlinebreaks[linebreakpenalty][kashidastretch]{|{\it text}\verb|}|:
-%
-% {\it text} may not contain paragraph breaks.
-% This command puts a penalty after each Persian word.
-% The optional arguments \texttt{linebreakpenalty} and \texttt{kashidastretch} locally specify the value of the penalty and the amount
-% of extra stretching for some combinations of characters respectively as discussed previously. For example:
-%
-% \texttt{\bslash discouragebadlinebreaks[9][0.12 em plus 0.5 em]\{\dots\}}
-% \end{description}
-%
% \section{\texttt{xepersian-hm} Implementation}
%
% \subsection{File: \texttt{xepersian-hm.sty}}
%
% \begin{macrocode}
-%<*xepersian-hm>
+%<*xepersian-hm-sty>
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}[2020-03-06]
\@ifpackagelater{expl3}{2020-03-06}
@@ -209,32 +96,44 @@ which I cannot make time to fix.
\RequirePackage{zref-savepos}[2020-03-03]
\RequirePackage{xepersian}
\ExplSyntaxOn
-\ProvidesExplPackage {xepersian-hm} {2020-04-26} {0.5b} { Fixes~issues~in~xepersian~package }
+\ProvidesExplPackage {xepersian-hm} {2020-05-01} {0.5c} { Fixes~issues~in~xepersian~package }
-\tl_new:N \l_xephm_main_font_full_tl
-\tl_new:N \l_xephm_main_font_name_tl
\int_const:Nn \c_xephm_ksh_int {"0640} % kashida
-\int_new:N \l_xephm_kashida_slot_int
+\int_const:Nn \c_xephm_lrm_int {"200E} % left-right-mark
+\int_const:Nn \c_xephm_zwj_int {"200D} % zero-width joiner
-\tl_new:N \l_xephm_skip_default_tl
+\int_const:Nn \c_xephm_two_int {2} % 2
+\int_const:Nn \c_xephm_four_int {4} % 4
\tl_const:Nn \c_xephm_skip_a_tl { 0 em plus 0.5 em }
-
\tl_const:Nn \c_xephm_skip_b_tl { 0.14 em plus 5.5 em }
-\bool_set_false:N \l_xephm_kashida_hm_fix_bool
-
-\tl_new:N \l_xephm_gap_filler_tl
+\int_new:N \l_xephm_counter_int
-\bool_set_false:N \l_xephm_linebreakpenalty_bool
+\int_new:N \l_xephm_kashida_slot_int
\int_new:N \l_xephm_line_break_penalty_int
+
\int_new:N \l_xephm_min_penalty_int
\int_new:N \l_xephm_low_penalty_int
\int_new:N \l_xephm_med_penalty_int
\int_new:N \l_xephm_high_penalty_int
\int_new:N \l_xephm_max_penalty_int
+\tl_new:N \l_xephm_line_break_tl
+
+\tl_new:N \l_xephm_main_font_full_tl
+\tl_new:N \l_xephm_main_font_name_tl
+
+\tl_new:N \l_xephm_skip_default_tl
+
+\tl_new:N \l_xephm_gap_filler_tl
+
+\dim_new:N \l_xephm_diff_pos_dim
+
+\bool_set_false:N \l_xephm_kashida_hm_fix_bool
+\bool_set_false:N \l_xephm_linebreakpenalty_bool
+
\int_set:Nn \l_xephm_min_penalty_int { 0 }
\int_set:Nn \l_xephm_low_penalty_int { 8 }
\int_set:Nn \l_xephm_med_penalty_int { 15 }
@@ -281,6 +180,11 @@ which I cannot make time to fix.
Sorry,~ kashida~ character~ is~ not~ available~ in~ the~ main~ font~!
}
+\msg_new:nnx { xepersian-hm } { value-not-available-for-kashida-option }
+ {
+ Sorry,~ value~ `\l_xephm_gap_filler_tl'~ is~ not~ available~ for~ kashida~ option~ yet~!
+ }
+
\keys_define:nn { xepersian-hm }
{
Kashida .code:n =
@@ -371,21 +275,14 @@ which I cannot make time to fix.
\ExplSyntaxOff
\endinput
-%</xepersian-hm>
+%</xepersian-hm-sty>
% \end{macrocode}
%
% \subsection{File: \texttt{kashida-xepersian-hm.def}}
% \begin{macrocode}
-%<*kashida-xepersian-hm>
+%<*kashida-xepersian-hm-def>
\ExplSyntaxOn
-\ProvidesExplFile {kashida-xepersian-hm.def} {2020-04-26} {0.5b} { Fixes~implementation~of~Kashida~in~xepersian~package }
-
-\int_const:Nn \c_xephm_zwj_int {"200D} % zero-width joiner
-\int_const:Nn \c_xephm_lrm_int {"200E} % left-right-mark
-\int_const:Nn \c_xephm_two_int {2} % 2
-\int_const:Nn \c_xephm_four_int {4} % 4
-
-\int_new:N \l_xephm_counter_int
+\ProvidesExplFile {kashida-xepersian-hm.def} {2020-05-01} {0.5c} { Fixes~implementation~of~Kashida~in~xepersian~package }
\newXeTeXintercharclass \c_xephm_d_charclass % dual-joiner class
\newXeTeXintercharclass \c_xephm_l_charclass % lam
@@ -393,8 +290,6 @@ which I cannot make time to fix.
\newXeTeXintercharclass \c_xephm_a_charclass % alef
\newXeTeXintercharclass \c_xephm_y_charclass % yeh
-\dim_new:N \l_xephm_diff_pos_dim
-
%% Partly adapted from LaTeX2e source
\cs_new:Nn \xephm_line_break: {
\if_mode_vertical:
@@ -427,8 +322,6 @@ which I cannot make time to fix.
\xephm_put_line_breaks:n { #3 }
}
-\tl_new:N \l_xephm_line_break_tl
-
\cs_new_protected:Nn \xephm_put_line_breaks:n
{
\tl_set:Nn \l_xephm_line_break_tl { #1 }
@@ -538,11 +431,6 @@ which I cannot make time to fix.
\XeTeXcharclass "#1 \c_xephm_y_charclass
}
-\msg_new:nnx { xepersian-hm } { value-not-available-for-kashida-option }
- {
- Sorry,~ value~ `\l_xephm_gap_filler_tl'~ is~ not~ available~ for~ kashida~ option~ yet!
- }
-
\str_case:VnTF \l_xephm_gap_filler_tl
{
\l_xephm_stretch_glyph_tl
@@ -635,7 +523,7 @@ which I cannot make time to fix.
\makeatother
\endinput
-%</kashida-xepersian-hm>
+%</kashida-xepersian-hm-def>
% \end{macrocode}
%
% \section*{Acknowledgements}
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm.ins b/macros/xetex/latex/xepersian-hm/xepersian-hm.ins
index d610751e2d..cba9853ea9 100644
--- a/macros/xetex/latex/xepersian-hm/xepersian-hm.ins
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm.ins
@@ -30,9 +30,11 @@ this license is at: http://www.latex-project.org/lppl.txt
\keepsilent
-\generate{\file{xepersian-hm.sty} {\from{xepersian-hm.dtx} {xepersian-hm}}}
-\generate{\file{README.txt} {\from{xepersian-hm.dtx} {README}}}
-\generate{\file{kashida-xepersian-hm.def} {\from{xepersian-hm.dtx} {kashida-xepersian-hm}}}
+\generate{\file{xepersian-hm.sty} {\from{xepersian-hm.dtx} {xepersian-hm-sty}}}
+\nopreamble
+\generate{\file{README.txt} {\from{xepersian-hm.dtx} {README-txt}}}
+\usepreamble\defaultpreamble
+\generate{\file{kashida-xepersian-hm.def} {\from{xepersian-hm.dtx} {kashida-xepersian-hm-def}}}
\obeyspaces
\Msg{******************************************************}
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf b/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
index 43dd46a0a4..b460f20455 100644
--- a/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
Binary files differ