summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname1537
-rw-r--r--FILES.byname.gzbin2216594 -> 2216955 bytes
-rw-r--r--FILES.last07days1112
-rw-r--r--dviware/dvidvi/ChangeLog8
-rw-r--r--dviware/dvidvi/config.h.in3
-rw-r--r--dviware/dvidvi/configure.ac4
-rwxr-xr-xdviware/dvidvi/configure.texk29
-rw-r--r--dviware/dvidvi/dvidvi.c5
-rw-r--r--dviware/dvidvi/tests/playout.22
-rw-r--r--dviware/dvidvi/tests/playout.32
-rw-r--r--graphics/circuit_macros/CHANGES126
-rw-r--r--graphics/circuit_macros/Copying2
-rw-r--r--graphics/circuit_macros/INSTALL76
-rw-r--r--graphics/circuit_macros/README223
-rw-r--r--graphics/circuit_macros/darrow.m42
-rw-r--r--graphics/circuit_macros/doc/AmpTable.tex73
-rw-r--r--graphics/circuit_macros/doc/AmpTableMan.m4 (renamed from graphics/circuit_macros/doc/AmpTable.m4)0
-rw-r--r--graphics/circuit_macros/doc/AntennasMan.m4 (renamed from graphics/circuit_macros/doc/Antennas.m4)0
-rw-r--r--graphics/circuit_macros/doc/Audio.tex295
-rw-r--r--graphics/circuit_macros/doc/AudioMan.m4 (renamed from graphics/circuit_macros/doc/Audio.m4)28
-rw-r--r--graphics/circuit_macros/doc/Bip.tex175
-rw-r--r--graphics/circuit_macros/doc/BipMan.m4 (renamed from graphics/circuit_macros/doc/Bip.m4)0
-rw-r--r--graphics/circuit_macros/doc/CctTable.tex858
-rw-r--r--graphics/circuit_macros/doc/CctTableMan.m4 (renamed from graphics/circuit_macros/doc/CctTable.m4)0
-rw-r--r--graphics/circuit_macros/doc/Circuit_macros.pdfbin629598 -> 1285894 bytes
-rw-r--r--graphics/circuit_macros/doc/Conn.tex178
-rw-r--r--graphics/circuit_macros/doc/ConnMan.m4 (renamed from graphics/circuit_macros/doc/Conn.m4)20
-rw-r--r--graphics/circuit_macros/doc/Contact.tex373
-rw-r--r--graphics/circuit_macros/doc/ContactMan.m4 (renamed from graphics/circuit_macros/doc/Contact.m4)0
-rw-r--r--graphics/circuit_macros/doc/Contacts.tex141
-rw-r--r--graphics/circuit_macros/doc/ContactsMan.m4 (renamed from graphics/circuit_macros/doc/Contacts.m4)0
-rw-r--r--graphics/circuit_macros/doc/Demultiplexer.tex148
-rw-r--r--graphics/circuit_macros/doc/DemultiplexerMan.m4 (renamed from graphics/circuit_macros/doc/Demultiplexer.m4)0
-rw-r--r--graphics/circuit_macros/doc/Diodes.tex383
-rw-r--r--graphics/circuit_macros/doc/DiodesMan.m4 (renamed from graphics/circuit_macros/doc/Diodes.m4)0
-rw-r--r--graphics/circuit_macros/doc/Emarrows.tex142
-rw-r--r--graphics/circuit_macros/doc/EmarrowsMan.m4 (renamed from graphics/circuit_macros/doc/Emarrows.m4)0
-rw-r--r--graphics/circuit_macros/doc/Fuses.tex174
-rw-r--r--graphics/circuit_macros/doc/FusesMan.m4 (renamed from graphics/circuit_macros/doc/Fuses.m4)17
-rw-r--r--graphics/circuit_macros/doc/Grounds.tex91
-rw-r--r--graphics/circuit_macros/doc/GroundsMan.m4 (renamed from graphics/circuit_macros/doc/Grounds.m4)19
-rw-r--r--graphics/circuit_macros/doc/Headers.tex214
-rw-r--r--graphics/circuit_macros/doc/HeadersMan.m4 (renamed from graphics/circuit_macros/doc/Headers.m4)6
-rw-r--r--graphics/circuit_macros/doc/Jack.tex327
-rw-r--r--graphics/circuit_macros/doc/JackMan.m4 (renamed from graphics/circuit_macros/doc/Jack.m4)0
-rw-r--r--graphics/circuit_macros/doc/Logic.tex212
-rw-r--r--graphics/circuit_macros/doc/LogicMan.m4 (renamed from graphics/circuit_macros/doc/Logic.m4)0
-rw-r--r--graphics/circuit_macros/doc/Makefile46
-rw-r--r--graphics/circuit_macros/doc/Multiplexer.tex148
-rw-r--r--graphics/circuit_macros/doc/MultiplexerMan.m4 (renamed from graphics/circuit_macros/doc/Multiplexer.m4)0
-rw-r--r--graphics/circuit_macros/doc/NLG.tex93
-rw-r--r--graphics/circuit_macros/doc/NLGMan.m4 (renamed from graphics/circuit_macros/doc/NLG.m4)0
-rw-r--r--graphics/circuit_macros/doc/NPDT.tex121
-rw-r--r--graphics/circuit_macros/doc/NPDTMan.m4 (renamed from graphics/circuit_macros/doc/NPDT.m4)0
-rw-r--r--graphics/circuit_macros/doc/Nport.tex116
-rw-r--r--graphics/circuit_macros/doc/NportMan.m4 (renamed from graphics/circuit_macros/doc/Nport.m4)0
-rw-r--r--graphics/circuit_macros/doc/OpampMan.m4 (renamed from graphics/circuit_macros/doc/Opamp.m4)0
-rw-r--r--graphics/circuit_macros/doc/Pconn.tex462
-rw-r--r--graphics/circuit_macros/doc/PconnMan.m4 (renamed from graphics/circuit_macros/doc/Pconn.m4)27
-rw-r--r--graphics/circuit_macros/doc/Relay.tex198
-rw-r--r--graphics/circuit_macros/doc/RelayMan.m4 (renamed from graphics/circuit_macros/doc/Relay.m4)0
-rw-r--r--graphics/circuit_macros/doc/ShiftR.tex285
-rw-r--r--graphics/circuit_macros/doc/ShiftRMan.m4 (renamed from graphics/circuit_macros/doc/ShiftR.m4)0
-rw-r--r--graphics/circuit_macros/doc/Sources.tex466
-rw-r--r--graphics/circuit_macros/doc/SourcesMan.m4 (renamed from graphics/circuit_macros/doc/Sources.m4)9
-rw-r--r--graphics/circuit_macros/doc/Switches.m4117
-rw-r--r--graphics/circuit_macros/doc/Switches.tex596
-rw-r--r--graphics/circuit_macros/doc/SwitchesMan.m4131
-rw-r--r--graphics/circuit_macros/doc/Tgate.tex117
-rw-r--r--graphics/circuit_macros/doc/TgateMan.m4 (renamed from graphics/circuit_macros/doc/Tgate.m4)0
-rw-r--r--graphics/circuit_macros/doc/Ttree.m456
-rw-r--r--graphics/circuit_macros/doc/Variable.tex306
-rw-r--r--graphics/circuit_macros/doc/VariableMan.m4 (renamed from graphics/circuit_macros/doc/Variable.m4)10
-rw-r--r--graphics/circuit_macros/doc/Version.tex2
-rw-r--r--graphics/circuit_macros/doc/WindingsMan.m4 (renamed from graphics/circuit_macros/doc/Windings.m4)0
-rw-r--r--graphics/circuit_macros/doc/Xform.tex648
-rw-r--r--graphics/circuit_macros/doc/XformMan.m4 (renamed from graphics/circuit_macros/doc/Xform.m4)0
-rw-r--r--graphics/circuit_macros/doc/bistableMan.m4 (renamed from graphics/circuit_macros/doc/bistable.m4)0
-rw-r--r--graphics/circuit_macros/doc/body.tex543
-rw-r--r--graphics/circuit_macros/doc/defines.tex85
-rw-r--r--graphics/circuit_macros/doc/fet.tex513
-rw-r--r--graphics/circuit_macros/doc/fetMan.m4 (renamed from graphics/circuit_macros/doc/fet.m4)0
-rw-r--r--graphics/circuit_macros/doc/relaycoilMan.m4 (renamed from graphics/circuit_macros/doc/relaycoil.m4)0
-rw-r--r--graphics/circuit_macros/doc/sampleIC.m416
-rw-r--r--graphics/circuit_macros/doc/thyristor.tex561
-rw-r--r--graphics/circuit_macros/doc/thyristorMan.m4 (renamed from graphics/circuit_macros/doc/thyristor.m4)0
-rw-r--r--graphics/circuit_macros/doc/ujt.tex81
-rw-r--r--graphics/circuit_macros/doc/ujtMan.m4 (renamed from graphics/circuit_macros/doc/ujt.m4)0
-rw-r--r--graphics/circuit_macros/dpictools.pic8
-rw-r--r--graphics/circuit_macros/examples/AntiqueClock.m413
-rw-r--r--graphics/circuit_macros/examples/Arrester.m428
-rw-r--r--graphics/circuit_macros/examples/Audio.m428
-rw-r--r--graphics/circuit_macros/examples/Conn.m420
-rw-r--r--graphics/circuit_macros/examples/Connectors.m424
-rw-r--r--graphics/circuit_macros/examples/Fuses.m417
-rw-r--r--graphics/circuit_macros/examples/Grounds.m419
-rw-r--r--graphics/circuit_macros/examples/Headers.m46
-rw-r--r--graphics/circuit_macros/examples/MC.m446
-rw-r--r--graphics/circuit_macros/examples/Makefile26
-rw-r--r--graphics/circuit_macros/examples/Pconn.m427
-rw-r--r--graphics/circuit_macros/examples/README-examples3
-rw-r--r--graphics/circuit_macros/examples/Rectifiers.m425
-rw-r--r--graphics/circuit_macros/examples/SampleFlow.m435
-rw-r--r--graphics/circuit_macros/examples/Sources.m49
-rw-r--r--graphics/circuit_macros/examples/Switches.m498
-rw-r--r--graphics/circuit_macros/examples/Tubediags.m44
-rw-r--r--graphics/circuit_macros/examples/Variable.m410
-rw-r--r--graphics/circuit_macros/examples/debug2.m46
-rw-r--r--graphics/circuit_macros/examples/examples.pdfbin879975 -> 893788 bytes
-rw-r--r--graphics/circuit_macros/examples/examples.tex21
-rw-r--r--graphics/circuit_macros/examples/files.tex10
-rw-r--r--graphics/circuit_macros/examples/ics.m4189
-rw-r--r--graphics/circuit_macros/examples/mf/cct.mf24
-rw-r--r--graphics/circuit_macros/examples/mpost/Makefile3
-rw-r--r--graphics/circuit_macros/examples/mpost/README-mpost2
-rw-r--r--graphics/circuit_macros/examples/mpost/examplesmpost.tex2
-rwxr-xr-xgraphics/circuit_macros/examples/mpost/mptest2
-rw-r--r--graphics/circuit_macros/examples/mpost/tstmpost.tex2
-rw-r--r--graphics/circuit_macros/examples/odistmakefile548
-rw-r--r--graphics/circuit_macros/examples/psfrag/Makefile4
-rw-r--r--graphics/circuit_macros/examples/psfrag/examplespsfrag.tex2
-rw-r--r--graphics/circuit_macros/examples/psfrag/tstpsfrag.tex2
-rw-r--r--graphics/circuit_macros/examples/svg/AntiqueClockSVG.m416
-rw-r--r--graphics/circuit_macros/examples/svg/AudioSVG.m430
-rw-r--r--graphics/circuit_macros/examples/svg/Banking.m459
-rw-r--r--graphics/circuit_macros/examples/svg/ButtonsSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/ConnSVG.m416
-rw-r--r--graphics/circuit_macros/examples/svg/ConnectorsSVG.m430
-rw-r--r--graphics/circuit_macros/examples/svg/CsourceSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/FontsSVG.m413
-rw-r--r--graphics/circuit_macros/examples/svg/FusesSVG.m412
-rw-r--r--graphics/circuit_macros/examples/svg/GroundsSVG.m418
-rw-r--r--graphics/circuit_macros/examples/svg/HeadersSVG.m46
-rw-r--r--graphics/circuit_macros/examples/svg/MCSVG.m453
-rw-r--r--graphics/circuit_macros/examples/svg/Makefile31
-rw-r--r--graphics/circuit_macros/examples/svg/MixerSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/PconnSVG.m428
-rw-r--r--graphics/circuit_macros/examples/svg/RectifiersSVG.m419
-rw-r--r--graphics/circuit_macros/examples/svg/SVGconfig.m416
-rw-r--r--graphics/circuit_macros/examples/svg/ShiftRSVG.m44
-rw-r--r--graphics/circuit_macros/examples/svg/SourcesSVG.m47
-rw-r--r--graphics/circuit_macros/examples/svg/SwitchesSVG.m49
-rw-r--r--graphics/circuit_macros/examples/svg/TimerSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/TubediagsSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/VariableSVG.m433
-rw-r--r--graphics/circuit_macros/examples/svg/ex01SVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/ex09SVG.m444
-rw-r--r--graphics/circuit_macros/examples/svg/examplesSVG.htmx173
-rw-r--r--graphics/circuit_macros/examples/svg/graysurfSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/icsSVG.m4189
-rw-r--r--graphics/circuit_macros/examples/svg/lcctSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/paletteSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/recycleSVG.m42
-rw-r--r--graphics/circuit_macros/examples/svg/tstSVG.htmx162
-rw-r--r--graphics/circuit_macros/examples/svg/windows.m412
-rw-r--r--graphics/circuit_macros/examples/windows.m47
-rw-r--r--graphics/circuit_macros/examples/xfig/xfiglib.fig6
-rw-r--r--graphics/circuit_macros/gpic.m42
-rw-r--r--graphics/circuit_macros/lib3D.m42
-rw-r--r--graphics/circuit_macros/libcct.m4283
-rw-r--r--graphics/circuit_macros/libgen.m423
-rw-r--r--graphics/circuit_macros/liblog.m453
-rw-r--r--graphics/circuit_macros/mfpic.m42
-rw-r--r--graphics/circuit_macros/mpost.m42
-rw-r--r--graphics/circuit_macros/pgf.m42
-rw-r--r--graphics/circuit_macros/postscript.m42
-rw-r--r--graphics/circuit_macros/psfrag.m42
-rw-r--r--graphics/circuit_macros/pstricks.m42
-rw-r--r--graphics/circuit_macros/svg.m497
-rw-r--r--graphics/circuit_macros/xfig.m42
-rw-r--r--graphics/pstricks/contrib/pst-ovl/Changes1
-rw-r--r--graphics/pstricks/contrib/pst-ovl/README6
-rw-r--r--graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib33
-rw-r--r--graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdfbin48866 -> 39774 bytes
-rw-r--r--graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex25
-rw-r--r--graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro2
-rw-r--r--graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty8
-rw-r--r--graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex8
-rw-r--r--language/chinese/ctex/README.md35
-rw-r--r--language/chinese/ctex/ctex.dtx6695
-rw-r--r--language/chinese/ctex/ctex.pdfbin1061924 -> 1097730 bytes
-rw-r--r--language/chinese/ctex/ctexpunct.spa20
-rw-r--r--language/chinese/ctex/ctxdoc.cls867
-rw-r--r--language/chinese/ctex/ctxdocstrip.tex110
-rw-r--r--language/chinese/ctex/zhconv-make.lua114
-rw-r--r--language/chinese/ctex/zhconv.lua205
-rw-r--r--language/japanese/jlreq/Makefile2
-rw-r--r--language/japanese/jlreq/README-ja.md9
-rw-r--r--language/japanese/jlreq/README.md3
-rw-r--r--language/japanese/jlreq/jlreq-helpers.sty16
-rw-r--r--language/japanese/jlreq/jlreq-ja.pdfbin359176 -> 359458 bytes
-rw-r--r--language/japanese/jlreq/jlreq-trimmarks-ja.md5
-rw-r--r--language/japanese/jlreq/jlreq-trimmarks.md7
-rw-r--r--language/japanese/jlreq/jlreq-trimmarks.sty140
-rw-r--r--language/japanese/jlreq/jlreq.cls71
-rw-r--r--language/japanese/jlreq/jlreq.pdfbin116207 -> 116315 bytes
-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
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl5
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb185
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2190540 -> 2192076 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini6
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini6
-rw-r--r--systems/win32/w32tex/ChangeLog34
-rw-r--r--timestamp2
259 files changed, 19421 insertions, 14980 deletions
diff --git a/FILES.byname b/FILES.byname
index 2cb7155e3e..7bf26b4fdb 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5001,7 +5001,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2020/04/30 | 311591 | FILES.last07days
+2020/05/01 | 306161 | FILES.last07days
2018/06/27 | 99883 | fonts/academicons/academicons.pdf
2018/06/27 | 10779 | fonts/academicons/academicons.sty
2018/06/27 | 5774 | fonts/academicons/academicons.tex
@@ -127578,405 +127578,439 @@
1994/02/25 | 18333 | graphics/bm2font/p2clib.c
1994/02/25 | 4402 | graphics/bm2font/README
2006/01/01 | 673751 | graphics/bm2font.zip
-2020/02/16 | 1185 | graphics/circuit_macros/boxdims.sty
-2020/02/16 | 11927 | graphics/circuit_macros/CHANGES
-2020/02/16 | 462 | graphics/circuit_macros/Copying
-2020/02/16 | 14346 | graphics/circuit_macros/darrow.m4
-2020/02/16 | 494 | graphics/circuit_macros/doc/AmpTable.m4
-2020/02/16 | 1211 | graphics/circuit_macros/doc/Antennas.m4
-2020/02/16 | 2296 | graphics/circuit_macros/doc/Audio.m4
-2020/02/16 | 131 | graphics/circuit_macros/doc/Axes.m4
-2020/02/16 | 614 | graphics/circuit_macros/doc/BigResistor.m4
-2020/02/16 | 1619 | graphics/circuit_macros/doc/Bip.m4
-2020/02/16 | 1074 | graphics/circuit_macros/doc/bistable.m4
-2020/02/16 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
-2020/02/16 | 130 | graphics/circuit_macros/doc/bitrbody.m4
-2020/02/16 | 50 | graphics/circuit_macros/doc/bitr.m4
-2020/02/16 | 133969 | graphics/circuit_macros/doc/body.tex
-2020/02/16 | 1953 | graphics/circuit_macros/doc/Buffer.m4
-2020/02/16 | 25460 | graphics/circuit_macros/doc/Capture.JPG
-2020/02/16 | 2670 | graphics/circuit_macros/doc/CctTable.m4
-2020/02/16 | 4073 | graphics/circuit_macros/doc/Circuit_macros.bib
-2020/02/16 | 629598 | graphics/circuit_macros/doc/Circuit_macros.pdf
-2020/02/16 | 2639 | graphics/circuit_macros/doc/Circuit_macros.tex
-2020/02/16 | 1857 | graphics/circuit_macros/doc/Composite.m4
-2020/02/16 | 1120 | graphics/circuit_macros/doc/ConfigA.m4
-2020/02/16 | 1257 | graphics/circuit_macros/doc/ConfigB.m4
-2020/02/16 | 1291 | graphics/circuit_macros/doc/ConfigC.m4
-2020/02/16 | 2161 | graphics/circuit_macros/doc/Conn.m4
-2020/02/16 | 3326 | graphics/circuit_macros/doc/Contact.m4
-2020/02/16 | 1585 | graphics/circuit_macros/doc/Contacts.m4
-2020/02/16 | 1995 | graphics/circuit_macros/doc/Corners.m4
-2020/02/16 | 1329 | graphics/circuit_macros/doc/currents.m4
-2020/02/16 | 2389 | graphics/circuit_macros/doc/Dac.m4
-2020/02/16 | 1151 | graphics/circuit_macros/doc/Darlington.m4
-2020/02/16 | 76409 | graphics/circuit_macros/doc/defines.tex
-2020/02/16 | 1485 | graphics/circuit_macros/doc/Demultiplexer.m4
-2020/02/16 | 1467 | graphics/circuit_macros/doc/Diodes.m4
-2020/02/16 | 483 | graphics/circuit_macros/doc/eboxdims.m4
-2020/02/16 | 980 | graphics/circuit_macros/doc/Emarrows.m4
-2020/02/16 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
-2020/02/16 | 4489 | graphics/circuit_macros/doc/fet.m4
-2020/02/16 | 329 | graphics/circuit_macros/doc/FF.m4
-2020/02/16 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
-2020/02/16 | 960 | graphics/circuit_macros/doc/Flowdiag.m4
-2020/02/16 | 899 | graphics/circuit_macros/doc/Fuses.m4
-2020/02/16 | 707 | graphics/circuit_macros/doc/Grounds.m4
-2020/02/16 | 1020 | graphics/circuit_macros/doc/Headers.m4
-2020/02/16 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
-2020/02/16 | 2362 | graphics/circuit_macros/doc/Jack.m4
-2020/02/16 | 2119 | graphics/circuit_macros/doc/Logic.m4
-2020/02/16 | 269 | graphics/circuit_macros/doc/Loop.m4
-2020/02/16 | 387 | graphics/circuit_macros/doc/lrarrows.m4
-2020/02/16 | 4354 | graphics/circuit_macros/doc/Makefile
-2020/02/16 | 1575 | graphics/circuit_macros/doc/mplex.m4
-2020/02/16 | 1400 | graphics/circuit_macros/doc/Multiplexer.m4
-2020/02/16 | 499 | graphics/circuit_macros/doc/NLG.m4
-2020/02/16 | 1128 | graphics/circuit_macros/doc/NPDT.m4
-2020/02/16 | 1040 | graphics/circuit_macros/doc/Nport.m4
-2020/02/16 | 137 | graphics/circuit_macros/doc/oaxbody.m4
-2020/02/16 | 48 | graphics/circuit_macros/doc/oax.m4
-2020/02/16 | 782 | graphics/circuit_macros/doc/Oblique.m4
-2020/02/16 | 1433 | graphics/circuit_macros/doc/Opamp.m4
-2020/02/16 | 835 | graphics/circuit_macros/doc/Opto.m4
-2020/02/16 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
-2020/02/16 | 1654 | graphics/circuit_macros/doc/Pconn.m4
-2020/02/16 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
-2020/02/16 | 774 | graphics/circuit_macros/doc/quick.m4
-2020/02/16 | 1921 | graphics/circuit_macros/doc/relaycoil.m4
-2020/02/16 | 1259 | graphics/circuit_macros/doc/Relay.m4
-2020/02/16 | 404 | graphics/circuit_macros/doc/Series.m4
-2020/02/16 | 1406 | graphics/circuit_macros/doc/ShiftR.m4
-2020/02/16 | 421 | graphics/circuit_macros/doc/Sinus.m4
-2020/02/16 | 2085 | graphics/circuit_macros/doc/Sources.m4
-2020/02/16 | 217 | graphics/circuit_macros/doc/stringdims.m4
-2020/02/16 | 3608 | graphics/circuit_macros/doc/Switches.m4
-2020/02/16 | 1464 | graphics/circuit_macros/doc/Taps.m4
-2020/02/16 | 11 | graphics/circuit_macros/doc/test.tex
-2020/02/16 | 1022 | graphics/circuit_macros/doc/Tgate.m4
-2020/02/16 | 144 | graphics/circuit_macros/doc/Thermal.m4
-2020/02/16 | 3321 | graphics/circuit_macros/doc/thyristor.m4
-2020/02/16 | 535 | graphics/circuit_macros/doc/Tline.m4
-2020/02/16 | 165 | graphics/circuit_macros/doc/tranbody.m4
-2020/02/16 | 2097 | graphics/circuit_macros/doc/Ttree.m4
-2020/02/16 | 660 | graphics/circuit_macros/doc/ujt.m4
-2020/02/16 | 756 | graphics/circuit_macros/doc/Variable.m4
-2020/02/16 | 12 | graphics/circuit_macros/doc/Version.tex
-2020/02/16 | 3346 | graphics/circuit_macros/doc/Windings.m4
-2020/02/16 | 449 | graphics/circuit_macros/doc/woodchips.m4
-2020/02/16 | 2912 | graphics/circuit_macros/doc/Workflow.m4
-2020/02/16 | 1526 | graphics/circuit_macros/doc/Xform.m4
-2020/02/16 | 19238 | graphics/circuit_macros/dpictools.pic
-2020/02/16 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
-2020/02/16 | 2402 | graphics/circuit_macros/examples/Adder.m4
-2020/02/16 | 4205 | graphics/circuit_macros/examples/Alogix.m4
-2020/02/16 | 494 | graphics/circuit_macros/examples/AmpTable.m4
-2020/02/16 | 1211 | graphics/circuit_macros/examples/Antennas.m4
-2020/02/16 | 4909 | graphics/circuit_macros/examples/AntiqueClock.m4
-2020/02/16 | 2296 | graphics/circuit_macros/examples/Audio.m4
-2020/02/16 | 1962 | graphics/circuit_macros/examples/Autologix.m4
-2020/02/16 | 4638 | graphics/circuit_macros/examples/Ball.m4
-2020/02/16 | 1619 | graphics/circuit_macros/examples/Bip.m4
-2020/02/16 | 905 | graphics/circuit_macros/examples/birds.m4
-2020/02/16 | 1075 | graphics/circuit_macros/examples/bistable.m4
-2020/02/16 | 3175 | graphics/circuit_macros/examples/Blogix.m4
-2020/02/16 | 2542 | graphics/circuit_macros/examples/brace.m4
-2020/02/16 | 1024 | graphics/circuit_macros/examples/Btree.m4
-2020/02/16 | 3508 | graphics/circuit_macros/examples/Buttons.m4
-2020/02/16 | 991 | graphics/circuit_macros/examples/Byte.m4
-2020/02/16 | 6371 | graphics/circuit_macros/examples/CanLogic.m4
-2020/02/16 | 2670 | graphics/circuit_macros/examples/CctTable.m4
-2020/02/16 | 233 | graphics/circuit_macros/examples/Ccurve.m4
-2020/02/16 | 1039 | graphics/circuit_macros/examples/chaos.m4
-2020/02/16 | 8955 | graphics/circuit_macros/examples/Chuck.m4
-2020/02/16 | 482 | graphics/circuit_macros/examples/clock.m4
-2020/02/16 | 2161 | graphics/circuit_macros/examples/Conn.m4
-2020/02/16 | 3326 | graphics/circuit_macros/examples/Contact.m4
-2020/02/16 | 1585 | graphics/circuit_macros/examples/Contacts.m4
-2020/02/16 | 4288 | graphics/circuit_macros/examples/control.m4
-2020/02/16 | 551 | graphics/circuit_macros/examples/Counting.m4
-2020/02/16 | 1358 | graphics/circuit_macros/examples/Crossbar.m4
-2020/02/16 | 2520 | graphics/circuit_macros/examples/Crow.m4
-2020/02/16 | 1879 | graphics/circuit_macros/examples/Cruller.m4
-2020/02/16 | 2295 | graphics/circuit_macros/examples/csc.m4
-2020/02/16 | 6003 | graphics/circuit_macros/examples/CSlight.m4
-2020/02/16 | 5890 | graphics/circuit_macros/examples/Csource.m4
-2020/02/16 | 460 | graphics/circuit_macros/examples/debug1.tex
-2020/02/16 | 1939 | graphics/circuit_macros/examples/debug2.m4
-2020/02/16 | 655 | graphics/circuit_macros/examples/Decoder.m4
-2020/02/16 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
-2020/02/16 | 654 | graphics/circuit_macros/examples/diamond.m4
-2020/02/16 | 6854 | graphics/circuit_macros/examples/Dini.m4
-2020/02/16 | 1467 | graphics/circuit_macros/examples/Diodes.m4
-2020/02/16 | 1966 | graphics/circuit_macros/examples/Drive.m4
-2020/02/16 | 980 | graphics/circuit_macros/examples/Emarrows.m4
-2020/02/16 | 2584 | graphics/circuit_macros/examples/Escher.m4
-2020/02/16 | 4305 | graphics/circuit_macros/examples/Euro.m4
-2020/02/16 | 2412 | graphics/circuit_macros/examples/ex00.m4
-2020/02/16 | 697 | graphics/circuit_macros/examples/ex01.m4
-2020/02/16 | 1100 | graphics/circuit_macros/examples/ex02.m4
-2020/02/16 | 673 | graphics/circuit_macros/examples/ex03.m4
-2020/02/16 | 1654 | graphics/circuit_macros/examples/ex04.m4
-2020/02/16 | 1608 | graphics/circuit_macros/examples/ex05.m4
-2020/02/16 | 2170 | graphics/circuit_macros/examples/ex06.m4
-2020/02/16 | 2556 | graphics/circuit_macros/examples/ex08.m4
-2020/02/16 | 4312 | graphics/circuit_macros/examples/ex09.m4
-2020/02/16 | 1492 | graphics/circuit_macros/examples/ex10.m4
-2020/02/16 | 2361 | graphics/circuit_macros/examples/ex11.m4
-2020/02/16 | 3339 | graphics/circuit_macros/examples/ex12.m4
-2020/02/16 | 1003 | graphics/circuit_macros/examples/ex15.m4
-2020/02/16 | 1865 | graphics/circuit_macros/examples/ex16.m4
-2020/02/16 | 1126 | graphics/circuit_macros/examples/ex17.m4
-2020/02/16 | 865 | graphics/circuit_macros/examples/ex18.m4
-2020/02/16 | 2000 | graphics/circuit_macros/examples/ex21.m4
-2020/02/16 | 879975 | graphics/circuit_macros/examples/examples.pdf
-2020/02/16 | 1890 | graphics/circuit_macros/examples/examples.tex
-2020/02/16 | 8372 | graphics/circuit_macros/examples/exp.m4
-2020/02/16 | 4489 | graphics/circuit_macros/examples/fet.m4
-2020/02/16 | 16829 | graphics/circuit_macros/examples/files.tex
-2020/02/16 | 645 | graphics/circuit_macros/examples/Floor.m4
-2020/02/16 | 5552 | graphics/circuit_macros/examples/FlowchartDefs.m4
-2020/02/16 | 3911 | graphics/circuit_macros/examples/Flow.m4
-2020/02/16 | 899 | graphics/circuit_macros/examples/Fuses.m4
-2020/02/16 | 421 | graphics/circuit_macros/examples/GrayCode.m4
-2020/02/16 | 5478 | graphics/circuit_macros/examples/graysurf.m4
-2020/02/16 | 707 | graphics/circuit_macros/examples/Grounds.m4
-2020/02/16 | 1020 | graphics/circuit_macros/examples/Headers.m4
-2020/02/16 | 1458 | graphics/circuit_macros/examples/header.tex
-2020/02/16 | 13026 | graphics/circuit_macros/examples/Heathkit.m4
-2020/02/16 | 2068 | graphics/circuit_macros/examples/I2L.m4
-2020/02/16 | 1668 | graphics/circuit_macros/examples/IC10107.m4
-2020/02/16 | 4841 | graphics/circuit_macros/examples/ics.m4
-2020/02/16 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
-2020/02/16 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
-2020/02/16 | 741 | graphics/circuit_macros/examples/Incleps.m4
-2020/02/16 | 29772 | graphics/circuit_macros/examples/Incl.pdf
-2020/02/16 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
-2020/02/16 | 2362 | graphics/circuit_macros/examples/Jack.m4
-2020/02/16 | 2696 | graphics/circuit_macros/examples/keyval.m4
-2020/02/16 | 489 | graphics/circuit_macros/examples/Koch.m4
-2020/02/16 | 7113 | graphics/circuit_macros/examples/lcct.m4
-2020/02/16 | 2119 | graphics/circuit_macros/examples/Logic.m4
-2020/02/16 | 2304 | graphics/circuit_macros/examples/Loglog.m4
-2020/02/16 | 8921 | graphics/circuit_macros/examples/Makefile
-2020/02/16 | 1393 | graphics/circuit_macros/examples/MC.m4
-2020/02/16 | 94471 | graphics/circuit_macros/examples/mf/cct.mf
-2020/02/16 | 776 | graphics/circuit_macros/examples/mf/cct.tfm
-2020/02/16 | 4615 | graphics/circuit_macros/examples/mf/font.m4
-2020/02/16 | 1529 | graphics/circuit_macros/examples/mf/Makefile
-2020/02/16 | 1076 | graphics/circuit_macros/examples/mf/mftest
-2020/02/16 | 3785 | graphics/circuit_macros/examples/Mixer.m4
-2020/02/16 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
-2020/02/16 | 444 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
-2020/02/16 | 4237 | graphics/circuit_macros/examples/mpost/Makefile
-2020/02/16 | 720 | graphics/circuit_macros/examples/mpost/mptest
-2020/02/16 | 604 | graphics/circuit_macros/examples/mpost/README-mpost
-2020/02/16 | 453 | graphics/circuit_macros/examples/mpost/tstmpost.tex
-2020/02/16 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
-2020/02/16 | 499 | graphics/circuit_macros/examples/NLG.m4
-2020/02/16 | 1128 | graphics/circuit_macros/examples/NPDT.m4
-2020/02/16 | 1040 | graphics/circuit_macros/examples/Nport.m4
-2020/02/16 | 20234 | graphics/circuit_macros/examples/odistmakefile
-2020/02/16 | 2792 | graphics/circuit_macros/examples/OpAmpFilter.m4
-2020/02/16 | 1433 | graphics/circuit_macros/examples/Opamp.m4
-2020/02/16 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
-2020/02/16 | 1852 | graphics/circuit_macros/examples/Orbits.m4
-2020/02/16 | 1654 | graphics/circuit_macros/examples/Pconn.m4
-2020/02/16 | 1375 | graphics/circuit_macros/examples/person.m4
-2020/02/16 | 2674 | graphics/circuit_macros/examples/Planes.m4
-2020/02/16 | 1174 | graphics/circuit_macros/examples/PPA.m4
-2020/02/16 | 750 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
-2020/02/16 | 4622 | graphics/circuit_macros/examples/psfrag/Makefile
-2020/02/16 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
-2020/02/16 | 406 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
-2020/02/16 | 3919 | graphics/circuit_macros/examples/PushPull.m4
-2020/02/16 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
-2020/02/16 | 918 | graphics/circuit_macros/examples/Quantum.m4
-2020/02/16 | 774 | graphics/circuit_macros/examples/quick.m4
-2020/02/16 | 3545 | graphics/circuit_macros/examples/random.m4
-2020/02/16 | 2814 | graphics/circuit_macros/examples/README-examples
-2020/02/16 | 6880 | graphics/circuit_macros/examples/Rectifiers.m4
-2020/02/16 | 3825 | graphics/circuit_macros/examples/recycle.m4
-2020/02/16 | 1921 | graphics/circuit_macros/examples/relaycoil.m4
-2020/02/16 | 1259 | graphics/circuit_macros/examples/Relay.m4
-2020/02/16 | 1443 | graphics/circuit_macros/examples/Resolver.m4
-2020/02/16 | 4569 | graphics/circuit_macros/examples/rose.m4
-2020/02/16 | 221 | graphics/circuit_macros/examples/rotate.tex
-2020/02/16 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
-2020/02/16 | 518 | graphics/circuit_macros/examples/Rotbox.m4
-2020/02/16 | 365 | graphics/circuit_macros/examples/rotellipse.m4
-2020/02/16 | 1778 | graphics/circuit_macros/examples/Schottky.m4
-2020/02/16 | 2761 | graphics/circuit_macros/examples/sfg.m4
-2020/02/16 | 4751 | graphics/circuit_macros/examples/Shaky.m4
-2020/02/16 | 7529 | graphics/circuit_macros/examples/shapes.m4
-2020/02/16 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
-2020/02/16 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
-2020/02/16 | 419 | graphics/circuit_macros/examples/Sixpole.m4
-2020/02/16 | 370 | graphics/circuit_macros/examples/snake.m4
-2020/02/16 | 2085 | graphics/circuit_macros/examples/Sources.m4
-2020/02/16 | 1906 | graphics/circuit_macros/examples/SPM.m4
-2020/02/16 | 380 | graphics/circuit_macros/examples/SQUID.m4
-2020/02/16 | 947 | graphics/circuit_macros/examples/squiggle.m4
-2020/02/16 | 1955 | graphics/circuit_macros/examples/svg/ABlogixSVG.m4
-2020/02/16 | 2528 | graphics/circuit_macros/examples/svg/AdderSVG.m4
-2020/02/16 | 4337 | graphics/circuit_macros/examples/svg/AlogixSVG.m4
-2020/02/16 | 538 | graphics/circuit_macros/examples/svg/AmpTableSVG.m4
-2020/02/16 | 1090 | graphics/circuit_macros/examples/svg/AntennasSVG.m4
-2020/02/16 | 5176 | graphics/circuit_macros/examples/svg/AntiqueClockSVG.m4
-2020/02/16 | 2350 | graphics/circuit_macros/examples/svg/AudioSVG.m4
-2020/02/16 | 1668 | graphics/circuit_macros/examples/svg/Banking.m4
-2020/02/16 | 1812 | graphics/circuit_macros/examples/svg/BipSVG.m4
-2020/02/16 | 1080 | graphics/circuit_macros/examples/svg/BtreeSVG.m4
-2020/02/16 | 3583 | graphics/circuit_macros/examples/svg/ButtonsSVG.m4
-2020/02/16 | 937 | graphics/circuit_macros/examples/svg/ByteSVG.m4
-2020/02/16 | 6413 | graphics/circuit_macros/examples/svg/CanLogicSVG.m4
-2020/02/16 | 2180 | graphics/circuit_macros/examples/svg/CctTableSVG.m4
-2020/02/16 | 2022 | graphics/circuit_macros/examples/svg/ConnSVG.m4
-2020/02/16 | 1737 | graphics/circuit_macros/examples/svg/ContactsSVG.m4
-2020/02/16 | 3646 | graphics/circuit_macros/examples/svg/ContactSVG.m4
-2020/02/16 | 3206 | graphics/circuit_macros/examples/svg/controlSVG.m4
-2020/02/16 | 793 | graphics/circuit_macros/examples/svg/CountingSVG.m4
-2020/02/16 | 1387 | graphics/circuit_macros/examples/svg/CrossbarSVG.m4
-2020/02/16 | 2525 | graphics/circuit_macros/examples/svg/CrowSVG.m4
-2020/02/16 | 1882 | graphics/circuit_macros/examples/svg/CrullerSVG.m4
-2020/02/16 | 2324 | graphics/circuit_macros/examples/svg/cscSVG.m4
-2020/02/16 | 7418 | graphics/circuit_macros/examples/svg/CsourceSVG.m4
-2020/02/16 | 745 | graphics/circuit_macros/examples/svg/DecoderSVG.m4
-2020/02/16 | 1373 | graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4
-2020/02/16 | 609 | graphics/circuit_macros/examples/svg/diamondSVG.m4
-2020/02/16 | 6854 | graphics/circuit_macros/examples/svg/DiniSVG.m4
-2020/02/16 | 1429 | graphics/circuit_macros/examples/svg/DiodesSVG.m4
-2020/02/16 | 1966 | graphics/circuit_macros/examples/svg/DriveSVG.m4
-2020/02/16 | 1070 | graphics/circuit_macros/examples/svg/EmarrowsSVG.m4
-2020/02/16 | 2443 | graphics/circuit_macros/examples/svg/ex00SVG.m4
-2020/02/16 | 931 | graphics/circuit_macros/examples/svg/ex01SVG.m4
-2020/02/16 | 1093 | graphics/circuit_macros/examples/svg/ex02SVG.m4
-2020/02/16 | 855 | graphics/circuit_macros/examples/svg/ex03SVG.m4
-2020/02/16 | 1891 | graphics/circuit_macros/examples/svg/ex04SVG.m4
-2020/02/16 | 1807 | graphics/circuit_macros/examples/svg/ex05SVG.m4
-2020/02/16 | 2018 | graphics/circuit_macros/examples/svg/ex06SVG.m4
-2020/02/16 | 2559 | graphics/circuit_macros/examples/svg/ex08SVG.m4
-2020/02/16 | 4108 | graphics/circuit_macros/examples/svg/ex09SVG.m4
-2020/02/16 | 1699 | graphics/circuit_macros/examples/svg/ex10SVG.m4
-2020/02/16 | 2685 | graphics/circuit_macros/examples/svg/ex11SVG.m4
-2020/02/16 | 3522 | graphics/circuit_macros/examples/svg/ex12SVG.m4
-2020/02/16 | 970 | graphics/circuit_macros/examples/svg/ex15SVG.m4
-2020/02/16 | 1893 | graphics/circuit_macros/examples/svg/ex16SVG.m4
-2020/02/16 | 1204 | graphics/circuit_macros/examples/svg/ex17SVG.m4
-2020/02/16 | 1065 | graphics/circuit_macros/examples/svg/ex18SVG.m4
-2020/02/16 | 2177 | graphics/circuit_macros/examples/svg/ex21SVG.m4
-2020/02/16 | 12306 | graphics/circuit_macros/examples/svg/examplesSVG.htmx
-2020/02/16 | 10589 | graphics/circuit_macros/examples/svg/expSVG.m4
-2020/02/16 | 3836 | graphics/circuit_macros/examples/svg/fetSVG.m4
-2020/02/16 | 9954 | graphics/circuit_macros/examples/svg/FlowSVG.m4
-2020/02/16 | 444 | graphics/circuit_macros/examples/svg/FontsSVG.m4
-2020/02/16 | 869 | graphics/circuit_macros/examples/svg/FusesSVG.m4
-2020/02/16 | 422 | graphics/circuit_macros/examples/svg/GrayCodeSVG.m4
-2020/02/16 | 5537 | graphics/circuit_macros/examples/svg/graysurfSVG.m4
-2020/02/16 | 699 | graphics/circuit_macros/examples/svg/GroundsSVG.m4
-2020/02/16 | 1149 | graphics/circuit_macros/examples/svg/HeadersSVG.m4
-2020/02/16 | 12711 | graphics/circuit_macros/examples/svg/HeathkitSVG.m4
-2020/02/16 | 2171 | graphics/circuit_macros/examples/svg/I2LSVG.m4
-2020/02/16 | 5015 | graphics/circuit_macros/examples/svg/icsSVG.m4
-2020/02/16 | 4003 | graphics/circuit_macros/examples/svg/InclepsSVG.m4
-2020/02/16 | 21384 | graphics/circuit_macros/examples/svg/Incl.jpg
-2020/02/16 | 2051 | graphics/circuit_macros/examples/svg/JackSVG.m4
-2020/02/16 | 7203 | graphics/circuit_macros/examples/svg/lcctSVG.m4
-2020/02/16 | 6216 | graphics/circuit_macros/examples/svg/LgateSVG.m4
-2020/02/16 | 63 | graphics/circuit_macros/examples/svg/local_init.m4
-2020/02/16 | 1931 | graphics/circuit_macros/examples/svg/LogicSVG.m4
-2020/02/16 | 2241 | graphics/circuit_macros/examples/svg/LoglogSVG.m4
-2020/02/16 | 3932 | graphics/circuit_macros/examples/svg/Makefile
-2020/02/16 | 1593 | graphics/circuit_macros/examples/svg/MCSVG.m4
-2020/02/16 | 3487 | graphics/circuit_macros/examples/svg/MixerSVG.m4
-2020/02/16 | 1953 | graphics/circuit_macros/examples/svg/MotorControlSVG.m4
-2020/02/16 | 1467 | graphics/circuit_macros/examples/svg/MultiplexerSVG.m4
-2020/02/16 | 532 | graphics/circuit_macros/examples/svg/NLGSVG.m4
-2020/02/16 | 1157 | graphics/circuit_macros/examples/svg/NPDTSVG.m4
-2020/02/16 | 748 | graphics/circuit_macros/examples/svg/Np.m4
-2020/02/16 | 1238 | graphics/circuit_macros/examples/svg/NportSVG.m4
-2020/02/16 | 1034 | graphics/circuit_macros/examples/svg/OpampSVG.m4
-2020/02/16 | 2551 | graphics/circuit_macros/examples/svg/OptoisoSVG.m4
-2020/02/16 | 10439 | graphics/circuit_macros/examples/svg/paletteSVG.m4
-2020/02/16 | 1669 | graphics/circuit_macros/examples/svg/PconnSVG.m4
-2020/02/16 | 3779 | graphics/circuit_macros/examples/svg/PushPullSVG.m4
-2020/02/16 | 862 | graphics/circuit_macros/examples/svg/pwrsupplySVG.m4
-2020/02/16 | 947 | graphics/circuit_macros/examples/svg/QuantumSVG.m4
-2020/02/16 | 839 | graphics/circuit_macros/examples/svg/quickSVG.m4
-2020/02/16 | 3573 | graphics/circuit_macros/examples/svg/randomSVG.m4
-2020/02/16 | 7435 | graphics/circuit_macros/examples/svg/RectifiersSVG.m4
-2020/02/16 | 3842 | graphics/circuit_macros/examples/svg/recycleSVG.m4
-2020/02/16 | 2069 | graphics/circuit_macros/examples/svg/relaycoilSVG.m4
-2020/02/16 | 1431 | graphics/circuit_macros/examples/svg/RelaySVG.m4
-2020/02/16 | 4624 | graphics/circuit_macros/examples/svg/roseSVG.m4
-2020/02/16 | 545 | graphics/circuit_macros/examples/svg/RotboxSVG.m4
-2020/02/16 | 1837 | graphics/circuit_macros/examples/svg/SchottkySVG.m4
-2020/02/16 | 3290 | graphics/circuit_macros/examples/svg/sfgSVG.m4
-2020/02/16 | 7526 | graphics/circuit_macros/examples/svg/shapesSVG.m4
-2020/02/16 | 1437 | graphics/circuit_macros/examples/svg/ShiftRSVG.m4
-2020/02/16 | 1331 | graphics/circuit_macros/examples/svg/SierpinskiSVG.m4
-2020/02/16 | 419 | graphics/circuit_macros/examples/svg/SixpoleSVG.m4
-2020/02/16 | 1842 | graphics/circuit_macros/examples/svg/SourcesSVG.m4
-2020/02/16 | 417 | graphics/circuit_macros/examples/svg/SQUIDSVG.m4
-2020/02/16 | 1456 | graphics/circuit_macros/examples/svg/SVGconfig.m4
-2020/02/16 | 3964 | graphics/circuit_macros/examples/svg/SwitchesSVG.m4
-2020/02/16 | 1055 | graphics/circuit_macros/examples/svg/TgateSVG.m4
-2020/02/16 | 1444 | graphics/circuit_macros/examples/svg/ThreeSVG.m4
-2020/02/16 | 3310 | graphics/circuit_macros/examples/svg/thyristorSVG.m4
-2020/02/16 | 1616 | graphics/circuit_macros/examples/svg/TimerSVG.m4
-2020/02/16 | 8094 | graphics/circuit_macros/examples/svg/tstSVG.htmx
-2020/02/16 | 1675 | graphics/circuit_macros/examples/svg/TTLnandSVG.m4
-2020/02/16 | 3091 | graphics/circuit_macros/examples/svg/TtreeSVG.m4
-2020/02/16 | 12478 | graphics/circuit_macros/examples/svg/TubediagsSVG.m4
-2020/02/16 | 682 | graphics/circuit_macros/examples/svg/ujtSVG.m4
-2020/02/16 | 888 | graphics/circuit_macros/examples/svg/VariableSVG.m4
-2020/02/16 | 2994 | graphics/circuit_macros/examples/svg/WindingsSVG.m4
-2020/02/16 | 3631 | graphics/circuit_macros/examples/svg/wormSVG.m4
-2020/02/16 | 1559 | graphics/circuit_macros/examples/svg/XformSVG.m4
-2020/02/16 | 1985 | graphics/circuit_macros/examples/svg/XORSVG.m4
-2020/02/16 | 3608 | graphics/circuit_macros/examples/Switches.m4
-2020/02/16 | 591 | graphics/circuit_macros/examples/test.m4
-2020/02/16 | 416 | graphics/circuit_macros/examples/testpdf.tex
-2020/02/16 | 1022 | graphics/circuit_macros/examples/Tgate.m4
-2020/02/16 | 1287 | graphics/circuit_macros/examples/Three.m4
-2020/02/16 | 3321 | graphics/circuit_macros/examples/thyristor.m4
-2020/02/16 | 382 | graphics/circuit_macros/examples/tikz.tex
-2020/02/16 | 1546 | graphics/circuit_macros/examples/Timer.m4
-2020/02/16 | 219 | graphics/circuit_macros/examples/tst1.tex
-2020/02/16 | 613 | graphics/circuit_macros/examples/tst.tex
-2020/02/16 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
-2020/02/16 | 2097 | graphics/circuit_macros/examples/Ttree.m4
-2020/02/16 | 9840 | graphics/circuit_macros/examples/tubedefs.m4
-2020/02/16 | 13256 | graphics/circuit_macros/examples/Tubediags.m4
-2020/02/16 | 660 | graphics/circuit_macros/examples/ujt.m4
-2020/02/16 | 756 | graphics/circuit_macros/examples/Variable.m4
-2020/02/16 | 442 | graphics/circuit_macros/examples/Wheat.m4
-2020/02/16 | 3346 | graphics/circuit_macros/examples/Windings.m4
-2020/02/16 | 281 | graphics/circuit_macros/examples/windows.m4
-2020/02/16 | 2799 | graphics/circuit_macros/examples/worm.m4
-2020/02/16 | 337 | graphics/circuit_macros/examples/xfig/Makefile
-2020/02/16 | 21204 | graphics/circuit_macros/examples/xfig/xfiglib.fig
-2020/02/16 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
-2020/02/16 | 1526 | graphics/circuit_macros/examples/Xform.m4
-2020/02/16 | 1823 | graphics/circuit_macros/examples/XOR.m4
-2020/02/16 | 656 | graphics/circuit_macros/examples/Zcos.m4
-2020/02/16 | 1019 | graphics/circuit_macros/gpic.m4
-2020/02/16 | 11273 | graphics/circuit_macros/lib3D.m4
-2020/02/16 | 154504 | graphics/circuit_macros/libcct.m4
-2020/02/16 | 78304 | graphics/circuit_macros/libgen.m4
-2020/02/16 | 48452 | graphics/circuit_macros/liblog.m4
-2020/02/16 | 19176 | graphics/circuit_macros/Licence.txt
-2020/02/16 | 1639 | graphics/circuit_macros/Makefile
-2020/02/16 | 1114 | graphics/circuit_macros/mfpic.m4
-2020/02/16 | 1640 | graphics/circuit_macros/mpost.m4
-2020/02/16 | 2085 | graphics/circuit_macros/pgf.m4
-2020/02/16 | 2834 | graphics/circuit_macros/postscript.m4
-2020/02/16 | 706 | graphics/circuit_macros/psfrag.m4
-2020/02/16 | 2099 | graphics/circuit_macros/pstricks.m4
-2020/02/16 | 20277 | graphics/circuit_macros/README
-2020/02/16 | 8309 | graphics/circuit_macros/svg.m4
-2020/02/16 | 1029 | graphics/circuit_macros/xfig.m4
-2020/02/17 | 1990264 | graphics/circuit_macros.zip
+2020/05/01 | 1185 | graphics/circuit_macros/boxdims.sty
+2020/05/01 | 12244 | graphics/circuit_macros/CHANGES
+2020/05/01 | 462 | graphics/circuit_macros/Copying
+2020/05/01 | 14346 | graphics/circuit_macros/darrow.m4
+2020/05/01 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
+2020/05/01 | 1940 | graphics/circuit_macros/doc/AmpTable.tex
+2020/05/01 | 1211 | graphics/circuit_macros/doc/AntennasMan.m4
+2020/05/01 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
+2020/05/01 | 10164 | graphics/circuit_macros/doc/Audio.tex
+2020/05/01 | 131 | graphics/circuit_macros/doc/Axes.m4
+2020/05/01 | 614 | graphics/circuit_macros/doc/BigResistor.m4
+2020/05/01 | 1619 | graphics/circuit_macros/doc/BipMan.m4
+2020/05/01 | 5545 | graphics/circuit_macros/doc/Bip.tex
+2020/05/01 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
+2020/05/01 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
+2020/05/01 | 130 | graphics/circuit_macros/doc/bitrbody.m4
+2020/05/01 | 50 | graphics/circuit_macros/doc/bitr.m4
+2020/05/01 | 136113 | graphics/circuit_macros/doc/body.tex
+2020/05/01 | 1953 | graphics/circuit_macros/doc/Buffer.m4
+2020/05/01 | 25460 | graphics/circuit_macros/doc/Capture.JPG
+2020/05/01 | 2670 | graphics/circuit_macros/doc/CctTableMan.m4
+2020/05/01 | 29074 | graphics/circuit_macros/doc/CctTable.tex
+2020/05/01 | 4073 | graphics/circuit_macros/doc/Circuit_macros.bib
+2020/05/01 | 1285894 | graphics/circuit_macros/doc/Circuit_macros.pdf
+2020/05/01 | 2639 | graphics/circuit_macros/doc/Circuit_macros.tex
+2020/05/01 | 1857 | graphics/circuit_macros/doc/Composite.m4
+2020/05/01 | 1120 | graphics/circuit_macros/doc/ConfigA.m4
+2020/05/01 | 1257 | graphics/circuit_macros/doc/ConfigB.m4
+2020/05/01 | 1291 | graphics/circuit_macros/doc/ConfigC.m4
+2020/05/01 | 2179 | graphics/circuit_macros/doc/ConnMan.m4
+2020/05/01 | 6550 | graphics/circuit_macros/doc/Conn.tex
+2020/05/01 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
+2020/05/01 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
+2020/05/01 | 6067 | graphics/circuit_macros/doc/Contacts.tex
+2020/05/01 | 13833 | graphics/circuit_macros/doc/Contact.tex
+2020/05/01 | 1995 | graphics/circuit_macros/doc/Corners.m4
+2020/05/01 | 1329 | graphics/circuit_macros/doc/currents.m4
+2020/05/01 | 2389 | graphics/circuit_macros/doc/Dac.m4
+2020/05/01 | 1151 | graphics/circuit_macros/doc/Darlington.m4
+2020/05/01 | 77979 | graphics/circuit_macros/doc/defines.tex
+2020/05/01 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
+2020/05/01 | 4817 | graphics/circuit_macros/doc/Demultiplexer.tex
+2020/05/01 | 1467 | graphics/circuit_macros/doc/DiodesMan.m4
+2020/05/01 | 12050 | graphics/circuit_macros/doc/Diodes.tex
+2020/05/01 | 483 | graphics/circuit_macros/doc/eboxdims.m4
+2020/05/01 | 980 | graphics/circuit_macros/doc/EmarrowsMan.m4
+2020/05/01 | 5502 | graphics/circuit_macros/doc/Emarrows.tex
+2020/05/01 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
+2020/05/01 | 4489 | graphics/circuit_macros/doc/fetMan.m4
+2020/05/01 | 16420 | graphics/circuit_macros/doc/fet.tex
+2020/05/01 | 329 | graphics/circuit_macros/doc/FF.m4
+2020/05/01 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
+2020/05/01 | 960 | graphics/circuit_macros/doc/Flowdiag.m4
+2020/05/01 | 999 | graphics/circuit_macros/doc/FusesMan.m4
+2020/05/01 | 4789 | graphics/circuit_macros/doc/Fuses.tex
+2020/05/01 | 815 | graphics/circuit_macros/doc/GroundsMan.m4
+2020/05/01 | 2661 | graphics/circuit_macros/doc/Grounds.tex
+2020/05/01 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
+2020/05/01 | 7503 | graphics/circuit_macros/doc/Headers.tex
+2020/05/01 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
+2020/05/01 | 2362 | graphics/circuit_macros/doc/JackMan.m4
+2020/05/01 | 12006 | graphics/circuit_macros/doc/Jack.tex
+2020/05/01 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
+2020/05/01 | 7533 | graphics/circuit_macros/doc/Logic.tex
+2020/05/01 | 269 | graphics/circuit_macros/doc/Loop.m4
+2020/05/01 | 387 | graphics/circuit_macros/doc/lrarrows.m4
+2020/05/01 | 4483 | graphics/circuit_macros/doc/Makefile
+2020/05/01 | 1575 | graphics/circuit_macros/doc/mplex.m4
+2020/05/01 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
+2020/05/01 | 4964 | graphics/circuit_macros/doc/Multiplexer.tex
+2020/05/01 | 499 | graphics/circuit_macros/doc/NLGMan.m4
+2020/05/01 | 3183 | graphics/circuit_macros/doc/NLG.tex
+2020/05/01 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
+2020/05/01 | 5137 | graphics/circuit_macros/doc/NPDT.tex
+2020/05/01 | 1040 | graphics/circuit_macros/doc/NportMan.m4
+2020/05/01 | 4666 | graphics/circuit_macros/doc/Nport.tex
+2020/05/01 | 137 | graphics/circuit_macros/doc/oaxbody.m4
+2020/05/01 | 48 | graphics/circuit_macros/doc/oax.m4
+2020/05/01 | 782 | graphics/circuit_macros/doc/Oblique.m4
+2020/05/01 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
+2020/05/01 | 835 | graphics/circuit_macros/doc/Opto.m4
+2020/05/01 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
+2020/05/01 | 1802 | graphics/circuit_macros/doc/PconnMan.m4
+2020/05/01 | 15033 | graphics/circuit_macros/doc/Pconn.tex
+2020/05/01 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
+2020/05/01 | 774 | graphics/circuit_macros/doc/quick.m4
+2020/05/01 | 1921 | graphics/circuit_macros/doc/relaycoilMan.m4
+2020/05/01 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
+2020/05/01 | 7316 | graphics/circuit_macros/doc/Relay.tex
+2020/05/01 | 369 | graphics/circuit_macros/doc/sampleIC.m4
+2020/05/01 | 404 | graphics/circuit_macros/doc/Series.m4
+2020/05/01 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
+2020/05/01 | 9425 | graphics/circuit_macros/doc/ShiftR.tex
+2020/05/01 | 421 | graphics/circuit_macros/doc/Sinus.m4
+2020/05/01 | 2165 | graphics/circuit_macros/doc/SourcesMan.m4
+2020/05/01 | 15388 | graphics/circuit_macros/doc/Sources.tex
+2020/05/01 | 217 | graphics/circuit_macros/doc/stringdims.m4
+2020/05/01 | 3973 | graphics/circuit_macros/doc/SwitchesMan.m4
+2020/05/01 | 19142 | graphics/circuit_macros/doc/Switches.tex
+2020/05/01 | 1464 | graphics/circuit_macros/doc/Taps.m4
+2020/05/01 | 11 | graphics/circuit_macros/doc/test.tex
+2020/05/01 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
+2020/05/01 | 4178 | graphics/circuit_macros/doc/Tgate.tex
+2020/05/01 | 144 | graphics/circuit_macros/doc/Thermal.m4
+2020/05/01 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
+2020/05/01 | 20418 | graphics/circuit_macros/doc/thyristor.tex
+2020/05/01 | 535 | graphics/circuit_macros/doc/Tline.m4
+2020/05/01 | 165 | graphics/circuit_macros/doc/tranbody.m4
+2020/05/01 | 660 | graphics/circuit_macros/doc/ujtMan.m4
+2020/05/01 | 2441 | graphics/circuit_macros/doc/ujt.tex
+2020/05/01 | 926 | graphics/circuit_macros/doc/VariableMan.m4
+2020/05/01 | 10401 | graphics/circuit_macros/doc/Variable.tex
+2020/05/01 | 12 | graphics/circuit_macros/doc/Version.tex
+2020/05/01 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
+2020/05/01 | 449 | graphics/circuit_macros/doc/woodchips.m4
+2020/05/01 | 2912 | graphics/circuit_macros/doc/Workflow.m4
+2020/05/01 | 1526 | graphics/circuit_macros/doc/XformMan.m4
+2020/05/01 | 25849 | graphics/circuit_macros/doc/Xform.tex
+2020/05/01 | 19250 | graphics/circuit_macros/dpictools.pic
+2020/05/01 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
+2020/05/01 | 2402 | graphics/circuit_macros/examples/Adder.m4
+2020/05/01 | 4205 | graphics/circuit_macros/examples/Alogix.m4
+2020/05/01 | 494 | graphics/circuit_macros/examples/AmpTable.m4
+2020/05/01 | 1211 | graphics/circuit_macros/examples/Antennas.m4
+2020/05/01 | 5042 | graphics/circuit_macros/examples/AntiqueClock.m4
+2020/05/01 | 777 | graphics/circuit_macros/examples/Arrester.m4
+2020/05/01 | 2634 | graphics/circuit_macros/examples/Audio.m4
+2020/05/01 | 1962 | graphics/circuit_macros/examples/Autologix.m4
+2020/05/01 | 4638 | graphics/circuit_macros/examples/Ball.m4
+2020/05/01 | 1619 | graphics/circuit_macros/examples/Bip.m4
+2020/05/01 | 905 | graphics/circuit_macros/examples/birds.m4
+2020/05/01 | 1075 | graphics/circuit_macros/examples/bistable.m4
+2020/05/01 | 3175 | graphics/circuit_macros/examples/Blogix.m4
+2020/05/01 | 2542 | graphics/circuit_macros/examples/brace.m4
+2020/05/01 | 1024 | graphics/circuit_macros/examples/Btree.m4
+2020/05/01 | 3508 | graphics/circuit_macros/examples/Buttons.m4
+2020/05/01 | 991 | graphics/circuit_macros/examples/Byte.m4
+2020/05/01 | 6371 | graphics/circuit_macros/examples/CanLogic.m4
+2020/05/01 | 2670 | graphics/circuit_macros/examples/CctTable.m4
+2020/05/01 | 233 | graphics/circuit_macros/examples/Ccurve.m4
+2020/05/01 | 1039 | graphics/circuit_macros/examples/chaos.m4
+2020/05/01 | 8955 | graphics/circuit_macros/examples/Chuck.m4
+2020/05/01 | 482 | graphics/circuit_macros/examples/clock.m4
+2020/05/01 | 674 | graphics/circuit_macros/examples/Connectors.m4
+2020/05/01 | 2179 | graphics/circuit_macros/examples/Conn.m4
+2020/05/01 | 3326 | graphics/circuit_macros/examples/Contact.m4
+2020/05/01 | 1585 | graphics/circuit_macros/examples/Contacts.m4
+2020/05/01 | 4288 | graphics/circuit_macros/examples/control.m4
+2020/05/01 | 551 | graphics/circuit_macros/examples/Counting.m4
+2020/05/01 | 1358 | graphics/circuit_macros/examples/Crossbar.m4
+2020/05/01 | 2520 | graphics/circuit_macros/examples/Crow.m4
+2020/05/01 | 1879 | graphics/circuit_macros/examples/Cruller.m4
+2020/05/01 | 2295 | graphics/circuit_macros/examples/csc.m4
+2020/05/01 | 6003 | graphics/circuit_macros/examples/CSlight.m4
+2020/05/01 | 5890 | graphics/circuit_macros/examples/Csource.m4
+2020/05/01 | 460 | graphics/circuit_macros/examples/debug1.tex
+2020/05/01 | 1959 | graphics/circuit_macros/examples/debug2.m4
+2020/05/01 | 655 | graphics/circuit_macros/examples/Decoder.m4
+2020/05/01 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
+2020/05/01 | 654 | graphics/circuit_macros/examples/diamond.m4
+2020/05/01 | 6854 | graphics/circuit_macros/examples/Dini.m4
+2020/05/01 | 1467 | graphics/circuit_macros/examples/Diodes.m4
+2020/05/01 | 1966 | graphics/circuit_macros/examples/Drive.m4
+2020/05/01 | 980 | graphics/circuit_macros/examples/Emarrows.m4
+2020/05/01 | 2584 | graphics/circuit_macros/examples/Escher.m4
+2020/05/01 | 4305 | graphics/circuit_macros/examples/Euro.m4
+2020/05/01 | 2412 | graphics/circuit_macros/examples/ex00.m4
+2020/05/01 | 697 | graphics/circuit_macros/examples/ex01.m4
+2020/05/01 | 1100 | graphics/circuit_macros/examples/ex02.m4
+2020/05/01 | 673 | graphics/circuit_macros/examples/ex03.m4
+2020/05/01 | 1654 | graphics/circuit_macros/examples/ex04.m4
+2020/05/01 | 1608 | graphics/circuit_macros/examples/ex05.m4
+2020/05/01 | 2170 | graphics/circuit_macros/examples/ex06.m4
+2020/05/01 | 2556 | graphics/circuit_macros/examples/ex08.m4
+2020/05/01 | 4312 | graphics/circuit_macros/examples/ex09.m4
+2020/05/01 | 1492 | graphics/circuit_macros/examples/ex10.m4
+2020/05/01 | 2361 | graphics/circuit_macros/examples/ex11.m4
+2020/05/01 | 3339 | graphics/circuit_macros/examples/ex12.m4
+2020/05/01 | 1003 | graphics/circuit_macros/examples/ex15.m4
+2020/05/01 | 1865 | graphics/circuit_macros/examples/ex16.m4
+2020/05/01 | 1126 | graphics/circuit_macros/examples/ex17.m4
+2020/05/01 | 865 | graphics/circuit_macros/examples/ex18.m4
+2020/05/01 | 2000 | graphics/circuit_macros/examples/ex21.m4
+2020/05/01 | 893788 | graphics/circuit_macros/examples/examples.pdf
+2020/05/01 | 1766 | graphics/circuit_macros/examples/examples.tex
+2020/05/01 | 8372 | graphics/circuit_macros/examples/exp.m4
+2020/05/01 | 4489 | graphics/circuit_macros/examples/fet.m4
+2020/05/01 | 17076 | graphics/circuit_macros/examples/files.tex
+2020/05/01 | 645 | graphics/circuit_macros/examples/Floor.m4
+2020/05/01 | 5552 | graphics/circuit_macros/examples/FlowchartDefs.m4
+2020/05/01 | 3911 | graphics/circuit_macros/examples/Flow.m4
+2020/05/01 | 999 | graphics/circuit_macros/examples/Fuses.m4
+2020/05/01 | 421 | graphics/circuit_macros/examples/GrayCode.m4
+2020/05/01 | 5478 | graphics/circuit_macros/examples/graysurf.m4
+2020/05/01 | 815 | graphics/circuit_macros/examples/Grounds.m4
+2020/05/01 | 1132 | graphics/circuit_macros/examples/Headers.m4
+2020/05/01 | 1458 | graphics/circuit_macros/examples/header.tex
+2020/05/01 | 13026 | graphics/circuit_macros/examples/Heathkit.m4
+2020/05/01 | 2068 | graphics/circuit_macros/examples/I2L.m4
+2020/05/01 | 1668 | graphics/circuit_macros/examples/IC10107.m4
+2020/05/01 | 9861 | graphics/circuit_macros/examples/ics.m4
+2020/05/01 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
+2020/05/01 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
+2020/05/01 | 741 | graphics/circuit_macros/examples/Incleps.m4
+2020/05/01 | 29772 | graphics/circuit_macros/examples/Incl.pdf
+2020/05/01 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
+2020/05/01 | 2362 | graphics/circuit_macros/examples/Jack.m4
+2020/05/01 | 2696 | graphics/circuit_macros/examples/keyval.m4
+2020/05/01 | 489 | graphics/circuit_macros/examples/Koch.m4
+2020/05/01 | 7113 | graphics/circuit_macros/examples/lcct.m4
+2020/05/01 | 2119 | graphics/circuit_macros/examples/Logic.m4
+2020/05/01 | 2304 | graphics/circuit_macros/examples/Loglog.m4
+2020/05/01 | 8815 | graphics/circuit_macros/examples/Makefile
+2020/05/01 | 2939 | graphics/circuit_macros/examples/MC.m4
+2020/05/01 | 94474 | graphics/circuit_macros/examples/mf/cct.mf
+2020/05/01 | 776 | graphics/circuit_macros/examples/mf/cct.tfm
+2020/05/01 | 4615 | graphics/circuit_macros/examples/mf/font.m4
+2020/05/01 | 1529 | graphics/circuit_macros/examples/mf/Makefile
+2020/05/01 | 1076 | graphics/circuit_macros/examples/mf/mftest
+2020/05/01 | 3785 | graphics/circuit_macros/examples/Mixer.m4
+2020/05/01 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
+2020/05/01 | 409 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
+2020/05/01 | 4240 | graphics/circuit_macros/examples/mpost/Makefile
+2020/05/01 | 685 | graphics/circuit_macros/examples/mpost/mptest
+2020/05/01 | 703 | graphics/circuit_macros/examples/mpost/README-mpost
+2020/05/01 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
+2020/05/01 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
+2020/05/01 | 499 | graphics/circuit_macros/examples/NLG.m4
+2020/05/01 | 1128 | graphics/circuit_macros/examples/NPDT.m4
+2020/05/01 | 1040 | graphics/circuit_macros/examples/Nport.m4
+2020/05/01 | 2792 | graphics/circuit_macros/examples/OpAmpFilter.m4
+2020/05/01 | 1433 | graphics/circuit_macros/examples/Opamp.m4
+2020/05/01 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
+2020/05/01 | 1852 | graphics/circuit_macros/examples/Orbits.m4
+2020/05/01 | 1802 | graphics/circuit_macros/examples/Pconn.m4
+2020/05/01 | 1375 | graphics/circuit_macros/examples/person.m4
+2020/05/01 | 2674 | graphics/circuit_macros/examples/Planes.m4
+2020/05/01 | 1174 | graphics/circuit_macros/examples/PPA.m4
+2020/05/01 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
+2020/05/01 | 4670 | graphics/circuit_macros/examples/psfrag/Makefile
+2020/05/01 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
+2020/05/01 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
+2020/05/01 | 3919 | graphics/circuit_macros/examples/PushPull.m4
+2020/05/01 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
+2020/05/01 | 918 | graphics/circuit_macros/examples/Quantum.m4
+2020/05/01 | 774 | graphics/circuit_macros/examples/quick.m4
+2020/05/01 | 3545 | graphics/circuit_macros/examples/random.m4
+2020/05/01 | 2828 | graphics/circuit_macros/examples/README-examples
+2020/05/01 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
+2020/05/01 | 3825 | graphics/circuit_macros/examples/recycle.m4
+2020/05/01 | 1921 | graphics/circuit_macros/examples/relaycoil.m4
+2020/05/01 | 1259 | graphics/circuit_macros/examples/Relay.m4
+2020/05/01 | 1443 | graphics/circuit_macros/examples/Resolver.m4
+2020/05/01 | 4569 | graphics/circuit_macros/examples/rose.m4
+2020/05/01 | 221 | graphics/circuit_macros/examples/rotate.tex
+2020/05/01 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
+2020/05/01 | 518 | graphics/circuit_macros/examples/Rotbox.m4
+2020/05/01 | 365 | graphics/circuit_macros/examples/rotellipse.m4
+2020/05/01 | 740 | graphics/circuit_macros/examples/SampleFlow.m4
+2020/05/01 | 1778 | graphics/circuit_macros/examples/Schottky.m4
+2020/05/01 | 2761 | graphics/circuit_macros/examples/sfg.m4
+2020/05/01 | 4751 | graphics/circuit_macros/examples/Shaky.m4
+2020/05/01 | 7529 | graphics/circuit_macros/examples/shapes.m4
+2020/05/01 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
+2020/05/01 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
+2020/05/01 | 419 | graphics/circuit_macros/examples/Sixpole.m4
+2020/05/01 | 370 | graphics/circuit_macros/examples/snake.m4
+2020/05/01 | 2165 | graphics/circuit_macros/examples/Sources.m4
+2020/05/01 | 1906 | graphics/circuit_macros/examples/SPM.m4
+2020/05/01 | 380 | graphics/circuit_macros/examples/SQUID.m4
+2020/05/01 | 947 | graphics/circuit_macros/examples/squiggle.m4
+2020/05/01 | 1955 | graphics/circuit_macros/examples/svg/ABlogixSVG.m4
+2020/05/01 | 2528 | graphics/circuit_macros/examples/svg/AdderSVG.m4
+2020/05/01 | 4337 | graphics/circuit_macros/examples/svg/AlogixSVG.m4
+2020/05/01 | 538 | graphics/circuit_macros/examples/svg/AmpTableSVG.m4
+2020/05/01 | 1090 | graphics/circuit_macros/examples/svg/AntennasSVG.m4
+2020/05/01 | 5044 | graphics/circuit_macros/examples/svg/AntiqueClockSVG.m4
+2020/05/01 | 2720 | graphics/circuit_macros/examples/svg/AudioSVG.m4
+2020/05/01 | 1812 | graphics/circuit_macros/examples/svg/BipSVG.m4
+2020/05/01 | 1080 | graphics/circuit_macros/examples/svg/BtreeSVG.m4
+2020/05/01 | 3567 | graphics/circuit_macros/examples/svg/ButtonsSVG.m4
+2020/05/01 | 937 | graphics/circuit_macros/examples/svg/ByteSVG.m4
+2020/05/01 | 6413 | graphics/circuit_macros/examples/svg/CanLogicSVG.m4
+2020/05/01 | 2180 | graphics/circuit_macros/examples/svg/CctTableSVG.m4
+2020/05/01 | 726 | graphics/circuit_macros/examples/svg/ConnectorsSVG.m4
+2020/05/01 | 2111 | graphics/circuit_macros/examples/svg/ConnSVG.m4
+2020/05/01 | 1737 | graphics/circuit_macros/examples/svg/ContactsSVG.m4
+2020/05/01 | 3646 | graphics/circuit_macros/examples/svg/ContactSVG.m4
+2020/05/01 | 3206 | graphics/circuit_macros/examples/svg/controlSVG.m4
+2020/05/01 | 793 | graphics/circuit_macros/examples/svg/CountingSVG.m4
+2020/05/01 | 1387 | graphics/circuit_macros/examples/svg/CrossbarSVG.m4
+2020/05/01 | 2525 | graphics/circuit_macros/examples/svg/CrowSVG.m4
+2020/05/01 | 1882 | graphics/circuit_macros/examples/svg/CrullerSVG.m4
+2020/05/01 | 2324 | graphics/circuit_macros/examples/svg/cscSVG.m4
+2020/05/01 | 7418 | graphics/circuit_macros/examples/svg/CsourceSVG.m4
+2020/05/01 | 745 | graphics/circuit_macros/examples/svg/DecoderSVG.m4
+2020/05/01 | 1373 | graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4
+2020/05/01 | 609 | graphics/circuit_macros/examples/svg/diamondSVG.m4
+2020/05/01 | 6854 | graphics/circuit_macros/examples/svg/DiniSVG.m4
+2020/05/01 | 1429 | graphics/circuit_macros/examples/svg/DiodesSVG.m4
+2020/05/01 | 1966 | graphics/circuit_macros/examples/svg/DriveSVG.m4
+2020/05/01 | 1070 | graphics/circuit_macros/examples/svg/EmarrowsSVG.m4
+2020/05/01 | 2443 | graphics/circuit_macros/examples/svg/ex00SVG.m4
+2020/05/01 | 933 | graphics/circuit_macros/examples/svg/ex01SVG.m4
+2020/05/01 | 1093 | graphics/circuit_macros/examples/svg/ex02SVG.m4
+2020/05/01 | 855 | graphics/circuit_macros/examples/svg/ex03SVG.m4
+2020/05/01 | 1891 | graphics/circuit_macros/examples/svg/ex04SVG.m4
+2020/05/01 | 1807 | graphics/circuit_macros/examples/svg/ex05SVG.m4
+2020/05/01 | 2018 | graphics/circuit_macros/examples/svg/ex06SVG.m4
+2020/05/01 | 2559 | graphics/circuit_macros/examples/svg/ex08SVG.m4
+2020/05/01 | 4119 | graphics/circuit_macros/examples/svg/ex09SVG.m4
+2020/05/01 | 1699 | graphics/circuit_macros/examples/svg/ex10SVG.m4
+2020/05/01 | 2685 | graphics/circuit_macros/examples/svg/ex11SVG.m4
+2020/05/01 | 3522 | graphics/circuit_macros/examples/svg/ex12SVG.m4
+2020/05/01 | 970 | graphics/circuit_macros/examples/svg/ex15SVG.m4
+2020/05/01 | 1893 | graphics/circuit_macros/examples/svg/ex16SVG.m4
+2020/05/01 | 1204 | graphics/circuit_macros/examples/svg/ex17SVG.m4
+2020/05/01 | 1065 | graphics/circuit_macros/examples/svg/ex18SVG.m4
+2020/05/01 | 2177 | graphics/circuit_macros/examples/svg/ex21SVG.m4
+2020/05/01 | 13734 | graphics/circuit_macros/examples/svg/examplesSVG.htmx
+2020/05/01 | 10589 | graphics/circuit_macros/examples/svg/expSVG.m4
+2020/05/01 | 3836 | graphics/circuit_macros/examples/svg/fetSVG.m4
+2020/05/01 | 9954 | graphics/circuit_macros/examples/svg/FlowSVG.m4
+2020/05/01 | 538 | graphics/circuit_macros/examples/svg/FontsSVG.m4
+2020/05/01 | 959 | graphics/circuit_macros/examples/svg/FusesSVG.m4
+2020/05/01 | 422 | graphics/circuit_macros/examples/svg/GrayCodeSVG.m4
+2020/05/01 | 5521 | graphics/circuit_macros/examples/svg/graysurfSVG.m4
+2020/05/01 | 810 | graphics/circuit_macros/examples/svg/GroundsSVG.m4
+2020/05/01 | 1265 | graphics/circuit_macros/examples/svg/HeadersSVG.m4
+2020/05/01 | 12711 | graphics/circuit_macros/examples/svg/HeathkitSVG.m4
+2020/05/01 | 2171 | graphics/circuit_macros/examples/svg/I2LSVG.m4
+2020/05/01 | 9276 | graphics/circuit_macros/examples/svg/icsSVG.m4
+2020/05/01 | 4003 | graphics/circuit_macros/examples/svg/InclepsSVG.m4
+2020/05/01 | 21384 | graphics/circuit_macros/examples/svg/Incl.jpg
+2020/05/01 | 2051 | graphics/circuit_macros/examples/svg/JackSVG.m4
+2020/05/01 | 7203 | graphics/circuit_macros/examples/svg/lcctSVG.m4
+2020/05/01 | 6216 | graphics/circuit_macros/examples/svg/LgateSVG.m4
+2020/05/01 | 63 | graphics/circuit_macros/examples/svg/local_init.m4
+2020/05/01 | 1931 | graphics/circuit_macros/examples/svg/LogicSVG.m4
+2020/05/01 | 2241 | graphics/circuit_macros/examples/svg/LoglogSVG.m4
+2020/05/01 | 4582 | graphics/circuit_macros/examples/svg/Makefile
+2020/05/01 | 3421 | graphics/circuit_macros/examples/svg/MCSVG.m4
+2020/05/01 | 3489 | graphics/circuit_macros/examples/svg/MixerSVG.m4
+2020/05/01 | 1953 | graphics/circuit_macros/examples/svg/MotorControlSVG.m4
+2020/05/01 | 1467 | graphics/circuit_macros/examples/svg/MultiplexerSVG.m4
+2020/05/01 | 532 | graphics/circuit_macros/examples/svg/NLGSVG.m4
+2020/05/01 | 1157 | graphics/circuit_macros/examples/svg/NPDTSVG.m4
+2020/05/01 | 748 | graphics/circuit_macros/examples/svg/Np.m4
+2020/05/01 | 1238 | graphics/circuit_macros/examples/svg/NportSVG.m4
+2020/05/01 | 1034 | graphics/circuit_macros/examples/svg/OpampSVG.m4
+2020/05/01 | 2551 | graphics/circuit_macros/examples/svg/OptoisoSVG.m4
+2020/05/01 | 10445 | graphics/circuit_macros/examples/svg/paletteSVG.m4
+2020/05/01 | 1776 | graphics/circuit_macros/examples/svg/PconnSVG.m4
+2020/05/01 | 3779 | graphics/circuit_macros/examples/svg/PushPullSVG.m4
+2020/05/01 | 862 | graphics/circuit_macros/examples/svg/pwrsupplySVG.m4
+2020/05/01 | 947 | graphics/circuit_macros/examples/svg/QuantumSVG.m4
+2020/05/01 | 839 | graphics/circuit_macros/examples/svg/quickSVG.m4
+2020/05/01 | 3573 | graphics/circuit_macros/examples/svg/randomSVG.m4
+2020/05/01 | 7546 | graphics/circuit_macros/examples/svg/RectifiersSVG.m4
+2020/05/01 | 3825 | graphics/circuit_macros/examples/svg/recycleSVG.m4
+2020/05/01 | 2069 | graphics/circuit_macros/examples/svg/relaycoilSVG.m4
+2020/05/01 | 1431 | graphics/circuit_macros/examples/svg/RelaySVG.m4
+2020/05/01 | 4624 | graphics/circuit_macros/examples/svg/roseSVG.m4
+2020/05/01 | 545 | graphics/circuit_macros/examples/svg/RotboxSVG.m4
+2020/05/01 | 1837 | graphics/circuit_macros/examples/svg/SchottkySVG.m4
+2020/05/01 | 3290 | graphics/circuit_macros/examples/svg/sfgSVG.m4
+2020/05/01 | 7526 | graphics/circuit_macros/examples/svg/shapesSVG.m4
+2020/05/01 | 1446 | graphics/circuit_macros/examples/svg/ShiftRSVG.m4
+2020/05/01 | 1331 | graphics/circuit_macros/examples/svg/SierpinskiSVG.m4
+2020/05/01 | 419 | graphics/circuit_macros/examples/svg/SixpoleSVG.m4
+2020/05/01 | 1907 | graphics/circuit_macros/examples/svg/SourcesSVG.m4
+2020/05/01 | 417 | graphics/circuit_macros/examples/svg/SQUIDSVG.m4
+2020/05/01 | 1050 | graphics/circuit_macros/examples/svg/SVGconfig.m4
+2020/05/01 | 4309 | graphics/circuit_macros/examples/svg/SwitchesSVG.m4
+2020/05/01 | 1055 | graphics/circuit_macros/examples/svg/TgateSVG.m4
+2020/05/01 | 1444 | graphics/circuit_macros/examples/svg/ThreeSVG.m4
+2020/05/01 | 3310 | graphics/circuit_macros/examples/svg/thyristorSVG.m4
+2020/05/01 | 1612 | graphics/circuit_macros/examples/svg/TimerSVG.m4
+2020/05/01 | 9198 | graphics/circuit_macros/examples/svg/tstSVG.htmx
+2020/05/01 | 1675 | graphics/circuit_macros/examples/svg/TTLnandSVG.m4
+2020/05/01 | 3091 | graphics/circuit_macros/examples/svg/TtreeSVG.m4
+2020/05/01 | 12478 | graphics/circuit_macros/examples/svg/TubediagsSVG.m4
+2020/05/01 | 682 | graphics/circuit_macros/examples/svg/ujtSVG.m4
+2020/05/01 | 988 | graphics/circuit_macros/examples/svg/VariableSVG.m4
+2020/05/01 | 2994 | graphics/circuit_macros/examples/svg/WindingsSVG.m4
+2020/05/01 | 353 | graphics/circuit_macros/examples/svg/windows.m4
+2020/05/01 | 3631 | graphics/circuit_macros/examples/svg/wormSVG.m4
+2020/05/01 | 1559 | graphics/circuit_macros/examples/svg/XformSVG.m4
+2020/05/01 | 1985 | graphics/circuit_macros/examples/svg/XORSVG.m4
+2020/05/01 | 3973 | graphics/circuit_macros/examples/Switches.m4
+2020/05/01 | 591 | graphics/circuit_macros/examples/test.m4
+2020/05/01 | 416 | graphics/circuit_macros/examples/testpdf.tex
+2020/05/01 | 1022 | graphics/circuit_macros/examples/Tgate.m4
+2020/05/01 | 1287 | graphics/circuit_macros/examples/Three.m4
+2020/05/01 | 3321 | graphics/circuit_macros/examples/thyristor.m4
+2020/05/01 | 382 | graphics/circuit_macros/examples/tikz.tex
+2020/05/01 | 1546 | graphics/circuit_macros/examples/Timer.m4
+2020/05/01 | 219 | graphics/circuit_macros/examples/tst1.tex
+2020/05/01 | 613 | graphics/circuit_macros/examples/tst.tex
+2020/05/01 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
+2020/05/01 | 2097 | graphics/circuit_macros/examples/Ttree.m4
+2020/05/01 | 9840 | graphics/circuit_macros/examples/tubedefs.m4
+2020/05/01 | 13264 | graphics/circuit_macros/examples/Tubediags.m4
+2020/05/01 | 660 | graphics/circuit_macros/examples/ujt.m4
+2020/05/01 | 926 | graphics/circuit_macros/examples/Variable.m4
+2020/05/01 | 442 | graphics/circuit_macros/examples/Wheat.m4
+2020/05/01 | 3346 | graphics/circuit_macros/examples/Windings.m4
+2020/05/01 | 353 | graphics/circuit_macros/examples/windows.m4
+2020/05/01 | 2799 | graphics/circuit_macros/examples/worm.m4
+2020/05/01 | 337 | graphics/circuit_macros/examples/xfig/Makefile
+2020/05/01 | 21230 | graphics/circuit_macros/examples/xfig/xfiglib.fig
+2020/05/01 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
+2020/05/01 | 1526 | graphics/circuit_macros/examples/Xform.m4
+2020/05/01 | 1823 | graphics/circuit_macros/examples/XOR.m4
+2020/05/01 | 656 | graphics/circuit_macros/examples/Zcos.m4
+2020/05/01 | 1019 | graphics/circuit_macros/gpic.m4
+2020/05/01 | 3946 | graphics/circuit_macros/INSTALL
+2020/05/01 | 11273 | graphics/circuit_macros/lib3D.m4
+2020/05/01 | 161931 | graphics/circuit_macros/libcct.m4
+2020/05/01 | 78720 | graphics/circuit_macros/libgen.m4
+2020/05/01 | 47768 | graphics/circuit_macros/liblog.m4
+2020/05/01 | 19176 | graphics/circuit_macros/Licence.txt
+2020/05/01 | 1639 | graphics/circuit_macros/Makefile
+2020/05/01 | 1114 | graphics/circuit_macros/mfpic.m4
+2020/05/01 | 1640 | graphics/circuit_macros/mpost.m4
+2020/05/01 | 2085 | graphics/circuit_macros/pgf.m4
+2020/05/01 | 2834 | graphics/circuit_macros/postscript.m4
+2020/05/01 | 706 | graphics/circuit_macros/psfrag.m4
+2020/05/01 | 2099 | graphics/circuit_macros/pstricks.m4
+2020/05/01 | 16140 | graphics/circuit_macros/README
+2020/05/01 | 9902 | graphics/circuit_macros/svg.m4
+2020/05/01 | 1029 | graphics/circuit_macros/xfig.m4
+2020/05/01 | 2533091 | graphics/circuit_macros.zip
2018/09/22 | 49163 | graphics/coloremoji/coloremoji.sty
2018/09/22 | 15169 | graphics/coloremoji/emoji_images/hires/1F004.pdf
2018/09/22 | 24318 | graphics/coloremoji/emoji_images/hires/1F0CF.pdf
@@ -136773,15 +136807,15 @@
2005/11/08 | 13076 | graphics/pstricks/contrib/pst-osci/pst-osci.tex
2002/05/28 | 882 | graphics/pstricks/contrib/pst-osci/README
2005/11/09 | 1338428 | graphics/pstricks/contrib/pst-osci.zip
-2017/10/09 | 548 | graphics/pstricks/contrib/pst-ovl/Changes
-2017/10/09 | 4881 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib
-2017/10/09 | 48866 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdf
-2017/10/09 | 2855 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex
-2017/10/09 | 805 | graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro
-2017/10/09 | 569 | graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty
-2017/10/09 | 583 | graphics/pstricks/contrib/pst-ovl/README
-2017/10/09 | 2192 | graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex
-2017/10/09 | 41495 | graphics/pstricks/contrib/pst-ovl.zip
+2020/05/01 | 599 | graphics/pstricks/contrib/pst-ovl/Changes
+2020/05/01 | 3983 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib
+2020/05/01 | 39774 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdf
+2020/05/01 | 2682 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex
+2020/05/01 | 806 | graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro
+2020/05/01 | 575 | graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty
+2020/05/01 | 370 | graphics/pstricks/contrib/pst-ovl/README
+2020/05/01 | 2198 | graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex
+2020/05/01 | 34597 | graphics/pstricks/contrib/pst-ovl.zip
2008/08/19 | 682 | graphics/pstricks/contrib/pst-pad/CHANGES
2008/08/19 | 950 | graphics/pstricks/contrib/pst-pad/Makefile
2008/08/19 | 98748 | graphics/pstricks/contrib/pst-pad/pst-pad-docDE.pdf
@@ -162188,10 +162222,10 @@
2013/05/13 | 135206 | install/info/luatex/lualatex-doc.tds.zip
2018/03/19 | 2053336 | install/language/arabic/dad.tds.zip
2016/05/14 | 160646 | install/language/chinese/cjkpunct.tds.zip
-2019/05/29 | 1293129 | install/language/chinese/ctex.tds.zip
+2020/05/01 | 1555225 | install/language/chinese/ctex.tds.zip
2016/11/23 | 413896 | install/language/chinese/zhmcjk.tds.zip
2017/03/09 | 168862 | install/language/hebrew/cjhebrew.tds.zip
-2020/02/08 | 8867813 | install/language/japanese/jlreq.tds.zip
+2020/05/01 | 8868938 | install/language/japanese/jlreq.tds.zip
2020/04/12 | 1772665 | install/language/japanese/platex.tds.zip
2020/02/02 | 1012810 | install/language/japanese/uplatex.tds.zip
2013/02/08 | 561424 | install/language/thai/thailatex.tds.zip
@@ -162396,7 +162430,7 @@
2019/12/15 | 404904 | install/macros/latex/contrib/ltxcmds.tds.zip
2011/03/25 | 10183 | install/macros/latex/contrib/ltxdockit.tds.zip
2020/02/26 | 332761 | install/macros/latex/contrib/luacolor.tds.zip
-2020/04/25 | 3593178 | install/macros/latex/contrib/lwarp.tds.zip
+2020/05/01 | 3595883 | install/macros/latex/contrib/lwarp.tds.zip
2019/11/29 | 336437 | install/macros/latex/contrib/magicnum.tds.zip
2009/09/03 | 125014 | install/macros/latex/contrib/makecmds.tds.zip
2018/08/09 | 330020 | install/macros/latex/contrib/marginnote.tds.zip
@@ -162528,20 +162562,20 @@
2012/04/13 | 261959 | install/macros/latex/contrib/usebib.tds.zip
2014/05/10 | 440916 | install/macros/latex/contrib/verse.tds.zip
2012/04/18 | 16307 | install/macros/latex/contrib/vpe.tds.zip
-2019/04/07 | 945801 | install/macros/latex/contrib/xcjk2uni.tds.zip
+2020/05/01 | 936344 | install/macros/latex/contrib/xcjk2uni.tds.zip
2016/08/05 | 475695 | install/macros/latex/contrib/xcolor-solarized.tds.zip
2009/02/05 | 111968 | install/macros/latex/contrib/xfor.tds.zip
2012/08/17 | 566590 | install/macros/latex/contrib/xpeek.tds.zip
2015/05/23 | 564970 | install/macros/latex/contrib/xpiano.tds.zip
2012/12/23 | 1365925 | install/macros/latex/contrib/xpicture.tds.zip
-2019/04/07 | 571127 | install/macros/latex/contrib/xpinyin.tds.zip
+2020/05/01 | 572150 | install/macros/latex/contrib/xpinyin.tds.zip
2020/03/04 | 377976 | install/macros/latex/contrib/xsavebox.tds.zip
2011/07/31 | 387124 | install/macros/latex/contrib/xtab.tds.zip
2009/02/27 | 2323785 | install/macros/latex/contrib/yagusylo.tds.zip
2020/04/13 | 12792590 | install/macros/latex/contrib/yathesis.tds.zip
2012/05/03 | 352839 | install/macros/latex/contrib/ydoc.tds.zip
2020/04/09 | 806385 | install/macros/latex/contrib/zhlipsum.tds.zip
-2019/04/07 | 292635 | install/macros/latex/contrib/zhnumber.tds.zip
+2020/05/01 | 293478 | install/macros/latex/contrib/zhnumber.tds.zip
2020/03/03 | 723658 | install/macros/latex/contrib/zref.tds.zip
2020/03/06 | 22600138 | install/macros/latex-dev/latex-base-dev.tds.zip
2019/11/18 | 2636412 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip
@@ -162578,7 +162612,7 @@
2020/01/30 | 3775848 | install/macros/xetex/latex/bidi.tds.zip
2015/02/17 | 92757 | install/macros/xetex/latex/interchar.tds.zip
2016/07/11 | 232429 | install/macros/xetex/latex/mynsfc.tds.zip
-2020/02/18 | 1822460 | install/macros/xetex/latex/xecjk.tds.zip
+2020/05/01 | 1928867 | install/macros/xetex/latex/xecjk.tds.zip
2020/02/01 | 1178383 | install/macros/xetex/latex/xepersian.tds.zip
2008/06/20 | 3954 | install/macros/xetex/plain/xetexfontinfo.tds.zip
2013/01/04 | 36361 | install/support/adhocfilelist.tds.zip
@@ -163940,11 +163974,15 @@
2016/05/14 | 3497 | language/chinese/cjkpunct/setpunct/setpunct-macros.tex
2016/05/14 | 468 | language/chinese/cjkpunct/setpunct/setpunct-main.tex
2016/05/14 | 154735 | language/chinese/cjkpunct.zip
-2019/05/29 | 437117 | language/chinese/ctex/ctex.dtx
-2019/05/29 | 1061924 | language/chinese/ctex/ctex.pdf
-2016/06/02 | 6811 | language/chinese/ctex/ctexpunct.spa
-2019/05/29 | 5759 | language/chinese/ctex/README.md
-2019/05/29 | 1128392 | language/chinese/ctex.zip
+2020/05/01 | 433318 | language/chinese/ctex/ctex.dtx
+2020/05/01 | 1097730 | language/chinese/ctex/ctex.pdf
+2020/04/18 | 9752 | language/chinese/ctex/ctexpunct.spa
+2020/05/01 | 28619 | language/chinese/ctex/ctxdoc.cls
+2020/04/20 | 2896 | language/chinese/ctex/ctxdocstrip.tex
+2020/05/01 | 5996 | language/chinese/ctex/README.md
+2020/05/01 | 6183 | language/chinese/ctex/zhconv.lua
+2020/04/19 | 4090 | language/chinese/ctex/zhconv-make.lua
+2020/05/01 | 1172690 | language/chinese/ctex.zip
1992/09/26 | 1678 | language/chinese/ftp.sites
1998/12/28 | 219667 | language/chinese/ntu2cjk.tar.gz
1991/04/20 | 5464 | language/chinese/pmtex/wcksa4.300pk
@@ -171124,22 +171162,22 @@
2020/04/25 | 1588000 | language/japanese/jlreq-deluxe/vf/zjlreq--upnmlminr-v.vf
2020/04/26 | 115598843 | language/japanese/jlreq-deluxe.zip
2020/02/08 | 40988 | language/japanese/jlreq/jfm-jlreq.lua
-2020/02/08 | 263073 | language/japanese/jlreq/jlreq.cls
-2020/02/08 | 23000 | language/japanese/jlreq/jlreq-helpers.sty
-2020/02/08 | 359176 | language/japanese/jlreq/jlreq-ja.pdf
-2020/02/08 | 116207 | language/japanese/jlreq/jlreq.pdf
-2019/04/01 | 7286 | language/japanese/jlreq/jlreq-trimmarks-ja.md
-2019/04/01 | 6081 | language/japanese/jlreq/jlreq-trimmarks.md
-2019/04/01 | 45573 | language/japanese/jlreq/jlreq-trimmarks.sty
+2020/05/01 | 264314 | language/japanese/jlreq/jlreq.cls
+2020/05/01 | 23248 | language/japanese/jlreq/jlreq-helpers.sty
+2020/05/01 | 359458 | language/japanese/jlreq/jlreq-ja.pdf
+2020/05/01 | 116315 | language/japanese/jlreq/jlreq.pdf
+2020/05/01 | 7677 | language/japanese/jlreq/jlreq-trimmarks-ja.md
+2020/05/01 | 6378 | language/japanese/jlreq/jlreq-trimmarks.md
+2020/05/01 | 44853 | language/japanese/jlreq/jlreq-trimmarks.sty
2020/02/08 | 1348 | language/japanese/jlreq/LICENSE
2019/04/01 | 11487 | language/japanese/jlreq/luajfm2pl.lua
-2020/02/08 | 6726 | language/japanese/jlreq/Makefile
+2020/02/08 | 6683 | language/japanese/jlreq/Makefile
2020/02/08 | 4854 | language/japanese/jlreq/make_variant_jfm.lua
-2020/02/08 | 40460 | language/japanese/jlreq/README-ja.md
-2020/02/08 | 4897 | language/japanese/jlreq/README.md
+2020/05/01 | 41050 | language/japanese/jlreq/README-ja.md
+2020/05/01 | 4998 | language/japanese/jlreq/README.md
2019/04/01 | 3094 | language/japanese/jlreq/README-template.html
-2020/02/08 | 3315 | language/japanese/jlreq/README-template.tex
-2020/02/08 | 576932 | language/japanese/jlreq.zip
+2020/03/27 | 3315 | language/japanese/jlreq/README-template.tex
+2020/05/01 | 577768 | language/japanese/jlreq.zip
1995/08/05 | 7067 | language/japanese/jtex/00NEWS
1995/07/26 | 1558 | language/japanese/jtex/00README
1995/06/21 | 1825 | language/japanese/jtex/jlatex2e-add1.tar.gz
@@ -190153,13 +190191,13 @@
2014/07/08 | 4071 | macros/latex/contrib/hepnames/mkmacrotables
2012/05/07 | 1678 | macros/latex/contrib/hepnames/README
2014/12/02 | 1462454 | macros/latex/contrib/hepnames.zip
-2020/03/13 | 13436 | macros/latex/contrib/hep-paper/bibliography.bib
-2020/03/13 | 59640 | macros/latex/contrib/hep-paper/hep-paper.dtx
-2020/01/13 | 1424 | macros/latex/contrib/hep-paper/hep-paper.ins
-2020/03/13 | 535697 | macros/latex/contrib/hep-paper/hep-paper.pdf
-2020/01/13 | 19040 | macros/latex/contrib/hep-paper/license.md
-2020/03/13 | 1014 | macros/latex/contrib/hep-paper/README.md
-2020/03/13 | 558444 | macros/latex/contrib/hep-paper.zip
+2020/05/01 | 16274 | macros/latex/contrib/hep-paper/bibliography.bib
+2020/05/01 | 70573 | macros/latex/contrib/hep-paper/hep-paper.dtx
+2020/05/01 | 1484 | macros/latex/contrib/hep-paper/hep-paper.ins
+2020/05/01 | 525662 | macros/latex/contrib/hep-paper/hep-paper.pdf
+2020/05/01 | 19040 | macros/latex/contrib/hep-paper/license.md
+2020/05/01 | 1014 | macros/latex/contrib/hep-paper/README.md
+2020/05/01 | 550763 | macros/latex/contrib/hep-paper.zip
2014/12/01 | 2025 | macros/latex/contrib/hepparticles/ChangeLog
2014/12/01 | 39760 | macros/latex/contrib/hepparticles/hepparticles.pdf
2014/12/02 | 16682 | macros/latex/contrib/hepparticles/hepparticles.sty
@@ -193193,15 +193231,15 @@
1999/06/10 | 980 | macros/latex/contrib/lucold/t1hlos.fd
1999/05/25 | 407 | macros/latex/contrib/lucold/test.tex
2005/04/30 | 25682 | macros/latex/contrib/lucold.zip
-2020/04/25 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
-2020/04/25 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png
-2020/04/25 | 2334375 | macros/latex/contrib/lwarp/lwarp.dtx
-2020/04/25 | 28197 | macros/latex/contrib/lwarp/lwarp.ins
-2020/04/25 | 28778 | macros/latex/contrib/lwarp/lwarpmk.lua
-2020/04/25 | 2701656 | macros/latex/contrib/lwarp/lwarp.pdf
-2020/04/25 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
-2020/04/25 | 1623 | macros/latex/contrib/lwarp/README.txt
-2020/04/25 | 3105406 | macros/latex/contrib/lwarp.zip
+2020/05/01 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
+2020/05/01 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png
+2020/05/01 | 2337394 | macros/latex/contrib/lwarp/lwarp.dtx
+2020/05/01 | 28197 | macros/latex/contrib/lwarp/lwarp.ins
+2020/05/01 | 28778 | macros/latex/contrib/lwarp/lwarpmk.lua
+2020/05/01 | 2703938 | macros/latex/contrib/lwarp/lwarp.pdf
+2020/05/01 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
+2020/05/01 | 1623 | macros/latex/contrib/lwarp/README.txt
+2020/05/01 | 3107866 | macros/latex/contrib/lwarp.zip
2006/09/11 | 4093 | macros/latex/contrib/lyx/sikumuna/article-sikumuna.layout
2006/09/11 | 781 | macros/latex/contrib/lyx/sikumuna/README
2006/09/11 | 1806 | macros/latex/contrib/lyx/sikumuna.zip
@@ -206078,40 +206116,40 @@
1998/08/05 | 1143 | macros/latex/contrib/units/units.ins
2005/07/30 | 220961 | macros/latex/contrib/units/units.pdf
2005/07/30 | 216905 | macros/latex/contrib/units.zip
-2019/01/21 | 23819 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
-2019/01/21 | 3191 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
-2019/01/15 | 111387 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
-2019/01/15 | 5231 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.tex
-2019/01/15 | 106622 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
-2019/01/15 | 4737 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.tex
-2019/01/15 | 149271 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
-2019/01/15 | 4367 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.tex
-2019/01/15 | 144249 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
-2019/01/15 | 3965 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.tex
-2019/01/15 | 173907 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
-2019/01/15 | 4709 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex
-2018/09/06 | 2940 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.xmpdata
-2019/01/15 | 170172 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
-2019/01/15 | 4256 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex
-2018/09/06 | 2942 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.xmpdata
-2018/09/06 | 224787 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
-2018/09/06 | 1958 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex
-2019/01/21 | 443486 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
-2019/01/21 | 23524 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
-2019/01/21 | 438229 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
-2019/01/21 | 25746 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
-2019/01/21 | 441848 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
-2019/01/21 | 28333 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
-2019/01/21 | 329483 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
-2019/01/21 | 9934 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
-2019/01/21 | 5143 | macros/latex/contrib/univie-ling/README
-2019/01/21 | 19635 | macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
-2019/01/21 | 22714 | macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
-2019/01/21 | 21383 | macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
-2019/01/21 | 27739 | macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
-2018/09/06 | 93530 | macros/latex/contrib/univie-ling/tex/univie-ling-wlg-logo.pdf
-2018/09/06 | 25365 | macros/latex/contrib/univie-ling/tex/univielogo-sw.pdf
-2019/01/21 | 2887107 | macros/latex/contrib/univie-ling.zip
+2019/02/16 | 24147 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
+2019/02/15 | 3491 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
+2019/02/15 | 111387 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
+2019/02/15 | 5231 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.tex
+2019/02/15 | 106622 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
+2019/02/15 | 4737 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.tex
+2019/02/15 | 149271 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
+2019/02/15 | 4367 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.tex
+2019/02/15 | 144249 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
+2019/02/15 | 3965 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.tex
+2019/02/15 | 173907 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
+2019/02/15 | 4709 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex
+2018/02/12 | 2940 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.xmpdata
+2019/02/15 | 170172 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
+2019/02/15 | 4256 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex
+2018/02/12 | 2942 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.xmpdata
+2018/03/02 | 224787 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
+2018/02/13 | 1958 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex
+2020/05/01 | 443458 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
+2020/05/01 | 23580 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
+2020/05/01 | 438208 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
+2020/05/01 | 25802 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
+2020/05/01 | 441864 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
+2020/05/01 | 28388 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
+2020/05/01 | 329512 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
+2020/05/01 | 10001 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
+2020/05/01 | 5392 | macros/latex/contrib/univie-ling/README
+2020/05/01 | 19636 | macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
+2020/05/01 | 22715 | macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
+2020/05/01 | 21384 | macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
+2020/05/01 | 27749 | macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
+2017/01/25 | 93530 | macros/latex/contrib/univie-ling/tex/univie-ling-wlg-logo.pdf
+2016/02/11 | 25365 | macros/latex/contrib/univie-ling/tex/univielogo-sw.pdf
+2020/05/01 | 2887365 | macros/latex/contrib/univie-ling.zip
2019/07/14 | 30359 | macros/latex/contrib/unizgklasa/example.pdf
2019/07/14 | 4187 | macros/latex/contrib/unizgklasa/example.tex
2019/07/14 | 1729 | macros/latex/contrib/unizgklasa/README.md
@@ -206836,11 +206874,10 @@
2020/01/21 | 2506 | macros/latex/contrib/xcite/xcite.ins
2020/01/21 | 158232 | macros/latex/contrib/xcite/xcite.pdf
2020/01/21 | 159518 | macros/latex/contrib/xcite.zip
-2018/05/13 | 2572 | macros/latex/contrib/xcjk2uni/README.md
-2019/04/07 | 29383 | macros/latex/contrib/xcjk2uni/xCJK2uni.dtx
-2019/04/07 | 4819 | macros/latex/contrib/xcjk2uni/xCJK2uni.ins
-2019/04/07 | 129732 | macros/latex/contrib/xcjk2uni/xCJK2uni.pdf
-2019/04/07 | 134968 | macros/latex/contrib/xcjk2uni.zip
+2020/05/01 | 2505 | macros/latex/contrib/xcjk2uni/README.md
+2020/05/01 | 28842 | macros/latex/contrib/xcjk2uni/xCJK2uni.dtx
+2020/05/01 | 126153 | macros/latex/contrib/xcjk2uni/xCJK2uni.pdf
+2020/05/01 | 130374 | macros/latex/contrib/xcjk2uni.zip
2018/01/05 | 1236 | macros/latex/contrib/xcntperchap/README
2018/01/05 | 39064 | macros/latex/contrib/xcntperchap/xcntperchap_basicusage.pdf
2018/01/05 | 1805 | macros/latex/contrib/xcntperchap/xcntperchap_basicusage.tex
@@ -207012,11 +207049,10 @@
2012/12/23 | 128220 | macros/latex/contrib/xpicture/xpicture.dtx
2012/12/23 | 403099 | macros/latex/contrib/xpicture/xpicture.pdf
2013/01/02 | 1319655 | macros/latex/contrib/xpicture.zip
-2019/04/07 | 1828 | macros/latex/contrib/xpinyin/README.md
-2019/04/07 | 42312 | macros/latex/contrib/xpinyin/xpinyin.dtx
-2019/04/07 | 4015 | macros/latex/contrib/xpinyin/xpinyin.ins
-2019/04/07 | 207276 | macros/latex/contrib/xpinyin/xpinyin.pdf
-2019/04/07 | 215213 | macros/latex/contrib/xpinyin.zip
+2020/05/01 | 1828 | macros/latex/contrib/xpinyin/README.md
+2020/05/01 | 41983 | macros/latex/contrib/xpinyin/xpinyin.dtx
+2020/05/01 | 207176 | macros/latex/contrib/xpinyin/xpinyin.pdf
+2020/05/01 | 213876 | macros/latex/contrib/xpinyin.zip
2014/12/26 | 32132 | macros/latex/contrib/xprintlen/ex01.png
2014/12/28 | 219 | macros/latex/contrib/xprintlen/LICENSE
2014/12/28 | 1322 | macros/latex/contrib/xprintlen/README
@@ -207457,11 +207493,10 @@
2020/04/09 | 342601 | macros/latex/contrib/zhlipsum/zhlipsum.pdf
2020/04/09 | 222521 | macros/latex/contrib/zhlipsum/zhlipsum-text.dtx
2020/04/10 | 534730 | macros/latex/contrib/zhlipsum.zip
-2019/04/07 | 2303 | macros/latex/contrib/zhnumber/README.md
-2019/04/07 | 62888 | macros/latex/contrib/zhnumber/zhnumber.dtx
-2019/04/07 | 3337 | macros/latex/contrib/zhnumber/zhnumber.ins
-2019/04/07 | 270690 | macros/latex/contrib/zhnumber/zhnumber.pdf
-2019/04/07 | 280184 | macros/latex/contrib/zhnumber.zip
+2020/05/01 | 2303 | macros/latex/contrib/zhnumber/README.md
+2020/05/01 | 62951 | macros/latex/contrib/zhnumber/zhnumber.dtx
+2020/05/01 | 271657 | macros/latex/contrib/zhnumber/zhnumber.pdf
+2020/05/01 | 280101 | macros/latex/contrib/zhnumber.zip
2013/11/26 | 524 | macros/latex/contrib/ziffer/README
2013/11/26 | 3959 | macros/latex/contrib/ziffer/ziffer.sty
2013/11/30 | 2049 | macros/latex/contrib/ziffer.zip
@@ -217548,15 +217583,11 @@
2017/08/03 | 338 | macros/xetex/latex/xechangebar/README
2017/08/03 | 35213 | macros/xetex/latex/xechangebar/xechangebar.sty
2017/08/04 | 9481 | macros/xetex/latex/xechangebar.zip
-2020/02/18 | 3395 | macros/xetex/latex/xecjk/README.md
-2020/02/18 | 182 | macros/xetex/latex/xecjk/teckit-mapping/full-stop.map
-2020/02/18 | 182 | macros/xetex/latex/xecjk/teckit-mapping/fullwidth-stop.map
-2020/02/18 | 52847 | macros/xetex/latex/xecjk/teckit-mapping/han-simp.map
-2020/02/18 | 52321 | macros/xetex/latex/xecjk/teckit-mapping/han-trad.map
-2020/02/18 | 509415 | macros/xetex/latex/xecjk/xeCJK.dtx
-2020/02/18 | 1279166 | macros/xetex/latex/xecjk/xeCJK.pdf
-2020/02/18 | 292983 | macros/xetex/latex/xecjk/xunicode-symbols.pdf
-2020/02/18 | 1644824 | macros/xetex/latex/xecjk.zip
+2020/05/01 | 3395 | macros/xetex/latex/xecjk/README.md
+2020/05/01 | 509475 | macros/xetex/latex/xecjk/xeCJK.dtx
+2020/05/01 | 1280364 | macros/xetex/latex/xecjk/xeCJK.pdf
+2020/05/01 | 292884 | macros/xetex/latex/xecjk/xunicode-symbols.pdf
+2020/05/01 | 1611875 | macros/xetex/latex/xecjk.zip
2013/04/03 | 1610 | macros/xetex/latex/xecolor/README
2013/04/03 | 5874 | macros/xetex/latex/xecolor/xecolor.sty
2013/04/04 | 2942 | macros/xetex/latex/xecolor.zip
@@ -217641,13 +217672,17 @@
2020/02/01 | 15976 | macros/xetex/latex/xepersian/dkun-0.3.py
2020/02/01 | 15867 | macros/xetex/latex/xepersian/dkun-0.4.py
2020/02/01 | 38725 | macros/xetex/latex/xepersian/ftxe-0.12.py
-2020/04/26 | 81523 | macros/xetex/latex/xepersian-hm/kashida-example.pdf
-2020/04/26 | 2955 | macros/xetex/latex/xepersian-hm/kashida-example.tex
-2020/04/26 | 1230 | macros/xetex/latex/xepersian-hm/README.txt
-2020/04/26 | 27642 | macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
-2020/04/26 | 1883 | macros/xetex/latex/xepersian-hm/xepersian-hm.ins
-2020/04/26 | 75419 | macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
-2020/04/26 | 158398 | macros/xetex/latex/xepersian-hm.zip
+2020/05/01 | 91744 | macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf
+2020/05/01 | 3678 | macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex
+2020/05/01 | 90703 | macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf
+2020/05/01 | 3634 | macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex
+2020/05/01 | 859 | macros/xetex/latex/xepersian-hm/README.txt
+2020/05/01 | 6845 | macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx
+2020/05/01 | 46065 | macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf
+2020/05/01 | 21835 | macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
+2020/05/01 | 1937 | macros/xetex/latex/xepersian-hm/xepersian-hm.ins
+2020/05/01 | 55345 | macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
+2020/05/01 | 281966 | macros/xetex/latex/xepersian-hm.zip
2020/02/01 | 18304 | macros/xetex/latex/xepersian/img/ireland.jpg
2020/02/01 | 13088 | macros/xetex/latex/xepersian/img/weather/clouds.jpg
2020/02/01 | 14616 | macros/xetex/latex/xepersian/img/weather/rain.jpg
@@ -254127,9 +254162,9 @@
2019/02/28 | 2080 | systems/texlive/tlnet/archive/biblatex-shortfields.r45858.tar.xz
2019/02/28 | 112244 | systems/texlive/tlnet/archive/biblatex-socialscienceshuberlin.doc.r47839.tar.xz
2019/02/28 | 2112 | systems/texlive/tlnet/archive/biblatex-socialscienceshuberlin.r47839.tar.xz
-2020/04/26 | 287484 | systems/texlive/tlnet/archive/biblatex-software.doc.r54875.tar.xz
-2020/04/26 | 2788 | systems/texlive/tlnet/archive/biblatex-software.r54875.tar.xz
-2020/04/26 | 916 | systems/texlive/tlnet/archive/biblatex-software.source.r54875.tar.xz
+2020/05/01 | 293992 | systems/texlive/tlnet/archive/biblatex-software.doc.r54950.tar.xz
+2020/05/01 | 3116 | systems/texlive/tlnet/archive/biblatex-software.r54950.tar.xz
+2020/05/01 | 952 | systems/texlive/tlnet/archive/biblatex-software.source.r54950.tar.xz
2019/02/28 | 65448 | systems/texlive/tlnet/archive/biblatex-source-division.doc.r45379.tar.xz
2019/02/28 | 1980 | systems/texlive/tlnet/archive/biblatex-source-division.r45379.tar.xz
2019/02/28 | 70196 | systems/texlive/tlnet/archive/biblatex-subseries.doc.r43330.tar.xz
@@ -255237,8 +255272,8 @@
2019/02/28 | 1796 | systems/texlive/tlnet/archive/context-typearea.r47085.tar.xz
2019/02/28 | 648 | systems/texlive/tlnet/archive/context-typescripts.doc.r47085.tar.xz
2019/02/28 | 9224 | systems/texlive/tlnet/archive/context-typescripts.r47085.tar.xz
-2020/04/28 | 7576 | systems/texlive/tlnet/archive/context-vim.doc.r54913.tar.xz
-2020/04/28 | 8468 | systems/texlive/tlnet/archive/context-vim.r54913.tar.xz
+2020/05/01 | 7812 | systems/texlive/tlnet/archive/context-vim.doc.r54949.tar.xz
+2020/05/01 | 8504 | systems/texlive/tlnet/archive/context-vim.r54949.tar.xz
2019/02/28 | 263536 | systems/texlive/tlnet/archive/context-visualcounter.doc.r47085.tar.xz
2019/02/28 | 3992 | systems/texlive/tlnet/archive/context-visualcounter.r47085.tar.xz
2019/02/28 | 6744 | systems/texlive/tlnet/archive/context-visualcounter.source.r47085.tar.xz
@@ -256349,8 +256384,8 @@
2019/02/28 | 3268 | systems/texlive/tlnet/archive/dynamicnumber.source.r38726.tar.xz
2019/02/28 | 377732 | systems/texlive/tlnet/archive/dynblocks.doc.r35193.tar.xz
2019/02/28 | 2084 | systems/texlive/tlnet/archive/dynblocks.r35193.tar.xz
-2020/03/23 | 807224 | systems/texlive/tlnet/archive/dynkin-diagrams.doc.r54489.tar.xz
-2020/03/23 | 19836 | systems/texlive/tlnet/archive/dynkin-diagrams.r54489.tar.xz
+2020/05/01 | 812132 | systems/texlive/tlnet/archive/dynkin-diagrams.doc.r54948.tar.xz
+2020/05/01 | 19908 | systems/texlive/tlnet/archive/dynkin-diagrams.r54948.tar.xz
2019/02/28 | 127664 | systems/texlive/tlnet/archive/dyntree.doc.r15878.tar.xz
2019/02/28 | 3120 | systems/texlive/tlnet/archive/dyntree.r15878.tar.xz
2019/02/28 | 8784 | systems/texlive/tlnet/archive/dyntree.source.r15878.tar.xz
@@ -258428,8 +258463,8 @@
2020/02/03 | 927684 | systems/texlive/tlnet/archive/jsclasses.doc.r53641.tar.xz
2020/02/03 | 21952 | systems/texlive/tlnet/archive/jsclasses.r53641.tar.xz
2020/02/03 | 55748 | systems/texlive/tlnet/archive/jsclasses.source.r53641.tar.xz
-2020/02/05 | 1180012 | systems/texlive/tlnet/archive/jslectureplanner.doc.r53672.tar.xz
-2020/02/05 | 12060 | systems/texlive/tlnet/archive/jslectureplanner.r53672.tar.xz
+2020/05/01 | 1180232 | systems/texlive/tlnet/archive/jslectureplanner.doc.r54951.tar.xz
+2020/05/01 | 12068 | systems/texlive/tlnet/archive/jslectureplanner.r54951.tar.xz
2019/02/28 | 18444 | systems/texlive/tlnet/archive/js-misc.doc.r16211.tar.xz
2019/02/28 | 13868 | systems/texlive/tlnet/archive/js-misc.r16211.tar.xz
2019/02/28 | 254168 | systems/texlive/tlnet/archive/jumplines.doc.r37553.tar.xz
@@ -263589,8 +263624,8 @@
2020/03/24 | 280 | systems/texlive/tlnet/archive/texlive-cz.r54496.tar.xz
2020/03/29 | 1338300 | systems/texlive/tlnet/archive/texlive-de.doc.r54604.tar.xz
2020/03/29 | 272 | systems/texlive/tlnet/archive/texlive-de.r54604.tar.xz
-2020/04/28 | 161528 | systems/texlive/tlnet/archive/texlive-docindex.doc.r54903.tar.xz
-2020/04/28 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r54903.tar.xz
+2020/05/01 | 161604 | systems/texlive/tlnet/archive/texlive-docindex.doc.r54943.tar.xz
+2020/05/01 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r54943.tar.xz
2020/04/16 | 1891392 | systems/texlive/tlnet/archive/texlive-en.doc.r54755.tar.xz
2020/04/16 | 272 | systems/texlive/tlnet/archive/texlive-en.r54755.tar.xz
2020/03/22 | 3090144 | systems/texlive/tlnet/archive/texlive-es.doc.r54465.tar.xz
@@ -265277,16 +265312,16 @@
2020/01/24 | 138180 | systems/texlive/tlnet/archive/zxjatype.doc.r53500.tar.xz
2020/01/24 | 8760 | systems/texlive/tlnet/archive/zxjatype.r53500.tar.xz
2020/04/06 | 107773 | systems/texlive/tlnet/install-tl
-2020/04/30 | 5502699 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/04/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/04/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/05/01 | 5502663 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/05/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/05/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2020/03/17 | 4641 | systems/texlive/tlnet/install-tl-windows.bat
-2020/04/30 | 19386051 | systems/texlive/tlnet/install-tl-windows.exe
-2020/04/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/04/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/04/30 | 24269346 | systems/texlive/tlnet/install-tl.zip
-2020/04/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/04/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/05/01 | 19386083 | systems/texlive/tlnet/install-tl-windows.exe
+2020/05/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/05/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/05/01 | 24269346 | systems/texlive/tlnet/install-tl.zip
+2020/05/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/05/01 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2020/03/05 | 1215 | systems/texlive/tlnet/README.md
2020/04/06 | 5961 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
2016/04/12 | 600 | systems/texlive/tlnet/tlpkg/gpg/random_seed
@@ -265342,12 +265377,12 @@
2020/03/04 | 20330 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2020/04/25 | 4790 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2017/11/14 | 27560 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2020/04/30 | 16372997 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/04/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/05/01 | 16373037 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/05/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2020/04/06 | 86396 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2020/04/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/04/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/04/30 | 2194152 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/05/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/05/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/05/01 | 2190540 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2020/04/15 | 58761 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2020/03/20 | 41736 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2020/03/04 | 14970 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -269751,7 +269786,7 @@
2020/02/04 | 281488 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2020/04/30 | 531674 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/05/01 | 531674 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -270892,9 +270927,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2020/04/19 | 39206 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2020/04/19 | 42920 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/04/30 | 198820 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/04/30 | 1189787 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/04/30 | 1108925 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/05/01 | 198799 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/05/01 | 1189868 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/05/01 | 1108833 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2020/04/19 | 13027 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2020/04/19 | 14026 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -271046,183 +271081,183 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2019/09/11 | 231430 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2020/04/30 | 531714 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/04/30 | 29318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/04/30 | 33432 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/04/30 | 941993 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/04/30 | 1048379 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/04/30 | 28563 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/04/30 | 30777 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/04/30 | 29333 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/04/30 | 34893 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/04/30 | 49778 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/04/30 | 57245 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/04/30 | 84673 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2020/04/30 | 94361 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/04/30 | 63007 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/04/30 | 70760 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/04/30 | 26648 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/04/30 | 30231 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2020/04/30 | 328718 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/04/30 | 391545 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/04/30 | 32361 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2020/04/30 | 36441 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/04/30 | 49329 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/04/30 | 53987 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/04/30 | 203046 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/04/30 | 222828 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/04/30 | 169320 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2020/04/30 | 184184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/04/30 | 52143 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/04/30 | 58841 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/04/30 | 20748 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/04/30 | 22988 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/04/30 | 461129 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
-2020/04/30 | 41145 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/04/30 | 45857 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/04/30 | 272880 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/04/30 | 310426 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/04/30 | 40748 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/04/30 | 45006 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/04/30 | 115870 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/04/30 | 130557 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/04/30 | 1255691 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/04/30 | 1393302 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2020/04/30 | 95188 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/04/30 | 110185 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/04/30 | 43438 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/04/30 | 47970 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2020/04/30 | 45602 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/04/30 | 50526 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/04/30 | 56646 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/04/30 | 61672 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/04/30 | 133161 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/04/30 | 152025 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/04/30 | 69793 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/04/30 | 72765 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/04/30 | 68850 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2020/04/30 | 77447 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/04/30 | 246463 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2020/04/30 | 281656 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/04/30 | 25423 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/04/30 | 28778 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/04/30 | 100614 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2020/04/30 | 116426 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/04/30 | 63291 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/04/30 | 72537 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/04/30 | 94254 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2020/04/30 | 111080 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/04/30 | 57804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/04/30 | 64459 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/04/30 | 457890 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/04/30 | 545004 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/04/30 | 137100 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2020/04/30 | 150030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/04/30 | 92926 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/04/30 | 108885 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/04/30 | 15955 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/04/30 | 17736 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/04/30 | 27840 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/04/30 | 29735 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/04/30 | 615708 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/04/30 | 669806 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/04/30 | 498652 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/04/30 | 560788 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/04/30 | 539769 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2020/04/30 | 576470 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/04/30 | 93534 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/04/30 | 102475 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/04/30 | 1698896 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2020/04/30 | 1983879 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/04/30 | 67253 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/04/30 | 73584 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/04/30 | 26935 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2020/04/30 | 31352 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/04/30 | 7503 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/04/30 | 8472 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/04/30 | 167862 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/04/30 | 182844 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/04/30 | 247854 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/04/30 | 281389 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/04/30 | 87333 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/04/30 | 92021 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/04/30 | 77884 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/04/30 | 86682 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/04/30 | 164810 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/04/30 | 184652 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/04/30 | 148344 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/04/30 | 167945 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/04/30 | 194976 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/04/30 | 177698 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/04/30 | 81389 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/04/30 | 92744 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/04/30 | 30988 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/04/30 | 34818 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2020/04/30 | 55658 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/04/30 | 62800 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/04/30 | 42173 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/04/30 | 45903 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/04/30 | 45664 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/04/30 | 52109 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/04/30 | 354654 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-2.9.tar.lzma
-2020/04/30 | 387640 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-x64-2.9.tar.lzma
-2020/04/30 | 321984 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/04/30 | 356404 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/04/30 | 186882 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/04/30 | 193702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/04/30 | 207033 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/04/30 | 243094 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/04/30 | 77985 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/04/30 | 87138 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/04/30 | 932671 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/04/30 | 1042544 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/04/30 | 19891 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/04/30 | 23502 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/04/30 | 31156 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/04/30 | 36614 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/04/30 | 63267 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/04/30 | 71673 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/04/30 | 42639 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/04/30 | 50896 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/04/30 | 1123776 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2020/04/30 | 1255976 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/04/30 | 41928 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/04/30 | 50950 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/04/30 | 53375 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
-2020/04/30 | 59494 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
-2020/04/30 | 26809 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2020/04/30 | 29143 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/04/30 | 16115 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/04/30 | 17826 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/04/30 | 63315 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/04/30 | 69228 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/04/30 | 147402 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/04/30 | 160739 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/04/30 | 74686 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/04/30 | 84613 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2020/04/30 | 91291 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/04/30 | 96299 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/04/30 | 2555295 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2020/04/30 | 2684810 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/04/30 | 54842 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/04/30 | 61217 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/04/30 | 26515 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/04/30 | 32345 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/04/30 | 61637 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/04/30 | 65200 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/04/30 | 247465 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/04/30 | 277094 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/04/30 | 575629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/04/30 | 612250 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/04/30 | 38800 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/04/30 | 42922 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/04/30 | 198837 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/04/30 | 1189754 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/04/30 | 1108566 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/04/30 | 13053 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/04/30 | 14039 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/05/01 | 531714 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/05/01 | 29317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/05/01 | 33430 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/05/01 | 941992 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/05/01 | 1048377 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/05/01 | 28564 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/05/01 | 30777 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/05/01 | 29333 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/05/01 | 34893 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/05/01 | 49777 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/05/01 | 57243 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/05/01 | 84669 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/05/01 | 94359 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/05/01 | 63009 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/05/01 | 70759 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/05/01 | 26649 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/05/01 | 30230 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/05/01 | 328719 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/05/01 | 391544 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/05/01 | 32362 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/05/01 | 36440 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/05/01 | 49331 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/05/01 | 53989 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/05/01 | 203048 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/05/01 | 222826 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/05/01 | 169322 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/05/01 | 184184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/05/01 | 52143 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/05/01 | 58839 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/05/01 | 20748 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/05/01 | 22987 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/05/01 | 461130 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
+2020/05/01 | 41146 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/05/01 | 45856 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/05/01 | 272880 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/05/01 | 310426 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/05/01 | 40749 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/05/01 | 45004 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/05/01 | 115870 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/05/01 | 130557 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/05/01 | 1255692 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/05/01 | 1393302 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/05/01 | 95189 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/05/01 | 110184 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/05/01 | 43440 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/05/01 | 47972 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/05/01 | 45603 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/05/01 | 50525 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/05/01 | 56646 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/05/01 | 61671 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/05/01 | 133160 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/05/01 | 152024 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/05/01 | 69794 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/05/01 | 72763 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/05/01 | 68852 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/05/01 | 77446 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/05/01 | 246464 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/05/01 | 281655 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/05/01 | 25425 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/05/01 | 28775 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/05/01 | 100615 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/05/01 | 116425 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/05/01 | 63292 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/05/01 | 72537 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/05/01 | 94254 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/05/01 | 111079 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/05/01 | 57804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/05/01 | 64459 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/05/01 | 457890 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/05/01 | 545005 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/05/01 | 137098 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/05/01 | 150030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/05/01 | 92926 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/05/01 | 108886 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/05/01 | 15955 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/05/01 | 17736 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/05/01 | 27840 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/05/01 | 29734 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/05/01 | 615707 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/05/01 | 669806 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/05/01 | 498652 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/05/01 | 560788 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/05/01 | 539767 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/05/01 | 576472 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/05/01 | 93532 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/05/01 | 102472 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/05/01 | 1698894 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/05/01 | 1983877 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/05/01 | 67254 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/05/01 | 73583 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/05/01 | 26935 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/05/01 | 31351 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/05/01 | 7505 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/05/01 | 8472 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/05/01 | 167862 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/05/01 | 182845 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/05/01 | 247855 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/05/01 | 281390 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/05/01 | 87333 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/05/01 | 92021 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/05/01 | 77885 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/05/01 | 86681 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/05/01 | 164810 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/05/01 | 184653 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/05/01 | 148344 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/05/01 | 167945 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/05/01 | 194977 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/05/01 | 177698 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/05/01 | 81388 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/05/01 | 92745 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/05/01 | 30988 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/05/01 | 34818 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/05/01 | 55658 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/05/01 | 62799 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/05/01 | 42174 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/05/01 | 45903 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/05/01 | 45665 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/05/01 | 52108 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/05/01 | 354654 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-2.9.tar.lzma
+2020/05/01 | 387641 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-x64-2.9.tar.lzma
+2020/05/01 | 321987 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/05/01 | 356404 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/05/01 | 186881 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/05/01 | 193700 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/05/01 | 207034 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/05/01 | 243093 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/05/01 | 77983 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/05/01 | 87137 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/05/01 | 932670 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/05/01 | 1042546 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/05/01 | 19892 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/05/01 | 23501 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/05/01 | 31155 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/05/01 | 36614 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/05/01 | 63267 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/05/01 | 71672 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/05/01 | 42639 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/05/01 | 50895 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/05/01 | 1123775 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/05/01 | 1255977 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/05/01 | 41928 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/05/01 | 50949 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/05/01 | 53376 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
+2020/05/01 | 59494 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
+2020/05/01 | 26809 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/05/01 | 29141 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/05/01 | 16116 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/05/01 | 17826 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/05/01 | 63315 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/05/01 | 69228 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/05/01 | 147403 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/05/01 | 160737 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/05/01 | 74687 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/05/01 | 84612 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/05/01 | 91292 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/05/01 | 96298 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/05/01 | 2555294 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/05/01 | 2684809 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/05/01 | 54843 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/05/01 | 61217 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/05/01 | 26516 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/05/01 | 32345 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/05/01 | 61637 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/05/01 | 65198 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/05/01 | 247466 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/05/01 | 277093 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/05/01 | 575628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/05/01 | 612248 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/05/01 | 38798 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/05/01 | 42922 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/05/01 | 198859 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/05/01 | 1189752 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/05/01 | 1109313 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/05/01 | 13052 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/05/01 | 14036 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2020/04/30 | 652 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/05/01 | 652 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -271538,7 +271573,7 @@
2008/11/07 | 35981 | systems/win32/miktex/tm/packages/prettyref.tar.lzma
2017/07/26 | 201385 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
-2020/04/30 | 411 | systems/win32/miktex/tm/packages/pr.ini
+2020/05/01 | 411 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -272670,10 +272705,10 @@
2010/01/14 | 955365 | systems/win32/visualtex/vx-setup-399.exe
2019/08/12 | 14654 | systems/win32/w32tex/00FILES.euc
2019/08/12 | 14654 | systems/win32/w32tex/00FILES.sjis
-2020/04/28 | 4933316 | systems/win32/w32tex/aleph-w32.tar.xz
+2020/04/29 | 4920304 | systems/win32/w32tex/aleph-w32.tar.xz
2020/04/27 | 66174732 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2020/04/28 | 636581 | systems/win32/w32tex/ChangeLog
+2020/04/30 | 638356 | systems/win32/w32tex/ChangeLog
2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0
2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1
2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2
@@ -272681,31 +272716,31 @@
2017/06/24 | 644754 | systems/win32/w32tex/ChangeLog.4
2020/04/27 | 22433136 | systems/win32/w32tex/cjkzr.tar.xz
2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz
-2020/04/28 | 139818672 | systems/win32/w32tex/context.tar.xz
-2020/04/28 | 902780 | systems/win32/w32tex/cweb-w32.tar.xz
+2020/04/30 | 139831708 | systems/win32/w32tex/context.tar.xz
+2020/04/29 | 902804 | systems/win32/w32tex/cweb-w32.tar.xz
2020/03/02 | 6281164 | systems/win32/w32tex/datetime2.tar.xz
2020/04/28 | 838668 | systems/win32/w32tex/dvi2ps-w32.tar.xz
2020/04/28 | 483852 | systems/win32/w32tex/dvi2tty-w32.tar.xz
2020/04/28 | 4653112 | systems/win32/w32tex/dvipdfm-w32.tar.xz
2020/04/28 | 4555740 | systems/win32/w32tex/dvipsk-w32.tar.xz
2020/04/28 | 2634144 | systems/win32/w32tex/dvitools-w32.tar.xz
-2020/03/29 | 1176216 | systems/win32/w32tex/extractpdfmark-w32.tar.xz
+2020/04/29 | 1174456 | systems/win32/w32tex/extractpdfmark-w32.tar.xz
2020/04/28 | 17345708 | systems/win32/w32tex/gregorio-w32.tar.xz
2009/08/03 | 1072620 | systems/win32/w32tex/gtftex.zip
-2020/04/28 | 1833312 | systems/win32/w32tex/jtex-w32.tar.xz
-2020/04/22 | 41460896 | systems/win32/w32tex/latex-dev.tar.xz
+2020/04/29 | 1833452 | systems/win32/w32tex/jtex-w32.tar.xz
+2020/04/29 | 41437540 | systems/win32/w32tex/latex-dev.tar.xz
2020/04/03 | 29248268 | systems/win32/w32tex/latex.tar.xz
2020/04/28 | 996756 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz
2020/04/05 | 393872496 | systems/win32/w32tex/ltxpkgdocs.tar.xz
-2020/04/28 | 34520780 | systems/win32/w32tex/ltxpkgs.tar.xz
-2020/04/28 | 3848936 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
-2020/04/28 | 3837072 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
-2020/04/28 | 3846764 | systems/win32/w32tex/luajittex-w32.tar.xz
-2020/04/28 | 17955192 | systems/win32/w32tex/luatex-dev-w32.tar.xz
-2020/04/28 | 17957136 | systems/win32/w32tex/luatex-exp-w32.tar.xz
+2020/04/30 | 34536388 | systems/win32/w32tex/ltxpkgs.tar.xz
+2020/04/29 | 3867708 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
+2020/04/29 | 3855344 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
+2020/04/29 | 3863904 | systems/win32/w32tex/luajittex-w32.tar.xz
+2020/04/29 | 18131976 | systems/win32/w32tex/luatex-dev-w32.tar.xz
+2020/04/29 | 17919508 | systems/win32/w32tex/luatex-exp-w32.tar.xz
2020/04/19 | 69190432 | systems/win32/w32tex/luatexja.tar.xz
-2020/04/28 | 17947624 | systems/win32/w32tex/luatex-w32.tar.xz
-2020/04/28 | 1600068 | systems/win32/w32tex/makeindex-w32.tar.xz
+2020/04/29 | 18124320 | systems/win32/w32tex/luatex-w32.tar.xz
+2020/04/30 | 1663428 | systems/win32/w32tex/makeindex-w32.tar.xz
2015/05/26 | 1542676 | systems/win32/w32tex/manual.tar.xz
2020/04/28 | 439176 | systems/win32/w32tex/mftools.tar.xz
2020/04/28 | 524672 | systems/win32/w32tex/mftrace-w32.tar.xz
@@ -272714,16 +272749,16 @@
2020/03/04 | 9335848 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
2020/04/28 | 1228212 | systems/win32/w32tex/omegaj-w32.tar.xz
2020/03/01 | 355876 | systems/win32/w32tex/otfbeta.tar.xz
-2020/04/28 | 20648312 | systems/win32/w32tex/pdftex-w32.tar.xz
-2020/04/28 | 80601424 | systems/win32/w32tex/pgfcontrib.tar.xz
+2020/04/29 | 20690360 | systems/win32/w32tex/pdftex-w32.tar.xz
+2020/04/30 | 80601316 | systems/win32/w32tex/pgfcontrib.tar.xz
2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz
2020/04/13 | 2820836 | systems/win32/w32tex/platex.tar.xz
2020/03/20 | 1598792 | systems/win32/w32tex/pmx.tar.xz
2020/04/28 | 1169216 | systems/win32/w32tex/pstoedit-w32.tar.xz
2020/04/19 | 274457068 | systems/win32/w32tex/pstricks.tar.xz
2020/04/28 | 517756 | systems/win32/w32tex/psutils-w32.tar.xz
-2020/04/28 | 6452984 | systems/win32/w32tex/ptex-ng-w32.tar.xz
-2020/04/28 | 10478744 | systems/win32/w32tex/ptex-w32.tar.xz
+2020/04/29 | 6444432 | systems/win32/w32tex/ptex-ng-w32.tar.xz
+2020/04/29 | 10471004 | systems/win32/w32tex/ptex-w32.tar.xz
2020/04/10 | 1784316 | systems/win32/w32tex/qpdf-w32.tar.xz
2019/04/15 | 499188 | systems/win32/w32tex/sam2p-w32.tar.xz
2020/01/24 | 24929772 | systems/win32/w32tex/t1fonts.tar.xz
@@ -272743,22 +272778,22 @@
2020/01/19 | 5856 | systems/win32/w32tex/txtutil.tar.xz
2013/04/08 | 71588 | systems/win32/w32tex/ums.tar.xz
2012/05/28 | 233472 | systems/win32/w32tex/unzip.exe
-2020/04/28 | 8490092 | systems/win32/w32tex/uptex-w32.tar.xz
+2020/04/29 | 8478684 | systems/win32/w32tex/uptex-w32.tar.xz
2013/04/08 | 722652 | systems/win32/w32tex/utf.tar.xz
2013/04/08 | 13748 | systems/win32/w32tex/vf-n2bk.tar.xz
2020/03/27 | 38319492 | systems/win32/w32tex/w32tex-src.tar.xz
-2020/04/23 | 99146780 | systems/win32/w32tex/web2c-lib.tar.xz
-2020/04/28 | 43894756 | systems/win32/w32tex/web2c-w32.tar.xz
+2020/04/29 | 99151804 | systems/win32/w32tex/web2c-lib.tar.xz
+2020/04/29 | 44047852 | systems/win32/w32tex/web2c-w32.tar.xz
2020/04/28 | 810820 | systems/win32/w32tex/win64/aleph-w64.tar.xz
2019/12/09 | 22317480 | systems/win32/w32tex/win64/biblatex-biber-w64.tar.xz
-2020/04/28 | 2116608 | systems/win32/w32tex/win64/context-w64.tar.xz
-2020/04/28 | 82764 | systems/win32/w32tex/win64/cweb-w64.tar.xz
+2020/04/29 | 2120000 | systems/win32/w32tex/win64/context-w64.tar.xz
+2020/04/29 | 82748 | systems/win32/w32tex/win64/cweb-w64.tar.xz
2020/04/28 | 750088 | systems/win32/w32tex/win64/dvi2ps-w64.tar.xz
2020/04/28 | 447484 | systems/win32/w32tex/win64/dvi2tty-w64.tar.xz
2020/04/28 | 796972 | systems/win32/w32tex/win64/dvipdfm-w64.tar.xz
2020/04/28 | 759516 | systems/win32/w32tex/win64/dvipsk-w64.tar.xz
2020/04/28 | 2339012 | systems/win32/w32tex/win64/dvitools-w64.tar.xz
-2020/03/29 | 1078840 | systems/win32/w32tex/win64/extractpdfmark-w64.tar.xz
+2020/04/29 | 1079552 | systems/win32/w32tex/win64/extractpdfmark-w64.tar.xz
2020/04/28 | 304800 | systems/win32/w32tex/win64/gregorio-w64.tar.xz
2020/04/28 | 587640 | systems/win32/w32tex/win64/jtex-w64.tar.xz
2019/11/11 | 2568 | systems/win32/w32tex/win64/latex-dev-w64.tar.xz
@@ -272769,12 +272804,12 @@
2020/04/28 | 3116240 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
2020/04/28 | 3123760 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
2020/04/28 | 3120292 | systems/win32/w32tex/win64/luatex-w64.tar.xz
-2020/04/28 | 1070276 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
+2020/04/30 | 1140760 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
2020/04/28 | 431044 | systems/win32/w32tex/win64/mftools-w64.tar.xz
2020/04/28 | 376324 | systems/win32/w32tex/win64/mftrace-w64.tar.xz
2020/01/18 | 362540 | systems/win32/w32tex/win64/m-tx-w64.tar.xz
2020/04/28 | 407132 | systems/win32/w32tex/win64/omegaj-w64.tar.xz
-2020/04/28 | 6280968 | systems/win32/w32tex/win64/pdftex-w64.tar.xz
+2020/04/29 | 6278504 | systems/win32/w32tex/win64/pdftex-w64.tar.xz
2015/01/26 | 41440 | systems/win32/w32tex/win64/plain2-2.54-w64.tar.xz
2020/03/20 | 557532 | systems/win32/w32tex/win64/pmx-w64.tar.xz
2020/04/28 | 790040 | systems/win32/w32tex/win64/pstoedit-w64.tar.xz
@@ -272788,9 +272823,9 @@
2020/04/28 | 687688 | systems/win32/w32tex/win64/ttf2pt1-w64.tar.xz
2020/01/18 | 42768 | systems/win32/w32tex/win64/txtutil-w64.tar.xz
2020/04/28 | 1806968 | systems/win32/w32tex/win64/uptex-w64.tar.xz
-2020/04/28 | 3388432 | systems/win32/w32tex/win64/web2c-w64.tar.xz
-2020/04/28 | 10876356 | systems/win32/w32tex/win64/xetex-w64.tar.xz
-2020/04/28 | 49713320 | systems/win32/w32tex/xetex-w32.tar.xz
+2020/04/29 | 3387816 | systems/win32/w32tex/win64/web2c-w64.tar.xz
+2020/04/30 | 10946380 | systems/win32/w32tex/win64/xetex-w64.tar.xz
+2020/04/30 | 49774400 | systems/win32/w32tex/xetex-w32.tar.xz
2019/10/03 | 2936880 | systems/win32/w32tex/xindy-w32.tar.xz
2013/11/19 | 11356248 | systems/win32/w32tex/xymtex.tar.xz
2016/09/09 | 4334636 | systems/win32/w32tex/xypic.tar.xz
@@ -272887,7 +272922,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2020/05/01 | 186 | timestamp
+2020/05/02 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 238b9ac058..12eb410460 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 1903a4985d..f4f6961a00 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,249 +1,792 @@
+2020/05/01 | 999 | graphics/circuit_macros/examples/Fuses.m4
+2020/05/01 | 999 | graphics/circuit_macros/doc/FusesMan.m4
+2020/05/01 | 9954 | graphics/circuit_macros/examples/svg/FlowSVG.m4
+2020/05/01 | 991 | graphics/circuit_macros/examples/Byte.m4
+2020/05/01 | 9902 | graphics/circuit_macros/svg.m4
+2020/05/01 | 988 | graphics/circuit_macros/examples/svg/VariableSVG.m4
+2020/05/01 | 9861 | graphics/circuit_macros/examples/ics.m4
+2020/05/01 | 9840 | graphics/circuit_macros/examples/tubedefs.m4
+2020/05/01 | 980 | graphics/circuit_macros/examples/Emarrows.m4
+2020/05/01 | 980 | graphics/circuit_macros/doc/EmarrowsMan.m4
+2020/05/01 | 970 | graphics/circuit_macros/examples/svg/ex15SVG.m4
+2020/05/01 | 96298 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/05/01 | 960 | graphics/circuit_macros/doc/Flowdiag.m4
+2020/05/01 | 959 | graphics/circuit_macros/examples/svg/FusesSVG.m4
+2020/05/01 | 952 | systems/texlive/tlnet/archive/biblatex-software.source.r54950.tar.xz
+2020/05/01 | 95189 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/05/01 | 947 | graphics/circuit_macros/examples/svg/QuantumSVG.m4
+2020/05/01 | 947 | graphics/circuit_macros/examples/squiggle.m4
+2020/05/01 | 94474 | graphics/circuit_macros/examples/mf/cct.mf
+2020/05/01 | 94359 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/05/01 | 9425 | graphics/circuit_macros/doc/ShiftR.tex
+2020/05/01 | 94254 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/05/01 | 941992 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/05/01 | 937 | graphics/circuit_macros/examples/svg/ByteSVG.m4
+2020/05/01 | 936344 | install/macros/latex/contrib/xcjk2uni.tds.zip
+2020/05/01 | 93532 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/05/01 | 933 | graphics/circuit_macros/examples/svg/ex01SVG.m4
+2020/05/01 | 932670 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/05/01 | 92926 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/05/01 | 9276 | graphics/circuit_macros/examples/svg/icsSVG.m4
+2020/05/01 | 92745 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/05/01 | 926 | graphics/circuit_macros/examples/Variable.m4
+2020/05/01 | 926 | graphics/circuit_macros/doc/VariableMan.m4
+2020/05/01 | 92021 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/05/01 | 9198 | graphics/circuit_macros/examples/svg/tstSVG.htmx
+2020/05/01 | 918 | graphics/circuit_macros/examples/Quantum.m4
+2020/05/01 | 91744 | macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf
+2020/05/01 | 91292 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/05/01 | 90703 | macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf
+2020/05/01 | 905 | graphics/circuit_macros/examples/birds.m4
+2020/05/01 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png
+2020/05/01 | 8955 | graphics/circuit_macros/examples/Chuck.m4
+2020/05/01 | 893788 | graphics/circuit_macros/examples/examples.pdf
+2020/05/01 | 8868938 | install/language/japanese/jlreq.tds.zip
+2020/05/01 | 8815 | graphics/circuit_macros/examples/Makefile
+2020/05/01 | 87333 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/05/01 | 87137 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/05/01 | 86681 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/05/01 | 865 | graphics/circuit_macros/examples/ex18.m4
+2020/05/01 | 862 | graphics/circuit_macros/examples/svg/pwrsupplySVG.m4
+2020/05/01 | 859 | macros/xetex/latex/xepersian-hm/README.txt
+2020/05/01 | 855 | graphics/circuit_macros/examples/svg/ex03SVG.m4
+2020/05/01 | 8504 | systems/texlive/tlnet/archive/context-vim.r54949.tar.xz
+2020/05/01 | 8472 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/05/01 | 84669 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/05/01 | 84612 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/05/01 | 839 | graphics/circuit_macros/examples/svg/quickSVG.m4
+2020/05/01 | 8372 | graphics/circuit_macros/examples/exp.m4
+2020/05/01 | 835 | graphics/circuit_macros/doc/Opto.m4
+2020/05/01 | 815 | graphics/circuit_macros/examples/Grounds.m4
+2020/05/01 | 815 | graphics/circuit_macros/doc/GroundsMan.m4
+2020/05/01 | 81388 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/05/01 | 812132 | systems/texlive/tlnet/archive/dynkin-diagrams.doc.r54948.tar.xz
+2020/05/01 | 810 | graphics/circuit_macros/examples/svg/GroundsSVG.m4
+2020/05/01 | 806 | graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro
+2020/05/01 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
+2020/05/01 | 793 | graphics/circuit_macros/examples/svg/CountingSVG.m4
+2020/05/01 | 78720 | graphics/circuit_macros/libgen.m4
+2020/05/01 | 782 | graphics/circuit_macros/doc/Oblique.m4
+2020/05/01 | 7812 | systems/texlive/tlnet/archive/context-vim.doc.r54949.tar.xz
+2020/05/01 | 77983 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/05/01 | 77979 | graphics/circuit_macros/doc/defines.tex
+2020/05/01 | 77885 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/05/01 | 777 | graphics/circuit_macros/examples/Arrester.m4
+2020/05/01 | 776 | graphics/circuit_macros/examples/mf/cct.tfm
+2020/05/01 | 774 | graphics/circuit_macros/examples/quick.m4
+2020/05/01 | 774 | graphics/circuit_macros/doc/quick.m4
+2020/05/01 | 77446 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/05/01 | 7677 | language/japanese/jlreq/jlreq-trimmarks-ja.md
+2020/05/01 | 7546 | graphics/circuit_macros/examples/svg/RectifiersSVG.m4
+2020/05/01 | 7533 | graphics/circuit_macros/doc/Logic.tex
+2020/05/01 | 7529 | graphics/circuit_macros/examples/shapes.m4
+2020/05/01 | 7526 | graphics/circuit_macros/examples/svg/shapesSVG.m4
+2020/05/01 | 7505 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/05/01 | 7503 | graphics/circuit_macros/doc/Headers.tex
+2020/05/01 | 748 | graphics/circuit_macros/examples/svg/Np.m4
+2020/05/01 | 74687 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/05/01 | 745 | graphics/circuit_macros/examples/svg/DecoderSVG.m4
+2020/05/01 | 741 | graphics/circuit_macros/examples/Incleps.m4
+2020/05/01 | 7418 | graphics/circuit_macros/examples/svg/CsourceSVG.m4
+2020/05/01 | 740 | graphics/circuit_macros/examples/SampleFlow.m4
+2020/05/01 | 73583 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/05/01 | 7316 | graphics/circuit_macros/doc/Relay.tex
+2020/05/01 | 72763 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/05/01 | 726 | graphics/circuit_macros/examples/svg/ConnectorsSVG.m4
+2020/05/01 | 72537 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/05/01 | 7203 | graphics/circuit_macros/examples/svg/lcctSVG.m4
+2020/05/01 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
+2020/05/01 | 71672 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/05/01 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
+2020/05/01 | 7113 | graphics/circuit_macros/examples/lcct.m4
+2020/05/01 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
+2020/05/01 | 70759 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/05/01 | 706 | graphics/circuit_macros/psfrag.m4
+2020/05/01 | 70573 | macros/latex/contrib/hep-paper/hep-paper.dtx
+2020/05/01 | 703 | graphics/circuit_macros/examples/mpost/README-mpost
+2020/05/01 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
+2020/05/01 | 697 | graphics/circuit_macros/examples/ex01.m4
+2020/05/01 | 69794 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/05/01 | 69228 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/05/01 | 68852 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/05/01 | 685 | graphics/circuit_macros/examples/mpost/mptest
+2020/05/01 | 6854 | graphics/circuit_macros/examples/svg/DiniSVG.m4
+2020/05/01 | 6854 | graphics/circuit_macros/examples/Dini.m4
+2020/05/01 | 6845 | macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx
+2020/05/01 | 682 | graphics/circuit_macros/examples/svg/ujtSVG.m4
+2020/05/01 | 674 | graphics/circuit_macros/examples/Connectors.m4
+2020/05/01 | 673 | graphics/circuit_macros/examples/ex03.m4
+2020/05/01 | 67254 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/05/01 | 669806 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/05/01 | 660 | graphics/circuit_macros/examples/ujt.m4
+2020/05/01 | 660 | graphics/circuit_macros/doc/ujtMan.m4
+2020/05/01 | 656 | graphics/circuit_macros/examples/Zcos.m4
+2020/05/01 | 655 | graphics/circuit_macros/examples/Decoder.m4
+2020/05/01 | 6550 | graphics/circuit_macros/doc/Conn.tex
+2020/05/01 | 654 | graphics/circuit_macros/examples/diamond.m4
+2020/05/01 | 652 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/05/01 | 65198 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/05/01 | 645 | graphics/circuit_macros/examples/Floor.m4
+2020/05/01 | 64459 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/05/01 | 6413 | graphics/circuit_macros/examples/svg/CanLogicSVG.m4
+2020/05/01 | 63 | graphics/circuit_macros/examples/svg/local_init.m4
+2020/05/01 | 6378 | language/japanese/jlreq/jlreq-trimmarks.md
+2020/05/01 | 6371 | graphics/circuit_macros/examples/CanLogic.m4
+2020/05/01 | 63315 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/05/01 | 63292 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/05/01 | 63267 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/05/01 | 63009 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/05/01 | 62951 | macros/latex/contrib/zhnumber/zhnumber.dtx
+2020/05/01 | 62799 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/05/01 | 6216 | graphics/circuit_macros/examples/svg/LgateSVG.m4
+2020/05/01 | 6183 | language/chinese/ctex/zhconv.lua
+2020/05/01 | 61671 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/05/01 | 61637 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/05/01 | 615707 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/05/01 | 614 | graphics/circuit_macros/doc/BigResistor.m4
+2020/05/01 | 613 | graphics/circuit_macros/examples/tst.tex
+2020/05/01 | 612248 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/05/01 | 61217 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/05/01 | 609 | graphics/circuit_macros/examples/svg/diamondSVG.m4
+2020/05/01 | 6067 | graphics/circuit_macros/doc/Contacts.tex
+2020/05/01 | 6003 | graphics/circuit_macros/examples/CSlight.m4
+2020/05/01 | 599 | graphics/pstricks/contrib/pst-ovl/Changes
+2020/05/01 | 5996 | language/chinese/ctex/README.md
+2020/05/01 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
+2020/05/01 | 59494 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
+2020/05/01 | 591 | graphics/circuit_macros/examples/test.m4
+2020/05/01 | 5890 | graphics/circuit_macros/examples/Csource.m4
+2020/05/01 | 58839 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/05/01 | 57804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/05/01 | 577768 | language/japanese/jlreq.zip
+2020/05/01 | 576472 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/05/01 | 575 | graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty
+2020/05/01 | 575628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/05/01 | 57243 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/05/01 | 572150 | install/macros/latex/contrib/xpinyin.tds.zip
+2020/05/01 | 56646 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/05/01 | 560788 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/05/01 | 55658 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/05/01 | 5552 | graphics/circuit_macros/examples/FlowchartDefs.m4
+2020/05/01 | 5545 | graphics/circuit_macros/doc/Bip.tex
+2020/05/01 | 55345 | macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
+2020/05/01 | 5521 | graphics/circuit_macros/examples/svg/graysurfSVG.m4
+2020/05/01 | 551 | graphics/circuit_macros/examples/Counting.m4
+2020/05/01 | 550763 | macros/latex/contrib/hep-paper.zip
+2020/05/01 | 5502 | graphics/circuit_macros/doc/Emarrows.tex
+2020/05/01 | 5502663 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/05/01 | 54843 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/05/01 | 5478 | graphics/circuit_macros/examples/graysurf.m4
+2020/05/01 | 545 | graphics/circuit_macros/examples/svg/RotboxSVG.m4
+2020/05/01 | 545005 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/05/01 | 53989 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/05/01 | 539767 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/05/01 | 5392 | macros/latex/contrib/univie-ling/README
+2020/05/01 | 538 | graphics/circuit_macros/examples/svg/FontsSVG.m4
+2020/05/01 | 538 | graphics/circuit_macros/examples/svg/AmpTableSVG.m4
+2020/05/01 | 535 | graphics/circuit_macros/doc/Tline.m4
+2020/05/01 | 53376 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
+2020/05/01 | 532 | graphics/circuit_macros/examples/svg/NLGSVG.m4
+2020/05/01 | 531714 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/05/01 | 531674 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/05/01 | 525662 | macros/latex/contrib/hep-paper/hep-paper.pdf
+2020/05/01 | 52143 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/05/01 | 52108 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/05/01 | 518 | graphics/circuit_macros/examples/Rotbox.m4
+2020/05/01 | 5137 | graphics/circuit_macros/doc/NPDT.tex
+2020/05/01 | 50 | graphics/circuit_macros/doc/bitr.m4
+2020/05/01 | 50949 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/05/01 | 509475 | macros/xetex/latex/xecjk/xeCJK.dtx
+2020/05/01 | 50895 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/05/01 | 50525 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/05/01 | 5044 | graphics/circuit_macros/examples/svg/AntiqueClockSVG.m4
+2020/05/01 | 5042 | graphics/circuit_macros/examples/AntiqueClock.m4
+2020/05/01 | 499 | graphics/circuit_macros/examples/NLG.m4
+2020/05/01 | 499 | graphics/circuit_macros/doc/NLGMan.m4
+2020/05/01 | 4998 | language/japanese/jlreq/README.md
+2020/05/01 | 498652 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/05/01 | 49777 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/05/01 | 4964 | graphics/circuit_macros/doc/Multiplexer.tex
+2020/05/01 | 494 | graphics/circuit_macros/examples/AmpTable.m4
+2020/05/01 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
+2020/05/01 | 49331 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/05/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/05/01 | 48 | graphics/circuit_macros/doc/oax.m4
+2020/05/01 | 489 | graphics/circuit_macros/examples/Koch.m4
+2020/05/01 | 483 | graphics/circuit_macros/doc/eboxdims.m4
+2020/05/01 | 482 | graphics/circuit_macros/examples/clock.m4
+2020/05/01 | 4817 | graphics/circuit_macros/doc/Demultiplexer.tex
+2020/05/01 | 47972 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/05/01 | 4789 | graphics/circuit_macros/doc/Fuses.tex
+2020/05/01 | 47768 | graphics/circuit_macros/liblog.m4
+2020/05/01 | 4751 | graphics/circuit_macros/examples/Shaky.m4
+2020/05/01 | 4670 | graphics/circuit_macros/examples/psfrag/Makefile
+2020/05/01 | 4666 | graphics/circuit_macros/doc/Nport.tex
+2020/05/01 | 4638 | graphics/circuit_macros/examples/Ball.m4
+2020/05/01 | 462 | graphics/circuit_macros/Copying
+2020/05/01 | 4624 | graphics/circuit_macros/examples/svg/roseSVG.m4
+2020/05/01 | 4615 | graphics/circuit_macros/examples/mf/font.m4
+2020/05/01 | 461130 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
+2020/05/01 | 460 | graphics/circuit_macros/examples/debug1.tex
+2020/05/01 | 46065 | macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf
+2020/05/01 | 45903 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/05/01 | 45856 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/05/01 | 4582 | graphics/circuit_macros/examples/svg/Makefile
+2020/05/01 | 457890 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/05/01 | 4569 | graphics/circuit_macros/examples/rose.m4
+2020/05/01 | 45665 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/05/01 | 45603 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/05/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/05/01 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/05/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/05/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/05/01 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
+2020/05/01 | 45004 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/05/01 | 449 | graphics/circuit_macros/doc/woodchips.m4
+2020/05/01 | 4489 | graphics/circuit_macros/examples/fet.m4
+2020/05/01 | 4489 | graphics/circuit_macros/doc/fetMan.m4
+2020/05/01 | 44853 | language/japanese/jlreq/jlreq-trimmarks.sty
+2020/05/01 | 4483 | graphics/circuit_macros/doc/Makefile
+2020/05/01 | 443458 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
+2020/05/01 | 442 | graphics/circuit_macros/examples/Wheat.m4
+2020/05/01 | 441864 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
+2020/05/01 | 438208 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
+2020/05/01 | 43440 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/05/01 | 4337 | graphics/circuit_macros/examples/svg/AlogixSVG.m4
+2020/05/01 | 433318 | language/chinese/ctex/ctex.dtx
+2020/05/01 | 4312 | graphics/circuit_macros/examples/ex09.m4
+2020/05/01 | 4309 | graphics/circuit_macros/examples/svg/SwitchesSVG.m4
+2020/05/01 | 4305 | graphics/circuit_macros/examples/Euro.m4
+2020/05/01 | 42922 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/05/01 | 4288 | graphics/circuit_macros/examples/control.m4
+2020/05/01 | 42639 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/05/01 | 4240 | graphics/circuit_macros/examples/mpost/Makefile
+2020/05/01 | 422 | graphics/circuit_macros/examples/svg/GrayCodeSVG.m4
+2020/05/01 | 421 | graphics/circuit_macros/examples/GrayCode.m4
+2020/05/01 | 421 | graphics/circuit_macros/doc/Sinus.m4
+2020/05/01 | 42174 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/05/01 | 4205 | graphics/circuit_macros/examples/Alogix.m4
+2020/05/01 | 419 | graphics/circuit_macros/examples/svg/SixpoleSVG.m4
+2020/05/01 | 419 | graphics/circuit_macros/examples/Sixpole.m4
+2020/05/01 | 41983 | macros/latex/contrib/xpinyin/xpinyin.dtx
+2020/05/01 | 41928 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/05/01 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
+2020/05/01 | 417 | graphics/circuit_macros/examples/svg/SQUIDSVG.m4
+2020/05/01 | 4178 | graphics/circuit_macros/doc/Tgate.tex
+2020/05/01 | 416 | graphics/circuit_macros/examples/testpdf.tex
+2020/05/01 | 411 | systems/win32/miktex/tm/packages/pr.ini
+2020/05/01 | 4119 | graphics/circuit_macros/examples/svg/ex09SVG.m4
+2020/05/01 | 41146 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/05/01 | 41050 | language/japanese/jlreq/README-ja.md
+2020/05/01 | 409 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
+2020/05/01 | 40749 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/05/01 | 4073 | graphics/circuit_macros/doc/Circuit_macros.bib
+2020/05/01 | 404 | graphics/circuit_macros/doc/Series.m4
+2020/05/01 | 4003 | graphics/circuit_macros/examples/svg/InclepsSVG.m4
+2020/05/01 | 3983 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib
+2020/05/01 | 39774 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdf
+2020/05/01 | 3973 | graphics/circuit_macros/examples/Switches.m4
+2020/05/01 | 3973 | graphics/circuit_macros/doc/SwitchesMan.m4
+2020/05/01 | 3946 | graphics/circuit_macros/INSTALL
+2020/05/01 | 3919 | graphics/circuit_macros/examples/PushPull.m4
+2020/05/01 | 391544 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/05/01 | 3911 | graphics/circuit_macros/examples/Flow.m4
+2020/05/01 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r54943.tar.xz
+2020/05/01 | 387 | graphics/circuit_macros/doc/lrarrows.m4
+2020/05/01 | 38798 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/05/01 | 387641 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-x64-2.9.tar.lzma
+2020/05/01 | 3836 | graphics/circuit_macros/examples/svg/fetSVG.m4
+2020/05/01 | 382 | graphics/circuit_macros/examples/tikz.tex
+2020/05/01 | 3825 | graphics/circuit_macros/examples/svg/recycleSVG.m4
+2020/05/01 | 3825 | graphics/circuit_macros/examples/recycle.m4
+2020/05/01 | 380 | graphics/circuit_macros/examples/SQUID.m4
+2020/05/01 | 3785 | graphics/circuit_macros/examples/Mixer.m4
+2020/05/01 | 3779 | graphics/circuit_macros/examples/svg/PushPullSVG.m4
+2020/05/01 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
+2020/05/01 | 370 | graphics/pstricks/contrib/pst-ovl/README
+2020/05/01 | 370 | graphics/circuit_macros/examples/snake.m4
+2020/05/01 | 369 | graphics/circuit_macros/doc/sampleIC.m4
+2020/05/01 | 3678 | macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex
+2020/05/01 | 36614 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/05/01 | 365 | graphics/circuit_macros/examples/rotellipse.m4
+2020/05/01 | 3646 | graphics/circuit_macros/examples/svg/ContactSVG.m4
+2020/05/01 | 36440 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/05/01 | 3634 | macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex
+2020/05/01 | 3631 | graphics/circuit_macros/examples/svg/wormSVG.m4
+2020/05/01 | 3595883 | install/macros/latex/contrib/lwarp.tds.zip
+2020/05/01 | 359458 | language/japanese/jlreq/jlreq-ja.pdf
+2020/05/01 | 3573 | graphics/circuit_macros/examples/svg/randomSVG.m4
+2020/05/01 | 3567 | graphics/circuit_macros/examples/svg/ButtonsSVG.m4
+2020/05/01 | 356404 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/05/01 | 354654 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-2.9.tar.lzma
+2020/05/01 | 3545 | graphics/circuit_macros/examples/random.m4
+2020/05/01 | 353 | graphics/circuit_macros/examples/windows.m4
+2020/05/01 | 353 | graphics/circuit_macros/examples/svg/windows.m4
+2020/05/01 | 3522 | graphics/circuit_macros/examples/svg/ex12SVG.m4
+2020/05/01 | 3508 | graphics/circuit_macros/examples/Buttons.m4
+2020/05/01 | 3489 | graphics/circuit_macros/examples/svg/MixerSVG.m4
+2020/05/01 | 34893 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/05/01 | 34818 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/05/01 | 34597 | graphics/pstricks/contrib/pst-ovl.zip
+2020/05/01 | 3421 | graphics/circuit_macros/examples/svg/MCSVG.m4
+2020/05/01 | 3395 | macros/xetex/latex/xecjk/README.md
+2020/05/01 | 337 | graphics/circuit_macros/examples/xfig/Makefile
+2020/05/01 | 3346 | graphics/circuit_macros/examples/Windings.m4
+2020/05/01 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
+2020/05/01 | 33430 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/05/01 | 3339 | graphics/circuit_macros/examples/ex12.m4
+2020/05/01 | 3326 | graphics/circuit_macros/examples/Contact.m4
+2020/05/01 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
+2020/05/01 | 3321 | graphics/circuit_macros/examples/thyristor.m4
+2020/05/01 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
+2020/05/01 | 3310 | graphics/circuit_macros/examples/svg/thyristorSVG.m4
+2020/05/01 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
+2020/05/01 | 329 | graphics/circuit_macros/doc/FF.m4
+2020/05/01 | 329512 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
+2020/05/01 | 3290 | graphics/circuit_macros/examples/svg/sfgSVG.m4
+2020/05/01 | 328719 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/05/01 | 32362 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/05/01 | 32345 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/05/01 | 321987 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/05/01 | 3206 | graphics/circuit_macros/examples/svg/controlSVG.m4
+2020/05/01 | 3183 | graphics/circuit_macros/doc/NLG.tex
+2020/05/01 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
+2020/05/01 | 3175 | graphics/circuit_macros/examples/Blogix.m4
+2020/05/01 | 31351 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/05/01 | 3116 | systems/texlive/tlnet/archive/biblatex-software.r54950.tar.xz
+2020/05/01 | 31155 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/05/01 | 3107866 | macros/latex/contrib/lwarp.zip
+2020/05/01 | 310426 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/05/01 | 30988 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/05/01 | 3091 | graphics/circuit_macros/examples/svg/TtreeSVG.m4
+2020/05/01 | 30777 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/05/01 | 30230 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/05/01 | 2994 | graphics/circuit_macros/examples/svg/WindingsSVG.m4
+2020/05/01 | 29772 | graphics/circuit_macros/examples/Incl.pdf
+2020/05/01 | 29734 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/05/01 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
+2020/05/01 | 2939 | graphics/circuit_macros/examples/MC.m4
+2020/05/01 | 293992 | systems/texlive/tlnet/archive/biblatex-software.doc.r54950.tar.xz
+2020/05/01 | 293478 | install/macros/latex/contrib/zhnumber.tds.zip
+2020/05/01 | 29333 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/05/01 | 29317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/05/01 | 292884 | macros/xetex/latex/xecjk/xunicode-symbols.pdf
+2020/05/01 | 29141 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/05/01 | 2912 | graphics/circuit_macros/doc/Workflow.m4
+2020/05/01 | 29074 | graphics/circuit_macros/doc/CctTable.tex
+2020/05/01 | 2887365 | macros/latex/contrib/univie-ling.zip
+2020/05/01 | 28842 | macros/latex/contrib/xcjk2uni/xCJK2uni.dtx
+2020/05/01 | 28778 | macros/latex/contrib/lwarp/lwarpmk.lua
+2020/05/01 | 28775 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/05/01 | 28619 | language/chinese/ctex/ctxdoc.cls
+2020/05/01 | 28564 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/05/01 | 28388 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
+2020/05/01 | 2834 | graphics/circuit_macros/postscript.m4
+2020/05/01 | 2828 | graphics/circuit_macros/examples/README-examples
+2020/05/01 | 28197 | macros/latex/contrib/lwarp/lwarp.ins
+2020/05/01 | 281966 | macros/xetex/latex/xepersian-hm.zip
+2020/05/01 | 281655 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/05/01 | 281390 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/05/01 | 280101 | macros/latex/contrib/zhnumber.zip
+2020/05/01 | 2799 | graphics/circuit_macros/examples/worm.m4
+2020/05/01 | 2792 | graphics/circuit_macros/examples/OpAmpFilter.m4
+2020/05/01 | 27840 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/05/01 | 27749 | macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
+2020/05/01 | 277093 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/05/01 | 2761 | graphics/circuit_macros/examples/sfg.m4
+2020/05/01 | 272880 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/05/01 | 2720 | graphics/circuit_macros/examples/svg/AudioSVG.m4
+2020/05/01 | 271657 | macros/latex/contrib/zhnumber/zhnumber.pdf
+2020/05/01 | 2703938 | macros/latex/contrib/lwarp/lwarp.pdf
+2020/05/01 | 269 | graphics/circuit_macros/doc/Loop.m4
+2020/05/01 | 2696 | graphics/circuit_macros/examples/keyval.m4
+2020/05/01 | 26935 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/05/01 | 2685 | graphics/circuit_macros/examples/svg/ex11SVG.m4
+2020/05/01 | 2684809 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/05/01 | 2682 | graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex
+2020/05/01 | 26809 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/05/01 | 2674 | graphics/circuit_macros/examples/Planes.m4
+2020/05/01 | 2670 | graphics/circuit_macros/examples/CctTable.m4
+2020/05/01 | 2670 | graphics/circuit_macros/doc/CctTableMan.m4
+2020/05/01 | 26649 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/05/01 | 2661 | graphics/circuit_macros/doc/Grounds.tex
+2020/05/01 | 26516 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/05/01 | 264314 | language/japanese/jlreq/jlreq.cls
+2020/05/01 | 2639 | graphics/circuit_macros/doc/Circuit_macros.tex
+2020/05/01 | 2634 | graphics/circuit_macros/examples/Audio.m4
+2020/05/01 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
+2020/05/01 | 2584 | graphics/circuit_macros/examples/Escher.m4
+2020/05/01 | 25849 | graphics/circuit_macros/doc/Xform.tex
+2020/05/01 | 25802 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
+2020/05/01 | 2559 | graphics/circuit_macros/examples/svg/ex08SVG.m4
+2020/05/01 | 2556 | graphics/circuit_macros/examples/ex08.m4
+2020/05/01 | 2555294 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/05/01 | 2551 | graphics/circuit_macros/examples/svg/OptoisoSVG.m4
+2020/05/01 | 25460 | graphics/circuit_macros/doc/Capture.JPG
+2020/05/01 | 2542 | graphics/circuit_macros/examples/brace.m4
+2020/05/01 | 25425 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/05/01 | 2533091 | graphics/circuit_macros.zip
+2020/05/01 | 2528 | graphics/circuit_macros/examples/svg/AdderSVG.m4
+2020/05/01 | 2525 | graphics/circuit_macros/examples/svg/CrowSVG.m4
+2020/05/01 | 2520 | graphics/circuit_macros/examples/Crow.m4
+2020/05/01 | 2505 | macros/latex/contrib/xcjk2uni/README.md
+2020/05/01 | 247855 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/05/01 | 247466 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/05/01 | 246464 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/05/01 | 2443 | graphics/circuit_macros/examples/svg/ex00SVG.m4
+2020/05/01 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
+2020/05/01 | 2441 | graphics/circuit_macros/doc/ujt.tex
+2020/05/01 | 243093 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/05/01 | 24269346 | systems/texlive/tlnet/install-tl.zip
+2020/05/01 | 2412 | graphics/circuit_macros/examples/ex00.m4
+2020/05/01 | 2402 | graphics/circuit_macros/examples/Adder.m4
+2020/05/01 | 2389 | graphics/circuit_macros/doc/Dac.m4
+2020/05/01 | 2362 | graphics/circuit_macros/examples/Jack.m4
+2020/05/01 | 2362 | graphics/circuit_macros/doc/JackMan.m4
+2020/05/01 | 2361 | graphics/circuit_macros/examples/ex11.m4
+2020/05/01 | 23580 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
+2020/05/01 | 23501 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/05/01 | 233 | graphics/circuit_macros/examples/Ccurve.m4
+2020/05/01 | 2337394 | macros/latex/contrib/lwarp/lwarp.dtx
+2020/05/01 | 2324 | graphics/circuit_macros/examples/svg/cscSVG.m4
+2020/05/01 | 23248 | language/japanese/jlreq/jlreq-helpers.sty
+2020/05/01 | 2304 | graphics/circuit_macros/examples/Loglog.m4
+2020/05/01 | 2303 | macros/latex/contrib/zhnumber/README.md
+2020/05/01 | 22987 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/05/01 | 2295 | graphics/circuit_macros/examples/csc.m4
+2020/05/01 | 22715 | macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
+2020/05/01 | 2241 | graphics/circuit_macros/examples/svg/LoglogSVG.m4
+2020/05/01 | 222826 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/05/01 | 221 | graphics/circuit_macros/examples/rotate.tex
+2020/05/01 | 219 | graphics/circuit_macros/examples/tst1.tex
+2020/05/01 | 2198 | graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex
+2020/05/01 | 2190540 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/05/01 | 21835 | macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
+2020/05/01 | 2180 | graphics/circuit_macros/examples/svg/CctTableSVG.m4
+2020/05/01 | 217 | graphics/circuit_macros/doc/stringdims.m4
+2020/05/01 | 2179 | graphics/circuit_macros/examples/Conn.m4
+2020/05/01 | 2179 | graphics/circuit_macros/doc/ConnMan.m4
+2020/05/01 | 2177 | graphics/circuit_macros/examples/svg/ex21SVG.m4
+2020/05/01 | 2171 | graphics/circuit_macros/examples/svg/I2LSVG.m4
+2020/05/01 | 2170 | graphics/circuit_macros/examples/ex06.m4
+2020/05/01 | 2165 | graphics/circuit_macros/examples/Sources.m4
+2020/05/01 | 2165 | graphics/circuit_macros/doc/SourcesMan.m4
+2020/05/01 | 213876 | macros/latex/contrib/xpinyin.zip
+2020/05/01 | 21384 | macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
+2020/05/01 | 21384 | graphics/circuit_macros/examples/svg/Incl.jpg
+2020/05/01 | 21230 | graphics/circuit_macros/examples/xfig/xfiglib.fig
+2020/05/01 | 2119 | graphics/circuit_macros/examples/Logic.m4
+2020/05/01 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
+2020/05/01 | 2111 | graphics/circuit_macros/examples/svg/ConnSVG.m4
+2020/05/01 | 2099 | graphics/circuit_macros/pstricks.m4
+2020/05/01 | 2097 | graphics/circuit_macros/examples/Ttree.m4
+2020/05/01 | 2085 | graphics/circuit_macros/pgf.m4
+2020/05/01 | 20748 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/05/01 | 207176 | macros/latex/contrib/xpinyin/xpinyin.pdf
+2020/05/01 | 207034 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/05/01 | 2069 | graphics/circuit_macros/examples/svg/relaycoilSVG.m4
+2020/05/01 | 2068 | graphics/circuit_macros/examples/I2L.m4
+2020/05/01 | 2051 | graphics/circuit_macros/examples/svg/JackSVG.m4
+2020/05/01 | 20418 | graphics/circuit_macros/doc/thyristor.tex
+2020/05/01 | 203048 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/05/01 | 2018 | graphics/circuit_macros/examples/svg/ex06SVG.m4
+2020/05/01 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
+2020/05/01 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
+2020/05/01 | 2000 | graphics/circuit_macros/examples/ex21.m4
+2020/05/01 | 1995 | graphics/circuit_macros/doc/Corners.m4
+2020/05/01 | 19908 | systems/texlive/tlnet/archive/dynkin-diagrams.r54948.tar.xz
+2020/05/01 | 19892 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/05/01 | 198859 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/05/01 | 198799 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/05/01 | 1985 | graphics/circuit_macros/examples/svg/XORSVG.m4
+2020/05/01 | 1983877 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/05/01 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
+2020/05/01 | 1966 | graphics/circuit_macros/examples/svg/DriveSVG.m4
+2020/05/01 | 1966 | graphics/circuit_macros/examples/Drive.m4
+2020/05/01 | 19636 | macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
+2020/05/01 | 1962 | graphics/circuit_macros/examples/Autologix.m4
+2020/05/01 | 1959 | graphics/circuit_macros/examples/debug2.m4
+2020/05/01 | 1955 | graphics/circuit_macros/examples/svg/ABlogixSVG.m4
+2020/05/01 | 1953 | graphics/circuit_macros/examples/svg/MotorControlSVG.m4
+2020/05/01 | 1953 | graphics/circuit_macros/doc/Buffer.m4
+2020/05/01 | 194977 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/05/01 | 1940 | graphics/circuit_macros/doc/AmpTable.tex
+2020/05/01 | 19386083 | systems/texlive/tlnet/install-tl-windows.exe
+2020/05/01 | 1937 | macros/xetex/latex/xepersian-hm/xepersian-hm.ins
+2020/05/01 | 193700 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/05/01 | 1931 | graphics/circuit_macros/examples/svg/LogicSVG.m4
+2020/05/01 | 1928867 | install/macros/xetex/latex/xecjk.tds.zip
+2020/05/01 | 19250 | graphics/circuit_macros/dpictools.pic
+2020/05/01 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
+2020/05/01 | 1921 | graphics/circuit_macros/examples/relaycoil.m4
+2020/05/01 | 1921 | graphics/circuit_macros/doc/relaycoilMan.m4
+2020/05/01 | 19176 | graphics/circuit_macros/Licence.txt
+2020/05/01 | 19142 | graphics/circuit_macros/doc/Switches.tex
+2020/05/01 | 1907 | graphics/circuit_macros/examples/svg/SourcesSVG.m4
+2020/05/01 | 1906 | graphics/circuit_macros/examples/SPM.m4
+2020/05/01 | 19040 | macros/latex/contrib/hep-paper/license.md
+2020/05/01 | 1893 | graphics/circuit_macros/examples/svg/ex16SVG.m4
+2020/05/01 | 1891 | graphics/circuit_macros/examples/svg/ex04SVG.m4
+2020/05/01 | 1882 | graphics/circuit_macros/examples/svg/CrullerSVG.m4
+2020/05/01 | 1879 | graphics/circuit_macros/examples/Cruller.m4
+2020/05/01 | 186881 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/05/01 | 1865 | graphics/circuit_macros/examples/ex16.m4
+2020/05/01 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
+2020/05/01 | 1857 | graphics/circuit_macros/doc/Composite.m4
+2020/05/01 | 1852 | graphics/circuit_macros/examples/Orbits.m4
+2020/05/01 | 184653 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/05/01 | 184184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/05/01 | 1837 | graphics/circuit_macros/examples/svg/SchottkySVG.m4
+2020/05/01 | 1828 | macros/latex/contrib/xpinyin/README.md
+2020/05/01 | 182845 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/05/01 | 1823 | graphics/circuit_macros/examples/XOR.m4
+2020/05/01 | 1812 | graphics/circuit_macros/examples/svg/BipSVG.m4
+2020/05/01 | 1807 | graphics/circuit_macros/examples/svg/ex05SVG.m4
+2020/05/01 | 1802 | graphics/circuit_macros/examples/Pconn.m4
+2020/05/01 | 1802 | graphics/circuit_macros/doc/PconnMan.m4
+2020/05/01 | 17826 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/05/01 | 1778 | graphics/circuit_macros/examples/Schottky.m4
+2020/05/01 | 1776 | graphics/circuit_macros/examples/svg/PconnSVG.m4
+2020/05/01 | 177698 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/05/01 | 17736 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/05/01 | 1766 | graphics/circuit_macros/examples/examples.tex
+2020/05/01 | 1737 | graphics/circuit_macros/examples/svg/ContactsSVG.m4
+2020/05/01 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
+2020/05/01 | 17076 | graphics/circuit_macros/examples/files.tex
+2020/05/01 | 1699 | graphics/circuit_macros/examples/svg/ex10SVG.m4
+2020/05/01 | 1698894 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/05/01 | 169322 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/05/01 | 167945 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/05/01 | 167862 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/05/01 | 1675 | graphics/circuit_macros/examples/svg/TTLnandSVG.m4
+2020/05/01 | 1668 | graphics/circuit_macros/examples/IC10107.m4
+2020/05/01 | 165 | graphics/circuit_macros/doc/tranbody.m4
+2020/05/01 | 1654 | graphics/circuit_macros/examples/ex04.m4
+2020/05/01 | 164810 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/05/01 | 16420 | graphics/circuit_macros/doc/fet.tex
+2020/05/01 | 1640 | graphics/circuit_macros/mpost.m4
+2020/05/01 | 1639 | graphics/circuit_macros/Makefile
+2020/05/01 | 16373037 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/05/01 | 16274 | macros/latex/contrib/hep-paper/bibliography.bib
+2020/05/01 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
+2020/05/01 | 1623 | macros/latex/contrib/lwarp/README.txt
+2020/05/01 | 1619 | graphics/circuit_macros/examples/Bip.m4
+2020/05/01 | 1619 | graphics/circuit_macros/doc/BipMan.m4
+2020/05/01 | 161931 | graphics/circuit_macros/libcct.m4
+2020/05/01 | 161604 | systems/texlive/tlnet/archive/texlive-docindex.doc.r54943.tar.xz
+2020/05/01 | 16140 | graphics/circuit_macros/README
+2020/05/01 | 1612 | graphics/circuit_macros/examples/svg/TimerSVG.m4
+2020/05/01 | 1611875 | macros/xetex/latex/xecjk.zip
+2020/05/01 | 16116 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/05/01 | 1608 | graphics/circuit_macros/examples/ex05.m4
+2020/05/01 | 160737 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/05/01 | 15955 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/05/01 | 1585 | graphics/circuit_macros/examples/Contacts.m4
+2020/05/01 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
+2020/05/01 | 1575 | graphics/circuit_macros/doc/mplex.m4
+2020/05/01 | 1559 | graphics/circuit_macros/examples/svg/XformSVG.m4
+2020/05/01 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
+2020/05/01 | 1555225 | install/language/chinese/ctex.tds.zip
+2020/05/01 | 1546 | graphics/circuit_macros/examples/Timer.m4
+2020/05/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/05/01 | 15388 | graphics/circuit_macros/doc/Sources.tex
+2020/05/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/05/01 | 1529 | graphics/circuit_macros/examples/mf/Makefile
+2020/05/01 | 1526 | graphics/circuit_macros/examples/Xform.m4
+2020/05/01 | 1526 | graphics/circuit_macros/doc/XformMan.m4
+2020/05/01 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
+2020/05/01 | 152024 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/05/01 | 15033 | graphics/circuit_macros/doc/Pconn.tex
+2020/05/01 | 150030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/05/01 | 1492 | graphics/circuit_macros/examples/ex10.m4
+2020/05/01 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
+2020/05/01 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
+2020/05/01 | 1484 | macros/latex/contrib/hep-paper/hep-paper.ins
+2020/05/01 | 148344 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/05/01 | 147403 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/05/01 | 1467 | graphics/circuit_macros/examples/svg/MultiplexerSVG.m4
+2020/05/01 | 1467 | graphics/circuit_macros/examples/Diodes.m4
+2020/05/01 | 1467 | graphics/circuit_macros/doc/DiodesMan.m4
+2020/05/01 | 1464 | graphics/circuit_macros/doc/Taps.m4
+2020/05/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/05/01 | 1458 | graphics/circuit_macros/examples/header.tex
+2020/05/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/05/01 | 144 | graphics/circuit_macros/doc/Thermal.m4
+2020/05/01 | 1446 | graphics/circuit_macros/examples/svg/ShiftRSVG.m4
+2020/05/01 | 1444 | graphics/circuit_macros/examples/svg/ThreeSVG.m4
+2020/05/01 | 1443 | graphics/circuit_macros/examples/Resolver.m4
+2020/05/01 | 14346 | graphics/circuit_macros/darrow.m4
+2020/05/01 | 1433 | graphics/circuit_macros/examples/Opamp.m4
+2020/05/01 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
+2020/05/01 | 1431 | graphics/circuit_macros/examples/svg/RelaySVG.m4
+2020/05/01 | 1429 | graphics/circuit_macros/examples/svg/DiodesSVG.m4
+2020/05/01 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
+2020/05/01 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
+2020/05/01 | 14036 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/05/01 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
+2020/05/01 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
+2020/05/01 | 1393302 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/05/01 | 1387 | graphics/circuit_macros/examples/svg/CrossbarSVG.m4
+2020/05/01 | 13833 | graphics/circuit_macros/doc/Contact.tex
+2020/05/01 | 137 | graphics/circuit_macros/doc/oaxbody.m4
+2020/05/01 | 1375 | graphics/circuit_macros/examples/person.m4
+2020/05/01 | 1373 | graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4
+2020/05/01 | 13734 | graphics/circuit_macros/examples/svg/examplesSVG.htmx
+2020/05/01 | 137098 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/05/01 | 136113 | graphics/circuit_macros/doc/body.tex
+2020/05/01 | 1358 | graphics/circuit_macros/examples/Crossbar.m4
+2020/05/01 | 1331 | graphics/circuit_macros/examples/svg/SierpinskiSVG.m4
+2020/05/01 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
+2020/05/01 | 133160 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/05/01 | 1329 | graphics/circuit_macros/doc/currents.m4
+2020/05/01 | 13264 | graphics/circuit_macros/examples/Tubediags.m4
+2020/05/01 | 131 | graphics/circuit_macros/doc/Axes.m4
+2020/05/01 | 130 | graphics/circuit_macros/doc/bitrbody.m4
+2020/05/01 | 130557 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/05/01 | 13052 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/05/01 | 130374 | macros/latex/contrib/xcjk2uni.zip
+2020/05/01 | 13026 | graphics/circuit_macros/examples/Heathkit.m4
+2020/05/01 | 12 | graphics/circuit_macros/doc/Version.tex
+2020/05/01 | 1291 | graphics/circuit_macros/doc/ConfigC.m4
+2020/05/01 | 1287 | graphics/circuit_macros/examples/Three.m4
+2020/05/01 | 1285894 | graphics/circuit_macros/doc/Circuit_macros.pdf
+2020/05/01 | 1280364 | macros/xetex/latex/xecjk/xeCJK.pdf
+2020/05/01 | 12711 | graphics/circuit_macros/examples/svg/HeathkitSVG.m4
+2020/05/01 | 1265 | graphics/circuit_macros/examples/svg/HeadersSVG.m4
+2020/05/01 | 126153 | macros/latex/contrib/xcjk2uni/xCJK2uni.pdf
+2020/05/01 | 1259 | graphics/circuit_macros/examples/Relay.m4
+2020/05/01 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
+2020/05/01 | 1257 | graphics/circuit_macros/doc/ConfigB.m4
+2020/05/01 | 1255977 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/05/01 | 1255692 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/05/01 | 12478 | graphics/circuit_macros/examples/svg/TubediagsSVG.m4
+2020/05/01 | 1238 | graphics/circuit_macros/examples/svg/NportSVG.m4
+2020/05/01 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
+2020/05/01 | 12244 | graphics/circuit_macros/CHANGES
+2020/05/01 | 1211 | graphics/circuit_macros/examples/Antennas.m4
+2020/05/01 | 1211 | graphics/circuit_macros/doc/AntennasMan.m4
+2020/05/01 | 12068 | systems/texlive/tlnet/archive/jslectureplanner.r54951.tar.xz
+2020/05/01 | 12050 | graphics/circuit_macros/doc/Diodes.tex
+2020/05/01 | 1204 | graphics/circuit_macros/examples/svg/ex17SVG.m4
+2020/05/01 | 12006 | graphics/circuit_macros/doc/Jack.tex
+2020/05/01 | 11 | graphics/circuit_macros/doc/test.tex
+2020/05/01 | 1189868 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/05/01 | 1189752 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/05/01 | 1185 | graphics/circuit_macros/boxdims.sty
+2020/05/01 | 1180232 | systems/texlive/tlnet/archive/jslectureplanner.doc.r54951.tar.xz
+2020/05/01 | 1174 | graphics/circuit_macros/examples/PPA.m4
+2020/05/01 | 1172690 | language/chinese/ctex.zip
+2020/05/01 | 116425 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/05/01 | 116315 | language/japanese/jlreq/jlreq.pdf
+2020/05/01 | 115870 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/05/01 | 1157 | graphics/circuit_macros/examples/svg/NPDTSVG.m4
+2020/05/01 | 1151 | graphics/circuit_macros/doc/Darlington.m4
+2020/05/01 | 1132 | graphics/circuit_macros/examples/Headers.m4
+2020/05/01 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
+2020/05/01 | 1128 | graphics/circuit_macros/examples/NPDT.m4
+2020/05/01 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
+2020/05/01 | 11273 | graphics/circuit_macros/lib3D.m4
+2020/05/01 | 1126 | graphics/circuit_macros/examples/ex17.m4
+2020/05/01 | 1123775 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/05/01 | 1120 | graphics/circuit_macros/doc/ConfigA.m4
+2020/05/01 | 1114 | graphics/circuit_macros/mfpic.m4
+2020/05/01 | 111079 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/05/01 | 1109313 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/05/01 | 1108833 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/05/01 | 110184 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/05/01 | 1100 | graphics/circuit_macros/examples/ex02.m4
+2020/05/01 | 1097730 | language/chinese/ctex/ctex.pdf
+2020/05/01 | 1093 | graphics/circuit_macros/examples/svg/ex02SVG.m4
+2020/05/01 | 1090 | graphics/circuit_macros/examples/svg/AntennasSVG.m4
+2020/05/01 | 108886 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/05/01 | 1080 | graphics/circuit_macros/examples/svg/BtreeSVG.m4
+2020/05/01 | 1076 | graphics/circuit_macros/examples/mf/mftest
+2020/05/01 | 1075 | graphics/circuit_macros/examples/bistable.m4
+2020/05/01 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
+2020/05/01 | 1070 | graphics/circuit_macros/examples/svg/EmarrowsSVG.m4
+2020/05/01 | 1065 | graphics/circuit_macros/examples/svg/ex18SVG.m4
+2020/05/01 | 10589 | graphics/circuit_macros/examples/svg/expSVG.m4
+2020/05/01 | 1055 | graphics/circuit_macros/examples/svg/TgateSVG.m4
+2020/05/01 | 1050 | graphics/circuit_macros/examples/svg/SVGconfig.m4
+2020/05/01 | 1048377 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/05/01 | 10445 | graphics/circuit_macros/examples/svg/paletteSVG.m4
+2020/05/01 | 1042546 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/05/01 | 1040 | graphics/circuit_macros/examples/Nport.m4
+2020/05/01 | 1040 | graphics/circuit_macros/doc/NportMan.m4
+2020/05/01 | 10401 | graphics/circuit_macros/doc/Variable.tex
+2020/05/01 | 1039 | graphics/circuit_macros/examples/chaos.m4
+2020/05/01 | 1034 | graphics/circuit_macros/examples/svg/OpampSVG.m4
+2020/05/01 | 1029 | graphics/circuit_macros/xfig.m4
+2020/05/01 | 1024 | graphics/circuit_macros/examples/Btree.m4
+2020/05/01 | 102472 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/05/01 | 1022 | graphics/circuit_macros/examples/Tgate.m4
+2020/05/01 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
+2020/05/01 | 1019 | graphics/circuit_macros/gpic.m4
+2020/05/01 | 10164 | graphics/circuit_macros/doc/Audio.tex
+2020/05/01 | 1014 | macros/latex/contrib/hep-paper/README.md
+2020/05/01 | 100615 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/05/01 | 1003 | graphics/circuit_macros/examples/ex15.m4
+2020/05/01 | 10001 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
2020/04/30 | 9804 | macros/latex/contrib/jslectureplanner/README
-2020/04/30 | 96299 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/04/30 | 95188 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/04/30 | 94361 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/04/30 | 94254 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2020/04/30 | 941993 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/04/30 | 93534 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/04/30 | 932671 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/04/30 | 92926 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/04/30 | 92744 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/04/30 | 92021 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/04/30 | 91291 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/04/30 | 87333 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/04/30 | 87138 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/04/30 | 86682 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
2020/04/30 | 85488 | macros/latex/contrib/jslectureplanner/examples/German/lecturebib.pdf
2020/04/30 | 85104 | macros/latex/contrib/jslectureplanner/examples/English/lecturebib-english.pdf
2020/04/30 | 84992 | macros/latex/contrib/jslectureplanner/examples/German/lecturepresentation.pdf
-2020/04/30 | 8472 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/04/30 | 84673 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2020/04/30 | 84613 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2020/04/30 | 84606 | macros/latex/contrib/jslectureplanner/examples/English/lecturepresentation-english.pdf
2020/04/30 | 832865 | graphics/pgf/contrib/dynkin-diagrams.zip
-2020/04/30 | 81389 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/04/30 | 80601316 | systems/win32/w32tex/pgfcontrib.tar.xz
2020/04/30 | 802985 | graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
2020/04/30 | 7900 | systems/texlive/tlnet/archive/hu-berlin-bundle.r54938.tar.xz
-2020/04/30 | 77985 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/04/30 | 77884 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/04/30 | 77447 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/04/30 | 7503 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/04/30 | 74686 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/04/30 | 73584 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/04/30 | 72765 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/04/30 | 72537 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/04/30 | 71673 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/04/30 | 70760 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/04/30 | 69793 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/04/30 | 69228 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/04/30 | 68850 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2020/04/30 | 68649 | macros/latex/contrib/jslectureplanner/jslectureplanner.tex
-2020/04/30 | 67253 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/04/30 | 669806 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2020/04/30 | 6540 | systems/texlive/tlnet/archive/tkz-tab.r54940.tar.xz
-2020/04/30 | 652 | systems/win32/miktex/tm/packages/next/pr.ini
-2020/04/30 | 65200 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/04/30 | 64459 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/04/30 | 63315 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/04/30 | 63291 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/04/30 | 63267 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/04/30 | 63007 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/04/30 | 62800 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/04/30 | 61672 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/04/30 | 638356 | systems/win32/w32tex/ChangeLog
2020/04/30 | 616672 | systems/texlive/tlnet/archive/pgfornament.r54941.tar.xz
-2020/04/30 | 61637 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/04/30 | 615708 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/04/30 | 612250 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/04/30 | 61217 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2020/04/30 | 59940 | graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
-2020/04/30 | 59494 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
2020/04/30 | 59148 | macros/latex/contrib/jslectureplanner/examples/German/lecturehandout.pdf
-2020/04/30 | 58841 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2020/04/30 | 57923 | macros/latex/contrib/jslectureplanner/examples/English/lecturehandout-english.pdf
2020/04/30 | 57899 | macros/latex/contrib/jslectureplanner/examples/German/lectureprogram.pdf
-2020/04/30 | 57804 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/04/30 | 576470 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/04/30 | 575629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/04/30 | 57245 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
2020/04/30 | 56905 | macros/latex/contrib/jslectureplanner/examples/English/lectureprogram-english.pdf
-2020/04/30 | 56646 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/04/30 | 560788 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/04/30 | 55658 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/04/30 | 5502699 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/04/30 | 54842 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/04/30 | 545004 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/04/30 | 53987 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/04/30 | 539769 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2020/04/30 | 536456 | systems/texlive/tlnet/archive/xlop.doc.r54936.tar.xz
-2020/04/30 | 53375 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-2.9.tar.lzma
-2020/04/30 | 531714 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/04/30 | 531674 | systems/win32/miktex/tm/packages/files.csv.lzma
-2020/04/30 | 52143 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/04/30 | 52109 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/04/30 | 50950 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/04/30 | 50896 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/04/30 | 50526 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/04/30 | 498652 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/04/30 | 49778 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/04/30 | 49329 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/04/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/04/30 | 49774400 | systems/win32/w32tex/xetex-w32.tar.xz
2020/04/30 | 47982 | macros/latex/contrib/jslectureplanner/jslectureplanner.sty
-2020/04/30 | 47970 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2020/04/30 | 461129 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
-2020/04/30 | 45903 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/04/30 | 45857 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/04/30 | 457890 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2020/04/30 | 457635 | macros/latex/contrib/jslectureplanner/jslectureplanner.pdf
-2020/04/30 | 45664 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/04/30 | 45602 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/04/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/04/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2020/04/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/04/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2020/04/30 | 45006 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/04/30 | 43438 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/04/30 | 42922 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/04/30 | 42639 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/04/30 | 42173 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/04/30 | 41928 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/04/30 | 411 | systems/win32/miktex/tm/packages/pr.ini
-2020/04/30 | 41145 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
2020/04/30 | 40832 | systems/texlive/tlnet/archive/acro.r54937.tar.xz
-2020/04/30 | 40748 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/04/30 | 391545 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/04/30 | 38800 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/04/30 | 387640 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-x64-2.9.tar.lzma
-2020/04/30 | 36614 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/04/30 | 36441 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2020/04/30 | 364176 | systems/texlive/tlnet/archive/tkz-tab.doc.r54940.tar.xz
2020/04/30 | 3584 | systems/texlive/tlnet/archive/expkv-cs.r54939.tar.xz
-2020/04/30 | 356404 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/04/30 | 354654 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-2.9.tar.lzma
-2020/04/30 | 34893 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/04/30 | 34818 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2020/04/30 | 34772 | macros/latex/contrib/jslectureplanner/examples/German/lecturescript.pdf
2020/04/30 | 34575 | macros/latex/contrib/jslectureplanner/examples/English/lecturescript-english.pdf
+2020/04/30 | 34536388 | systems/win32/w32tex/ltxpkgs.tar.xz
2020/04/30 | 341 | graphics/pgf/contrib/dynkin-diagrams/README
-2020/04/30 | 33432 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/04/30 | 328718 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/04/30 | 32361 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2020/04/30 | 32345 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/04/30 | 321984 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/04/30 | 31352 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/04/30 | 31156 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/04/30 | 310426 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/04/30 | 30988 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
2020/04/30 | 308552 | systems/texlive/tlnet/archive/expkv-cs.doc.r54939.tar.xz
-2020/04/30 | 30777 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/04/30 | 30231 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2020/04/30 | 302214 | macros/latex/contrib/biblatex-contrib/biblatex-software.zip
-2020/04/30 | 29735 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/04/30 | 29333 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/04/30 | 29318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/04/30 | 29143 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/04/30 | 28778 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/04/30 | 28563 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2020/04/30 | 28509 | macros/latex/contrib/jslectureplanner/examples/German/membertable-filled.pdf
2020/04/30 | 28450 | macros/latex/contrib/jslectureplanner/examples/English/membertable-filled-english.pdf
2020/04/30 | 28442 | macros/latex/contrib/jslectureplanner/examples/English/membertable-blank-english.pdf
2020/04/30 | 28387 | macros/latex/contrib/jslectureplanner/examples/German/membertable-blank.pdf
-2020/04/30 | 281656 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/04/30 | 281389 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
2020/04/30 | 27974 | macros/latex/contrib/jslectureplanner/examples/English/presencetable-blank-english.pdf
2020/04/30 | 27896 | macros/latex/contrib/jslectureplanner/examples/German/presencetable-blank.pdf
-2020/04/30 | 27840 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/04/30 | 277094 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/04/30 | 272880 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/04/30 | 26935 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
2020/04/30 | 26864 | macros/latex/contrib/jslectureplanner/examples/German/presentation-list.pdf
-2020/04/30 | 2684810 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/04/30 | 26809 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2020/04/30 | 26784 | macros/latex/contrib/jslectureplanner/examples/German/presencetable-filled.pdf
2020/04/30 | 26752 | macros/latex/contrib/jslectureplanner/examples/English/presencetable-filled-english.pdf
-2020/04/30 | 26648 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/04/30 | 26515 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
2020/04/30 | 25688 | macros/latex/contrib/jslectureplanner/examples/English/presentation-list-english.pdf
-2020/04/30 | 2555295 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2020/04/30 | 25423 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/04/30 | 247854 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/04/30 | 247465 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/04/30 | 246463 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2020/04/30 | 2438572 | systems/texlive/tlnet/archive/pgfornament.doc.r54941.tar.xz
-2020/04/30 | 243094 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/04/30 | 24269346 | systems/texlive/tlnet/install-tl.zip
2020/04/30 | 238008 | systems/texlive/tlnet/archive/hu-berlin-bundle.doc.r54938.tar.xz
2020/04/30 | 23626 | macros/latex/contrib/jslectureplanner/jsmembertable.sty
-2020/04/30 | 23502 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/04/30 | 22988 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/04/30 | 222828 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/04/30 | 2194152 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2020/04/30 | 219376 | systems/texlive/tlnet/archive/texlive-scripts.doc.r54932.tar.xz
-2020/04/30 | 20748 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/04/30 | 207033 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
2020/04/30 | 20642 | macros/context/contrib/context-vim.zip
-2020/04/30 | 203046 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/04/30 | 19891 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/04/30 | 198837 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/04/30 | 198820 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/04/30 | 1983879 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/04/30 | 194976 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/04/30 | 19386051 | systems/texlive/tlnet/install-tl-windows.exe
-2020/04/30 | 193702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/04/30 | 186882 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/04/30 | 184652 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/04/30 | 184184 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/04/30 | 182844 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/04/30 | 17826 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/04/30 | 177698 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/04/30 | 17736 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/04/30 | 1698896 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2020/04/30 | 169320 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2020/04/30 | 16800 | systems/texlive/tlnet/archive/hu-berlin-bundle.source.r54938.tar.xz
-2020/04/30 | 167945 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/04/30 | 167862 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/04/30 | 164810 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/04/30 | 16372997 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/04/30 | 1663428 | systems/win32/w32tex/makeindex-w32.tar.xz
2020/04/30 | 16208 | systems/texlive/tlnet/archive/xlop.r54936.tar.xz
-2020/04/30 | 16115 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/04/30 | 160739 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/04/30 | 15955 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/04/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/04/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/04/30 | 152025 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/04/30 | 150030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2020/04/30 | 149412 | graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty
-2020/04/30 | 148344 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/04/30 | 147402 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/04/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/04/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2020/04/30 | 14292 | systems/texlive/tlnet/archive/expkv-cs.source.r54939.tar.xz
2020/04/30 | 1426922 | macros/latex/contrib/jslectureplanner.zip
2020/04/30 | 141264 | systems/texlive/tlnet/archive/texlive-msg-translations.r54933.tar.xz
-2020/04/30 | 14039 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2020/04/30 | 1393302 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2020/04/30 | 137100 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2020/04/30 | 133161 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/04/30 | 139831708 | systems/win32/w32tex/context.tar.xz
2020/04/30 | 132412 | systems/texlive/tlnet/archive/texlive-scripts.r54932.tar.xz
-2020/04/30 | 130557 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/04/30 | 13053 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/04/30 | 1255976 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/04/30 | 1255691 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/04/30 | 1189787 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/04/30 | 1189754 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/04/30 | 116426 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/04/30 | 115870 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/04/30 | 1123776 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/04/30 | 1140760 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
2020/04/30 | 1123288 | systems/texlive/tlnet/archive/acro.doc.r54937.tar.xz
-2020/04/30 | 111080 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/04/30 | 1108925 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2020/04/30 | 1108566 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/04/30 | 110185 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/04/30 | 108885 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/04/30 | 1048379 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/04/30 | 1042544 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/04/30 | 102475 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/04/30 | 100614 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/04/30 | 10946380 | systems/win32/w32tex/win64/xetex-w64.tar.xz
2020/04/29 | 99933 | systems/texlive/tlnet/tlpkg/translations/fr.po
+2020/04/29 | 99151804 | systems/win32/w32tex/web2c-lib.tar.xz
2020/04/29 | 983 | macros/latex/contrib/acro/examples/acro.example.issue-119.tex
2020/04/29 | 96351 | systems/texlive/tlnet/tlpkg/translations/vi.po
2020/04/29 | 95845 | macros/latex/contrib/acro/acro-manual.tex
@@ -254,6 +797,7 @@
2020/04/29 | 92 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Release
2020/04/29 | 911 | systems/win32/miktex/setup/rpm/fedora/28/repodata/ea186766bcba0ddc6a28b5f9a81c6724f219e952e92e13653d4e527f689fbda7-other.sqlite.bz2
2020/04/29 | 90 | macros/generic/xlop/tex/xlop.sty
+2020/04/29 | 902804 | systems/win32/w32tex/cweb-w32.tar.xz
2020/04/29 | 89 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Release
2020/04/29 | 89 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Release
2020/04/29 | 89 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Release
@@ -268,6 +812,8 @@
2020/04/29 | 86136 | systems/texlive/tlnet/tlpkg/translations/es.po
2020/04/29 | 8550 | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkii
2020/04/29 | 851941 | macros/latex/contrib/acro/acro-manual.pdf
+2020/04/29 | 8478684 | systems/win32/w32tex/uptex-w32.tar.xz
+2020/04/29 | 82748 | systems/win32/w32tex/win64/cweb-w64.tar.xz
2020/04/29 | 8175 | macros/latex/contrib/acro/examples/acro.example.issue-119.pdf
2020/04/29 | 8034 | macros/latex/contrib/biblatex-contrib/biblatex-software/software.bbx
2020/04/29 | 7907 | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-highlight.mkiv
@@ -282,7 +828,9 @@
2020/04/29 | 706 | macros/latex/contrib/acro/examples/acro.example.issue-111.tex
2020/04/29 | 65310 | macros/latex/contrib/acro/examples/acro.example.units.pdf
2020/04/29 | 644544 | systems/texlive/tlnet/archive/babel.source.r54930.tar.xz
+2020/04/29 | 6444432 | systems/win32/w32tex/ptex-ng-w32.tar.xz
2020/04/29 | 63360 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
+2020/04/29 | 6278504 | systems/win32/w32tex/win64/pdftex-w64.tar.xz
2020/04/29 | 6185 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/29 | 608836 | macros/generic/xlop.zip
2020/04/29 | 5881 | macros/latex/contrib/tkz/tkz-tab/doc/latex/TKZdoc-tab-main.tex
@@ -292,6 +840,7 @@
2020/04/29 | 5577 | macros/context/contrib/context-vim/tex/context/third/vim/2context.vim
2020/04/29 | 53160 | macros/generic/expkv-def/expkv-def.dtx
2020/04/29 | 506904 | systems/texlive/tlnet/archive/translations.doc.r54929.tar.xz
+2020/04/29 | 4920304 | systems/win32/w32tex/aleph-w32.tar.xz
2020/04/29 | 488 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/repomd.xml.asc
2020/04/29 | 488 | systems/win32/miktex/setup/rpm/fedora/30/repodata/repomd.xml.asc
2020/04/29 | 488 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml.asc
@@ -303,16 +852,22 @@
2020/04/29 | 4697184 | systems/texlive/tlnet/archive/tcolorbox.doc.r54928.tar.xz
2020/04/29 | 4467 | macros/latex/contrib/biblatex-contrib/biblatex-software/manual.bib
2020/04/29 | 440 | systems/texlive/tlnet/archive/tlshell.doc.r54921.tar.xz
+2020/04/29 | 44047852 | systems/win32/w32tex/web2c-w32.tar.xz
2020/04/29 | 44004 | systems/texlive/tlnet/archive/fontools.r54926.tar.xz
+2020/04/29 | 41437540 | systems/win32/w32tex/latex-dev.tar.xz
2020/04/29 | 4071 | macros/context/contrib/context-vim/tex/context/third/vim/t-syntax-groups.tex
2020/04/29 | 406 | systems/win32/miktex/setup/rpm/fedora/28/repodata/8d2495520d907b62581db4ee1d81efc9e55ff387c66e433376bde385724d0eea-other.xml.gz
2020/04/29 | 404 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/fcde7e11d2dfc8233ba28ce3a7301f53cc6bdee7cf1eeceb3759384652d60b2e-other.xml.gz
2020/04/29 | 394072 | macros/generic/xlop/doc/xlop-doc-fr.pdf
+2020/04/29 | 3867708 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
+2020/04/29 | 3863904 | systems/win32/w32tex/luajittex-w32.tar.xz
+2020/04/29 | 3855344 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
2020/04/29 | 381096 | macros/latex/contrib/tkz/tkz-tab.zip
2020/04/29 | 373942 | macros/generic/xlop/doc/xlop-doc.pdf
2020/04/29 | 3502 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/280a3e5276d80e6481dc48b2fc02ab4a5309b1b9137ff1c16fe0416dffb9b5b5-filelists.sqlite.bz2
2020/04/29 | 346429 | macros/latex/contrib/tkz/tkz-tab/doc/TKZdoc-tab.pdf
2020/04/29 | 3440 | macros/latex/contrib/biblatex-contrib/biblatex-software/biblio.bib
+2020/04/29 | 3387816 | systems/win32/w32tex/win64/web2c-w64.tar.xz
2020/04/29 | 33721 | macros/latex/contrib/acro/examples/acro.example.texsx-507726.pdf
2020/04/29 | 329 | macros/latex/contrib/acro/examples/acro.example.issue-109.tex
2020/04/29 | 326277 | install/macros/generic/expkv-cs.tds.zip
@@ -351,8 +906,10 @@
2020/04/29 | 22919244 | systems/win32/miktex/setup/rpm/fedora/28/miktex-2.9.7400-1.fc28.x86_64.rpm
2020/04/29 | 22360 | macros/context/contrib/context-vim/doc/context/third/vim/vim.txt
2020/04/29 | 21224 | macros/latex/contrib/acro/examples/acro.example.acflike.pdf
+2020/04/29 | 2120000 | systems/win32/w32tex/win64/context-w64.tar.xz
2020/04/29 | 21151664 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-2.9.7400-1.x86_64.rpm
2020/04/29 | 20811036 | systems/win32/miktex/setup/rpm/fedora/30/miktex-2.9.7400-1.fc30.x86_64.rpm
+2020/04/29 | 20690360 | systems/win32/w32tex/pdftex-w32.tar.xz
2020/04/29 | 2050 | macros/latex/contrib/acro/examples/acro.example.units.tex
2020/04/29 | 2038 | systems/win32/miktex/setup/deb/dists/stretch/InRelease
2020/04/29 | 2034 | systems/win32/miktex/setup/deb/dists/xenial/InRelease
@@ -360,7 +917,11 @@
2020/04/29 | 2034 | systems/win32/miktex/setup/deb/dists/bionic/InRelease
2020/04/29 | 1917 | macros/generic/xlop/README
2020/04/29 | 1904 | macros/latex/contrib/acro/README
+2020/04/29 | 1833452 | systems/win32/w32tex/jtex-w32.tar.xz
+2020/04/29 | 18131976 | systems/win32/w32tex/luatex-dev-w32.tar.xz
+2020/04/29 | 18124320 | systems/win32/w32tex/luatex-w32.tar.xz
2020/04/29 | 1795 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/c303e5ca93bd0e6be7c07b97be6d29a57de04beb39a11713f8fc72da5e888070-filelists.xml.gz
+2020/04/29 | 17919508 | systems/win32/w32tex/luatex-exp-w32.tar.xz
2020/04/29 | 169749 | macros/latex/contrib/biblatex-contrib/biblatex-software/software-biblatex.pdf
2020/04/29 | 163824 | systems/texlive/tlnet/archive/babel.r54930.tar.xz
2020/04/29 | 158998 | macros/latex/contrib/acro/acro.sty
@@ -390,6 +951,7 @@
2020/04/29 | 12256 | systems/texlive/tlnet/archive/translations.r54929.tar.xz
2020/04/29 | 120432 | systems/texlive/tlnet/archive/abnt.doc.r54927.tar.xz
2020/04/29 | 11 | macros/context/contrib/context-vim/VERSION
+2020/04/29 | 1174456 | systems/win32/w32tex/extractpdfmark-w32.tar.xz
2020/04/29 | 11638 | systems/win32/miktex/setup/rpm/fedora/30/repodata/06258324fb706bd9ece7eca5e904bbbe4a74cc579ef5fb94b1e139d415c7f09d-primary.sqlite.bz2
2020/04/29 | 11606 | systems/win32/miktex/setup/rpm/fedora/28/repodata/b2adeb7f59747951b8caa932abaabf8d76891c3354865869e0e48bce305bbc61-primary.sqlite.bz2
2020/04/29 | 11533 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/16331f160f05f229eb85d1d446f95ef241f6288d499bb440f96433319fa645b1-primary.sqlite.bz2
@@ -399,9 +961,11 @@
2020/04/29 | 11236 | macros/context/contrib/context-vim/tex/context/third/vim/t-vim.tex
2020/04/29 | 110048 | systems/texlive/tlnet/tlpkg/translations/sr.po
2020/04/29 | 1084 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.bz2
+2020/04/29 | 1079552 | systems/win32/w32tex/win64/extractpdfmark-w64.tar.xz
2020/04/29 | 107439 | macros/generic/xlop/doc/xlop-doc-fr.tex
2020/04/29 | 1069 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Packages.bz2
2020/04/29 | 10567 | macros/latex/contrib/biblatex-contrib/biblatex-software/software-biblatex.tex
+2020/04/29 | 10471004 | systems/win32/w32tex/ptex-w32.tar.xz
2020/04/29 | 1043 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Packages.bz2
2020/04/29 | 1038 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages.bz2
2020/04/29 | 10074 | systems/win32/miktex/setup/rpm/fedora/28/repodata/6da87e174699f0405723275cd0850f21062d5e8715b3f3204f9c9d938a148860-filelists.xml.gz
@@ -409,7 +973,6 @@
2020/04/28 | 996756 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz
2020/04/28 | 9899 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
2020/04/28 | 9792 | systems/texlive/tlnet/archive/quantikz.r54911.tar.xz
-2020/04/28 | 902780 | systems/win32/w32tex/cweb-w32.tar.xz
2020/04/28 | 9020 | macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
2020/04/28 | 9002 | macros/latex/contrib/tcolorbox/tcbexternal.code.tex
2020/04/28 | 8922 | macros/latex/contrib/tcolorbox/tcbraster.code.tex
@@ -418,16 +981,12 @@
2020/04/28 | 85438 | macros/latex/contrib/tcolorbox/tcolorbox.sty
2020/04/28 | 8512 | macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
2020/04/28 | 84989 | macros/latex/contrib/tcolorbox/tcbskins.code.tex
-2020/04/28 | 8490092 | systems/win32/w32tex/uptex-w32.tar.xz
-2020/04/28 | 8468 | systems/texlive/tlnet/archive/context-vim.r54913.tar.xz
2020/04/28 | 838668 | systems/win32/w32tex/dvi2ps-w32.tar.xz
2020/04/28 | 8354 | macros/latex/contrib/tcolorbox/tcolorbox-example.tex
2020/04/28 | 830804 | systems/win32/w32tex/ttf2pt1-w32.tar.xz
-2020/04/28 | 82764 | systems/win32/w32tex/win64/cweb-w64.tar.xz
2020/04/28 | 818536 | systems/win32/w32tex/ttf2pk-w32.tar.xz
2020/04/28 | 8118 | macros/latex/contrib/tcolorbox/tcbhooks.code.tex
2020/04/28 | 810820 | systems/win32/w32tex/win64/aleph-w64.tar.xz
-2020/04/28 | 80601424 | systems/win32/w32tex/pgfcontrib.tar.xz
2020/04/28 | 8032 | fonts/utilities/fontools/share/fontools_lgr.enc
2020/04/28 | 800220 | systems/win32/w32tex/win64/lcdf-typetools-w64.tar.xz
2020/04/28 | 796972 | systems/win32/w32tex/win64/dvipdfm-w64.tar.xz
@@ -437,7 +996,6 @@
2020/04/28 | 76829 | macros/latex/contrib/tcolorbox/goldshade.png
2020/04/28 | 7628 | fonts/utilities/fontools/bin/splitttc
2020/04/28 | 759516 | systems/win32/w32tex/win64/dvipsk-w64.tar.xz
-2020/04/28 | 7576 | systems/texlive/tlnet/archive/context-vim.doc.r54913.tar.xz
2020/04/28 | 755233 | macros/latex/required/babel/base/locale.zip
2020/04/28 | 750088 | systems/win32/w32tex/win64/dvi2ps-w64.tar.xz
2020/04/28 | 7392 | macros/latex/required/babel/base/babel.ins
@@ -452,12 +1010,9 @@
2020/04/28 | 6656 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_snippet.sty
2020/04/28 | 6484 | systems/texlive/tlnet/archive/context-filter.r54912.tar.xz
2020/04/28 | 647028 | macros/latex/required/babel/base/babel.dtx
-2020/04/28 | 6452984 | systems/win32/w32tex/ptex-ng-w32.tar.xz
2020/04/28 | 6424 | macros/latex/contrib/tcolorbox/tcolorbox.doc.beamer.tex
2020/04/28 | 6386 | macros/latex/contrib/tcolorbox/tcolorbox.doc.recording.tex
-2020/04/28 | 636581 | systems/win32/w32tex/ChangeLog
2020/04/28 | 62882 | macros/latex/contrib/tcolorbox/blueshade.png
-2020/04/28 | 6280968 | systems/win32/w32tex/win64/pdftex-w64.tar.xz
2020/04/28 | 62648 | macros/latex/contrib/hu-berlin-bundle/hu-berlin-bundle.dtx
2020/04/28 | 6140897 | macros/latex/contrib/tcolorbox.zip
2020/04/28 | 6129 | macros/latex/contrib/translations/dicts/translations-basic-dictionary-catalan.trsl
@@ -483,8 +1038,6 @@
2020/04/28 | 518456 | systems/texlive/tlnet/archive/scratch3.doc.r54916.tar.xz
2020/04/28 | 517756 | systems/win32/w32tex/psutils-w32.tar.xz
2020/04/28 | 500132 | macros/latex/contrib/translations/translations_en.pdf
-2020/04/28 | 49713320 | systems/win32/w32tex/xetex-w32.tar.xz
-2020/04/28 | 4933316 | systems/win32/w32tex/aleph-w32.tar.xz
2020/04/28 | 48588 | systems/texlive/tlnet/tlpkg/installer/config.guess
2020/04/28 | 483852 | systems/win32/w32tex/dvi2tty-w32.tar.xz
2020/04/28 | 4653112 | systems/win32/w32tex/dvipdfm-w32.tar.xz
@@ -495,16 +1048,11 @@
2020/04/28 | 442583 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
2020/04/28 | 44097 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
2020/04/28 | 439176 | systems/win32/w32tex/mftools.tar.xz
-2020/04/28 | 43894756 | systems/win32/w32tex/web2c-w32.tar.xz
2020/04/28 | 431044 | systems/win32/w32tex/win64/mftools-w64.tar.xz
2020/04/28 | 42907 | macros/latex/contrib/translations/translations.sty
2020/04/28 | 419676 | systems/win32/w32tex/win64/tex4htk-w64.tar.xz
2020/04/28 | 407132 | systems/win32/w32tex/win64/omegaj-w64.tar.xz
-2020/04/28 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r54903.tar.xz
2020/04/28 | 386172 | systems/win32/w32tex/win64/psutils-w64.tar.xz
-2020/04/28 | 3848936 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
-2020/04/28 | 3846764 | systems/win32/w32tex/luajittex-w32.tar.xz
-2020/04/28 | 3837072 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
2020/04/28 | 38317 | macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
2020/04/28 | 376324 | systems/win32/w32tex/win64/mftrace-w64.tar.xz
2020/04/28 | 3760 | macros/latex/contrib/hu-berlin-bundle/makefile
@@ -518,11 +1066,9 @@
2020/04/28 | 3478432 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
2020/04/28 | 3472748 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
2020/04/28 | 3465712 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
-2020/04/28 | 34520780 | systems/win32/w32tex/ltxpkgs.tar.xz
2020/04/28 | 3448 | macros/latex/contrib/tcolorbox/tcolorbox.doc.verbatim.tex
2020/04/28 | 343797 | macros/latex/contrib/hu-berlin-bundle.zip
2020/04/28 | 3412 | macros/latex/contrib/tcolorbox/tcblistings.code.tex
-2020/04/28 | 3388432 | systems/win32/w32tex/win64/web2c-w64.tar.xz
2020/04/28 | 33368 | macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
2020/04/28 | 332620 | systems/texlive/tlnet/archive/simplekv.doc.r54915.tar.xz
2020/04/28 | 32893 | macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
@@ -562,36 +1108,27 @@
2020/04/28 | 22407 | macros/latex/contrib/tcolorbox/Basilica_5.png
2020/04/28 | 21932 | macros/latex/required/babel/base/bbcompat.dtx
2020/04/28 | 21663 | macros/latex/contrib/tcolorbox/crinklepaper.png
-2020/04/28 | 2116608 | systems/win32/w32tex/win64/context-w64.tar.xz
2020/04/28 | 2065340 | systems/texlive/tlnet/archive/chemfig.doc.r54914.tar.xz
-2020/04/28 | 20648312 | systems/win32/w32tex/pdftex-w32.tar.xz
2020/04/28 | 20529 | fonts/utilities/fontools/doc/splitttc.pdf
2020/04/28 | 20274 | macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
2020/04/28 | 20178 | macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
2020/04/28 | 19944 | macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
2020/04/28 | 195706 | fonts/utilities/fontools.zip
2020/04/28 | 1880560 | systems/win32/w32tex/win64/ptex-w64.tar.xz
-2020/04/28 | 1833312 | systems/win32/w32tex/jtex-w32.tar.xz
2020/04/28 | 1806968 | systems/win32/w32tex/win64/uptex-w64.tar.xz
2020/04/28 | 17997 | fonts/utilities/fontools/GPLv2.txt
-2020/04/28 | 17957136 | systems/win32/w32tex/luatex-exp-w32.tar.xz
-2020/04/28 | 17955192 | systems/win32/w32tex/luatex-dev-w32.tar.xz
-2020/04/28 | 17947624 | systems/win32/w32tex/luatex-w32.tar.xz
2020/04/28 | 175350 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
2020/04/28 | 17345708 | systems/win32/w32tex/gregorio-w32.tar.xz
2020/04/28 | 1700101 | macros/latex/required/babel/base.zip
2020/04/28 | 1689700 | systems/win32/w32tex/win64/ptex-ng-w64.tar.xz
2020/04/28 | 164925 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
2020/04/28 | 1645 | macros/latex/contrib/translations/README
-2020/04/28 | 161528 | systems/texlive/tlnet/archive/texlive-docindex.doc.r54903.tar.xz
-2020/04/28 | 1600068 | systems/win32/w32tex/makeindex-w32.tar.xz
2020/04/28 | 15166 | macros/latex/contrib/tcolorbox/pink_marble.png
2020/04/28 | 14903 | macros/latex/contrib/hu-berlin-bundle/img/texografie-logo.pdf
2020/04/28 | 148 | macros/latex/contrib/tcolorbox/tcolorbox.doc.references.tex
2020/04/28 | 14602 | macros/latex/contrib/tcolorbox/tcbfitting.code.tex
2020/04/28 | 14415 | macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
2020/04/28 | 1412 | macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
-2020/04/28 | 139818672 | systems/win32/w32tex/context.tar.xz
2020/04/28 | 13905 | macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
2020/04/28 | 13613 | macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
2020/04/28 | 13334 | fonts/utilities/fontools/bin/afm2afm
@@ -604,9 +1141,6 @@
2020/04/28 | 112 | macros/latex/contrib/tcolorbox/tcolorbox.doc.index.tex
2020/04/28 | 11163 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
2020/04/28 | 1106 | macros/latex/contrib/tcolorbox/tcolorbox.doc.picturecredits.tex
-2020/04/28 | 10876356 | systems/win32/w32tex/win64/xetex-w64.tar.xz
-2020/04/28 | 1070276 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
-2020/04/28 | 10478744 | systems/win32/w32tex/ptex-w32.tar.xz
2020/04/28 | 10328 | systems/texlive/tlnet/archive/context-filter.doc.r54912.tar.xz
2020/04/28 | 10004 | macros/latex/contrib/tcolorbox/tcbxparse.code.tex
2020/04/27 | 8905 | macros/generic/simplekv/simplekv.tex
@@ -683,7 +1217,6 @@
2020/04/26 | 9240 | fonts/sourcesanspro/fonts/SourceSansPro-Semibold-osf-ot1.tfm
2020/04/26 | 9204 | fonts/sourcesanspro/fonts/SourceSansPro-Semibold-lf-ot1.tfm
2020/04/26 | 91839 | macros/latex/contrib/biblatex-contrib/biblatex-apa/biblatex-apa-test-references.bib
-2020/04/26 | 916 | systems/texlive/tlnet/archive/biblatex-software.source.r54875.tar.xz
2020/04/26 | 9153 | macros/latex/contrib/biblatex-contrib/biblatex-apa/nynorsk-apa.lbx
2020/04/26 | 9143 | macros/latex/contrib/biblatex-contrib/biblatex-apa/brazilian-apa.lbx
2020/04/26 | 9137 | macros/latex/contrib/biblatex-contrib/biblatex-apa/norwegian-apa.lbx
@@ -737,7 +1270,6 @@
2020/04/26 | 8195 | macros/luatex/optex/slides.opm
2020/04/26 | 8164 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight-osf-ot1.tfm
2020/04/26 | 8154 | macros/luatex/optex/fnotes.opm
-2020/04/26 | 81523 | macros/xetex/latex/xepersian-hm/kashida-example.pdf
2020/04/26 | 8136 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight-lf-ot1.tfm
2020/04/26 | 8136 | fonts/sourcesanspro/fonts/SourceSansPro-Black-tosf-ot1.tfm
2020/04/26 | 8136 | fonts/sourcesanspro/fonts/SourceSansPro-Black-tlf-ot1.tfm
@@ -776,7 +1308,6 @@
2020/04/26 | 7560 | fonts/sourcesanspro/fonts/SourceSansPro-BoldIt-tlf-ot1.tfm
2020/04/26 | 7556 | fonts/sourcesanspro/fonts/SourceSansPro-BoldIt-tosf-ot1.tfm
2020/04/26 | 754 | systems/stanford/pkware/README
-2020/04/26 | 75419 | macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
2020/04/26 | 7512 | fonts/sourcesanspro/fonts/SourceSansPro-Regular-tosf-sc-ot1.tfm
2020/04/26 | 7472 | fonts/sourcesanspro/fonts/SourceSansPro-BlackIt-osf-ot1.tfm
2020/04/26 | 7472 | fonts/sourcesanspro/fonts/SourceSansPro-BlackIt-lf-ot1.tfm
@@ -1173,7 +1704,6 @@
2020/04/26 | 29592 | fonts/sourcesanspro/fonts/SourceSansPro-Light-tlf-sc-lgr.tfm
2020/04/26 | 2957 | fonts/comicneue/fonts/a_upn2ip.enc
2020/04/26 | 2956 | fonts/sourcesanspro/fonts/a_kjpvhx.enc
-2020/04/26 | 2955 | macros/xetex/latex/xepersian-hm/kashida-example.tex
2020/04/26 | 295500 | fonts/sourcesanspro/fonts/SourceSansPro-Black.otf
2020/04/26 | 2940 | fonts/comicneue/fonts/ComicNeue-Italic-tlf-ot1.tfm
2020/04/26 | 29320 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight-osf-lgr.tfm
@@ -1196,7 +1726,6 @@
2020/04/26 | 28968 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight-tlf-lgr.tfm
2020/04/26 | 28952 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight-tosf-sc-lgr.tfm
2020/04/26 | 2878 | fonts/comicneue/fonts/a_trnund.enc
-2020/04/26 | 287484 | systems/texlive/tlnet/archive/biblatex-software.doc.r54875.tar.xz
2020/04/26 | 28728 | fonts/sourcesanspro/fonts/SourceSansPro-BoldIt-tlf-lgr.tfm
2020/04/26 | 28724 | fonts/sourcesanspro/fonts/SourceSansPro-BoldIt-tosf-lgr.tfm
2020/04/26 | 28628 | fonts/sourcesanspro/fonts/SourceSansPro-BlackIt-lf-lgr.tfm
@@ -1210,8 +1739,6 @@
2020/04/26 | 282200 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight.otf
2020/04/26 | 27948 | fonts/sourcesanspro/fonts/SourceSansPro-Semibold-osf-ly1.tfm
2020/04/26 | 27916 | fonts/sourcesanspro/fonts/SourceSansPro-Semibold-lf-ly1.tfm
-2020/04/26 | 2788 | systems/texlive/tlnet/archive/biblatex-software.r54875.tar.xz
-2020/04/26 | 27642 | macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
2020/04/26 | 275939 | fonts/sourcesanspro/fonts/SourceSansPro-SemiboldIt.pfb
2020/04/26 | 27444 | fonts/sourcesanspro/fonts/SourceSansPro-Regular-osf-ly1.tfm
2020/04/26 | 27424 | fonts/sourcesanspro/fonts/SourceSansPro-Semibold-tosf-ly1.tfm
@@ -1394,7 +1921,6 @@
2020/04/26 | 1884 | fonts/sourcesanspro/fonts/SourceSansPro-LightIt-osf-ly1--base.tfm
2020/04/26 | 1884 | fonts/sourcesanspro/fonts/SourceSansPro-It-numr-t1.tfm
2020/04/26 | 1884 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLightIt-sup-ly1--base.tfm
-2020/04/26 | 1883 | macros/xetex/latex/xepersian-hm/xepersian-hm.ins
2020/04/26 | 18832 | macros/latex/contrib/biblatex-contrib/biblatex-apa/apa.cbx
2020/04/26 | 18813 | macros/luatex/optex/graphics.opm
2020/04/26 | 1880 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLightIt-sup-t1.tfm
@@ -2199,7 +2725,6 @@
2020/04/26 | 1588 | fonts/sourcesanspro/fonts/SourceSansPro-Bold-sup-lgr--base.tfm
2020/04/26 | 1584 | fonts/sourcesanspro/fonts/SourceSansPro-Black-inf-lgr.tfm
2020/04/26 | 1584 | fonts/sourcesanspro/fonts/SourceSansPro-Black-inf-lgr--base.tfm
-2020/04/26 | 158398 | macros/xetex/latex/xepersian-hm.zip
2020/04/26 | 1580 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight-lf-sc-lgr--base.tfm
2020/04/26 | 1580 | fonts/sourcesanspro/fonts/SourceSansPro-ExtraLight-lf-lgr--base.tfm
2020/04/26 | 1580 | fonts/sourcesanspro/fonts/SourceSansPro-Black-dnom-lgr.tfm
@@ -2452,7 +2977,6 @@
2020/04/26 | 1232 | fonts/sourcesanspro/fonts/SourceSansPro-Black-numr-ot1.tfm
2020/04/26 | 1232 | fonts/sourcesanspro/fonts/SourceSansPro-Black-inf-ot1.tfm
2020/04/26 | 1232 | fonts/sourcesanspro/fonts/SourceSansPro-Black-dnom-ot1.tfm
-2020/04/26 | 1230 | macros/xetex/latex/xepersian-hm/README.txt
2020/04/26 | 12305 | macros/latex/contrib/biblatex-contrib/biblatex-apa/nswissgerman-apa.lbx
2020/04/26 | 12297 | macros/latex/contrib/biblatex-contrib/biblatex-apa/naustrian-apa.lbx
2020/04/26 | 12281 | macros/latex/contrib/biblatex-contrib/biblatex-apa/austrian-apa.lbx
@@ -2488,12 +3012,10 @@
2020/04/25 | 931 | macros/latex/contrib/biblatex-contrib/biblatex-software/LICENSE
2020/04/25 | 9231 | macros/luatex/optex/math-preload.opm
2020/04/25 | 9000 | macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty
-2020/04/25 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png
2020/04/25 | 86852 | systems/texlive/tlnet/archive/pxjahyper.doc.r54863.tar.xz
2020/04/25 | 848530 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf
2020/04/25 | 8467 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex
2020/04/25 | 83630 | macros/latex/contrib/animate/animate.tex
-2020/04/25 | 83272 | language/japanese/pxjahyper/pxjahyper.pdf
2020/04/25 | 822678 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf
2020/04/25 | 819233 | macros/latex/contrib/knowledge.zip
2020/04/25 | 815850 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf
@@ -2502,7 +3024,6 @@
2020/04/25 | 755 | macros/latex/contrib/biblatex-contrib/biblatex-software/english-software.lbx
2020/04/25 | 7553 | macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
2020/04/25 | 729897 | macros/latex/contrib/knowledge/knowledge.pdf
-2020/04/25 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
2020/04/25 | 6914959 | macros/latex/contrib/tuda-ci.zip
2020/04/25 | 688 | macros/latex/contrib/kvmap/README.md
2020/04/25 | 687625 | fonts/libertinus-otf/doc/libertinus-otf-doc.pdf
@@ -2521,7 +3042,6 @@
2020/04/25 | 58704 | fonts/libertinus-otf/doc/libertinus-otf-doc.tex
2020/04/25 | 586726 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf
2020/04/25 | 5861 | macros/luatex/optex/alloc.opm
-2020/04/25 | 5839 | language/japanese/pxjahyper/pxjahyper.tex
2020/04/25 | 583232 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf
2020/04/25 | 5817 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex
2020/04/25 | 574095 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf
@@ -2542,7 +3062,6 @@
2020/04/25 | 4328 | macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty
2020/04/25 | 411130 | systems/win32/miktex/tm/packages/embedfile.tar.lzma
2020/04/25 | 408 | fonts/libertinus-otf/README.md
-2020/04/25 | 3929576 | systems/win32/w32tex/texinfo-w32.tar.xz
2020/04/25 | 392868 | systems/texlive/tlnet/archive/embedfile.doc.r54865.tar.xz
2020/04/25 | 3927 | macros/luatex/optex/optex.ini
2020/04/25 | 3911070 | macros/latex/contrib/animate/animate.pdf
@@ -2550,27 +3069,19 @@
2020/04/25 | 36582 | macros/latex/contrib/tuda-ci/tex/tudapub.cls
2020/04/25 | 3622 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco
2020/04/25 | 359 | macros/latex/contrib/biblatex-contrib/biblatex-software/stublist
-2020/04/25 | 3593178 | install/macros/latex/contrib/lwarp.tds.zip
-2020/04/25 | 35850 | language/japanese/pxjahyper/pxjahyper.sty
2020/04/25 | 3300 | macros/latex/contrib/tuda-ci/tex/tudafonts.sty
2020/04/25 | 3235087 | install/macros/latex/contrib/animate.tds.zip
2020/04/25 | 3232815 | macros/latex/contrib/animate.zip
-2020/04/25 | 3105406 | macros/latex/contrib/lwarp.zip
2020/04/25 | 30508 | macros/latex/contrib/kvmap/kvmap.dtx
2020/04/25 | 303384 | systems/texlive/tlnet/archive/picture.doc.r54867.tar.xz
-2020/04/25 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt
2020/04/25 | 2931 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex
-2020/04/25 | 28778 | macros/latex/contrib/lwarp/lwarpmk.lua
-2020/04/25 | 28197 | macros/latex/contrib/lwarp/lwarp.ins
2020/04/25 | 2788 | macros/latex/contrib/biblatex-contrib/biblatex-software/README.md
2020/04/25 | 2724 | systems/texlive/tlnet/archive/changelog.r54864.tar.xz
-2020/04/25 | 2701656 | macros/latex/contrib/lwarp/lwarp.pdf
2020/04/25 | 26432416 | systems/win32/miktex/source/miktex-2.9.7400.tar.xz
2020/04/25 | 2614 | macros/latex/contrib/knowledge/makefile
2020/04/25 | 2565 | macros/latex/contrib/biblatex-contrib/biblatex-software/sample.tex
2020/04/25 | 25167 | fonts/libertinus-otf/latex/libertinus-otf.sty
2020/04/25 | 24286148 | systems/win32/miktex/tm/packages/willowtreebook.tar.lzma
-2020/04/25 | 24248 | language/japanese/pxjahyper/pxjahyper-ajm.def
2020/04/25 | 24221768 | systems/texlive/tlnet/archive/willowtreebook.doc.r54866.tar.xz
2020/04/25 | 2368 | language/japanese/jlreq-deluxe/tfm/bzjlreq--upnmlminr-v.tfm
2020/04/25 | 2368 | language/japanese/jlreq-deluxe/tfm/bzjlreq--upnmlminrn-v.tfm
@@ -2685,7 +3196,6 @@
2020/04/25 | 2340 | language/japanese/jlreq-deluxe/tfm/zjlreq--upexpgothbn-v.tfm
2020/04/25 | 2340 | language/japanese/jlreq-deluxe/tfm/zjlreq--upexpgothbn-h.tfm
2020/04/25 | 2340 | language/japanese/jlreq-deluxe/tfm/zjlreq--upexpgothb-h.tfm
-2020/04/25 | 2334375 | macros/latex/contrib/lwarp/lwarp.dtx
2020/04/25 | 2332 | language/japanese/jlreq-deluxe/tfm/bjlreq--upnmlminr-v.tfm
2020/04/25 | 2332 | language/japanese/jlreq-deluxe/tfm/bjlreq--upnmlminrn-v.tfm
2020/04/25 | 2332 | language/japanese/jlreq-deluxe/tfm/bjlreq--upnmlminrn-h.tfm
@@ -2801,7 +3311,6 @@
2020/04/25 | 2304 | language/japanese/jlreq-deluxe/tfm/jlreq--upexpgothb-h.tfm
2020/04/25 | 23021 | macros/luatex/optex/parameters.opm
2020/04/25 | 2300 | systems/texlive/tlnet/archive/picture.r54867.tar.xz
-2020/04/25 | 2235 | language/japanese/pxjahyper/README-ja.md
2020/04/25 | 2227 | macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty
2020/04/25 | 2175 | macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty
2020/04/25 | 2097 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex
@@ -3048,7 +3557,6 @@
2020/04/25 | 1668 | macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo
2020/04/25 | 164948 | systems/texlive/tlnet/archive/changelog.doc.r54864.tar.xz
2020/04/25 | 1639083 | systems/win32/miktex/tm/packages/garamond-libre.tar.lzma
-2020/04/25 | 1623 | macros/latex/contrib/lwarp/README.txt
2020/04/25 | 161813 | macros/latex/contrib/knowledge/knowledge.tex
2020/04/25 | 159871 | macros/latex/contrib/knowledge/knowledge-code.dtx
2020/04/25 | 1588348 | language/japanese/jlreq-deluxe/vf/jlreq--upexpmgothrn-h.vf
@@ -3506,111 +4014,9 @@
2020/04/25 | 135531 | macros/latex/contrib/animate/animate.sty
2020/04/25 | 13340 | macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls
2020/04/25 | 13236 | systems/texlive/tlnet/archive/embedfile.source.r54865.tar.xz
-2020/04/25 | 1224 | language/japanese/pxjahyper/README.md
2020/04/25 | 11663 | macros/latex/contrib/animate/ChangeLog
2020/04/25 | 1149383 | systems/win32/miktex/tm/packages/circuitikz.tar.lzma
2020/04/25 | 110023 | macros/latex/contrib/kvmap/kvmap.pdf
-2020/04/25 | 1091 | language/japanese/pxjahyper/LICENSE
2020/04/25 | 10474 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex
2020/04/25 | 10367 | macros/luatex/optex/table.opm
2020/04/25 | 100867 | systems/win32/miktex/tm/packages/pxjahyper.tar.lzma
-2020/04/24 | 97896 | systems/texlive/tlnet/archive/tlcockpit.source.r54857.tar.xz
-2020/04/24 | 956271 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
-2020/04/24 | 94217 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
-2020/04/24 | 938 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
-2020/04/24 | 900592 | systems/texlive/tlnet/archive/tex4ht.r54854.tar.xz
-2020/04/24 | 890 | macros/latex/contrib/changelog/README.md
-2020/04/24 | 841461 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
-2020/04/24 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
-2020/04/24 | 8120 | macros/latex/contrib/changelog/changelog.sty
-2020/04/24 | 7916 | systems/texlive/tlnet/archive/hyphen-spanish.source.r54857.tar.xz
-2020/04/24 | 7749 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
-2020/04/24 | 761 | fonts/garamond-libre/COPYING
-2020/04/24 | 758990 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
-2020/04/24 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
-2020/04/24 | 7477 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
-2020/04/24 | 716 | systems/stanford/patgen/README
-2020/04/24 | 71652184 | systems/texlive/tlnet/archive/tlcockpit.r54857.tar.xz
-2020/04/24 | 690730 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
-2020/04/24 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
-2020/04/24 | 678768 | fonts/garamond-libre/fonts/GaramondLibre-Regular.otf
-2020/04/24 | 672912 | systems/texlive/tlnet/archive/pkfix-helper.doc.r54855.tar.xz
-2020/04/24 | 65374 | systems/win32/miktex/tm/packages/tpic2pdftex.tar.lzma
-2020/04/24 | 634920 | fonts/garamond-libre/fonts/GaramondLibre-Bold.otf
-2020/04/24 | 617888 | fonts/garamond-libre/fonts/GaramondLibre-Italic.otf
-2020/04/24 | 61192 | systems/texlive/tlnet/archive/tex4ht.doc.r54854.tar.xz
-2020/04/24 | 6064 | systems/texlive/tlnet/archive/collection-latexextra.r54851.tar.xz
-2020/04/24 | 59284 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
-2020/04/24 | 58213 | macros/latex/contrib/embedfile/embedfile.dtx
-2020/04/24 | 5687 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
-2020/04/24 | 55360 | systems/texlive/tlnet/archive/tikz-planets.doc.r54857.tar.xz
-2020/04/24 | 47093 | macros/latex/contrib/changelog/changelog.pdf
-2020/04/24 | 46195 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
-2020/04/24 | 422268 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
-2020/04/24 | 4201 | macros/latex/contrib/willowtreebook/willowtreebook.tex
-2020/04/24 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
-2020/04/24 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
-2020/04/24 | 412474 | install/macros/latex/contrib/embedfile.tds.zip
-2020/04/24 | 403539 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
-2020/04/24 | 403072 | macros/latex/contrib/embedfile.zip
-2020/04/24 | 397270 | macros/latex/contrib/embedfile/embedfile.pdf
-2020/04/24 | 393856 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
-2020/04/24 | 386 | macros/latex/contrib/willowtreebook/README
-2020/04/24 | 364086 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
-2020/04/24 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
-2020/04/24 | 34841 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
-2020/04/24 | 317756 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
-2020/04/24 | 3156 | graphics/pgf/contrib/circuitikz/README.md
-2020/04/24 | 315068 | systems/texlive/tlnet/archive/epigraph.doc.r54857.tar.xz
-2020/04/24 | 314994 | systems/win32/miktex/tm/packages/epigraph-keys.tar.lzma
-2020/04/24 | 311424 | systems/texlive/tlnet/archive/epigraph-keys.doc.r54851.tar.xz
-2020/04/24 | 311094 | systems/win32/miktex/tm/packages/picture.tar.lzma
-2020/04/24 | 3102 | macros/luatex/optex/others.opm
-2020/04/24 | 3098 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
-2020/04/24 | 30851 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
-2020/04/24 | 2868 | systems/texlive/tlnet/archive/tikz-planets.r54857.tar.xz
-2020/04/24 | 28646 | macros/luatex/optex/fonts-select.opm
-2020/04/24 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
-2020/04/24 | 2710557 | fonts/garamond-libre.zip
-2020/04/24 | 2544372 | fonts/garamond-libre/fonts/GaramondLibre-BoldItalic.otf
-2020/04/24 | 24307 | systems/stanford/patgen.zip
-2020/04/24 | 24264069 | macros/latex/contrib/willowtreebook.zip
-2020/04/24 | 235397 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
-2020/04/24 | 23460 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
-2020/04/24 | 23453 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
-2020/04/24 | 2305 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
-2020/04/24 | 2000 | systems/texlive/tlnet/archive/epigraph.r54857.tar.xz
-2020/04/24 | 194691 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
-2020/04/24 | 19106 | macros/latex/contrib/changelog/LICENSE.txt
-2020/04/24 | 1875 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
-2020/04/24 | 18620 | systems/texlive/tlnet/archive/pkfix-helper.r54855.tar.xz
-2020/04/24 | 1836 | systems/texlive/tlnet/archive/epigraph-keys.r54851.tar.xz
-2020/04/24 | 1820863 | install/graphics/pgf/contrib/circuitikz.tds.zip
-2020/04/24 | 1808267 | graphics/pgf/contrib/circuitikz.zip
-2020/04/24 | 17750 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
-2020/04/24 | 17641 | fonts/garamond-libre/doc/garamond-libre.tex
-2020/04/24 | 17618 | macros/latex/contrib/willowtreebook/willowtreebook.cls
-2020/04/24 | 176180 | macros/latex/contrib/changelog.zip
-2020/04/24 | 175151 | systems/win32/miktex/tm/packages/emojicite.tar.lzma
-2020/04/24 | 173308 | systems/texlive/tlnet/archive/emojicite.doc.r54857.tar.xz
-2020/04/24 | 1722400 | systems/texlive/tlnet/archive/arara.doc.r54857.tar.xz
-2020/04/24 | 1690 | fonts/garamond-libre/README
-2020/04/24 | 16753 | macros/latex/contrib/changelog/example.pdf
-2020/04/24 | 16504 | systems/texlive/tlnet/archive/hyphen-spanish.r54857.tar.xz
-2020/04/24 | 16121073 | systems/win32/miktex/tm/packages/arara.tar.lzma
-2020/04/24 | 145670 | fonts/garamond-libre/doc/garamond-libre.pdf
-2020/04/24 | 14338296 | systems/texlive/tlnet/archive/arara.r54857.tar.xz
-2020/04/24 | 14053 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
-2020/04/24 | 13983793 | macros/latex/contrib/willowtreebook/willowtreebook.pdf
-2020/04/24 | 137093 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
-2020/04/24 | 1316 | systems/texlive/tlnet/archive/emojicite.r54857.tar.xz
-2020/04/24 | 128796 | systems/texlive/tlnet/archive/hyphen-spanish.doc.r54857.tar.xz
-2020/04/24 | 12224 | macros/latex/contrib/changelog/changelog.tex
-2020/04/24 | 121744 | macros/luatex/optex/uni-lcuc.opm
-2020/04/24 | 10910 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
-2020/04/24 | 108064 | macros/latex/contrib/changelog/screenshot.png
-2020/04/24 | 10580 | systems/texlive/tlnet/archive/epigraph.source.r54857.tar.xz
-2020/04/24 | 103087 | language/japanese/pxjahyper.zip
-2020/04/24 | 102980 | systems/texlive/tlnet/archive/arara.source.r54857.tar.xz
-2020/04/24 | 1023876 | systems/texlive/tlnet/archive/tlcockpit.doc.r54857.tar.xz
-2020/04/24 | 1020 | macros/latex/contrib/changelog/example.tex
diff --git a/dviware/dvidvi/ChangeLog b/dviware/dvidvi/ChangeLog
index 4ed58dad48..44c29fbb83 100644
--- a/dviware/dvidvi/ChangeLog
+++ b/dviware/dvidvi/ChangeLog
@@ -1,6 +1,12 @@
+2020-05-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * configure.ac, config.h.in, dvidvi.c:
+ Add TL version to banner and bug report address to usage.
+ * tests/playout.2, tests/playout.3: Adapt.
+
2018-05-16 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
- * tests/palyout.2, tests/palyout.3: Adapt.
+ * tests/playout.2, tests/playout.3: Adapt.
2018-05-15 Karl Berry <karl@freefriends.org>
diff --git a/dviware/dvidvi/config.h.in b/dviware/dvidvi/config.h.in
index 60c484e6ee..4bacecd3cf 100644
--- a/dviware/dvidvi/config.h.in
+++ b/dviware/dvidvi/config.h.in
@@ -127,6 +127,9 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+/* Define to the current TeX Live version string. */
+#undef TL_VERSION
+
/* Version number of package */
#undef VERSION
diff --git a/dviware/dvidvi/configure.ac b/dviware/dvidvi/configure.ac
index 5524d5cd0a..82b2064b6a 100644
--- a/dviware/dvidvi/configure.ac
+++ b/dviware/dvidvi/configure.ac
@@ -17,6 +17,10 @@ KPSE_COMMON([dvidvi])
AC_CONFIG_HEADERS([config.h])
+m4_include([../../version.ac])[] dnl define tex_live_version
+AC_DEFINE([TL_VERSION], ["TeX Live tex_live_version()"],
+ [Define to the current TeX Live version string.])
+
# We don't use libpathsea, so add '-DNO_DEBUG' not to overload fopen.
KPSE_KPATHSEA_FLAGS([no-debug])
KPSE_COND_WIN32
diff --git a/dviware/dvidvi/configure.texk b/dviware/dvidvi/configure.texk
index 1b1a8c8015..e01e71e79a 100755
--- a/dviware/dvidvi/configure.texk
+++ b/dviware/dvidvi/configure.texk
@@ -741,6 +741,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -827,6 +828,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1079,6 +1081,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1216,7 +1227,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1369,6 +1380,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -12686,7 +12698,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12732,7 +12744,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12756,7 +12768,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12801,7 +12813,7 @@ else
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -12825,7 +12837,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
We can't simply define LARGE_OFF_T to be 9223372036854775807,
since some C++ compilers masquerading as C compilers
incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
&& LARGE_OFF_T % 2147483647 == 1)
? 1 : -1];
@@ -13469,6 +13481,11 @@ fi
ac_config_headers="$ac_config_headers config.h"
+
+
+$as_echo "#define TL_VERSION \"TeX Live 2021/dev\"" >>confdefs.h
+
+
# We don't use libpathsea, so add '-DNO_DEBUG' not to overload fopen.
kpse_save_CPPFLAGS=$CPPFLAGS
kpse_save_LIBS=$LIBS
diff --git a/dviware/dvidvi/dvidvi.c b/dviware/dvidvi/dvidvi.c
index a48890338f..86988cce8e 100644
--- a/dviware/dvidvi/dvidvi.c
+++ b/dviware/dvidvi/dvidvi.c
@@ -34,8 +34,10 @@
#define SEEK_CUR 1
#define SEEK_END 2
-#define BANNER "\nThis is dvidvi 1.1, Copyright 1988-1991 Radical Eye Software\n" \
+#define BANNER "\nThis is dvidvi " VERSION " (" TL_VERSION ")," \
+ " Copyright 1988-1991 Radical Eye Software\n" \
"Improved from 1.0 to 1.1, 1994, Markus Kohm\n"
+#define BUG_ADDRESS PACKAGE_BUGREPORT
#define STRINGSIZE (500L) /* maximum number of strings in program */
#ifdef HAVE_CONFIG_H
@@ -359,6 +361,7 @@ static void usage(void) {
(void)fprintf(stderr," [-q] quiet mode [-r] reverse pages\n");
(void)fprintf(stderr," [-m modulo:pagespecs] [-j] jumping pages\n");
(void)fprintf(stderr," [-p pagemodulo]\n");
+ (void)fprintf(stderr,"\nEmail bug reports to %s.\n", BUG_ADDRESS);
#ifndef VMS
exit(1) ;
#else /* VMS */
diff --git a/dviware/dvidvi/tests/playout.2 b/dviware/dvidvi/tests/playout.2
index 891e526906..5d014b465d 100644
--- a/dviware/dvidvi/tests/playout.2
+++ b/dviware/dvidvi/tests/playout.2
@@ -1,5 +1,5 @@
-This is dvidvi 1.1, Copyright 1988-1991 Radical Eye Software
+This is dvidvi 1.1 (TeX Live 2021/dev), Copyright 1988-1991 Radical Eye Software
Improved from 1.0 to 1.1, 1994, Markus Kohm
play.dvi -> playout.dvi
[5] [12] [9] [8] [13]
diff --git a/dviware/dvidvi/tests/playout.3 b/dviware/dvidvi/tests/playout.3
index ec694bb5c0..37c9ab793d 100644
--- a/dviware/dvidvi/tests/playout.3
+++ b/dviware/dvidvi/tests/playout.3
@@ -1,5 +1,5 @@
-This is dvidvi 1.1, Copyright 1988-1991 Radical Eye Software
+This is dvidvi 1.1 (TeX Live 2021/dev), Copyright 1988-1991 Radical Eye Software
Improved from 1.0 to 1.1, 1994, Markus Kohm
playtate.dvi -> playout.dvi
[5] [12] [9] [8] [13]
diff --git a/graphics/circuit_macros/CHANGES b/graphics/circuit_macros/CHANGES
index 8713597bf9..5427774e17 100644
--- a/graphics/circuit_macros/CHANGES
+++ b/graphics/circuit_macros/CHANGES
@@ -1,5 +1,10 @@
CHANGES
+Version 9.2.x: New macro ACsymbol, Proxim, Magn, options for mosfet, ground,
+ microphone, consource. Bugfix for the source macro. Tweaked examples,
+ macro svg_font. Added a short discussion of integrated circuits
+ and connectors. Removed compression of the manual to restore broken
+ internal links.
Version 9.2: New options for macros contact, dswitch, FlipFlop,
FlipFlopX. New macros pvcell, contacts, relaycoil. Modified cbreaker
and relay. New file Licence.txt. Change from siunits to siunitx.sty.
@@ -10,12 +15,14 @@ Version 9.1: Corrected two examples; added others including vacuum tubes.
Version 9.0: Tweaked svg_sub, svg_sup, lamp. New macros cm__, px__.
New option for source. Obsolete Autologic and stackpromote_ removed.
Version 8.9: Tweaked lswitch, contact, rotbox, parallel_, darrow.
- Uniform open-arrowhead option for diode, thyristor. New macros reed, lamp.
+ Uniform open-arrowhead option for diode, thyristor. New macros reed,
+ lamp.
Version 8.8: Tweaks for source macro. Change to svg.m4 for
compatibility with dpic Version 2018.05.15 or later. Macros for
embedding pic diagrams into Tikz pictures. Changed the name of the
manual from CMman.pdf to Circuit_macros.pdf. Option for dswitch.
-Version 8.7: Fixes for more robust nested macros and SVG color. Options for
+Version 8.7: Fixes for more robust nested macros and SVG color. Options
+for
the source macro.
Version 8.6: Options for switch, lswitch. Simplified Quick Start section
of the manual. Added WARNING to m4 output for default configuration
@@ -33,21 +40,23 @@ Version 8.3: A simpler CTAN distribution and several examples reworked for
Version 8.2: Tweaks to round, bi_tr, bi_trans, Darlington, along_. New
Along_, lin_ang, mitre_.
Version 8.1: Additions to dpictools.pic. New macros parallel_, rgbstring,
- series_, stackdo_, Vsprod, sbs, scs, sus. Options for diode.
- Thyristor options and minor changes of functionality. Bugfix in winding macro.
-Version 8.0: New options for capacitor, cbreaker, diode, inductor, lswitch, Mux,
- resistor, rotbox, transformer. New macros addtaps, binary_, Demux, Header,
- HeaderPin, hex_digit, hexadecimal_, Pr_xy, Pr_xz, Pr_yz, SQUID, KelvinR,
- FTcap, tconn, and tapped.
- Tweaked setrgb for svg output. Generalized setview in lib3D.
+ series_, stackdo_, Vsprod, sbs, scs, sus. Options for diode. Thyristor
+ options and minor changes of functionality. Bugfix in winding macro.
+Version 8.0: New options for capacitor, cbreaker, diode, inductor,
+lswitch, Mux,
+ resistor, rotbox, transformer. New macros addtaps, binary_, Demux,
+ Header, HeaderPin, hex_digit, hexadecimal_, Pr_xy, Pr_xz, Pr_yz, SQUID,
+ KelvinR, FTcap, tconn, and tapped. Tweaked setrgb for svg output.
+ Generalized setview in lib3D.
Version 7.9: Added accessibility features to the documentation.
Replaced Autologic with Autologix to allow multiple outputs and
simplified expressions. New macros savem4dir, restorem4dir. Options for
vperp and Vperp. Bug fix in source macro. Tweaked stacksplit_. Removed
a name clash between libcct and liblog.
-Version 7.8: Logic gate options for arbitrary negated inputs; lg_pin options.
- New macro FlipFlopX for simplicity and generality; new macros Cintersect,
- LCintersect, LCtangent, stacksplit_; modified Loopover_.
+Version 7.8: Logic gate options for arbitrary negated inputs; lg_pin
+options.
+ New macro FlipFlopX for simplicity and generality; new macros
+ Cintersect, LCintersect, LCtangent, stacksplit_; modified Loopover_.
Version 7.7: SVG macro tweaks. Tweaked BOX_gate and bugfix in IOdefs in
liblog.m4.
Version 7.6: New macro NPDT; new option for contact and relay; Autologic
@@ -62,11 +71,13 @@ Version 7.5: Usage has been simplified by making the initialization macros
in composite macros. Bugfix in calls to BUFFER_gen. Tweaked Point_
for simpler output for common arguments. Reordered the arguments of
round for consistency.
-Version 7.4: New macro lthick. Simplified shadebox. The ifroff macro renamed
- to iftpic. New configuration file m4defaults.m4. Reworked darrow library
- for consistency with solid lines and arrows; new macro darc and wrappers
- Darc, Darrow, Dline; old version included in olddarrow.m4 to ease transition.
- Macros and examples fixed and made more robust for gpic (where possible).
+Version 7.4: New macro lthick. Simplified shadebox. The ifroff macro
+renamed
+ to iftpic. New configuration file m4defaults.m4. Reworked darrow
+ library for consistency with solid lines and arrows; new macro darc and
+ wrappers Darc, Darrow, Dline; old version included in olddarrow.m4 to
+ ease transition. Macros and examples fixed and made more robust for
+ gpic (where possible).
Version 7.3: Options for sinusoid. Bug fix for switch(,,D). Heater macro.
Modified Loopover_
Version 7.2: Tweaked crossover macro. Size options for inductor, resistor,
@@ -90,16 +101,16 @@ Version 6.6: New macros memristor, centerline. Revised PSTricks patch.
Options in mosfet, capacitor. Opamp .C defined. Tweaks to avoid
potential name conflicts. Fix for dashline.
Version 6.5: New macros Loopover_, m4xpand, showbox_, gyrator, norator,
- nullator, nterm, rotellipse, rotbox. Logic gate examples.
- Customization arguments for non-2-terminal elements. Signal
- flow-graph macros tuned to allow large nodes; bug fix in sfgarc. A
- patch for PSTricks to work around the context dependency of \psbezier
- within \pscustom.
+ nullator, nterm, rotellipse, rotbox. Logic gate examples. Customization
+ arguments for non-2-terminal elements. Signal flow-graph macros tuned
+ to allow large nodes; bug fix in sfgarc. A patch for PSTricks to work
+ around the context dependency of \psbezier within \pscustom.
Version 6.4: New macros Equidist3, f_box, rs_box, Darlington, View3D.
Options for diode, inductor, transformer, consource. Moved arrowhead
initialization in pstricks.m4 and libcct.m4 for for more flexibility
with diagrams embedded in latex files.
-Version 6.3: New options for mosfet, diode, earphone. Better color support.
+Version 6.3: New options for mosfet, diode, earphone. Better color
+support.
Fixed system-dependent OR_gate problems. New macro cintersect.
Version 6.2: Replaced scr with a variant of thyristor. Bug fix in
bi_trans. Options for source.
@@ -108,14 +119,18 @@ Version 6.1: New macros ttmotor, thyristor. Options for source, bi_trans,
Version 6.0: TikZ PGF compatibility. Added transformer labels, optional
FlipFlop labels. New macros dswitch, winding. Tweaked nport, source,
bi_trans, AND_gen, OR_gen, sinusoid, resistor.
-Version 5.9: Simplified internal flags for pic processor and postprocessor.
+Version 5.9: Simplified internal flags for pic processor and
+postprocessor.
New antenna, cbreaker, dturn, and lbox macros. Several changes to
allow sprintf string arguments. New options for buzzer, capacitor,
dimension_, ebox, fuse, mosfet, source, and switch. Fix of drjust.
- Better compatibility with pic macros. Numerous changes to documentation.
-Version 5.8: Simplified installation. Revised and augmented logic-gate library.
- Cleaner libgen macro output. Improved b_current, bi_trans, ground, dtee.
- Dline and darrow corrected for gpic. New macros dashline, m4xtract.
+ Better compatibility with pic macros. Numerous changes to
+ documentation.
+Version 5.8: Simplified installation. Revised and augmented logic-gate
+library.
+ Cleaner libgen macro output. Improved b_current, bi_trans, ground,
+ dtee. Dline and darrow corrected for gpic. New macros dashline,
+ m4xtract.
Version 5.7: Psfrag examples. Improved dline. Added option and label in
igbt. Bug fix in tr_xy. Multiple-emitter option in bi_trans.
Version 5.6: Better MetaPost, PDFLaTeX, and xfig support. PDF examples.
@@ -125,7 +140,8 @@ Version 5.6: Better MetaPost, PDFLaTeX, and xfig support. PDF examples.
microphone, buzzer. Negated logic gate inputs and IEEE box logic gates.
Version 5.5: New macros potentiometer, variable, igbt, tline. Optional
negated logic gate inputs. Options for diode, source.
-Version 5.4: New Mux, for_, arca. Reworked gate macros FlipFlop, AND_gate,
+Version 5.4: New Mux, for_, arca. Reworked gate macros FlipFlop,
+AND_gate,
OR_gate, NOT_gate. Improved lg_pintxt, boxdim, s_box, s_ht, s_wd,
s_dp, nport, resistor, opamp. Completely reworked bi_tr, mosfet;
deleted smosfet. Minor additions and changes to the manual.
@@ -133,52 +149,58 @@ Version 5.3: New macros arcr, arcd, beginshade, endshade, larrow, rarrow,
s_sp, s_ht, s_wd, Max, Min, sfgself. Improved ground, sfgnode, diode,
resistor.
Version 5.2: New macros arrowline, nport, vlength, boxcoord, reversed.
- Improved s_box, sfg_init, cross, fitcurve, sinusoid, transformer, darrow,
- mosfet, psset_, battery, diode, capacitor.
+ Improved s_box, sfg_init, cross, fitcurve, sinusoid, transformer,
+ darrow, mosfet, psset_, battery, diode, capacitor.
Version 5.1: Signal-flow graph (directed graph) macros. More consistent
rot3Dz. Work-around for a bug in some pic processors invoked by the
battery macro and for an arc instability invoked by the fuse macro.
Modified ground, dimension_, par_, label macros, b_current, diode,
- transformer. New macros gpar_, ujt, scr, contact, relay.
- Document fixes and additions. Changes to examples for portability.
-Version 5.0: Macros fuse, lpop, sinc; dpic-only sinusoid and fitcurve macros.
+ transformer. New macros gpar_, ujt, scr, contact, relay. Document
+ fixes and additions. Changes to examples for portability.
+Version 5.0: Macros fuse, lpop, sinc; dpic-only sinusoid and fitcurve
+macros.
More robust mosfet, smosfet, b_current, bi_tr, j_fet, intersect_.
Editorial changes to the manual. Examples in Xfig version 3.2 format.
Web-based examples and updated links.
-Version 4.9: More robust NOT_gate. Function pmod(), macro shade(). Tweaks
- to diode, dend, crossover. Newer manual and web references. Binary
- tree and flowchart macros.
+Version 4.9: More robust NOT_gate. Function pmod(), macro shade().
+Tweaks
+ to diode, dend, crossover. Newer manual and web references. Binary tree
+ and flowchart macros.
Version 4.8: More robust ebox, source, shadebox, gap. Modified d_fet and
- e_fet. Macros mosfet and smosfet. More examples in the manual. Bug
- fixes in Fector, transformer, BUFFER_gate and in sum_, abs_, neg_, sign_ (!).
-Version 4.7: Fixed the excess-space bug in boxdims.sty. Added Macros s_box,
- s_init, scale changes to make the package more metric-friendly. Reworked
- amp, integrator, opamp, diode, battery and a few other macros for robustness
- and clarity. Minor document changes.
+ e_fet. Macros mosfet and smosfet. More examples in the manual.
+ Bug fixes in Fector, transformer, BUFFER_gate and in sum_, abs_, neg_,
+ sign_ (!).
+Version 4.7: Fixed the excess-space bug in boxdims.sty. Added Macros
+s_box,
+ s_init, scale changes to make the package more metric-friendly.
+ Reworked amp, integrator, opamp, diode, battery and a few other macros
+ for robustness and clarity. Minor document changes.
Version 4.6: Percent-signs at the end of pstricks-generated lines.
Index in the manual. New copyright notices.
Version 4.5: Options for several 2-terminal macros. Minor bug fixes and
- better robustness. Documents edited for friendlier PC installation and use.
-Version 4.3: Macros pt__ and boxdim. Additions to the manual. More robust
+ better robustness. Documents edited for friendlier PC installation
+ and use.
+Version 4.3: Macros pt__ and boxdim. Additions to the manual.
+More robust
dimension_, tuned FlipFlop for xfig. PC installation information.
Version 4.2: Friendlier manual. New Xfig prototype file to allow correct
scaling. Cleaned up b_current, added line_leng. Changes and additions
to logic gates.
Version 4.1: Xfig prototype file included. Minor document changes. Fixed
- recursive call bug and blank line bug. Changed argument for dend
- macro. Better arrowheads in circuit elements.
+ recursive call bug and blank line bug. Changed argument for dend macro.
+ Better arrowheads in circuit elements.
Version 4: Simplified library use. Added capabilities and flexibility to
several devices, added _init macros, modified b_current. Updated
font.m4, cosmetic changes to inductor. Made gamp, amp, opamp,
- integrator more robust. Deleted edel_ macro. Fixed elen_ bug in
- darrow.m4. Removed Capacitor, Inductor and others in favour of
+ integrator more robust. Deleted edel_ macro. Fixed elen_ bug
+ in darrow.m4. Removed Capacitor, Inductor and others in favour of
parameterized macros. Iron-core inductors. Re-worked use of arcs in
basic elements for better robustness. Edited examples document and
the manual.
Version 3: Document changes, minor changes to dimension_, switch,
- ground, battery. Added flexibility for several elements. New
- diodes, Capacitor, transistors, hop, transformer. Experimental
- Metafont version of basic elements.
+ ground, battery. Added flexibility for several elements. New diodes,
+ Capacitor, transistors, hop, transformer. Experimental Metafont
+ version of basic elements.
Version 2.2: Replaced definitions of two-terminal elements
with current arrow by an arrow-labelling macro.
Version 2.1: one or two examples simplified, and logic gates added.
diff --git a/graphics/circuit_macros/Copying b/graphics/circuit_macros/Copying
index 4359dd7830..30acd259ab 100644
--- a/graphics/circuit_macros/Copying
+++ b/graphics/circuit_macros/Copying
@@ -1,4 +1,4 @@
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/INSTALL b/graphics/circuit_macros/INSTALL
new file mode 100644
index 0000000000..73ccc6bd3e
--- /dev/null
+++ b/graphics/circuit_macros/INSTALL
@@ -0,0 +1,76 @@
+INSTALLATION:
+ 1. Decide where you will be installing the .m4 library files. In
+ principle, they can go anywhere; for example, $HOME/texmf/Circuit_macros,
+ c:\localtexmf\Circuit_macros, /usr/local/share/Circuit_macros,
+ or ~/texmf/tex/latex/Circuit_macros. Copy the files from the
+ top-level directory of the distribution to the installation
+ directory, or simply expand the .tar.gz or .zip distribution file
+ and rename the result to create the installation directory, which
+ will then include the doc and examples subdirectories.
+
+ 2. Copy boxdims.sty (see Section 9 of the manual) from the top
+ distribution directory to where LaTeX will find it; directory
+ ~/texmf/tex/latex/boxdims for example, and refresh the LaTeX
+ filename database (the exact command depends on your LaTeX
+ distribution and may not be necessary).
+
+ 3. Define the environment variable M4PATH to point to the installation
+ directory determined in Step 1. For the bash shell, for
+ example, add the following to your .bashrc file:
+ export M4PATH='.:~/texmf/tex/latex/Circuit_macros:'
+ but modify the path to the installation directory as necessary.
+
+ 4. This is optional. For historical reasons, the default configuration file
+ as distributed is gpic.m4. You can change it to pgf.m4 or pstricks.m4
+ for use with dpic by editing the include command near the top of
+ libgen.m4. To do this automatically, go to the installation directory
+ and type
+ "make pgfdefault" to set the default processor to dpic with Tikz pgf
+ "make psdefault" to set the default processor to dpic with PSTricks
+ "make gpicdefault" to restore gpic as the default.
+
+ You might develop your own set of macros that are combinations
+ or variations of those provided here. You can put them in a file,
+ mymacros.m4 say, and copy it to the installation directory. Then the
+ line include(mymacros.m4) in a diagram source will you make your
+ macros available.
+
+ In case of difficulty, go to the examples directory, look at debug1.tex
+ and debug2.m4, and follow instructions.
+
+TESTING:
+ To test your installation, go to the examples directory (or copy the
+ files Makefile, tst.tex, and any .m4 sources you might like to test
+ to a working directory) and create a test circuit in the
+ file test.m4. Copy ex01.m4, for example, or quick.m4 from the doc
+ directory into test.m4.
+
+ On a system with a "make" facility, first check the definitions at
+ the top of the Makefile, and then type "make tst1" to produce the
+ file tst.ps. If the source requires processing twice, type "make
+ tst" instead. To process one of the example .m4 files in the
+ examples directory, simply type "make name.ps" to process name.m4.
+ If these tests work to your satisfaction, try typing simply "make" to
+ produce examples.ps. To test .pdf files, go to the pgf directory,
+ copy name.m4 there, and type either "make name.ps" or "make name.pdf"
+ to test the file under pdflatex and TikZ PGF.
+
+ The .m4 files in the examples directory can serve as models for your
+ diagrams but keep in mind that some of them contain details that allow
+ the source to be used with a variety of postprocessors. Sticking to one
+ postprocessor such as tikz or PStricks allows for the simplest source.
+ You might also wish to browse some of the included files that are not
+ used to make examples.ps.
+
+ A few of the sources in the examples directory are copies of files
+ from the doc directory. They are duplicated to provide flexibility
+ of directory structure and independency of sources.
+
+ No "make" facility? You have to test by hand (but see below for
+ diagram production software). Copy a test file as above into
+ test.m4. Assuming you have dpic installed, type the following:
+
+ m4 -I <path> pstricks.m4 test.m4 > test.pic
+ dpic -p test.pic > test.tex
+ latex tst
+ dvips tst -o tst.ps
diff --git a/graphics/circuit_macros/README b/graphics/circuit_macros/README
index 3d31e4eb61..982ea2a097 100644
--- a/graphics/circuit_macros/README
+++ b/graphics/circuit_macros/README
@@ -1,5 +1,5 @@
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -13,9 +13,9 @@
included with several tools and examples of other types of diagrams.
Elements can be scaled or drawn in any orientation and are easy
to modify. The advantages and disadvantages of such a system in its
- basic form are similar to those of TeX itself, which is macro-based and
- non-WYSIWYG; however, graphical interfaces are available for specific
- operating systems as mentioned below.
+ basic form are similar to those of TeX itself, which is macro-based
+ and non-WYSIWYG. Graphical interfaces are available for specific
+ operating systems.
The macros are to be processed by an m4 macro processor, and evaluate to
drawing commands in the pic "little language," which is easy to read and
@@ -100,11 +100,7 @@ USAGE
\usepackage{pstricks}, pstricks.m4 is read instead of pgf.m4, and the dpic
option is -p, so the command is
- m4 pstricks.m4 cct.m4 | dpic -p > cct.tex
-
- or, if include(pstricks.m4) is the first line of cct.m4,
-
- m4 cct.m4 | dpic -p > cct.tex
+ m4 pstricks.m4 cct.m4 | dpic -p > cct.tex or m4 cct.m4 | dpic -p > cct.tex
Read Section 2 of the manual to see how to process the diagram source
from within the main .tex source file.
@@ -114,99 +110,16 @@ USAGE
m4 gpic.m4 cct.m4 | gpic -t > cct.tex
- with the -I <path> option added if M4PATH has not been defined.
-
-INSTALLATION:
- 1. Decide where you will be installing the .m4 library files. In
- principle, they can go anywhere; for example, $HOME/Circuit_macros,
- c:\localtexmf\Circuit_macros, /usr/local/share/Circuit_macros,
- or ~/texmf/tex/latex/Circuit_macros. Copy the files from the
- top-level directory of the distribution to the installation
- directory, or simply expand the .tar.gz or .zip distribution file
- and rename the result to create the installation directory, which
- will then include the doc and examples subdirectories.
-
- 2. Copy boxdims.sty (see Section 9 of the manual) from the top
- distribution directory to where LaTeX will find it; directory
- ~/texmf/tex/latex/boxdims for example, and refresh the LaTeX
- filename database (the exact command depends on your LaTeX
- distribution and may not be necessary).
-
- 3. Define the environment variable M4PATH to point to the installation
- directory determined in Step 1. For the bash shell, for
- example, add the following to your .bashrc file:
- export M4PATH='.:~/texmf/tex/latex/Circuit_macros:'
- but modify the path to the installation directory as necessary.
-
- 4. This is optional. For historical reasons, the default configuration file
- as distributed is gpic.m4. You can change it to pgf.m4 or pstricks.m4
- for use with dpic by editing the include command near the top of
- libgen.m4. To do this automatically, go to the installation directory
- and type
- "make pgfdefault" to set the default processor to dpic with Tikz pgf
- "make psdefault" to set the default processor to dpic with PSTricks
- "make gpicdefault" to restore gpic as the default.
-
- In case of difficulty, go to the examples directory, look at debug1.tex
- and debug2.m4, and follow instructions.
-
-WORKFLOW: The basic commands given above suffice for documents of moderate
- size and complexity; otherwise, a "make" facility or equivalent should be
- used or, for modest documents, diagram processing can be controlled from
- within the tex document source as described in the manual. For near-immediate
- viewing, three windows can be kept open: one in which to edit the source, one
- to process the source and produce postscript or pdf, and GSview 5.0, which
- updates when clicked. The Okular viewer also re-loads automatically.
-
- Special-purpose editors and GUI-based project tools such as TeXnicCenter
- can also be employed, or a scripting language can automate the steps as
- done by Latexmk or several other similar tools; see, for example,
- http://tex.stackexchange.com/questions/64/tools-for-automating-document-compilation
+ The basic commands given above suffice for documents of moderate
+ size and complexity; otherwise, a "make" facility or equivalent should
+ be used or, for modest documents, diagram processing can be controlled
+ from within the tex document source as described in the manual. For
+ near-immediate viewing of the basic process, three windows can be kept
+ open: one in which to edit the source, one to process the source and
+ produce postscript or pdf, and Okular or GSview 5.0, which updates
+ when clicked.
- NOTE: One of the configuration files (gpic.m4, pstricks.m4, pgf.m4,
- pdf.m4, postscript.m4, psfrag.m4, mpost.m4, mfpic.m4, svg.m4, or
- xfig.m4) must be read by m4 before (or at the beginning of) the diagram
- source file, depending on the required form of pic output. Otherwise,
- libgen.m4 can be read first but it will invoke the default configuration
- file, which is gpic.m4 in the distribution unless it has been changed
- during installation.
-
-TESTING:
- To test your installation, go to the examples directory (or copy the
- files Makefile, tst.tex, and any .m4 sources you might like to test
- to a working directory) and create a test circuit in the
- file test.m4. Copy ex01.m4, for example, or quick.m4 from the doc
- directory into test.m4.
-
- On a system with a "make" facility, first check the definitions at
- the top of the Makefile, and then type "make tst1" to produce the
- file tst.ps. If the source requires processing twice, type "make
- tst" instead. To process one of the example .m4 files in the
- examples directory, simply type "make name.ps" to process name.m4.
- If these tests work to your satisfaction, try typing simply "make" to
- produce examples.ps. To test .pdf files, go to the pgf directory,
- copy name.m4 there, and type either "make name.ps" or "make name.pdf"
- to test the file under pdflatex and TikZ PGF.
-
- The .m4 files in the examples directory can serve as models for your
- diagrams but keep in mind that some of them contain details that allow
- the source to be used with a variety of postprocessors. Sticking to one
- postprocessor such as tikz or PStricks allows for the simplest source.
- You might also wish to browse some of the included files that are not
- used to make examples.ps.
-
- A few of the sources in the examples directory are copies of files
- from the doc directory. They are duplicated to provide flexibility
- of directory structure and independency of sources.
-
- No "make" facility? You have to test by hand (but see below for
- diagram production software). Copy a test file as above into
- test.m4. Assuming you have dpic installed, type the following:
-
- m4 -I <path> pstricks.m4 test.m4 > test.pic
- dpic -p test.pic > test.tex
- latex tst
- dvips tst -o tst.ps
+INSTALLATION AND TESTING: See the INSTALL file.
SOURCES AND MANUALS:
View or print Circuit_macros.pdf in the doc directory.
@@ -223,7 +136,6 @@ SOURCES AND MANUALS:
http://gnuwin32.sourceforge.net/packages/m4.htm (m4 for Windows)
http://www.gnu.org/software/m4/manual/ (GNU m4 manual)
https://mbreen.com/m4.html (m4 by example)
- https://www.seindal.dk/rene/gnu/ (development site)
The m4 (computer language) article in Wikipedia gives a concise overview.
An academic discussion of the language can be found in
http://www.cs.stir.ac.uk/~kjt/research/pdf/expl-m4.pdf.
@@ -232,10 +144,6 @@ SOURCES AND MANUALS:
(Do not read this manual first). Autoconf uses quote characters [ and ]
instead of the default ` and ' which work well with the pic language.
- A video "Drawing Circuit Diagrams with Circuits Macros" by James Green
- showing how to use Circuit_macros with his setup is at
- https://www.youtube.com/watch?time_continue=53&v=pFRIBvUJHS4
-
Gpic is part of the GNU groff distribution, for which the source
and documentation is available from http://ftp.gnu.org/gnu/groff/
but there are mirror sites as well. The original AT&T pic manual
@@ -259,15 +167,14 @@ DPIC:
The best advice is to obtain the newest version.
The dpic distribution includes a manual dpic-doc.pdf containing a summary
- of the pic language and descriptions of features unique to dpic.
+ of the pic language and of features unique to dpic.
-EXAMPLES AND INTEGRATION WITH OTHER TOOLS:
+EXAMPLES
A set of examples is included in this distribution, showing electric
- circuits, block diagrams, flow charts, signal-flow graphs, basic use
- of colour and fill, and other applications.
-
- Read the manual Circuit_macros.pdf and view or print the file
- examples.ps in the examples directory. There are a few other source
+ circuits, block diagrams, flow charts, signal-flow graphs, basic
+ use of colour and fill, and other applications. Read the manual
+ Circuit_macros.pdf and view or print the file examples.pdf in the
+ examples directory. For the curious, There are additional source
files in the examples directory that are not shown in examples.pdf.
For the possibly unstable development version of these macros, try
http://ece.uwaterloo.ca/~aplevich/Circuit_macros/
@@ -277,48 +184,71 @@ EXAMPLES AND INTEGRATION WITH OTHER TOOLS:
examples directory are for testing metafont, metapost, pgf, psfrag,
pdf, and xfig examples.
- Installation and usage of the macros have evolved a little since the
- beginning so archived instructions on the net may be slightly more
- complicated than currently necessary. However, a number of people
- have developed tools that simplify workflow for their circumstances,
- which are beyond the scope of this distribution.
+INTEGRATION WITH OTHER TOOLS:
+ Installation and usage of the macros have evolved smewhat since the
+ beginning, so archived instructions on the net may be slightly more
+ complicated than currently necessary. Because I was producing books,
+ I simply added commands to the appropriate Makefiles. However, others
+ have developed tools that simplify workflow for their circumstances.
+ The following are representative but keep in mind that systems and
+ installations evolve ovr time:
+
+ A Python-based GUI called PyCirkuit is
+ at https://pypi.org/project/pycirkuit/ and
+ https://github.com/orestesmas/pycirkuit. For an
+ introduction, look at the FOSDEM video by Orestes Mas:
+ https://ftp.osuosl.org/pub/fosdem/2020/H.2215/pycirkuit.webm
+
+ A python build-automation tool, m4cm, by Peter Jan Randewijk is at
+ https://m4cmpy.wordpress.com/
+ with very clear instructions about getting started with Circuit_macros at
+ https://m4cmpy.wordpress.com/2020/02/23/getting-started-with-m4-circuit-macros/
+
+ Fabrice Salvaire has a blog and a useful bash script at
+ https://www.fabrice-salvaire.fr/en/blog/electronic-circuit-diagrams/
A set of examples and hints intended for his colleagues has been
produced by Alan Robert Clark at http://ytdp.ee.wits.ac.za/cct.html
- A Python-based GUI called PyCirkuit is at
- https://pypi.org/project/pycirkuit/ and
- https://github.com/orestesmas/pycirkuit.
- For an introduction, look at the FOSDEM video by Orestes Mas:
- https://ftp.osuosl.org/pub/fosdem/2020/H.2215/pycirkuit.webm
+ A video "Drawing Circuit Diagrams with Circuits Macros" by James Green
+ showing how to use Circuit_macros with his setup is at
+ https://www.youtube.com/watch?time_continue=53&v=pFRIBvUJHS4
- A KDE interface created by Matteo Agostinelli can be found at
- http://wwwu.uni-klu.ac.at/magostin/cirkuit.html. A git repository
- of a newer version of cirkuit by Andrew G. for Linux is at
- https://github.com/ag-ckt/cirkuit/tree/V0.5.0. Because of changes
- in library dependencies, there is uncertainty about installation
- possibilities.
+ A KDE interface created by Matteo Agostinelli can be found
+ at http://wwwu.uni-klu.ac.at/magostin/cirkuit.html. A git
+ repository of a newer version of cirkuit by Andrew G. for Linux
+ is at https://github.com/ag-ckt/cirkuit/tree/V0.5.0. There is
+ uncertainty about installation possibilities because of changes in
+ library dependencies.
A wiki offering examples and tips is at
http://swwiki.e-dschungel.de/circuit_macros
It is in German but Google translate works well on the page.
- Variations:
- See eschpic on Github for IEC-style electrical drawings.
+ LaTeX automation tools are discussed at, for example,
+ http://tex.stackexchange.com/questions/64/tools-for-automating-document-compilation
Mac users:
A previewer app for Mac OS X written by Collin J. Delker is available at
http://www.collindelker.com/wp/2013/04/circuit_macros_previewer/
- For an example of the use of dpic in a wiki (thanks to Jason Grout), see
- http://jasongrout.org/software/dokuwiki/format-plugin
-
A Windows batch file for Circuit_macros is found at
http://someonehasdonethis.blogspot.ca/2012/12/a-solution-for-drawing-circuit-diagrams.html
- The examples in the current distribution include some flowchart elements
- in Flow.m4. For a pic-only version that does not require m4, look at
- http://web.ing.puc.cl/~mtorrest/downloads.htm#TeX
+VARIATIONS
+ Macros such as these inevitably will be modified to suit individual
+ needs and taste. They continue to evolve in my own library as I use
+ them and as others send comments. No such collection can hope to
+ include all possible circuit-related symbols, so you will probably
+ find yourself writing your own macros or adapting some of these. Be
+ careful to rename modified macros to avoid confusion. The learning
+ curve compares well to other packages, but there is no trivially easy
+ way to produce high-quality graphics.
+
+ See eschpic on Github for IEC-style electrical drawings.
+
+ For an example of the use of dpic in a wiki (thanks to Jason Grout), see
+ http://jasongrout.org/software/dokuwiki/format-plugin
Pic dates from the 1980s and was first developed as a preprocessor for
the *roff family of Unix word processors. Some additional libraries such
@@ -329,10 +259,11 @@ EXAMPLES AND INTEGRATION WITH OTHER TOOLS:
http://www.math.uiuc.edu/~west/gpic.html
After minor adaptation to dpic syntax, many of them can be simplified.
- A collection of pic resources and related material is available at
- http://www.kohala.com/start/troff/troff.html In particular, W. Richard
- Stevens illustrated his books on Unix and TCP/IP using pic macros. Some
- of the sources found there need minor tuning to work under dpic.
+ A collection of traditional pic resources and related material is
+ available at http://www.kohala.com/start/troff/troff.html In particular,
+ W. Richard Stevens illustrated his books on Unix and TCP/IP using
+ pic macros. Some of the sources found there need minor tuning to work
+ under dpic.
MetaPost examples: Go to the examples/mpost directory. Check the
Makefile as described in the README file, type "make", and stand well back.
@@ -398,16 +329,6 @@ LIBRARIES:
for drawing double-line arrows are in darrow.m4. The file dpictools.pic
contains pic macros and is read automatically by some of the examples.
-MODIFICATIONS:
- Macros such as these inevitably will be modified to suit individual
- needs and taste. They continue to evolve in my own library as I use
- them and as others send comments. No such collection can hope to
- include all possible circuit-related symbols, so you will probably
- find yourself writing your own macros or adapting some of these. Be
- careful to rename modified macros to avoid confusion. The learning
- curve compares well to other packages, but there is no trivially easy
- way to produce high-quality graphics.
-
Feel free to contact me with comments or questions. I have retired
from full-time work but continue the hobby of maintaining these files.
I may now be able to spend more time on individual requests but I may
diff --git a/graphics/circuit_macros/darrow.m4 b/graphics/circuit_macros/darrow.m4
index 590760c081..c2742857af 100644
--- a/graphics/circuit_macros/darrow.m4
+++ b/graphics/circuit_macros/darrow.m4
@@ -1,7 +1,7 @@
divert(-1)
darrow.m4 Macros for double lines and arrows
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/doc/AmpTable.tex b/graphics/circuit_macros/doc/AmpTable.tex
new file mode 100644
index 0000000000..79bbf3bb66
--- /dev/null
+++ b/graphics/circuit_macros/doc/AmpTable.tex
@@ -0,0 +1,73 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0.125,0)\dpicstop
+\dpicdraw (0.625,0)
+ --(0.125,0.25)
+ --(0.125,-0.25)
+ --(0.625,0)
+ --(0.75,0)\dpicstop
+\draw (0.777674,0) node[right=-2bp]{{\tt amp}};
+\dpicdraw (0,-0.4)
+ --(0.225,-0.4)\dpicstop
+\dpicdraw (0.525,-0.4)
+ --(0.225,-0.25)
+ --(0.225,-0.55)
+ --(0.525,-0.4)
+ --(0.75,-0.4)\dpicstop
+\draw (0.777674,-0.4) node[right=-2bp]{{\tt amp(,0.3)}};
+\dpicdraw (2,0)
+ --(2.229167,0)\dpicstop
+\dpicdraw (2.345833,-0.175)
+ --(2.229167,-0.175)
+ --(2.229167,0.175)
+ --(2.345833,0.175)\dpicstop
+\dpicdraw (2.345833,0.175)
+ ..controls (2.442483,0.175) and (2.520833,0.09665)
+ ..(2.520833,0)
+ ..controls (2.520833,-0.09665) and (2.442483,-0.175)
+ ..(2.345833,-0.175)\dpicstop
+\dpicdraw (2.520833,0)
+ --(2.75,0)\dpicstop
+\draw (2.777674,0) node[right=-2bp]{{\tt delay}};
+\dpicdraw (2,-0.4)
+ --(2.291667,-0.4)\dpicstop
+\dpicdraw (2.358333,-0.5)
+ --(2.291667,-0.5)
+ --(2.291667,-0.3)
+ --(2.358333,-0.3)\dpicstop
+\dpicdraw (2.358333,-0.3)
+ ..controls (2.413562,-0.3) and (2.458333,-0.344772)
+ ..(2.458333,-0.4)
+ ..controls (2.458333,-0.455228) and (2.413562,-0.5)
+ ..(2.358333,-0.5)\dpicstop
+\dpicdraw (2.458333,-0.4)
+ --(2.75,-0.4)\dpicstop
+\draw (2.777674,-0.4) node[right=-2bp]{{\tt delay(,0.2)}};
+\dpicdraw (4.125,0.25)
+ --(4,0.25)
+ --(4,-0.25)
+ --(4.125,-0.25)\dpicstop
+\dpicdraw (4.625,0)
+ --(4.125,0.25)
+ --(4.125,-0.25)
+ --(4.625,0)
+ --(4.75,0)\dpicstop
+\draw (4.777674,0) node[right=-2bp]{{\tt integrator}};
+\dpicdraw (4.075,-0.35)
+ --(4,-0.35)
+ --(4,-0.65)
+ --(4.075,-0.65)\dpicstop
+\dpicdraw (4.375,-0.5)
+ --(4.075,-0.35)
+ --(4.075,-0.65)
+ --(4.375,-0.5)
+ --(4.75,-0.5)\dpicstop
+\draw (4.777674,-0.5) node[right=-2bp]{{\tt integrator(,0.3)}};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/AmpTable.m4 b/graphics/circuit_macros/doc/AmpTableMan.m4
index c94f682cbc..c94f682cbc 100644
--- a/graphics/circuit_macros/doc/AmpTable.m4
+++ b/graphics/circuit_macros/doc/AmpTableMan.m4
diff --git a/graphics/circuit_macros/doc/Antennas.m4 b/graphics/circuit_macros/doc/AntennasMan.m4
index 6053cd2e3f..6053cd2e3f 100644
--- a/graphics/circuit_macros/doc/Antennas.m4
+++ b/graphics/circuit_macros/doc/AntennasMan.m4
diff --git a/graphics/circuit_macros/doc/Audio.tex b/graphics/circuit_macros/doc/Audio.tex
new file mode 100644
index 0000000000..9531f8b0dc
--- /dev/null
+++ b/graphics/circuit_macros/doc/Audio.tex
@@ -0,0 +1,295 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.61348,0.294444)
+ --(0.849182,0.461111)
+ --(0.849182,-0.205556)
+ --(0.61348,-0.038889)\dpicstop
+\dpicdraw (0.61348,0.127778)
+ --(0.61348,0.294444)
+ --(0.377778,0.294444)
+ --(0.377778,-0.038889)
+ --(0.61348,-0.038889)
+ --(0.61348,0.127778)\dpicstop
+\draw (0.61348,-0.405556) node{\tt speaker};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.308208,0.213219)
+ --(0.377778,0.211111)
+ --(0.320857,0.251167) --cycle\dpicstop
+\dpicdraw (0.359436,0.217225)
+ --(0.227778,0.261111)\dpicstop
+\draw (0.227778,0.261111) node[above left=-2bp]{{\sl In1}};
+\filldraw[line width=0bp](0.311111,0.107778)
+ --(0.377778,0.127778)
+ --(0.311111,0.147778) --cycle\dpicstop
+\dpicdraw (0.358444,0.127778)
+ --(0.227778,0.127778)\dpicstop
+\draw (0.227778,0.127778) node[left=-2bp]{{\sl In2}};
+\filldraw[line width=0bp](0.320857,0.004389)
+ --(0.377778,0.044444)
+ --(0.308208,0.042336) --cycle\dpicstop
+\dpicdraw (0.359436,0.038331)
+ --(0.227778,-0.005556)\dpicstop
+\draw (0.227778,-0.005556) node[below left=-2bp]{{\sl In3}};
+\dpiclw=0.8bp
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.396648,0.351365)
+ --(0.436703,0.294444)
+ --(0.434595,0.364015) --cycle\dpicstop
+\dpicdraw (0.430589,0.312786)
+ --(0.386703,0.444444)\dpicstop
+\draw (0.386703,0.444444) node[above left=-2bp]{{\sl In4}};
+\filldraw[line width=0bp](0.556663,0.364015)
+ --(0.554554,0.294444)
+ --(0.59461,0.351365) --cycle\dpicstop
+\dpicdraw (0.560668,0.312786)
+ --(0.604554,0.444444)\dpicstop
+\draw (0.604554,0.444444) node[above=-2bp]{{\sl In5}};
+\filldraw[line width=0bp](0.434595,-0.108459)
+ --(0.436703,-0.038889)
+ --(0.396648,-0.09581) --cycle\dpicstop
+\dpicdraw (0.430589,-0.057231)
+ --(0.386703,-0.188889)\dpicstop
+\draw (0.386703,-0.188889) node[below left=-2bp]{{\sl In6}};
+\filldraw[line width=0bp](0.59461,-0.09581)
+ --(0.554554,-0.038889)
+ --(0.556663,-0.108459) --cycle\dpicstop
+\dpicdraw (0.560668,-0.057231)
+ --(0.604554,-0.188889)\dpicstop
+\draw (0.604554,-0.188889) node[below=-2bp]{{\sl In7}};
+\filldraw[line width=0bp](0.66905,0.219687)
+ --(0.61348,0.177778)
+ --(0.682943,0.182177) --cycle\dpicstop
+\dpicdraw (0.63161,0.184493)
+ --(0.757545,0.231135)
+ ..controls (0.841502,0.26223) and (0.900147,0.311111)
+ ..(0.93348,0.377778)
+ --(0.98348,0.477778)\dpicstop
+\draw (0.98348,0.477778) node[above=-2bp]{\sl Box};
+\dpiclw=0.8bp
+\dpicdraw (1.469182,0.044444)
+ --(1.587033,0.106944)
+ --(1.587033,-0.184722)
+ --(1.469182,-0.122222)\dpicstop
+\dpicdraw (1.469182,-0.038889)
+ --(1.469182,0.127778)
+ --(1.23348,0.127778)
+ --(1.23348,-0.205556)
+ --(1.469182,-0.205556)
+ --(1.469182,-0.038889)\dpicstop
+\draw (1.410257,-0.505556) node{\tt speaker(,{,}H)};
+\dpicdraw (2.214811,0.511111)
+ --(2.214811,0.636111)
+ --(1.964811,0.636111)
+ --(1.964811,0.386111)
+ --(2.214811,0.386111)
+ --(2.214811,0.511111)\dpicstop
+\dpicdraw (2.339811,0.511111) circle (0.049213in)\dpicstop
+\draw (2.214811,0.186111) node{\tt bell};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.895241,0.575719)
+ --(1.964811,0.573611)
+ --(1.90789,0.613667) --cycle\dpicstop
+\dpicdraw (1.946469,0.579725)
+ --(1.814811,0.623611)\dpicstop
+\draw (1.814811,0.623611) node[above left=-2bp]{{\sl In1}};
+\filldraw[line width=0bp](1.898145,0.491111)
+ --(1.964811,0.511111)
+ --(1.898145,0.531111) --cycle\dpicstop
+\dpicdraw (1.945477,0.511111)
+ --(1.814811,0.511111)\dpicstop
+\draw (1.814811,0.511111) node[left=-2bp]{{\sl In2}};
+\filldraw[line width=0bp](1.90789,0.408556)
+ --(1.964811,0.448611)
+ --(1.895241,0.446503) --cycle\dpicstop
+\dpicdraw (1.946469,0.442497)
+ --(1.814811,0.398611)\dpicstop
+\draw (1.814811,0.398611) node[below left=-2bp]{{\sl In3}};
+\dpiclw=0.8bp
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.93619,0.680487)
+ --(1.989811,0.636111)
+ --(1.969472,0.702675) --cycle\dpicstop
+\dpicdraw (1.979087,0.652198)
+ --(1.889811,0.786111)\dpicstop
+\draw (1.889811,0.786111) node[above=-2bp]{\sl Box};
+\filldraw[line width=0bp](2.319811,0.702778)
+ --(2.339811,0.636111)
+ --(2.359811,0.702778) --cycle\dpicstop
+\dpicdraw (2.339811,0.655445)
+ --(2.339811,0.786111)\dpicstop
+\draw (2.339811,0.786111) node[above=-2bp]{\sl Circle};
+\dpiclw=0.8bp
+\dpicdraw (3.492589,0.386111)
+ --(3.492589,0.636111)\dpicstop
+\dpicdraw (3.367589,0.511111) circle (0.049213in)\dpicstop
+\draw (3.367589,0.186111) node{\tt microphone};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](3.189766,0.575719)
+ --(3.259336,0.573611)
+ --(3.202415,0.613667) --cycle\dpicstop
+\dpicdraw (3.240994,0.579725)
+ --(3.109336,0.623611)\dpicstop
+\draw (3.109336,0.623611) node[above left=-2bp]{{\sl In1}};
+\filldraw[line width=0bp](3.175922,0.491111)
+ --(3.242589,0.511111)
+ --(3.175922,0.531111) --cycle\dpicstop
+\dpicdraw (3.223255,0.511111)
+ --(3.092589,0.511111)\dpicstop
+\draw (3.092589,0.511111) node[left=-2bp]{{\sl In2}};
+\filldraw[line width=0bp](3.202415,0.408556)
+ --(3.259336,0.448611)
+ --(3.189766,0.446503) --cycle\dpicstop
+\dpicdraw (3.240994,0.442497)
+ --(3.109336,0.398611)\dpicstop
+\draw (3.109336,0.398611) node[below left=-2bp]{{\sl In3}};
+\dpiclw=0.8bp
+\dpiclw=0.4bp
+\filldraw[line width=0bp](3.347589,0.702778)
+ --(3.367589,0.636111)
+ --(3.387589,0.702778) --cycle\dpicstop
+\dpicdraw (3.367589,0.655445)
+ --(3.367589,0.786111)\dpicstop
+\draw (3.367589,0.786111) node[above=-2bp]{\sl Circle};
+\dpiclw=0.8bp
+\dpicdraw (4.520367,0.511111)
+ --(4.520367,0.636111)
+ --(4.270367,0.636111)
+ --(4.270367,0.386111)
+ --(4.520367,0.386111)
+ --(4.520367,0.511111)\dpicstop
+\dpicdraw (4.520367,0.636111)
+ --(4.585072,0.39463)\dpicstop
+\draw (4.427719,0.186111) node{\tt buzzer};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](4.200797,0.575719)
+ --(4.270367,0.573611)
+ --(4.213446,0.613667) --cycle\dpicstop
+\dpicdraw (4.252025,0.579725)
+ --(4.120367,0.623611)\dpicstop
+\draw (4.120367,0.623611) node[above left=-2bp]{{\sl In1}};
+\filldraw[line width=0bp](4.2037,0.491111)
+ --(4.270367,0.511111)
+ --(4.2037,0.531111) --cycle\dpicstop
+\dpicdraw (4.251033,0.511111)
+ --(4.120367,0.511111)\dpicstop
+\draw (4.120367,0.511111) node[left=-2bp]{{\sl In2}};
+\filldraw[line width=0bp](4.213446,0.408556)
+ --(4.270367,0.448611)
+ --(4.200797,0.446503) --cycle\dpicstop
+\dpicdraw (4.252025,0.442497)
+ --(4.120367,0.398611)\dpicstop
+\draw (4.120367,0.398611) node[below left=-2bp]{{\sl In3}};
+\dpiclw=0.8bp
+\dpiclw=0.4bp
+\filldraw[line width=0bp](4.375367,0.702778)
+ --(4.395367,0.636111)
+ --(4.415367,0.702778) --cycle\dpicstop
+\dpicdraw (4.395367,0.655445)
+ --(4.395367,0.786111)\dpicstop
+\draw (4.395367,0.786111) node[above=-2bp]{\sl Box};
+\dpiclw=0.8bp
+\dpicdraw (5.529516,0.386111)
+ --(5.529516,0.719444)\dpicstop
+\dpicdraw (5.529516,0.719444)
+ ..controls (5.437469,0.719444) and (5.362849,0.644825)
+ ..(5.362849,0.552778)
+ ..controls (5.362849,0.46073) and (5.437469,0.386111)
+ ..(5.529516,0.386111)\dpicstop
+\draw (5.446183,0.186111) node{\tt buzzer(,{,}C)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](5.302811,0.610442)
+ --(5.372381,0.608333)
+ --(5.31546,0.648389) --cycle\dpicstop
+\dpicdraw (5.354039,0.614447)
+ --(5.222381,0.658333)\dpicstop
+\draw (5.222381,0.658333) node[above left=-2bp]{{\sl In1}};
+\filldraw[line width=0bp](5.296183,0.532778)
+ --(5.362849,0.552778)
+ --(5.296183,0.572778) --cycle\dpicstop
+\dpicdraw (5.343515,0.552778)
+ --(5.212849,0.552778)\dpicstop
+\draw (5.212849,0.552778) node[left=-2bp]{{\sl In2}};
+\filldraw[line width=0bp](5.31546,0.457167)
+ --(5.372381,0.497222)
+ --(5.302811,0.495114) --cycle\dpicstop
+\dpicdraw (5.354039,0.491108)
+ --(5.222381,0.447222)\dpicstop
+\draw (5.222381,0.447222) node[below left=-2bp]{{\sl In3}};
+\dpiclw=0.8bp
+\dpiclw=0.4bp
+\filldraw[line width=0bp](5.589341,0.68835)
+ --(5.529516,0.652778)
+ --(5.599043,0.649544) --cycle\dpicstop
+\dpicdraw (5.548273,0.657467)
+ --(5.605561,0.671789)
+ ..controls (5.643753,0.681337) and (5.671183,0.711111)
+ ..(5.687849,0.761111)
+ --(5.712849,0.836111)\dpicstop
+\draw (5.712849,0.836111) node[above=-2bp]{\sl Face};
+\dpiclw=0.8bp
+\dpicdraw (3.065693,-0.216667)
+ --(3.065693,-0.091667)
+ --(2.899026,-0.091667)
+ --(2.899026,-0.341667)
+ --(3.065693,-0.341667)
+ --(3.065693,-0.216667)\dpicstop
+\dpicdraw[line width=1.6bp](3.076762,-0.383333)
+ --(3.076762,-0.05)\dpicstop
+\draw (2.987894,-0.583333) node{\tt earphone};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](2.829456,-0.152058)
+ --(2.899026,-0.154167)
+ --(2.842105,-0.114111) --cycle\dpicstop
+\dpicdraw (2.880684,-0.148053)
+ --(2.749026,-0.104167)\dpicstop
+\draw (2.749026,-0.104167) node[above left=-2bp]{{\sl In1}};
+\filldraw[line width=0bp](2.832359,-0.236667)
+ --(2.899026,-0.216667)
+ --(2.832359,-0.196667) --cycle\dpicstop
+\dpicdraw (2.879692,-0.216667)
+ --(2.749026,-0.216667)\dpicstop
+\draw (2.749026,-0.216667) node[left=-2bp]{{\sl In2}};
+\filldraw[line width=0bp](2.842105,-0.319222)
+ --(2.899026,-0.279167)
+ --(2.829456,-0.281275) --cycle\dpicstop
+\dpicdraw (2.880684,-0.285281)
+ --(2.749026,-0.329167)\dpicstop
+\draw (2.749026,-0.329167) node[below left=-2bp]{{\sl In3}};
+\dpiclw=0.8bp
+\dpiclw=0.4bp
+\filldraw[line width=0bp](2.921077,-0.058668)
+ --(2.982359,-0.091667)
+ --(2.949361,-0.030384) --cycle\dpicstop
+\dpicdraw (2.968688,-0.077996)
+ --(2.832359,0.058333)\dpicstop
+\draw (2.832359,0.058333) node[above=-2bp]{\sl Box};
+\dpiclw=0.8bp
+\dpicdraw (3.85454,-0.283333) circle (0.03937in)\dpicstop
+\dpicdraw (4.35454,-0.283333) circle (0.03937in)\dpicstop
+\dpicdraw (3.87454,-0.185354)
+ ..controls (3.960887,0.01734) and (4.248193,0.01734)
+ ..(4.33454,-0.185354)\dpicstop
+\draw (4.10454,-0.583333) node{\tt earphone(,{,}C)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](3.793257,-0.250335)
+ --(3.85454,-0.283333)
+ --(3.821542,-0.222051) --cycle\dpicstop
+\dpicdraw (3.840869,-0.269662)
+ --(3.70454,-0.133333)\dpicstop
+\draw (3.70454,-0.133333) node[left=-2bp]{\sl L};
+\filldraw[line width=0bp](4.387538,-0.222051)
+ --(4.35454,-0.283333)
+ --(4.415823,-0.250335) --cycle\dpicstop
+\dpicdraw (4.368211,-0.269662)
+ --(4.50454,-0.133333)\dpicstop
+\draw (4.50454,-0.133333) node[right=-2bp]{\sl R};
+\draw (4.10454,-0.033333) node[above=-2bp]{\sl N};
+\draw (4.10454,-0.283333) node{\sl C};
+\dpiclw=0.8bp
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Audio.m4 b/graphics/circuit_macros/doc/AudioMan.m4
index 722a2434d8..662c6d0c99 100644
--- a/graphics/circuit_macros/doc/Audio.m4
+++ b/graphics/circuit_macros/doc/AudioMan.m4
@@ -46,14 +46,6 @@ L:[
thicklines_
] with .w at last [].e+(0.0,0.5)
[
- M: microphone
- `"\tt microphone"' at M.s+(0,-0.2) #below
- In123(M)
- thinlines_
- arrow <- from M.Circle.n up 0.15 ; "\sl Circle" above
- thicklines_
- ] with .sw at last [].se+(0.4,0)
-[
Z: buzzer
`"\tt buzzer"' at Z.s+(0,-0.2) #below
In123(Z)
@@ -71,6 +63,24 @@ R:[
"\sl Face" above
thicklines_
] with .sw at last [].se+(0.4,0)
+[
+ M: microphone
+ `"\tt microphone"' at M.s+(0,-0.2) #below
+ In123(M)
+ thinlines_
+ arrow <- from M.Circle.n up 0.15 ; "\sl Circle" above
+ thicklines_
+ ] with .sw at last [].se+(0.4,0)
+[
+ M: microphone(A)
+ `"\tt microphone(A)"' at M.s+(0,-0.2) #below
+ thinlines_
+ arrow <- from M.Head.e+(0,0.05) right 0.2; "\sl Head" ljust
+ spline 0.5 <- from M.Head.b down 0.05 right 0.1 then right 0.1
+ "\sl Head.b" ljust
+ arrow <- from M.Stand.s right 0.2; "\sl Stand.s" ljust
+ thicklines_
+ ] with .n at last [].s+(0,-0.05)
[[
E: earphone
`"\tt earphone"' at E.s+(0,-0.2) #below
@@ -89,6 +99,6 @@ R:[
"\sl C" at E.C
thicklines_
] with .sw at last [].se+(0.6,0)
-] with .n at (0.6 between L and R, R.s)+(0,0.1-ifdpic(0.2,0.25))
+] with .n at (0.6 between L and R, R.s)+(0.5,0.1-ifdpic(0.2,0.25))
.PE
diff --git a/graphics/circuit_macros/doc/Bip.tex b/graphics/circuit_macros/doc/Bip.tex
new file mode 100644
index 0000000000..d44b0376e6
--- /dev/null
+++ b/graphics/circuit_macros/doc/Bip.tex
@@ -0,0 +1,175 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.1625,0)
+ --(0.1625,0.1)
+ --(0.158796,0.101667)\dpicstop
+\dpicdraw (0.1625,0.5)
+ --(0.1625,0.4)
+ --(0.158796,0.398333)\dpicstop
+\dpicdraw (-0.0375,0.15)
+ --(-0.0375,0.35)\dpicstop
+\dpicdraw (-0.1625,0.25)
+ --(-0.0375,0.25)\dpicstop
+\dpicdraw (0.1625,0.1)
+ --(-0.0375,0.19)\dpicstop
+\filldraw[line width=0bp](0.025108,0.131366)
+ --(0.1125,0.1225)
+ --(0.047906,0.182028) --cycle\dpicstop
+\dpicdraw (0.096479,0.129709)
+ --(0.0125,0.1675)\dpicstop
+\dpicdraw (0.1625,0.4)
+ --(-0.0375,0.31)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw[dotted](-0.1625,0) rectangle (0.1625,0.5)\dpicstop
+\dpiclw=0.8bp
+\draw (0.1625,-0.05) node[below=-2bp]{\hbox{\sl E}};
+\draw (-0.1625,0.25) node[left=-2bp]{\hbox{\sl B}};
+\draw (0.1625,0.5) node[above=-2bp]{\hbox{\sl C}};
+\draw (0,-0.35) node[below=-2bp]{{\tt bi\_tr(up\_ dimen\_)}};
+\dpicdraw (0.6125,0.05)
+ --(0.6125,0.25)\dpicstop
+\dpicdraw (0.7375,0.15)
+ --(0.6125,0.15)\dpicstop
+\dpicdraw (0.4125,0)
+ --(0.6125,0.09)\dpicstop
+\filldraw[line width=0bp](0.527094,0.082028)
+ --(0.4625,0.0225)
+ --(0.549892,0.031366) --cycle\dpicstop
+\dpicdraw (0.478521,0.029709)
+ --(0.5625,0.0675)\dpicstop
+\dpicdraw (0.4125,0.3)
+ --(0.6125,0.21)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw[dotted](0.4125,0) rectangle (0.7375,0.3)\dpicstop
+\dpiclw=0.8bp
+\draw (0.4125,-0.05) node[below=-2bp]{\hbox{\sl E}};
+\draw (0.7375,0.15) node[right=-2bp]{\hbox{\sl B}};
+\draw (0.4125,0.3) node[above=-2bp]{\hbox{\sl C}};
+\draw (0.575,-0.2) node[below=-2bp]{{\tt bi\_tr(,R)}};
+\dpicdraw (1.3625,0.05)
+ --(1.3625,0.25)\dpicstop
+\dpicdraw (1.2375,0.15)
+ --(1.3625,0.15)\dpicstop
+\dpicdraw (1.5625,0)
+ --(1.3625,0.09)\dpicstop
+\filldraw[line width=0bp](1.499892,0.058634)
+ --(1.4125,0.0675)
+ --(1.477094,0.007972) --cycle\dpicstop
+\dpicdraw (1.5125,0.0225)
+ --(1.428521,0.060291)\dpicstop
+\dpicdraw (1.5625,0.3)
+ --(1.3625,0.21)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw[dotted](1.2375,0) rectangle (1.5625,0.3)\dpicstop
+\dpiclw=0.8bp
+\draw (1.5625,-0.05) node[below=-2bp]{\hbox{\sl E}};
+\draw (1.2375,0.15) node[left=-2bp]{\hbox{\sl B}};
+\draw (1.5625,0.3) node[above=-2bp]{\hbox{\sl C}};
+\draw (1.4,-0.35) node[below=-2bp]{{\tt bi\_tr(,{,}P)}};
+\dpicdraw (2.2625,0.05)
+ --(2.2625,0.25)\dpicstop
+\dpicdraw (2.1375,0.15)
+ --(2.2625,0.15)\dpicstop
+\dpicdraw (2.4625,0)
+ --(2.2625,0.09)\dpicstop
+\filldraw[line width=0bp](2.325108,0.031366)
+ --(2.4125,0.0225)
+ --(2.347906,0.082028) --cycle\dpicstop
+\dpicdraw (2.396479,0.029709)
+ --(2.3125,0.0675)\dpicstop
+\dpicdraw (2.4625,0.3)
+ --(2.2625,0.21)\dpicstop
+\dpicdraw (2.1375,0.15)
+ ..controls (2.1375,0.260457) and (2.227043,0.35)
+ ..(2.3375,0.35)
+ ..controls (2.447957,0.35) and (2.5375,0.260457)
+ ..(2.5375,0.15)\dpicstop
+\dpicdraw (2.5375,0.15)
+ --(2.5375,0.15)\dpicstop
+\dpicdraw (2.5375,0.15)
+ ..controls (2.5375,0.039543) and (2.447957,-0.05)
+ ..(2.3375,-0.05)
+ ..controls (2.227043,-0.05) and (2.1375,0.039543)
+ ..(2.1375,0.15)\dpicstop
+\dpicdraw (2.1375,0.15)
+ --(2.1375,0.15)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw[dotted](2.1375,-0.05) rectangle (2.5375,0.35)\dpicstop
+\dpiclw=0.8bp
+\draw (2.4625,-0.05) node[below=-2bp]{\hbox{\sl E}};
+\draw (2.1375,0.15) node[left=-2bp]{\hbox{\sl B}};
+\draw (2.4625,0.3) node[above=-2bp]{\hbox{\sl C}};
+\draw (2.3375,-0.2) node[below=-2bp]{{\tt bi\_tr(,{,},E)}};
+\dpicdraw (2.9125,0.05)
+ --(2.9125,0.25)\dpicstop
+\dpicdraw (3.1125,0)
+ --(2.9125,0.09)\dpicstop
+\filldraw[line width=0bp](2.975108,0.031366)
+ --(3.0625,0.0225)
+ --(2.997906,0.082028) --cycle\dpicstop
+\dpicdraw (3.046479,0.029709)
+ --(2.9625,0.0675)\dpicstop
+\dpicdraw (3.1125,0.3)
+ --(2.9125,0.21)\dpicstop
+\dpicdraw (2.7875,0.15)
+ --(2.8775,0.15)\dpicstop
+\dpicdraw (2.8775,0.05)
+ --(2.8775,0.25)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw[dotted](2.7875,0) rectangle (3.1125,0.3)\dpicstop
+\dpiclw=0.8bp
+\draw (3.1125,-0.05) node[below=-2bp]{\hbox{\sl E}};
+\draw (2.7875,0.15) node[left=-2bp]{\hbox{\sl G}};
+\draw (3.1125,0.3) node[above=-2bp]{\hbox{\sl C}};
+\draw (2.95,-0.35) node[below=-2bp]{{\tt igbt}};
+\dpicdraw (3.4625,0.15)
+ --(3.4625,0.35)\dpicstop
+\dpicdraw (3.6625,0.1)
+ --(3.4625,0.19)\dpicstop
+\filldraw[line width=0bp](3.525108,0.131366)
+ --(3.6125,0.1225)
+ --(3.547906,0.182028) --cycle\dpicstop
+\dpicdraw (3.596479,0.129709)
+ --(3.5125,0.1675)\dpicstop
+\dpicdraw (3.6625,0.4)
+ --(3.4625,0.31)\dpicstop
+\dpicdraw (3.3525,0.175)
+ --(3.4275,0.175)
+ --(3.4275,0.325)\dpicstop
+\dpicdraw (3.6625,0)
+ --(3.8625,0)\dpicstop
+\dpicdraw (3.6625,0.5)
+ --(3.8625,0.5)\dpicstop
+\dpicdraw (3.8625,0)
+ --(3.8625,0.213916)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (3.8625,0.213916)
+ --(3.820833,0.213916)
+ --(3.8625,0.28055)
+ --(3.904167,0.213916)
+ --(3.8625,0.213916)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (3.908218,0.286084)
+ --(3.816782,0.286084)\dpicstop
+\dpicdraw (3.8625,0.286084)
+ --(3.8625,0.5)\dpicstop
+\dpicdraw (3.6625,0)
+ --(3.6625,0.1)\dpicstop
+\dpicdraw (3.6625,0.5)
+ --(3.6625,0.4)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw[dotted](3.3525,0) rectangle (3.913753,0.5)\dpicstop
+\dpiclw=0.8bp
+\draw (3.6625,-0.05) node[below=-2bp]{\hbox{\sl E}};
+\draw (3.3525,0.175) node[left=-2bp]{\hbox{\sl G}};
+\draw (3.6625,0.5) node[above=-2bp]{\hbox{\sl C}};
+\draw (3.633127,-0.2) node[below=-2bp]{{\tt igbt(,{,}LD)}};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Bip.m4 b/graphics/circuit_macros/doc/BipMan.m4
index 121517d16d..121517d16d 100644
--- a/graphics/circuit_macros/doc/Bip.m4
+++ b/graphics/circuit_macros/doc/BipMan.m4
diff --git a/graphics/circuit_macros/doc/CctTable.tex b/graphics/circuit_macros/doc/CctTable.tex
new file mode 100644
index 0000000000..ee442a4f3b
--- /dev/null
+++ b/graphics/circuit_macros/doc/CctTable.tex
@@ -0,0 +1,858 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0.25,0)
+ --(0.270833,0.041667)
+ --(0.3125,-0.041667)
+ --(0.354167,0.041667)
+ --(0.395833,-0.041667)
+ --(0.4375,0.041667)
+ --(0.479167,-0.041667)
+ --(0.5,0)
+ --(0.75,0)\dpicstop
+\draw (0.777674,0) node[right=-2bp]{{\tt resistor}};
+\dpicdraw (2.05,0)
+ --(2.3,0)
+ --(2.341667,0.083333)
+ --(2.383333,0)
+ --(2.425,0.083333)
+ --(2.466667,0)
+ --(2.508333,0.083333)
+ --(2.55,0)
+ --(2.55,0)
+ --(2.8,0)\dpicstop
+\draw (2.827674,0) node[right=-2bp]{\tt resistor(,{,}Q) };
+\dpicdraw (4.1,0)
+ --(4.35,0)\dpicstop
+\dpicdraw (4.6,0)
+ --(4.6,0.05)
+ --(4.35,0.05)
+ --(4.35,-0.05)
+ --(4.6,-0.05)
+ --(4.6,0)\dpicstop
+\dpicdraw (4.6,0)
+ --(4.85,0)\dpicstop
+\draw (4.877674,0) node[right=-2bp]{\shortstack[l]{\tt resistor(,{,}E)\\ {\tt $\equiv$ ebox}}};
+\dpicdraw (0,-0.28)
+ --(0.25,-0.28)\dpicstop
+\dpicdraw (0.5,-0.28)
+ --(0.5,-0.23)
+ --(0.25,-0.23)
+ --(0.25,-0.33)
+ --(0.5,-0.33)
+ --(0.5,-0.28)\dpicstop
+\dpicdraw (0.5,-0.28)
+ --(0.75,-0.28)\dpicstop
+\dpicdraw (0.45,-0.23)
+ --(0.3,-0.33)\dpicstop
+\draw (0.777674,-0.28) node[right=-2bp]{\tt resistor(,{,}ES) };
+\dpicdraw (2.05,-0.28)
+ --(2.3,-0.28)
+ --(2.3,-0.221667)
+ --(2.35,-0.221667)
+ --(2.35,-0.28)
+ --(2.4,-0.28)
+ --(2.4,-0.221667)
+ --(2.45,-0.221667)
+ --(2.45,-0.28)
+ --(2.5,-0.28)
+ --(2.5,-0.221667)
+ --(2.55,-0.221667)
+ --(2.55,-0.28)
+ --(2.55,-0.28)
+ --(2.8,-0.28)\dpicstop
+\draw (2.827674,-0.28) node[right=-2bp]{\tt resistor(,{,}H) };
+\dpicdraw (4.1,-0.28)
+ --(4.35,-0.28)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!50!black]
+\dpicdraw (4.6,-0.28)
+ --(4.6,-0.23)
+ --(4.35,-0.23)
+ --(4.35,-0.33)
+ --(4.6,-0.33)
+ --(4.6,-0.28)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.6,-0.28)
+ --(4.85,-0.28)\dpicstop
+\draw (4.877674,-0.28) node[right=-2bp]{{\tt ebox(,{,},0.5)}};
+\dpicdraw (0,-0.56)
+ --(0.25,-0.56)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.25,-0.56)
+ --(0.25,-0.6225)
+ --(0.375,-0.56)
+ --(0.25,-0.56)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.5,-0.56)
+ --(0.5,-0.4975)
+ --(0.375,-0.56)
+ --(0.5,-0.56)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.5,-0.56)
+ --(0.75,-0.56)\dpicstop
+\draw (0.777674,-0.56) node[right=-2bp]{{\tt resistor(,{,}V)}};
+\dpicdraw (2.05,-0.61)
+ --(2.375,-0.61)
+ --(2.375,-0.41)
+ --(2.425,-0.36)
+ --(2.475,-0.41)
+ --(2.475,-0.61)
+ --(2.8,-0.61)\dpicstop
+\dpicdraw[fill=black](2.425,-0.36) circle (0.007874in)\dpicstop
+\draw (2.827674,-0.61) node[right=-2bp]{{\tt thermocouple}};
+\dpicdraw (4.1,-0.56)
+ --(4.225,-0.56)\dpicstop
+\dpicdraw (4.725,-0.56)
+ --(4.725,-0.41)
+ --(4.225,-0.41)
+ --(4.225,-0.71)
+ --(4.725,-0.71)
+ --(4.725,-0.56)\dpicstop
+\dpicdraw (4.725,-0.56)
+ --(4.85,-0.56)\dpicstop
+\draw (4.877674,-0.56) node[right=-2bp]{{\tt ebox(,0.5,0.3)}};
+\dpicdraw (0,-0.84)
+ --(0.25,-0.84)\dpicstop
+\dpicdraw (0.25,-0.84)
+ --(0.25,-0.845556)\dpicstop
+\dpicdraw (0.25,-0.84)
+ ..controls (0.25,-0.822741) and (0.263991,-0.80875)
+ ..(0.28125,-0.80875)
+ ..controls (0.298509,-0.80875) and (0.3125,-0.822741)
+ ..(0.3125,-0.84)\dpicstop
+\dpicdraw (0.3125,-0.84)
+ --(0.3125,-0.845556)\dpicstop
+\dpicdraw (0.3125,-0.84)
+ ..controls (0.3125,-0.822741) and (0.326491,-0.80875)
+ ..(0.34375,-0.80875)
+ ..controls (0.361009,-0.80875) and (0.375,-0.822741)
+ ..(0.375,-0.84)\dpicstop
+\dpicdraw (0.375,-0.84)
+ --(0.375,-0.845556)\dpicstop
+\dpicdraw (0.375,-0.84)
+ ..controls (0.375,-0.822741) and (0.388991,-0.80875)
+ ..(0.40625,-0.80875)
+ ..controls (0.423509,-0.80875) and (0.4375,-0.822741)
+ ..(0.4375,-0.84)\dpicstop
+\dpicdraw (0.4375,-0.84)
+ --(0.4375,-0.845556)\dpicstop
+\dpicdraw (0.4375,-0.84)
+ ..controls (0.4375,-0.822741) and (0.451491,-0.80875)
+ ..(0.46875,-0.80875)
+ ..controls (0.486009,-0.80875) and (0.5,-0.822741)
+ ..(0.5,-0.84)\dpicstop
+\dpicdraw (0.5,-0.84)
+ --(0.5,-0.845556)\dpicstop
+\dpicdraw (0.5,-0.84)
+ --(0.75,-0.84)\dpicstop
+\draw (0.777674,-0.84) node[right=-2bp]{{\tt inductor}};
+\dpicdraw (2.05,-0.84)
+ --(2.283266,-0.84)\dpicstop
+\dpicdraw[line width=0.4bp](2.283266,-0.84) circle (0.00109in)\dpicstop
+\dpicdraw (2.283266,-0.84)
+ ..controls (2.265746,-0.802428) and (2.298931,-0.761082)
+ ..(2.339404,-0.770054)
+ ..controls (2.379877,-0.779027) and (2.392478,-0.830524)
+ ..(2.360721,-0.857171)\dpicstop
+\dpicdraw[line width=0.4bp](2.360721,-0.857171) circle (0.00109in)\dpicstop
+\dpicdraw (2.360721,-0.857171)
+ ..controls (2.324962,-0.827166) and (2.34618,-0.768869)
+ ..(2.392861,-0.768869)
+ ..controls (2.439541,-0.768869) and (2.460759,-0.827166)
+ ..(2.425,-0.857171)\dpicstop
+\dpicdraw[line width=0.4bp](2.425,-0.857171) circle (0.00109in)\dpicstop
+\dpicdraw (2.425,-0.857171)
+ ..controls (2.389241,-0.827166) and (2.410459,-0.768869)
+ ..(2.457139,-0.768869)
+ ..controls (2.50382,-0.768869) and (2.525038,-0.827166)
+ ..(2.489279,-0.857171)\dpicstop
+\dpicdraw[line width=0.4bp](2.489279,-0.857171) circle (0.00109in)\dpicstop
+\dpicdraw (2.489279,-0.857171)
+ ..controls (2.457522,-0.830524) and (2.470123,-0.779027)
+ ..(2.510596,-0.770054)
+ ..controls (2.551069,-0.761082) and (2.584254,-0.802428)
+ ..(2.566734,-0.84)\dpicstop
+\dpicdraw[line width=0.4bp](2.566734,-0.84) circle (0.00109in)\dpicstop
+\dpicdraw (2.566734,-0.84)
+ --(2.8,-0.84)\dpicstop
+\draw (2.827674,-0.84) node[right=-2bp]{{\tt inductor(,W)}};
+\dpicdraw (4.1,-0.84)
+ --(4.35,-0.84)\dpicstop
+\dpicdraw[line width=0.4bp](4.35,-0.84) circle (0.00109in)\dpicstop
+\dpicdraw (4.35,-0.84)
+ ..controls (4.35,-0.805625) and (4.364625,-0.7775)
+ ..(4.3825,-0.7775)
+ ..controls (4.400375,-0.7775) and (4.415,-0.797188)
+ ..(4.415,-0.82125)
+ ..controls (4.415,-0.845313) and (4.40825,-0.865)
+ ..(4.4,-0.865)
+ ..controls (4.39175,-0.865) and (4.385,-0.845313)
+ ..(4.385,-0.82125)
+ ..controls (4.385,-0.797188) and (4.403,-0.7775)
+ ..(4.425,-0.7775)
+ ..controls (4.447,-0.7775) and (4.465,-0.797188)
+ ..(4.465,-0.82125)
+ ..controls (4.465,-0.845313) and (4.45825,-0.865)
+ ..(4.45,-0.865)
+ ..controls (4.44175,-0.865) and (4.435,-0.845313)
+ ..(4.435,-0.82125)
+ ..controls (4.435,-0.797188) and (4.453,-0.7775)
+ ..(4.475,-0.7775)
+ ..controls (4.497,-0.7775) and (4.515,-0.797188)
+ ..(4.515,-0.82125)
+ ..controls (4.515,-0.845313) and (4.50825,-0.865)
+ ..(4.5,-0.865)
+ ..controls (4.49175,-0.865) and (4.485,-0.845313)
+ ..(4.485,-0.82125)
+ ..controls (4.485,-0.797188) and (4.503,-0.7775)
+ ..(4.525,-0.7775)
+ ..controls (4.547,-0.7775) and (4.565,-0.797188)
+ ..(4.565,-0.82125)
+ ..controls (4.565,-0.845313) and (4.55825,-0.865)
+ ..(4.55,-0.865)
+ ..controls (4.54175,-0.865) and (4.535,-0.845313)
+ ..(4.535,-0.82125)
+ ..controls (4.535,-0.797188) and (4.549625,-0.7775)
+ ..(4.5675,-0.7775)
+ ..controls (4.585375,-0.7775) and (4.6,-0.805625)
+ ..(4.6,-0.84)\dpicstop
+\dpicdraw[line width=0.4bp](4.6,-0.84) circle (0.00109in)\dpicstop
+\dpicdraw (4.6,-0.84)
+ --(4.85,-0.84)\dpicstop
+\draw (4.877674,-0.84) node[right=-2bp]{{\tt inductor(,L)}};
+\dpicdraw (0,-1.12)
+ --(0.25,-1.12)\dpicstop
+\dpicdraw (0.25,-1.12)
+ --(0.25,-1.125556)\dpicstop
+\dpicdraw (0.25,-1.12)
+ ..controls (0.25,-1.102741) and (0.263991,-1.08875)
+ ..(0.28125,-1.08875)
+ ..controls (0.298509,-1.08875) and (0.3125,-1.102741)
+ ..(0.3125,-1.12)\dpicstop
+\dpicdraw (0.3125,-1.12)
+ --(0.3125,-1.125556)\dpicstop
+\dpicdraw (0.3125,-1.12)
+ ..controls (0.3125,-1.102741) and (0.326491,-1.08875)
+ ..(0.34375,-1.08875)
+ ..controls (0.361009,-1.08875) and (0.375,-1.102741)
+ ..(0.375,-1.12)\dpicstop
+\dpicdraw (0.375,-1.12)
+ --(0.375,-1.125556)\dpicstop
+\dpicdraw (0.375,-1.12)
+ ..controls (0.375,-1.102741) and (0.388991,-1.08875)
+ ..(0.40625,-1.08875)
+ ..controls (0.423509,-1.08875) and (0.4375,-1.102741)
+ ..(0.4375,-1.12)\dpicstop
+\dpicdraw (0.4375,-1.12)
+ --(0.4375,-1.125556)\dpicstop
+\dpicdraw (0.4375,-1.12)
+ ..controls (0.4375,-1.102741) and (0.451491,-1.08875)
+ ..(0.46875,-1.08875)
+ ..controls (0.486009,-1.08875) and (0.5,-1.102741)
+ ..(0.5,-1.12)\dpicstop
+\dpicdraw (0.5,-1.12)
+ --(0.5,-1.125556)\dpicstop
+\dpicdraw (0.5,-1.12)
+ --(0.75,-1.12)\dpicstop
+\dpicdraw (0.25,-1.067917)
+ --(0.5,-1.067917)\dpicstop
+\dpicdraw (0.25,-1.036667)
+ --(0.5,-1.036667)\dpicstop
+\draw (0.777674,-1.12) node[right=-2bp]{{\tt inductor(,{,},M)}};
+\dpicdraw (2.05,-1.12)
+ --(2.218988,-1.12)\dpicstop
+\dpicdraw[line width=0.4bp](2.218988,-1.12) circle (0.00109in)\dpicstop
+\dpicdraw (2.218988,-1.12)
+ ..controls (2.201468,-1.082428) and (2.234652,-1.041082)
+ ..(2.275125,-1.050054)
+ ..controls (2.315598,-1.059027) and (2.3282,-1.110524)
+ ..(2.296442,-1.137171)\dpicstop
+\dpicdraw[line width=0.4bp](2.296442,-1.137171) circle (0.00109in)\dpicstop
+\dpicdraw (2.296442,-1.137171)
+ ..controls (2.260683,-1.107166) and (2.281901,-1.048869)
+ ..(2.328582,-1.048869)
+ ..controls (2.375262,-1.048869) and (2.396481,-1.107166)
+ ..(2.360721,-1.137171)\dpicstop
+\dpicdraw[line width=0.4bp](2.360721,-1.137171) circle (0.00109in)\dpicstop
+\dpicdraw (2.360721,-1.137171)
+ ..controls (2.324962,-1.107166) and (2.34618,-1.048869)
+ ..(2.392861,-1.048869)
+ ..controls (2.439541,-1.048869) and (2.460759,-1.107166)
+ ..(2.425,-1.137171)\dpicstop
+\dpicdraw[line width=0.4bp](2.425,-1.137171) circle (0.00109in)\dpicstop
+\dpicdraw (2.425,-1.137171)
+ ..controls (2.389241,-1.107166) and (2.410459,-1.048869)
+ ..(2.457139,-1.048869)
+ ..controls (2.50382,-1.048869) and (2.525038,-1.107166)
+ ..(2.489279,-1.137171)\dpicstop
+\dpicdraw[line width=0.4bp](2.489279,-1.137171) circle (0.00109in)\dpicstop
+\dpicdraw (2.489279,-1.137171)
+ ..controls (2.453519,-1.107166) and (2.474738,-1.048869)
+ ..(2.521418,-1.048869)
+ ..controls (2.568099,-1.048869) and (2.589317,-1.107166)
+ ..(2.553558,-1.137171)\dpicstop
+\dpicdraw[line width=0.4bp](2.553558,-1.137171) circle (0.00109in)\dpicstop
+\dpicdraw (2.553558,-1.137171)
+ ..controls (2.5218,-1.110524) and (2.534402,-1.059027)
+ ..(2.574875,-1.050054)
+ ..controls (2.615348,-1.041082) and (2.648532,-1.082428)
+ ..(2.631012,-1.12)\dpicstop
+\dpicdraw[line width=0.4bp](2.631012,-1.12) circle (0.00109in)\dpicstop
+\dpicdraw (2.631012,-1.12)
+ --(2.8,-1.12)\dpicstop
+\dpicdraw[dash pattern=on 0.032415in off 0.032415in](2.214303,-1.028036)
+ --(2.635697,-1.028036)\dpicstop
+\dpicdraw[dash pattern=on 0.032415in off 0.032415in](2.214303,-0.996786)
+ --(2.635697,-0.996786)\dpicstop
+\draw (2.827674,-1.12) node[right=-2bp]{{\tt inductor(,W,6,P)}};
+\dpicdraw (4.3,-1.12)
+ --(4.51875,-1.12)\dpicstop
+\dpicdraw (4.553969,-1.08875)
+ --(4.51875,-1.08875)
+ --(4.51875,-1.15125)
+ --(4.553969,-1.15125)\dpicstop
+\dpicdraw (4.675,-1.12) circle (0.049213in)\dpicstop
+\draw (4.675,-1.12) node{G};
+\dpicdraw (4.796031,-1.08875)
+ --(4.83125,-1.08875)
+ --(4.83125,-1.15125)
+ --(4.796031,-1.15125)\dpicstop
+\dpicdraw (4.83125,-1.12)
+ --(5.05,-1.12)\dpicstop
+\draw (5.077674,-1.12) node[right=-2bp]{{\tt ttmotor(,G)}};
+\dpicdraw (0,-1.4)
+ --(0.35,-1.4)\dpicstop
+\dpicdraw (0.35,-1.483333)
+ --(0.35,-1.316667)\dpicstop
+\dpicdraw (0.4,-1.483333)
+ --(0.4,-1.316667)\dpicstop
+\dpicdraw (0.4,-1.4)
+ --(0.75,-1.4)\dpicstop
+\draw (0.777674,-1.4) node[right=-2bp]{{\tt capacitor}};
+\dpicdraw (2.05,-1.4)
+ --(2.4,-1.4)\dpicstop
+\dpicdraw (2.4,-1.4625)
+ --(2.4,-1.3375)\dpicstop
+\dpicdraw (2.45,-1.4625)
+ ..controls (2.427671,-1.423825) and (2.427671,-1.376175)
+ ..(2.45,-1.3375)\dpicstop
+\dpicdraw (2.433253,-1.4)
+ --(2.8,-1.4)\dpicstop
+\draw (2.827674,-1.4) node[right=-2bp]{{\tt capacitor(,C)}};
+\dpicdraw (4.1,-1.4)
+ --(4.45,-1.4)\dpicstop
+\dpicdraw (4.45,-1.4625)
+ --(4.45,-1.3375)\dpicstop
+\dpicdraw (4.5,-1.4625)
+ ..controls (4.477671,-1.423825) and (4.477671,-1.376175)
+ ..(4.5,-1.3375)\dpicstop
+\dpicdraw (4.483253,-1.4)
+ --(4.85,-1.4)\dpicstop
+\dpicdraw[line width=0.5bp](4.429167,-1.441667)
+ --(4.3875,-1.441667)\dpicstop
+\dpicdraw[line width=0.5bp](4.408333,-1.420833)
+ --(4.408333,-1.4625)\dpicstop
+\draw (4.877674,-1.4) node[right=-2bp]{{\tt capacitor(,C+)}};
+\dpicdraw (0,-1.68)
+ --(0.35,-1.68)\dpicstop
+\dpicdraw (0.4,-1.7425)
+ --(0.35,-1.7425)
+ --(0.35,-1.6175)
+ --(0.4,-1.6175)\dpicstop
+\dpicdraw (0.383333,-1.726875)
+ --(0.383333,-1.633125)\dpicstop
+\dpicdraw (0.383333,-1.68)
+ --(0.75,-1.68)\dpicstop
+\draw (0.777674,-1.68) node[right=-2bp]{{\tt capacitor(,P)}};
+\dpicdraw (2.05,-1.68)
+ --(2.375,-1.68)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw (2.40625,-1.68)
+ --(2.40625,-1.63)
+ --(2.375,-1.63)
+ --(2.375,-1.73)
+ --(2.40625,-1.73)
+ --(2.40625,-1.68)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.44375,-1.68)
+ --(2.44375,-1.63)
+ --(2.475,-1.63)
+ --(2.475,-1.73)
+ --(2.44375,-1.73)
+ --(2.44375,-1.68)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpicdraw (2.475,-1.68)
+ --(2.8,-1.68)\dpicstop
+\draw (2.827674,-1.68) node[right=-2bp]{{\tt capacitor(,E)}};
+\dpicdraw (4.1,-1.68)
+ --(4.425,-1.68)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.45625,-1.68)
+ --(4.45625,-1.63)
+ --(4.425,-1.63)
+ --(4.425,-1.73)
+ --(4.45625,-1.73)
+ --(4.45625,-1.68)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.49375,-1.68)
+ --(4.49375,-1.63)
+ --(4.525,-1.63)
+ --(4.525,-1.73)
+ --(4.49375,-1.73)
+ --(4.49375,-1.68)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.525,-1.68)
+ --(4.85,-1.68)\dpicstop
+\draw (4.877674,-1.68) node[right=-2bp]{{\tt capacitor(,K)}};
+\dpicdraw (0,-1.93)
+ --(0.325,-1.93)\dpicstop
+\dpiclw=0.4bp
+\dpicdraw (0.35625,-1.93)
+ --(0.35625,-1.88)
+ --(0.325,-1.88)
+ --(0.325,-1.98)
+ --(0.35625,-1.98)
+ --(0.35625,-1.93)\dpicstop
+\dpicdraw (0.39375,-1.93)
+ --(0.39375,-1.88)
+ --(0.425,-1.88)
+ --(0.425,-1.98)
+ --(0.39375,-1.98)
+ --(0.39375,-1.93)\dpicstop
+\dpiclw=0.8bp
+\dpicdraw (0.425,-1.93)
+ --(0.75,-1.93)\dpicstop
+\draw (0.777674,-1.93) node[right=-2bp]{{\tt capacitor(,M)}};
+\dpicdraw (2.05,-1.93)
+ --(2.391667,-1.93)\dpicstop
+\dpicdraw (2.422917,-1.93)
+ --(2.422917,-1.88)
+ --(2.391667,-1.88)
+ --(2.391667,-1.98)
+ --(2.422917,-1.98)
+ --(2.422917,-1.93)\dpicstop
+\dpicdraw (2.458333,-1.88)
+ --(2.458333,-1.98)\dpicstop
+\dpicdraw (2.458333,-1.93)
+ --(2.8,-1.93)\dpicstop
+\draw (2.827674,-1.93) node[right=-2bp]{{\tt capacitor(,N)}};
+\dpicdraw (4.1,-1.93)
+ --(4.433333,-1.93)\dpicstop
+\dpicdraw (4.433333,-1.971667)
+ --(4.433333,-1.888333)\dpicstop
+\dpicdraw (4.454167,-1.93)
+ --(4.454167,-1.8675)
+ --(4.495833,-1.8675)
+ --(4.495833,-1.9925)
+ --(4.454167,-1.9925)
+ --(4.454167,-1.93)\dpicstop
+\dpicdraw (4.516667,-1.971667)
+ --(4.516667,-1.888333)\dpicstop
+\dpicdraw (4.516667,-1.93)
+ --(4.85,-1.93)\dpicstop
+\draw (4.877674,-1.93) node[right=-2bp]{{\tt xtal}};
+\dpicdraw (0,-2.18)
+ --(0.25,-2.18)\dpicstop
+\dpicdraw (0.5,-2.18)
+ --(0.5,-2.13)
+ --(0.25,-2.13)
+ --(0.25,-2.23)
+ --(0.5,-2.23)
+ --(0.5,-2.18)\dpicstop
+\dpicdraw (0.25,-2.18)
+ --(0.29,-2.18)
+ --(0.29,-2.155)
+ --(0.33,-2.155)
+ --(0.33,-2.205)
+ --(0.37,-2.205)
+ --(0.37,-2.155)
+ --(0.41,-2.155)
+ --(0.41,-2.18)
+ --(0.45,-2.18)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.5125,-2.18)
+ --(0.5125,-2.13)
+ --(0.45,-2.13)
+ --(0.45,-2.23)
+ --(0.5125,-2.23)
+ --(0.5125,-2.18)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.5125,-2.18)
+ --(0.7625,-2.18)\dpicstop
+\draw (0.777674,-2.18) node[right=-2bp]{{\tt memristor}};
+\dpicdraw (2.05,-2.18)
+ --(2.3,-2.18)\dpicstop
+\dpicdraw (2.55,-2.18)
+ --(2.55,-2.13)
+ --(2.3,-2.13)
+ --(2.3,-2.23)
+ --(2.55,-2.23)
+ --(2.55,-2.18)\dpicstop
+\dpicdraw (2.3625,-2.13)
+ --(2.3625,-2.23)\dpicstop
+\dpicdraw (2.425,-2.13)
+ --(2.425,-2.23)\dpicstop
+\dpicdraw (2.4875,-2.13)
+ --(2.4875,-2.23)\dpicstop
+\dpicdraw (2.55,-2.18)
+ --(2.8,-2.18)\dpicstop
+\draw (2.827674,-2.18) node[right=-2bp]{{\tt heater}};
+\dpicdraw (4.6625,-2.18)
+ --(4.85,-2.18)\dpicstop
+\dpicdraw (4.1,-2.18)
+ --(4.308333,-2.18)\dpicstop
+\dpicdraw[line width=0.4bp](4.308333,-2.18) circle (0.00109in)\dpicstop
+\dpicdraw (4.308333,-2.221667)
+ --(4.641667,-2.221667)\dpicstop
+\dpicdraw (4.641667,-2.221667)
+ ..controls (4.653173,-2.221667) and (4.6625,-2.203012)
+ ..(4.6625,-2.18)
+ ..controls (4.6625,-2.156988) and (4.653173,-2.138333)
+ ..(4.641667,-2.138333)\dpicstop
+\dpicdraw (4.641667,-2.138333)
+ --(4.308333,-2.138333)\dpicstop
+\dpicdraw (4.308333,-2.138333)
+ ..controls (4.296827,-2.138333) and (4.2875,-2.156988)
+ ..(4.2875,-2.18)
+ ..controls (4.2875,-2.203012) and (4.296827,-2.221667)
+ ..(4.308333,-2.221667)
+ ..controls (4.31984,-2.221667) and (4.329167,-2.203012)
+ ..(4.329167,-2.18)
+ ..controls (4.329167,-2.156988) and (4.31984,-2.138333)
+ ..(4.308333,-2.138333)\dpicstop
+\draw (4.877674,-2.18) node[right=-2bp]{{\tt tline}};
+\dpicdraw[fill=black](0,-2.38) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](0.75,-2.38) circle (0.007874in)\dpicstop
+\draw (0.777674,-2.38) node[right=-2bp]{{\tt gap}};
+\dpicdraw[fill=black](2.05,-2.43) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](2.8,-2.43) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](2.64,-2.455)
+ --(2.74,-2.43)
+ --(2.64,-2.405) --cycle\dpicstop
+\dpicdraw (2.11,-2.43)
+ --(2.717094,-2.43)\dpicstop
+\draw (2.827674,-2.43) node[right=-2bp]{{\tt gap(,{,}A)}};
+\dpicdraw (4.1,-2.43)
+ --(4.85,-2.43)\dpicstop
+\filldraw[line width=0bp](4.425,-2.455)
+ --(4.525,-2.43)
+ --(4.425,-2.405) --cycle\dpicstop
+\dpicdraw (4.425,-2.43)
+ --(4.502094,-2.43)\dpicstop
+\draw (4.877674,-2.43) node[right=-2bp]{{\tt arrowline}};
+\dpicdraw (0,-2.68)
+ --(0.325,-2.68)
+ --(0.325,-2.52375)\dpicstop
+\dpicdraw (0.325,-2.52375)
+ ..controls (0.325,-2.489264) and (0.339567,-2.46125)
+ ..(0.3575,-2.46125)
+ ..controls (0.375433,-2.46125) and (0.39,-2.480859)
+ ..(0.39,-2.505)
+ ..controls (0.39,-2.529141) and (0.383277,-2.54875)
+ ..(0.375,-2.54875)
+ ..controls (0.366723,-2.54875) and (0.36,-2.529141)
+ ..(0.36,-2.505)
+ ..controls (0.36,-2.480859) and (0.374567,-2.46125)
+ ..(0.3925,-2.46125)
+ ..controls (0.410433,-2.46125) and (0.425,-2.489264)
+ ..(0.425,-2.52375)\dpicstop
+\dpicdraw (0.425,-2.52375)
+ --(0.425,-2.68)
+ --(0.75,-2.68)\dpicstop
+\dpicdraw (0.375,-2.52375) circle (0.03937in)\dpicstop
+\draw (0.777674,-2.68) node[right=-2bp]{{\tt lamp}};
+\dpicdraw (2.05,-2.68)
+ --(2.225,-2.68)\dpicstop
+\dpicdraw (2.625,-2.68)
+ ..controls (2.624554,-2.672786) and (2.623417,-2.664086)
+ ..(2.622464,-2.660589)
+ ..controls (2.621511,-2.657091) and (2.619497,-2.651585)
+ ..(2.617969,-2.648304)
+ ..controls (2.616442,-2.645022) and (2.613514,-2.639948)
+ ..(2.611437,-2.636982)
+ ..controls (2.609359,-2.634016) and (2.605593,-2.629528)
+ ..(2.603033,-2.626967)
+ ..controls (2.600472,-2.624407) and (2.595984,-2.620641)
+ ..(2.593018,-2.618563)
+ ..controls (2.590052,-2.616486) and (2.584978,-2.613558)
+ ..(2.581696,-2.612031)
+ ..controls (2.578415,-2.610503) and (2.572909,-2.608489)
+ ..(2.569411,-2.607536)
+ ..controls (2.565914,-2.606583) and (2.560143,-2.605628)
+ ..(2.556537,-2.605404)
+ ..controls (2.55293,-2.605181) and (2.493973,-2.605)
+ ..(2.425,-2.605)
+ ..controls (2.356027,-2.605) and (2.29707,-2.605181)
+ ..(2.293463,-2.605404)
+ ..controls (2.289857,-2.605628) and (2.284086,-2.606583)
+ ..(2.280589,-2.607536)
+ ..controls (2.277091,-2.608489) and (2.271585,-2.610503)
+ ..(2.268304,-2.612031)
+ ..controls (2.265022,-2.613558) and (2.259948,-2.616486)
+ ..(2.256982,-2.618563)
+ ..controls (2.254016,-2.620641) and (2.249528,-2.624407)
+ ..(2.246967,-2.626967)
+ ..controls (2.244407,-2.629528) and (2.240641,-2.634016)
+ ..(2.238563,-2.636982)
+ ..controls (2.236486,-2.639948) and (2.233558,-2.645022)
+ ..(2.232031,-2.648304)
+ ..controls (2.230503,-2.651585) and (2.228489,-2.657091)
+ ..(2.227536,-2.660589)
+ ..controls (2.226583,-2.664086) and (2.225628,-2.669857)
+ ..(2.225404,-2.673463)
+ ..controls (2.225181,-2.67707) and (2.225,-2.68)
+ ..(2.225,-2.68)
+ ..controls (2.225,-2.68) and (2.225181,-2.68293)
+ ..(2.225404,-2.686537)
+ ..controls (2.225628,-2.690143) and (2.226583,-2.695914)
+ ..(2.227536,-2.699411)
+ ..controls (2.228489,-2.702909) and (2.230503,-2.708415)
+ ..(2.232031,-2.711696)
+ ..controls (2.233558,-2.714978) and (2.236486,-2.720052)
+ ..(2.238563,-2.723018)
+ ..controls (2.240641,-2.725984) and (2.244407,-2.730472)
+ ..(2.246967,-2.733033)
+ ..controls (2.249528,-2.735593) and (2.254016,-2.739359)
+ ..(2.256982,-2.741437)
+ ..controls (2.259948,-2.743514) and (2.265022,-2.746442)
+ ..(2.268304,-2.747969)
+ ..controls (2.271585,-2.749497) and (2.277091,-2.751511)
+ ..(2.280589,-2.752464)
+ ..controls (2.284086,-2.753417) and (2.289857,-2.754372)
+ ..(2.293463,-2.754596)
+ ..controls (2.29707,-2.754819) and (2.356027,-2.755)
+ ..(2.425,-2.755)
+ ..controls (2.493973,-2.755) and (2.55293,-2.754819)
+ ..(2.556537,-2.754596)
+ ..controls (2.560143,-2.754372) and (2.565914,-2.753417)
+ ..(2.569411,-2.752464)
+ ..controls (2.572909,-2.751511) and (2.578415,-2.749497)
+ ..(2.581696,-2.747969)
+ ..controls (2.584978,-2.746442) and (2.590052,-2.743514)
+ ..(2.593018,-2.741437)
+ ..controls (2.595984,-2.739359) and (2.600472,-2.735593)
+ ..(2.603033,-2.733033)
+ ..controls (2.605593,-2.730472) and (2.609359,-2.725984)
+ ..(2.611437,-2.723018)
+ ..controls (2.613514,-2.720052) and (2.616442,-2.714978)
+ ..(2.617969,-2.711696)
+ ..controls (2.619497,-2.708415) and (2.621511,-2.702909)
+ ..(2.622464,-2.699411)
+ ..controls (2.623417,-2.695914) and (2.624372,-2.690143)
+ ..(2.624596,-2.686537)
+ ..controls (2.624819,-2.68293) and (2.625,-2.68)
+ ..(2.625,-2.68)\dpicstop
+\dpicdraw (2.225,-2.68)
+ --(2.305,-2.68)
+ --(2.465,-2.63)\dpicstop
+\dpicdraw (2.425,-2.68)
+ --(2.625,-2.68)\dpicstop
+\dpicdraw (2.625,-2.68)
+ --(2.8,-2.68)\dpicstop
+\draw (2.827674,-2.68) node[right=-2bp]{{\tt reed}};
+\dpicdraw (4.1,-2.68)
+ --(4.275,-2.68)\dpicstop
+\fill[fill=white!90!black,line width=0bp](4.675,-2.68)
+ ..controls (4.674554,-2.672786) and (4.673417,-2.664086)
+ ..(4.672464,-2.660589)
+ ..controls (4.671511,-2.657091) and (4.669497,-2.651585)
+ ..(4.667969,-2.648304)
+ ..controls (4.666442,-2.645022) and (4.663514,-2.639948)
+ ..(4.661437,-2.636982)
+ ..controls (4.659359,-2.634016) and (4.655593,-2.629528)
+ ..(4.653033,-2.626967)
+ ..controls (4.650472,-2.624407) and (4.645984,-2.620641)
+ ..(4.643018,-2.618563)
+ ..controls (4.640052,-2.616486) and (4.634978,-2.613558)
+ ..(4.631696,-2.612031)
+ ..controls (4.628415,-2.610503) and (4.622909,-2.608489)
+ ..(4.619411,-2.607536)
+ ..controls (4.615914,-2.606583) and (4.610143,-2.605628)
+ ..(4.606537,-2.605404)
+ ..controls (4.60293,-2.605181) and (4.543973,-2.605)
+ ..(4.475,-2.605)
+ ..controls (4.406027,-2.605) and (4.34707,-2.605181)
+ ..(4.343463,-2.605404)
+ ..controls (4.339857,-2.605628) and (4.334086,-2.606583)
+ ..(4.330589,-2.607536)
+ ..controls (4.327091,-2.608489) and (4.321585,-2.610503)
+ ..(4.318304,-2.612031)
+ ..controls (4.315022,-2.613558) and (4.309948,-2.616486)
+ ..(4.306982,-2.618563)
+ ..controls (4.304016,-2.620641) and (4.299528,-2.624407)
+ ..(4.296967,-2.626967)
+ ..controls (4.294407,-2.629528) and (4.290641,-2.634016)
+ ..(4.288563,-2.636982)
+ ..controls (4.286486,-2.639948) and (4.283558,-2.645022)
+ ..(4.282031,-2.648304)
+ ..controls (4.280503,-2.651585) and (4.278489,-2.657091)
+ ..(4.277536,-2.660589)
+ ..controls (4.276583,-2.664086) and (4.275628,-2.669857)
+ ..(4.275404,-2.673463)
+ ..controls (4.275181,-2.67707) and (4.275,-2.68)
+ ..(4.275,-2.68)
+ ..controls (4.275,-2.68) and (4.275181,-2.68293)
+ ..(4.275404,-2.686537)
+ ..controls (4.275628,-2.690143) and (4.276583,-2.695914)
+ ..(4.277536,-2.699411)
+ ..controls (4.278489,-2.702909) and (4.280503,-2.708415)
+ ..(4.282031,-2.711696)
+ ..controls (4.283558,-2.714978) and (4.286486,-2.720052)
+ ..(4.288563,-2.723018)
+ ..controls (4.290641,-2.725984) and (4.294407,-2.730472)
+ ..(4.296967,-2.733033)
+ ..controls (4.299528,-2.735593) and (4.304016,-2.739359)
+ ..(4.306982,-2.741437)
+ ..controls (4.309948,-2.743514) and (4.315022,-2.746442)
+ ..(4.318304,-2.747969)
+ ..controls (4.321585,-2.749497) and (4.327091,-2.751511)
+ ..(4.330589,-2.752464)
+ ..controls (4.334086,-2.753417) and (4.339857,-2.754372)
+ ..(4.343463,-2.754596)
+ ..controls (4.34707,-2.754819) and (4.406027,-2.755)
+ ..(4.475,-2.755)
+ ..controls (4.543973,-2.755) and (4.60293,-2.754819)
+ ..(4.606537,-2.754596)
+ ..controls (4.610143,-2.754372) and (4.615914,-2.753417)
+ ..(4.619411,-2.752464)
+ ..controls (4.622909,-2.751511) and (4.628415,-2.749497)
+ ..(4.631696,-2.747969)
+ ..controls (4.634978,-2.746442) and (4.640052,-2.743514)
+ ..(4.643018,-2.741437)
+ ..controls (4.645984,-2.739359) and (4.650472,-2.735593)
+ ..(4.653033,-2.733033)
+ ..controls (4.655593,-2.730472) and (4.659359,-2.725984)
+ ..(4.661437,-2.723018)
+ ..controls (4.663514,-2.720052) and (4.666442,-2.714978)
+ ..(4.667969,-2.711696)
+ ..controls (4.669497,-2.708415) and (4.671511,-2.702909)
+ ..(4.672464,-2.699411)
+ ..controls (4.673417,-2.695914) and (4.674372,-2.690143)
+ ..(4.674596,-2.686537)
+ ..controls (4.674819,-2.68293) and (4.675,-2.68)
+ ..(4.675,-2.68) --cycle\dpicstop
+\dpicdraw (4.675,-2.68)
+ ..controls (4.674554,-2.672786) and (4.673417,-2.664086)
+ ..(4.672464,-2.660589)
+ ..controls (4.671511,-2.657091) and (4.669497,-2.651585)
+ ..(4.667969,-2.648304)
+ ..controls (4.666442,-2.645022) and (4.663514,-2.639948)
+ ..(4.661437,-2.636982)
+ ..controls (4.659359,-2.634016) and (4.655593,-2.629528)
+ ..(4.653033,-2.626967)
+ ..controls (4.650472,-2.624407) and (4.645984,-2.620641)
+ ..(4.643018,-2.618563)
+ ..controls (4.640052,-2.616486) and (4.634978,-2.613558)
+ ..(4.631696,-2.612031)
+ ..controls (4.628415,-2.610503) and (4.622909,-2.608489)
+ ..(4.619411,-2.607536)
+ ..controls (4.615914,-2.606583) and (4.610143,-2.605628)
+ ..(4.606537,-2.605404)
+ ..controls (4.60293,-2.605181) and (4.543973,-2.605)
+ ..(4.475,-2.605)
+ ..controls (4.406027,-2.605) and (4.34707,-2.605181)
+ ..(4.343463,-2.605404)
+ ..controls (4.339857,-2.605628) and (4.334086,-2.606583)
+ ..(4.330589,-2.607536)
+ ..controls (4.327091,-2.608489) and (4.321585,-2.610503)
+ ..(4.318304,-2.612031)
+ ..controls (4.315022,-2.613558) and (4.309948,-2.616486)
+ ..(4.306982,-2.618563)
+ ..controls (4.304016,-2.620641) and (4.299528,-2.624407)
+ ..(4.296967,-2.626967)
+ ..controls (4.294407,-2.629528) and (4.290641,-2.634016)
+ ..(4.288563,-2.636982)
+ ..controls (4.286486,-2.639948) and (4.283558,-2.645022)
+ ..(4.282031,-2.648304)
+ ..controls (4.280503,-2.651585) and (4.278489,-2.657091)
+ ..(4.277536,-2.660589)
+ ..controls (4.276583,-2.664086) and (4.275628,-2.669857)
+ ..(4.275404,-2.673463)
+ ..controls (4.275181,-2.67707) and (4.275,-2.68)
+ ..(4.275,-2.68)
+ ..controls (4.275,-2.68) and (4.275181,-2.68293)
+ ..(4.275404,-2.686537)
+ ..controls (4.275628,-2.690143) and (4.276583,-2.695914)
+ ..(4.277536,-2.699411)
+ ..controls (4.278489,-2.702909) and (4.280503,-2.708415)
+ ..(4.282031,-2.711696)
+ ..controls (4.283558,-2.714978) and (4.286486,-2.720052)
+ ..(4.288563,-2.723018)
+ ..controls (4.290641,-2.725984) and (4.294407,-2.730472)
+ ..(4.296967,-2.733033)
+ ..controls (4.299528,-2.735593) and (4.304016,-2.739359)
+ ..(4.306982,-2.741437)
+ ..controls (4.309948,-2.743514) and (4.315022,-2.746442)
+ ..(4.318304,-2.747969)
+ ..controls (4.321585,-2.749497) and (4.327091,-2.751511)
+ ..(4.330589,-2.752464)
+ ..controls (4.334086,-2.753417) and (4.339857,-2.754372)
+ ..(4.343463,-2.754596)
+ ..controls (4.34707,-2.754819) and (4.406027,-2.755)
+ ..(4.475,-2.755)
+ ..controls (4.543973,-2.755) and (4.60293,-2.754819)
+ ..(4.606537,-2.754596)
+ ..controls (4.610143,-2.754372) and (4.615914,-2.753417)
+ ..(4.619411,-2.752464)
+ ..controls (4.622909,-2.751511) and (4.628415,-2.749497)
+ ..(4.631696,-2.747969)
+ ..controls (4.634978,-2.746442) and (4.640052,-2.743514)
+ ..(4.643018,-2.741437)
+ ..controls (4.645984,-2.739359) and (4.650472,-2.735593)
+ ..(4.653033,-2.733033)
+ ..controls (4.655593,-2.730472) and (4.659359,-2.725984)
+ ..(4.661437,-2.723018)
+ ..controls (4.663514,-2.720052) and (4.666442,-2.714978)
+ ..(4.667969,-2.711696)
+ ..controls (4.669497,-2.708415) and (4.671511,-2.702909)
+ ..(4.672464,-2.699411)
+ ..controls (4.673417,-2.695914) and (4.674372,-2.690143)
+ ..(4.674596,-2.686537)
+ ..controls (4.674819,-2.68293) and (4.675,-2.68)
+ ..(4.675,-2.68)\dpicstop
+\dpicdraw (4.275,-2.68)
+ --(4.355,-2.68)
+ --(4.515,-2.691111)\dpicstop
+\dpicdraw (4.475,-2.68)
+ --(4.675,-2.68)\dpicstop
+\dpicdraw (4.675,-2.68)
+ --(4.85,-2.68)\dpicstop
+\draw (4.877674,-2.68) node[right=-2bp]{{\tt reed(,{,},fill\_(0.9),CR)}};
+\dpicdraw (0,-2.93)
+ --(0.25,-2.93)\dpicstop
+\dpicdraw (0.5,-2.93)
+ --(0.5,-2.88)
+ --(0.25,-2.88)
+ --(0.25,-2.98)
+ --(0.5,-2.98)
+ --(0.5,-2.93)\dpicstop
+\dpicdraw (0.25,-2.98)
+ --(0.333333,-2.93)
+ --(0.25,-2.88)\dpicstop
+\dpicdraw (0.5,-2.93)
+ --(0.75,-2.93)\dpicstop
+\draw (0.777674,-2.93) node[right=-2bp]{{\tt pvcell}};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/CctTable.m4 b/graphics/circuit_macros/doc/CctTableMan.m4
index f7e47d0758..f7e47d0758 100644
--- a/graphics/circuit_macros/doc/CctTable.m4
+++ b/graphics/circuit_macros/doc/CctTableMan.m4
diff --git a/graphics/circuit_macros/doc/Circuit_macros.pdf b/graphics/circuit_macros/doc/Circuit_macros.pdf
index 302f862d93..78a14a9ca9 100644
--- a/graphics/circuit_macros/doc/Circuit_macros.pdf
+++ b/graphics/circuit_macros/doc/Circuit_macros.pdf
Binary files differ
diff --git a/graphics/circuit_macros/doc/Conn.tex b/graphics/circuit_macros/doc/Conn.tex
new file mode 100644
index 0000000000..23d31e0e2b
--- /dev/null
+++ b/graphics/circuit_macros/doc/Conn.tex
@@ -0,0 +1,178 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+{\sf
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (0.502778,0.324448)
+ --(0.377778,0.324448)
+ --(0.377778,-0.275552)
+ --(0.627778,-0.275552)
+ --(0.627778,0.324448)
+ --(0.502778,0.324448)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.627778,-0.125552)
+ --(0.377778,-0.125552)\dpicstop
+\dpicdraw (0.627778,0.024448)
+ --(0.377778,0.024448)\dpicstop
+\dpicdraw (0.627778,0.174448)
+ --(0.377778,0.174448)\dpicstop
+\dpicdraw[fill=white](0.502778,-0.200552) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](0.502778,-0.050552) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](0.502778,0.099448) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](0.502778,0.249448) circle (0.007874in)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.311111,-0.220552)
+ --(0.377778,-0.200552)
+ --(0.311111,-0.180552) --cycle\dpicstop
+\dpicdraw (0.368111,-0.200552)
+ --(0.227778,-0.200552)\dpicstop
+\draw (0.227778,-0.200552) node[left=-2bp]{L1};
+\filldraw[line width=0bp](0.311111,0.229448)
+ --(0.377778,0.249448)
+ --(0.311111,0.269448) --cycle\dpicstop
+\dpicdraw (0.368111,0.249448)
+ --(0.227778,0.249448)\dpicstop
+\draw (0.227778,0.249448) node[left=-2bp]{L4};
+\draw (0.077778,0.044448) node{$\vdots$};
+\filldraw[line width=0bp](0.694444,-0.180552)
+ --(0.627778,-0.200552)
+ --(0.694444,-0.220552) --cycle\dpicstop
+\dpicdraw (0.637445,-0.200552)
+ --(0.877778,-0.200552)\dpicstop
+\draw (0.877778,-0.200552) node[right=-2bp]{R1};
+\filldraw[line width=0bp](0.694444,0.269448)
+ --(0.627778,0.249448)
+ --(0.694444,0.229448) --cycle\dpicstop
+\dpicdraw (0.637445,0.249448)
+ --(0.877778,0.249448)\dpicstop
+\draw (0.877778,0.249448) node[right=-2bp]{R4};
+\draw (1.027778,0.044448) node{$\vdots$};
+\filldraw[line width=0bp](0.547154,-0.146931)
+ --(0.502778,-0.200552)
+ --(0.569342,-0.180213) --cycle\dpicstop
+\dpicdraw (0.510821,-0.195189)
+ --(0.652778,-0.100552)\dpicstop
+\draw (0.652778,-0.100552) node[right=-2bp]{T1};
+\filldraw[line width=0bp](0.547154,0.303069)
+ --(0.502778,0.249448)
+ --(0.569342,0.269787) --cycle\dpicstop
+\dpicdraw (0.510821,0.254811)
+ --(0.652778,0.349448)\dpicstop
+\draw (0.652778,0.349448) node[right=-2bp]{T4};
+\draw (0.802778,0.144448) node{$\vdots$};
+\dpiclw=0.8bp
+\draw (0.502778,-0.425552) node(CS1){\tt tstrip(U)};
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (2.327778,-0.000552)
+ --(2.327778,0.124448)
+ --(1.327778,0.124448)
+ --(1.327778,-0.125552)
+ --(2.327778,-0.125552)
+ --(2.327778,-0.000552)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw[fill=black](1.427778,-0.000552) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](1.627778,-0.000552) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](1.827778,-0.000552) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](2.027778,-0.000552) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](2.227778,-0.000552) circle (0.007874in)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.439703,0.068021)
+ --(1.427778,-0.000552)
+ --(1.475481,0.050132) --cycle\dpicstop
+\dpicdraw (1.432101,0.008095)
+ --(1.527778,0.199448)\dpicstop
+\draw (1.527778,0.199448) node[above=-2bp]{T1};
+\filldraw[line width=0bp](2.239703,0.068021)
+ --(2.227778,-0.000552)
+ --(2.275481,0.050132) --cycle\dpicstop
+\dpicdraw (2.232101,0.008095)
+ --(2.327778,0.199448)\dpicstop
+\draw (2.327778,0.199448) node[above=-2bp]{T5};
+\draw (1.927778,0.199448) node[above=-2bp]{$\cdots$};
+\draw (1.227778,-0.325552) node(CS2){\shortstack{\rlap{\hbox to 2bp{}\tt tstrip(R,5,}\\%
+\rlap{\hbox to 2bp{}\tt $\;\;$DO;wid=1.0;ht=0.25)}}};
+}
+\dpiclw=0.8bp
+\dpicdraw (2.927778,-0.025552) circle (0.03937in)\dpicstop
+\dpicdraw[fill=black](2.927778,-0.025552) circle (0.013123in)\dpicstop
+\draw (2.927778,-0.125552) node[below=-2bp]{\tt ccoax\vphantom{(}};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](2.984346,0.059301)
+ --(2.951348,-0.001982)
+ --(3.012631,0.031017) --cycle\dpicstop
+\dpicdraw (2.965019,0.01169)
+ --(3.051348,0.098018)\dpicstop
+\draw (3.051348,0.098018) node[right=-2bp]{C};
+\filldraw[line width=0bp](3.096351,-0.037477)
+ --(3.027778,-0.025552)
+ --(3.078462,-0.073255) --cycle\dpicstop
+\dpicdraw (3.045071,-0.034198)
+ --(3.127778,-0.075552)\dpicstop
+\draw (3.127778,-0.075552) node[right=-2bp]{S};
+\dpiclw=0.8bp
+\dpicdraw (2.927778,0.274448) circle (0.03937in)\dpicstop
+\dpicdraw[fill=white](2.927778,0.274448) circle (0.013123in)\dpicstop
+\draw (3.027778,0.374448) node[right=-2bp]{\tt ccoax(,F)};
+\dpicdraw (3.740551,-0.225552) circle (0.019685in)\dpicstop
+\dpicdraw (3.415551,-0.225552)
+ --(3.690551,-0.225552)\dpicstop
+\draw (3.603051,-0.425552) node{\tt tconn(,O)};
+\dpicdraw (4.090551,-0.225552)
+ --(4.465551,-0.225552)\dpicstop
+\dpicdraw (4.382218,-0.142218)
+ --(4.465551,-0.225552)
+ --(4.382218,-0.308885)\dpicstop
+\draw (4.278051,-0.425552) node{\tt (,>)};
+\dpicdraw (4.765551,-0.225552)
+ --(5.078051,-0.225552)\dpicstop
+\dpicdraw (4.994718,-0.142218)
+ --(5.078051,-0.225552)
+ --(4.994718,-0.308885)\dpicstop
+\dpicdraw (5.057218,-0.142218)
+ --(5.140551,-0.225552)
+ --(5.057218,-0.308885)\dpicstop
+\draw (4.953051,-0.425552) node{\tt (,>>)};
+\dpicdraw (4.090551,0.274448)
+ --(4.382218,0.274448)\dpicstop
+\dpicdraw (4.465551,0.357782)
+ --(4.382218,0.274448)
+ --(4.465551,0.191115)\dpicstop
+\draw (4.278051,0.074448) node{\tt tconn(,<)};
+\dpicdraw (4.765551,0.274448)
+ --(4.994718,0.274448)\dpicstop
+\dpicdraw (5.078051,0.357782)
+ --(4.994718,0.274448)
+ --(5.078051,0.191115)\dpicstop
+\dpicdraw (5.140551,0.357782)
+ --(5.057218,0.274448)
+ --(5.140551,0.191115)\dpicstop
+\draw (4.953051,0.074448) node{\tt (,<<)};
+\dpicdraw (5.540551,0.357782)
+ --(5.657218,0.357782)
+ --(5.740551,0.274448)
+ --(5.657218,0.191115)
+ --(5.340551,0.191115)
+ --(5.340551,0.357782)
+ --(5.540551,0.357782)\dpicstop
+\draw (5.498884,0.274448) node{$ V_2$};
+\draw (5.340551,0.191115) node[below right=-2bp]{\tt tbox(V\_2)};
+\dpicdraw (5.540551,-0.225552)
+ --(5.423884,-0.225552)
+ --(5.340551,-0.142218)
+ --(5.423884,-0.058885)
+ --(5.657218,-0.058885)
+ --(5.740551,-0.142218)
+ --(5.657218,-0.225552)
+ --(5.540551,-0.225552)\dpicstop
+\draw (5.540551,-0.142218) node{$ V_1$};
+\draw (5.340551,-0.225552) node[below right=-2bp]{\tt tbox(V\_1,{,},<>)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Conn.m4 b/graphics/circuit_macros/doc/ConnMan.m4
index 7253d2b313..204ad5d96a 100644
--- a/graphics/circuit_macros/doc/Conn.m4
+++ b/graphics/circuit_macros/doc/ConnMan.m4
@@ -17,7 +17,7 @@ T:[
"$\vdots$" at (0.5 between last "" and 2nd last "")+(0.15,0.02)
thicklines_
CS1: "`\tt tstrip(U)'" at S1.s+(0,-0.15)
- S2: tstrip(R,5,DO;wid=1.0;ht=0.25) with .sw at S1.se+(0.7,0.15)
+ S2: tstrip(R,5,DO;wid=1.0;ht=0.25) with .sw at S1.se+(0.8,0.15)
thinlines_
arrow <- up 0.2 right 0.1 from S2.T1; "T1" above
arrow <- up 0.2 right 0.1 from S2.T5; "T5" above
@@ -36,7 +36,7 @@ C: [
thicklines_
C2: ccoax(at C1+(0,0.3),F)
`"\tt ccoax(,F)"' ht 11 pt__ wid 0.65 at C2.ne ljust
- ] with .C1.sw at T.S2.se+(0.5,0.0)
+ ] with .C1.sw at T.S2.se+(0.6,0.0)
Y: [
tconn(,O)
@@ -46,24 +46,24 @@ Y: [
{`"\tt (,>)"' at last line.c+(0,-0.2)}
move to P1.end+(0.3,0)
tconn(,>>)
- {`"\tt (,>>)"' at last line.c+(0,-0.2)}
+ {`"\tt (,>{}>)"' at last line.c+(0,-0.2)}
move to P1.start+(0,linewid)
P3: tconn(,<)
{`"\tt tconn(,<)"' at last line.c+(0,-0.2)}
move to P3.end+(0.3,0)
tconn(,<<)
- {`"\tt (,<<)"' at last line.c+(0,-0.2)}
+ {`"\tt (,<{}<)"' at last line.c+(0,-0.2)}
] with .sw at (C.e.x-0.4,T.s.y)
B: [
tbox(V_2)
- `"\tt tbox(V\_2)"' at last [].sw below ljust
- [ left_;
- tbox(V_1,,,<>) ] with .nw at last [].sw+(0,-0.25)
- `"\tt tbox(V\_1,{,},<>)"' at last [].sw below ljust
-# `"\tt left\_"' at last [].sw +(0,-0.2) ljust `"\tt tbox(V\_1)"' ljust
-] with .nw at Y.ne+(0.2,0)
+ { `"\tt tbox(V\_2)"' at last [].sw below ljust }
+ tbox(V_1,,,<) with .sw at last [].se+(0.75,0)
+ { `"\tt tbox(V\_1,{,},<)"' at last [].s below }
+ tbox(V_1,,,<>) with .sw at last [].se+(0.75,0)
+ { `"\tt tbox(V\_1,{,},<>)"' at last [].s below }
+] with .nw at T.sw+(0,-0.2)
.PE
diff --git a/graphics/circuit_macros/doc/Contact.tex b/graphics/circuit_macros/doc/Contact.tex
new file mode 100644
index 0000000000..1870617cc1
--- /dev/null
+++ b/graphics/circuit_macros/doc/Contact.tex
@@ -0,0 +1,373 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw[fill=white](0.02,0.03125) circle (0.007874in)\dpicstop
+\dpicdraw (0.04,0.03125)
+ --(0.27,0.03125)\dpicstop
+\filldraw[line width=0bp](0.186667,0.114583)
+ --(0.228333,0.03125)
+ --(0.27,0.114583) --cycle\dpicstop
+\dpicdraw (0.228333,0.043673)
+ --(0.228333,0.15625)
+ --(0.328333,0.15625)\dpicstop
+\filldraw[line width=0bp](0.27,-0.114583)
+ --(0.228333,-0.03125)
+ --(0.186667,-0.114583) --cycle\dpicstop
+\dpicdraw (0.228333,-0.043673)
+ --(0.228333,-0.15625)
+ --(0.328333,-0.15625)\dpicstop
+\draw (0.164167,-0.347917) node{\tt contact};
+\draw (0,0.03125) node[left=-2bp]{\sl P};
+\draw (0.328333,-0.15625) node[right=-2bp]{\sl O};
+\draw (0.328333,0.15625) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](0.798333,-0.03125) circle (0.007874in)\dpicstop
+\dpicdraw (0.818333,-0.03125)
+ --(1.048333,-0.03125)\dpicstop
+\filldraw[line width=0bp](1.048333,-0.114583)
+ --(1.006667,-0.03125)
+ --(0.965,-0.114583) --cycle\dpicstop
+\dpicdraw (1.006667,-0.043673)
+ --(1.006667,-0.15625)
+ --(1.106667,-0.15625)\dpicstop
+\filldraw[line width=0bp](0.965,0.114583)
+ --(1.006667,0.03125)
+ --(1.048333,0.114583) --cycle\dpicstop
+\dpicdraw (1.006667,0.043673)
+ --(1.006667,0.15625)
+ --(1.106667,0.15625)\dpicstop
+\draw (0.9425,-0.347917) node{\tt (R)};
+\draw (0.778333,-0.03125) node[left=-2bp]{\sl P};
+\draw (1.106667,0.15625) node[right=-2bp]{\sl O};
+\draw (1.106667,-0.15625) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](1.576667,0.104583) circle (0.007874in)\dpicstop
+\dpicdraw (1.596667,0.104583)
+ --(1.826667,0.104583)\dpicstop
+\filldraw[line width=0bp](1.826667,-0.04125)
+ --(1.785,0.042083)
+ --(1.743333,-0.04125) --cycle\dpicstop
+\dpicdraw (1.785,0.029661)
+ --(1.785,-0.082917)
+ --(1.885,-0.082917)\dpicstop
+\draw (1.720833,-0.347917) node{\tt (O)};
+\dpicdraw[fill=white](2.355,-0.073333) circle (0.007874in)\dpicstop
+\dpicdraw (2.375,-0.073333)
+ --(2.605,-0.073333)\dpicstop
+\filldraw[line width=0bp](2.521667,0.01)
+ --(2.563333,-0.073333)
+ --(2.605,0.01) --cycle\dpicstop
+\dpicdraw (2.563333,-0.060911)
+ --(2.563333,0.051667)
+ --(2.663333,0.051667)\dpicstop
+\draw (2.499167,-0.347917) node{\tt (C)};
+\dpicdraw[fill=white](3.133333,0) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](3.3,0.145833)
+ --(3.341667,0.0625)
+ --(3.383333,0.145833) --cycle\dpicstop
+\dpicdraw (3.341667,0.074923)
+ --(3.341667,0.1875)
+ --(3.441667,0.1875)\dpicstop
+\filldraw[line width=0bp](3.383333,-0.145833)
+ --(3.341667,-0.0625)
+ --(3.3,-0.145833) --cycle\dpicstop
+\dpicdraw (3.341667,-0.074923)
+ --(3.341667,-0.1875)
+ --(3.441667,-0.1875)\dpicstop
+\dpicdraw (3.153333,0)
+ --(3.383333,0)\dpicstop
+\draw (3.2775,-0.379167) node{\tt (P)};
+\draw (3.113333,0) node[left=-2bp]{\sl P};
+\draw (3.441667,-0.1875) node[right=-2bp]{\sl O};
+\draw (3.441667,0.1875) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](3.911667,0) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](4.161667,-0.145833)
+ --(4.12,-0.0625)
+ --(4.078333,-0.145833) --cycle\dpicstop
+\dpicdraw (4.12,-0.074923)
+ --(4.12,-0.1875)
+ --(4.22,-0.1875)\dpicstop
+\filldraw[line width=0bp](4.078333,0.145833)
+ --(4.12,0.0625)
+ --(4.161667,0.145833) --cycle\dpicstop
+\dpicdraw (4.12,0.074923)
+ --(4.12,0.1875)
+ --(4.22,0.1875)\dpicstop
+\dpicdraw (3.931667,0)
+ --(4.161667,0)\dpicstop
+\draw (4.055833,-0.379167) node{\tt (PR)};
+\draw (3.891667,0) node[left=-2bp]{\sl P};
+\draw (4.22,0.1875) node[right=-2bp]{\sl O};
+\draw (4.22,-0.1875) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](4.69,0) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](4.856667,0.145833)
+ --(4.898333,0.0625)
+ --(4.94,0.145833) --cycle\dpicstop
+\dpicdraw (4.898333,0.074923)
+ --(4.898333,0.1875)
+ --(4.998333,0.1875)\dpicstop
+\filldraw[line width=0bp](4.94,-0.145833)
+ --(4.898333,-0.0625)
+ --(4.856667,-0.145833) --cycle\dpicstop
+\dpicdraw (4.898333,-0.074923)
+ --(4.898333,-0.1875)
+ --(4.998333,-0.1875)\dpicstop
+\dpicdraw (4.709157,-0.005747)
+ --(4.91749,-0.068247)\dpicstop
+\draw (4.834167,-0.379167) node{\tt (PO)};
+\draw (4.998333,-0.1875) node[right=-2bp]{\sl O};
+\draw (4.998333,0.1875) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](5.468333,0) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](5.635,0.145833)
+ --(5.676667,0.0625)
+ --(5.718333,0.145833) --cycle\dpicstop
+\dpicdraw (5.676667,0.074923)
+ --(5.676667,0.1875)
+ --(5.776667,0.1875)\dpicstop
+\filldraw[line width=0bp](5.718333,-0.145833)
+ --(5.676667,-0.0625)
+ --(5.635,-0.145833) --cycle\dpicstop
+\dpicdraw (5.676667,-0.074923)
+ --(5.676667,-0.1875)
+ --(5.776667,-0.1875)\dpicstop
+\dpicdraw (5.48749,0.005747)
+ --(5.695823,0.068247)\dpicstop
+\draw (5.6125,-0.379167) node{\tt (PC)};
+\dpicdraw[fill=white](0.02,-0.711528) circle (0.007874in)\dpicstop
+\dpicdraw (0.04,-0.711528)
+ --(0.27,-0.711528)\dpicstop
+\dpicdraw[fill=white](0.228333,-0.685972) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](0.228333,-0.814028) circle (0.007874in)\dpicstop
+\draw (0.135,-1.000694) node{\tt (I)};
+\draw (0,-0.711528) node[left=-2bp]{\sl P};
+\draw (0.248333,-0.814028) node[right=-2bp]{\sl O};
+\draw (0.248333,-0.685972) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](0.74,-0.788472) circle (0.007874in)\dpicstop
+\dpicdraw (0.76,-0.788472)
+ --(0.99,-0.788472)\dpicstop
+\dpicdraw[fill=white](0.948333,-0.814028) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](0.948333,-0.685972) circle (0.007874in)\dpicstop
+\draw (0.855,-1.000694) node{\tt (RI)};
+\draw (0.72,-0.788472) node[left=-2bp]{\sl P};
+\draw (0.968333,-0.685972) node[right=-2bp]{\sl O};
+\draw (0.968333,-0.814028) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](1.46,-0.69875) circle (0.007874in)\dpicstop
+\dpicdraw (1.48,-0.69875)
+ --(1.71,-0.69875)\dpicstop
+\dpicdraw[fill=white](1.668333,-0.80125) circle (0.007874in)\dpicstop
+\draw (1.575,-1.000694) node{\tt (OI)};
+\dpicdraw[fill=white](2.18,-0.762778) circle (0.007874in)\dpicstop
+\dpicdraw (2.2,-0.762778)
+ --(2.43,-0.762778)\dpicstop
+\dpicdraw[fill=white](2.388333,-0.737222) circle (0.007874in)\dpicstop
+\draw (2.295,-1.000694) node{\tt (CI)};
+\dpicdraw[fill=white](2.9,-0.75) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.108333,-0.641944) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.108333,-0.858056) circle (0.007874in)\dpicstop
+\dpicdraw (2.92,-0.75)
+ --(3.15,-0.75)\dpicstop
+\draw (3.015,-1.000694) node{\tt (PI)};
+\draw (3.128333,-0.858056) node[right=-2bp]{\sl O};
+\draw (3.128333,-0.641944) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](3.62,-0.75) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.828333,-0.641944) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.828333,-0.858056) circle (0.007874in)\dpicstop
+\dpicdraw (3.638651,-0.75722)
+ --(3.856211,-0.841444)\dpicstop
+\draw (3.728105,-1.000694) node{\tt (PIO)};
+\dpicdraw[fill=white](4.326211,-0.75) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](4.534544,-0.641944) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](4.534544,-0.858056) circle (0.007874in)\dpicstop
+\dpicdraw (4.344862,-0.74278)
+ --(4.562421,-0.658556)\dpicstop
+\draw (4.434316,-1.000694) node{\tt (PIC)};
+\dpicdraw[fill=white](0.02,-1.36875) circle (0.007874in)\dpicstop
+\dpicdraw (0.04,-1.36875)
+ --(0.27,-1.36875)\dpicstop
+\dpicdraw (0.228333,-1.382639)
+ --(0.228333,-1.299306)\dpicstop
+\dpicdraw (0.228333,-1.500694)
+ --(0.228333,-1.417361)\dpicstop
+\draw (0.135,-1.650694) node{\tt (T)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.295,-1.320972)
+ --(0.228333,-1.340972)
+ --(0.295,-1.360972) --cycle\dpicstop
+\dpicdraw (0.247667,-1.340972)
+ --(0.283,-1.340972)
+ ..controls (0.306556,-1.340972) and (0.326667,-1.332639)
+ ..(0.343333,-1.315972)
+ --(0.368333,-1.290972)\dpicstop
+\draw (0.368333,-1.290972) node{$\;\;$\sl C};
+\filldraw[line width=0bp](0.295,-1.439028)
+ --(0.228333,-1.459028)
+ --(0.295,-1.479028) --cycle\dpicstop
+\dpicdraw (0.247667,-1.459028)
+ --(0.283,-1.459028)
+ ..controls (0.306556,-1.459028) and (0.326667,-1.467361)
+ ..(0.343333,-1.484028)
+ --(0.368333,-1.509028)\dpicstop
+\draw (0.368333,-1.509028) node{$\;\;$\sl O};
+\dpiclw=0.8bp
+\dpicdraw[fill=white](0.74,-1.43125) circle (0.007874in)\dpicstop
+\dpicdraw (0.76,-1.43125)
+ --(0.99,-1.43125)\dpicstop
+\dpicdraw (0.948333,-1.500694)
+ --(0.948333,-1.417361)\dpicstop
+\dpicdraw (0.948333,-1.382639)
+ --(0.948333,-1.299306)\dpicstop
+\draw (0.855,-1.650694) node{\tt (RT)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.015,-1.320972)
+ --(0.948333,-1.340972)
+ --(1.015,-1.360972) --cycle\dpicstop
+\dpicdraw (0.967667,-1.340972)
+ --(1.003,-1.340972)
+ ..controls (1.026556,-1.340972) and (1.046667,-1.332639)
+ ..(1.063333,-1.315972)
+ --(1.088333,-1.290972)\dpicstop
+\draw (1.088333,-1.290972) node{$\;\;$\sl O};
+\filldraw[line width=0bp](1.015,-1.439028)
+ --(0.948333,-1.459028)
+ --(1.015,-1.479028) --cycle\dpicstop
+\dpicdraw (0.967667,-1.459028)
+ --(1.003,-1.459028)
+ ..controls (1.026556,-1.459028) and (1.046667,-1.467361)
+ ..(1.063333,-1.484028)
+ --(1.088333,-1.509028)\dpicstop
+\draw (1.088333,-1.509028) node{$\;\;$\sl C};
+\dpiclw=0.8bp
+\dpicdraw[fill=white](1.46,-1.344028) circle (0.007874in)\dpicstop
+\dpicdraw (1.48,-1.344028)
+ --(1.71,-1.344028)\dpicstop
+\dpicdraw (1.668333,-1.475972)
+ --(1.668333,-1.392639)\dpicstop
+\draw (1.575,-1.650694) node{\tt (OT)};
+\dpicdraw[fill=white](2.18,-1.424722) circle (0.007874in)\dpicstop
+\dpicdraw (2.2,-1.424722)
+ --(2.43,-1.424722)\dpicstop
+\dpicdraw (2.388333,-1.438611)
+ --(2.388333,-1.355278)\dpicstop
+\draw (2.295,-1.650694) node{\tt (CT)};
+\dpicdraw[fill=white](2.9,-1.4) circle (0.007874in)\dpicstop
+\dpicdraw (3.108333,-1.351389)
+ --(3.108333,-1.268056)\dpicstop
+\dpicdraw (3.108333,-1.531944)
+ --(3.108333,-1.448611)\dpicstop
+\dpicdraw (2.92,-1.4)
+ --(3.15,-1.4)\dpicstop
+\draw (3.015,-1.650694) node{\tt (PT)};
+\dpicdraw[fill=white](3.62,-1.4) circle (0.007874in)\dpicstop
+\dpicdraw (3.828333,-1.351389)
+ --(3.828333,-1.268056)\dpicstop
+\dpicdraw (3.828333,-1.531944)
+ --(3.828333,-1.448611)\dpicstop
+\dpicdraw (3.639157,-1.405747)
+ --(3.84749,-1.468247)\dpicstop
+\draw (3.723745,-1.650694) node{\tt (PTO)};
+\dpicdraw[fill=white](4.31749,-1.4) circle (0.007874in)\dpicstop
+\dpicdraw (4.525823,-1.351389)
+ --(4.525823,-1.268056)\dpicstop
+\dpicdraw (4.525823,-1.531944)
+ --(4.525823,-1.448611)\dpicstop
+\dpicdraw (4.336646,-1.394253)
+ --(4.54498,-1.331753)\dpicstop
+\draw (4.421235,-1.650694) node{\tt (PTC)};
+\dpicdraw[fill=white](0.02,-2.05) circle (0.007874in)\dpicstop
+\dpicdraw (0.04,-2.05)
+ --(0.27,-2.05)\dpicstop
+\dpicdraw (0.311667,-1.966667)
+ --(0.228333,-1.966667)\dpicstop
+\dpicdraw (0.311667,-2.133333)
+ --(0.228333,-2.133333)\dpicstop
+\draw (0.155833,-2.283333) node{\tt (U)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.378333,-1.946667)
+ --(0.311667,-1.966667)
+ --(0.378333,-1.986667) --cycle\dpicstop
+\dpicdraw (0.331001,-1.966667)
+ --(0.366334,-1.966667)
+ ..controls (0.389889,-1.966667) and (0.41,-1.958333)
+ ..(0.426667,-1.941667)
+ --(0.451667,-1.916667)\dpicstop
+\draw (0.451667,-1.916667) node{$\;\;$\sl C};
+\filldraw[line width=0bp](0.378333,-2.113333)
+ --(0.311667,-2.133333)
+ --(0.378333,-2.153333) --cycle\dpicstop
+\dpicdraw (0.331001,-2.133333)
+ --(0.366334,-2.133333)
+ ..controls (0.389889,-2.133333) and (0.41,-2.141667)
+ ..(0.426667,-2.158333)
+ --(0.451667,-2.183333)\dpicstop
+\draw (0.451667,-2.183333) node{$\;\;$\sl O};
+\dpiclw=0.8bp
+\dpicdraw[fill=white](0.781667,-2.05) circle (0.007874in)\dpicstop
+\dpicdraw (0.801667,-2.05)
+ --(1.031667,-2.05)\dpicstop
+\dpicdraw (1.073333,-2.133333)
+ --(0.99,-2.133333)\dpicstop
+\dpicdraw (1.073333,-1.966667)
+ --(0.99,-1.966667)\dpicstop
+\draw (0.9175,-2.283333) node{\tt (RU)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.14,-1.946667)
+ --(1.073333,-1.966667)
+ --(1.14,-1.986667) --cycle\dpicstop
+\dpicdraw (1.092667,-1.966667)
+ --(1.128,-1.966667)
+ ..controls (1.151556,-1.966667) and (1.171667,-1.958333)
+ ..(1.188333,-1.941667)
+ --(1.213333,-1.916667)\dpicstop
+\draw (1.213333,-1.916667) node{$\;\;$\sl O};
+\filldraw[line width=0bp](1.14,-2.113333)
+ --(1.073333,-2.133333)
+ --(1.14,-2.153333) --cycle\dpicstop
+\dpicdraw (1.092667,-2.133333)
+ --(1.128,-2.133333)
+ ..controls (1.151556,-2.133333) and (1.171667,-2.141667)
+ ..(1.188333,-2.158333)
+ --(1.213333,-2.183333)\dpicstop
+\draw (1.213333,-2.183333) node{$\;\;$\sl C};
+\dpiclw=0.8bp
+\dpicdraw[fill=white](1.543333,-2.018333) circle (0.007874in)\dpicstop
+\dpicdraw (1.563333,-2.018333)
+ --(1.793333,-2.018333)\dpicstop
+\dpicdraw (1.835,-2.101667)
+ --(1.751667,-2.101667)\dpicstop
+\draw (1.679167,-2.283333) node{\tt (OU)};
+\draw (1.835,-2.101667) node[right=-2bp]{\sl O};
+\dpicdraw[fill=white](2.305,-2.081667) circle (0.007874in)\dpicstop
+\dpicdraw (2.325,-2.081667)
+ --(2.555,-2.081667)\dpicstop
+\dpicdraw (2.596667,-1.998333)
+ --(2.513333,-1.998333)\dpicstop
+\draw (2.440833,-2.283333) node{\tt (CU)};
+\draw (2.596667,-1.998333) node[right=-2bp]{\sl C};
+\dpicdraw[fill=white](3.066667,-2.05) circle (0.007874in)\dpicstop
+\dpicdraw (3.358333,-1.966667)
+ --(3.275,-1.966667)\dpicstop
+\dpicdraw (3.358333,-2.133333)
+ --(3.275,-2.133333)\dpicstop
+\dpicdraw (3.086667,-2.05)
+ --(3.316667,-2.05)\dpicstop
+\draw (3.2025,-2.283333) node{\tt (PU)};
+\dpicdraw[fill=white](3.828333,-2.046552) circle (0.007874in)\dpicstop
+\dpicdraw (4.12,-1.963218)
+ --(4.036667,-1.963218)\dpicstop
+\dpicdraw (4.12,-2.129885)
+ --(4.036667,-2.129885)\dpicstop
+\dpicdraw (3.847107,-2.053448)
+ --(4.073959,-2.136782)\dpicstop
+\draw (3.964167,-2.283333) node{\tt (PUO)};
+\dpicdraw[fill=white](4.59,-2.053448) circle (0.007874in)\dpicstop
+\dpicdraw (4.881667,-1.970115)
+ --(4.798333,-1.970115)\dpicstop
+\dpicdraw (4.881667,-2.136782)
+ --(4.798333,-2.136782)\dpicstop
+\dpicdraw (4.608773,-2.046552)
+ --(4.835625,-1.963218)\dpicstop
+\draw (4.725833,-2.283333) node(S){\tt (PUC)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Contact.m4 b/graphics/circuit_macros/doc/ContactMan.m4
index 26f8d5a982..26f8d5a982 100644
--- a/graphics/circuit_macros/doc/Contact.m4
+++ b/graphics/circuit_macros/doc/ContactMan.m4
diff --git a/graphics/circuit_macros/doc/Contacts.tex b/graphics/circuit_macros/doc/Contacts.tex
new file mode 100644
index 0000000000..2d9d5c5a6d
--- /dev/null
+++ b/graphics/circuit_macros/doc/Contacts.tex
@@ -0,0 +1,141 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw[fill=white](0.02,-0.1875) circle (0.007874in)\dpicstop
+\dpicdraw (0.04,-0.1875)
+ --(0.27,-0.1875)\dpicstop
+\filldraw[line width=0bp](0.186667,-0.104167)
+ --(0.228333,-0.1875)
+ --(0.27,-0.104167) --cycle\dpicstop
+\dpicdraw (0.228333,-0.175077)
+ --(0.228333,-0.0625)
+ --(0.328333,-0.0625)\dpicstop
+\filldraw[line width=0bp](0.27,-0.333333)
+ --(0.228333,-0.25)
+ --(0.186667,-0.333333) --cycle\dpicstop
+\dpicdraw (0.228333,-0.262423)
+ --(0.228333,-0.375)
+ --(0.328333,-0.375)\dpicstop
+\dpicdraw[fill=white](0.02,0.25) circle (0.007874in)\dpicstop
+\dpicdraw (0.04,0.25)
+ --(0.27,0.25)\dpicstop
+\filldraw[line width=0bp](0.186667,0.333333)
+ --(0.228333,0.25)
+ --(0.27,0.333333) --cycle\dpicstop
+\dpicdraw (0.228333,0.262423)
+ --(0.228333,0.375)
+ --(0.328333,0.375)\dpicstop
+\filldraw[line width=0bp](0.27,0.104167)
+ --(0.228333,0.1875)
+ --(0.186667,0.104167) --cycle\dpicstop
+\dpicdraw (0.228333,0.175077)
+ --(0.228333,0.0625)
+ --(0.328333,0.0625)\dpicstop
+\draw (0.164167,-0.583333) node{\tt contacts(2)};
+\draw (0,-0.1875) node[left=-2bp]{\sl P1};
+\draw (0.348333,-0.375) node[right=-2bp]{\sl O1};
+\draw (0.348333,-0.0625) node[right=-2bp]{\sl C1};
+\draw (0,0.25) node[left=-2bp]{\sl P2};
+\draw (0.348333,0.0625) node[right=-2bp]{\sl O2};
+\draw (0.348333,0.375) node[right=-2bp]{\sl C2};
+\dpicdraw[fill=white](1.098333,-0.294167) circle (0.007874in)\dpicstop
+\dpicdraw (1.118333,-0.294167)
+ --(1.348333,-0.294167)\dpicstop
+\dpicdraw[fill=white](1.306667,-0.268611) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](1.306667,-0.396667) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](1.098333,-0.041111) circle (0.007874in)\dpicstop
+\dpicdraw (1.118333,-0.041111)
+ --(1.348333,-0.041111)\dpicstop
+\dpicdraw[fill=white](1.306667,-0.015556) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](1.306667,-0.143611) circle (0.007874in)\dpicstop
+\draw (1.213333,-0.583333) node{\tt (2,I)};
+\draw (1.078333,-0.294167) node[left=-2bp]{\sl P1};
+\draw (1.326667,-0.396667) node[right=-2bp]{\sl O1};
+\draw (1.326667,-0.268611) node[right=-2bp]{\sl C1};
+\draw (1.078333,-0.041111) node[left=-2bp]{\sl P2};
+\draw (1.326667,-0.143611) node[right=-2bp]{\sl O2};
+\draw (1.326667,-0.015556) node[right=-2bp]{\sl C2};
+\dpicdraw[fill=white](2.118333,-0.294167) circle (0.007874in)\dpicstop
+\dpicdraw (2.138333,-0.294167)
+ --(2.368333,-0.294167)\dpicstop
+\dpicdraw[fill=white](2.326667,-0.396667) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](2.118333,-0.066667) circle (0.007874in)\dpicstop
+\dpicdraw (2.138333,-0.066667)
+ --(2.368333,-0.066667)\dpicstop
+\dpicdraw[fill=white](2.326667,-0.169167) circle (0.007874in)\dpicstop
+\draw (2.233333,-0.583333) node{\tt (2,IO)};
+\draw (2.098333,-0.294167) node[left=-2bp]{\sl P1};
+\draw (2.346667,-0.396667) node[right=-2bp]{\sl O1};
+\draw (2.098333,-0.066667) node[left=-2bp]{\sl P2};
+\draw (2.346667,-0.169167) node[right=-2bp]{\sl O2};
+\dpicdraw[fill=white](3.138333,-0.288611) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.346667,-0.180556) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.346667,-0.396667) circle (0.007874in)\dpicstop
+\dpicdraw (3.156984,-0.281391)
+ --(3.374544,-0.197167)\dpicstop
+\dpicdraw[fill=white](3.138333,0.0525) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.346667,0.160556) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.346667,-0.055556) circle (0.007874in)\dpicstop
+\dpicdraw (3.156984,0.05972)
+ --(3.374544,0.143944)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](3.265764,-0.289279)
+ --(3.265764,0.151832)\dpicstop
+\draw (3.246439,-0.583333) node{\tt (2,PICD)};
+\draw (3.118333,-0.288611) node[left=-2bp]{\sl P1};
+\draw (3.366667,-0.396667) node[right=-2bp]{\sl O1};
+\draw (3.366667,-0.180556) node[right=-2bp]{\sl C1};
+\draw (3.118333,0.0525) node[left=-2bp]{\sl P2};
+\draw (3.366667,-0.055556) node[right=-2bp]{\sl O2};
+\draw (3.366667,0.160556) node[right=-2bp]{\sl C2};
+\dpicdraw[fill=white](4.144544,-0.284722) circle (0.007874in)\dpicstop
+\dpicdraw (4.352877,-0.236111)
+ --(4.352877,-0.152778)\dpicstop
+\dpicdraw (4.352877,-0.416667)
+ --(4.352877,-0.333333)\dpicstop
+\dpicdraw (4.1637,-0.278975)
+ --(4.372034,-0.216475)\dpicstop
+\dpicdraw[fill=white](4.144544,0.020833) circle (0.007874in)\dpicstop
+\dpicdraw (4.352877,0.069444)
+ --(4.352877,0.152778)\dpicstop
+\dpicdraw (4.352877,-0.111111)
+ --(4.352877,-0.027778)\dpicstop
+\dpicdraw (4.1637,0.02658)
+ --(4.372034,0.08908)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](4.267867,-0.297725)
+ --(4.267867,0.10783)\dpicstop
+\draw (4.248289,-0.583333) node{\tt (2,PTCD)};
+\draw (4.124544,-0.284722) node[left=-2bp]{\sl P1};
+\draw (4.372877,-0.375) node[right=-2bp]{\sl O1};
+\draw (4.372877,-0.194444) node[right=-2bp]{\sl C1};
+\draw (4.124544,0.020833) node[left=-2bp]{\sl P2};
+\draw (4.372877,-0.069444) node[right=-2bp]{\sl O2};
+\draw (4.372877,0.111111) node[right=-2bp]{\sl C2};
+\dpicdraw[fill=white](5.142034,-0.333333) circle (0.007874in)\dpicstop
+\dpicdraw (5.4337,-0.25)
+ --(5.350367,-0.25)\dpicstop
+\dpicdraw (5.4337,-0.416667)
+ --(5.350367,-0.416667)\dpicstop
+\dpicdraw (5.160807,-0.326437)
+ --(5.387659,-0.243104)\dpicstop
+\dpicdraw[fill=white](5.142034,-0.041667) circle (0.007874in)\dpicstop
+\dpicdraw (5.4337,0.041667)
+ --(5.350367,0.041667)\dpicstop
+\dpicdraw (5.4337,-0.125)
+ --(5.350367,-0.125)\dpicstop
+\dpicdraw (5.160807,-0.03477)
+ --(5.387659,0.048563)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](5.274233,-0.33477)
+ --(5.274233,0.056896)\dpicstop
+\draw (5.277867,-0.583333) node{\tt (2,PUCD)};
+\draw (5.122034,-0.333333) node[left=-2bp]{\sl P1};
+\draw (5.4537,-0.416667) node[right=-2bp]{\sl O1};
+\draw (5.4537,-0.25) node[right=-2bp]{\sl C1};
+\draw (5.122034,-0.041667) node[left=-2bp]{\sl P2};
+\draw (5.4537,-0.125) node[right=-2bp]{\sl O2};
+\draw (5.4537,0.041667) node[right=-2bp]{\sl C2};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Contacts.m4 b/graphics/circuit_macros/doc/ContactsMan.m4
index 9e006218e3..9e006218e3 100644
--- a/graphics/circuit_macros/doc/Contacts.m4
+++ b/graphics/circuit_macros/doc/ContactsMan.m4
diff --git a/graphics/circuit_macros/doc/Demultiplexer.tex b/graphics/circuit_macros/doc/Demultiplexer.tex
new file mode 100644
index 0000000000..e6e5ec9848
--- /dev/null
+++ b/graphics/circuit_macros/doc/Demultiplexer.tex
@@ -0,0 +1,148 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+{\sf
+\dpicdraw (0.2,0.075)
+ --(0.2,0.425)
+ --(0.6,0.525)
+ --(0.6,-0.375)
+ --(0.2,-0.275)
+ --(0.2,0.075)\dpicstop
+\draw (0.4,0.075) node{\scriptsize DM1};
+\dpicdraw (0.2,0.075)
+ --(0,0.075)\dpicstop
+\dpicdraw (0.4,-0.325)
+ --(0.4,-0.525)\dpicstop
+\draw (0.6,0.4125) node[left=-2bp]{{\scriptsize 0}};
+\dpicdraw (0.6,0.4125)
+ --(0.8,0.4125)\dpicstop
+\draw (0.6,0.1875) node[left=-2bp]{{\scriptsize 1}};
+\dpicdraw (0.6,0.1875)
+ --(0.8,0.1875)\dpicstop
+\draw (0.6,-0.0375) node[left=-2bp]{{\scriptsize 2}};
+\dpicdraw (0.6,-0.0375)
+ --(0.8,-0.0375)\dpicstop
+\draw (0.6,-0.2625) node[left=-2bp]{{\scriptsize 3}};
+\dpicdraw (0.6,-0.2625)
+ --(0.8,-0.2625)\dpicstop
+\draw (0.4,-0.525) node[below=-2bp]{\tt Demux(4,DM1)};
+\draw (0.883333,0.495833) node{\sl Out0};
+\draw (0.883333,-0.345833) node{\sl Out3};
+\draw (0,0.075) node[left=-2bp]{\sl In};
+\draw (0.4,-0.525) node[above right=-2bp]{\sl Sel};
+\dpicdraw (1.8,-0.075)
+ --(1.8,-0.425)
+ --(1.4,-0.525)
+ --(1.4,0.375)
+ --(1.8,0.275)
+ --(1.8,-0.075)\dpicstop
+\dpicdraw (1.8,-0.075)
+ --(2,-0.075)\dpicstop
+\dpicdraw (1.6,0.325)
+ --(1.6,0.525)\dpicstop
+\draw (1.4,0.2625) node[right=-2bp]{{\scriptsize 0}};
+\dpicdraw (1.4,0.2625)
+ --(1.2,0.2625)\dpicstop
+\draw (1.4,0.0375) node[right=-2bp]{{\scriptsize 1}};
+\dpicdraw (1.4,0.0375)
+ --(1.2,0.0375)\dpicstop
+\draw (1.4,-0.1875) node[right=-2bp]{{\scriptsize 2}};
+\dpicdraw (1.4,-0.1875)
+ --(1.2,-0.1875)\dpicstop
+\draw (1.4,-0.4125) node[right=-2bp]{{\scriptsize 3}};
+\dpicdraw (1.4,-0.4125)
+ --(1.2,-0.4125)\dpicstop
+\draw (1.8,0.15) node[left=-2bp]{{\scriptsize OE}};
+\dpicdraw (1.8,0.15)
+ --(2,0.15)\dpicstop
+\draw (1.6,-0.802778) node{\tt left\_; Demux(4,{,}LOE)};
+\draw (1.6,0.525) node[left=-2bp]{\sl Sel};
+\draw (1.116667,0.345833) node{\sl Out0};
+\draw (2,0.15) node[right=-2bp]{\sl OE};
+\draw (2,-0.005556) node[right=-2bp]{\sl In};
+\dpicdraw (2.6,-0.0875)
+ --(2.6,0.2625)
+ --(3,0.3625)
+ --(3,-0.5375)
+ --(2.6,-0.4375)
+ --(2.6,-0.0875)\dpicstop
+\dpicdraw (2.6,-0.0875)
+ --(2.4,-0.0875)\dpicstop
+\dpicdraw (2.7,0.2875)
+ --(2.7,0.4875)\dpicstop
+\dpicdraw (2.9,0.3375)
+ --(2.9,0.5375)\dpicstop
+\draw (3,0.25) node[left=-2bp]{{\scriptsize 00}};
+\dpicdraw (3,0.25)
+ --(3.2,0.25)\dpicstop
+\draw (3,0.025) node[left=-2bp]{{\scriptsize 01}};
+\dpicdraw (3,0.025)
+ --(3.2,0.025)\dpicstop
+\draw (3,-0.2) node[left=-2bp]{{\scriptsize 10}};
+\dpicdraw (3,-0.2)
+ --(3.2,-0.2)\dpicstop
+\draw (3,-0.425) node[left=-2bp]{{\scriptsize 11}};
+\dpicdraw (3,-0.425)
+ --(3.2,-0.425)\dpicstop
+\draw (2.6,-0.3125) node[right=-2bp]{{\scriptsize $\overline{\hbox{OE}}$}};
+\dpicdraw (2.5625,-0.3125) circle (0.014764in)\dpicstop
+\dpicdraw (2.525,-0.3125)
+ --(2.4,-0.3125)\dpicstop
+\draw (2.8,-0.5375) node[below=-2bp]{\tt (4,{,}NOEBN2)};
+\draw (2.7,0.4875) node[left=-2bp]{\sl Sel0};
+\draw (2.9,0.5375) node[right=-2bp]{\sl Sel1};
+\draw (3.269444,0.333333) node{\sl Out0};
+\draw (3.269444,-0.341667) node{\sl Out3};
+\draw (2.4,-0.3125) node[left=-2bp]{\sl NOE};
+\draw (2.4,-0.0875) node[above=-2bp]{\sl In};
+\dpicdraw (4.691667,0.2)
+ --(5.291667,0.2)
+ --(5.391667,-0.2)
+ --(3.991667,-0.2)
+ --(4.091667,0.2)
+ --(4.691667,0.2)\dpicstop
+\dpicdraw (4.691667,0.2)
+ --(4.691667,0.4)\dpicstop
+\dpicdraw (4.075,0.133333)
+ --(3.875,0.133333)\dpicstop
+\dpicdraw (4.041667,0)
+ --(3.841667,0)\dpicstop
+\dpicdraw (4.008333,-0.133333)
+ --(3.808333,-0.133333)\dpicstop
+\draw (4.079167,-0.2) node[above=-2bp]{{\scriptsize 0}};
+\dpicdraw (4.079167,-0.2)
+ --(4.079167,-0.4)\dpicstop
+\draw (4.254167,-0.2) node[above=-2bp]{{\scriptsize 1}};
+\dpicdraw (4.254167,-0.2)
+ --(4.254167,-0.4)\dpicstop
+\draw (4.429167,-0.2) node[above=-2bp]{{\scriptsize 2}};
+\dpicdraw (4.429167,-0.2)
+ --(4.429167,-0.4)\dpicstop
+\draw (4.604167,-0.2) node[above=-2bp]{{\scriptsize 3}};
+\dpicdraw (4.604167,-0.2)
+ --(4.604167,-0.4)\dpicstop
+\draw (4.779167,-0.2) node[above=-2bp]{{\scriptsize 4}};
+\dpicdraw (4.779167,-0.2)
+ --(4.779167,-0.4)\dpicstop
+\draw (4.954167,-0.2) node[above=-2bp]{{\scriptsize 5}};
+\dpicdraw (4.954167,-0.2)
+ --(4.954167,-0.4)\dpicstop
+\draw (5.129167,-0.2) node[above=-2bp]{{\scriptsize 6}};
+\dpicdraw (5.129167,-0.2)
+ --(5.129167,-0.4)\dpicstop
+\draw (5.304167,-0.2) node[above=-2bp]{{\scriptsize 7}};
+\dpicdraw (5.304167,-0.2)
+ --(5.304167,-0.4)\dpicstop
+\draw (4.6,-0.608333) node{\tt down\_; Demux(8,{,}L3,{,}28*L\_unit)};
+\draw (3.875,0.133333) node[left=-2bp]{\sl Sel0};
+\draw (3.808333,-0.133333) node[below left=-2bp]{\sl Sel2};
+\draw (4.079167,-0.4) node[left=-2bp]{\sl Out0};
+\draw (5.304167,-0.4) node[right=-2bp]{\sl Out7};
+\draw (4.691667,0.4) node[left=-2bp]{\sl In};
+}
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Demultiplexer.m4 b/graphics/circuit_macros/doc/DemultiplexerMan.m4
index 210b643441..210b643441 100644
--- a/graphics/circuit_macros/doc/Demultiplexer.m4
+++ b/graphics/circuit_macros/doc/DemultiplexerMan.m4
diff --git a/graphics/circuit_macros/doc/Diodes.tex b/graphics/circuit_macros/doc/Diodes.tex
new file mode 100644
index 0000000000..a628327c27
--- /dev/null
+++ b/graphics/circuit_macros/doc/Diodes.tex
@@ -0,0 +1,383 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0.338916,0)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.338916,0)
+ --(0.338916,0.041667)
+ --(0.40555,0)
+ --(0.338916,-0.041667)
+ --(0.338916,0)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.411084,-0.045718)
+ --(0.411084,0.045718)\dpicstop
+\dpicdraw (0.411084,0)
+ --(0.75,0)\dpicstop
+\draw (0.777674,0) node[right=-2bp]{{\tt diode}};
+\dpicdraw (0,-0.2)
+ --(0.338916,-0.2)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.338916,-0.2)
+ --(0.338916,-0.158333)
+ --(0.40555,-0.2)
+ --(0.338916,-0.241667)
+ --(0.338916,-0.2)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.390251,-0.227778)
+ --(0.390251,-0.245718)
+ --(0.411084,-0.245718)
+ --(0.411084,-0.154282)
+ --(0.431918,-0.154282)
+ --(0.431918,-0.172222)\dpicstop
+\dpicdraw (0.411084,-0.2)
+ --(0.75,-0.2)\dpicstop
+\draw (0.777674,-0.2) node[right=-2bp]{{\tt diode(,S)}};
+\dpicdraw (0,-0.4)
+ --(0.338916,-0.4)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.338916,-0.4)
+ --(0.338916,-0.358333)
+ --(0.40555,-0.4)
+ --(0.338916,-0.441667)
+ --(0.338916,-0.4)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.411084,-0.445718)
+ --(0.411084,-0.354282)\dpicstop
+\dpicdraw (0.431918,-0.445718)
+ --(0.431918,-0.354282)\dpicstop
+\dpicdraw (0.431918,-0.4)
+ --(0.75,-0.4)\dpicstop
+\draw (0.777674,-0.4) node[right=-2bp]{{\tt diode(,V)}};
+\dpicdraw (0,-0.6)
+ --(0.338916,-0.6)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.338916,-0.6)
+ --(0.338916,-0.558333)
+ --(0.40555,-0.6)
+ --(0.338916,-0.641667)
+ --(0.338916,-0.6)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.411084,-0.645718)
+ --(0.411084,-0.554282)\dpicstop
+\dpicdraw (0.438862,-0.645718)
+ ..controls (0.421179,-0.617804) and (0.421179,-0.582196)
+ ..(0.438862,-0.554282)\dpicstop
+\dpicdraw (0.4256,-0.6)
+ --(0.431918,-0.6)\dpicstop
+\dpicdraw (0.431918,-0.6)
+ --(0.75,-0.6)\dpicstop
+\draw (0.777674,-0.6) node[right=-2bp]{{\tt diode(,v)}};
+\dpicdraw (0,-0.8)
+ --(0.338916,-0.8)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.338916,-0.8)
+ --(0.338916,-0.758333)
+ --(0.40555,-0.8)
+ --(0.338916,-0.841667)
+ --(0.338916,-0.8)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.397822,-0.754282)
+ ..controls (0.415505,-0.782196) and (0.415505,-0.817804)
+ ..(0.397822,-0.845718)\dpicstop
+\dpicdraw (0.431918,-0.845718)
+ --(0.431918,-0.754282)\dpicstop
+\dpicdraw (0.431918,-0.8)
+ --(0.75,-0.8)\dpicstop
+\draw (0.777674,-0.8) node[right=-2bp]{{\tt diode(,w)}};
+\dpicdraw (0,-1)
+ --(0.302831,-1)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.302831,-1)
+ --(0.302831,-0.958333)
+ --(0.369465,-1)
+ --(0.302831,-1.041667)
+ --(0.302831,-1)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.354167,-1.045718)
+ --(0.375,-1.045718)
+ --(0.375,-0.954282)
+ --(0.395833,-0.954282)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.447169,-1)
+ --(0.447169,-0.958333)
+ --(0.380535,-1)
+ --(0.447169,-1.041667)
+ --(0.447169,-1)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.447169,-1)
+ --(0.75,-1)\dpicstop
+\draw (0.777674,-1) node[right=-2bp]{{\tt diode(,B)}};
+\dpicdraw (0,-1.2)
+ --(0.302831,-1.2)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.302831,-1.2)
+ --(0.302831,-1.158333)
+ --(0.369465,-1.2)
+ --(0.302831,-1.241667)
+ --(0.302831,-1.2)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.447169,-1.2)
+ --(0.447169,-1.158333)
+ --(0.380535,-1.2)
+ --(0.447169,-1.241667)
+ --(0.447169,-1.2)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.447169,-1.2)
+ --(0.75,-1.2)\dpicstop
+\draw (0.777674,-1.2) node[right=-2bp]{{\tt diode(,G)}};
+\dpicdraw (2,0)
+ --(2.338916,0)\dpicstop
+\dpicdraw (2.338916,0)
+ --(2.338916,0.041667)
+ --(2.40555,0)
+ --(2.338916,-0.041667)
+ --(2.338916,0)\dpicstop
+\dpicdraw (2.411084,-0.045718)
+ --(2.411084,0.045718)\dpicstop
+\dpicdraw (2.411084,0)
+ --(2.75,0)\dpicstop
+\draw (2.777674,0) node[right=-2bp]{{\tt diode(,K)}};
+\dpicdraw (2,-0.2)
+ --(2.338916,-0.2)\dpicstop
+\dpicdraw (2.338916,-0.2)
+ --(2.338916,-0.158333)
+ --(2.40555,-0.2)
+ --(2.338916,-0.241667)
+ --(2.338916,-0.2)\dpicstop
+\dpicdraw (2.390251,-0.245718)
+ --(2.411084,-0.245718)
+ --(2.411084,-0.154282)
+ --(2.431918,-0.154282)\dpicstop
+\dpicdraw (2.411084,-0.2)
+ --(2.75,-0.2)\dpicstop
+\draw (2.777674,-0.2) node[right=-2bp]{{\tt diode(,ZK)}};
+\dpicdraw (2,-0.4)
+ --(2.338916,-0.4)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.338916,-0.4)
+ --(2.338916,-0.358333)
+ --(2.40555,-0.4)
+ --(2.338916,-0.441667)
+ --(2.338916,-0.4)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (2.411084,-0.445718)
+ --(2.411084,-0.354282)\dpicstop
+\dpicdraw (2.390251,-0.445718)
+ --(2.431918,-0.445718)\dpicstop
+\dpicdraw (2.390251,-0.354282)
+ --(2.431918,-0.354282)\dpicstop
+\dpicdraw (2.411084,-0.4)
+ --(2.75,-0.4)\dpicstop
+\draw (2.777674,-0.4) node[right=-2bp]{{\tt diode(,CR)}};
+\dpicdraw (2,-0.6)
+ --(2.338916,-0.6)\dpicstop
+\dpicdraw (2.338916,-0.6)
+ --(2.338916,-0.558333)
+ --(2.40555,-0.6)
+ --(2.338916,-0.641667)
+ --(2.338916,-0.6)\dpicstop
+\dpicdraw (2.338916,-0.6)
+ --(2.411084,-0.6)\dpicstop
+\dpicdraw (2.411084,-0.645718)
+ --(2.411084,-0.554282)\dpicstop
+\dpicdraw (2.411084,-0.6)
+ --(2.75,-0.6)\dpicstop
+\draw (2.777674,-0.6) node[right=-2bp]{{\tt diode(,L)}};
+\dpicdraw (2,-0.8)
+ --(2.338916,-0.8)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.338916,-0.8)
+ --(2.338916,-0.758333)
+ --(2.40555,-0.8)
+ --(2.338916,-0.8)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (2.338916,-0.8)
+ --(2.338916,-0.841667)\dpicstop
+\dpicdraw (2.411084,-0.8)
+ --(2.75,-0.8)\dpicstop
+\draw (2.777674,-0.8) node[right=-2bp]{{\tt diode(,F)}};
+\dpicdraw (2,-1)
+ --(2.338916,-1)\dpicstop
+\dpicdraw (2.338916,-1)
+ --(2.338916,-0.958333)
+ --(2.40555,-1)
+ --(2.338916,-1)\dpicstop
+\dpicdraw (2.338916,-1)
+ --(2.338916,-1.041667)\dpicstop
+\dpicdraw (2.411084,-1.045718)
+ --(2.411084,-0.954282)\dpicstop
+\dpicdraw (2.411084,-1)
+ --(2.75,-1)\dpicstop
+\draw (2.777674,-1) node[right=-2bp]{{\tt diode(,Sh)}};
+\dpicdraw (2,-1.2)
+ --(2.338916,-1.2)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.338916,-1.158333)
+ --(2.338916,-1.116667)
+ --(2.40555,-1.158333)
+ --(2.338916,-1.2)
+ --(2.338916,-1.158333)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (2.411084,-1.287385)
+ --(2.411084,-1.112615)\dpicstop
+\dpicdraw (2.338916,-1.287385)
+ --(2.338916,-1.112615)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.411084,-1.241667)
+ --(2.411084,-1.2)
+ --(2.34445,-1.241667)
+ --(2.411084,-1.283333)
+ --(2.411084,-1.241667)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (2.411084,-1.2)
+ --(2.75,-1.2)\dpicstop
+\draw (2.777674,-1.2) node[right=-2bp]{{\tt diode(,D)}};
+\dpicdraw (4.75,0)
+ --(4.411084,0)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.411084,0)
+ --(4.411084,-0.041667)
+ --(4.34445,0)
+ --(4.411084,0.041667)
+ --(4.411084,0)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.359749,0.045718)
+ --(4.338916,0.045718)
+ --(4.338916,-0.045718)
+ --(4.318082,-0.045718)\dpicstop
+\dpicdraw (4.338916,0)
+ --(4,0)\dpicstop
+\dpicdraw (4.375,0) circle (0.068898in)\dpicstop
+\draw (4.777674,0) node[right=-2bp]{{\tt diode(,Z,RE)}};
+\dpicdraw (4,-0.25)
+ --(4.338916,-0.25)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.338916,-0.25)
+ --(4.338916,-0.208333)
+ --(4.40555,-0.25)
+ --(4.338916,-0.291667)
+ --(4.338916,-0.25)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.390251,-0.295718)
+ --(4.411084,-0.295718)
+ --(4.411084,-0.204282)
+ --(4.390251,-0.204282)\dpicstop
+\dpicdraw (4.411084,-0.25)
+ --(4.75,-0.25)\dpicstop
+\draw (4.777674,-0.25) node[right=-2bp]{{\tt diode(,T)}};
+\dpicdraw (4,-0.55)
+ --(4.338916,-0.55)\dpicstop
+\filldraw[line width=0bp](4.269213,-0.43037)
+ --(4.339362,-0.461236)
+ --(4.308496,-0.391087) --cycle\dpicstop
+\dpicdraw (4.176728,-0.298602)
+ --(4.328524,-0.450398)\dpicstop
+\filldraw[line width=0bp](4.225018,-0.474565)
+ --(4.295168,-0.50543)
+ --(4.264302,-0.435281) --cycle\dpicstop
+\dpicdraw (4.132533,-0.342796)
+ --(4.284329,-0.494592)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.338916,-0.55)
+ --(4.338916,-0.508333)
+ --(4.40555,-0.55)
+ --(4.338916,-0.591667)
+ --(4.338916,-0.55)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.411084,-0.595718)
+ --(4.411084,-0.504282)\dpicstop
+\dpicdraw (4.411084,-0.55)
+ --(4.75,-0.55)\dpicstop
+\draw (4.777674,-0.55) node[right=-2bp]{{\tt diode(,P)}};
+\dpicdraw (4,-0.85)
+ --(4.338916,-0.85)\dpicstop
+\filldraw[line width=0bp](4.202683,-0.673662)
+ --(4.132533,-0.642796)
+ --(4.163399,-0.712945) --cycle\dpicstop
+\dpicdraw (4.295168,-0.80543)
+ --(4.143372,-0.653634)\dpicstop
+\filldraw[line width=0bp](4.246877,-0.629467)
+ --(4.176728,-0.598602)
+ --(4.207593,-0.668751) --cycle\dpicstop
+\dpicdraw (4.339362,-0.761236)
+ --(4.187566,-0.60944)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.338916,-0.85)
+ --(4.338916,-0.808333)
+ --(4.40555,-0.85)
+ --(4.338916,-0.891667)
+ --(4.338916,-0.85)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.411084,-0.895718)
+ --(4.411084,-0.804282)\dpicstop
+\dpicdraw (4.411084,-0.85)
+ --(4.75,-0.85)\dpicstop
+\draw (4.777674,-0.85) node[right=-2bp]{{\tt diode(,LE)}};
+\dpicdraw (4,-1)
+ --(4.338916,-1)\dpicstop
+\filldraw[line width=0bp](4.207593,-1.181249)
+ --(4.176728,-1.251398)
+ --(4.246877,-1.220533) --cycle\dpicstop
+\dpicdraw (4.339362,-1.088764)
+ --(4.187566,-1.24056)\dpicstop
+\filldraw[line width=0bp](4.163399,-1.137055)
+ --(4.132533,-1.207204)
+ --(4.202683,-1.176338) --cycle\dpicstop
+\dpicdraw (4.295168,-1.04457)
+ --(4.143372,-1.196366)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.338916,-1)
+ --(4.338916,-0.958333)
+ --(4.40555,-1)
+ --(4.338916,-1.041667)
+ --(4.338916,-1)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.411084,-1.045718)
+ --(4.411084,-0.954282)\dpicstop
+\dpicdraw (4.411084,-1)
+ --(4.75,-1)\dpicstop
+\draw (4.777674,-1) node[right=-2bp]{{\tt diode(,LER)}};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Diodes.m4 b/graphics/circuit_macros/doc/DiodesMan.m4
index 360d8e9d9e..360d8e9d9e 100644
--- a/graphics/circuit_macros/doc/Diodes.m4
+++ b/graphics/circuit_macros/doc/DiodesMan.m4
diff --git a/graphics/circuit_macros/doc/Emarrows.tex b/graphics/circuit_macros/doc/Emarrows.tex
new file mode 100644
index 0000000000..f409b62c3e
--- /dev/null
+++ b/graphics/circuit_macros/doc/Emarrows.tex
@@ -0,0 +1,142 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\filldraw[line width=0bp](0.53583,0.053354)
+ --(0.465681,0.08422)
+ --(0.496546,0.014071) --cycle\dpicstop
+\dpicdraw (0.628315,-0.078414)
+ --(0.476519,0.073382)\dpicstop
+\filldraw[line width=0bp](0.580024,0.097549)
+ --(0.509875,0.128414)
+ --(0.540741,0.058265) --cycle\dpicstop
+\dpicdraw (0.672509,-0.03422)
+ --(0.520713,0.117576)\dpicstop
+\dpicdraw[dotted](0.465681,-0.078414) rectangle (0.672509,0.128414)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.421111,0.086317)
+ --(0.487778,0.106317)
+ --(0.421111,0.126317) --cycle\dpicstop
+\dpicdraw (0.468444,0.106317)
+ --(0.337778,0.106317)\dpicstop
+\draw (0.337778,0.106317) node[left=-2bp]{\sl Head};
+\filldraw[line width=0bp](0.670412,-0.122984)
+ --(0.650412,-0.056317)
+ --(0.630412,-0.122984) --cycle\dpicstop
+\dpicdraw (0.650412,-0.075651)
+ --(0.650412,-0.176317)\dpicstop
+\draw (0.650412,-0.176317) node[below=-2bp]{\sl Tail};
+\draw (0.546998,0.002903) node[below left=-2bp]{\sl A1};
+\draw (0.591192,0.047097) node[above right=-2bp]{\sl A2};
+\dpiclw=0.8bp
+\draw (0.569095,-0.278414) node[below=-2bp]{\tt em\_arrows(N)};
+\filldraw[line width=0bp](1.724278,0.078265)
+ --(1.755144,0.148414)
+ --(1.684995,0.117549) --cycle\dpicstop
+\dpicdraw (1.592509,-0.01422)
+ --(1.744305,0.137576)\dpicstop
+\filldraw[line width=0bp](1.768472,0.034071)
+ --(1.799338,0.10422)
+ --(1.729189,0.073354) --cycle\dpicstop
+\dpicdraw (1.636704,-0.058414)
+ --(1.7885,0.093382)\dpicstop
+\dpicdraw[fill=black](1.592509,-0.01422) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](1.636704,-0.058414) circle (0.007874in)\dpicstop
+\draw (1.685924,-0.078414) node[below=-2bp]{\tt em\_arrows(ND,45)};
+\dpicdraw (2.561973,-0.071092)
+ ..controls (2.55221,-0.080855) and (2.53638,-0.080855)
+ ..(2.526617,-0.071092)
+ ..controls (2.516854,-0.061329) and (2.516854,-0.0455)
+ ..(2.526617,-0.035737)\dpicstop
+\dpicdraw (2.526617,-0.035737)
+ ..controls (2.550188,-0.012166) and (2.514832,0.023189)
+ ..(2.491262,-0.000381)\dpicstop
+\dpicdraw (2.491262,-0.000381)
+ ..controls (2.481499,-0.010144) and (2.46567,-0.010144)
+ ..(2.455907,-0.000381)
+ ..controls (2.446144,0.009382) and (2.446144,0.025211)
+ ..(2.455907,0.034974)\dpicstop
+\filldraw[line width=0bp](2.456861,0.073304)
+ --(2.399338,0.091543)
+ --(2.417577,0.03402) --cycle\dpicstop
+\dpicdraw (2.455907,0.034974)
+ --(2.407872,0.083008)\dpicstop
+\dpicdraw (2.606167,-0.026898)
+ ..controls (2.582597,-0.050468) and (2.547241,-0.015113)
+ ..(2.570812,0.008457)\dpicstop
+\dpicdraw (2.570812,0.008457)
+ ..controls (2.580575,0.018221) and (2.580575,0.03405)
+ ..(2.570812,0.043813)
+ ..controls (2.561048,0.053576) and (2.545219,0.053576)
+ ..(2.535456,0.043813)\dpicstop
+\dpicdraw (2.535456,0.043813)
+ ..controls (2.525693,0.03405) and (2.509864,0.03405)
+ ..(2.500101,0.043813)
+ ..controls (2.490338,0.053576) and (2.490338,0.069405)
+ ..(2.500101,0.079168)\dpicstop
+\filldraw[line width=0bp](2.501055,0.117498)
+ --(2.443532,0.135737)
+ --(2.461771,0.078214) --cycle\dpicstop
+\dpicdraw (2.500101,0.079168)
+ --(2.452066,0.127203)\dpicstop
+\draw (2.502753,-0.078414) node[below=-2bp]{\tt $\ldots$(I)};
+\dpicdraw (3.368801,-0.058414)
+ ..controls (3.359038,-0.068177) and (3.343209,-0.068177)
+ ..(3.333446,-0.058414)
+ ..controls (3.323683,-0.048651) and (3.323683,-0.032822)
+ ..(3.333446,-0.023059)\dpicstop
+\dpicdraw (3.333446,-0.023059)
+ ..controls (3.357016,0.000511) and (3.321661,0.035867)
+ ..(3.298091,0.012296)\dpicstop
+\dpicdraw (3.298091,0.012296)
+ ..controls (3.288328,0.002533) and (3.272499,0.002533)
+ ..(3.262735,0.012296)
+ ..controls (3.252972,0.022059) and (3.252972,0.037889)
+ ..(3.262735,0.047652)\dpicstop
+\filldraw[line width=0bp](3.263689,0.085981)
+ --(3.206167,0.10422)
+ --(3.224406,0.046698) --cycle\dpicstop
+\dpicdraw (3.262735,0.047652)
+ --(3.214701,0.095686)\dpicstop
+\dpicdraw (3.412996,-0.01422)
+ ..controls (3.389425,-0.03779) and (3.35407,-0.002435)
+ ..(3.37764,0.021135)\dpicstop
+\dpicdraw (3.37764,0.021135)
+ ..controls (3.387403,0.030898) and (3.387403,0.046727)
+ ..(3.37764,0.05649)
+ ..controls (3.367877,0.066254) and (3.352048,0.066254)
+ ..(3.342285,0.05649)\dpicstop
+\dpicdraw (3.342285,0.05649)
+ ..controls (3.332522,0.046727) and (3.316693,0.046727)
+ ..(3.30693,0.05649)
+ ..controls (3.297167,0.066254) and (3.297167,0.082083)
+ ..(3.30693,0.091846)\dpicstop
+\filldraw[line width=0bp](3.307884,0.130176)
+ --(3.250361,0.148414)
+ --(3.2686,0.090892) --cycle\dpicstop
+\dpicdraw (3.30693,0.091846)
+ --(3.258895,0.13988)\dpicstop
+\dpicdraw[fill=black](3.368801,-0.058414) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](3.412996,-0.01422) circle (0.007874in)\dpicstop
+\draw (3.319581,-0.078414) node[below=-2bp]{\tt $\ldots$(ID)};
+\dpicdraw (4.121384,-0.078414)
+ --(4.032996,0.009974)
+ --(4.032996,-0.02931)\dpicstop
+\dpicdraw (4.165578,-0.03422)
+ --(4.07719,0.054168)
+ --(4.07719,0.014884)\dpicstop
+\draw (4.099287,-0.078414) node[below=-2bp]{\tt $\ldots$(E)};
+\dpicdraw (4.853966,-0.058414)
+ --(4.765578,0.029974)
+ --(4.765578,-0.00931)\dpicstop
+\dpicdraw (4.898161,-0.01422)
+ --(4.809772,0.074168)
+ --(4.809772,0.034884)\dpicstop
+\dpicdraw[fill=black](4.853966,-0.058414) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](4.898161,-0.01422) circle (0.007874in)\dpicstop
+\draw (4.841869,-0.078414) node[below=-2bp]{\tt $\ldots$(ED)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Emarrows.m4 b/graphics/circuit_macros/doc/EmarrowsMan.m4
index c4b2131902..c4b2131902 100644
--- a/graphics/circuit_macros/doc/Emarrows.m4
+++ b/graphics/circuit_macros/doc/EmarrowsMan.m4
diff --git a/graphics/circuit_macros/doc/Fuses.tex b/graphics/circuit_macros/doc/Fuses.tex
new file mode 100644
index 0000000000..f0ae5f2e95
--- /dev/null
+++ b/graphics/circuit_macros/doc/Fuses.tex
@@ -0,0 +1,174 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0.275,0)\dpicstop
+\dpicdraw (0.275,-0)
+ ..controls (0.275,0.027614) and (0.297386,0.05)
+ ..(0.325,0.05)
+ ..controls (0.352614,0.05) and (0.375,0.027614)
+ ..(0.375,0)\dpicstop
+\dpicdraw (0.375,0)
+ ..controls (0.375,-0.027614) and (0.397386,-0.05)
+ ..(0.425,-0.05)
+ ..controls (0.452614,-0.05) and (0.475,-0.027614)
+ ..(0.475,0)\dpicstop
+\dpicdraw (0.475,0)
+ --(0.75,0)\dpicstop
+\draw (0.375,-0.2) node{{\tt fuse}};
+\dpicdraw (1,0)
+ --(1.275,0)\dpicstop
+\dpicdraw (1.275,-0)
+ ..controls (1.275,0.027614) and (1.297386,0.05)
+ ..(1.325,0.05)
+ ..controls (1.352614,0.05) and (1.375,0.027614)
+ ..(1.375,0)\dpicstop
+\dpicdraw[fill=white](1.275,-0) circle (0.007874in)\dpicstop
+\dpicdraw (1.375,0)
+ ..controls (1.375,-0.027614) and (1.397386,-0.05)
+ ..(1.425,-0.05)
+ ..controls (1.452614,-0.05) and (1.475,-0.027614)
+ ..(1.475,0)\dpicstop
+\dpicdraw (1.475,0)
+ --(1.75,0)\dpicstop
+\dpicdraw[fill=white](1.475,0) circle (0.007874in)\dpicstop
+\draw (1.375,-0.2) node{{\tt fuse(,D)}};
+\dpicdraw (2,0)
+ --(2.275,0)\dpicstop
+\dpicdraw (2.475,0)
+ --(2.475,0.05)
+ --(2.275,0.05)
+ --(2.275,-0.05)
+ --(2.475,-0.05)
+ --(2.475,0)\dpicstop
+\dpicdraw (2.275,0)
+ --(2.75,0)\dpicstop
+\draw (2.375,-0.2) node{{\tt fuse(,B)}};
+\dpicdraw (3,0)
+ --(3.275,0)\dpicstop
+\dpicdraw (3.475,0)
+ --(3.475,0.05)
+ --(3.275,0.05)
+ --(3.275,-0.05)
+ --(3.475,-0.05)
+ --(3.475,0)\dpicstop
+\dpicdraw (3.315,-0.05)
+ --(3.315,0.05)\dpicstop
+\dpicdraw (3.435,-0.05)
+ --(3.435,0.05)\dpicstop
+\dpicdraw (3.475,0)
+ --(3.75,0)\dpicstop
+\draw (3.375,-0.2) node{{\tt fuse(,C)}};
+\dpicdraw (4,0)
+ --(4.275,0)\dpicstop
+\dpicdraw (4.475,0)
+ --(4.475,0.05)
+ --(4.275,0.05)
+ --(4.275,-0.05)
+ --(4.475,-0.05)
+ --(4.475,0)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.315,0)
+ --(4.315,0.05)
+ --(4.275,0.05)
+ --(4.275,-0.05)
+ --(4.315,-0.05)
+ --(4.315,0)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.475,0)
+ --(4.75,0)\dpicstop
+\draw (4.375,-0.2) node{{\tt fuse(,S)}};
+\dpicdraw (5,0)
+ --(5.208333,0)\dpicstop
+\dpicdraw (5.508333,0)
+ --(5.508333,0.05)
+ --(5.241667,0.05)
+ --(5.241667,-0.05)
+ --(5.508333,-0.05)
+ --(5.508333,0)\dpicstop
+\dpicdraw (5.541667,0)
+ --(5.541667,0.083333)
+ --(5.208333,0.083333)
+ --(5.208333,-0.083333)
+ --(5.541667,-0.083333)
+ --(5.541667,0)\dpicstop
+\dpicdraw (5.208333,0)
+ --(5.75,0)\dpicstop
+\draw (5.375,-0.2) node{{\tt fuse(,HB)}};
+\dpicdraw (0,-0.5)
+ --(0.125,-0.5)\dpicstop
+\dpicdraw (0.565,-0.5)
+ --(0.565,-0.41)
+ --(0.185,-0.41)
+ --(0.185,-0.59)
+ --(0.565,-0.59)
+ --(0.565,-0.5)\dpicstop
+\dpicdraw (0.261,-0.41)
+ --(0.261,-0.59)\dpicstop
+\dpicdraw (0.489,-0.41)
+ --(0.489,-0.59)\dpicstop
+\dpicdraw (0.625,-0.5)
+ --(0.625,-0.35)
+ --(0.125,-0.35)
+ --(0.125,-0.65)
+ --(0.625,-0.65)
+ --(0.625,-0.5)\dpicstop
+\dpicdraw (0.625,-0.5)
+ --(0.75,-0.5)\dpicstop
+\draw (0.375,-0.75) node{{\tt (,HC,0.5,0.3)}};
+\dpicdraw (1,-0.5)
+ --(1.291667,-0.5)\dpicstop
+\dpicdraw (1.276042,-0.46875)
+ ..controls (1.325521,-0.402778) and (1.424479,-0.402778)
+ ..(1.473958,-0.46875)\dpicstop
+\dpicdraw (1.458333,-0.5)
+ --(1.75,-0.5)\dpicstop
+\draw (1.375,-0.75) node{{\tt cbreaker}};
+\dpicdraw (2,-0.5)
+ --(2.291667,-0.5)\dpicstop
+\dpicdraw (2.276042,-0.53125)
+ ..controls (2.325521,-0.597222) and (2.424479,-0.597222)
+ ..(2.473958,-0.53125)\dpicstop
+\dpicdraw (2.458333,-0.5)
+ --(2.75,-0.5)\dpicstop
+\draw (2.375,-0.75) node{{\tt cbreaker(,R)}};
+\dpicdraw (3,-0.5)
+ --(3.291667,-0.5)\dpicstop
+\dpicdraw (3.276042,-0.46875)
+ ..controls (3.325521,-0.402778) and (3.424479,-0.402778)
+ ..(3.473958,-0.46875)\dpicstop
+\dpicdraw (3.458333,-0.5)
+ --(3.75,-0.5)\dpicstop
+\draw (3.375,-0.75) node{{\tt $\ldots$(,{,}D)}};
+\dpicdraw (4,-0.5)
+ --(4.275,-0.5)\dpicstop
+\dpicdraw[line width=0.4bp](4.275,-0.5) circle (0.00109in)\dpicstop
+\dpicdraw (4.275,-0.5)
+ ..controls (4.275,-0.46151) and (4.316667,-0.437454)
+ ..(4.35,-0.456699)
+ ..controls (4.383333,-0.475944) and (4.383333,-0.524056)
+ ..(4.35,-0.543301)\dpicstop
+\dpicdraw[line width=0.4bp](4.475,-0.5) circle (0.00109in)\dpicstop
+\dpicdraw (4.475,-0.5)
+ ..controls (4.475,-0.53849) and (4.433333,-0.562546)
+ ..(4.4,-0.543301)
+ ..controls (4.366667,-0.524056) and (4.366667,-0.475944)
+ ..(4.4,-0.456699)\dpicstop
+\dpicdraw (4.475,-0.5)
+ --(4.75,-0.5)\dpicstop
+\draw (4.375,-0.75) node{{\tt $\ldots$(,{,}T)}};
+\dpicdraw (5,-0.5)
+ --(5.325,-0.5)
+ --(5.325,-0.45)
+ --(5.425,-0.45)
+ --(5.425,-0.5)
+ --(5.75,-0.5)\dpicstop
+\draw (5.375,-0.75) node{{\tt $\ldots$(,{,}TS)}};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Fuses.m4 b/graphics/circuit_macros/doc/FusesMan.m4
index b308e5aadb..bde24fac3e 100644
--- a/graphics/circuit_macros/doc/Fuses.m4
+++ b/graphics/circuit_macros/doc/FusesMan.m4
@@ -4,7 +4,8 @@ cct_init
movewid = 0.25
- {fuse ; {"`{\tt fuse}'" at last line.c+(0,-0.2)}
+ {
+ fuse ; {"`{\tt fuse}'" at last line.c+(0,-0.2)}
move
fuse(,D) ; {"`{\tt fuse(,D)}'" at last line.c+(0,-0.2)}
move
@@ -14,11 +15,10 @@ movewid = 0.25
move
fuse(,S) ; {"`{\tt fuse(,S)}'" at last line.c+(0,-0.2)}
move
- fuse(,HB) ; {"`{\tt fuse(,HB)}'" at last line.c+(0,-0.2)}
+ fuse(,SB) ; {"`{\tt fuse(,SB)}'" at last line.c+(0,-0.2)}
}
move down; right_
- fuse(,HC,0.5,0.3) ; {"`{\tt (,HC,0.5,0.3)}'" at last line.c+(0,-0.25)}
- move
+ {
cbreaker; {"`{\tt cbreaker}'" at last line.c+(0,-0.25)}
move
cbreaker(,R); {"`{\tt cbreaker(,R)}'" at last line.c+(0,-0.25)}
@@ -27,6 +27,13 @@ movewid = 0.25
move
cbreaker(,{,}T); {"`{\tt $\ldots$(,{,}T)}'" at last line.c+(0,-0.25)}
move
- cbreaker(,{,}TS); {"`{\tt $\ldots$(,{,}TS)}'" at last line.c+(0,-0.25)}
+ cbreaker(,{,}TS); {"`{\tt $\ldots$(,{,}TS)}'" at last line.c+(0,-0.25) }
+ }
+ move down; right_
+ {
+ fuse(,HB) ; {"`{\tt fuse(,HB)}'" at last line.c+(0,-0.2)}
+ move
+ fuse(,HC,0.5,0.3) ; {"`{\tt (,HC,0.5,0.3)}'" at last line.c+(0,-0.25)}
+ }
.PE
diff --git a/graphics/circuit_macros/doc/Grounds.tex b/graphics/circuit_macros/doc/Grounds.tex
new file mode 100644
index 0000000000..97ea3b7d9e
--- /dev/null
+++ b/graphics/circuit_macros/doc/Grounds.tex
@@ -0,0 +1,91 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0,-0.125)\dpicstop
+\dpicdraw (0.083333,-0.125)
+ --(-0.083333,-0.125)\dpicstop
+\dpicdraw (0.055556,-0.15625)
+ --(-0.055556,-0.15625)\dpicstop
+\dpicdraw (0.035714,-0.1875)
+ --(-0.035714,-0.1875)\dpicstop
+\dpicdraw (0.733333,0)
+ --(0.566667,-0)\dpicstop
+\dpicdraw (0.705556,-0.03125)
+ --(0.594444,-0.03125)\dpicstop
+\dpicdraw (0.685714,-0.0625)
+ --(0.614286,-0.0625)\dpicstop
+\dpicdraw (1.3,0)
+ --(1.3,-0.125)\dpicstop
+\dpicdraw (1.341667,-0.1875)
+ --(1.383333,-0.125)
+ --(1.216667,-0.125)
+ --(1.175,-0.1875)\dpicstop
+\dpicdraw (1.3,-0.125)
+ --(1.258333,-0.1875)\dpicstop
+\dpicdraw (1.95,0)
+ --(1.95,-0.125)\dpicstop
+\dpicdraw[line width=1.6bp](2.005556,-0.125)
+ --(1.894444,-0.125)\dpicstop
+\draw (0,-0.5) node{{\tt ground}};
+\draw (0.65,-0.402778) node{{\tt ground(,T)}};
+\draw (1.3,-0.5) node{{\tt (,{,}F)}};
+\draw (1.95,-0.5) node{{\tt (,{,}E)}};
+\dpicdraw (2.6,0)
+ --(2.6,-0.125)\dpicstop
+\dpicdraw (2.6,-0.125)
+ --(2.683333,-0.125)
+ --(2.6,-0.25)
+ --(2.516667,-0.125)
+ --(2.6,-0.125)\dpicstop
+\dpicdraw (3.25,-0.25)
+ --(3.25,-0.125)\dpicstop
+\dpicdraw (3.25,-0.125)
+ --(3.166667,-0.125)
+ --(3.25,0)
+ --(3.333333,-0.125)
+ --(3.25,-0.125)\dpicstop
+\dpicdraw (3.9,0)
+ --(3.9,-0.125)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (3.9,-0.125)
+ --(3.983333,-0.125)
+ --(3.9,-0.25)
+ --(3.816667,-0.125)
+ --(3.9,-0.125)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (4.55,0)
+ --(4.55,-0.125)\dpicstop
+\dpicdraw (4.441747,-0.21875)
+ ..controls (4.393634,-0.135417) and (4.453775,-0.03125)
+ ..(4.55,-0.03125)
+ ..controls (4.646225,-0.03125) and (4.706366,-0.135417)
+ ..(4.658253,-0.21875)\dpicstop
+\dpicdraw (4.633333,-0.125)
+ --(4.466667,-0.125)\dpicstop
+\dpicdraw (4.605556,-0.15625)
+ --(4.494444,-0.15625)\dpicstop
+\dpicdraw (4.585714,-0.1875)
+ --(4.514286,-0.1875)\dpicstop
+\dpicdraw (5.2,0)
+ --(5.2,-0.125)\dpicstop
+\dpicdraw (5.2,-0.15625) circle (0.049213in)\dpicstop
+\dpicdraw (5.283333,-0.125)
+ --(5.116667,-0.125)\dpicstop
+\dpicdraw (5.255556,-0.15625)
+ --(5.144444,-0.15625)\dpicstop
+\dpicdraw (5.235714,-0.1875)
+ --(5.164286,-0.1875)\dpicstop
+\draw (2.6,-0.5) node{{\tt (,{,}S)}};
+\draw (3.25,-0.5) node{{\tt (,{,}S,90)}};
+\draw (3.9,-0.5) node{{\tt (,{,}Q)}};
+\draw (4.55,-0.5) node{{\tt (,{,}L)}};
+\draw (5.2,-0.5) node{{\tt (,{,}P)}};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Grounds.m4 b/graphics/circuit_macros/doc/GroundsMan.m4
index 13b4730b80..e93fadf33c 100644
--- a/graphics/circuit_macros/doc/Grounds.m4
+++ b/graphics/circuit_macros/doc/GroundsMan.m4
@@ -8,15 +8,18 @@ Ground: ground
GT: ground(,T)
move right sep
GF: ground(,,F)
+sep = 0.55
move right sep
GE: ground(,,E)
move right sep
-B: Here+(0,-0.5) ; {
- "{\tt `ground'}" wid 32bp__ at (Ground,B)
- "{\tt `ground'(,T)}" at (GT,B)+(0,7bp__)
+B: Here+(0,-0.5)
+D: B+(0,11bp__)
+
+ { "{\tt `ground'}" wid 32bp__ at (Ground,B)
+ "{\tt `ground'(,T)}" at (GT,B)+(0,11bp__)
"{\tt (,{,}F)}" at (GF,B)
- "{\tt (,{,}E)}" at (GE,B)}
+ "{\tt (,{,}E)}" at (GE,D)}
GS: ground(,,S)
@@ -28,12 +31,16 @@ GQ: ground(,,Q)
GL: ground(,,L)
move right sep
GP: ground(,,P)
+ move right sep
+GPA: ground(,T,PA)
C: Here+(0,-0.5)
+E: C+(0,11bp__)
"{\tt (,{,}S)}" at (GS,C)
- "{\tt (,{,}S,90)}" at (GS90,C)
+ "{\tt (,{,}S,90)}" at (GS90,E)
"{\tt (,{,}Q)}" at (GQ,C)
- "{\tt (,{,}L)}" at (GL,C)
+ "{\tt (,{,}L)}" at (GL,E)
"{\tt (,{,}P)}" at (GP,C)
+ "{\tt (,T,PA)}" at (GPA,E)
.PE
diff --git a/graphics/circuit_macros/doc/Headers.tex b/graphics/circuit_macros/doc/Headers.tex
new file mode 100644
index 0000000000..c5b11a87ec
--- /dev/null
+++ b/graphics/circuit_macros/doc/Headers.tex
@@ -0,0 +1,214 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.275,0)
+ --(0.275,0.15)
+ --(0.125,0.15)
+ --(0.125,-0.15)
+ --(0.275,-0.15)
+ --(0.275,0)\dpicstop
+\dpicdraw (0.2,0.075)
+ --(0,0.075)\dpicstop
+\fill[fill=white,line width=0bp](0.225,0.075)
+ --(0.225,0.1)
+ --(0.175,0.1)
+ --(0.175,0.05)
+ --(0.225,0.05)
+ --(0.225,0.075)--cycle
+\dpicstop
+\dpicdraw (0.225,0.075)
+ --(0.225,0.1)
+ --(0.175,0.1)
+ --(0.175,0.05)
+ --(0.225,0.05)
+ --(0.225,0.075)\dpicstop
+\dpicdraw (0.2,-0.075)
+ --(0,-0.075)\dpicstop
+\dpicdraw[fill=white](0.2,-0.075) circle (0.009843in)\dpicstop
+\draw (0,0.075) node[left=-2bp]{\sl P1};
+\draw (0.1375,-0.28837) node{\tt Header};
+\draw (0,-0.075) node[left=-2bp]{\sl P2};
+\dpicdraw (1.464961,-0.09685)
+ --(1.464961,0.1)
+ --(1.15,0.1)
+ --(1.15,-0.293701)
+ --(1.464961,-0.293701)
+ --(1.464961,-0.09685)\dpicstop
+\dpicdraw (1.225,0.034383)
+ --(1.025,0.034383)\dpicstop
+\fill[fill=white,line width=0bp](1.25,0.034383)
+ --(1.25,0.059383)
+ --(1.2,0.059383)
+ --(1.2,0.009383)
+ --(1.25,0.009383)
+ --(1.25,0.034383)--cycle
+\dpicstop
+\dpicdraw (1.25,0.034383)
+ --(1.25,0.059383)
+ --(1.2,0.059383)
+ --(1.2,0.009383)
+ --(1.25,0.009383)
+ --(1.25,0.034383)\dpicstop
+\dpicdraw (1.389961,0.034383)
+ --(1.589961,0.034383)\dpicstop
+\dpicdraw[fill=white](1.389961,0.034383) circle (0.009843in)\dpicstop
+\dpicdraw (1.225,-0.09685)
+ --(1.025,-0.09685)\dpicstop
+\dpicdraw[fill=white](1.225,-0.09685) circle (0.009843in)\dpicstop
+\dpicdraw (1.389961,-0.09685)
+ --(1.589961,-0.09685)\dpicstop
+\dpicdraw[fill=white](1.389961,-0.09685) circle (0.009843in)\dpicstop
+\dpicdraw (1.225,-0.228084)
+ --(1.025,-0.228084)\dpicstop
+\dpicdraw[fill=white](1.225,-0.228084) circle (0.009843in)\dpicstop
+\dpicdraw (1.389961,-0.228084)
+ --(1.589961,-0.228084)\dpicstop
+\dpicdraw[fill=white](1.389961,-0.228084) circle (0.009843in)\dpicstop
+\draw (1.025,0.034383) node[left=-2bp]{\sl P1};
+\draw (1.30748,-0.432071) node{\tt Header(2,3,8mm\_\_,10mm\_\_)};
+\draw (1.589961,0.034383) node[right=-2bp]{\sl P2};
+\draw (1.025,-0.228084) node[left=-2bp]{\sl P5};
+\draw (1.589961,-0.228084) node[right=-2bp]{\sl P6};
+\fill[fill=white!90!black,line width=0bp](2.464961,0.006299)
+ --(2.464961,-0.293701)
+ --(2.764961,-0.293701)
+ --(2.764961,0.306299)
+ --(2.464961,0.306299)
+ --(2.464961,0.006299)--cycle
+\dpicstop
+\dpicdraw (2.464961,0.006299)
+ --(2.464961,-0.293701)
+ --(2.764961,-0.293701)
+ --(2.764961,0.306299)
+ --(2.464961,0.306299)
+ --(2.464961,0.006299)\dpicstop
+\dpicdraw (2.689961,-0.218701)
+ --(2.889961,-0.218701)\dpicstop
+\fill[fill=white,line width=0bp](2.664961,-0.218701)
+ --(2.664961,-0.243701)
+ --(2.714961,-0.243701)
+ --(2.714961,-0.193701)
+ --(2.664961,-0.193701)
+ --(2.664961,-0.218701)--cycle
+\dpicstop
+\dpicdraw (2.664961,-0.218701)
+ --(2.664961,-0.243701)
+ --(2.714961,-0.243701)
+ --(2.714961,-0.193701)
+ --(2.664961,-0.193701)
+ --(2.664961,-0.218701)\dpicstop
+\dpicdraw (2.539961,-0.218701)
+ --(2.339961,-0.218701)\dpicstop
+\dpicdraw[fill=white](2.539961,-0.218701) circle (0.009843in)\dpicstop
+\dpicdraw (2.689961,-0.068701)
+ --(2.889961,-0.068701)\dpicstop
+\dpicdraw[fill=white](2.689961,-0.068701) circle (0.009843in)\dpicstop
+\dpicdraw (2.539961,-0.068701)
+ --(2.339961,-0.068701)\dpicstop
+\dpicdraw[fill=white](2.539961,-0.068701) circle (0.009843in)\dpicstop
+\dpicdraw (2.689961,0.081299)
+ --(2.889961,0.081299)\dpicstop
+\dpicdraw[fill=white](2.689961,0.081299) circle (0.009843in)\dpicstop
+\dpicdraw (2.539961,0.081299)
+ --(2.339961,0.081299)\dpicstop
+\dpicdraw[fill=white](2.539961,0.081299) circle (0.009843in)\dpicstop
+\dpicdraw (2.689961,0.231299)
+ --(2.889961,0.231299)\dpicstop
+\dpicdraw[fill=white](2.689961,0.231299) circle (0.009843in)\dpicstop
+\dpicdraw (2.539961,0.231299)
+ --(2.339961,0.231299)\dpicstop
+\dpicdraw[fill=white](2.539961,0.231299) circle (0.009843in)\dpicstop
+\draw (2.889961,-0.218701) node[right=-2bp]{\sl P1};
+\draw (2.614961,-0.570441) node{\tt left\_; Header(2,4,{,},fill\_(0.9))};
+\draw (2.339961,0.231299) node[left=-2bp]{\sl P8};
+\dpicdraw (4.239961,-0.118701)
+ --(4.839961,-0.118701)
+ --(4.839961,0.181299)
+ --(3.639961,0.181299)
+ --(3.639961,-0.118701)
+ --(4.239961,-0.118701)\dpicstop
+\dpicdraw (4.764961,0.106299)
+ --(4.764961,0.306299)\dpicstop
+\fill[fill=white,line width=0bp](4.764961,0.081299)
+ --(4.789961,0.081299)
+ --(4.789961,0.131299)
+ --(4.739961,0.131299)
+ --(4.739961,0.081299)
+ --(4.764961,0.081299)--cycle
+\dpicstop
+\dpicdraw (4.764961,0.081299)
+ --(4.789961,0.081299)
+ --(4.789961,0.131299)
+ --(4.739961,0.131299)
+ --(4.739961,0.081299)
+ --(4.764961,0.081299)\dpicstop
+\dpicdraw (4.764961,-0.043701)
+ --(4.764961,-0.243701)\dpicstop
+\dpicdraw[fill=white](4.764961,-0.043701) circle (0.009843in)\dpicstop
+\dpicdraw (4.614961,0.106299)
+ --(4.614961,0.306299)\dpicstop
+\dpicdraw[fill=white](4.614961,0.106299) circle (0.009843in)\dpicstop
+\dpicdraw (4.614961,-0.043701)
+ --(4.614961,-0.243701)\dpicstop
+\dpicdraw[fill=white](4.614961,-0.043701) circle (0.009843in)\dpicstop
+\dpicdraw (4.464961,0.106299)
+ --(4.464961,0.306299)\dpicstop
+\dpicdraw[fill=white](4.464961,0.106299) circle (0.009843in)\dpicstop
+\dpicdraw (4.464961,-0.043701)
+ --(4.464961,-0.243701)\dpicstop
+\dpicdraw[fill=white](4.464961,-0.043701) circle (0.009843in)\dpicstop
+\dpicdraw (4.314961,0.106299)
+ --(4.314961,0.306299)\dpicstop
+\dpicdraw[fill=white](4.314961,0.106299) circle (0.009843in)\dpicstop
+\dpicdraw (4.314961,-0.043701)
+ --(4.314961,-0.243701)\dpicstop
+\dpicdraw[fill=white](4.314961,-0.043701) circle (0.009843in)\dpicstop
+\dpicdraw (4.164961,0.106299)
+ --(4.164961,0.306299)\dpicstop
+\dpicdraw[fill=white](4.164961,0.106299) circle (0.009843in)\dpicstop
+\dpicdraw (4.164961,-0.043701)
+ --(4.164961,-0.243701)\dpicstop
+\dpicdraw[fill=white](4.164961,-0.043701) circle (0.009843in)\dpicstop
+\dpicdraw (4.014961,0.106299)
+ --(4.014961,0.306299)\dpicstop
+\dpicdraw[fill=white](4.014961,0.106299) circle (0.009843in)\dpicstop
+\dpicdraw (4.014961,-0.043701)
+ --(4.014961,-0.243701)\dpicstop
+\dpicdraw[fill=white](4.014961,-0.043701) circle (0.009843in)\dpicstop
+\dpicdraw (3.864961,0.106299)
+ --(3.864961,0.306299)\dpicstop
+\dpicdraw[fill=white](3.864961,0.106299) circle (0.009843in)\dpicstop
+\dpicdraw (3.864961,-0.043701)
+ --(3.864961,-0.243701)\dpicstop
+\dpicdraw[fill=white](3.864961,-0.043701) circle (0.009843in)\dpicstop
+\dpicdraw (3.714961,0.106299)
+ --(3.714961,0.306299)\dpicstop
+\dpicdraw[fill=white](3.714961,0.106299) circle (0.009843in)\dpicstop
+\dpicdraw (3.714961,-0.043701)
+ --(3.714961,-0.243701)\dpicstop
+\dpicdraw[fill=white](3.714961,-0.043701) circle (0.009843in)\dpicstop
+\draw (4.764961,0.306299) node[right=-2bp]{\sl P1};
+\draw (4.764961,-0.243701) node[right=-2bp]{\sl P2};
+\draw (4.239961,-0.382071) node{\tt down\_; Header(2,8)};
+\draw (3.714961,0.306299) node[left=-2bp]{\sl P15};
+\draw (3.714961,-0.243701) node[left=-2bp]{\sl P16};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](4.856627,0.126299)
+ --(4.789961,0.106299)
+ --(4.856627,0.086299) --cycle\dpicstop
+\dpicdraw (4.809295,0.106299)
+ --(4.939961,0.106299)\dpicstop
+\draw (4.939961,0.106299) node[right=-2bp]{\sl PinP1};
+\filldraw[line width=0bp](4.856627,-0.023701)
+ --(4.789961,-0.043701)
+ --(4.856627,-0.063701) --cycle\dpicstop
+\dpicdraw (4.809295,-0.043701)
+ --(4.939961,-0.043701)\dpicstop
+\draw (4.939961,-0.043701) node[right=-2bp]{\sl PinP2};
+\dpiclw=0.8bp
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Headers.m4 b/graphics/circuit_macros/doc/HeadersMan.m4
index a4e1abce3b..1c040227e3 100644
--- a/graphics/circuit_macros/doc/Headers.m4
+++ b/graphics/circuit_macros/doc/HeadersMan.m4
@@ -5,7 +5,11 @@ log_init
Header
{"\sl P1" at last [].P1 rjust
`"\tt Header"' at last [].s+(0,-10pt__)
- "\sl P2" at last [].P2 rjust}
+ "\sl P2" at last [].P2 rjust
+ thinlines_
+ arrow <- from last [].Block.ne-(0,0.1) up 0.15 right 0.15
+ "\sl Block" ljust
+ thicklines_ }
Header(2,3,8mm__,10mm__) with .nw at last [].ne+(0.75,-0.05)
{"\sl P1" at last [].P1 rjust
diff --git a/graphics/circuit_macros/doc/Jack.tex b/graphics/circuit_macros/doc/Jack.tex
new file mode 100644
index 0000000000..2a9610f47a
--- /dev/null
+++ b/graphics/circuit_macros/doc/Jack.tex
@@ -0,0 +1,327 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.127778,-0.061111)
+ --(0.277778,-0.061111)
+ --(0.277778,0.005556)
+ --(0.477778,0.005556)\dpicstop
+\dpicdraw[fill=white](0.477778,0.005556) circle (0.007874in)\dpicstop
+\dpicdraw (0.127778,0.138889)
+ --(0.277778,0.138889)
+ --(0.277778,0.072222)
+ --(0.427778,0.072222)\dpicstop
+\draw (0.127778,-0.061111) node[left=-2bp]{\sl A};
+\draw (0.127778,0.138889) node[left=-2bp]{\sl B};
+\draw (0.427778,0.072222) node[above right=-2bp]{\sl TB};
+\draw (0.477778,0.005556) node[below right=-2bp]{\sl TA};
+\dpicdraw (0.977778,0.138889)
+ --(1.127778,0.138889)
+ --(1.127778,0.072222)
+ --(1.327778,0.072222)\dpicstop
+\dpicdraw[fill=white](1.327778,0.072222) circle (0.007874in)\dpicstop
+\dpicdraw (0.977778,-0.061111)
+ --(1.127778,-0.061111)
+ --(1.127778,0.005556)
+ --(1.277778,0.005556)\dpicstop
+\draw (0.977778,0.138889) node[left=-2bp]{\sl A};
+\draw (0.977778,-0.061111) node[left=-2bp]{\sl B};
+\dpicdraw (1.827778,-0.061111)
+ --(1.977778,-0.061111)
+ --(1.977778,0.022222)
+ --(2.177778,0.022222)\dpicstop
+\dpicdraw[fill=white](2.177778,0.022222) circle (0.007874in)\dpicstop
+\dpicdraw (1.827778,0.063889)
+ --(2.127778,0.063889)\dpicstop
+\dpicdraw (1.827778,0.188889)
+ --(1.977778,0.188889)
+ --(1.977778,0.105556)
+ --(2.127778,0.105556)\dpicstop
+\draw (1.827778,-0.061111) node[left=-2bp]{\sl A};
+\draw (1.827778,0.188889) node[left=-2bp]{\sl B};
+\draw (1.827778,0.063889) node[left=-2bp]{\sl C};
+\dpicdraw (2.827778,-0.061111)
+ --(2.677778,-0.061111)
+ --(2.677778,0.022222)
+ --(2.477778,0.022222)\dpicstop
+\dpicdraw[fill=white](2.477778,0.022222) circle (0.007874in)\dpicstop
+\dpicdraw (2.827778,0.063889)
+ --(2.527778,0.063889)\dpicstop
+\dpicdraw (2.827778,0.188889)
+ --(2.677778,0.188889)
+ --(2.677778,0.105556)
+ --(2.527778,0.105556)\dpicstop
+\draw (2.827778,-0.061111) node[right=-2bp]{\sl A};
+\draw (2.827778,0.188889) node[right=-2bp]{\sl B};
+\draw (2.827778,0.063889) node[right=-2bp]{\sl C};
+\draw (0.312778,-0.161111) node[below=-2bp]{\tt plug};
+\draw (1.162778,-0.161111) node[below=-2bp]{\tt plug(,R)};
+\draw (1.912778,-0.161111) node[below=-2bp]{\tt plug(,3)};
+\draw (2.742778,-0.161111) node[below=-2bp]{\tt plug(L,3R)};
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (0.498611,-0.871242)
+ --(0.498611,-0.746242)
+ --(0.456944,-0.746242)
+ --(0.456944,-0.996242)
+ --(0.498611,-0.996242)
+ --(0.498611,-0.871242)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.427778,-0.758742)
+ --(0.396528,-0.789992)
+ --(0.365278,-0.758742)
+ --(0.127778,-0.758742)\dpicstop
+\dpicdraw[fill=white](0.127778,-0.758742) circle (0.007874in)\dpicstop
+\dpiclw=0.4bp
+\draw (0.127778,-0.758742) node[left=-2bp]{\sl L};
+\filldraw[line width=0bp](0.565278,-0.851242)
+ --(0.498611,-0.871242)
+ --(0.565278,-0.891242) --cycle\dpicstop
+\dpicdraw (0.517945,-0.871242)
+ --(0.598611,-0.871242)\dpicstop
+\draw (0.598611,-0.871242) node[right=-2bp]{\sl F};
+\filldraw[line width=0bp](0.497778,-1.062909)
+ --(0.477778,-0.996242)
+ --(0.457778,-1.062909) --cycle\dpicstop
+\dpicdraw (0.477778,-1.015576)
+ --(0.477778,-1.096242)
+ --(0.377778,-1.096242)\dpicstop
+\draw (0.377778,-1.096242) node[left=-2bp]{\sl G};
+\dpiclw=0.8bp
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (1.698611,-0.871242)
+ --(1.698611,-0.746242)
+ --(1.656944,-0.746242)
+ --(1.656944,-0.996242)
+ --(1.698611,-0.996242)
+ --(1.698611,-0.871242)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (1.627778,-0.758742)
+ --(1.596528,-0.789992)
+ --(1.565278,-0.758742)
+ --(1.327778,-0.758742)\dpicstop
+\dpicdraw[fill=white](1.327778,-0.758742) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](1.396528,-0.671242)
+ --(1.427778,-0.733742)
+ --(1.459028,-0.671242) --cycle\dpicstop
+\dpicdraw (1.427778,-0.72132)
+ --(1.427778,-0.639992)\dpicstop
+\filldraw[line width=0bp](1.459028,-0.821242)
+ --(1.427778,-0.758742)
+ --(1.396528,-0.821242) --cycle\dpicstop
+\dpicdraw (1.427778,-0.771165)
+ --(1.427778,-0.852492)\dpicstop
+\dpicdraw (1.577778,-0.983742)
+ --(1.546528,-0.952492)
+ --(1.515278,-0.983742)
+ --(1.327778,-0.983742)\dpicstop
+\dpicdraw[fill=white](1.327778,-0.983742) circle (0.007874in)\dpicstop
+\dpiclw=0.4bp
+\draw (1.327778,-0.758742) node[left=-2bp]{\sl L};
+\filldraw[line width=0bp](1.361111,-0.659992)
+ --(1.427778,-0.639992)
+ --(1.361111,-0.619992) --cycle\dpicstop
+\dpicdraw (1.408444,-0.639992)
+ --(1.177778,-0.639992)\dpicstop
+\draw (1.177778,-0.639992) node[left=-2bp]{\sl LM};
+\filldraw[line width=0bp](1.361111,-0.872492)
+ --(1.427778,-0.852492)
+ --(1.361111,-0.832492) --cycle\dpicstop
+\dpicdraw (1.408444,-0.852492)
+ --(1.177778,-0.852492)\dpicstop
+\draw (1.177778,-0.852492) node[left=-2bp]{\sl LB};
+\draw (1.327778,-0.983742) node[left=-2bp]{\sl S};
+\dpiclw=0.8bp
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (2.098611,-0.871242)
+ --(2.098611,-0.996242)
+ --(2.140278,-0.996242)
+ --(2.140278,-0.746242)
+ --(2.098611,-0.746242)
+ --(2.098611,-0.871242)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (2.169444,-0.758742)
+ --(2.200694,-0.789992)
+ --(2.231944,-0.758742)
+ --(2.469444,-0.758742)\dpicstop
+\dpicdraw[fill=white](2.469444,-0.758742) circle (0.007874in)\dpicstop
+\dpicdraw (2.219444,-0.983742)
+ --(2.250694,-0.952492)
+ --(2.281944,-0.983742)
+ --(2.469444,-0.983742)\dpicstop
+\dpicdraw[fill=white](2.469444,-0.983742) circle (0.007874in)\dpicstop
+\dpiclw=0.4bp
+\draw (2.469444,-0.758742) node[right=-2bp]{\sl L};
+\draw (2.469444,-0.983742) node[right=-2bp]{\sl S};
+\dpiclw=0.8bp
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (3.198611,-0.871242)
+ --(3.198611,-0.996242)
+ --(3.240278,-0.996242)
+ --(3.240278,-0.746242)
+ --(3.198611,-0.746242)
+ --(3.198611,-0.871242)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (3.269444,-0.758742)
+ --(3.300694,-0.789992)
+ --(3.331944,-0.758742)
+ --(3.569444,-0.758742)\dpicstop
+\dpicdraw[fill=white](3.569444,-0.758742) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](3.500694,-0.821242)
+ --(3.469444,-0.758742)
+ --(3.438194,-0.821242) --cycle\dpicstop
+\dpicdraw (3.469444,-0.771165)
+ --(3.469444,-0.852492)\dpicstop
+\dpicdraw (3.319444,-0.571242)
+ --(3.569444,-0.571242)\dpicstop
+\dpicdraw[fill=white](3.569444,-0.571242) circle (0.007874in)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (3.339028,-0.664992)
+ --(3.339028,-0.758742)
+ --(3.359861,-0.758742)
+ --(3.359861,-0.571242)
+ --(3.339028,-0.571242)
+ --(3.339028,-0.664992)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\filldraw[line width=0bp](3.438194,-0.483742)
+ --(3.469444,-0.546242)
+ --(3.500694,-0.483742) --cycle\dpicstop
+\dpicdraw (3.469444,-0.53382)
+ --(3.469444,-0.452492)\dpicstop
+\dpicdraw (3.319444,-0.383742)
+ --(3.569444,-0.383742)\dpicstop
+\dpicdraw[fill=white](3.569444,-0.383742) circle (0.007874in)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (3.339028,-0.477492)
+ --(3.339028,-0.571242)
+ --(3.359861,-0.571242)
+ --(3.359861,-0.383742)
+ --(3.339028,-0.383742)
+ --(3.339028,-0.477492)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\filldraw[line width=0bp](3.438194,-0.296242)
+ --(3.469444,-0.358742)
+ --(3.500694,-0.296242) --cycle\dpicstop
+\dpicdraw (3.469444,-0.34632)
+ --(3.469444,-0.264992)\dpicstop
+\dpicdraw (3.319444,-0.983742)
+ --(3.350694,-0.952492)
+ --(3.381944,-0.983742)
+ --(3.569444,-0.983742)\dpicstop
+\dpicdraw[fill=white](3.569444,-0.983742) circle (0.007874in)\dpicstop
+\dpiclw=0.4bp
+\draw (3.569444,-0.571242) node[right=-2bp]{\sl L1};
+\filldraw[line width=0bp](3.536111,-0.432492)
+ --(3.469444,-0.452492)
+ --(3.536111,-0.472492) --cycle\dpicstop
+\dpicdraw (3.488778,-0.452492)
+ --(3.769444,-0.452492)\dpicstop
+\draw (3.769444,-0.452492) node[right=-2bp]{\sl LM1};
+\draw (3.569444,-0.383742) node[right=-2bp]{\sl L2};
+\filldraw[line width=0bp](3.536111,-0.244992)
+ --(3.469444,-0.264992)
+ --(3.536111,-0.284992) --cycle\dpicstop
+\dpicdraw (3.488778,-0.264992)
+ --(3.769444,-0.264992)\dpicstop
+\draw (3.769444,-0.264992) node[right=-2bp]{\sl LM2};
+\draw (3.569444,-0.983742) node[right=-2bp]{\sl S};
+\draw (3.569444,-0.758742) node[right=-2bp]{\sl L};
+\filldraw[line width=0bp](3.536111,-0.832492)
+ --(3.469444,-0.852492)
+ --(3.536111,-0.872492) --cycle\dpicstop
+\dpicdraw (3.488778,-0.852492)
+ --(3.669444,-0.852492)\dpicstop
+\draw (3.669444,-0.852492) node[right=-2bp]{\sl LB};
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (5.148611,-0.871242)
+ --(5.148611,-0.746242)
+ --(5.106944,-0.746242)
+ --(5.106944,-0.996242)
+ --(5.148611,-0.996242)
+ --(5.148611,-0.871242)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (5.077778,-0.983742)
+ --(5.046528,-0.952492)
+ --(5.015278,-0.983742)
+ --(4.777778,-0.983742)\dpicstop
+\dpicdraw[fill=white](4.777778,-0.983742) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](4.846528,-0.921242)
+ --(4.877778,-0.983742)
+ --(4.909028,-0.921242) --cycle\dpicstop
+\dpicdraw (4.877778,-0.97132)
+ --(4.877778,-0.889992)\dpicstop
+\dpicdraw (5.027778,-0.758742)
+ --(4.996528,-0.789992)
+ --(4.965278,-0.758742)
+ --(4.777778,-0.758742)\dpicstop
+\dpicdraw[fill=white](4.777778,-0.758742) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](4.909028,-0.821242)
+ --(4.877778,-0.758742)
+ --(4.846528,-0.821242) --cycle\dpicstop
+\dpicdraw (4.877778,-0.771165)
+ --(4.877778,-0.852492)\dpicstop
+\dpicdraw (4.977778,-0.571242)
+ --(4.777778,-0.571242)\dpicstop
+\dpicdraw[fill=white](4.777778,-0.571242) circle (0.007874in)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!100!black]
+\dpicdraw (4.958194,-0.664992)
+ --(4.958194,-0.571242)
+ --(4.937361,-0.571242)
+ --(4.937361,-0.758742)
+ --(4.958194,-0.758742)
+ --(4.958194,-0.664992)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\filldraw[line width=0bp](4.846528,-0.483742)
+ --(4.877778,-0.546242)
+ --(4.909028,-0.483742) --cycle\dpicstop
+\dpicdraw (4.877778,-0.53382)
+ --(4.877778,-0.452492)\dpicstop
+\draw (4.777778,-0.983742) node[left=-2bp]{\sl L};
+\draw (4.777778,-0.758742) node[left=-2bp]{\sl S};
+\draw (4.777778,-0.571242) node[left=-2bp]{\sl S1};
+\filldraw[line width=0bp](4.811111,-0.472492)
+ --(4.877778,-0.452492)
+ --(4.811111,-0.432492) --cycle\dpicstop
+\dpicdraw (4.858444,-0.452492)
+ --(4.577778,-0.452492)\dpicstop
+\draw (4.577778,-0.452492) node[left=-2bp]{\sl SM1};
+\filldraw[line width=0bp](4.811111,-0.909992)
+ --(4.877778,-0.889992)
+ --(4.811111,-0.869992) --cycle\dpicstop
+\dpicdraw (4.858444,-0.889992)
+ ..controls (4.743111,-0.889992) and (4.577778,-0.914992)
+ ..(4.527778,-0.939992)\dpicstop
+\draw (4.527778,-0.939992) node[left=-2bp]{\sl LB};
+\filldraw[line width=0bp](4.811111,-0.872492)
+ --(4.877778,-0.852492)
+ --(4.811111,-0.832492) --cycle\dpicstop
+\dpicdraw (4.858444,-0.852492)
+ ..controls (4.743111,-0.852492) and (4.577778,-0.827492)
+ ..(4.527778,-0.802492)\dpicstop
+\draw (4.527778,-0.802492) node[left=-2bp]{\sl SB};
+\dpiclw=0.8bp
+\draw (0.303194,-1.146242) node[below=-2bp]{\tt jack};
+\draw (1.334306,-1.146242) node[below=-2bp]{\tt jack(,LMBS)};
+\draw (2.294028,-1.146242) node[below=-2bp]{\tt ..(L,RLS)};
+\draw (3.394028,-1.146242) node[below=-2bp]{\tt ..(L,RLBLMLMS)};
+\draw (4.953194,-1.146242) node[below=-2bp]{\tt ..(,RSBSMLB)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Jack.m4 b/graphics/circuit_macros/doc/JackMan.m4
index b9a005d279..b9a005d279 100644
--- a/graphics/circuit_macros/doc/Jack.m4
+++ b/graphics/circuit_macros/doc/JackMan.m4
diff --git a/graphics/circuit_macros/doc/Logic.tex b/graphics/circuit_macros/doc/Logic.tex
new file mode 100644
index 0000000000..fae1a4e3c0
--- /dev/null
+++ b/graphics/circuit_macros/doc/Logic.tex
@@ -0,0 +1,212 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.2,0.45)
+ --(0,0.45)
+ --(0,0.75)
+ --(0.2,0.75)\dpicstop
+\dpicdraw (0.2,0.75)
+ ..controls (0.4,0.75) and (0.4,0.45)
+ ..(0.2,0.45)\dpicstop
+\draw (0.6,0.6) node[right=-2bp]{{\tt AND\_gate}};
+\dpicdraw (0.122222,0.348911)
+ --(0,0.348911)\dpicstop
+\dpicdraw (0.004513,0.351089)
+ ..controls (0.050565,0.25571) and (0.050948,0.144606)
+ ..(0.005556,0.048911)\dpicstop
+\dpicdraw (0,0.048911)
+ --(0.122222,0.048911)\dpicstop
+\dpicdraw (0.122222,0.348911)
+ ..controls (0.222661,0.348911) and (0.313857,0.290284)
+ ..(0.355556,0.198911)\dpicstop
+\dpicdraw (0.122222,0.048911)
+ ..controls (0.222661,0.048911) and (0.313857,0.107537)
+ ..(0.355556,0.198911)\dpicstop
+\draw (0.6,0.2) node[right=-2bp]{{\tt OR\_gate}};
+\dpicdraw (0.175,-0.2)
+ --(0,-0.3)
+ --(0,-0.1)
+ --(0.175,-0.2)\dpicstop
+\draw (0.6,-0.2) node[right=-2bp]{{\tt BUFFER\_gate}};
+\dpicdraw (-0,-0.451089)
+ ..controls (0.04503,-0.54602) and (0.04503,-0.656159)
+ ..(-0,-0.751089)\dpicstop
+\dpicdraw (0.166667,-0.451089)
+ --(0.044444,-0.451089)\dpicstop
+\dpicdraw (0.048957,-0.448911)
+ ..controls (0.095009,-0.54429) and (0.095392,-0.655394)
+ ..(0.05,-0.751089)\dpicstop
+\dpicdraw (0.044444,-0.751089)
+ --(0.166667,-0.751089)\dpicstop
+\dpicdraw (0.166667,-0.451089)
+ ..controls (0.267105,-0.451089) and (0.358302,-0.509716)
+ ..(0.4,-0.601089)\dpicstop
+\dpicdraw (0.166667,-0.751089)
+ ..controls (0.267105,-0.751089) and (0.358302,-0.692463)
+ ..(0.4,-0.601089)\dpicstop
+\draw (0.6,-0.6) node[right=-2bp]{{\tt XOR\_gate}};
+\dpicdraw (2.13718,0.45)
+ --(1.93718,0.45)
+ --(1.93718,0.75)
+ --(2.13718,0.75)\dpicstop
+\dpicdraw (2.13718,0.75)
+ ..controls (2.33718,0.75) and (2.33718,0.45)
+ ..(2.13718,0.45)\dpicstop
+\dpicdraw (2.32468,0.6) circle (0.014764in)\dpicstop
+\draw (2.53718,0.6) node[right=-2bp]{{\tt NAND\_gate}};
+\dpicdraw (2.059402,0.348911)
+ --(1.93718,0.348911)\dpicstop
+\dpicdraw (1.941693,0.351089)
+ ..controls (1.987745,0.25571) and (1.988128,0.144606)
+ ..(1.942736,0.048911)\dpicstop
+\dpicdraw (1.93718,0.048911)
+ --(2.059402,0.048911)\dpicstop
+\dpicdraw (2.059402,0.348911)
+ ..controls (2.159841,0.348911) and (2.251037,0.290284)
+ ..(2.292736,0.198911)\dpicstop
+\dpicdraw (2.059402,0.048911)
+ ..controls (2.159841,0.048911) and (2.251037,0.107537)
+ ..(2.292736,0.198911)\dpicstop
+\dpicdraw (2.330236,0.198911) circle (0.014764in)\dpicstop
+\draw (2.53718,0.2) node[right=-2bp]{{\tt NOR\_gate(3)}};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](2.434402,0.218911)
+ --(2.367736,0.198911)
+ --(2.434402,0.178911) --cycle\dpicstop
+\dpicdraw (2.387069,0.198911)
+ --(2.444069,0.198911)
+ ..controls (2.482069,0.198911) and (2.501069,0.223911)
+ ..(2.501069,0.273911)
+ ..controls (2.501069,0.323911) and (2.509402,0.348911)
+ ..(2.526069,0.348911)
+ --(2.551069,0.348911)\dpicstop
+\draw (2.551069,0.348911) node[right=-2bp]{{\tt Out}};
+\filldraw[line width=0bp](2.350236,0.132244)
+ --(2.330236,0.198911)
+ --(2.310236,0.132244) --cycle\dpicstop
+\dpicdraw (2.330236,0.179577)
+ --(2.330236,0.122577)
+ ..controls (2.330236,0.084577) and (2.369819,0.062799)
+ ..(2.448986,0.057244)
+ --(2.567736,0.048911)\dpicstop
+\draw (2.567736,0.048911) node[right=-2bp]{{\tt N\_Out}};
+\filldraw[line width=0bp](1.902093,0.263339)
+ --(1.961918,0.298911)
+ --(1.892391,0.302144) --cycle\dpicstop
+\dpicdraw (1.943161,0.294221)
+ --(1.761918,0.248911)\dpicstop
+\draw (1.761918,0.268911) node[left=-2bp]{{\tt In1\/}};
+\filldraw[line width=0bp](1.916682,0.163339)
+ --(1.976508,0.198911)
+ --(1.906981,0.202144) --cycle\dpicstop
+\dpicdraw (1.957751,0.194221)
+ --(1.776508,0.148911)\dpicstop
+\draw (1.776508,0.148911) node[left=-2bp]{{\tt In2\/}};
+\filldraw[line width=0bp](1.902093,0.063339)
+ --(1.961918,0.098911)
+ --(1.892391,0.102144) --cycle\dpicstop
+\dpicdraw (1.943161,0.094221)
+ --(1.761918,0.048911)\dpicstop
+\draw (1.761918,0.028911) node[left=-2bp]{{\tt In3\/}};
+\dpiclw=0.8bp
+\dpicdraw (2.11218,-0.2)
+ --(1.93718,-0.3)
+ --(1.93718,-0.1)
+ --(2.11218,-0.2)\dpicstop
+\dpicdraw (2.14968,-0.2) circle (0.014764in)\dpicstop
+\draw (2.53718,-0.2) node[right=-2bp]{{\tt NOT\_gate}};
+\dpicdraw (1.992998,-0.451089)
+ ..controls (2.038027,-0.54602) and (2.038027,-0.656159)
+ ..(1.992998,-0.751089)\dpicstop
+\dpicdraw (2.159664,-0.451089)
+ --(2.037442,-0.451089)\dpicstop
+\dpicdraw (2.041955,-0.448911)
+ ..controls (2.088007,-0.54429) and (2.08839,-0.655394)
+ ..(2.042998,-0.751089)\dpicstop
+\dpicdraw (2.037442,-0.751089)
+ --(2.159664,-0.751089)\dpicstop
+\dpicdraw (2.159664,-0.451089)
+ ..controls (2.260103,-0.451089) and (2.351299,-0.509716)
+ ..(2.392998,-0.601089)\dpicstop
+\dpicdraw (2.159664,-0.751089)
+ ..controls (2.260103,-0.751089) and (2.351299,-0.692463)
+ ..(2.392998,-0.601089)\dpicstop
+\dpicdraw (2.430498,-0.601089) circle (0.014764in)\dpicstop
+\dpicdraw (1.97468,-0.501089) circle (0.014764in)\dpicstop
+\dpicdraw (1.97468,-0.701089) circle (0.014764in)\dpicstop
+\draw (2.53718,-0.6) node[right=-2bp]{{\tt NXOR\_gate(NPN)}};
+\filldraw[line width=0bp](1.834102,-0.501089)
+ --(1.93718,-0.501089)
+ --(1.846229,-0.452582) --cycle\dpicstop
+\dpicdraw (1.914958,-0.495534)
+ --(1.73718,-0.451089)\dpicstop
+\draw (1.73718,-0.431089) node[left=-2bp]{{\tt In1\/}};
+\filldraw[line width=0bp](1.923692,-0.601089)
+ --(2.02677,-0.601089)
+ --(1.935819,-0.552582) --cycle\dpicstop
+\dpicdraw (2.004548,-0.595534)
+ --(1.82677,-0.551089)\dpicstop
+\draw (1.82677,-0.551089) node[left=-2bp]{{\tt In2\/}};
+\filldraw[line width=0bp](1.834102,-0.701089)
+ --(1.93718,-0.701089)
+ --(1.846229,-0.652582) --cycle\dpicstop
+\dpicdraw (1.914958,-0.695534)
+ --(1.73718,-0.651089)\dpicstop
+\draw (1.73718,-0.671089) node[left=-2bp]{{\tt In3\/}};
+\dpicdraw (3.87436,0.6)
+ --(3.87436,0.775)
+ --(4.22436,0.775)
+ --(4.22436,0.425)
+ --(3.87436,0.425)
+ --(3.87436,0.6)\dpicstop
+\draw (4.04936,0.705815) node{{\scriptsize$ \& $}};
+\draw (4.47436,0.6) node[right=-2bp]{{\tt NAND\_gate(,B)}};
+\dpicdraw (3.87436,0.2)
+ --(3.87436,0.375)
+ --(4.22436,0.375)
+ --(4.22436,0.025)
+ --(3.87436,0.025)
+ --(3.87436,0.2)\dpicstop
+\draw (4.04936,0.305815) node{{\scriptsize$ \geq 1 $}};
+\dpicdraw (3.83686,0.316667) circle (0.014764in)\dpicstop
+\dpicdraw (3.83686,0.2) circle (0.014764in)\dpicstop
+\dpicdraw (3.83686,0.083333) circle (0.014764in)\dpicstop
+\dpicdraw (4.26186,0.2) circle (0.014764in)\dpicstop
+\draw (4.47436,0.2) node[right=-2bp]{{\tt NOR\_gate(3,NB)}};
+\dpicdraw (3.87436,-0.2)
+ --(3.87436,-0.025)
+ --(4.22436,-0.025)
+ --(4.22436,-0.375)
+ --(3.87436,-0.375)
+ --(3.87436,-0.2)\dpicstop
+\draw (4.04936,-0.094185) node{{\scriptsize$ =1 $}};
+\dpicdraw (3.83686,-0.2875) circle (0.014764in)\dpicstop
+\dpicdraw (4.26186,-0.2) circle (0.014764in)\dpicstop
+\draw (4.47436,-0.2) node[right=-2bp]{{\tt BOX\_gate(PN,N,{,},=1)}};
+\dpicdraw (3.87436,-0.1125)
+ --(3.72436,-0.1125)\dpicstop
+\dpicdraw (3.79936,-0.2875)
+ --(3.72436,-0.2875)\dpicstop
+\dpicdraw (4.29936,-0.2)
+ --(4.44936,-0.2)\dpicstop
+\dpicdraw (3.87436,-0.6)
+ --(3.87436,-0.425)
+ --(4.22436,-0.425)
+ --(4.22436,-0.775)
+ --(3.87436,-0.775)
+ --(3.87436,-0.6)\dpicstop
+\draw (4.04936,-0.494185) node{{\scriptsize$ = $}};
+\dpicdraw (4.26186,-0.6) circle (0.014764in)\dpicstop
+\draw (4.47436,-0.6) node[right=-2bp]{{\tt BOX\_gate(PP,N,{,},=)}};
+\dpicdraw (3.87436,-0.5125)
+ --(3.72436,-0.5125)\dpicstop
+\dpicdraw (3.87436,-0.6875)
+ --(3.72436,-0.6875)\dpicstop
+\dpicdraw (4.29936,-0.6)
+ --(4.44936,-0.6)\dpicstop
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Logic.m4 b/graphics/circuit_macros/doc/LogicMan.m4
index d42e02768e..d42e02768e 100644
--- a/graphics/circuit_macros/doc/Logic.m4
+++ b/graphics/circuit_macros/doc/LogicMan.m4
diff --git a/graphics/circuit_macros/doc/Makefile b/graphics/circuit_macros/doc/Makefile
index 463f3c0ec1..9e27cc0b27 100644
--- a/graphics/circuit_macros/doc/Makefile
+++ b/graphics/circuit_macros/doc/Makefile
@@ -5,31 +5,30 @@ DOC = Circuit_macros
DOCSRC = Circuit_macros.tex body.tex defines.tex
PICTEX = \
- AmpTable.tex Antennas.tex Audio.tex Axes.tex \
- Buffer.tex BigResistor.tex Bip.tex \
- CctTable.tex Composite.tex ConfigA.tex ConfigB.tex ConfigC.tex Conn.tex \
- Corners.tex Contact.tex Contacts.tex \
- Dac.tex Darlington.tex Demultiplexer.tex Diodes.tex \
- Emarrows.tex FF.tex FlipFlop.tex \
- Flowdiag.tex Fuses.tex Grounds.tex \
- Headers.tex HybridPi.tex Jack.tex \
- Logic.tex Loop.tex Multiplexer.tex NPDT.tex NLG.tex Nport.tex \
- Oblique.tex Opamp.tex Opto.tex \
- ParSeries.tex Pconn.tex Potentiometers.tex Relay.tex relaycoil.tex \
- Series.tex ShiftR.tex Sinus.tex Sources.tex Switches.tex \
- Taps.tex Tgate.tex Thermal.tex Tline.tex Ttree.tex \
- Variable.tex Xform.tex Windings.tex Workflow.tex \
- bitr.tex bi_trans.tex \
- bistable.tex currents.tex eboxdims.tex fbfilter.tex fet.tex \
- lrarrows.tex mplex.tex oax.tex \
- quick.tex stringdims.tex thyristor.tex ujt.tex woodchips.tex
+ AmpTableMan.tex AntennasMan.tex AudioMan.tex Axes.tex \
+ Buffer.tex BigResistor.tex BipMan.tex \
+ CctTableMan.tex Composite.tex ConfigA.tex ConfigB.tex ConfigC.tex \
+ ConnMan.tex Corners.tex ContactMan.tex ContactsMan.tex \
+ Dac.tex Darlington.tex DemultiplexerMan.tex DiodesMan.tex \
+ EmarrowsMan.tex FF.tex FlipFlop.tex Flowdiag.tex FusesMan.tex \
+ GroundsMan.tex HeadersMan.tex HybridPi.tex JackMan.tex LogicMan.tex \
+ Loop.tex MultiplexerMan.tex NPDTMan.tex NLGMan.tex NportMan.tex \
+ Oblique.tex OpampMan.tex Opto.tex ParSeries.tex PconnMan.tex \
+ Potentiometers.tex RelayMan.tex relaycoilMan.tex Series.tex ShiftRMan.tex \
+ Sinus.tex SourcesMan.tex SwitchesMan.tex Taps.tex TgateMan.tex \
+ Thermal.tex Tline.tex VariableMan.tex XformMan.tex \
+ WindingsMan.tex Workflow.tex bitr.tex bi_trans.tex bistableMan.tex \
+ currents.tex eboxdims.tex fbfilter.tex fetMan.tex lrarrows.tex \
+ mplex.tex oax.tex quick.tex \
+ sampleIC.tex stringdims.tex thyristorMan.tex ujtMan.tex \
+ woodchips.tex
VERBATIM = BigResistor2.verb eboxdims.verb
-BOXDIMS = Antennas.tex bi_trans.tex ConfigA.tex ConfigB.tex ConfigC.tex \
+BOXDIMS = AntennasMan.tex bi_trans.tex ConfigA.tex ConfigB.tex ConfigC.tex \
Corners.tex \
Dac.tex eboxdims.tex FlipFlop.tex \
- Opamp.tex ParSeries.tex Sinus.tex stringdims.tex Ttree.tex \
- Windings.tex woodchips.tex
+ OpampMan.tex ParSeries.tex Sinus.tex stringdims.tex \
+ WindingsMan.tex woodchips.tex
# BOXDIMS = $(PICTEX)
LATEX = latex
@@ -59,7 +58,7 @@ SFX = dvi
M4LIBS = $(MODE).m4
.SUFFIXES: .tex .m4
-.m4.tex: $*.m4
+.m4.tex:
touch $(DOC).dim
$(M4) $(M4LIBS) $(DOC).dim $*.m4 > $*.pic
($(PRE) $(PIC) $*.pic $(POST)) > $*.tex
@@ -71,7 +70,8 @@ $(DOC).pdf:
make MODE=pgf PIC="dpic -g" LATEX=pdflatex SFX=pdf \
POST="; printf '\\\\vspace*{-0.5\\\\baselineskip}\\n'" \
$(DOC).pdf
- optpdf $(DOC).pdf
+# This breaks internal links:
+# optpdf $(DOC).pdf
chmod 644 $(DOC).pdf
$(DOC).ps:
diff --git a/graphics/circuit_macros/doc/Multiplexer.tex b/graphics/circuit_macros/doc/Multiplexer.tex
new file mode 100644
index 0000000000..a8a09d6e1c
--- /dev/null
+++ b/graphics/circuit_macros/doc/Multiplexer.tex
@@ -0,0 +1,148 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+{\sf
+\dpicdraw (0.2,0.075)
+ --(0.2,0.525)
+ --(0.6,0.425)
+ --(0.6,-0.275)
+ --(0.2,-0.375)
+ --(0.2,0.075)\dpicstop
+\draw (0.4,0.075) node{\scriptsize M1};
+\dpicdraw (0.6,0.075)
+ --(0.8,0.075)\dpicstop
+\dpicdraw (0.4,-0.325)
+ --(0.4,-0.525)\dpicstop
+\draw (0.2,0.4125) node[right=-2bp]{{\scriptsize 0}};
+\dpicdraw (0.2,0.4125)
+ --(0,0.4125)\dpicstop
+\draw (0.2,0.1875) node[right=-2bp]{{\scriptsize 1}};
+\dpicdraw (0.2,0.1875)
+ --(0,0.1875)\dpicstop
+\draw (0.2,-0.0375) node[right=-2bp]{{\scriptsize 2}};
+\dpicdraw (0.2,-0.0375)
+ --(0,-0.0375)\dpicstop
+\draw (0.2,-0.2625) node[right=-2bp]{{\scriptsize 3}};
+\dpicdraw (0.2,-0.2625)
+ --(0,-0.2625)\dpicstop
+\draw (0.4,-0.525) node[below=-2bp]{\tt Mux(4,M1)};
+\draw (0,0.4125) node[left=-2bp]{\sl In0};
+\draw (0,0.1875) node[left=-2bp]{\sl In1};
+\draw (0,-0.0375) node[left=-2bp]{\sl In2};
+\draw (0,-0.2625) node[left=-2bp]{\sl In3};
+\draw (0.8,0.075) node[above=-2bp]{\sl Out};
+\draw (0.4,-0.525) node[above right=-2bp]{\sl Sel};
+\dpicdraw (1.5,-0.075)
+ --(1.5,-0.525)
+ --(1.1,-0.425)
+ --(1.1,0.275)
+ --(1.5,0.375)
+ --(1.5,-0.075)\dpicstop
+\dpicdraw (1.1,-0.075)
+ --(0.9,-0.075)\dpicstop
+\dpicdraw (1.3,0.325)
+ --(1.3,0.525)\dpicstop
+\draw (1.5,0.285) node[left=-2bp]{{\scriptsize 0}};
+\dpicdraw (1.5,0.285)
+ --(1.7,0.285)\dpicstop
+\draw (1.5,0.105) node[left=-2bp]{{\scriptsize 1}};
+\dpicdraw (1.5,0.105)
+ --(1.7,0.105)\dpicstop
+\draw (1.5,-0.075) node[left=-2bp]{{\scriptsize 2}};
+\dpicdraw (1.5,-0.075)
+ --(1.7,-0.075)\dpicstop
+\draw (1.5,-0.255) node[left=-2bp]{{\scriptsize 3}};
+\dpicdraw (1.5,-0.255)
+ --(1.7,-0.255)\dpicstop
+\draw (1.5,-0.435) node[left=-2bp]{{\scriptsize $\overline{\hbox{OE}}$}};
+\dpicdraw (1.5375,-0.435) circle (0.014764in)\dpicstop
+\dpicdraw (1.575,-0.435)
+ --(1.7,-0.435)\dpicstop
+\draw (1.3,-0.802778) node{\tt left\_; Mux(4,{,}LNOE)};
+\draw (1.7,0.285) node[above=-2bp]{\sl In0};
+\draw (1.755556,-0.435) node[below=-2bp]{\sl NOE};
+\draw (0.9,-0.075) node[below=-2bp]{\sl Out};
+\draw (1.3,0.525) node[below left=-2bp]{\sl Sel};
+\dpicdraw (2.5,-0.0875)
+ --(2.5,0.3625)
+ --(2.9,0.2625)
+ --(2.9,-0.4375)
+ --(2.5,-0.5375)
+ --(2.5,-0.0875)\dpicstop
+\dpicdraw (2.9,-0.0875)
+ --(3.1,-0.0875)\dpicstop
+\dpicdraw (2.6,0.3375)
+ --(2.6,0.5375)\dpicstop
+\dpicdraw (2.8,0.2875)
+ --(2.8,0.4875)\dpicstop
+\draw (2.5,0.2725) node[right=-2bp]{{\scriptsize 00}};
+\dpicdraw (2.5,0.2725)
+ --(2.3,0.2725)\dpicstop
+\draw (2.5,0.0925) node[right=-2bp]{{\scriptsize 01}};
+\dpicdraw (2.5,0.0925)
+ --(2.3,0.0925)\dpicstop
+\draw (2.5,-0.0875) node[right=-2bp]{{\scriptsize 10}};
+\dpicdraw (2.5,-0.0875)
+ --(2.3,-0.0875)\dpicstop
+\draw (2.5,-0.2675) node[right=-2bp]{{\scriptsize 11}};
+\dpicdraw (2.5,-0.2675)
+ --(2.3,-0.2675)\dpicstop
+\draw (2.5,-0.4475) node[right=-2bp]{{\scriptsize OE}};
+\dpicdraw (2.5,-0.4475)
+ --(2.3,-0.4475)\dpicstop
+\draw (2.7,-0.5375) node[below=-2bp]{\tt Mux(4,{,}OEBN2)};
+\draw (2.6,0.5375) node[left=-2bp]{\sl Sel0};
+\draw (2.8,0.4875) node[right=-2bp]{\sl Sel1};
+\draw (2.3,0.2725) node[left=-2bp]{\sl In0};
+\draw (2.3,-0.2675) node[left=-2bp]{\sl In3};
+\draw (2.3,-0.4475) node[left=-2bp]{\sl OE};
+\dpicdraw (4.491667,0.2)
+ --(5.191667,0.2)
+ --(5.091667,-0.2)
+ --(3.891667,-0.2)
+ --(3.791667,0.2)
+ --(4.491667,0.2)\dpicstop
+\dpicdraw (4.491667,-0.2)
+ --(4.491667,-0.4)\dpicstop
+\dpicdraw (3.808333,0.133333)
+ --(3.608333,0.133333)\dpicstop
+\dpicdraw (3.841667,0)
+ --(3.641667,0)\dpicstop
+\dpicdraw (3.875,-0.133333)
+ --(3.675,-0.133333)\dpicstop
+\draw (3.879167,0.2) node[below=-2bp]{{\scriptsize 0}};
+\dpicdraw (3.879167,0.2)
+ --(3.879167,0.4)\dpicstop
+\draw (4.054167,0.2) node[below=-2bp]{{\scriptsize 1}};
+\dpicdraw (4.054167,0.2)
+ --(4.054167,0.4)\dpicstop
+\draw (4.229167,0.2) node[below=-2bp]{{\scriptsize 2}};
+\dpicdraw (4.229167,0.2)
+ --(4.229167,0.4)\dpicstop
+\draw (4.404167,0.2) node[below=-2bp]{{\scriptsize 3}};
+\dpicdraw (4.404167,0.2)
+ --(4.404167,0.4)\dpicstop
+\draw (4.579167,0.2) node[below=-2bp]{{\scriptsize 4}};
+\dpicdraw (4.579167,0.2)
+ --(4.579167,0.4)\dpicstop
+\draw (4.754167,0.2) node[below=-2bp]{{\scriptsize 5}};
+\dpicdraw (4.754167,0.2)
+ --(4.754167,0.4)\dpicstop
+\draw (4.929167,0.2) node[below=-2bp]{{\scriptsize 6}};
+\dpicdraw (4.929167,0.2)
+ --(4.929167,0.4)\dpicstop
+\draw (5.104167,0.2) node[below=-2bp]{{\scriptsize 7}};
+\dpicdraw (5.104167,0.2)
+ --(5.104167,0.4)\dpicstop
+\draw (4.4,-0.4) node[below=-2bp]{\tt down\_; Mux(8,{,}L3,{,}28*L\_unit)};
+\draw (3.608333,0.133333) node[left=-2bp]{\sl Sel0};
+\draw (3.675,-0.133333) node[below left=-2bp]{\sl Sel2};
+\draw (3.879167,0.4) node[left=-2bp]{\sl In0};
+\draw (5.104167,0.4) node[right=-2bp]{\sl In7};
+}
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Multiplexer.m4 b/graphics/circuit_macros/doc/MultiplexerMan.m4
index f4b72154a4..f4b72154a4 100644
--- a/graphics/circuit_macros/doc/Multiplexer.m4
+++ b/graphics/circuit_macros/doc/MultiplexerMan.m4
diff --git a/graphics/circuit_macros/doc/NLG.tex b/graphics/circuit_macros/doc/NLG.tex
new file mode 100644
index 0000000000..ba14d3cb04
--- /dev/null
+++ b/graphics/circuit_macros/doc/NLG.tex
@@ -0,0 +1,93 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.145,-0.25) rectangle (0.895,0.25)\dpicstop
+\draw (0.145,0) node[right=-2bp]{${}0$};
+\draw (0.895,0) node[left=-2bp]{$\infty$};
+\dpicdraw (0.145,0.125)
+ --(0.02,0.125)\dpicstop
+\dpicdraw[fill=black](0.02,0.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.145,-0.125)
+ --(0.02,-0.125)\dpicstop
+\dpicdraw[fill=black](0.02,-0.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.895,0.125)
+ --(1.02,0.125)\dpicstop
+\dpicdraw[fill=black](1.02,0.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.895,-0.125)
+ --(1.02,-0.125)\dpicstop
+\dpicdraw[fill=black](1.02,-0.125) circle (0.007874in)\dpicstop
+\draw (0.52,-0.291511) node[below=-2bp]{\tt nullor};
+\dpicdraw (1.685,-0.25) rectangle (2.185,0.25)\dpicstop
+\dpicdraw (1.685,0.125)
+ --(1.56,0.125)\dpicstop
+\dpicdraw[fill=black](1.56,0.125) circle (0.007874in)\dpicstop
+\dpicdraw (1.685,-0.125)
+ --(1.56,-0.125)\dpicstop
+\dpicdraw[fill=black](1.56,-0.125) circle (0.007874in)\dpicstop
+\dpicdraw (2.185,0.125)
+ --(2.31,0.125)\dpicstop
+\dpicdraw[fill=black](2.31,0.125) circle (0.007874in)\dpicstop
+\dpicdraw (2.185,-0.125)
+ --(2.31,-0.125)\dpicstop
+\dpicdraw[fill=black](2.31,-0.125) circle (0.007874in)\dpicstop
+\dpicdraw (1.685,0.125)
+ --(1.81,0.125)
+ --(1.81,-0.125)
+ --(1.685,-0.125)\dpicstop
+\dpicdraw (1.81,-0.083333)
+ ..controls (1.856024,-0.083333) and (1.893333,-0.046024)
+ ..(1.893333,0)
+ ..controls (1.893333,0.046024) and (1.856024,0.083333)
+ ..(1.81,0.083333)\dpicstop
+\dpicdraw (2.185,0.125)
+ --(2.06,0.125)
+ --(2.06,-0.125)
+ --(2.185,-0.125)\dpicstop
+\dpicdraw (2.06,0.083333)
+ ..controls (2.013976,0.083333) and (1.976667,0.046024)
+ ..(1.976667,0)
+ ..controls (1.976667,-0.046024) and (2.013976,-0.083333)
+ ..(2.06,-0.083333)\dpicstop
+\draw (1.935,-0.291511) node[below=-2bp]{\tt gyrator};
+\dpicdraw (2.83,0.125)
+ --(3.0175,0.125)
+ --(3.0175,-0.125)
+ --(2.83,-0.125)\dpicstop
+\dpicdraw (3.0175,-0.083333)
+ ..controls (3.063524,-0.083333) and (3.100833,-0.046024)
+ ..(3.100833,0)
+ ..controls (3.100833,0.046024) and (3.063524,0.083333)
+ ..(3.0175,0.083333)\dpicstop
+\dpicdraw (3.58,0.125)
+ --(3.3925,0.125)
+ --(3.3925,-0.125)
+ --(3.58,-0.125)\dpicstop
+\dpicdraw (3.3925,0.083333)
+ ..controls (3.346476,0.083333) and (3.309167,0.046024)
+ ..(3.309167,0)
+ ..controls (3.309167,-0.046024) and (3.346476,-0.083333)
+ ..(3.3925,-0.083333)\dpicstop
+\draw (3.205,-0.25) node{\tt gyrator(invis,{,}0,N)};
+\dpicdraw (4.705,-0.25)
+ --(4.705,-0.125)
+ --(4.955,-0.125)
+ --(4.955,-0.25)\dpicstop
+\dpicdraw (4.913333,-0.125)
+ ..controls (4.913333,-0.078976) and (4.876024,-0.041667)
+ ..(4.83,-0.041667)
+ ..controls (4.783976,-0.041667) and (4.746667,-0.078976)
+ ..(4.746667,-0.125)\dpicstop
+\dpicdraw (4.705,0.25)
+ --(4.705,0.125)
+ --(4.955,0.125)
+ --(4.955,0.25)\dpicstop
+\dpicdraw (4.746667,0.125)
+ ..controls (4.746667,0.013889) and (4.913333,0.013889)
+ ..(4.913333,0.125)\dpicstop
+\draw (4.83,-0.291511) node[below=-2bp]{\tt gyrator(invis wid boxht,{,}0,NV)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/NLG.m4 b/graphics/circuit_macros/doc/NLGMan.m4
index 2b9a39f86e..2b9a39f86e 100644
--- a/graphics/circuit_macros/doc/NLG.m4
+++ b/graphics/circuit_macros/doc/NLGMan.m4
diff --git a/graphics/circuit_macros/doc/NPDT.tex b/graphics/circuit_macros/doc/NPDT.tex
new file mode 100644
index 0000000000..3cad25c409
--- /dev/null
+++ b/graphics/circuit_macros/doc/NPDT.tex
@@ -0,0 +1,121 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw[fill=white](0.024,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw (0.224,-0.061976)
+ --(0.224,-0.061976)\dpicstop
+\dpicdraw (0.224,-0.061976)
+ --(0.374,0.088024)\dpicstop
+\dpicdraw (0.424,-0.061976)
+ --(0.424,-0.061976)\dpicstop
+\dpicdraw[fill=white](0.224,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](0.424,-0.061976) circle (0.009449in)\dpicstop
+\draw (0.424,-0.085976) node[below=-2bp]{\sl R};
+\draw (0.224,-0.085976) node[below=-2bp]{\sl T};
+\draw (0.024,-0.085976) node[below=-2bp]{\sl L};
+\draw (0.224,-0.308024) node{\tt NPDT};
+\dpicdraw[fill=white](1.174,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw (1.174,0.138024)
+ --(1.174,0.138024)\dpicstop
+\dpicdraw (1.174,0.138024)
+ --(1.024,0.288024)\dpicstop
+\dpicdraw (1.174,0.338024)
+ --(1.174,0.338024)\dpicstop
+\dpicdraw[fill=white](1.174,0.138024) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](1.174,0.338024) circle (0.009449in)\dpicstop
+\draw (1.198,0.338024) node[right=-2bp]{\sl R};
+\draw (1.198,0.138024) node[right=-2bp]{\sl T};
+\draw (1.198,-0.061976) node[right=-2bp]{\sl L};
+\draw (1.212024,-0.235976) node{\tt up\_; NPDT\strut};
+\dpicdraw[fill=white](1.924,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw (2.124,-0.061976)
+ --(2.124,-0.061976)\dpicstop
+\dpicdraw (2.124,-0.061976)
+ --(2.274,0.088024)\dpicstop
+\dpicdraw (2.324,-0.061976)
+ --(2.324,-0.061976)\dpicstop
+\dpicdraw[fill=white](2.124,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](2.324,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](1.924,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw (2.124,0.238024)
+ --(2.124,0.238024)\dpicstop
+\dpicdraw (2.124,0.238024)
+ --(2.274,0.388024)\dpicstop
+\dpicdraw (2.324,0.238024)
+ --(2.324,0.238024)\dpicstop
+\dpicdraw[fill=white](2.124,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](2.324,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](2.224,-0.001976)
+ --(2.224,0.373024)\dpicstop
+\draw (2.348,-0.061976) node[right=-2bp]{\sl R1};
+\draw (1.9,-0.061976) node[left=-2bp]{\sl L1};
+\draw (2.348,0.238024) node[right=-2bp]{\sl R2};
+\draw (1.9,0.238024) node[left=-2bp]{\sl L2};
+\draw (2.124,-0.238024) node{\tt NPDT(2)\strut};
+\dpicdraw[fill=white](3.074,0.538024) circle (0.009449in)\dpicstop
+\dpicdraw (3.274,0.538024)
+ --(3.274,0.538024)\dpicstop
+\dpicdraw (3.274,0.538024)
+ --(3.424,0.388024)\dpicstop
+\dpicdraw (3.474,0.538024)
+ --(3.474,0.538024)\dpicstop
+\dpicdraw[fill=white](3.274,0.538024) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](3.474,0.538024) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](3.074,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw (3.274,0.238024)
+ --(3.274,0.238024)\dpicstop
+\dpicdraw (3.274,0.238024)
+ --(3.424,0.088024)\dpicstop
+\dpicdraw (3.474,0.238024)
+ --(3.474,0.238024)\dpicstop
+\dpicdraw[fill=white](3.274,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](3.474,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](3.074,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw (3.274,-0.061976)
+ --(3.274,-0.061976)\dpicstop
+\dpicdraw (3.274,-0.061976)
+ --(3.424,-0.211976)\dpicstop
+\dpicdraw (3.474,-0.061976)
+ --(3.474,-0.061976)\dpicstop
+\dpicdraw[fill=white](3.274,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](3.474,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](3.374,0.478024)
+ --(3.374,-0.196976)\dpicstop
+\draw (3.498,0.538024) node[right=-2bp]{\sl R1};
+\draw (3.05,0.538024) node[left=-2bp]{\sl L1};
+\draw (3.498,0.238024) node[right=-2bp]{\sl R2};
+\draw (3.05,0.238024) node[left=-2bp]{\sl L2};
+\draw (3.498,-0.061976) node[right=-2bp]{\sl R3};
+\draw (3.05,-0.061976) node[left=-2bp]{\sl L3};
+\draw (3.274,-0.211976) node[below=-2bp]{\tt NPDT(3,R)\strut};
+\dpicdraw[fill=white](4.624,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw (4.424,-0.061976)
+ --(4.424,-0.061976)\dpicstop
+\dpicdraw (4.424,-0.061976)
+ --(4.274,0.088024)\dpicstop
+\dpicdraw (4.224,-0.061976)
+ --(4.224,-0.061976)\dpicstop
+\dpicdraw[fill=white](4.424,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](4.224,-0.061976) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](4.624,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw (4.424,0.238024)
+ --(4.424,0.238024)\dpicstop
+\dpicdraw (4.424,0.238024)
+ --(4.274,0.388024)\dpicstop
+\dpicdraw (4.224,0.238024)
+ --(4.224,0.238024)\dpicstop
+\dpicdraw[fill=white](4.424,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw[fill=white](4.224,0.238024) circle (0.009449in)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](4.324,-0.001976)
+ --(4.324,0.373024)\dpicstop
+\draw (4.2,-0.061976) node[left=-2bp]{\sl R1};
+\draw (4.648,-0.061976) node[right=-2bp]{\sl L1};
+\draw (4.2,0.238024) node[left=-2bp]{\sl R2};
+\draw (4.648,0.238024) node[right=-2bp]{\sl L2};
+\draw (4.424,-0.238024) node{\tt left\_; NPDT(2,R)\strut};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/NPDT.m4 b/graphics/circuit_macros/doc/NPDTMan.m4
index 17f4ef26b1..17f4ef26b1 100644
--- a/graphics/circuit_macros/doc/NPDT.m4
+++ b/graphics/circuit_macros/doc/NPDTMan.m4
diff --git a/graphics/circuit_macros/doc/Nport.tex b/graphics/circuit_macros/doc/Nport.tex
new file mode 100644
index 0000000000..e473f19b8d
--- /dev/null
+++ b/graphics/circuit_macros/doc/Nport.tex
@@ -0,0 +1,116 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.145,-0.25) rectangle (0.895,0.25)\dpicstop
+\dpicdraw (0.145,0.125)
+ --(0.02,0.125)\dpicstop
+\dpicdraw[fill=black](0.02,0.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.145,-0.125)
+ --(0.02,-0.125)\dpicstop
+\dpicdraw[fill=black](0.02,-0.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.895,0.125)
+ --(1.02,0.125)\dpicstop
+\dpicdraw[fill=black](1.02,0.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.895,-0.125)
+ --(1.02,-0.125)\dpicstop
+\dpicdraw[fill=black](1.02,-0.125) circle (0.007874in)\dpicstop
+\draw (0.02,0.125) node[above left=1bp]{\sl W1a};
+\draw (0.02,-0.125) node[below left=1bp]{\sl W1b};
+\draw (1.02,0.125) node[above right=1bp]{\sl E1a};
+\draw (1.02,-0.125) node[below right=1bp]{\sl E1b};
+\dpicdraw[fill=white!90!black](1.895,-0.5) rectangle (3.895,0.5)\dpicstop
+\draw (2.895,0) node{n-port};
+\dpicdraw (1.895,0.25)
+ --(1.77,0.25)\dpicstop
+\dpicdraw[fill=black](1.77,0.25) circle (0.007874in)\dpicstop
+\dpicdraw (1.895,-0.25)
+ --(1.77,-0.25)\dpicstop
+\dpicdraw[fill=black](1.77,-0.25) circle (0.007874in)\dpicstop
+\dpicdraw (2.180714,0.5)
+ --(2.180714,0.625)\dpicstop
+\dpicdraw[fill=black](2.180714,0.625) circle (0.007874in)\dpicstop
+\dpicdraw (2.752143,0.5)
+ --(2.752143,0.625)\dpicstop
+\dpicdraw[fill=black](2.752143,0.625) circle (0.007874in)\dpicstop
+\dpicdraw (3.037857,0.5)
+ --(3.037857,0.625)\dpicstop
+\dpicdraw[fill=black](3.037857,0.625) circle (0.007874in)\dpicstop
+\dpicdraw (3.609286,0.5)
+ --(3.609286,0.625)\dpicstop
+\dpicdraw[fill=black](3.609286,0.625) circle (0.007874in)\dpicstop
+\dpicdraw (3.895,0.4)
+ --(4.02,0.4)\dpicstop
+\dpicdraw[fill=black](4.02,0.4) circle (0.007874in)\dpicstop
+\dpicdraw (3.895,0.2)
+ --(4.02,0.2)\dpicstop
+\dpicdraw[fill=black](4.02,0.2) circle (0.007874in)\dpicstop
+\dpicdraw (3.895,0.1)
+ --(4.02,0.1)\dpicstop
+\dpicdraw[fill=black](4.02,0.1) circle (0.007874in)\dpicstop
+\dpicdraw (3.895,-0.1)
+ --(4.02,-0.1)\dpicstop
+\dpicdraw[fill=black](4.02,-0.1) circle (0.007874in)\dpicstop
+\dpicdraw (3.895,-0.2)
+ --(4.02,-0.2)\dpicstop
+\dpicdraw[fill=black](4.02,-0.2) circle (0.007874in)\dpicstop
+\dpicdraw (3.895,-0.4)
+ --(4.02,-0.4)\dpicstop
+\dpicdraw[fill=black](4.02,-0.4) circle (0.007874in)\dpicstop
+\dpicdraw (2.048846,-0.5)
+ --(2.048846,-0.625)\dpicstop
+\dpicdraw[fill=black](2.048846,-0.625) circle (0.007874in)\dpicstop
+\dpicdraw (2.356538,-0.5)
+ --(2.356538,-0.625)\dpicstop
+\dpicdraw[fill=black](2.356538,-0.625) circle (0.007874in)\dpicstop
+\dpicdraw (2.510385,-0.5)
+ --(2.510385,-0.625)\dpicstop
+\dpicdraw[fill=black](2.510385,-0.625) circle (0.007874in)\dpicstop
+\dpicdraw (2.818077,-0.5)
+ --(2.818077,-0.625)\dpicstop
+\dpicdraw[fill=black](2.818077,-0.625) circle (0.007874in)\dpicstop
+\dpicdraw (2.971923,-0.5)
+ --(2.971923,-0.625)\dpicstop
+\dpicdraw[fill=black](2.971923,-0.625) circle (0.007874in)\dpicstop
+\dpicdraw (3.279615,-0.5)
+ --(3.279615,-0.625)\dpicstop
+\dpicdraw[fill=black](3.279615,-0.625) circle (0.007874in)\dpicstop
+\dpicdraw (3.433462,-0.5)
+ --(3.433462,-0.625)\dpicstop
+\dpicdraw[fill=black](3.433462,-0.625) circle (0.007874in)\dpicstop
+\dpicdraw (3.741154,-0.5)
+ --(3.741154,-0.625)\dpicstop
+\dpicdraw[fill=black](3.741154,-0.625) circle (0.007874in)\dpicstop
+\draw (1.77,0.25) node[left=1bp]{\sl W1a};
+\draw (1.77,-0.25) node[left=1bp]{\sl W1b};
+\draw (4.02,0.4) node[right=1bp]{\sl E1a};
+\draw (4.02,-0.4) node[right=1bp]{\sl E3b};
+\draw (2.180714,0.625) node[above=1bp]{\sl N1a};
+\draw (2.752143,0.625) node[above=1bp]{\sl N1b$\;\;$};
+\draw (3.037857,0.625) node[above=1bp]{\sl $\;\;$N2a};
+\draw (3.609286,0.625) node[above=1bp]{\sl N2b};
+\draw (2.048846,-0.625) node[below=1bp]{\sl S1a};
+\draw (3.741154,-0.625) node[below=1bp]{\sl S4b};
+\draw (2.895,-0.725) node{$\cdots$};
+\draw (4.17,0.05) node{$\vdots$};
+\dpicdraw (4.895,-0.166667) rectangle (5.395,0.166667)\dpicstop
+\dpicdraw (4.895,0)
+ --(4.77,0)\dpicstop
+\dpicdraw[fill=black](4.77,0) circle (0.007874in)\dpicstop
+\dpicdraw (5.395,0)
+ --(5.52,0)\dpicstop
+\dpicdraw[fill=black](5.52,0) circle (0.007874in)\dpicstop
+\dpicdraw (5.145,-0.166667)
+ --(5.145,-0.291667)\dpicstop
+\dpicdraw[fill=black](5.145,-0.291667) circle (0.007874in)\dpicstop
+\draw (4.77,0) node[left=1bp]{\sl W1};
+\draw (5.52,0) node[right=1bp]{\sl E1};
+\draw (5.145,-0.291667) node[below=1bp]{\sl S1};
+\draw (0.52,-0.55) node{\tt nport};
+\draw (2.895,-0.895) node{\tt nport(wid 2.0 ht 1 fill\_(0.9) "n-port",1,2,3,4)};
+\draw (5.145,-0.611667) node{\tt nterm};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Nport.m4 b/graphics/circuit_macros/doc/NportMan.m4
index 37dbffeacc..37dbffeacc 100644
--- a/graphics/circuit_macros/doc/Nport.m4
+++ b/graphics/circuit_macros/doc/NportMan.m4
diff --git a/graphics/circuit_macros/doc/Opamp.m4 b/graphics/circuit_macros/doc/OpampMan.m4
index 5bdb8ac208..5bdb8ac208 100644
--- a/graphics/circuit_macros/doc/Opamp.m4
+++ b/graphics/circuit_macros/doc/OpampMan.m4
diff --git a/graphics/circuit_macros/doc/Pconn.tex b/graphics/circuit_macros/doc/Pconn.tex
new file mode 100644
index 0000000000..0bc608cbd9
--- /dev/null
+++ b/graphics/circuit_macros/doc/Pconn.tex
@@ -0,0 +1,462 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.598611,0.013889)
+ --(0.598611,0.263889)
+ --(0.098611,0.263889)
+ --(0.098611,-0.236111)
+ --(0.598611,-0.236111)
+ --(0.598611,0.013889)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.469444,0.088889)
+ --(0.469444,0.163889)
+ --(0.427778,0.163889)
+ --(0.427778,0.013889)
+ --(0.469444,0.013889)
+ --(0.469444,0.088889)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.269444,0.088889)
+ --(0.269444,0.151389)
+ --(0.227778,0.151389)
+ --(0.227778,0.026389)
+ --(0.269444,0.026389)
+ --(0.269444,0.088889)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\fill[fill=black,line width=0bp](0.390278,-0.111111)
+ ..controls (0.390278,-0.088099) and (0.371623,-0.069444)
+ ..(0.348611,-0.069444)
+ ..controls (0.325599,-0.069444) and (0.306944,-0.088099)
+ ..(0.306944,-0.111111)--cycle
+\dpicstop
+\dpicdraw (0.390278,-0.111111)
+ ..controls (0.390278,-0.088099) and (0.371623,-0.069444)
+ ..(0.348611,-0.069444)
+ ..controls (0.325599,-0.069444) and (0.306944,-0.088099)
+ ..(0.306944,-0.111111)\dpicstop
+\fill[fill=black,line width=0bp](0.306944,-0.111111)
+ --(0.306944,-0.152778)
+ --(0.390278,-0.152778)
+ --(0.390278,-0.111111)--cycle
+\dpicstop
+\dpicdraw (0.306944,-0.111111)
+ --(0.306944,-0.152778)
+ --(0.390278,-0.152778)
+ --(0.390278,-0.111111)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.161111,0.068889)
+ --(0.227778,0.088889)
+ --(0.161111,0.108889) --cycle\dpicstop
+\dpicdraw (0.218111,0.088889)
+ --(0.027778,0.088889)\dpicstop
+\draw (0.027778,0.088889) node[left=-2bp]{\sl H};
+\dpiclw=0.8bp
+\draw (0.348611,-0.236111) node[below=-2bp]{\tt pconnex(,A)};
+\dpicdraw (1.398611,0.013889)
+ --(1.398611,0.263889)
+ --(0.898611,0.263889)
+ --(0.898611,-0.236111)
+ --(1.398611,-0.236111)
+ --(1.398611,0.013889)\dpicstop
+\dpicdraw (1.069444,0.088889)
+ --(1.069444,0.163889)
+ --(1.027778,0.163889)
+ --(1.027778,0.013889)
+ --(1.069444,0.013889)
+ --(1.069444,0.088889)\dpicstop
+\dpicdraw (1.269444,0.088889)
+ --(1.269444,0.151389)
+ --(1.227778,0.151389)
+ --(1.227778,0.026389)
+ --(1.269444,0.026389)
+ --(1.269444,0.088889)\dpicstop
+\dpicdraw (1.190278,-0.111111)
+ ..controls (1.190278,-0.088099) and (1.171623,-0.069444)
+ ..(1.148611,-0.069444)
+ ..controls (1.125599,-0.069444) and (1.106944,-0.088099)
+ ..(1.106944,-0.111111)\dpicstop
+\dpicdraw (1.106944,-0.111111)
+ --(1.106944,-0.152778)
+ --(1.190278,-0.152778)
+ --(1.190278,-0.111111)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.320129,0.136592)
+ --(1.269444,0.088889)
+ --(1.338017,0.100815) --cycle\dpicstop
+\dpicdraw (1.278091,0.093212)
+ --(1.469444,0.188889)\dpicstop
+\draw (1.469444,0.188889) node[right=-2bp]{\sl H};
+\draw (0.748611,0.188889) node{\sl N};
+\filldraw[line width=0bp](0.520518,0.136175)
+ --(0.469444,0.088889)
+ --(0.538113,0.100252) --cycle\dpicstop
+\dpicdraw (0.673611,0.188889)
+ --(0.478126,0.093141)\dpicstop
+\filldraw[line width=0bp](0.95911,0.100252)
+ --(1.027778,0.088889)
+ --(0.976704,0.136175) --cycle\dpicstop
+\dpicdraw (0.823611,0.188889)
+ --(1.019096,0.093141)\dpicstop
+\draw (0.748611,-0.061111) node{\sl G};
+\filldraw[line width=0bp](0.452454,-0.07983)
+ --(0.390278,-0.111111)
+ --(0.459406,-0.119221) --cycle\dpicstop
+\dpicdraw (0.673611,-0.061111)
+ --(0.399798,-0.109431)\dpicstop
+\filldraw[line width=0bp](1.037817,-0.119221)
+ --(1.106944,-0.111111)
+ --(1.044768,-0.07983) --cycle\dpicstop
+\dpicdraw (0.823611,-0.061111)
+ --(1.097425,-0.109431)\dpicstop
+\draw (1.148611,-0.236111) node[below=-2bp]{\tt (,AF)};
+\dpicdraw (1.848611,0.013889) circle (0.098425in)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (1.969444,0.088889)
+ --(1.969444,0.163889)
+ --(1.927778,0.163889)
+ --(1.927778,0.013889)
+ --(1.969444,0.013889)
+ --(1.969444,0.088889)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (1.769444,0.088889)
+ --(1.769444,0.151389)
+ --(1.727778,0.151389)
+ --(1.727778,0.026389)
+ --(1.769444,0.026389)
+ --(1.769444,0.088889)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\fill[fill=black,line width=0bp](1.890278,-0.111111)
+ ..controls (1.890278,-0.088099) and (1.871623,-0.069444)
+ ..(1.848611,-0.069444)
+ ..controls (1.825599,-0.069444) and (1.806944,-0.088099)
+ ..(1.806944,-0.111111)--cycle
+\dpicstop
+\dpicdraw (1.890278,-0.111111)
+ ..controls (1.890278,-0.088099) and (1.871623,-0.069444)
+ ..(1.848611,-0.069444)
+ ..controls (1.825599,-0.069444) and (1.806944,-0.088099)
+ ..(1.806944,-0.111111)\dpicstop
+\fill[fill=black,line width=0bp](1.806944,-0.111111)
+ --(1.806944,-0.152778)
+ --(1.890278,-0.152778)
+ --(1.890278,-0.111111)--cycle
+\dpicstop
+\dpicdraw (1.806944,-0.111111)
+ --(1.806944,-0.152778)
+ --(1.890278,-0.152778)
+ --(1.890278,-0.111111)\dpicstop
+\draw (1.848611,-0.236111) node[below=-2bp]{\tt (,AC)};
+\dpicdraw (2.548611,0.013889) circle (0.098425in)\dpicstop
+\dpicdraw (2.469444,0.088889)
+ --(2.469444,0.163889)
+ --(2.427778,0.163889)
+ --(2.427778,0.013889)
+ --(2.469444,0.013889)
+ --(2.469444,0.088889)\dpicstop
+\dpicdraw (2.669444,0.088889)
+ --(2.669444,0.151389)
+ --(2.627778,0.151389)
+ --(2.627778,0.026389)
+ --(2.669444,0.026389)
+ --(2.669444,0.088889)\dpicstop
+\dpicdraw (2.590278,-0.111111)
+ ..controls (2.590278,-0.088099) and (2.571623,-0.069444)
+ ..(2.548611,-0.069444)
+ ..controls (2.525599,-0.069444) and (2.506944,-0.088099)
+ ..(2.506944,-0.111111)\dpicstop
+\dpicdraw (2.506944,-0.111111)
+ --(2.506944,-0.152778)
+ --(2.590278,-0.152778)
+ --(2.590278,-0.111111)\dpicstop
+\draw (2.548611,-0.236111) node[below=-2bp]{\tt (,ACF)};
+\dpicdraw (3.298611,-0.136111)
+ --(3.298611,0.163889)\dpicstop
+\dpicdraw (3.298611,0.163889)
+ ..controls (3.298611,0.246732) and (3.231454,0.313889)
+ ..(3.148611,0.313889)
+ ..controls (3.065768,0.313889) and (2.998611,0.246732)
+ ..(2.998611,0.163889)\dpicstop
+\dpicdraw (2.998611,0.163889)
+ --(2.998611,-0.136111)\dpicstop
+\dpicdraw (2.998611,-0.136111)
+ ..controls (2.998611,-0.336111) and (3.298611,-0.336111)
+ ..(3.298611,-0.136111)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (3.148611,0.163889) circle (0.016404in)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (3.148611,-0.136111) circle (0.016404in)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\draw (3.148611,-0.286111) node[below=-2bp]{\tt (U,D)};
+\dpicdraw (3.798611,-0.136111)
+ --(3.798611,0.163889)\dpicstop
+\dpicdraw (3.798611,0.163889)
+ ..controls (3.798611,0.246732) and (3.731454,0.313889)
+ ..(3.648611,0.313889)
+ ..controls (3.565768,0.313889) and (3.498611,0.246732)
+ ..(3.498611,0.163889)\dpicstop
+\dpicdraw (3.498611,0.163889)
+ --(3.498611,-0.136111)\dpicstop
+\dpicdraw (3.498611,-0.136111)
+ ..controls (3.498611,-0.336111) and (3.798611,-0.336111)
+ ..(3.798611,-0.136111)\dpicstop
+\dpicdraw (3.648611,0.163889) circle (0.016404in)\dpicstop
+\dpicdraw (3.648611,-0.136111) circle (0.016404in)\dpicstop
+\draw (3.648611,-0.286111) node[below=-2bp]{\tt (U,DF)};
+\dpicdraw (4.248611,0.013889)
+ --(4.248611,0.263889)
+ --(3.998611,0.263889)
+ --(3.998611,-0.236111)
+ --(4.248611,-0.236111)
+ --(4.248611,0.013889)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.123611,0.159722)
+ --(4.061111,0.159722)
+ --(4.061111,0.118056)
+ --(4.186111,0.118056)
+ --(4.186111,0.159722)
+ --(4.123611,0.159722)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.123611,-0.090278)
+ --(4.061111,-0.090278)
+ --(4.061111,-0.131944)
+ --(4.186111,-0.131944)
+ --(4.186111,-0.090278)
+ --(4.123611,-0.090278)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\draw (4.123611,-0.236111) node[below=-2bp]{\tt (U,J)};
+\dpicdraw (4.698611,0.013889)
+ --(4.698611,0.263889)
+ --(4.448611,0.263889)
+ --(4.448611,-0.236111)
+ --(4.698611,-0.236111)
+ --(4.698611,0.013889)\dpicstop
+\dpicdraw (4.573611,0.159722)
+ --(4.511111,0.159722)
+ --(4.511111,0.118056)
+ --(4.636111,0.118056)
+ --(4.636111,0.159722)
+ --(4.573611,0.159722)\dpicstop
+\dpicdraw (4.573611,-0.090278)
+ --(4.511111,-0.090278)
+ --(4.511111,-0.131944)
+ --(4.636111,-0.131944)
+ --(4.636111,-0.090278)
+ --(4.573611,-0.090278)\dpicstop
+\draw (4.573611,-0.236111) node[below=-2bp]{\tt (U,JF)};
+\dpiclw=0.8bp
+\dpicdraw (0.348611,-0.623611)
+ --(0.098611,-0.623611)
+ --(0.098611,-0.873611)
+ --(0.223611,-0.998611)
+ --(0.473611,-0.998611)
+ --(0.598611,-0.873611)
+ --(0.598611,-0.623611)
+ --(0.348611,-0.623611)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.469444,-0.736111)
+ --(0.469444,-0.673611)
+ --(0.427778,-0.673611)
+ --(0.427778,-0.798611)
+ --(0.469444,-0.798611)
+ --(0.469444,-0.736111)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.269444,-0.736111)
+ --(0.269444,-0.673611)
+ --(0.227778,-0.673611)
+ --(0.227778,-0.798611)
+ --(0.269444,-0.798611)
+ --(0.269444,-0.736111)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.369444,-0.886111)
+ --(0.369444,-0.836111)
+ --(0.327778,-0.836111)
+ --(0.327778,-0.936111)
+ --(0.369444,-0.936111)
+ --(0.369444,-0.886111)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\draw (0.348611,-0.998611) node[below=-2bp]{\tt (,P)};
+\dpicdraw (1.048611,-0.623611)
+ --(0.798611,-0.623611)
+ --(0.798611,-0.873611)
+ --(0.923611,-0.998611)
+ --(1.173611,-0.998611)
+ --(1.298611,-0.873611)
+ --(1.298611,-0.623611)
+ --(1.048611,-0.623611)\dpicstop
+\dpicdraw (0.969444,-0.736111)
+ --(0.969444,-0.673611)
+ --(0.927778,-0.673611)
+ --(0.927778,-0.798611)
+ --(0.969444,-0.798611)
+ --(0.969444,-0.736111)\dpicstop
+\dpicdraw (1.169444,-0.736111)
+ --(1.169444,-0.673611)
+ --(1.127778,-0.673611)
+ --(1.127778,-0.798611)
+ --(1.169444,-0.798611)
+ --(1.169444,-0.736111)\dpicstop
+\dpicdraw (1.069444,-0.886111)
+ --(1.069444,-0.836111)
+ --(1.027778,-0.836111)
+ --(1.027778,-0.936111)
+ --(1.069444,-0.936111)
+ --(1.069444,-0.886111)\dpicstop
+\draw (1.048611,-0.998611) node[below=-2bp]{\tt (,PF)};
+\dpicdraw (1.823611,-0.511111)
+ --(2.148611,-0.511111)
+ --(2.148611,-0.691111)
+ --(1.913611,-1.111111)
+ --(1.733611,-1.111111)
+ --(1.498611,-0.691111)
+ --(1.498611,-0.511111)
+ --(1.823611,-0.511111)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (1.719444,-0.661111)
+ --(1.719444,-0.629861)
+ --(1.594444,-0.629861)
+ --(1.594444,-0.692361)
+ --(1.719444,-0.692361)
+ --(1.719444,-0.661111)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.052778,-0.661111)
+ --(2.052778,-0.629861)
+ --(1.927778,-0.629861)
+ --(1.927778,-0.692361)
+ --(2.052778,-0.692361)
+ --(2.052778,-0.661111)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (1.854861,-0.977778)
+ --(1.854861,-0.915278)
+ --(1.792361,-0.915278)
+ --(1.792361,-1.040278)
+ --(1.854861,-1.040278)
+ --(1.854861,-0.977778)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\draw (1.823611,-1.111111) node[below=-2bp]{\tt (,G)};
+\dpicdraw (2.673611,-0.511111)
+ --(2.998611,-0.511111)
+ --(2.998611,-0.691111)
+ --(2.763611,-1.111111)
+ --(2.583611,-1.111111)
+ --(2.348611,-0.691111)
+ --(2.348611,-0.511111)
+ --(2.673611,-0.511111)\dpicstop
+\dpicdraw (2.569444,-0.661111)
+ --(2.569444,-0.629861)
+ --(2.444444,-0.629861)
+ --(2.444444,-0.692361)
+ --(2.569444,-0.692361)
+ --(2.569444,-0.661111)\dpicstop
+\dpicdraw (2.902778,-0.661111)
+ --(2.902778,-0.629861)
+ --(2.777778,-0.629861)
+ --(2.777778,-0.692361)
+ --(2.902778,-0.692361)
+ --(2.902778,-0.661111)\dpicstop
+\dpicdraw (2.704861,-0.977778)
+ --(2.704861,-0.915278)
+ --(2.642361,-0.915278)
+ --(2.642361,-1.040278)
+ --(2.704861,-1.040278)
+ --(2.704861,-0.977778)\dpicstop
+\draw (2.673611,-1.111111) node[below=-2bp]{\tt (,GF)};
+\dpicdraw (3.523611,-1.111111)
+ --(3.198611,-1.111111)
+ --(3.198611,-0.931111)
+ --(3.433611,-0.511111)
+ --(3.613611,-0.511111)
+ --(3.848611,-0.931111)
+ --(3.848611,-1.111111)
+ --(3.523611,-1.111111)\dpicstop
+\dpicdraw (3.627778,-0.961111)
+ --(3.627778,-0.992361)
+ --(3.752778,-0.992361)
+ --(3.752778,-0.929861)
+ --(3.627778,-0.929861)
+ --(3.627778,-0.961111)\dpicstop
+\dpicdraw (3.294444,-0.961111)
+ --(3.294444,-0.992361)
+ --(3.419444,-0.992361)
+ --(3.419444,-0.929861)
+ --(3.294444,-0.929861)
+ --(3.294444,-0.961111)\dpicstop
+\dpicdraw (3.492361,-0.644444)
+ --(3.492361,-0.706944)
+ --(3.554861,-0.706944)
+ --(3.554861,-0.581944)
+ --(3.492361,-0.581944)
+ --(3.492361,-0.644444)\dpicstop
+\draw (3.523611,-1.111111) node[below=-2bp]{\tt (L,GF)};
+\dpicdraw (4.373611,-0.811111) circle (0.127953in)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.269444,-0.661111)
+ --(4.269444,-0.629861)
+ --(4.144444,-0.629861)
+ --(4.144444,-0.692361)
+ --(4.269444,-0.692361)
+ --(4.269444,-0.661111)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.602778,-0.661111)
+ --(4.602778,-0.629861)
+ --(4.477778,-0.629861)
+ --(4.477778,-0.692361)
+ --(4.602778,-0.692361)
+ --(4.602778,-0.661111)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (4.404861,-0.977778)
+ --(4.404861,-0.915278)
+ --(4.342361,-0.915278)
+ --(4.342361,-1.040278)
+ --(4.404861,-1.040278)
+ --(4.404861,-0.977778)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\draw (4.373611,-1.136111) node[below=-2bp]{\tt (,GC)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Pconn.m4 b/graphics/circuit_macros/doc/PconnMan.m4
index fbda5cc2e7..45a259636f 100644
--- a/graphics/circuit_macros/doc/Pconn.m4
+++ b/graphics/circuit_macros/doc/PconnMan.m4
@@ -19,27 +19,23 @@ P1: [
arrow from G.w to C1.G.e
arrow from G.e to C2.G.w
`"\tt (,AF)"' at last [].s below
- C03: pconnex(,AC) with .w at C2.e+(0.2,0)
+ C03: pconnex(,AC) with .w at C2.e+(0.25,0)
`"\tt (,AC)"' at last [].s below
C3: pconnex(,ACF) with .w at last [].e+(0.2,0)
`"\tt (,ACF)"' at last [].s below
- C5: pconnex(U,D) with .w at last [].e+(0.2,0)
+ C5: pconnex(U,D) with .w at last [].e+(0.25,0)
`"\tt (U,D)"' at last [].s below
- C6: pconnex(U,DF) with .w at last [].e+(0.2,0)
+ C6: pconnex(U,DF) with .w at last [].e+(0.25,0)
`"\tt (U,DF)"' at last [].s below
- C7: pconnex(U,J) with .w at last [].e+(0.2,0)
+ C7: pconnex(U,J) with .w at last [].e+(0.25,0)
`"\tt (U,J)"' at last [].s below
- C8: pconnex(U,JF) with .w at last [].e+(0.2,0)
+ C8: pconnex(U,JF) with .w at last [].e+(0.25,0)
`"\tt (U,JF)"' at last [].s below
]
P2: [
- C4: pconnex(,P)
- `"\tt (,P)"' at last [].s below
- C11: pconnex(,PF) with .w at last [].e+(0.2,0)
- `"\tt (,PF)"' at (C11,last "") below
- C9: pconnex(,G) with .w at last [].e+(0.2,0)
+ C9: pconnex(,G) #with .w at last [].e+(0.2,0)
`"\tt (,G)"' at last [].s below
C91: pconnex(,GF) with .w at last [].e+(0.2,0)
`"\tt (,GF)"' at last [].s below
@@ -47,6 +43,15 @@ P2: [
`"\tt (L,GF)"' at last [].s below
C10: pconnex(,GC) with .w at last [].e + (0.2,0)
`"\tt (,GC)"' ht 11pt__ at last [].s below
-] with .nw at P1.C1.sw + (0,-0.25)
+ C10: pconnex(,GCF) with .w at last [].e + (0.2,0)
+ `"\tt (,GCF)"' ht 11pt__ at last [].s below
+] with .nw at P1.C1.sw + (0,-0.35)
+
+P3: [
+ C4: pconnex(,P)
+ `"\tt (,P)"' at last [].s below
+ C11: pconnex(,PF) with .w at last [].e+(0.2,0)
+ `"\tt (,PF)"' at (C11,last "") below
+] with .nw at P2.C9.sw + (0,-0.35)
.PE
diff --git a/graphics/circuit_macros/doc/Relay.tex b/graphics/circuit_macros/doc/Relay.tex
new file mode 100644
index 0000000000..fca7a507b0
--- /dev/null
+++ b/graphics/circuit_macros/doc/Relay.tex
@@ -0,0 +1,198 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.291667,-0.227083)
+ --(0.291667,-0.102083)
+ --(0.166667,-0.102083)
+ --(0.166667,-0.352083)
+ --(0.291667,-0.352083)
+ --(0.291667,-0.227083)\dpicstop
+\dpicdraw (0.166667,-0.227083)
+ --(0,-0.227083)\dpicstop
+\dpicdraw (0.291667,-0.227083)
+ --(0.458333,-0.227083)\dpicstop
+\dpicdraw[fill=white](0.108333,0.185417) circle (0.007874in)\dpicstop
+\dpicdraw (0.128333,0.185417)
+ --(0.358333,0.185417)\dpicstop
+\filldraw[line width=0bp](0.275,0.26875)
+ --(0.316667,0.185417)
+ --(0.358333,0.26875) --cycle\dpicstop
+\dpicdraw (0.316667,0.197839)
+ --(0.316667,0.310417)
+ --(0.416667,0.310417)\dpicstop
+\filldraw[line width=0bp](0.358333,0.039583)
+ --(0.316667,0.122917)
+ --(0.275,0.039583) --cycle\dpicstop
+\dpicdraw (0.316667,0.110494)
+ --(0.316667,-0.002083)
+ --(0.416667,-0.002083)\dpicstop
+\draw (0,-0.227083) node[left=-2bp]{\sl V1};
+\draw (0.458333,-0.227083) node[right=-2bp]{\sl V2};
+\draw (0.088333,0.185417) node[left=-2bp]{\sl P1};
+\draw (0.416667,-0.002083) node[right=-2bp]{\sl O1};
+\draw (0.416667,0.310417) node[right=-2bp]{\sl C1};
+\draw (0.229167,-0.552083) node(S){\tt relay};
+\dpicdraw (1.391667,-0.227083)
+ --(1.391667,-0.102083)
+ --(1.266667,-0.102083)
+ --(1.266667,-0.352083)
+ --(1.391667,-0.352083)
+ --(1.391667,-0.227083)\dpicstop
+\dpicdraw (1.266667,-0.227083)
+ --(1.1,-0.227083)\dpicstop
+\dpicdraw (1.391667,-0.227083)
+ --(1.558333,-0.227083)\dpicstop
+\dpicdraw (1.304167,-0.14375)
+ --(1.304167,-0.202083)
+ --(1.354167,-0.202083)
+ --(1.354167,-0.252083)
+ --(1.304167,-0.252083)
+ --(1.304167,-0.310417)\dpicstop
+\dpicdraw[fill=white](1.208333,-0.002083) circle (0.007874in)\dpicstop
+\dpicdraw (1.228333,-0.002083)
+ --(1.458333,-0.002083)\dpicstop
+\filldraw[line width=0bp](1.375,0.08125)
+ --(1.416667,-0.002083)
+ --(1.458333,0.08125) --cycle\dpicstop
+\dpicdraw (1.416667,0.010339)
+ --(1.416667,0.122917)
+ --(1.516667,0.122917)\dpicstop
+\dpicdraw[fill=white](1.208333,0.247917) circle (0.007874in)\dpicstop
+\dpicdraw (1.228333,0.247917)
+ --(1.458333,0.247917)\dpicstop
+\filldraw[line width=0bp](1.375,0.33125)
+ --(1.416667,0.247917)
+ --(1.458333,0.33125) --cycle\dpicstop
+\dpicdraw (1.416667,0.260339)
+ --(1.416667,0.372917)
+ --(1.516667,0.372917)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](1.343333,-0.052083)
+ --(1.343333,0.297917)\dpicstop
+\draw (1.188333,-0.002083) node[left=-2bp]{\sl P1};
+\draw (1.516667,0.122917) node[right=-2bp]{\sl C1};
+\draw (1.188333,0.247917) node[left=-2bp]{\sl P2};
+\draw (1.516667,0.372917) node[right=-2bp]{\sl C2};
+\draw (1.329167,-0.552083) node{\tt (2,CTh)};
+\dpicdraw (2.491667,-0.227083)
+ --(2.491667,-0.102083)
+ --(2.366667,-0.102083)
+ --(2.366667,-0.352083)
+ --(2.491667,-0.352083)
+ --(2.491667,-0.227083)\dpicstop
+\dpicdraw (2.366667,-0.227083)
+ --(2.2,-0.227083)\dpicstop
+\dpicdraw (2.491667,-0.227083)
+ --(2.658333,-0.227083)\dpicstop
+\dpicdraw[fill=white](2.308333,0.185417) circle (0.007874in)\dpicstop
+\dpicdraw (2.328333,0.185417)
+ --(2.558333,0.185417)\dpicstop
+\filldraw[line width=0bp](2.558333,0.039583)
+ --(2.516667,0.122917)
+ --(2.475,0.039583) --cycle\dpicstop
+\dpicdraw (2.516667,0.110494)
+ --(2.516667,-0.002083)
+ --(2.616667,-0.002083)\dpicstop
+\dpicdraw[fill=white](2.308333,0.497917) circle (0.007874in)\dpicstop
+\dpicdraw (2.328333,0.497917)
+ --(2.558333,0.497917)\dpicstop
+\filldraw[line width=0bp](2.558333,0.352083)
+ --(2.516667,0.435417)
+ --(2.475,0.352083) --cycle\dpicstop
+\dpicdraw (2.516667,0.422994)
+ --(2.516667,0.310417)
+ --(2.616667,0.310417)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](2.443333,0.135417)
+ --(2.443333,0.547917)\dpicstop
+\draw (2.288333,0.185417) node[left=-2bp]{\sl P1};
+\draw (2.616667,-0.002083) node[right=-2bp]{\sl O1};
+\draw (2.288333,0.185417) node[left=-2bp]{\sl P1};
+\draw (2.616667,0.310417) node[right=-2bp]{\sl O2};
+\draw (2.429167,-0.552083) node{\tt (2,O)};
+\dpicdraw (3.591667,-0.227083)
+ --(3.591667,-0.102083)
+ --(3.466667,-0.102083)
+ --(3.466667,-0.352083)
+ --(3.591667,-0.352083)
+ --(3.591667,-0.227083)\dpicstop
+\dpicdraw (3.466667,-0.164583)
+ --(3.3,-0.164583)\dpicstop
+\dpicdraw (3.466667,-0.289583)
+ --(3.3,-0.289583)\dpicstop
+\dpicdraw[fill=white](3.408333,0.105972) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.616667,0.214028) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.616667,-0.002083) circle (0.007874in)\dpicstop
+\dpicdraw (3.428333,0.105972)
+ --(3.658333,0.105972)\dpicstop
+\dpicdraw[fill=white](3.408333,0.447083) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.616667,0.555139) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.616667,0.339028) circle (0.007874in)\dpicstop
+\dpicdraw (3.428333,0.447083)
+ --(3.658333,0.447083)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](3.543333,0.055972)
+ --(3.543333,0.497083)\dpicstop
+\draw (3.3,-0.164583) node[left=-2bp]{\sl V1};
+\draw (3.3,-0.289583) node[left=-2bp]{\sl V2};
+\draw (3.388333,0.105972) node[left=-2bp]{\sl P1};
+\draw (3.636667,-0.002083) node[right=-2bp]{\sl O1};
+\draw (3.636667,0.186354) node[right=-2bp]{\sl C1};
+\draw (3.388333,0.447083) node[left=-2bp]{\sl P2};
+\draw (3.636667,0.339028) node[right=-2bp]{\sl O2};
+\draw (3.636667,0.527465) node[right=-2bp]{\sl C2};
+\draw (3.479167,-0.552083) node{\tt (2,PIAX)};
+\dpicdraw (4.691667,0.664583)
+ --(4.691667,0.789583)
+ --(4.566667,0.789583)
+ --(4.566667,0.539583)
+ --(4.691667,0.539583)
+ --(4.691667,0.664583)\dpicstop
+\dpicdraw (4.566667,0.664583)
+ --(4.4,0.664583)\dpicstop
+\dpicdraw (4.691667,0.664583)
+ --(4.858333,0.664583)\dpicstop
+\dpicdraw[fill=white](4.508333,0.252083) circle (0.007874in)\dpicstop
+\dpicdraw (4.528333,0.252083)
+ --(4.758333,0.252083)\dpicstop
+\filldraw[line width=0bp](4.758333,0.16875)
+ --(4.716667,0.252083)
+ --(4.675,0.16875) --cycle\dpicstop
+\dpicdraw (4.716667,0.239661)
+ --(4.716667,0.127083)
+ --(4.816667,0.127083)\dpicstop
+\filldraw[line width=0bp](4.675,0.397917)
+ --(4.716667,0.314583)
+ --(4.758333,0.397917) --cycle\dpicstop
+\dpicdraw (4.716667,0.327006)
+ --(4.716667,0.439583)
+ --(4.816667,0.439583)\dpicstop
+\dpicdraw[fill=white](4.508333,-0.185417) circle (0.007874in)\dpicstop
+\dpicdraw (4.528333,-0.185417)
+ --(4.758333,-0.185417)\dpicstop
+\filldraw[line width=0bp](4.758333,-0.26875)
+ --(4.716667,-0.185417)
+ --(4.675,-0.26875) --cycle\dpicstop
+\dpicdraw (4.716667,-0.197839)
+ --(4.716667,-0.310417)
+ --(4.816667,-0.310417)\dpicstop
+\filldraw[line width=0bp](4.675,-0.039583)
+ --(4.716667,-0.122917)
+ --(4.758333,-0.039583) --cycle\dpicstop
+\dpicdraw (4.716667,-0.110494)
+ --(4.716667,0.002083)
+ --(4.816667,0.002083)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](4.643333,0.302083)
+ --(4.643333,-0.235417)\dpicstop
+\draw (4.4,0.664583) node[left=-2bp]{\sl V1};
+\draw (4.858333,0.664583) node[right=-2bp]{\sl V2};
+\draw (4.488333,0.252083) node[left=-2bp]{\sl P1};
+\draw (4.816667,0.439583) node[right=-2bp]{\sl O1};
+\draw (4.816667,0.127083) node[right=-2bp]{\sl C1};
+\draw (4.488333,-0.185417) node[left=-2bp]{\sl P2};
+\draw (4.816667,0.002083) node[right=-2bp]{\sl O2};
+\draw (4.816667,-0.310417) node[right=-2bp]{\sl C2};
+\draw (4.629167,-0.552083) node{\tt relay(2,R)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Relay.m4 b/graphics/circuit_macros/doc/RelayMan.m4
index 20c51ebb6a..20c51ebb6a 100644
--- a/graphics/circuit_macros/doc/Relay.m4
+++ b/graphics/circuit_macros/doc/RelayMan.m4
diff --git a/graphics/circuit_macros/doc/ShiftR.tex b/graphics/circuit_macros/doc/ShiftR.tex
new file mode 100644
index 0000000000..d6e49ca1bc
--- /dev/null
+++ b/graphics/circuit_macros/doc/ShiftR.tex
@@ -0,0 +1,285 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+ {\sf
+\dpicdraw (0.15,-0.45) rectangle (0.65,0.45)\dpicstop
+\draw (0.15,0.3) node[right=-3bp]{{\scriptsize S}};
+\dpicdraw (0.15,0.3)
+ --(0,0.3)\dpicstop
+\dpicdraw (0.15,-0.0375)
+ --(0.214952,0)
+ --(0.15,0.0375)\dpicstop
+\draw (0.214952,0) node[right=-3bp]{{\scriptsize CK}};
+\dpicdraw (0.1125,0) circle (0.014764in)\dpicstop
+\dpicdraw (0.075,0)
+ --(0,0)\dpicstop
+\draw (0.15,-0.3) node[right=-3bp]{{\scriptsize R}};
+\dpicdraw (0.15,-0.3)
+ --(0,-0.3)\dpicstop
+\draw (0.4,0.45) node[below=-3bp]{{\scriptsize PR}};
+\dpicdraw (0.4,0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (0.4,0.525)
+ --(0.4,0.6)\dpicstop
+\draw (0.65,0.3) node[left=-3bp]{{\scriptsize Q}};
+\dpicdraw (0.65,0.3)
+ --(0.8,0.3)\dpicstop
+\draw (0.65,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
+\dpicdraw (0.65,-0.3)
+ --(0.8,-0.3)\dpicstop
+\draw (0.4,-0.45) node[above=-3bp]{{\scriptsize CLR}};
+\dpicdraw (0.4,-0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (0.4,-0.525)
+ --(0.4,-0.6)\dpicstop
+\dpicdraw (0,0.3)
+ --(-0.175,0.2)
+ --(-0.175,0.4)
+ --(0,0.3)\dpicstop
+\dpicdraw (-0.2125,0.3) circle (0.014764in)\dpicstop
+\dpicdraw (-0.25,0.3)
+ --(-0.35,0.3)\dpicstop
+\dpicdraw[fill=black](-0.35,0.3) circle (0.007874in)\dpicstop
+\dpicdraw (-0.483333,0.3)
+ --(-0.658333,0.2)
+ --(-0.658333,0.4)
+ --(-0.483333,0.3)\dpicstop
+\dpicdraw (-0.445833,0.3) circle (0.014764in)\dpicstop
+\dpicdraw (-0.85,0.3)
+ --(-0.658333,0.3)\dpicstop
+\dpicdraw (-0.408333,0.3)
+ --(-0.35,0.3)\dpicstop
+\draw (-0.85,0.3) node(Serial)[left=-3bp]{\scriptsize\shortstack[r]{SERIAL\\ INPUT}};
+\dpicdraw (-0.35,0.3)
+ --(-0.35,-0.3)
+ --(0,-0.3)\dpicstop
+\dpicdraw (-0.483333,-0.6)
+ --(-0.658333,-0.7)
+ --(-0.658333,-0.5)
+ --(-0.483333,-0.6)\dpicstop
+\dpicdraw (-0.695833,-0.6) circle (0.014764in)\dpicstop
+\dpicdraw (-0.445833,-0.6) circle (0.014764in)\dpicstop
+\dpicdraw (-0.85,-0.6)
+ --(-0.733333,-0.6)\dpicstop
+\dpicdraw (-0.408333,-0.6)
+ --(-0.35,-0.6)\dpicstop
+\draw (-0.85,-0.6) node[left=-3bp]{$\overline{\hbox{\scriptsize CLEAR}}$};
+\dpicdraw (-0.483333,-0.9)
+ --(-0.658333,-1)
+ --(-0.658333,-0.8)
+ --(-0.483333,-0.9)\dpicstop
+\dpicdraw (-0.445833,-0.9) circle (0.014764in)\dpicstop
+\dpicdraw (-0.85,-0.9)
+ --(-0.658333,-0.9)\dpicstop
+\dpicdraw (-0.408333,-0.9)
+ --(-0.35,-0.9)\dpicstop
+\draw (-0.85,-0.9) node[left=-3bp]{\scriptsize CLOCK};
+\dpicdraw (0.95,-0.45) rectangle (1.45,0.45)\dpicstop
+\draw (0.95,0.3) node[right=-3bp]{{\scriptsize S}};
+\dpicdraw (0.95,0.3)
+ --(0.8,0.3)\dpicstop
+\dpicdraw (0.95,-0.0375)
+ --(1.014952,0)
+ --(0.95,0.0375)\dpicstop
+\draw (1.014952,0) node[right=-3bp]{{\scriptsize CK}};
+\dpicdraw (0.9125,0) circle (0.014764in)\dpicstop
+\dpicdraw (0.875,0)
+ --(0.8,0)\dpicstop
+\draw (0.95,-0.3) node[right=-3bp]{{\scriptsize R}};
+\dpicdraw (0.95,-0.3)
+ --(0.8,-0.3)\dpicstop
+\draw (1.2,0.45) node[below=-3bp]{{\scriptsize PR}};
+\dpicdraw (1.2,0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (1.2,0.525)
+ --(1.2,0.6)\dpicstop
+\draw (1.45,0.3) node[left=-3bp]{{\scriptsize Q}};
+\dpicdraw (1.45,0.3)
+ --(1.6,0.3)\dpicstop
+\draw (1.45,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
+\dpicdraw (1.45,-0.3)
+ --(1.6,-0.3)\dpicstop
+\draw (1.2,-0.45) node[above=-3bp]{{\scriptsize CLR}};
+\dpicdraw (1.2,-0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (1.2,-0.525)
+ --(1.2,-0.6)\dpicstop
+\dpicdraw (1.75,-0.45) rectangle (2.25,0.45)\dpicstop
+\draw (1.75,0.3) node[right=-3bp]{{\scriptsize S}};
+\dpicdraw (1.75,0.3)
+ --(1.6,0.3)\dpicstop
+\dpicdraw (1.75,-0.0375)
+ --(1.814952,0)
+ --(1.75,0.0375)\dpicstop
+\draw (1.814952,0) node[right=-3bp]{{\scriptsize CK}};
+\dpicdraw (1.7125,0) circle (0.014764in)\dpicstop
+\dpicdraw (1.675,0)
+ --(1.6,0)\dpicstop
+\draw (1.75,-0.3) node[right=-3bp]{{\scriptsize R}};
+\dpicdraw (1.75,-0.3)
+ --(1.6,-0.3)\dpicstop
+\draw (2,0.45) node[below=-3bp]{{\scriptsize PR}};
+\dpicdraw (2,0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (2,0.525)
+ --(2,0.6)\dpicstop
+\draw (2.25,0.3) node[left=-3bp]{{\scriptsize Q}};
+\dpicdraw (2.25,0.3)
+ --(2.4,0.3)\dpicstop
+\draw (2.25,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
+\dpicdraw (2.25,-0.3)
+ --(2.4,-0.3)\dpicstop
+\draw (2,-0.45) node[above=-3bp]{{\scriptsize CLR}};
+\dpicdraw (2,-0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (2,-0.525)
+ --(2,-0.6)\dpicstop
+\dpicdraw (2.55,-0.45) rectangle (3.05,0.45)\dpicstop
+\draw (2.55,0.3) node[right=-3bp]{{\scriptsize S}};
+\dpicdraw (2.55,0.3)
+ --(2.4,0.3)\dpicstop
+\dpicdraw (2.55,-0.0375)
+ --(2.614952,0)
+ --(2.55,0.0375)\dpicstop
+\draw (2.614952,0) node[right=-3bp]{{\scriptsize CK}};
+\dpicdraw (2.5125,0) circle (0.014764in)\dpicstop
+\dpicdraw (2.475,0)
+ --(2.4,0)\dpicstop
+\draw (2.55,-0.3) node[right=-3bp]{{\scriptsize R}};
+\dpicdraw (2.55,-0.3)
+ --(2.4,-0.3)\dpicstop
+\draw (2.8,0.45) node[below=-3bp]{{\scriptsize PR}};
+\dpicdraw (2.8,0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (2.8,0.525)
+ --(2.8,0.6)\dpicstop
+\draw (3.05,0.3) node[left=-3bp]{{\scriptsize Q}};
+\dpicdraw (3.05,0.3)
+ --(3.2,0.3)\dpicstop
+\draw (3.05,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
+\dpicdraw (3.05,-0.3)
+ --(3.2,-0.3)\dpicstop
+\draw (2.8,-0.45) node[above=-3bp]{{\scriptsize CLR}};
+\dpicdraw (2.8,-0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (2.8,-0.525)
+ --(2.8,-0.6)\dpicstop
+\dpicdraw (3.35,-0.45) rectangle (3.85,0.45)\dpicstop
+\draw (3.35,0.3) node[right=-3bp]{{\scriptsize S}};
+\dpicdraw (3.35,0.3)
+ --(3.2,0.3)\dpicstop
+\dpicdraw (3.35,-0.0375)
+ --(3.414952,0)
+ --(3.35,0.0375)\dpicstop
+\draw (3.414952,0) node[right=-3bp]{{\scriptsize CK}};
+\dpicdraw (3.3125,0) circle (0.014764in)\dpicstop
+\dpicdraw (3.275,0)
+ --(3.2,0)\dpicstop
+\draw (3.35,-0.3) node[right=-3bp]{{\scriptsize R}};
+\dpicdraw (3.35,-0.3)
+ --(3.2,-0.3)\dpicstop
+\draw (3.6,0.45) node[below=-3bp]{{\scriptsize PR}};
+\dpicdraw (3.6,0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (3.6,0.525)
+ --(3.6,0.6)\dpicstop
+\draw (3.85,0.3) node[left=-3bp]{{\scriptsize Q}};
+\dpicdraw (3.85,0.3)
+ --(4,0.3)\dpicstop
+\draw (3.6,-0.45) node[above=-3bp]{{\scriptsize CLR}};
+\dpicdraw (3.6,-0.4875) circle (0.014764in)\dpicstop
+\dpicdraw (3.6,-0.525)
+ --(3.6,-0.6)\dpicstop
+\draw (4,0.3) node[right=-3bp]{\scriptsize OUTPUT};
+\dpicdraw (-0.35,-0.6)
+ --(3.6,-0.6)\dpicstop
+\dpicdraw (0,0)
+ --(0,-0.9)\dpicstop
+\dpicdraw[fill=black](0,-0.9) circle (0.007874in)\dpicstop
+\dpicdraw (0.25,0.825)
+ --(0.25,1.025)
+ --(0.55,1.025)
+ --(0.55,0.825)\dpicstop
+\dpicdraw (0.55,0.825)
+ ..controls (0.55,0.625) and (0.25,0.625)
+ ..(0.25,0.825)\dpicstop
+\dpicdraw (0.4,0.6375) circle (0.014764in)\dpicstop
+\dpicdraw (0.325,1.025)
+ --(0.325,1.125)\dpicstop
+\dpicdraw (0.475,1.025)
+ --(0.475,1.325)\dpicstop
+\draw (0.475,1.325) node[left=-3bp]{\scriptsize PR4};
+\dpicdraw[fill=black](0.325,1.125) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](0.4,-0.6) circle (0.007874in)\dpicstop
+\dpicdraw (0.8,0)
+ --(0.8,-0.9)\dpicstop
+\dpicdraw[fill=black](0.8,-0.9) circle (0.007874in)\dpicstop
+\dpicdraw (1.05,0.825)
+ --(1.05,1.025)
+ --(1.35,1.025)
+ --(1.35,0.825)\dpicstop
+\dpicdraw (1.35,0.825)
+ ..controls (1.35,0.625) and (1.05,0.625)
+ ..(1.05,0.825)\dpicstop
+\dpicdraw (1.2,0.6375) circle (0.014764in)\dpicstop
+\dpicdraw (1.125,1.025)
+ --(1.125,1.125)\dpicstop
+\dpicdraw (1.275,1.025)
+ --(1.275,1.325)\dpicstop
+\draw (1.275,1.325) node[left=-3bp]{\scriptsize PR3};
+\dpicdraw[fill=black](1.125,1.125) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](1.2,-0.6) circle (0.007874in)\dpicstop
+\dpicdraw (1.6,0)
+ --(1.6,-0.9)\dpicstop
+\dpicdraw[fill=black](1.6,-0.9) circle (0.007874in)\dpicstop
+\dpicdraw (1.85,0.825)
+ --(1.85,1.025)
+ --(2.15,1.025)
+ --(2.15,0.825)\dpicstop
+\dpicdraw (2.15,0.825)
+ ..controls (2.15,0.625) and (1.85,0.625)
+ ..(1.85,0.825)\dpicstop
+\dpicdraw (2,0.6375) circle (0.014764in)\dpicstop
+\dpicdraw (1.925,1.025)
+ --(1.925,1.125)\dpicstop
+\dpicdraw (2.075,1.025)
+ --(2.075,1.325)\dpicstop
+\draw (2.075,1.325) node[left=-3bp]{\scriptsize PR2};
+\dpicdraw[fill=black](1.925,1.125) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](2,-0.6) circle (0.007874in)\dpicstop
+\dpicdraw (2.4,0)
+ --(2.4,-0.9)\dpicstop
+\dpicdraw[fill=black](2.4,-0.9) circle (0.007874in)\dpicstop
+\dpicdraw (2.65,0.825)
+ --(2.65,1.025)
+ --(2.95,1.025)
+ --(2.95,0.825)\dpicstop
+\dpicdraw (2.95,0.825)
+ ..controls (2.95,0.625) and (2.65,0.625)
+ ..(2.65,0.825)\dpicstop
+\dpicdraw (2.8,0.6375) circle (0.014764in)\dpicstop
+\dpicdraw (2.725,1.025)
+ --(2.725,1.125)\dpicstop
+\dpicdraw (2.875,1.025)
+ --(2.875,1.325)\dpicstop
+\draw (2.875,1.325) node[left=-3bp]{\scriptsize PR1};
+\dpicdraw[fill=black](2.725,1.125) circle (0.007874in)\dpicstop
+\dpicdraw[fill=black](2.8,-0.6) circle (0.007874in)\dpicstop
+\dpicdraw (3.2,0)
+ --(3.2,-0.9)\dpicstop
+\dpicdraw (3.2,-0.9)
+ --(-0.35,-0.9)\dpicstop
+\dpicdraw (3.45,0.825)
+ --(3.45,1.025)
+ --(3.75,1.025)
+ --(3.75,0.825)\dpicstop
+\dpicdraw (3.75,0.825)
+ ..controls (3.75,0.625) and (3.45,0.625)
+ ..(3.45,0.825)\dpicstop
+\dpicdraw (3.6,0.6375) circle (0.014764in)\dpicstop
+\dpicdraw (3.525,1.025)
+ --(3.525,1.125)\dpicstop
+\dpicdraw (3.675,1.025)
+ --(3.675,1.325)\dpicstop
+\draw (3.675,1.325) node[left=-3bp]{\scriptsize PR0};
+\dpicdraw (3.525,1.125)
+ --(-0.85,1.125)\dpicstop
+\draw (-0.85,1.125) node[left=-3bp]{\scriptsize\shortstack[r]{PRESET\\ ENABLE}};
+ }
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/ShiftR.m4 b/graphics/circuit_macros/doc/ShiftRMan.m4
index e7bf1f0c5c..e7bf1f0c5c 100644
--- a/graphics/circuit_macros/doc/ShiftR.m4
+++ b/graphics/circuit_macros/doc/ShiftRMan.m4
diff --git a/graphics/circuit_macros/doc/Sources.tex b/graphics/circuit_macros/doc/Sources.tex
new file mode 100644
index 0000000000..55e57cbaf4
--- /dev/null
+++ b/graphics/circuit_macros/doc/Sources.tex
@@ -0,0 +1,466 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+ {\sf
+\dpicdraw (0,0)
+ --(0.25,0)\dpicstop
+\dpicdraw (0.375,0) circle (0.049213in)\dpicstop
+\dpicdraw (0.5,0)
+ --(0.75,0)\dpicstop
+\draw (0.777674,0) node[right=-2bp]{source};
+\dpicdraw (0,-0.275)
+ --(0.25,-0.275)\dpicstop
+\dpicdraw (0.375,-0.275) circle (0.049213in)\dpicstop
+\filldraw[line width=0bp](0.36875,-0.3)
+ --(0.46875,-0.275)
+ --(0.36875,-0.25) --cycle\dpicstop
+\dpicdraw (0.28125,-0.275)
+ --(0.445844,-0.275)\dpicstop
+\dpicdraw (0.5,-0.275)
+ --(0.75,-0.275)\dpicstop
+\draw (0.777674,-0.275) node[right=-2bp]{source(,I)};
+\dpicdraw (0,-0.55)
+ --(0.25,-0.55)\dpicstop
+\dpicdraw (0.375,-0.55) circle (0.049213in)\dpicstop
+\dpicdraw (0.375,-0.675)
+ --(0.375,-0.425)\dpicstop
+\dpicdraw (0.5,-0.55)
+ --(0.75,-0.55)\dpicstop
+\draw (0.777674,-0.55) node[right=-2bp]{source(,i)};
+\dpicdraw (0,-0.825)
+ --(0.25,-0.825)\dpicstop
+\dpicdraw (0.375,-0.825) circle (0.049213in)\dpicstop
+\draw (0.3125,-0.825) node{$_-$};
+\draw (0.4375,-0.825) node{$_+$};
+\dpicdraw (0.5,-0.825)
+ --(0.75,-0.825)\dpicstop
+\draw (0.777674,-0.825) node[right=-2bp]{source(,V)};
+\dpicdraw (0,-1.1)
+ --(0.25,-1.1)\dpicstop
+\dpicdraw (0.375,-1.1) circle (0.049213in)\dpicstop
+\dpicdraw (0.25,-1.1)
+ --(0.5,-1.1)\dpicstop
+\dpicdraw (0.5,-1.1)
+ --(0.75,-1.1)\dpicstop
+\draw (0.777674,-1.1) node[right=-2bp]{source(,v)};
+\dpicdraw (0,-1.375)
+ --(0.25,-1.375)\dpicstop
+\dpicdraw (0.375,-1.375) circle (0.049213in)\dpicstop
+\dpicdraw (0.25,-1.375)
+ ..controls (0.319036,-1.375) and (0.375,-1.319036)
+ ..(0.375,-1.25)\dpicstop
+\dpicdraw (0.5,-1.375)
+ --(0.75,-1.375)\dpicstop
+\draw (0.777674,-1.375) node[right=-2bp]{source(,SC)};
+\dpicdraw (0,-1.65)
+ --(0.25,-1.65)\dpicstop
+\dpicdraw (0.375,-1.65) circle (0.049213in)\dpicstop
+\dpicdraw (0.375,-1.65)
+ ..controls (0.375,-1.626988) and (0.356345,-1.608333)
+ ..(0.333333,-1.608333)
+ ..controls (0.310321,-1.608333) and (0.291667,-1.626988)
+ ..(0.291667,-1.65)\dpicstop
+\dpicdraw (0.375,-1.65)
+ ..controls (0.375,-1.673012) and (0.393655,-1.691667)
+ ..(0.416667,-1.691667)
+ ..controls (0.439679,-1.691667) and (0.458333,-1.673012)
+ ..(0.458333,-1.65)\dpicstop
+\dpicdraw (0.583333,-1.65)
+ --(0.833333,-1.65)\dpicstop
+\draw (0.777674,-1.65) node[right=-2bp]{source(,AC)};
+\dpicdraw (0,-1.925)
+ --(0.25,-1.925)\dpicstop
+\dpicdraw (0.375,-1.925) circle (0.049213in)\dpicstop
+\dpicdraw (0.286612,-1.836612)
+ --(0.463388,-2.013388)\dpicstop
+\dpicdraw (0.286612,-2.013388)
+ --(0.463388,-1.836612)\dpicstop
+\dpicdraw (0.5,-1.925)
+ --(0.75,-1.925)\dpicstop
+\draw (0.777674,-1.925) node[right=-2bp]{source(,X)};
+\dpicdraw (0,-2.2)
+ --(0.25,-2.2)\dpicstop
+\dpicdraw (0.375,-2.2) circle (0.049213in)\dpicstop
+\dpicdraw (0.25,-2.2)
+ --(0.3125,-2.2)\dpicstop
+\dpicdraw (0.3125,-2.2625)
+ --(0.3125,-2.1375)\dpicstop
+\dpicdraw (0.4375,-2.2625)
+ --(0.4375,-2.1375)\dpicstop
+\dpicdraw (0.5,-2.2)
+ --(0.4375,-2.2)\dpicstop
+\dpicdraw (0.5,-2.2)
+ --(0.75,-2.2)\dpicstop
+\draw (0.777674,-2.2) node[right=-2bp]{source(,F)};
+\dpicdraw (0,-2.475)
+ --(0.1875,-2.475)\dpicstop
+\dpicdraw (0.3125,-2.475) circle (0.049213in)\dpicstop
+\dpicdraw (0.4375,-2.475) circle (0.049213in)\dpicstop
+\dpicdraw (0.5625,-2.475)
+ --(0.75,-2.475)\dpicstop
+\draw (0.777674,-2.475) node[right=-2bp]{source(,G)};
+\dpicdraw (0,-2.75)
+ --(0.1875,-2.75)\dpicstop
+\dpicdraw (0.3125,-2.75) circle (0.049213in)\dpicstop
+\dpicdraw (0.375,-2.858253)
+ ..controls (0.458333,-2.906366) and (0.5625,-2.846225)
+ ..(0.5625,-2.75)
+ ..controls (0.5625,-2.653775) and (0.458333,-2.593634)
+ ..(0.375,-2.641747)\dpicstop
+\dpicdraw (0.5625,-2.75)
+ --(0.75,-2.75)\dpicstop
+\draw (0.777674,-2.75) node[right=-2bp]{source(,Q)};
+\dpicdraw (2,0)
+ --(2.175,0)\dpicstop
+\dpicdraw (2.375,0) circle (0.07874in)\dpicstop
+\dpicdraw (2.575,0)
+ --(2.75,0)\dpicstop
+\draw (2.777674,0) node[right=-2bp]{source(,{,}0.4)};
+\dpicdraw (2,-0.35)
+ --(2.25,-0.35)\dpicstop
+\dpicdraw (2.375,-0.35) circle (0.049213in)\dpicstop
+\dpicdraw (2.3125,-0.38125)
+ --(2.34375,-0.38125)
+ --(2.34375,-0.31875)
+ --(2.40625,-0.31875)
+ --(2.40625,-0.38125)
+ --(2.4375,-0.38125)\dpicstop
+\dpicdraw (2.5,-0.35)
+ --(2.75,-0.35)\dpicstop
+\draw (2.777674,-0.35) node[right=-2bp]{source(,P)};
+\dpicdraw (2,-0.625)
+ --(2.25,-0.625)\dpicstop
+\dpicdraw (2.375,-0.625) circle (0.049213in)\dpicstop
+\dpicdraw (2.3125,-0.625)
+ --(2.3125,-0.583333)
+ --(2.375,-0.583333)
+ --(2.375,-0.666667)
+ --(2.4375,-0.666667)
+ --(2.4375,-0.625)\dpicstop
+\dpicdraw (2.5,-0.625)
+ --(2.75,-0.625)\dpicstop
+\draw (2.777674,-0.625) node[right=-2bp]{source(,U)};
+\dpicdraw (2,-0.9)
+ --(2.25,-0.9)\dpicstop
+\dpicdraw (2.375,-0.9) circle (0.049213in)\dpicstop
+\dpicdraw (2.3125,-0.941667)
+ --(2.375,-0.941667)
+ --(2.375,-0.858333)
+ --(2.4375,-0.858333)\dpicstop
+\dpicdraw (2.5,-0.9)
+ --(2.75,-0.9)\dpicstop
+\draw (2.777674,-0.9) node[right=-2bp]{source(,H)};
+\dpicdraw (2,-1.175)
+ --(2.25,-1.175)\dpicstop
+\dpicdraw (2.375,-1.175) circle (0.049213in)\dpicstop
+\dpicdraw (2.291667,-1.216667)
+ --(2.416667,-1.1125)
+ --(2.416667,-1.216667)\dpicstop
+\dpicdraw (2.5,-1.175)
+ --(2.75,-1.175)\dpicstop
+\draw (2.777674,-1.175) node[right=-2bp]{source(,R)};
+\dpicdraw (2,-1.45)
+ --(2.25,-1.45)\dpicstop
+\dpicdraw (2.375,-1.45) circle (0.049213in)\dpicstop
+\dpicdraw (2.291667,-1.45)
+ ..controls (2.29302,-1.447174) and (2.295417,-1.442207)
+ ..(2.297014,-1.438918)
+ ..controls (2.298611,-1.435629) and (2.301248,-1.430362)
+ ..(2.302897,-1.427166)
+ ..controls (2.304546,-1.423971) and (2.307453,-1.418784)
+ ..(2.309383,-1.415594)
+ ..controls (2.311313,-1.412404) and (2.314426,-1.40787)
+ ..(2.316328,-1.405477)
+ ..controls (2.31823,-1.403084) and (2.3213,-1.399943)
+ ..(2.323177,-1.398468)
+ ..controls (2.325054,-1.396994) and (2.328093,-1.395392)
+ ..(2.329956,-1.394895)
+ ..controls (2.33182,-1.394398) and (2.334847,-1.394398)
+ ..(2.33671,-1.394895)
+ ..controls (2.338574,-1.395392) and (2.341612,-1.396994)
+ ..(2.34349,-1.398468)
+ ..controls (2.345367,-1.399943) and (2.348437,-1.403084)
+ ..(2.350339,-1.405477)
+ ..controls (2.352241,-1.40787) and (2.355353,-1.412404)
+ ..(2.357283,-1.415594)
+ ..controls (2.359213,-1.418784) and (2.362369,-1.424451)
+ ..(2.364323,-1.428239)
+ ..controls (2.366277,-1.432026) and (2.369464,-1.438441)
+ ..(2.371432,-1.442551)
+ ..controls (2.373401,-1.446661) and (2.376599,-1.453339)
+ ..(2.378568,-1.457449)
+ ..controls (2.380536,-1.461559) and (2.383723,-1.467974)
+ ..(2.385677,-1.471761)
+ ..controls (2.387631,-1.475549) and (2.390787,-1.481216)
+ ..(2.392717,-1.484406)
+ ..controls (2.394647,-1.487596) and (2.397759,-1.49213)
+ ..(2.399661,-1.494523)
+ ..controls (2.401563,-1.496916) and (2.404633,-1.500057)
+ ..(2.40651,-1.501532)
+ ..controls (2.408388,-1.503006) and (2.411426,-1.504608)
+ ..(2.41329,-1.505105)
+ ..controls (2.415153,-1.505602) and (2.41818,-1.505602)
+ ..(2.420044,-1.505105)
+ ..controls (2.421907,-1.504608) and (2.424946,-1.503006)
+ ..(2.426823,-1.501532)
+ ..controls (2.4287,-1.500057) and (2.43177,-1.496916)
+ ..(2.433672,-1.494523)
+ ..controls (2.435574,-1.49213) and (2.438687,-1.487596)
+ ..(2.440617,-1.484406)
+ ..controls (2.442547,-1.481216) and (2.445454,-1.476029)
+ ..(2.447103,-1.472834)
+ ..controls (2.448752,-1.469638) and (2.451389,-1.464371)
+ ..(2.452986,-1.461082)
+ ..controls (2.454583,-1.457793) and (2.45698,-1.452826)
+ ..(2.458333,-1.45)\dpicstop
+\dpicdraw (2.583333,-1.45)
+ --(2.833333,-1.45)\dpicstop
+\draw (2.777674,-1.45) node[right=-2bp]{source(,S)};
+\dpicdraw (2,-1.725)
+ --(2.25,-1.725)\dpicstop
+\dpicdraw (2.375,-1.725) circle (0.049213in)\dpicstop
+\dpicdraw (2.25,-1.725)
+ ..controls (2.319036,-1.725) and (2.375,-1.780964)
+ ..(2.375,-1.85)\dpicstop
+\dpicdraw (2.5,-1.725)
+ --(2.75,-1.725)\dpicstop
+\draw (2.777674,-1.725) node[right=-2bp]{source(,SCr)};
+\dpicdraw (2,-2)
+ --(2.25,-2)\dpicstop
+\dpicdraw (2.375,-2) circle (0.049213in)\dpicstop
+\dpicdraw (2.28125,-2.03125)
+ --(2.34375,-1.96875)
+ --(2.40625,-2.03125)
+ --(2.46875,-1.96875)\dpicstop
+\dpicdraw (2.5,-2)
+ --(2.75,-2)\dpicstop
+\draw (2.777674,-2) node[right=-2bp]{source(,T)};
+\dpicdraw (2,-2.275)
+ --(2.25,-2.275)\dpicstop
+\dpicdraw (2.375,-2.275) circle (0.049213in)\dpicstop
+\dpicdraw (2.25,-2.275)
+ --(2.34375,-2.275)\dpicstop
+\dpicdraw[line width=0.4bp](2.34375,-2.275) circle (0.00109in)\dpicstop
+\dpicdraw (2.34375,-2.275)
+ --(2.348958,-2.233333)
+ ..controls (2.352431,-2.205556) and (2.361111,-2.191667)
+ ..(2.375,-2.191667)
+ ..controls (2.388889,-2.191667) and (2.397569,-2.205556)
+ ..(2.401042,-2.233333)
+ --(2.40625,-2.275)\dpicstop
+\dpicdraw[line width=0.4bp](2.40625,-2.275) circle (0.00109in)\dpicstop
+\dpicdraw (2.40625,-2.275)
+ --(2.5,-2.275)\dpicstop
+\dpicdraw (2.5,-2.275)
+ --(2.75,-2.275)\dpicstop
+\draw (2.777674,-2.275) node[right=-2bp]{source(,L)};
+\dpicdraw (2,-2.55)
+ --(2.25,-2.55)\dpicstop
+\dpicdraw (2.375,-2.55) circle (0.049213in)\dpicstop
+\dpicdraw (2.25,-2.55)
+ --(2.291667,-2.55)\dpicstop
+\dpicdraw[line width=0.4bp](2.291667,-2.55) circle (0.00109in)\dpicstop
+\dpicdraw (2.291667,-2.55)
+ ..controls (2.291667,-2.584518) and (2.319649,-2.6125)
+ ..(2.354167,-2.6125)
+ ..controls (2.388684,-2.6125) and (2.416667,-2.584518)
+ ..(2.416667,-2.55)\dpicstop
+\dpicdraw (2.416667,-2.55)
+ ..controls (2.416667,-2.526988) and (2.398012,-2.508333)
+ ..(2.375,-2.508333)
+ ..controls (2.351988,-2.508333) and (2.333333,-2.526988)
+ ..(2.333333,-2.55)\dpicstop
+\dpicdraw (2.333333,-2.55)
+ ..controls (2.333333,-2.584518) and (2.361316,-2.6125)
+ ..(2.395833,-2.6125)
+ ..controls (2.430351,-2.6125) and (2.458333,-2.584518)
+ ..(2.458333,-2.55)\dpicstop
+\dpicdraw[line width=0.4bp](2.458333,-2.55) circle (0.00109in)\dpicstop
+\dpicdraw (2.458333,-2.55)
+ --(2.5,-2.55)\dpicstop
+\dpicdraw (2.5,-2.55)
+ --(2.75,-2.55)\dpicstop
+\draw (2.777674,-2.55) node[right=-2bp]{source(,B)};
+\dpicdraw (2,-2.77)
+ --(2.25,-2.77)\dpicstop
+\dpicdraw (2.375,-2.7075)
+ ..controls (2.39675,-2.7075) and (2.430875,-2.714063)
+ ..(2.45625,-2.723125)
+ ..controls (2.481625,-2.732188) and (2.5,-2.751875)
+ ..(2.5,-2.77)
+ ..controls (2.5,-2.788125) and (2.481625,-2.807813)
+ ..(2.45625,-2.816875)
+ ..controls (2.430875,-2.825938) and (2.39675,-2.8325)
+ ..(2.375,-2.8325)
+ ..controls (2.35325,-2.8325) and (2.319125,-2.825938)
+ ..(2.29375,-2.816875)
+ ..controls (2.268375,-2.807813) and (2.25,-2.788125)
+ ..(2.25,-2.77)
+ ..controls (2.25,-2.751875) and (2.268375,-2.732188)
+ ..(2.29375,-2.723125)
+ ..controls (2.319125,-2.714063) and (2.35325,-2.7075)
+ ..(2.375,-2.7075)\dpicstop
+\dpicdraw (2.5,-2.77)
+ --(2.75,-2.77)\dpicstop
+\draw (2.777674,-2.77) node[right=-2bp]{nullator};
+\dpicdraw (2,-2.935)
+ --(2.25,-2.935)\dpicstop
+\dpicdraw (2.375,-2.935)
+ --(2.34375,-2.90375)
+ ..controls (2.322917,-2.882917) and (2.302083,-2.8725)
+ ..(2.28125,-2.8725)
+ ..controls (2.260417,-2.8725) and (2.25,-2.893333)
+ ..(2.25,-2.935)
+ ..controls (2.25,-2.976667) and (2.260417,-2.9975)
+ ..(2.28125,-2.9975)
+ ..controls (2.302083,-2.9975) and (2.322917,-2.987083)
+ ..(2.34375,-2.96625)
+ --(2.375,-2.935)\dpicstop
+\dpicdraw (2.375,-2.935)
+ --(2.40625,-2.90375)
+ ..controls (2.427083,-2.882917) and (2.447917,-2.8725)
+ ..(2.46875,-2.8725)
+ ..controls (2.489583,-2.8725) and (2.5,-2.893333)
+ ..(2.5,-2.935)
+ ..controls (2.5,-2.976667) and (2.489583,-2.9975)
+ ..(2.46875,-2.9975)
+ ..controls (2.447917,-2.9975) and (2.427083,-2.987083)
+ ..(2.40625,-2.96625)
+ --(2.375,-2.935)\dpicstop
+\dpicdraw (2.5,-2.935)
+ --(2.75,-2.935)\dpicstop
+\draw (2.777674,-2.935) node[right=-2bp]{norator};
+\dpicdraw (4,0)
+ --(4.25,0)\dpicstop
+\dpicdraw (4.375,0) circle (0.049213in)\dpicstop
+\dpicdraw (4.25,0)
+ --(4.3125,0)\dpicstop
+\dpicdraw (4.396376,-0.058731)
+ --(4.396376,0.058731)\dpicstop
+\dpicdraw[line width=0.4bp](4.396376,0.058731) circle (0.00109in)\dpicstop
+\dpicdraw (4.396376,0.058731)
+ ..controls (4.451208,0.038774) and (4.451208,-0.038774)
+ ..(4.396376,-0.058731)\dpicstop
+\dpicdraw[line width=0.4bp](4.396376,-0.058731) circle (0.00109in)\dpicstop
+\dpicdraw (4.353624,0.058731)
+ --(4.353624,-0.058731)\dpicstop
+\dpicdraw[line width=0.4bp](4.353624,-0.058731) circle (0.00109in)\dpicstop
+\dpicdraw (4.353624,-0.058731)
+ ..controls (4.298792,-0.038774) and (4.298792,0.038774)
+ ..(4.353624,0.058731)\dpicstop
+\dpicdraw[line width=0.4bp](4.353624,0.058731) circle (0.00109in)\dpicstop
+\dpicdraw (4.4375,0)
+ --(4.5,0)\dpicstop
+\dpicdraw (4.5,0)
+ --(4.75,0)\dpicstop
+\draw (4.777674,0) node[right=-2bp]{source(,N)};
+\dpicdraw (4,-0.275)
+ --(4.25,-0.275)\dpicstop
+\dpicdraw (4.375,-0.275) circle (0.049213in)\dpicstop
+\draw (4.375,-0.275) node{\rm mA};
+\dpicdraw (4.5,-0.275)
+ --(4.75,-0.275)\dpicstop
+\draw (4.777674,-0.275) node[right=-2bp]{source(,"mA")};
+\dpicdraw (4,-0.585)
+ --(4.225,-0.585)\dpicstop
+\dpicdraw (4.225,-0.585)
+ --(4.375,-0.435)
+ --(4.525,-0.585)
+ --(4.375,-0.735)
+ --(4.225,-0.585)\dpicstop
+\dpicdraw (4.525,-0.585)
+ --(4.75,-0.585)\dpicstop
+\draw (4.777674,-0.585) node[right=-2bp]{consource};
+\dpicdraw (4,-0.905)
+ --(4.225,-0.905)\dpicstop
+\dpicdraw (4.225,-0.905)
+ --(4.375,-0.755)
+ --(4.525,-0.905)
+ --(4.375,-1.055)
+ --(4.225,-0.905)\dpicstop
+\filldraw[line width=0bp](4.3875,-0.93)
+ --(4.4875,-0.905)
+ --(4.3875,-0.88) --cycle\dpicstop
+\dpicdraw (4.2625,-0.905)
+ --(4.464594,-0.905)\dpicstop
+\dpicdraw (4.525,-0.905)
+ --(4.75,-0.905)\dpicstop
+\draw (4.777674,-0.905) node[right=-2bp]{consource(,I)};
+\dpicdraw (4,-1.225)
+ --(4.225,-1.225)\dpicstop
+\dpicdraw (4.225,-1.225)
+ --(4.375,-1.075)
+ --(4.525,-1.225)
+ --(4.375,-1.375)
+ --(4.225,-1.225)\dpicstop
+\dpicdraw (4.375,-1.075)
+ --(4.375,-1.375)\dpicstop
+\dpicdraw (4.525,-1.225)
+ --(4.75,-1.225)\dpicstop
+\draw (4.777674,-1.225) node[right=-2bp]{consource(,i)};
+\dpicdraw (4,-1.545)
+ --(4.25,-1.545)\dpicstop
+\dpicdraw (4.375,-1.545) circle (0.049213in)\dpicstop
+\dpicdraw (4.26275,-1.49)
+ ..controls (4.332238,-1.53) and (4.417762,-1.53)
+ ..(4.48725,-1.49)\dpicstop
+\dpicdraw (4.5,-1.545)
+ --(4.75,-1.545)\dpicstop
+\draw (4.777674,-1.545) node[right=-2bp]{source(,SE)};
+\dpicdraw (4,-1.82)
+ --(4.225,-1.82)\dpicstop
+\dpicdraw (4.225,-1.82)
+ --(4.375,-1.67)
+ --(4.525,-1.82)
+ --(4.375,-1.97)
+ --(4.225,-1.82)\dpicstop
+\draw (4.3,-1.82) node{$-$};
+\draw (4.45,-1.82) node{$+$};
+\dpicdraw (4.525,-1.82)
+ --(4.75,-1.82)\dpicstop
+\draw (4.777674,-1.82) node[right=-2bp]{consource(,V)};
+\dpicdraw (4,-2.14)
+ --(4.225,-2.14)\dpicstop
+\dpicdraw (4.225,-2.14)
+ --(4.375,-1.99)
+ --(4.525,-2.14)
+ --(4.375,-2.29)
+ --(4.225,-2.14)\dpicstop
+\dpicdraw (4.225,-2.14)
+ --(4.525,-2.14)\dpicstop
+\dpicdraw (4.525,-2.14)
+ --(4.75,-2.14)\dpicstop
+\draw (4.777674,-2.14) node[right=-2bp]{consource(,v)};
+\dpicdraw (4,-2.44)
+ --(4.354167,-2.44)\dpicstop
+\dpicdraw (4.354167,-2.3775)
+ --(4.354167,-2.5025)\dpicstop
+\dpicdraw (4.395833,-2.315)
+ --(4.395833,-2.565)\dpicstop
+\dpicdraw (4.395833,-2.44)
+ --(4.75,-2.44)\dpicstop
+\draw (4.777674,-2.44) node[right=-2bp]{battery};
+\dpicdraw (4.75,-2.715)
+ --(4.479167,-2.715)\dpicstop
+\dpicdraw (4.479167,-2.7775)
+ --(4.479167,-2.6525)\dpicstop
+\dpicdraw (4.4375,-2.84)
+ --(4.4375,-2.59)\dpicstop
+\dpicdraw (4.395833,-2.7775)
+ --(4.395833,-2.6525)\dpicstop
+\dpicdraw (4.354167,-2.84)
+ --(4.354167,-2.59)\dpicstop
+\dpicdraw (4.3125,-2.7775)
+ --(4.3125,-2.6525)\dpicstop
+\dpicdraw (4.270833,-2.84)
+ --(4.270833,-2.59)\dpicstop
+\dpicdraw (4.270833,-2.715)
+ --(4,-2.715)\dpicstop
+\draw (4.777674,-2.715) node[right=-2bp]{battery(,3,R)};
+ }
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Sources.m4 b/graphics/circuit_macros/doc/SourcesMan.m4
index a70cea1113..8a4bab9bc6 100644
--- a/graphics/circuit_macros/doc/Sources.m4
+++ b/graphics/circuit_macros/doc/SourcesMan.m4
@@ -21,7 +21,8 @@ define(`NL',`; move down $1; right_')
{source(,X) ; move ; "`source(,X)'" ljust} NL
{source(,F) ; move ; "`source(,F)'" ljust} NL
{source(,G) ; move ; "`source(,G)'" ljust} NL
- {source(,Q) ; move ; "`source(,Q)'" ljust}
+ {source(,Q) ; move ; "`source(,Q)'" ljust} NL(0.3)
+ {proximity ; move ; "`\shortstack[l]{proximity\\ = consource(,P)}'" ljust}
}
move right_ 2.0
{
@@ -34,8 +35,8 @@ define(`NL',`; move down $1; right_')
{source(,SCr) ; move ; "`source(,SCr)'" ljust} NL
{source(,T) ; move ; "`source(,T)'" ljust} NL
{source(,L) ; move ; "`source(,L)'" ljust} NL
- {source(,B) ; move ; "`source(,B)'" ljust} NL(moveht*0.8)
- {nullator ; move ; "`nullator'" ljust} NL(moveht*0.6)
+ {source(,B) ; move ; "`source(,B)'" ljust} NL
+ {nullator ; move ; "`nullator'" ljust} NL(moveht*0.8)
{norator ; move ; "`norator'" ljust}
}
move right_ 2.0
@@ -49,7 +50,7 @@ define(`NL',`; move down $1; right_')
{source(,SE) ; move ; "`source(,SE)'" ljust} NL
{consource(,V) ; move ; "`consource(,V)'" ljust} NL(0.32)
{consource(,v) ; move ; "`consource(,v)'" ljust} NL(0.3)
- {battery ; move ; "`battery'" ljust} NL
+ {battery ; move ; "`battery'" ljust} NL(0.3)
{battery(,3,R) ; move ; "`battery(,3,R)'" ljust}
iflatex(`ifpsfrag(,`latexcommand(})')')
diff --git a/graphics/circuit_macros/doc/Switches.m4 b/graphics/circuit_macros/doc/Switches.m4
deleted file mode 100644
index d8262be92d..0000000000
--- a/graphics/circuit_macros/doc/Switches.m4
+++ /dev/null
@@ -1,117 +0,0 @@
-.PS
-# Switches.m4
-cct_init
-
-movewid = 0.25
-# Row 1
- right_; {
- lswitch; {S:"\tt ls{}witch" at last [].s+(0,-10bp__)}
- move right_
- lswitch(,,O); {"\tt (,,O)" at (last [],S)}
- move right_
- lswitch(,,C); {"\tt (,,C)" at (last [],S)}
- move right_
- lswitch(,,DA); {"\tt (,,DA)" at (last [],S)}
- move right_
- lswitch(,,dDO); {"\tt (,,dDO)" at (last [],S)}
- move right_
- lswitch(,,uDC); {"\tt (,,uDC)" at (last [],S)}
- }
-# Row 2
- move down; right_; {
- lswitch(,,K); {S:"\tt (,,K)" at last [].s+(0,-10bp__)}
- move right_
- lswitch(,,KD); {"\tt (,,KD)" at (last [],S)}
- move right_
- lswitch(,,KOD); {"\tt (,,KOD)" at (last [],S)}
- move right_
- lswitch(,,KCD); {"\tt (,,KCD)" at (last [],S)}
- move right_
- bswitch; {"\tt `bswitch'" at (last [],S)}
- move right_
- bswitch(,,C); {"\tt (,,C)" at (last [],S)}
- }
-# Row 3
- move down; right_; {
- D: dswitch(,,); {S: "\tt ds{}witch(,{},)" at last [].s+(0,-10bp__)}
- thinlines_
- { spline <- from 0.25 along_(D) up 0.1 then up 0.05 left 0.1
- {"\tt W" rjust}
- spline <- from D.c+(0,m4sc*2) up 0.1 then up 0.05 left 0.1
- {"\tt B" rjust }}
- thicklines_
- move right_
- D: dswitch(,,WdBK); {"\tt (,,WdBK)" at (last [],S)+(0,-4bp__)}
- thinlines_
- { spline <- from tr_xy(0,-2) up 0.1 then up 0.10 left 0.1
- {"\tt dB" rjust}
- spline <- from tr_xy(4,-2) right 0.1 then right 0.05 up 0.15
- {"\tt K" above }}
- thicklines_
- move right_
- dswitch(,,WBmdDK); {"\tt (,,WBmdDK)" at (last [],S)}
- move right_
- dswitch(,,WBKTr); {"\tt (,,WBKTr)" at (last [],S)}
- move right_
- dswitch(,,WdBL); {"\tt (,,WdBL)" at (last [],S+(0,-4bp__))}
- move right_
- dswitch(,,WBCo); {"\tt (,,WBCo)" at (last [],S)}
- }
-# Row 4
- move down; right_; {
- dswitch(,,WBKCo); {S: "\tt (,,WBKCo)" at last [].s+(0,-10bp__)}
- move right_
- dswitch(,,WBCb); {"\tt (,,WBCb)" at (last [],S)}
- move right_
- dswitch(,,WBDI); {"\tt (,,WBDI)" at (last [],S)}
- move right_
- dswitch(,,WBSd); {"\tt (,,WBSd)" at (last [],S)}
- move right_
- dswitch(,,WBFDI); {"\tt (,,WBFDI)" at (last [],S)}
- move right_
- dswitch(,,WBFSd); {"\tt (,,WBFSd)" at (last [],S)}
- }
-# Row 5
- move down moveht*5/4; right_; {
- dswitch(,,WBTh); {S: "\tt (,,WBTh)" at last [].s+(0,-10bp__)}
- move right_
- dswitch(,,WBKC); {"\tt (,,WBKC)" at (last [],S)}
- move right_
- dswitch(,,WBM); {"\tt (,,WBM)" at (last [],S)}
- move right_
- dswitch(,,WBCO); {"\tt (,,WBCO)" at (last [],S)}
- move right_
- dswitch(,,WBMP); {"\tt (,,WBMP)" at (last [],S)}
- move right_
- dswitch(,,WBoKCP); {"\tt (,,WBoKCP)" at (last [],S)}
- }
-# Row 6
- move down moveht*5/4; right_; {
- dswitch(,,WBCY); {S: "\tt (,,WBCY)" at last [].s+(0,-10bp__)}
- move right_
- dswitch(,,WBCZ); {"\tt (,,WBCZ)" at (last [],S)}
- move right_
- dswitch(,,WBCE); {"\tt (,,WBCE)" at (last [],S)}
- move right_
- dswitch(,,WBRH); {"\tt (,,WBRH)" at (last [],S)}
- move right_
- dswitch(,,WBRdH); {"\tt (,,WBRdH)" at (last [],S)}
- move right_
- dswitch(,,WBRHH); {"\tt (,,WBRHH)" at (last [],S)}
- }
-# Row 7
- move down; right_; {
- dswitch(,,WBMMR); {S: "\tt (,,WBMMR)" at last [].s+(0,-10bp__)}
- move right_
- dswitch(,,WBMM); {"\tt (,,WBMM)" at (last [],S)}
- move right_
- dswitch(,,WBMR); {"\tt (,,WBMR)" at (last [],S)}
- move right_
- dswitch(,,WBEL); {"\tt (,,WBEL)" at (last [],S)}
- move right_
- dswitch(,,WBLE); {"\tt (,,WBLE)" at (last [],S)}
- move right_
- dswitch(,,WBoKEL); {"\tt (,,WBoKEL)" at (last [],S)}
- }
-
-.PE
diff --git a/graphics/circuit_macros/doc/Switches.tex b/graphics/circuit_macros/doc/Switches.tex
new file mode 100644
index 0000000000..3f6e0b08e1
--- /dev/null
+++ b/graphics/circuit_macros/doc/Switches.tex
@@ -0,0 +1,596 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0.291667,0)\dpicstop
+\dpicdraw (0.291667,0)
+ --(0.416667,0.125)\dpicstop
+\dpicdraw (0.458333,0)
+ --(0.75,0)\dpicstop
+\draw (0.375,-0.160595) node{\tt ls{}witch};
+\dpicdraw (1,0)
+ --(1.291667,0)\dpicstop
+\dpicdraw (1.291667,0)
+ --(1.416667,0.125)\dpicstop
+\filldraw[line width=0bp](1.362125,0.086087)
+ --(1.349366,0.074969)
+ ..controls (1.342662,0.09113) and (1.33416,0.106484)
+ ..(1.324019,0.120741)
+ ..controls (1.34186,0.114971) and (1.358938,0.107068)
+ ..(1.374885,0.097205)
+ --(1.362125,0.086087)\dpicstop
+\dpicdraw (1.414768,-0.021706)
+ ..controls (1.405742,0.02367) and (1.383411,0.065332)
+ ..(1.350622,0.097972)\dpicstop
+\dpicdraw (1.458333,0)
+ --(1.75,0)\dpicstop
+\draw (1.375,-0.160595) node{\tt (,,O)};
+\dpicdraw (2,0)
+ --(2.291667,0)\dpicstop
+\dpicdraw (2.291667,0)
+ --(2.416667,0.125)\dpicstop
+\filldraw[line width=0bp](2.403732,0.018447)
+ --(2.387471,0.01371)
+ ..controls (2.397462,-0.000674) and (2.405825,-0.016123)
+ ..(2.412407,-0.032352)
+ ..controls (2.417126,-0.014206) and (2.419673,0.004436)
+ ..(2.419994,0.023183)
+ --(2.403732,0.018447)\dpicstop
+\dpicdraw (2.407539,0.002327)
+ ..controls (2.399025,0.041593) and (2.380658,0.078046)
+ ..(2.354167,0.108253)\dpicstop
+\dpicdraw (2.458333,0)
+ --(2.75,0)\dpicstop
+\draw (2.375,-0.160595) node{\tt (,,C)};
+\dpicdraw (3,0)
+ --(3.291667,0)\dpicstop
+\filldraw[line width=0bp](3.391447,0.074795)
+ --(3.416667,0.125)
+ --(3.366462,0.09978) --cycle\dpicstop
+\dpicdraw (3.291667,0)
+ --(3.404174,0.112507)\dpicstop
+\dpicdraw (3.458333,0)
+ --(3.75,0)\dpicstop
+\dpicdraw[fill=white](3.291667,0) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.458333,0) circle (0.007874in)\dpicstop
+\draw (3.375,-0.160595) node{\tt (,,DA)};
+\dpicdraw (4,0)
+ --(4.291667,0)\dpicstop
+\dpicdraw (4.291667,0)
+ --(4.416667,0.125)\dpicstop
+\filldraw[line width=0bp](4.362125,0.086087)
+ --(4.349366,0.074969)
+ ..controls (4.342662,0.09113) and (4.33416,0.106484)
+ ..(4.324019,0.120741)
+ ..controls (4.34186,0.114971) and (4.358938,0.107068)
+ ..(4.374885,0.097205)
+ --(4.362125,0.086087)\dpicstop
+\dpicdraw (4.414768,-0.021706)
+ ..controls (4.405742,0.02367) and (4.383411,0.065332)
+ ..(4.350622,0.097972)\dpicstop
+\dpicdraw (4.458333,0)
+ --(4.75,0)\dpicstop
+\dpicdraw[fill=white](4.291667,0) circle (0.007874in)\dpicstop
+\draw (4.375,-0.160595) node{\tt (,,dDO)};
+\dpicdraw (5,0)
+ --(5.291667,0)\dpicstop
+\dpicdraw (5.291667,0)
+ --(5.416667,0.125)\dpicstop
+\filldraw[line width=0bp](5.403732,0.018447)
+ --(5.387471,0.01371)
+ ..controls (5.397462,-0.000674) and (5.405825,-0.016123)
+ ..(5.412407,-0.032352)
+ ..controls (5.417126,-0.014206) and (5.419673,0.004436)
+ ..(5.419994,0.023183)
+ --(5.403732,0.018447)\dpicstop
+\dpicdraw (5.407539,0.002327)
+ ..controls (5.399025,0.041593) and (5.380658,0.078046)
+ ..(5.354167,0.108253)\dpicstop
+\dpicdraw (5.458333,0)
+ --(5.75,0)\dpicstop
+\dpicdraw[fill=white](5.458333,0) circle (0.007874in)\dpicstop
+\draw (5.375,-0.160595) node{\tt (,,uDC)};
+\dpicdraw (0,-0.5)
+ --(0.291667,-0.5)\dpicstop
+\dpicdraw (0.291667,-0.5)
+ --(0.475789,-0.477745)\dpicstop
+\dpicdraw (0.458333,-0.5)
+ --(0.458333,-0.48)\dpicstop
+\dpicdraw (0.458333,-0.5)
+ --(0.75,-0.5)\dpicstop
+\draw (0.375,-0.660595) node{\tt (,,K)};
+\dpicdraw (1,-0.5)
+ --(1.291667,-0.5)\dpicstop
+\dpicdraw (1.291667,-0.5)
+ --(1.475789,-0.477745)\dpicstop
+\dpicdraw (1.458333,-0.5)
+ --(1.458333,-0.48)\dpicstop
+\dpicdraw (1.458333,-0.5)
+ --(1.75,-0.5)\dpicstop
+\dpicdraw[fill=white](1.291667,-0.5) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](1.458333,-0.5) circle (0.007874in)\dpicstop
+\draw (1.375,-0.660595) node{\tt (,,KD)};
+\dpicdraw (2,-0.5)
+ --(2.291667,-0.5)\dpicstop
+\dpicdraw (2.291667,-0.5)
+ --(2.475789,-0.477745)\dpicstop
+\dpicdraw (2.458333,-0.5)
+ --(2.458333,-0.48)\dpicstop
+\filldraw[line width=0bp](2.362125,-0.413913)
+ --(2.349366,-0.425031)
+ ..controls (2.342662,-0.40887) and (2.33416,-0.393516)
+ ..(2.324019,-0.379259)
+ ..controls (2.34186,-0.385029) and (2.358938,-0.392932)
+ ..(2.374885,-0.402795)
+ --(2.362125,-0.413913)\dpicstop
+\dpicdraw (2.414768,-0.521706)
+ ..controls (2.405742,-0.47633) and (2.383411,-0.434668)
+ ..(2.350622,-0.402028)\dpicstop
+\dpicdraw (2.458333,-0.5)
+ --(2.75,-0.5)\dpicstop
+\dpicdraw[fill=white](2.291667,-0.5) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](2.458333,-0.5) circle (0.007874in)\dpicstop
+\draw (2.375,-0.660595) node{\tt (,,KOD)};
+\dpicdraw (3,-0.5)
+ --(3.291667,-0.5)\dpicstop
+\dpicdraw (3.291667,-0.5)
+ --(3.475789,-0.477745)\dpicstop
+\dpicdraw (3.458333,-0.5)
+ --(3.458333,-0.48)\dpicstop
+\filldraw[line width=0bp](3.402903,-0.501361)
+ --(3.386185,-0.503989)
+ ..controls (3.394255,-0.519512) and (3.400552,-0.535895)
+ ..(3.404955,-0.552827)
+ ..controls (3.412003,-0.535452) and (3.416927,-0.517289)
+ ..(3.419621,-0.498733)
+ --(3.402903,-0.501361)\dpicstop
+\dpicdraw (3.404613,-0.517813)
+ ..controls (3.400687,-0.471714) and (3.383125,-0.427828)
+ ..(3.354167,-0.391747)\dpicstop
+\dpicdraw (3.458333,-0.5)
+ --(3.75,-0.5)\dpicstop
+\dpicdraw[fill=white](3.291667,-0.5) circle (0.007874in)\dpicstop
+\dpicdraw[fill=white](3.458333,-0.5) circle (0.007874in)\dpicstop
+\draw (3.375,-0.660595) node{\tt (,,KCD)};
+\dpicdraw (4,-0.5)
+ --(4.257074,-0.5)\dpicstop
+\dpicdraw (4.291667,-0.5) circle (0.013619in)\dpicstop
+\dpicdraw (4.458333,-0.5) circle (0.013619in)\dpicstop
+\dpicdraw (4.257074,-0.413517)
+ --(4.492926,-0.413517)\dpicstop
+\dpicdraw (4.375,-0.413517)
+ --(4.375,-0.344332)\dpicstop
+\dpicdraw (4.492926,-0.5)
+ --(4.75,-0.5)\dpicstop
+\draw (4.375,-0.660595) node{\tt bswitch};
+\dpicdraw (5,-0.5)
+ --(5.257074,-0.5)\dpicstop
+\dpicdraw (5.291667,-0.5) circle (0.013619in)\dpicstop
+\dpicdraw (5.458333,-0.5) circle (0.013619in)\dpicstop
+\dpicdraw (5.257074,-0.534593)
+ --(5.492926,-0.534593)\dpicstop
+\dpicdraw (5.375,-0.534593)
+ --(5.375,-0.396221)\dpicstop
+\dpicdraw (5.492926,-0.5)
+ --(5.75,-0.5)\dpicstop
+\draw (5.375,-0.660595) node{\tt (,,C)};
+\dpicdraw (0,-1)
+ --(0.291667,-1)\dpicstop
+\dpicdraw (0.458333,-1)
+ --(0.75,-1)\dpicstop
+\dpicdraw (0.291667,-1)
+ --(0.479167,-0.90625)\dpicstop
+\draw (0.385417,-1.140032) node{\tt ds{}witch(,{},)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.1675,-0.933333)
+ --(0.1875,-1)
+ --(0.2075,-0.933333) --cycle\dpicstop
+\dpicdraw (0.1875,-0.980666)
+ --(0.1875,-0.940333)
+ ..controls (0.1875,-0.913444) and (0.170833,-0.891667)
+ ..(0.1375,-0.875)
+ --(0.0875,-0.85)\dpicstop
+\draw (0.0875,-0.85) node[left=-2bp]{\tt W};
+\filldraw[line width=0bp](0.355,-0.891667)
+ --(0.375,-0.958333)
+ --(0.395,-0.891667) --cycle\dpicstop
+\dpicdraw (0.375,-0.938999)
+ --(0.375,-0.898666)
+ ..controls (0.375,-0.871778) and (0.358333,-0.85)
+ ..(0.325,-0.833333)
+ --(0.275,-0.808333)\dpicstop
+\draw (0.275,-0.808333) node[left=-2bp]{\tt B};
+\dpiclw=0.8bp
+\dpicdraw (1,-1)
+ --(1.291667,-1)\dpicstop
+\dpicdraw (1.458333,-1)
+ --(1.75,-1)\dpicstop
+\dpicdraw (1.291667,-1)
+ --(1.479167,-1.09375)\dpicstop
+\dpicdraw (1.458333,-1)
+ --(1.458333,-1.104167)\dpicstop
+\draw (1.385417,-1.195588) node{\tt (,,WdBK)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.355,-0.975)
+ --(1.375,-1.041667)
+ --(1.395,-0.975) --cycle\dpicstop
+\dpicdraw (1.375,-1.022333)
+ --(1.375,-0.982)
+ ..controls (1.375,-0.955111) and (1.358333,-0.925)
+ ..(1.325,-0.891667)
+ --(1.275,-0.841667)\dpicstop
+\draw (1.275,-0.841667) node[left=-2bp]{\tt dB};
+\filldraw[line width=0bp](1.525,-1.021667)
+ --(1.458333,-1.041667)
+ --(1.525,-1.061667) --cycle\dpicstop
+\dpicdraw (1.477667,-1.041667)
+ --(1.518,-1.041667)
+ ..controls (1.544889,-1.041667) and (1.566667,-1.016667)
+ ..(1.583333,-0.966667)
+ --(1.608333,-0.891667)\dpicstop
+\draw (1.608333,-0.891667) node[above=-2bp]{\tt K};
+\dpiclw=0.8bp
+\dpicdraw (2,-1)
+ --(2.291667,-1)\dpicstop
+\dpicdraw (2.458333,-1)
+ --(2.75,-1)\dpicstop
+\dpicdraw (2.291667,-1)
+ --(2.479167,-0.90625)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.502459,-0.894604) circle (0.010253in)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw[fill=white](2.291667,-1) circle (0.007874in)\dpicstop
+\dpicdraw (2.458333,-1)
+ --(2.458333,-0.895833)\dpicstop
+\draw (2.385417,-1.140032) node{\tt (,,WBmdDK)};
+\dpicdraw (3,-1)
+ --(3.291667,-1)\dpicstop
+\dpicdraw (3.458333,-1)
+ --(3.75,-1)\dpicstop
+\dpicdraw (3.291667,-1)
+ --(3.479167,-0.90625)\dpicstop
+\dpicdraw (3.458333,-1)
+ --(3.458333,-0.895833)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (3.401823,-0.915625)
+ --(3.390104,-0.892188)
+ --(3.343229,-0.915625)
+ --(3.366667,-0.9625)
+ --(3.413542,-0.939063)
+ --(3.401823,-0.915625)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\draw (3.385417,-1.140032) node{\tt (,,WBKTr)};
+\dpicdraw (4,-1)
+ --(4.291667,-1)\dpicstop
+\dpicdraw (4.458333,-1)
+ --(4.75,-1)\dpicstop
+\dpicdraw (4.291667,-1)
+ --(4.479167,-1.09375)\dpicstop
+\dpicdraw (4.35026,-1.029297)
+ --(4.39974,-1.10612)
+ --(4.420573,-1.064453)\dpicstop
+\draw (4.385417,-1.195588) node{\tt (,,WdBL)};
+\dpicdraw (5,-1)
+ --(5.291667,-1)\dpicstop
+\dpicdraw (5.458333,-1)
+ --(5.75,-1)\dpicstop
+\dpicdraw (5.291667,-1)
+ --(5.479167,-0.90625)\dpicstop
+\dpicdraw (5.458333,-1)
+ ..controls (5.458333,-0.944444) and (5.541667,-0.944444)
+ ..(5.541667,-1)\dpicstop
+\draw (5.385417,-1.140032) node{\tt (,,WBCo)};
+\dpicdraw (0,-1.5)
+ --(0.291667,-1.5)\dpicstop
+\dpicdraw (0.458333,-1.5)
+ --(0.75,-1.5)\dpicstop
+\dpicdraw (0.291667,-1.5)
+ --(0.479167,-1.40625)\dpicstop
+\dpicdraw (0.458333,-1.5)
+ ..controls (0.458333,-1.476988) and (0.476988,-1.458333)
+ ..(0.5,-1.458333)
+ ..controls (0.523012,-1.458333) and (0.541667,-1.476988)
+ ..(0.541667,-1.5)\dpicstop
+\dpicdraw (0.458333,-1.5)
+ --(0.458333,-1.395833)\dpicstop
+\draw (0.385417,-1.640032) node{\tt (,,WBKCo)};
+\dpicdraw (1,-1.5)
+ --(1.291667,-1.5)\dpicstop
+\dpicdraw (1.458333,-1.5)
+ --(1.75,-1.5)\dpicstop
+\dpicdraw (1.291667,-1.5)
+ --(1.479167,-1.40625)\dpicstop
+\dpicdraw (1.416667,-1.541667)
+ --(1.5,-1.458333)\dpicstop
+\dpicdraw (1.416667,-1.458333)
+ --(1.5,-1.541667)\dpicstop
+\draw (1.375,-1.640032) node{\tt (,,WBCb)};
+\dpicdraw (2,-1.5)
+ --(2.291667,-1.5)\dpicstop
+\dpicdraw (2.458333,-1.5)
+ --(2.75,-1.5)\dpicstop
+\dpicdraw (2.291667,-1.5)
+ --(2.479167,-1.40625)\dpicstop
+\dpicdraw (2.458333,-1.458333)
+ --(2.458333,-1.541667)\dpicstop
+\draw (2.375,-1.640032) node{\tt (,,WBDI)};
+\dpicdraw (3,-1.5)
+ --(3.291667,-1.5)\dpicstop
+\dpicdraw (3.458333,-1.5)
+ --(3.75,-1.5)\dpicstop
+\dpicdraw (3.291667,-1.5)
+ --(3.479167,-1.40625)\dpicstop
+\dpicdraw[fill=white](3.458333,-1.5) circle (0.012303in)\dpicstop
+\dpicdraw (3.489583,-1.458333)
+ --(3.489583,-1.541667)\dpicstop
+\draw (3.375,-1.640032) node{\tt (,,WBSd)};
+\dpicdraw (4,-1.5)
+ --(4.291667,-1.5)\dpicstop
+\dpicdraw (4.458333,-1.5)
+ --(4.75,-1.5)\dpicstop
+\dpicdraw (4.291667,-1.5)
+ --(4.479167,-1.40625)\dpicstop
+\dpicdraw (4.458333,-1.458333)
+ --(4.458333,-1.541667)\dpicstop
+\dpicdraw (4.315104,-1.488281)
+ --(4.304688,-1.467448)
+ --(4.398438,-1.420573)
+ --(4.419271,-1.46224)
+ --(4.325521,-1.509115)
+ --(4.315104,-1.488281)\dpicstop
+\draw (4.375,-1.640032) node{\tt (,,WBFDI)};
+\dpicdraw (5,-1.5)
+ --(5.291667,-1.5)\dpicstop
+\dpicdraw (5.458333,-1.5)
+ --(5.75,-1.5)\dpicstop
+\dpicdraw (5.291667,-1.5)
+ --(5.479167,-1.40625)\dpicstop
+\dpicdraw (5.315104,-1.488281)
+ --(5.304688,-1.467448)
+ --(5.398438,-1.420573)
+ --(5.419271,-1.46224)
+ --(5.325521,-1.509115)
+ --(5.315104,-1.488281)\dpicstop
+\dpicdraw[fill=white](5.458333,-1.5) circle (0.012303in)\dpicstop
+\dpicdraw (5.489583,-1.458333)
+ --(5.489583,-1.541667)\dpicstop
+\draw (5.375,-1.640032) node{\tt (,,WBFSd)};
+\dpicdraw (0,-2.125)
+ --(0.291667,-2.125)\dpicstop
+\dpicdraw (0.458333,-2.125)
+ --(0.75,-2.125)\dpicstop
+\dpicdraw (0.291667,-2.125)
+ --(0.479167,-2.03125)\dpicstop
+\dpicdraw (0.385417,-2.078125)
+ --(0.385417,-1.984375)
+ --(0.447917,-1.984375)
+ --(0.447917,-1.921875)
+ --(0.385417,-1.921875)
+ --(0.385417,-1.828125)\dpicstop
+\draw (0.380208,-2.26398) node{\tt (,,WBTh)};
+\dpicdraw (1,-2.125)
+ --(1.291667,-2.125)\dpicstop
+\dpicdraw (1.458333,-2.125)
+ --(1.75,-2.125)\dpicstop
+\dpicdraw (1.291667,-2.125)
+ --(1.479167,-2.03125)\dpicstop
+\dpicdraw (1.458333,-2.125)
+ --(1.458333,-2.020833)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](1.385417,-2.078125)
+ --(1.385417,-1.828125)\dpicstop
+\draw (1.380208,-2.26398) node{\tt (,,WBKC)};
+\dpicdraw (2,-2.125)
+ --(2.291667,-2.125)\dpicstop
+\dpicdraw (2.458333,-2.125)
+ --(2.75,-2.125)\dpicstop
+\dpicdraw (2.291667,-2.125)
+ --(2.479167,-2.03125)\dpicstop
+\dpicdraw[dash pattern=on 0.03125in off 0.03125in](2.385417,-2.078125)
+ --(2.385417,-1.984375)\dpicstop
+\dpicdraw (2.385417,-1.984375)
+ --(2.322917,-1.953125)
+ --(2.385417,-1.921875)\dpicstop
+\dpicdraw[dash pattern=on 0.03125in off 0.03125in](2.385417,-1.921875)
+ --(2.385417,-1.828125)\dpicstop
+\draw (2.380208,-2.26398) node{\tt (,,WBM)};
+\dpicdraw (3,-2.125)
+ --(3.291667,-2.125)\dpicstop
+\dpicdraw (3.458333,-2.125)
+ --(3.75,-2.125)\dpicstop
+\dpicdraw (3.291667,-2.125)
+ --(3.479167,-2.03125)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](3.385417,-2.078125)
+ --(3.385417,-1.828125)\dpicstop
+\dpicdraw (3.333333,-1.828125)
+ --(3.4375,-1.828125)\dpicstop
+\draw (3.380208,-2.26398) node{\tt (,,WBCO)};
+\dpicdraw (4,-2.125)
+ --(4.291667,-2.125)\dpicstop
+\dpicdraw (4.458333,-2.125)
+ --(4.75,-2.125)\dpicstop
+\dpicdraw (4.291667,-2.125)
+ --(4.479167,-2.03125)\dpicstop
+\dpicdraw[dash pattern=on 0.03125in off 0.03125in](4.385417,-2.078125)
+ --(4.385417,-1.984375)\dpicstop
+\dpicdraw (4.385417,-1.984375)
+ --(4.322917,-1.953125)
+ --(4.385417,-1.921875)\dpicstop
+\dpicdraw[dash pattern=on 0.03125in off 0.03125in](4.385417,-1.921875)
+ --(4.385417,-1.828125)\dpicstop
+\dpicdraw (4.333333,-1.880208)
+ --(4.333333,-1.828125)
+ --(4.4375,-1.828125)
+ --(4.4375,-1.880208)\dpicstop
+\draw (4.380208,-2.26398) node{\tt (,,WBMP)};
+\dpicdraw (5,-2.125)
+ --(5.291667,-2.125)\dpicstop
+\dpicdraw (5.458333,-2.125)
+ --(5.75,-2.125)\dpicstop
+\dpicdraw (5.291667,-2.125)
+ --(5.458333,-1.968634)\dpicstop
+\dpicdraw (5.458333,-2.125)
+ --(5.458333,-2.020833)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](5.375,-2.046817)
+ --(5.375,-1.796817)\dpicstop
+\dpicdraw (5.322917,-1.8489)
+ --(5.322917,-1.796817)
+ --(5.427083,-1.796817)
+ --(5.427083,-1.8489)\dpicstop
+\draw (5.375,-2.26398) node{\tt (,,WBoKCP)};
+\dpicdraw (0,-2.75)
+ --(0.291667,-2.75)\dpicstop
+\dpicdraw (0.458333,-2.75)
+ --(0.75,-2.75)\dpicstop
+\dpicdraw (0.291667,-2.75)
+ --(0.479167,-2.65625)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](0.385417,-2.703125)
+ --(0.385417,-2.453125)\dpicstop
+\dpicdraw (0.333333,-2.401042)
+ --(0.333333,-2.453125)
+ --(0.4375,-2.453125)
+ --(0.4375,-2.401042)\dpicstop
+\draw (0.380208,-2.88898) node{\tt (,,WBCY)};
+\dpicdraw (1,-2.75)
+ --(1.291667,-2.75)\dpicstop
+\dpicdraw (1.458333,-2.75)
+ --(1.75,-2.75)\dpicstop
+\dpicdraw (1.291667,-2.75)
+ --(1.479167,-2.65625)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](1.385417,-2.703125)
+ --(1.385417,-2.453125)\dpicstop
+\dpicdraw (1.333333,-2.505208)
+ --(1.333333,-2.453125)
+ --(1.4375,-2.453125)
+ --(1.4375,-2.401042)\dpicstop
+\draw (1.380208,-2.88898) node{\tt (,,WBCZ)};
+\dpicdraw (2,-2.75)
+ --(2.291667,-2.75)\dpicstop
+\dpicdraw (2.458333,-2.75)
+ --(2.75,-2.75)\dpicstop
+\dpicdraw (2.291667,-2.75)
+ --(2.479167,-2.65625)\dpicstop
+\dpicdraw[dash pattern=on 0.05in off 0.05in](2.385417,-2.703125)
+ --(2.385417,-2.453125)\dpicstop
+\dpicdraw (2.333333,-2.453125)
+ --(2.4375,-2.453125)\dpicstop
+\dpicdraw (2.4375,-2.453125)
+ ..controls (2.413909,-2.413806) and (2.356925,-2.413806)
+ ..(2.333333,-2.453125)\dpicstop
+\draw (2.380208,-2.88898) node{\tt (,,WBCE)};
+\dpicdraw (3,-2.75)
+ --(3.291667,-2.75)\dpicstop
+\dpicdraw (3.458333,-2.75)
+ --(3.75,-2.75)\dpicstop
+\dpicdraw (3.291667,-2.75)
+ --(3.479167,-2.65625)\dpicstop
+\dpicdraw (3.369792,-2.710938)
+ --(3.369792,-2.460938)\dpicstop
+\dpicdraw (3.401042,-2.695313)
+ --(3.401042,-2.463355)\dpicstop
+\dpicdraw (3.447917,-2.430896)
+ ..controls (3.415391,-2.469927) and (3.355443,-2.469927)
+ ..(3.322917,-2.430896)\dpicstop
+\draw (3.380208,-2.88898) node{\tt (,,WBRH)};
+\dpicdraw (4,-2.75)
+ --(4.291667,-2.75)\dpicstop
+\dpicdraw (4.458333,-2.75)
+ --(4.75,-2.75)\dpicstop
+\dpicdraw (4.291667,-2.75)
+ --(4.479167,-2.65625)\dpicstop
+\dpicdraw (4.369792,-2.710938)
+ --(4.369792,-2.460938)\dpicstop
+\dpicdraw (4.401042,-2.695313)
+ --(4.401042,-2.463355)\dpicstop
+\dpicdraw (4.447917,-2.493396)
+ ..controls (4.415391,-2.454365) and (4.355443,-2.454365)
+ ..(4.322917,-2.493396)\dpicstop
+\draw (4.380208,-2.88898) node{\tt (,,WBRdH)};
+\dpicdraw (5,-2.75)
+ --(5.291667,-2.75)\dpicstop
+\dpicdraw (5.458333,-2.75)
+ --(5.75,-2.75)\dpicstop
+\dpicdraw (5.291667,-2.75)
+ --(5.479167,-2.65625)\dpicstop
+\dpicdraw (5.369792,-2.710938)
+ --(5.369792,-2.460938)\dpicstop
+\dpicdraw (5.401042,-2.695313)
+ --(5.401042,-2.463355)\dpicstop
+\dpicdraw (5.447917,-2.430896)
+ ..controls (5.415391,-2.469927) and (5.355443,-2.469927)
+ ..(5.322917,-2.430896)\dpicstop
+\dpicdraw (5.447917,-2.493396)
+ ..controls (5.415391,-2.454365) and (5.355443,-2.454365)
+ ..(5.322917,-2.493396)\dpicstop
+\draw (5.380208,-2.88898) node{\tt (,,WBRHH)};
+\dpicdraw (0,-3.25)
+ --(0.291667,-3.25)\dpicstop
+\dpicdraw (0.458333,-3.25)
+ --(0.75,-3.25)\dpicstop
+\dpicdraw (0.291667,-3.25)
+ --(0.479167,-3.15625)\dpicstop
+\dpicdraw (0.5,-3.225833)
+ --(0.458333,-3.25)
+ --(0.5,-3.274167)\dpicstop
+\draw (0.385417,-3.390032) node(S){\tt (,,WBMMR)};
+\dpicdraw (1,-3.25)
+ --(1.291667,-3.25)\dpicstop
+\dpicdraw (1.458333,-3.25)
+ --(1.75,-3.25)\dpicstop
+\dpicdraw (1.291667,-3.25)
+ --(1.479167,-3.15625)\dpicstop
+\dpicdraw (1.479167,-3.25)
+ --(1.458333,-3.25)
+ --(1.5,-3.225833)\dpicstop
+\draw (1.385417,-3.390032) node{\tt (,,WBMM)};
+\dpicdraw (2,-3.25)
+ --(2.291667,-3.25)\dpicstop
+\dpicdraw (2.458333,-3.25)
+ --(2.75,-3.25)\dpicstop
+\dpicdraw (2.291667,-3.25)
+ --(2.479167,-3.15625)\dpicstop
+\dpicdraw (2.479167,-3.25)
+ --(2.458333,-3.25)
+ --(2.5,-3.274167)\dpicstop
+\draw (2.385417,-3.390032) node{\tt (,,WBMR)};
+\dpicdraw (3,-3.25)
+ --(3.291667,-3.25)\dpicstop
+\dpicdraw (3.458333,-3.25)
+ --(3.75,-3.25)\dpicstop
+\dpicdraw (3.291667,-3.25)
+ --(3.479167,-3.15625)\dpicstop
+\dpicdraw (3.477292,-3.157188)
+ --(3.479167,-3.15625)
+ --(3.502459,-3.202835)\dpicstop
+\draw (3.385417,-3.390032) node{\tt (,,WBEL)};
+\dpicdraw (4,-3.25)
+ --(4.291667,-3.25)\dpicstop
+\dpicdraw (4.458333,-3.25)
+ --(4.75,-3.25)\dpicstop
+\dpicdraw (4.291667,-3.25)
+ --(4.479167,-3.15625)\dpicstop
+\dpicdraw (4.477292,-3.157188)
+ --(4.479167,-3.15625)
+ --(4.455874,-3.109665)\dpicstop
+\draw (4.385417,-3.390032) node{\tt (,,WBLE)};
+\dpicdraw (5,-3.25)
+ --(5.291667,-3.25)\dpicstop
+\dpicdraw (5.458333,-3.25)
+ --(5.75,-3.25)\dpicstop
+\dpicdraw (5.291667,-3.25)
+ --(5.458333,-3.093634)\dpicstop
+\dpicdraw (5.456667,-3.095198)
+ --(5.458333,-3.093634)
+ --(5.493969,-3.131618)\dpicstop
+\dpicdraw (5.458333,-3.25)
+ --(5.458333,-3.145833)\dpicstop
+\draw (5.375,-3.390032) node{\tt (,,WBoKEL)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/SwitchesMan.m4 b/graphics/circuit_macros/doc/SwitchesMan.m4
new file mode 100644
index 0000000000..46b3f9240d
--- /dev/null
+++ b/graphics/circuit_macros/doc/SwitchesMan.m4
@@ -0,0 +1,131 @@
+.PS
+# Switches.m4
+cct_init
+
+define(`Below',`at last [].s+(0,-10bp__)')
+
+movewid = 0.25
+# Row 1
+ right_; {
+ lswitch; {S:"\tt ls{}witch" Below}
+ move right_
+ lswitch(,,O); {"\tt (,{,}O)" at (last [],S)}
+ move right_
+ lswitch(,,C); {"\tt (,{,}C)" at (last [],S)}
+ move right_
+ lswitch(,,DA); {"\tt (,{,}DA)" at (last [],S)}
+ move right_
+ lswitch(,,dDO); {"\tt (,{,}dDO)" at (last [],S)}
+ move right_
+ lswitch(,,uDC); {"\tt (,{,}uDC)" at (last [],S)}
+ }
+# Row 2
+ move down; right_; {
+ lswitch(,,K); {S:"\tt (,{,}K)" Below}
+ move right_
+ lswitch(,,KD); {"\tt (,{,}KD)" at (last [],S)}
+ move right_
+ lswitch(,,KOD); {"\tt (,{,}KOD)" at (last [],S)}
+ move right_
+ lswitch(,,KCD); {"\tt (,{,}KCD)" at (last [],S)}
+ move right_
+ bswitch; {"\tt `bswitch'" at (last [],S)}
+ move right_
+ bswitch(,,C); {"\tt (,{,}C)" at (last [],S)}
+ }
+# Row 3
+ move down; right_; {
+ D: dswitch(,,); {S: "\tt ds{}witch(,{},)" Below}
+ thinlines_
+ { spline <- from 0.25 along_(D) up 0.1 then up 0.05 left 0.1
+ {"\tt W" rjust}
+ spline <- from D.c+(0,m4sc*2) up 0.1 then up 0.05 left 0.1
+ {"\tt B" rjust }}
+ thicklines_
+ move right_
+ D: dswitch(,,WdBK); {"\tt (,{,}WdBK)" at (last [],S)+(0,-4bp__)}
+ thinlines_
+ { spline <- from tr_xy(0,-2) up 0.1 then up 0.10 left 0.1
+ {"\tt dB" rjust}
+ spline <- from tr_xy(4,-2) right 0.1 then right 0.05 up 0.15
+ {"\tt K" above }}
+ thicklines_
+ move right_
+ dswitch(,,WBmdDK); {"\tt (,{,}WBmdDK)" at (last [],S)}
+ move right_
+ dswitch(,,WBKTr); {"\tt (,{,}WBKTr)" at (last [],S)}
+ move right_
+ dswitch(,,WdBL); {"\tt (,{,}WdBL)" at (last [],S+(0,-4bp__))}
+ move right_
+ dswitch(,,WBCo); {"\tt (,{,}WBCo)" at (last [],S)}
+ }
+# Row 4
+ move down; right_; {
+ dswitch(,,WBKCo); {S: "\tt (,{,}WBKCo)" Below}
+ move right_
+ dswitch(,,WBCb); {"\tt (,{,}WBCb)" at (last [],S)}
+ move right_
+ dswitch(,,WBDI); {"\tt (,{,}WBDI)" at (last [],S)}
+ move right_
+ dswitch(,,WBSd); {"\tt (,{,}WBSd)" at (last [],S)}
+ move right_
+ dswitch(,,WBFDI); {"\tt (,{,}WBFDI)" at (last [],S)}
+ move right_
+ dswitch(,,WBFSd); {"\tt (,{,}WBFSd)" at (last [],S)}
+ }
+# Row 5
+ move down moveht*5/4; right_; {
+ dswitch(,,WBTh); {S: "\tt (,{,}WBTh)" Below}
+ move right_
+ dswitch(,,WBKC); {"\tt (,{,}WBKC)" at (last [],S)}
+ move right_
+ dswitch(,,WBM); {"\tt (,{,}WBM)" at (last [],S)}
+ move right_
+ dswitch(,,WBCO); {"\tt (,{,}WBCO)" at (last [],S)}
+ move right_
+ dswitch(,,WBMP); {"\tt (,{,}WBMP)" at (last [],S)}
+ move right_
+ dswitch(,,WBoKCP); {"\tt (,{,}WBoKCP)" at (last [],S)}
+ }
+# Row 6
+ move down moveht*5/4; right_; {
+ dswitch(,,WBCY); {S: "\tt (,{,}WBCY)" Below}
+ move right_
+ dswitch(,,WBCZ); {"\tt (,{,}WBCZ)" at (last [],S)}
+ move right_
+ dswitch(,,WBCE); {"\tt (,{,}WBCE)" at (last [],S)}
+ move right_
+ dswitch(,,WBRH); {"\tt (,{,}WBRH)" at (last [],S)}
+ move right_
+ dswitch(,,WBRdH); {"\tt (,{,}WBRdH)" at (last [],S)}
+ move right_
+ dswitch(,,WBRHH); {"\tt (,{,}WBRHH)" at (last [],S)}
+ }
+# Row 7
+ move down moveht; right_; {
+ move down_ 2bp__; right_
+ dswitch(,,WBPr); {S: "\tt (,{,}WBPr)" Below}
+ move right_
+ dswitch(,,WBPrT); {S: "\tt (,{,}WBPrT)" Below}
+# move right_
+# Proxim; {S: "\tt Pro{}xim" Below}
+# move right_
+# Magn; {S: "\tt Mag{}n" Below}
+ move down_ 6bp__ then right_
+ dswitch(,,WBPrM); {S: "\tt (,{,}WBPrM)" Below}
+ }
+# Row 8
+ move down; right_; {
+ dswitch(,,WBMMR); {S: "\tt (,{,}WBMMR)" Below}
+ move right_
+ dswitch(,,WBMM); {"\tt (,{,}WBMM)" at (last [],S)}
+ move right_
+ dswitch(,,WBMR); {"\tt (,{,}WBMR)" at (last [],S)}
+ move right_
+ dswitch(,,WBEL); {"\tt (,{,}WBEL)" at (last [],S)}
+ move right_
+ dswitch(,,WBLE); {"\tt (,{,}WBLE)" at (last [],S)}
+ move right_
+ dswitch(,,WBoKEL); {"\tt (,{,}WBoKEL)" at (last [],S)}
+ }
+.PE
diff --git a/graphics/circuit_macros/doc/Tgate.tex b/graphics/circuit_macros/doc/Tgate.tex
new file mode 100644
index 0000000000..3dfb1c06b9
--- /dev/null
+++ b/graphics/circuit_macros/doc/Tgate.tex
@@ -0,0 +1,117 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.927778,0.231958)
+ --(1.230609,0.231958)\dpicstop
+\dpicdraw (1.230609,0.231958)
+ --(1.230609,0.273624)
+ --(1.297243,0.231958)
+ --(1.230609,0.190291)
+ --(1.230609,0.231958)\dpicstop
+\dpicdraw (1.374947,0.231958)
+ --(1.374947,0.273624)
+ --(1.308313,0.231958)
+ --(1.374947,0.190291)
+ --(1.374947,0.231958)\dpicstop
+\dpicdraw (1.374947,0.231958)
+ --(1.677778,0.231958)\dpicstop
+\dpicdraw[line width=0.4bp](1.302778,0.256014) circle (0.007103in)\dpicstop
+\dpicdraw (1.302778,0.274056)
+ --(1.302778,0.340211)\dpicstop
+\dpicdraw (1.302778,0.231958)
+ --(1.302778,0.159789)\dpicstop
+\draw (0.927778,0.231958) node[left=-2bp]{$A$};
+\draw (1.677778,0.231958) node[right=-2bp]{$B$};
+\draw (1.302778,0.159789) node[below right=-2bp]{$G$};
+\draw (1.302778,0.340211) node[above right=-2bp]{$Gb$};
+\draw (0.677778,0.231958) node[left=-2bp]{\tt tgate};
+\dpicdraw (0.927778,-0.231958)
+ --(1.230609,-0.231958)\dpicstop
+\dpicdraw (1.230609,-0.231958)
+ --(1.230609,-0.190291)
+ --(1.297243,-0.231958)
+ --(1.230609,-0.273624)
+ --(1.230609,-0.231958)\dpicstop
+\dpicdraw (1.374947,-0.231958)
+ --(1.374947,-0.190291)
+ --(1.308313,-0.231958)
+ --(1.374947,-0.273624)
+ --(1.374947,-0.231958)\dpicstop
+\dpicdraw (1.374947,-0.231958)
+ --(1.677778,-0.231958)\dpicstop
+\dpicdraw[line width=0.4bp](1.302778,-0.256014) circle (0.007103in)\dpicstop
+\dpicdraw (1.302778,-0.274056)
+ --(1.302778,-0.340211)\dpicstop
+\dpicdraw (1.302778,-0.231958)
+ --(1.302778,-0.159789)\dpicstop
+\draw (0.927778,-0.231958) node[left=-2bp]{$A$};
+\draw (1.677778,-0.231958) node[right=-2bp]{$B$};
+\draw (1.302778,-0.159789) node[above right=-2bp]{$G$};
+\draw (1.302778,-0.340211) node[below right=-2bp]{$Gb$};
+\draw (0.677778,-0.231958) node[left=-2bp]{\tt tgate(,L)};
+\dpicdraw (2.177778,0.018042)
+ --(2.427778,0.018042)\dpicstop
+\dpicdraw (2.677778,0.018042)
+ --(2.677778,0.068042)
+ --(2.427778,0.068042)
+ --(2.427778,-0.031958)
+ --(2.677778,-0.031958)
+ --(2.677778,0.018042)\dpicstop
+\dpicdraw (2.677778,0.018042)
+ --(2.927778,0.018042)\dpicstop
+\dpicdraw (2.552778,-0.031958)
+ --(2.552778,-0.131958)\dpicstop
+\draw (2.177778,0.018042) node[left=-2bp]{$A$};
+\draw (2.927778,0.018042) node[right=-2bp]{$B$};
+\draw (2.552778,-0.131958) node[right=-2bp]{$G$};
+\draw (2.552778,-0.270847) node[below=-2bp]{\tt tgate(,B)};
+\dpicdraw (3.455556,0.284789)
+ --(3.747222,0.284789)\dpicstop
+\dpicdraw (3.747222,0.284789)
+ --(3.913889,0.368122)
+ --(3.913889,0.201456)
+ --(3.747222,0.284789)\dpicstop
+\dpicdraw (3.913889,0.284789)
+ --(3.747222,0.368122)
+ --(3.747222,0.201456)
+ --(3.913889,0.284789)\dpicstop
+\dpicdraw[line width=0.4bp](3.830556,0.354233) circle (0.008202in)\dpicstop
+\dpicdraw (3.830556,0.375067)
+ --(3.830556,0.451456)\dpicstop
+\dpicdraw (3.830556,0.243122)
+ --(3.830556,0.159789)\dpicstop
+\dpicdraw (3.913889,0.284789)
+ --(4.205556,0.284789)\dpicstop
+\draw (3.455556,0.284789) node[left=-2bp]{$A$};
+\draw (4.205556,0.284789) node[right=-2bp]{$B$};
+\draw (3.830556,0.159789) node[below left=-2bp]{$G$};
+\draw (3.830556,0.451456) node[left=-2bp]{$Gb$};
+\draw (4.455556,0.284789) node[right=-2bp]{\tt ptrans};
+\dpicdraw (3.455556,-0.173544)
+ --(3.747222,-0.173544)\dpicstop
+\dpicdraw (3.747222,-0.173544)
+ --(3.913889,-0.090211)
+ --(3.913889,-0.256878)
+ --(3.747222,-0.173544)\dpicstop
+\dpicdraw (3.913889,-0.173544)
+ --(3.747222,-0.090211)
+ --(3.747222,-0.256878)
+ --(3.913889,-0.173544)\dpicstop
+\dpicdraw[line width=0.4bp](3.830556,-0.242989) circle (0.008202in)\dpicstop
+\dpicdraw (3.830556,-0.263822)
+ --(3.830556,-0.340211)\dpicstop
+\dpicdraw (3.830556,-0.131878)
+ --(3.830556,-0.048544)\dpicstop
+\dpicdraw (3.913889,-0.173544)
+ --(4.205556,-0.173544)\dpicstop
+\draw (3.455556,-0.173544) node[left=-2bp]{$A$};
+\draw (4.205556,-0.173544) node[right=-2bp]{$B$};
+\draw (3.830556,-0.048544) node[above right=-2bp]{$G$};
+\draw (3.830556,-0.340211) node[below right=-2bp]{$Gb$};
+\draw (4.455556,-0.173544) node[right=-2bp]{\tt ptrans(,L)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Tgate.m4 b/graphics/circuit_macros/doc/TgateMan.m4
index ff42cecb8d..ff42cecb8d 100644
--- a/graphics/circuit_macros/doc/Tgate.m4
+++ b/graphics/circuit_macros/doc/TgateMan.m4
diff --git a/graphics/circuit_macros/doc/Ttree.m4 b/graphics/circuit_macros/doc/Ttree.m4
deleted file mode 100644
index 6cf9203b00..0000000000
--- a/graphics/circuit_macros/doc/Ttree.m4
+++ /dev/null
@@ -1,56 +0,0 @@
-.PS
-# Ttree.m4
-# A binary tree using m4
-gen_init
-sinclude(tst.dim)
-s_init(Ttree)
-
-# `Node(no in row, head [location],
-# displacement of top of body (.n) wrt head,
-# body Node 1, body Node 2, ...) '
-define(`Node',`
- Head`$1': `$2'
- ifelse(`$3',,,`Body`$1': [
- Loopover_(`v',`v; define(`m4ct',m4Lx)',shift(shift(shift($@))))
- ] with .n at Head`$1' + `$3'
- connect(`$1',m4ct)')')
-
-define(`connect',`Bot: move from Head$1.sw to Head$1.se
-for_(1,`$2',1,
- `Top: move from Body$1.Head`'m4x.nw to Body$1.Head`'m4x.ne
- Move: move from Head$1 to Body$1.Head`'m4x
- if Bot.len*Top.len*Move.len > 0 then {
- line from Intersect_(Move,Top) to Intersect_(Move,Bot)}')')
-
- vsep = 0.75
-
- Node(1,s_box($`h(h(h(x_1,x_2),h(x_3,x_4)),h(h(x_5,x_6),h(x_7,x_8)))'$),
- (0,-vsep),
- Node(1,s_box($`h(h(x_1,x_2),h(x_3,x_4))'$),
- (0,-vsep),
- Node(1,s_box($`h(x_1,x_2)'$),
- (0,-vsep),
- Node(1,s_box($`x_1:=((A,pk_A),h_1)'$)),
- Node(2,s_box($`x_2:=((B,pk_B),h_2)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3))),
- Node(2,s_box($`h(x_3,x_4)'$) with .nw at Head1.ne+(Body1.wid/2+0.1,0),
- (0,-vsep),
- Node(1,s_box($`x_3:=((A,pk_A^\prime),h_3)'$)),
- Node(2,s_box($`x_4:=((D,pk_D),h_4)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3)))),
- Node(2,s_box($`h(h(x_5,x_6),h(x_7,x_8))'$) \
- with .nw at Head1.ne+(Body1.wid/2,0),
- (0,-vsep),
- Node(1,s_box($`h(x_5,x_6)'$),
- (0,-vsep*5/4),
- Node(1,s_box($`x_5:=((E,pk_E),h_5)'$)),
- Node(2,s_box($`x_6:=((H,pk_H),h_6)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3))),
- Node(2,s_box($`h(x_7,x_8)'$) with .nw at Head1.ne+(Body1.wid/2+0.1,0),
- (0,-vsep*5/4),
- Node(1,s_box($`x_7:=((D,pk_D^\prime),h_7)'$)),
- Node(2,s_box($`x_8:=((K,pk_K),h_8)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3))),
- Node(3,s_box($`h(x_9)'$) at 0.5 between Head1 and Head2)))
-
-.PE
diff --git a/graphics/circuit_macros/doc/Variable.tex b/graphics/circuit_macros/doc/Variable.tex
new file mode 100644
index 0000000000..585087d5e0
--- /dev/null
+++ b/graphics/circuit_macros/doc/Variable.tex
@@ -0,0 +1,306 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (-1.01349,0)
+ --(-1.01349,-0.225)\dpicstop
+\dpicdraw (-1.096823,-0.225)
+ --(-0.930157,-0.225)\dpicstop
+\dpicdraw (-1.096823,-0.275)
+ --(-0.930157,-0.275)\dpicstop
+\dpicdraw (-1.01349,-0.275)
+ --(-1.01349,-0.5)\dpicstop
+\filldraw[line width=0bp](-0.925102,-0.196967)
+ --(-0.872069,-0.108579)
+ --(-0.960457,-0.161612) --cycle\dpicstop
+\dpicdraw (-1.154911,-0.391421)
+ --(-0.888266,-0.124776)\dpicstop
+\dpicdraw (-0.51349,0)
+ --(-0.51349,-0.125)
+ --(-0.471823,-0.145833)
+ --(-0.555157,-0.1875)
+ --(-0.471823,-0.229167)
+ --(-0.555157,-0.270833)
+ --(-0.471823,-0.3125)
+ --(-0.555157,-0.354167)
+ --(-0.51349,-0.375)
+ --(-0.51349,-0.5)\dpicstop
+\dpicdraw (-0.654911,-0.391421)
+ --(-0.372069,-0.108579)\dpicstop
+\dpicdraw (-0.372069,-0.108579)
+ --(-0.372069,-0.025245)\dpicstop
+\dpicdraw (-0.01349,0)
+ --(-0.01349,-0.225)\dpicstop
+\dpicdraw (-0.07599,-0.225)
+ --(0.04901,-0.225)\dpicstop
+\dpicdraw (-0.07599,-0.275)
+ ..controls (-0.037315,-0.252671) and (0.010335,-0.252671)
+ ..(0.04901,-0.275)\dpicstop
+\dpicdraw (-0.01349,-0.258253)
+ --(-0.01349,-0.5)\dpicstop
+\filldraw[line width=0bp](0.074898,-0.196967)
+ --(0.127931,-0.108579)
+ --(0.039543,-0.161612) --cycle\dpicstop
+\dpicdraw (-0.154911,-0.391421)
+ --(0.111734,-0.124776)\dpicstop
+\dpicdraw (0.48651,0)
+ --(0.48651,-0.125)\dpicstop
+\dpicdraw (0.48651,-0.125)
+ --(0.480955,-0.125)\dpicstop
+\dpicdraw (0.48651,-0.125)
+ ..controls (0.503769,-0.125) and (0.51776,-0.138991)
+ ..(0.51776,-0.15625)
+ ..controls (0.51776,-0.173509) and (0.503769,-0.1875)
+ ..(0.48651,-0.1875)\dpicstop
+\dpicdraw (0.48651,-0.1875)
+ --(0.480955,-0.1875)\dpicstop
+\dpicdraw (0.48651,-0.1875)
+ ..controls (0.503769,-0.1875) and (0.51776,-0.201491)
+ ..(0.51776,-0.21875)
+ ..controls (0.51776,-0.236009) and (0.503769,-0.25)
+ ..(0.48651,-0.25)\dpicstop
+\dpicdraw (0.48651,-0.25)
+ --(0.480955,-0.25)\dpicstop
+\dpicdraw (0.48651,-0.25)
+ ..controls (0.503769,-0.25) and (0.51776,-0.263991)
+ ..(0.51776,-0.28125)
+ ..controls (0.51776,-0.298509) and (0.503769,-0.3125)
+ ..(0.48651,-0.3125)\dpicstop
+\dpicdraw (0.48651,-0.3125)
+ --(0.480955,-0.3125)\dpicstop
+\dpicdraw (0.48651,-0.3125)
+ ..controls (0.503769,-0.3125) and (0.51776,-0.326491)
+ ..(0.51776,-0.34375)
+ ..controls (0.51776,-0.361009) and (0.503769,-0.375)
+ ..(0.48651,-0.375)\dpicstop
+\dpicdraw (0.48651,-0.375)
+ --(0.480955,-0.375)\dpicstop
+\dpicdraw (0.48651,-0.375)
+ --(0.48651,-0.5)\dpicstop
+\filldraw[line width=0bp](0.590523,-0.196967)
+ --(0.643556,-0.108579)
+ --(0.555168,-0.161612) --cycle\dpicstop
+\dpicdraw (0.360714,-0.391421)
+ --(0.627359,-0.124776)\dpicstop
+\dpicdraw (0.98651,0)
+ --(0.98651,-0.108266)\dpicstop
+\dpicdraw[line width=0.4bp](0.98651,-0.108266) circle (0.00109in)\dpicstop
+\dpicdraw (0.98651,-0.108266)
+ ..controls (1.024082,-0.090746) and (1.065429,-0.123931)
+ ..(1.056456,-0.164404)
+ ..controls (1.047483,-0.204877) and (0.995986,-0.217478)
+ ..(0.969339,-0.185721)\dpicstop
+\dpicdraw[line width=0.4bp](0.969339,-0.185721) circle (0.00109in)\dpicstop
+\dpicdraw (0.969339,-0.185721)
+ ..controls (0.999344,-0.149962) and (1.057641,-0.17118)
+ ..(1.057641,-0.217861)
+ ..controls (1.057641,-0.264541) and (0.999344,-0.285759)
+ ..(0.969339,-0.25)\dpicstop
+\dpicdraw[line width=0.4bp](0.969339,-0.25) circle (0.00109in)\dpicstop
+\dpicdraw (0.969339,-0.25)
+ ..controls (0.999344,-0.214241) and (1.057641,-0.235459)
+ ..(1.057641,-0.282139)
+ ..controls (1.057641,-0.32882) and (0.999344,-0.350038)
+ ..(0.969339,-0.314279)\dpicstop
+\dpicdraw[line width=0.4bp](0.969339,-0.314279) circle (0.00109in)\dpicstop
+\dpicdraw (0.969339,-0.314279)
+ ..controls (0.995986,-0.282522) and (1.047483,-0.295123)
+ ..(1.056456,-0.335596)
+ ..controls (1.065429,-0.376069) and (1.024082,-0.409254)
+ ..(0.98651,-0.391734)\dpicstop
+\dpicdraw[line width=0.4bp](0.98651,-0.391734) circle (0.00109in)\dpicstop
+\dpicdraw (0.98651,-0.391734)
+ --(0.98651,-0.5)\dpicstop
+\filldraw[line width=0bp](1.101878,-0.196967)
+ --(1.154911,-0.108579)
+ --(1.066523,-0.161612) --cycle\dpicstop
+\dpicdraw (0.872069,-0.391421)
+ --(1.138714,-0.124776)\dpicstop
+\draw (2.804911,0.520711) node{\tt C};
+\draw (3.554911,0.520711) node{\tt S};
+\draw (1.679911,0.320711) node{\tt A};
+\dpicdraw (1.804911,0.320711)
+ --(2.029911,0.320711)\dpicstop
+\dpicdraw (2.029911,0.258211)
+ --(2.029911,0.383211)\dpicstop
+\dpicdraw (2.079911,0.258211)
+ ..controls (2.057582,0.296886) and (2.057582,0.344536)
+ ..(2.079911,0.383211)\dpicstop
+\dpicdraw (2.063164,0.320711)
+ --(2.304911,0.320711)\dpicstop
+\filldraw[line width=0bp](2.1433,0.373744)
+ --(2.196333,0.462132)
+ --(2.107944,0.409099) --cycle\dpicstop
+\dpicdraw (1.91349,0.179289)
+ --(2.180136,0.445935)\dpicstop
+\dpicdraw (2.554911,0.320711)
+ --(2.779911,0.320711)\dpicstop
+\dpicdraw (2.779911,0.258211)
+ --(2.779911,0.383211)\dpicstop
+\dpicdraw (2.829911,0.258211)
+ ..controls (2.807582,0.296886) and (2.807582,0.344536)
+ ..(2.829911,0.383211)\dpicstop
+\dpicdraw (2.813164,0.320711)
+ --(3.054911,0.320711)\dpicstop
+\filldraw[line width=0bp](2.8933,0.373744)
+ --(2.946333,0.462132)
+ --(2.857944,0.409099) --cycle\dpicstop
+\dpicdraw (2.66349,0.179289)
+ --(2.930136,0.445935)\dpicstop
+\dpicdraw (2.996333,0.432132)
+ --(3.055258,0.491058)\dpicstop
+\dpicdraw (3.304911,0.320711)
+ --(3.529911,0.320711)\dpicstop
+\dpicdraw (3.529911,0.258211)
+ --(3.529911,0.383211)\dpicstop
+\dpicdraw (3.579911,0.258211)
+ ..controls (3.557582,0.296886) and (3.557582,0.344536)
+ ..(3.579911,0.383211)\dpicstop
+\dpicdraw (3.563164,0.320711)
+ --(3.804911,0.320711)\dpicstop
+\filldraw[line width=0bp](3.6433,0.373744)
+ --(3.696333,0.462132)
+ --(3.607944,0.409099) --cycle\dpicstop
+\dpicdraw (3.41349,0.179289)
+ --(3.680136,0.445935)\dpicstop
+\dpicdraw (3.746333,0.402132)
+ --(3.746333,0.432132)
+ --(3.806333,0.432132)
+ --(3.806333,0.462132)\dpicstop
+\draw (1.679911,-0.079289) node{\tt P};
+\dpicdraw (1.804911,-0.079289)
+ --(2.029911,-0.079289)\dpicstop
+\dpicdraw (2.029911,-0.141789)
+ --(2.029911,-0.016789)\dpicstop
+\dpicdraw (2.079911,-0.141789)
+ ..controls (2.057582,-0.103114) and (2.057582,-0.055464)
+ ..(2.079911,-0.016789)\dpicstop
+\dpicdraw (2.063164,-0.079289)
+ --(2.304911,-0.079289)\dpicstop
+\dpicdraw (1.91349,-0.220711)
+ --(2.196333,0.062132)\dpicstop
+\dpicdraw (2.16687,0.091595)
+ --(2.225795,0.032669)\dpicstop
+\dpicdraw (2.554911,-0.079289)
+ --(2.779911,-0.079289)\dpicstop
+\dpicdraw (2.779911,-0.141789)
+ --(2.779911,-0.016789)\dpicstop
+\dpicdraw (2.829911,-0.141789)
+ ..controls (2.807582,-0.103114) and (2.807582,-0.055464)
+ ..(2.829911,-0.016789)\dpicstop
+\dpicdraw (2.813164,-0.079289)
+ --(3.054911,-0.079289)\dpicstop
+\dpicdraw (2.66349,-0.220711)
+ --(2.946333,0.062132)\dpicstop
+\dpicdraw (2.91687,0.091595)
+ --(2.975795,0.032669)\dpicstop
+\dpicdraw (2.996333,0.032132)
+ --(3.055258,0.091058)\dpicstop
+\dpicdraw (3.304911,-0.079289)
+ --(3.529911,-0.079289)\dpicstop
+\dpicdraw (3.529911,-0.141789)
+ --(3.529911,-0.016789)\dpicstop
+\dpicdraw (3.579911,-0.141789)
+ ..controls (3.557582,-0.103114) and (3.557582,-0.055464)
+ ..(3.579911,-0.016789)\dpicstop
+\dpicdraw (3.563164,-0.079289)
+ --(3.804911,-0.079289)\dpicstop
+\dpicdraw (3.41349,-0.220711)
+ --(3.696333,0.062132)\dpicstop
+\dpicdraw (3.66687,0.091595)
+ --(3.725795,0.032669)\dpicstop
+\dpicdraw (3.746333,0.002132)
+ --(3.746333,0.032132)
+ --(3.806333,0.032132)
+ --(3.806333,0.062132)\dpicstop
+\draw (1.679911,-0.479289) node{\tt L};
+\dpicdraw (1.804911,-0.479289)
+ --(2.029911,-0.479289)\dpicstop
+\dpicdraw (2.029911,-0.541789)
+ --(2.029911,-0.416789)\dpicstop
+\dpicdraw (2.079911,-0.541789)
+ ..controls (2.057582,-0.503114) and (2.057582,-0.455464)
+ ..(2.079911,-0.416789)\dpicstop
+\dpicdraw (2.063164,-0.479289)
+ --(2.304911,-0.479289)\dpicstop
+\dpicdraw (1.91349,-0.620711)
+ --(2.196333,-0.337868)\dpicstop
+\dpicdraw (2.554911,-0.479289)
+ --(2.779911,-0.479289)\dpicstop
+\dpicdraw (2.779911,-0.541789)
+ --(2.779911,-0.416789)\dpicstop
+\dpicdraw (2.829911,-0.541789)
+ ..controls (2.807582,-0.503114) and (2.807582,-0.455464)
+ ..(2.829911,-0.416789)\dpicstop
+\dpicdraw (2.813164,-0.479289)
+ --(3.054911,-0.479289)\dpicstop
+\dpicdraw (2.66349,-0.620711)
+ --(2.946333,-0.337868)\dpicstop
+\dpicdraw (2.996333,-0.367868)
+ --(3.055258,-0.308942)\dpicstop
+\dpicdraw (3.304911,-0.479289)
+ --(3.529911,-0.479289)\dpicstop
+\dpicdraw (3.529911,-0.541789)
+ --(3.529911,-0.416789)\dpicstop
+\dpicdraw (3.579911,-0.541789)
+ ..controls (3.557582,-0.503114) and (3.557582,-0.455464)
+ ..(3.579911,-0.416789)\dpicstop
+\dpicdraw (3.563164,-0.479289)
+ --(3.804911,-0.479289)\dpicstop
+\dpicdraw (3.41349,-0.620711)
+ --(3.696333,-0.337868)\dpicstop
+\dpicdraw (3.746333,-0.397868)
+ --(3.746333,-0.367868)
+ --(3.806333,-0.367868)
+ --(3.806333,-0.337868)\dpicstop
+\draw (1.679911,-0.879289) node{\tt N};
+\dpicdraw (1.804911,-0.879289)
+ --(2.029911,-0.879289)\dpicstop
+\dpicdraw (2.029911,-0.941789)
+ --(2.029911,-0.816789)\dpicstop
+\dpicdraw (2.079911,-0.941789)
+ ..controls (2.057582,-0.903114) and (2.057582,-0.855464)
+ ..(2.079911,-0.816789)\dpicstop
+\dpicdraw (2.063164,-0.879289)
+ --(2.304911,-0.879289)\dpicstop
+\dpicdraw (1.91349,-1.020711)
+ --(2.196333,-0.737868)\dpicstop
+\dpicdraw (1.91349,-1.020711)
+ --(1.830157,-1.020711)\dpicstop
+\dpicdraw (2.554911,-0.879289)
+ --(2.779911,-0.879289)\dpicstop
+\dpicdraw (2.779911,-0.941789)
+ --(2.779911,-0.816789)\dpicstop
+\dpicdraw (2.829911,-0.941789)
+ ..controls (2.807582,-0.903114) and (2.807582,-0.855464)
+ ..(2.829911,-0.816789)\dpicstop
+\dpicdraw (2.813164,-0.879289)
+ --(3.054911,-0.879289)\dpicstop
+\dpicdraw (2.66349,-1.020711)
+ --(2.946333,-0.737868)\dpicstop
+\dpicdraw (2.66349,-1.020711)
+ --(2.580157,-1.020711)\dpicstop
+\dpicdraw (2.996333,-0.767868)
+ --(3.055258,-0.708942)\dpicstop
+\dpicdraw (3.304911,-0.879289)
+ --(3.529911,-0.879289)\dpicstop
+\dpicdraw (3.529911,-0.941789)
+ --(3.529911,-0.816789)\dpicstop
+\dpicdraw (3.579911,-0.941789)
+ ..controls (3.557582,-0.903114) and (3.557582,-0.855464)
+ ..(3.579911,-0.816789)\dpicstop
+\dpicdraw (3.563164,-0.879289)
+ --(3.804911,-0.879289)\dpicstop
+\dpicdraw (3.41349,-1.020711)
+ --(3.696333,-0.737868)\dpicstop
+\dpicdraw (3.41349,-1.020711)
+ --(3.330157,-1.020711)\dpicstop
+\dpicdraw (3.746333,-0.797868)
+ --(3.746333,-0.767868)
+ --(3.806333,-0.767868)
+ --(3.806333,-0.737868)\dpicstop
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Variable.m4 b/graphics/circuit_macros/doc/VariableMan.m4
index 6fac01e164..e52e30913d 100644
--- a/graphics/circuit_macros/doc/Variable.m4
+++ b/graphics/circuit_macros/doc/VariableMan.m4
@@ -3,11 +3,11 @@
cct_init
define(`elen_',dimen_); down_
-[ { variable(`capacitor') }; move right
- { variable(`resistor',uN) }; move right
- { variable(`capacitor(,C)') }; move right
- { variable(`inductor') }; move right
- { variable(`inductor(,W)') }
+[ { variable(`resistor',A) }; {"A" at last line.end below}; move right
+ { variable(`resistor',N) }; {"N" at last line.end below}; move right
+ { variable(`resistor',uN) }; {"uN" at last line.end below}; move right
+ { variable(`resistor',NN) }; {"uN" at last line.end below}; move right
+ { variable(`resistor',uNN) }; {"uNN" at last line.end below}; #; move right
]
[
skp = 0.4
diff --git a/graphics/circuit_macros/doc/Version.tex b/graphics/circuit_macros/doc/Version.tex
index 4bb8dbffa5..ca449b0a0b 100644
--- a/graphics/circuit_macros/doc/Version.tex
+++ b/graphics/circuit_macros/doc/Version.tex
@@ -1 +1 @@
-Version 9.2
+Version 9.3
diff --git a/graphics/circuit_macros/doc/Windings.m4 b/graphics/circuit_macros/doc/WindingsMan.m4
index 0c1ff4b87b..0c1ff4b87b 100644
--- a/graphics/circuit_macros/doc/Windings.m4
+++ b/graphics/circuit_macros/doc/WindingsMan.m4
diff --git a/graphics/circuit_macros/doc/Xform.tex b/graphics/circuit_macros/doc/Xform.tex
new file mode 100644
index 0000000000..6c527c38cc
--- /dev/null
+++ b/graphics/circuit_macros/doc/Xform.tex
@@ -0,0 +1,648 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (-0.104167,-0)
+ --(-0.104167,-0.041667)\dpicstop
+\dpicdraw (-0.104167,-0.041667)
+ --(-0.109722,-0.041667)\dpicstop
+\dpicdraw (-0.104167,-0.041667)
+ ..controls (-0.086908,-0.041667) and (-0.072917,-0.055658)
+ ..(-0.072917,-0.072917)
+ ..controls (-0.072917,-0.090176) and (-0.086908,-0.104167)
+ ..(-0.104167,-0.104167)\dpicstop
+\dpicdraw (-0.104167,-0.104167)
+ --(-0.109722,-0.104167)\dpicstop
+\dpicdraw (-0.104167,-0.104167)
+ ..controls (-0.086908,-0.104167) and (-0.072917,-0.118158)
+ ..(-0.072917,-0.135417)
+ ..controls (-0.072917,-0.152676) and (-0.086908,-0.166667)
+ ..(-0.104167,-0.166667)\dpicstop
+\dpicdraw (-0.104167,-0.166667)
+ --(-0.109722,-0.166667)\dpicstop
+\dpicdraw (-0.104167,-0.166667)
+ ..controls (-0.086908,-0.166667) and (-0.072917,-0.180658)
+ ..(-0.072917,-0.197917)
+ ..controls (-0.072917,-0.215176) and (-0.086908,-0.229167)
+ ..(-0.104167,-0.229167)\dpicstop
+\dpicdraw (-0.104167,-0.229167)
+ --(-0.109722,-0.229167)\dpicstop
+\dpicdraw (-0.104167,-0.229167)
+ ..controls (-0.0625,-0.229167) and (-0.0625,-0.291667)
+ ..(-0.104167,-0.291667)\dpicstop
+\dpicdraw (-0.104167,-0.291667)
+ --(-0.109722,-0.291667)\dpicstop
+\dpicdraw (-0.104167,-0.291667)
+ --(-0.104167,-0.333333)\dpicstop
+\dpicdraw (-0.03125,-0.041667)
+ --(-0.03125,-0.291667)\dpicstop
+\dpicdraw (0.03125,-0.041667)
+ --(0.03125,-0.291667)\dpicstop
+\dpicdraw (0.104167,-0.333333)
+ --(0.104167,-0.291667)\dpicstop
+\dpicdraw (0.104167,-0.291667)
+ --(0.109722,-0.291667)\dpicstop
+\dpicdraw (0.104167,-0.291667)
+ ..controls (0.0625,-0.291667) and (0.0625,-0.229167)
+ ..(0.104167,-0.229167)\dpicstop
+\dpicdraw (0.104167,-0.229167)
+ --(0.109722,-0.229167)\dpicstop
+\dpicdraw (0.104167,-0.229167)
+ ..controls (0.0625,-0.229167) and (0.0625,-0.166667)
+ ..(0.104167,-0.166667)\dpicstop
+\dpicdraw (0.104167,-0.166667)
+ --(0.109722,-0.166667)\dpicstop
+\dpicdraw (0.104167,-0.166667)
+ ..controls (0.0625,-0.166667) and (0.0625,-0.104167)
+ ..(0.104167,-0.104167)\dpicstop
+\dpicdraw (0.104167,-0.104167)
+ --(0.109722,-0.104167)\dpicstop
+\dpicdraw (0.104167,-0.104167)
+ ..controls (0.0625,-0.104167) and (0.0625,-0.041667)
+ ..(0.104167,-0.041667)\dpicstop
+\dpicdraw (0.104167,-0.041667)
+ --(0.109722,-0.041667)\dpicstop
+\dpicdraw (0.104167,-0.041667)
+ --(0.104167,0)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](-0.183488,0.024269)
+ --(-0.116032,0.007119)
+ --(-0.162908,0.058569) --cycle\dpicstop
+\dpicdraw (-0.13261,0.017066)
+ --(-0.212302,0.064881)\dpicstop
+\draw (-0.212302,0.064881) node[left=-2bp]{\sl P1};
+\filldraw[line width=0bp](-0.162908,-0.391902)
+ --(-0.116032,-0.340452)
+ --(-0.183488,-0.357602) --cycle\dpicstop
+\dpicdraw (-0.13261,-0.3504)
+ --(-0.212302,-0.398214)\dpicstop
+\draw (-0.212302,-0.398214) node[left=-2bp]{\sl P2};
+\filldraw[line width=0bp](-0.18467,-0.186667)
+ --(-0.118004,-0.166667)
+ --(-0.18467,-0.146667) --cycle\dpicstop
+\dpicdraw (-0.137338,-0.166667)
+ --(-0.21033,-0.166667)\dpicstop
+\draw (-0.21033,-0.166667) node[left=-2bp]{\sl TP};
+\filldraw[line width=0bp](0.162908,0.058569)
+ --(0.116032,0.007119)
+ --(0.183488,0.024269) --cycle\dpicstop
+\dpicdraw (0.13261,0.017066)
+ --(0.212302,0.064881)\dpicstop
+\draw (0.212302,0.064881) node[right=-2bp]{\sl S1};
+\filldraw[line width=0bp](0.183488,-0.357602)
+ --(0.116032,-0.340452)
+ --(0.162908,-0.391902) --cycle\dpicstop
+\dpicdraw (0.13261,-0.3504)
+ --(0.212302,-0.398214)\dpicstop
+\draw (0.212302,-0.398214) node[right=-2bp]{\sl S2};
+\filldraw[line width=0bp](0.18467,-0.146667)
+ --(0.118004,-0.166667)
+ --(0.18467,-0.186667) --cycle\dpicstop
+\dpicdraw (0.137338,-0.166667)
+ --(0.21033,-0.166667)\dpicstop
+\draw (0.21033,-0.166667) node[right=-2bp]{\sl TS};
+\draw (0,-0.633333) node{\tt transformer};
+\dpiclw=0.8bp
+\dpicdraw (1.115278,0.133333)
+ --(1.115278,-0.104167)\dpicstop
+\dpicdraw (1.115278,-0.104167)
+ --(1.109722,-0.104167)\dpicstop
+\dpicdraw (1.115278,-0.104167)
+ ..controls (1.132537,-0.104167) and (1.146528,-0.118158)
+ ..(1.146528,-0.135417)
+ ..controls (1.146528,-0.152676) and (1.132537,-0.166667)
+ ..(1.115278,-0.166667)\dpicstop
+\dpicdraw (1.115278,-0.166667)
+ --(1.109722,-0.166667)\dpicstop
+\dpicdraw (1.115278,-0.166667)
+ ..controls (1.132537,-0.166667) and (1.146528,-0.180658)
+ ..(1.146528,-0.197917)
+ ..controls (1.146528,-0.215176) and (1.132537,-0.229167)
+ ..(1.115278,-0.229167)\dpicstop
+\dpicdraw (1.115278,-0.229167)
+ --(1.109722,-0.229167)\dpicstop
+\dpicdraw (1.115278,-0.229167)
+ --(1.115278,-0.466667)\dpicstop
+\dpicdraw[dash pattern=on 0.025in off 0.025in](1.188194,0.083333)
+ --(1.188194,-0.416667)\dpicstop
+\dpicdraw[dash pattern=on 0.025in off 0.025in](1.250694,0.083333)
+ --(1.250694,-0.416667)\dpicstop
+\dpicdraw (1.323611,-0.416667)
+ --(1.323611,-0.416667)\dpicstop
+\dpicdraw (1.323611,-0.416667)
+ --(1.329167,-0.416667)\dpicstop
+\dpicdraw (1.323611,-0.416667)
+ ..controls (1.306352,-0.416667) and (1.292361,-0.402676)
+ ..(1.292361,-0.385417)
+ ..controls (1.292361,-0.368158) and (1.306352,-0.354167)
+ ..(1.323611,-0.354167)\dpicstop
+\dpicdraw (1.323611,-0.354167)
+ --(1.329167,-0.354167)\dpicstop
+\dpicdraw (1.323611,-0.354167)
+ ..controls (1.306352,-0.354167) and (1.292361,-0.340176)
+ ..(1.292361,-0.322917)
+ ..controls (1.292361,-0.305658) and (1.306352,-0.291667)
+ ..(1.323611,-0.291667)\dpicstop
+\dpicdraw (1.323611,-0.291667)
+ --(1.329167,-0.291667)\dpicstop
+\dpicdraw (1.323611,-0.291667)
+ ..controls (1.306352,-0.291667) and (1.292361,-0.277676)
+ ..(1.292361,-0.260417)
+ ..controls (1.292361,-0.243158) and (1.306352,-0.229167)
+ ..(1.323611,-0.229167)\dpicstop
+\dpicdraw (1.323611,-0.229167)
+ --(1.329167,-0.229167)\dpicstop
+\dpicdraw (1.323611,-0.229167)
+ ..controls (1.306352,-0.229167) and (1.292361,-0.215176)
+ ..(1.292361,-0.197917)
+ ..controls (1.292361,-0.180658) and (1.306352,-0.166667)
+ ..(1.323611,-0.166667)\dpicstop
+\dpicdraw (1.323611,-0.166667)
+ --(1.329167,-0.166667)\dpicstop
+\dpicdraw (1.323611,-0.166667)
+ ..controls (1.306352,-0.166667) and (1.292361,-0.152676)
+ ..(1.292361,-0.135417)
+ ..controls (1.292361,-0.118158) and (1.306352,-0.104167)
+ ..(1.323611,-0.104167)\dpicstop
+\dpicdraw (1.323611,-0.104167)
+ --(1.329167,-0.104167)\dpicstop
+\dpicdraw (1.323611,-0.104167)
+ ..controls (1.306352,-0.104167) and (1.292361,-0.090176)
+ ..(1.292361,-0.072917)
+ ..controls (1.292361,-0.055658) and (1.306352,-0.041667)
+ ..(1.323611,-0.041667)\dpicstop
+\dpicdraw (1.323611,-0.041667)
+ --(1.329167,-0.041667)\dpicstop
+\dpicdraw (1.323611,-0.041667)
+ ..controls (1.306352,-0.041667) and (1.292361,-0.027676)
+ ..(1.292361,-0.010417)
+ ..controls (1.292361,0.006842) and (1.306352,0.020833)
+ ..(1.323611,0.020833)\dpicstop
+\dpicdraw (1.323611,0.020833)
+ --(1.329167,0.020833)\dpicstop
+\dpicdraw (1.323611,0.020833)
+ ..controls (1.306352,0.020833) and (1.292361,0.034824)
+ ..(1.292361,0.052083)
+ ..controls (1.292361,0.069342) and (1.306352,0.083333)
+ ..(1.323611,0.083333)\dpicstop
+\dpicdraw (1.323611,0.083333)
+ --(1.329167,0.083333)\dpicstop
+\dpicdraw (1.323611,0.083333)
+ --(1.323611,0.083333)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.035957,0.157602)
+ --(1.103413,0.140452)
+ --(1.056536,0.191902) --cycle\dpicstop
+\dpicdraw (1.086834,0.1504)
+ --(1.007143,0.198214)\dpicstop
+\draw (1.007143,0.198214) node[left=-2bp]{\sl P1};
+\filldraw[line width=0bp](1.056536,-0.525235)
+ --(1.103413,-0.473786)
+ --(1.035957,-0.490936) --cycle\dpicstop
+\dpicdraw (1.086834,-0.483733)
+ --(1.007143,-0.531548)\dpicstop
+\draw (1.007143,-0.531548) node[left=-2bp]{\sl P2};
+\filldraw[line width=0bp](1.034774,-0.186667)
+ --(1.101441,-0.166667)
+ --(1.034774,-0.146667) --cycle\dpicstop
+\dpicdraw (1.082107,-0.166667)
+ --(1.009115,-0.166667)\dpicstop
+\draw (1.009115,-0.166667) node[left=-2bp]{\sl TP};
+\filldraw[line width=0bp](1.382353,0.141902)
+ --(1.335476,0.090452)
+ --(1.402932,0.107602) --cycle\dpicstop
+\dpicdraw (1.352055,0.1004)
+ --(1.431746,0.148214)\dpicstop
+\draw (1.431746,0.148214) node[right=-2bp]{\sl S1};
+\filldraw[line width=0bp](1.402932,-0.440936)
+ --(1.335476,-0.423786)
+ --(1.382353,-0.475235) --cycle\dpicstop
+\dpicdraw (1.352055,-0.433733)
+ --(1.431746,-0.481548)\dpicstop
+\draw (1.431746,-0.481548) node[right=-2bp]{\sl S2};
+\filldraw[line width=0bp](1.404115,-0.146667)
+ --(1.337448,-0.166667)
+ --(1.404115,-0.186667) --cycle\dpicstop
+\dpicdraw (1.356782,-0.166667)
+ --(1.429774,-0.166667)\dpicstop
+\draw (1.429774,-0.166667) node[right=-2bp]{\sl TS};
+\draw (1.219444,-0.766667) node{\tt ...(down\_ 0.6,,2,P,8)};
+\dpiclw=0.8bp
+\dpicdraw (2.349105,0.086124)
+ --(2.349105,0.086124)\dpicstop
+\dpicdraw[line width=0.4bp](2.349105,0.086124) circle (0.00109in)\dpicstop
+\dpicdraw (2.349105,0.086124)
+ ..controls (2.386677,0.103644) and (2.428024,0.07046)
+ ..(2.419051,0.029987)
+ ..controls (2.410078,-0.010486) and (2.358581,-0.023088)
+ ..(2.331934,0.00867)\dpicstop
+\dpicdraw[line width=0.4bp](2.331934,0.00867) circle (0.00109in)\dpicstop
+\dpicdraw (2.331934,0.00867)
+ ..controls (2.36194,0.044429) and (2.420236,0.023211)
+ ..(2.420236,-0.02347)
+ ..controls (2.420236,-0.07015) and (2.36194,-0.091368)
+ ..(2.331934,-0.055609)\dpicstop
+\dpicdraw[line width=0.4bp](2.331934,-0.055609) circle (0.00109in)\dpicstop
+\dpicdraw (2.331934,-0.055609)
+ ..controls (2.36194,-0.01985) and (2.420236,-0.041068)
+ ..(2.420236,-0.087749)
+ ..controls (2.420236,-0.134429) and (2.36194,-0.155647)
+ ..(2.331934,-0.119888)\dpicstop
+\dpicdraw[line width=0.4bp](2.331934,-0.119888) circle (0.00109in)\dpicstop
+\dpicdraw (2.331934,-0.119888)
+ ..controls (2.36194,-0.084129) and (2.420236,-0.105347)
+ ..(2.420236,-0.152027)
+ ..controls (2.420236,-0.198708) and (2.36194,-0.219926)
+ ..(2.331934,-0.184167)\dpicstop
+\dpicdraw[line width=0.4bp](2.331934,-0.184167) circle (0.00109in)\dpicstop
+\dpicdraw (2.331934,-0.184167)
+ ..controls (2.36194,-0.148407) and (2.420236,-0.169626)
+ ..(2.420236,-0.216306)
+ ..controls (2.420236,-0.262987) and (2.36194,-0.284205)
+ ..(2.331934,-0.248445)\dpicstop
+\dpicdraw[line width=0.4bp](2.331934,-0.248445) circle (0.00109in)\dpicstop
+\dpicdraw (2.331934,-0.248445)
+ ..controls (2.36194,-0.212686) and (2.420236,-0.233904)
+ ..(2.420236,-0.280585)
+ ..controls (2.420236,-0.327265) and (2.36194,-0.348484)
+ ..(2.331934,-0.312724)\dpicstop
+\dpicdraw[line width=0.4bp](2.331934,-0.312724) circle (0.00109in)\dpicstop
+\dpicdraw (2.331934,-0.312724)
+ ..controls (2.36194,-0.276965) and (2.420236,-0.298183)
+ ..(2.420236,-0.344864)
+ ..controls (2.420236,-0.391544) and (2.36194,-0.412762)
+ ..(2.331934,-0.377003)\dpicstop
+\dpicdraw[line width=0.4bp](2.331934,-0.377003) circle (0.00109in)\dpicstop
+\dpicdraw (2.331934,-0.377003)
+ ..controls (2.358581,-0.345246) and (2.410078,-0.357847)
+ ..(2.419051,-0.39832)
+ ..controls (2.428024,-0.438794) and (2.386677,-0.471978)
+ ..(2.349105,-0.454458)\dpicstop
+\dpicdraw[line width=0.4bp](2.349105,-0.454458) circle (0.00109in)\dpicstop
+\dpicdraw (2.349105,-0.454458)
+ --(2.349105,-0.454458)\dpicstop
+\dpicdraw (2.461903,0.090809)
+ --(2.461903,-0.459142)\dpicstop
+\dpicdraw (2.524403,0.090809)
+ --(2.524403,-0.459142)\dpicstop
+\dpicdraw (2.637201,-0.330585)
+ --(2.637201,-0.3259)\dpicstop
+\dpicdraw[line width=0.4bp](2.637201,-0.3259) circle (0.00109in)\dpicstop
+\dpicdraw (2.637201,-0.3259)
+ ..controls (2.599629,-0.34342) and (2.558282,-0.310236)
+ ..(2.567255,-0.269763)
+ ..controls (2.576228,-0.22929) and (2.627724,-0.216688)
+ ..(2.654372,-0.248445)\dpicstop
+\dpicdraw[line width=0.4bp](2.654372,-0.248445) circle (0.00109in)\dpicstop
+\dpicdraw (2.654372,-0.248445)
+ ..controls (2.624366,-0.284205) and (2.56607,-0.262987)
+ ..(2.56607,-0.216306)
+ ..controls (2.56607,-0.169626) and (2.624366,-0.148407)
+ ..(2.654372,-0.184167)\dpicstop
+\dpicdraw[line width=0.4bp](2.654372,-0.184167) circle (0.00109in)\dpicstop
+\dpicdraw (2.654372,-0.184167)
+ ..controls (2.624366,-0.219926) and (2.56607,-0.198708)
+ ..(2.56607,-0.152027)
+ ..controls (2.56607,-0.105347) and (2.624366,-0.084129)
+ ..(2.654372,-0.119888)\dpicstop
+\dpicdraw[line width=0.4bp](2.654372,-0.119888) circle (0.00109in)\dpicstop
+\dpicdraw (2.654372,-0.119888)
+ ..controls (2.627724,-0.151645) and (2.576228,-0.139044)
+ ..(2.567255,-0.098571)
+ ..controls (2.558282,-0.058097) and (2.599629,-0.024913)
+ ..(2.637201,-0.042433)\dpicstop
+\dpicdraw[line width=0.4bp](2.637201,-0.042433) circle (0.00109in)\dpicstop
+\dpicdraw (2.637201,-0.042433)
+ --(2.637201,-0.037749)\dpicstop
+\dpicdraw[fill=black](2.380355,0.115809) circle (0.003937in)\dpicstop
+\dpicdraw[fill=black](2.605951,-0.355585) circle (0.003937in)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](2.269784,0.110393)
+ --(2.33724,0.093243)
+ --(2.290364,0.144693) --cycle\dpicstop
+\dpicdraw (2.320662,0.103191)
+ --(2.240971,0.151005)\dpicstop
+\draw (2.240971,0.151005) node[left=-2bp]{\sl P1};
+\filldraw[line width=0bp](2.290364,-0.513026)
+ --(2.33724,-0.461577)
+ --(2.269784,-0.478727) --cycle\dpicstop
+\dpicdraw (2.320662,-0.471524)
+ --(2.240971,-0.519339)\dpicstop
+\draw (2.240971,-0.519339) node[left=-2bp]{\sl P2};
+\filldraw[line width=0bp](2.268602,-0.204167)
+ --(2.335268,-0.184167)
+ --(2.268602,-0.164167) --cycle\dpicstop
+\dpicdraw (2.315934,-0.184167)
+ --(2.242942,-0.184167)\dpicstop
+\draw (2.242942,-0.184167) node[left=-2bp]{\sl TP};
+\filldraw[line width=0bp](2.695942,0.02082)
+ --(2.649066,-0.030629)
+ --(2.716522,-0.01348) --cycle\dpicstop
+\dpicdraw (2.665644,-0.020682)
+ --(2.745335,0.027132)\dpicstop
+\draw (2.745335,0.027132) node[right=-2bp]{\sl S1};
+\filldraw[line width=0bp](2.716522,-0.354854)
+ --(2.649066,-0.337704)
+ --(2.695942,-0.389153) --cycle\dpicstop
+\dpicdraw (2.665644,-0.347651)
+ --(2.745335,-0.395466)\dpicstop
+\draw (2.745335,-0.395466) node[right=-2bp]{\sl S2};
+\filldraw[line width=0bp](2.717704,-0.164167)
+ --(2.651038,-0.184167)
+ --(2.717704,-0.204167) --cycle\dpicstop
+\dpicdraw (2.670371,-0.184167)
+ --(2.743364,-0.184167)\dpicstop
+\draw (2.743364,-0.184167) node[right=-2bp]{\sl TS};
+\draw (2.493153,-0.669142) node{\tt ...(,,8,WD12,4)};
+\dpiclw=0.8bp
+\dpicdraw (3.682139,0.103358)
+ --(3.682139,0.072108)\dpicstop
+\dpicdraw[line width=0.4bp](3.682139,0.072108) circle (0.00109in)\dpicstop
+\dpicdraw (3.682139,0.072108)
+ ..controls (3.716514,0.072108) and (3.744639,0.057483)
+ ..(3.744639,0.039608)
+ ..controls (3.744639,0.021733) and (3.724952,0.007108)
+ ..(3.700889,0.007108)
+ ..controls (3.676827,0.007108) and (3.657139,0.013858)
+ ..(3.657139,0.022108)
+ ..controls (3.657139,0.030358) and (3.676827,0.037108)
+ ..(3.700889,0.037108)
+ ..controls (3.724952,0.037108) and (3.744639,0.019108)
+ ..(3.744639,-0.002892)
+ ..controls (3.744639,-0.024892) and (3.724952,-0.042892)
+ ..(3.700889,-0.042892)
+ ..controls (3.676827,-0.042892) and (3.657139,-0.036142)
+ ..(3.657139,-0.027892)
+ ..controls (3.657139,-0.019642) and (3.676827,-0.012892)
+ ..(3.700889,-0.012892)
+ ..controls (3.724952,-0.012892) and (3.744639,-0.030892)
+ ..(3.744639,-0.052892)
+ ..controls (3.744639,-0.074892) and (3.724952,-0.092892)
+ ..(3.700889,-0.092892)
+ ..controls (3.676827,-0.092892) and (3.657139,-0.086142)
+ ..(3.657139,-0.077892)
+ ..controls (3.657139,-0.069642) and (3.676827,-0.062892)
+ ..(3.700889,-0.062892)
+ ..controls (3.724952,-0.062892) and (3.744639,-0.080892)
+ ..(3.744639,-0.102892)
+ ..controls (3.744639,-0.124892) and (3.724952,-0.142892)
+ ..(3.700889,-0.142892)
+ ..controls (3.676827,-0.142892) and (3.657139,-0.136142)
+ ..(3.657139,-0.127892)
+ ..controls (3.657139,-0.119642) and (3.676827,-0.112892)
+ ..(3.700889,-0.112892)
+ ..controls (3.724952,-0.112892) and (3.744639,-0.130892)
+ ..(3.744639,-0.152892)
+ ..controls (3.744639,-0.174892) and (3.724952,-0.192892)
+ ..(3.700889,-0.192892)
+ ..controls (3.676827,-0.192892) and (3.657139,-0.186142)
+ ..(3.657139,-0.177892)
+ ..controls (3.657139,-0.169642) and (3.676827,-0.162892)
+ ..(3.700889,-0.162892)
+ ..controls (3.724952,-0.162892) and (3.744639,-0.180892)
+ ..(3.744639,-0.202892)
+ ..controls (3.744639,-0.224892) and (3.724952,-0.242892)
+ ..(3.700889,-0.242892)
+ ..controls (3.676827,-0.242892) and (3.657139,-0.236142)
+ ..(3.657139,-0.227892)
+ ..controls (3.657139,-0.219642) and (3.676827,-0.212892)
+ ..(3.700889,-0.212892)
+ ..controls (3.724952,-0.212892) and (3.744639,-0.230892)
+ ..(3.744639,-0.252892)
+ ..controls (3.744639,-0.274892) and (3.724952,-0.292892)
+ ..(3.700889,-0.292892)
+ ..controls (3.676827,-0.292892) and (3.657139,-0.286142)
+ ..(3.657139,-0.277892)
+ ..controls (3.657139,-0.269642) and (3.676827,-0.262892)
+ ..(3.700889,-0.262892)
+ ..controls (3.724952,-0.262892) and (3.744639,-0.280892)
+ ..(3.744639,-0.302892)
+ ..controls (3.744639,-0.324892) and (3.724952,-0.342892)
+ ..(3.700889,-0.342892)
+ ..controls (3.676827,-0.342892) and (3.657139,-0.336142)
+ ..(3.657139,-0.327892)
+ ..controls (3.657139,-0.319642) and (3.676827,-0.312892)
+ ..(3.700889,-0.312892)
+ ..controls (3.724952,-0.312892) and (3.744639,-0.330892)
+ ..(3.744639,-0.352892)
+ ..controls (3.744639,-0.374892) and (3.724952,-0.392892)
+ ..(3.700889,-0.392892)
+ ..controls (3.676827,-0.392892) and (3.657139,-0.386142)
+ ..(3.657139,-0.377892)
+ ..controls (3.657139,-0.369642) and (3.676827,-0.362892)
+ ..(3.700889,-0.362892)
+ ..controls (3.724952,-0.362892) and (3.744639,-0.377517)
+ ..(3.744639,-0.395392)
+ ..controls (3.744639,-0.413267) and (3.716514,-0.427892)
+ ..(3.682139,-0.427892)\dpicstop
+\dpicdraw[line width=0.4bp](3.682139,-0.427892) circle (0.00109in)\dpicstop
+\dpicdraw (3.682139,-0.427892)
+ --(3.682139,-0.459142)\dpicstop
+\dpicdraw (3.869639,-0.459142)
+ --(3.869639,-0.302892)\dpicstop
+\dpicdraw[line width=0.4bp](3.869639,-0.302892) circle (0.00109in)\dpicstop
+\dpicdraw (3.869639,-0.302892)
+ ..controls (3.835264,-0.302892) and (3.807139,-0.288267)
+ ..(3.807139,-0.270392)
+ ..controls (3.807139,-0.252517) and (3.826827,-0.237892)
+ ..(3.850889,-0.237892)
+ ..controls (3.874952,-0.237892) and (3.894639,-0.244642)
+ ..(3.894639,-0.252892)
+ ..controls (3.894639,-0.261142) and (3.874952,-0.267892)
+ ..(3.850889,-0.267892)
+ ..controls (3.826827,-0.267892) and (3.807139,-0.249892)
+ ..(3.807139,-0.227892)
+ ..controls (3.807139,-0.205892) and (3.826827,-0.187892)
+ ..(3.850889,-0.187892)
+ ..controls (3.874952,-0.187892) and (3.894639,-0.194642)
+ ..(3.894639,-0.202892)
+ ..controls (3.894639,-0.211142) and (3.874952,-0.217892)
+ ..(3.850889,-0.217892)
+ ..controls (3.826827,-0.217892) and (3.807139,-0.199892)
+ ..(3.807139,-0.177892)
+ ..controls (3.807139,-0.155892) and (3.826827,-0.137892)
+ ..(3.850889,-0.137892)
+ ..controls (3.874952,-0.137892) and (3.894639,-0.144642)
+ ..(3.894639,-0.152892)
+ ..controls (3.894639,-0.161142) and (3.874952,-0.167892)
+ ..(3.850889,-0.167892)
+ ..controls (3.826827,-0.167892) and (3.807139,-0.149892)
+ ..(3.807139,-0.127892)
+ ..controls (3.807139,-0.105892) and (3.826827,-0.087892)
+ ..(3.850889,-0.087892)
+ ..controls (3.874952,-0.087892) and (3.894639,-0.094642)
+ ..(3.894639,-0.102892)
+ ..controls (3.894639,-0.111142) and (3.874952,-0.117892)
+ ..(3.850889,-0.117892)
+ ..controls (3.826827,-0.117892) and (3.807139,-0.103267)
+ ..(3.807139,-0.085392)
+ ..controls (3.807139,-0.067517) and (3.835264,-0.052892)
+ ..(3.869639,-0.052892)\dpicstop
+\dpicdraw[line width=0.4bp](3.869639,-0.052892) circle (0.00109in)\dpicstop
+\dpicdraw (3.869639,-0.052892)
+ --(3.869639,0.103358)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](3.602818,0.127627)
+ --(3.670274,0.110477)
+ --(3.623398,0.161926) --cycle\dpicstop
+\dpicdraw (3.653695,0.120424)
+ --(3.574004,0.168239)\dpicstop
+\draw (3.574004,0.168239) node[left=-2bp]{\sl P1};
+\filldraw[line width=0bp](3.623398,-0.517711)
+ --(3.670274,-0.466261)
+ --(3.602818,-0.483411) --cycle\dpicstop
+\dpicdraw (3.653695,-0.476209)
+ --(3.574004,-0.524023)\dpicstop
+\draw (3.574004,-0.524023) node[left=-2bp]{\sl P2};
+\filldraw[line width=0bp](3.601636,-0.197892)
+ --(3.668302,-0.177892)
+ --(3.601636,-0.157892) --cycle\dpicstop
+\dpicdraw (3.648968,-0.177892)
+ --(3.575976,-0.177892)\dpicstop
+\draw (3.575976,-0.177892) node[left=-2bp]{\sl TP};
+\filldraw[line width=0bp](3.928381,0.161926)
+ --(3.881504,0.110477)
+ --(3.94896,0.127627) --cycle\dpicstop
+\dpicdraw (3.898083,0.120424)
+ --(3.977774,0.168239)\dpicstop
+\draw (3.977774,0.168239) node[right=-2bp]{\sl S1};
+\filldraw[line width=0bp](3.94896,-0.483411)
+ --(3.881504,-0.466261)
+ --(3.928381,-0.517711) --cycle\dpicstop
+\dpicdraw (3.898083,-0.476209)
+ --(3.977774,-0.524023)\dpicstop
+\draw (3.977774,-0.524023) node[right=-2bp]{\sl S2};
+\filldraw[line width=0bp](3.950143,-0.157892)
+ --(3.883476,-0.177892)
+ --(3.950143,-0.197892) --cycle\dpicstop
+\dpicdraw (3.90281,-0.177892)
+ --(3.975802,-0.177892)\dpicstop
+\draw (3.975802,-0.177892) node[right=-2bp]{\sl TS};
+\draw (3.775889,-0.759142) node{\tt ...(,,9,AL)};
+\dpiclw=0.8bp
+\dpicdraw (5.127971,-0.454458)
+ --(5.127971,-0.454458)\dpicstop
+\dpicdraw[line width=0.4bp](5.127971,-0.454458) circle (0.00109in)\dpicstop
+\dpicdraw (5.127971,-0.454458)
+ ..controls (5.090399,-0.471978) and (5.049052,-0.438794)
+ ..(5.058025,-0.39832)
+ ..controls (5.066998,-0.357847) and (5.118495,-0.345246)
+ ..(5.145142,-0.377003)\dpicstop
+\dpicdraw[line width=0.4bp](5.145142,-0.377003) circle (0.00109in)\dpicstop
+\dpicdraw (5.145142,-0.377003)
+ ..controls (5.115136,-0.412762) and (5.05684,-0.391544)
+ ..(5.05684,-0.344864)
+ ..controls (5.05684,-0.298183) and (5.115136,-0.276965)
+ ..(5.145142,-0.312724)\dpicstop
+\dpicdraw[line width=0.4bp](5.145142,-0.312724) circle (0.00109in)\dpicstop
+\dpicdraw (5.145142,-0.312724)
+ ..controls (5.115136,-0.348484) and (5.05684,-0.327265)
+ ..(5.05684,-0.280585)
+ ..controls (5.05684,-0.233904) and (5.115136,-0.212686)
+ ..(5.145142,-0.248445)\dpicstop
+\dpicdraw[line width=0.4bp](5.145142,-0.248445) circle (0.00109in)\dpicstop
+\dpicdraw (5.145142,-0.248445)
+ ..controls (5.115136,-0.284205) and (5.05684,-0.262987)
+ ..(5.05684,-0.216306)
+ ..controls (5.05684,-0.169626) and (5.115136,-0.148407)
+ ..(5.145142,-0.184167)\dpicstop
+\dpicdraw[line width=0.4bp](5.145142,-0.184167) circle (0.00109in)\dpicstop
+\dpicdraw (5.145142,-0.184167)
+ ..controls (5.115136,-0.219926) and (5.05684,-0.198708)
+ ..(5.05684,-0.152027)
+ ..controls (5.05684,-0.105347) and (5.115136,-0.084129)
+ ..(5.145142,-0.119888)\dpicstop
+\dpicdraw[line width=0.4bp](5.145142,-0.119888) circle (0.00109in)\dpicstop
+\dpicdraw (5.145142,-0.119888)
+ ..controls (5.115136,-0.155647) and (5.05684,-0.134429)
+ ..(5.05684,-0.087749)
+ ..controls (5.05684,-0.041068) and (5.115136,-0.01985)
+ ..(5.145142,-0.055609)\dpicstop
+\dpicdraw[line width=0.4bp](5.145142,-0.055609) circle (0.00109in)\dpicstop
+\dpicdraw (5.145142,-0.055609)
+ ..controls (5.115136,-0.091368) and (5.05684,-0.07015)
+ ..(5.05684,-0.02347)
+ ..controls (5.05684,0.023211) and (5.115136,0.044429)
+ ..(5.145142,0.00867)\dpicstop
+\dpicdraw[line width=0.4bp](5.145142,0.00867) circle (0.00109in)\dpicstop
+\dpicdraw (5.145142,0.00867)
+ ..controls (5.118495,-0.023088) and (5.066998,-0.010486)
+ ..(5.058025,0.029987)
+ ..controls (5.049052,0.07046) and (5.090399,0.103644)
+ ..(5.127971,0.086124)\dpicstop
+\dpicdraw[line width=0.4bp](5.127971,0.086124) circle (0.00109in)\dpicstop
+\dpicdraw (5.127971,0.086124)
+ --(5.127971,0.086124)\dpicstop
+\dpicdraw (4.914578,0.086124)
+ --(4.914578,-0.042433)\dpicstop
+\dpicdraw[line width=0.4bp](4.914578,-0.042433) circle (0.00109in)\dpicstop
+\dpicdraw (4.914578,-0.042433)
+ ..controls (4.95215,-0.024913) and (4.993496,-0.058097)
+ ..(4.984524,-0.098571)
+ ..controls (4.975551,-0.139044) and (4.924054,-0.151645)
+ ..(4.897407,-0.119888)\dpicstop
+\dpicdraw[line width=0.4bp](4.897407,-0.119888) circle (0.00109in)\dpicstop
+\dpicdraw (4.897407,-0.119888)
+ ..controls (4.927412,-0.084129) and (4.985709,-0.105347)
+ ..(4.985709,-0.152027)
+ ..controls (4.985709,-0.198708) and (4.927412,-0.219926)
+ ..(4.897407,-0.184167)\dpicstop
+\dpicdraw[line width=0.4bp](4.897407,-0.184167) circle (0.00109in)\dpicstop
+\dpicdraw (4.897407,-0.184167)
+ ..controls (4.927412,-0.148407) and (4.985709,-0.169626)
+ ..(4.985709,-0.216306)
+ ..controls (4.985709,-0.262987) and (4.927412,-0.284205)
+ ..(4.897407,-0.248445)\dpicstop
+\dpicdraw[line width=0.4bp](4.897407,-0.248445) circle (0.00109in)\dpicstop
+\dpicdraw (4.897407,-0.248445)
+ ..controls (4.924054,-0.216688) and (4.975551,-0.22929)
+ ..(4.984524,-0.269763)
+ ..controls (4.993496,-0.310236) and (4.95215,-0.34342)
+ ..(4.914578,-0.3259)\dpicstop
+\dpicdraw[line width=0.4bp](4.914578,-0.3259) circle (0.00109in)\dpicstop
+\dpicdraw (4.914578,-0.3259)
+ --(4.914578,-0.454458)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](5.186712,0.144693)
+ --(5.139836,0.093243)
+ --(5.207292,0.110393) --cycle\dpicstop
+\dpicdraw (5.156415,0.103191)
+ --(5.236106,0.151005)\dpicstop
+\draw (5.236106,0.151005) node[right=-2bp]{\sl P1};
+\filldraw[line width=0bp](5.207292,-0.478727)
+ --(5.139836,-0.461577)
+ --(5.186712,-0.513026) --cycle\dpicstop
+\dpicdraw (5.156415,-0.471524)
+ --(5.236106,-0.519339)\dpicstop
+\draw (5.236106,-0.519339) node[right=-2bp]{\sl P2};
+\filldraw[line width=0bp](5.208474,-0.164167)
+ --(5.141808,-0.184167)
+ --(5.208474,-0.204167) --cycle\dpicstop
+\dpicdraw (5.161142,-0.184167)
+ --(5.234134,-0.184167)\dpicstop
+\draw (5.234134,-0.184167) node[right=-2bp]{\sl TP};
+\filldraw[line width=0bp](4.835257,0.110393)
+ --(4.902713,0.093243)
+ --(4.855837,0.144693) --cycle\dpicstop
+\dpicdraw (4.886134,0.103191)
+ --(4.806443,0.151005)\dpicstop
+\draw (4.806443,0.151005) node[left=-2bp]{\sl S1};
+\filldraw[line width=0bp](4.855837,-0.513026)
+ --(4.902713,-0.461577)
+ --(4.835257,-0.478727) --cycle\dpicstop
+\dpicdraw (4.886134,-0.471524)
+ --(4.806443,-0.519339)\dpicstop
+\draw (4.806443,-0.519339) node[left=-2bp]{\sl S2};
+\filldraw[line width=0bp](4.834074,-0.204167)
+ --(4.900741,-0.184167)
+ --(4.834074,-0.164167) --cycle\dpicstop
+\dpicdraw (4.881407,-0.184167)
+ --(4.808415,-0.184167)\dpicstop
+\draw (4.808415,-0.184167) node[left=-2bp]{\sl TS};
+\draw (5.021274,-0.759142) node{\tt ...(,R,8,AW)};
+\dpiclw=0.8bp
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Xform.m4 b/graphics/circuit_macros/doc/XformMan.m4
index 697d87fafa..697d87fafa 100644
--- a/graphics/circuit_macros/doc/Xform.m4
+++ b/graphics/circuit_macros/doc/XformMan.m4
diff --git a/graphics/circuit_macros/doc/bistable.m4 b/graphics/circuit_macros/doc/bistableMan.m4
index d158e10a04..d158e10a04 100644
--- a/graphics/circuit_macros/doc/bistable.m4
+++ b/graphics/circuit_macros/doc/bistableMan.m4
diff --git a/graphics/circuit_macros/doc/body.tex b/graphics/circuit_macros/doc/body.tex
index 38aff51f3b..cbb2fdb058 100644
--- a/graphics/circuit_macros/doc/body.tex
+++ b/graphics/circuit_macros/doc/body.tex
@@ -45,7 +45,6 @@
\begin{multicols}{2}
\tableofcontents
\end{multicols}
-%\enlargethispage{\baselineskip}
%
\xection{Introduction\label{Introduction:}}
\begin{quotation}\noindent
@@ -339,7 +338,6 @@ A derivative of this method that allows the insertion of
You can put several diagrams into a single source file.
Make each diagram the body of a \latex macro, as shown:
-%\enlargethispage{\baselineskip}
\par
\verb|\newcommand{\diaA}{%|\NVL
\verb|.PS|\NVL
@@ -631,7 +629,6 @@ The exact typeset size of formatted text can be obtained
as described in \SR{Interaction:}. The second occurrence
associates one or more strings with an object, e.g., the following writes
two words, one above the other, at the centre of an ellipse:
-%\enlargethispage{\baselineskip}
\verb|ellipse "\bf Stop" "\bf here"|
@@ -725,7 +722,6 @@ the looping facility
{\sl anything}\verb| }|,
\noindent%
-%\enlargethispage{\baselineskip}
operating-system commands, \pic macros, and external file inclusion.
\xection{Two-terminal circuit elements\label{Basictwo:}}
@@ -831,14 +827,15 @@ were added after the previously shown source:
\end{itemize}
\subsection{The two-terminal elements\label{Twoterminal:}}
-The two-terminal elements are shown in \FRS{CctTable} to~\REF{Diodes}
-and \FRS{Fuses} to~\REF{Switches}.
+The two-terminal elements are shown in \FRS{CctTable}
+% to~\REF{Diodes} and \FRS{Fuses}
+to~\REF{Switches}.
Several elements are included more than once to illustrate
some of their arguments, which are listed in \SR{defines}.
\enlargethispage{\baselineskip}
\begin{figure}[h!]
- \input CctTable
- \ifpdf\vspace*{-\baselineskip}\fi%
+ \input CctTableMan
+% \ifpdf\vspace*{-\baselineskip}\fi%
\caption{Basic two-terminal elements, showing some variations.}
\label{CctTable}
\end{figure}
@@ -849,63 +846,56 @@ If the argument is blank,
the element is drawn from the current position in the current drawing
direction along a default length.
The other arguments produce variants of the default elements.
-\begin{figure}[t!]
- \input Sources
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
- \caption{Sources and source-like elements.}
- \label{Sources}
- \end{figure}
-\begin{figure}[t!]
- \input Diodes
- \caption{The macro
- {\tt diode(\linespec,B|CR|D|L|LE[R]|P[R]|S|T|V|v|w|Z|{\sl chars},[R][E])}.
- Appending {\tt K} to the second argument draws an open arrowhead.}
- \label{Diodes}
+\begin{figure}[hbt]
+ \input AmpTableMan
+ \caption{Amplifier, delay, and integrator.}
+ \label{AmpTable}
\end{figure}
-Thus, for example,
+Thus, for example,
+\par
{\tt resistor(up\_ 1.25,7)}
-
+\par
\noindent%
draws a resistor 1.25 units long up from the current position, with $7$
vertices per side.
The macro {\tt up\_} evaluates to {\tt up} but also resets the current
directional parameters to point up.
-\FR{Emarrows} contains radiation-effect arrows for embellishing two-terminal
-and other macros.
-The arrow stems are named {\sl A1}, {\sl A2},
-and each pair is drawn in a \verb|[]| block, with
-the names {\sl Head} and {\sl Tail} defined to
-aid placement near another device. The second argument specifies
-absolute angle in degrees (default 135 degrees).
-\begin{figure}[h!t]
- \input Emarrows
- \caption{Radiation arrows: {\tt em\_arrows({\sl type, angle, length})}}
- \label{Emarrows}
+\begin{figure}[hbt]
+ \input SourcesMan
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
+ \caption{Sources and source-like elements.}
+ \label{Sources}
\end{figure}
-The arrows are drawn relative to the diode direction by the {\tt LE}
-option in \FR{Diodes}. For absolute arrow directions, one can
-define a wrapper (see \SR{Writing:}) for the {\tt diode} macro to draw arrows
-at 45 degrees, for example:
-{\tt define(`myLED',`diode(`\$1'); em\_arrows(N,45)
- with .Tail at last [].ne')}
+The {\tt AC} and {\tt S} options of the {\tt source} macro in \FR{Sources}
+illustrate the need
+to draw a single cycle of a sinusoid or approximate sinusoid.
+As a convenience,
+the macro {\tt ACsymbol(at {\sl position, length, height,}
+ [A]U|D|L|R|{\sl degrees})} is included as an interface to
+the {\tt sinusoid} macro. For example to add the sumbol to an ebox:
+\par
+{\tt ebox; $\lbrace$\ ACsymbol(at last [],{,},dimen\_/8) $\rbrace$}
+
+\begin{figure}[hbt]
+ \input DiodesMan
+ \caption{The macro
+ {\tt diode(\linespec,B|CR|D|L|LE[R]|P[R]|S|T|V|v|w|Z|{\sl chars},[R][E])}.
+ Appending {\tt K} to the second argument draws an open arrowhead.}
+ \label{Diodes}
+ \end{figure}
\begin{figure}[t!]
- \input Fuses
+ \input FusesMan
\caption{Variations of the macros
- {\tt fuse(\linespec, A|dA|B|C|D|E|S|HB|HC, {\sl wid}, {\sl ht})}
+ {\tt fuse(\linespec, A|dA|B|C|D|E|S|HB|HC|SB, {\sl wid}, {\sl ht})}
and {\tt cbreaker(\linespec,L|R,D|T|TS)}.}
\label{Fuses}
\end{figure}
\begin{figure}[t!]
- \input AmpTable
- \caption{Amplifier, delay, and integrator.}
- \label{AmpTable}
- \end{figure}
-\begin{figure}[t!]
- \input Switches
+ \input SwitchesMan
\caption{The
{\tt switch(\linespec,L|R,{\sl chars},L|B|D)}
macro is a wrapper for the macros
@@ -915,66 +905,89 @@ at 45 degrees, for example:
{\tt dswitch(\linespec,R,W[ud]B[K] {\sl chars})} shown.
The switch is drawn in the current drawing direction.
A second-argument {\tt R} produces a mirror
- image with respect to the drawing direction.}
+ image with respect to the drawing direction.
+ The separately defined macros {\tt Proxim} and {\tt Magn}
+ embellish switches in the second-last row.}
\label{Switches}
\end{figure}
+
Most of the two-terminal elements are oriented; that is, they have
-a defined direction or polarity. Several element macros include an argument
-that reverses polarity, but there is also a more general mechanism,
-as follows.
+a defined direction or polarity. Several element macros include an
+argument that reverses polarity, but there is also a more general
+mechanism, as follows.
The first argument of the macro
-
+\par
{\tt reversed(`}{\sl macro name}{\tt',}{\sl macro arguments}{\tt )}
-
+\par
\noindent
is the name of a two-terminal element in quotes, followed by the
element arguments. The element is drawn with reversed direction.
Thus,
-
+\par
{\tt diode(right\_ 0.4); reversed(`diode',right\_ 0.4)}
-
+\par
\noindent
draws two diodes to the right, but the second one points left.
+\begin{figure}[bt]
+ \input EmarrowsMan
+ \caption{Radiation arrows: {\tt em\_arrows({\sl type, angle, length})}}
+ \label{Emarrows}
+ \end{figure}
Similarly, the macro
-
+\par
{\tt resized(}{\sl factor},`{\sl macro name}',{\sl macro arguments}{\tt )}
-
+\par
\noindent
can be used to resize the body of an element by temporarily multiplying
the {\tt dimen\_} macro by {\sl factor}. More general resizing should be
done by redefining {\tt dimen\_} as described in \SR{Circuitscaling:}.
These two macros can be nested; the following scales the above example
by 1.8, for example
-
+\par
{\tt resized(1.8,`diode',right\_ 0.4);}
{\tt resized(1.8,`reversed',`diode',right\_ 0.4)}
+\FR{Emarrows} contains radiation-effect arrows for embellishing two-terminal
+and other macros.
+The arrow stems are named {\sl A1}, {\sl A2},
+and each pair is drawn in a \verb|[]| block, with
+the names {\sl Head} and {\sl Tail} defined to
+aid placement near another device. The second argument specifies
+absolute angle in degrees (default 135 degrees).
+The arrows are drawn relative to the diode direction by the {\tt LE}
+option in \FR{Diodes}. For absolute arrow directions, one can
+define a wrapper (see \SR{Writing:}) for the {\tt diode} macro to draw arrows
+at 45 degrees, for example:
+\par
+{\tt define(`myLED',`diode(`\$1'); em\_arrows(N,45)
+ with .Tail at last [].ne')}
+
\FR{Variable} shows some two-terminal elements with
arrows or lines overlaid to indicate variability using the macro
-
+\par
{\tt variable(`}{\sl element}{\tt',{\sl type},{\sl angle},{\sl length})},
\noindent
-where {\sl type} is one of {\tt A, P, L, N,} with {\tt C} or {\tt S}
+where {\sl type} is one of {\tt A, P, L, N, NN} with {\tt C} or {\tt S}
optionally appended to indicate continuous or stepwise variation.
Alternatively, this macro
can be invoked similarly to the label macros in
\SR{Labels:} by specifying an empty first argument;
thus, the following line draws the resistor in \FR{Variable}:
-
+\par
{\tt resistor(down\_ dimen\_); variable(,uN)}
\begin{figure}[h!t]
\vspace*{-\baselineskip}
- \input Variable
+ \input VariableMan
\caption{Illustrating
{\tt variable(`{\sl element}',%
-[A|P|L|[u]N][C|S],{\sl angle},{\sl length})}.
- For example,\break {\tt variable(`capacitor(down\_ dimen\_)')} draws
- the leftmost capacitor shown above, and {\tt variable(`resistor(down\_
- dimen\_)',uN)} draws the resistor. The default angle is
+[A|P|L|[u]N]|[u]NN]][C|S],{\sl angle},{\sl length})}.
+ For example,\break {\tt variable(`resistor(down\_ dimen\_)',A)} draws
+ the leftmost resistor shown above, and {\tt variable(`resistor(down\_
+ dimen\_)',uN)} draws the third resistor. The default angle is
45${}^{\circ}$, regardless of the direction of the element. The array
on the right shows the effect of the second argument.}
\label{Variable}
@@ -988,7 +1001,6 @@ just been drawn. Many variations of this are possible:
\verb|arrow right arrowht from last line.start+(alpha,0) "$i_1$" above|
-%\enlargethispage{\baselineskip}
Macros have been defined to simplify labelling two-terminal
elements, as shown in \FR{currents}.
The macro
@@ -1000,7 +1012,7 @@ The macro
draws an arrow from the start of the last-drawn two-terminal element
{\sl frac} of the way toward the body.
\begin{figure}[h!t]
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
\input currents
\caption{Illustrating {\tt b\_current, larrow,} and {\tt rarrow}.
The drawing direction is to the right.}
@@ -1029,14 +1041,7 @@ argument is assumed to be in math mode unless
it begins with {\tt sprintf} or a double
quote, in which case the argument is copied literally. The third argument
specifies the separation from the element.
-%\begin{figure}[hbt]
-% \input lrarrows
-% \caption{The {\tt larrow} and {\tt rarrow} macros draw
-% reference-direction arrows adjacent to the element.}
-% \label{lrarrows}
-% \end{figure}
-\pagebreak%
\subsection{Labels\label{Labels:}}
Special macros for labeling two-terminal elements are included:
\par
@@ -1086,33 +1091,32 @@ assumed to be in math mode.
The length and position of a two-terminal element
are defined by a straight-line segment and, possibly, a direction, so
four numbers are required to place the element as in the following example:
-
+\par
{\tt resistor(from (1,1) to (2,1))}.
\noindent
However, \pic has a very useful concept of the current point (explicitly
named {\tt Here}); thus,
-
+\par
{\tt resistor(to (2,1))}
-
+\par
\noindent
is equivalent to
-
+\par
{\tt resistor(from Here to (2,1)).}
Any defined position can be used; for example, if {\sl C1} and {\sl L2}
are names of previously defined two-terminal elements,
then, for example, the following places the resistor:
-
+\par
{\tt resistor(from L2.end to C1.start)}
A line segment starting at the current position can also be defined using
a direction and length.
To draw a resistor up $d$ units from the current position, for example:
-
+\par
{\tt resistor(up\_ d)}
-\noindent
\Pic stores the current drawing direction,
the latter unfortunately limited to {\tt up, down, left, right,}
which is assumed when necessary.
@@ -1149,6 +1153,14 @@ The macro {\tt eleminit\_} in the two-terminal elements invokes
to establish element length and direction.
As shown in \FR{Oblique},
+\begin{figure}[h!b]
+\vspace{-\baselineskip}
+ \parbox{4.5in}{\small \verbatiminput{Oblique.m4}}%
+ \hfill\raise-0.7in\llap{\hbox{\input Oblique }}%
+ \vspace{-\baselineskip}
+ \caption{Illustrating elements drawn at oblique angles.}
+ \label{Oblique}
+ \end{figure}
``{\tt Point\_(-30); resistor}'' draws a resistor
along a line with slope of~-30 degrees, and ``{\tt rpoint\_(to Z)}'' sets
the current direction cosines to point from the current location to location Z.
@@ -1167,17 +1179,9 @@ The figure also illustrates that any commas within \Mfour arguments must
be treated specially because the arguments are separated by commas.
Argument commas are protected either by parentheses as in
{\tt inductor(from Cr to Cr+vec\_(elen\_,0))}, or by multiple single quotes
-as in {\tt ``,'',} as necessary.
+as in {\tt `{`,'}',} as necessary.
Commas also may be avoided by writing
{\tt 0.5 between L and T} instead of {\tt 0.5<L,T>.}
-\begin{figure}[h!t]
-\vspace{-\baselineskip}
- \parbox{4.5in}{\small \verbatiminput{Oblique.m4}}%
- \hfill\raise-0.7in\llap{\hbox{\input Oblique }}%
- \vspace{-\baselineskip}
- \caption{Illustrating elements drawn at oblique angles.}
- \label{Oblique}
- \end{figure}
\subsection{Series and parallel circuits\label{Seriesandparallel:}}
@@ -1277,7 +1281,6 @@ element, {\tt Sep={\sl val}}; applies only to that branch.
An element may have normal arguments but should
not change the drawing direction.
-%\pagebreak%
\xection{Composite circuit elements\label{Composite:}}
Many basic elements are not two-terminal. These elements are usually enclosed in
a \verb|[ ]| \pic block, and contain named interior locations and components.
@@ -1335,6 +1338,15 @@ drawn elements.
A few composite symbols derived from two-terminal elements
are shown in \FR{Composite}.
+
+The ground symbol is shown in \FR{Grounds}.
+The first argument specifies position; for example, the two lines shown
+have identical effect:
+\par
+{\tt move to (1.5,2); ground
+\par
+ground(at (1.5,2)) }
+
\begin{figure}[h!t]
\vspace*{-0.5ex}
\input Composite
@@ -1344,15 +1356,8 @@ are shown in \FR{Composite}.
\label{Composite}
\end{figure}
-The ground symbol is shown in \FR{Grounds}.
-The first argument specifies position; for example, the two lines shown
-have identical effect:
-
-{\tt move to (1.5,2); ground
-
-ground(at (1.5,2)) }
-
-\noindent The second argument truncates
+%\noindent
+The second argument truncates
the stem, and the third defines the symbol type.
The fourth argument specifies the angle at which the symbol is drawn,
with D (down) the default.
@@ -1361,10 +1366,10 @@ is set using the
{\tt setdir\_( U|D|L|R|{\sl degrees, default} R|L|U|D|{\sl degrees} )}
macro and reset at the end using {\tt resetdir\_}.
\begin{figure}[ht!]
- \input Grounds
+ \input GroundsMan
\caption{The
{\tt ground( at }{\sl position}{\tt,
- T, N|F|S|L|P|E, U|D|L|R|{\sl degrees} )}
+ T, N|F|S|L|P[A]|E, U|D|L|R|{\sl degrees} )}
macro.}
\label{Grounds}
\end{figure}
@@ -1374,17 +1379,18 @@ The arguments of the macro
T, A|L|T|S|D|P|F, U|D|L|R|{\sl degrees} )}
shown in \FR{Antennas} are similar to those of {\tt ground}.
\begin{figure}[h!t]
- \input Antennas
+ \input AntennasMan
\caption{Antenna symbols, with macro arguments shown above and
terminal names below.}
\label{Antennas}
\end{figure}
+\pagebreak
\FR{Opamp} illustrates the macro
{\tt opamp({\sl\linespec, - label, + label, size, chars})\label{OPAMP}}.
-\begin{figure}[b!t]
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
- \input Opamp
+\begin{figure}[h!t]
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
+ \input OpampMan
\caption{Operational amplifiers. The {\tt P} option adds
power connections. The second and third arguments can be used
to place and rotate arbitrary text at {\tt In1} and {\tt In2}.}
@@ -1415,7 +1421,7 @@ The code in \FR{oax} places an opamp with three connections.
\begin{figure}[h!t]
\parbox{4in}{\small \verbatiminput{oaxbody.m4}}%
\quad\raise-0.2in\hbox{\input oax }%
- \vspace{-\baselineskip}
+% \vspace{-\baselineskip}
\caption{A code fragment invoking the
{\tt opamp(\linespec,-,+,{\sl size},[R][P])} macro.}
\label{oax}
@@ -1437,9 +1443,9 @@ and if it contains a {\tt W}, wide windings are drawn.
A {\tt D1} puts phase dots at the {\sl P1, S1} end, {\tt D2} at the
{\sl P2, S2} ends, and {\tt D12} or {\tt D21} puts dots at opposite ends.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\fi%
- \input Xform
- \vspace{-\baselineskip}
+% \ifpdf\vspace*{-\baselineskip}\fi%
+ \input XformMan
+% \vspace{-\baselineskip}
\caption{The {\tt transformer(\linespec,L|R,{\sl np},%
[A|P][W|L][D1|D2|D12|D21],{\sl ns})}
macro (drawing direction {\tt down}), showing predefined terminal
@@ -1447,13 +1453,13 @@ A {\tt D1} puts phase dots at the {\sl P1, S1} end, {\tt D2} at the
\label{Xform}
\end{figure}
-%\enlargethispage{\baselineskip}
+\pagebreak
\FR{Audio} shows some audio devices, defined in {\tt []} blocks,
with predefined internal locations as shown.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\fi%
- \input Audio
- \ifpdf\vspace*{-\baselineskip}\fi%
+% \ifpdf\vspace*{-\baselineskip}\fi%
+ \input AudioMan
+% \ifpdf\vspace*{-\baselineskip}\fi%
\caption{Audio components:
{\tt speaker(U|D|L|R|{\sl degrees},{\sl size},{\sl type}),
bell, microphone, buzzer,
@@ -1474,9 +1480,9 @@ The {\tt nport({\sl box specs {\tt[;} other commands{\tt]},
nw, nn, ne, ns, space ratio, pin lgth, style})}
macro is shown in \FR{Nport}.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\fi
- \input Nport
- \ifpdf\vspace*{-\baselineskip}\fi
+% \ifpdf\vspace*{-\baselineskip}\fi
+ \input NportMan
+% \ifpdf\vspace*{-\baselineskip}\fi
\caption{The {\tt nport} macro draws a sequence of pairs of named pins
on each side of a box. The pin names are shown. The default is a twoport.
The {\tt nterm} macro draws single pins instead of pin pairs.}
@@ -1514,6 +1520,7 @@ immediately after drawing it but within the enclosing block:
If this trick were to be used extensively, then the following custom wrapper
would save typing, add the labels, and pass all arguments to
{\tt nport}:
+\pagebreak
\begin{verbatim}
define(`nullor',`nport(`$1'
@@ -1523,9 +1530,9 @@ define(`nullor',`nport(`$1'
The above example and the related gyrator macro are illustrated in
\FR{NLG}.
- \ifpdf\vspace*{\baselineskip}\fi%
+% \ifpdf\vspace*{\baselineskip}\fi%
\begin{figure}[h!t]
- \input NLG
+ \input NLGMan
\caption{The {\tt nullor} example and the {\tt gyrator}
macro are customizations of the {\tt nport} macro.}
\label{NLG}
@@ -1535,9 +1542,9 @@ The double-throw switches shown in \FR{NPDT} are drawn in the
current drawing direction like the two-terminal elements, but are
composite elements that must be placed accordingly.
\begin{figure}[h!t]
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
- \input NPDT
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
+ \input NPDTMan
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
\caption{Multipole double-throw switches drawn by
{\tt NPDT({\sl npoles}, [R])}.}
\label{NPDT}
@@ -1549,8 +1556,8 @@ for the armature and normally closed and normally
open terminals.
An {\tt I} in the first argument draws open circles for contacts.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
- \input Contact
+% \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+ \input ContactMan
\vspace{-1ex}
\caption{The {\tt contact({\sl chars})}
macro (default drawing direction right)
@@ -1558,11 +1565,12 @@ An {\tt I} in the first argument draws open circles for contacts.
\label{Contact}
\end{figure}
+\pagebreak
The {\tt contacts({\sl poles, chars})} macro in \FR{Contacts}
draws multiple contacts.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
- \input Contacts
+% \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+ \input ContactsMan
\vspace{-1ex}
\caption{The {\tt contacts({\sl poles, chars})}
macro (drawing direction right).}
@@ -1574,8 +1582,8 @@ For drawing relays, the macro
shown in \FR{relaycoil} provides a choice of connection points and
actuator types.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
- \input relaycoil
+% \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+ \input relaycoilMan
\vspace{-1ex}
\caption{The {\tt relaycoil} macro.}
\label{relaycoil}
@@ -1585,8 +1593,8 @@ The {\tt relay({\sl poles, chars})} macro in \FR{Relay}
defines coil terminals {\sl V1, V2} and contact
terminals {\sl P$_i$, C$_i$, O$_i$.}
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
- \input Relay
+% \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+ \input RelayMan
\vspace{-1ex}
\caption{The {\tt relay({\sl poles, chars})}
macro (drawing direction right).}
@@ -1597,7 +1605,7 @@ The {\tt jack} and {\tt plug} macros and their defined points are
illustrated in \FR{Jack}.
The first argument of both macros establishes the drawing direction.
\begin{figure}[h!t]
- \input Jack
+ \input JackMan
\vspace{-1ex}
\caption{The {\tt jack(U|D|L|R|{\sl degrees}, {\sl chars})}
and {\tt plug(U|D|L|R|{\sl degrees},[2|3][R])} components
@@ -1616,48 +1624,31 @@ The {\tt jack} and {\tt plug} macros and their defined points are
or {\tt S[M|B]} substrings add auxiliary contacts with
specified make or break points.
-A basic winding macro for magnetic-circuit sketches and similar figures
-is shown in \FR{Windings}.
-For simplicity, the complete spline
-is first drawn and then blanked in appropriate places using the background
-(core) color (\verb!lightgray! for example, default \verb!white!).
-\begin{figure}[h!t]
- \vspace*{-\baselineskip}%
-% \ifpdf\vspace*{-2\baselineskip}\else \vspace{-\baselineskip}\fi
- \input Windings
- \ifpdf\vspace*{-\baselineskip}\else\vspace*{-1ex}\fi
- \caption{The {\tt winding(L|R, diam, pitch, turns, core wid, core color)}
- macro draws a coil with axis along the current drawing direction.
- Terminals {\tt T1} and {\tt T2} are defined.
- Setting the first argument to {\tt R} draws a right-hand winding.}
- \label{Windings}
- \end{figure}
-
A macro for drawing headers is in \FR{Headers},
and some experimental connectors are shown in \FR{Conn} and \FR{Pconn}.
The {\tt tstrip} macro allows ``{\sl key}{\tt =}{\sl value}{\tt ;}'' arguments
+for width and height.
\begin{figure}[h!t]
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
- \input Headers
- \ifpdf{\vspace*{-0.5ex}}\fi%
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
+ \input HeadersMan
+% \ifpdf{\vspace*{-0.5ex}}\fi%
\caption{Macro {\tt Header(1|2, {\sl rows, wid, ht, type})}.}
\label{Headers}
\end{figure}
-for width and height.
\begin{figure}[h!t]
- \input Conn
- \ifpdf{\vspace*{-0.5ex}}\fi%
+ \input ConnMan
+% \ifpdf{\vspace*{-0.5ex}}\fi%
\caption{Macros {\tt tstrip(R|L|U|D|{\sl degrees}, {\sl chars})},
{\tt ccoax(at} {\sl location}, {\tt M|F, {\sl diameter})},
{\tt tconn(\linespec, >|>>|<|<<|O[F], {\sl wid})}, and
{\tt tbox({\sl text, wid, ht}, <|>|<>,{\sl type})}. }
\label{Conn}
- \ifpdf{\vspace*{-1ex}}\fi%
+% \ifpdf{\vspace*{-1ex}}\fi%
\end{figure}
\begin{figure}[h!t]
- \ifpdf{\vspace*{-1ex}}\fi%
- \input Pconn
- \ifpdf{\vspace*{-0.5ex}}\fi%
+% \ifpdf{\vspace*{-1ex}}\fi%
+ \input PconnMan
+% \ifpdf{\vspace*{-0.5ex}}\fi%
\caption{A small set of power connectors drawn by
{\tt pconnex(R|L|U|D|}{\sl degrees, chars}{\tt)}. Each connector has
an internal {\tt H}, {\tt N}, and where applicable, a {\tt G} shape.}
@@ -1665,6 +1656,23 @@ for width and height.
\end{figure}
\pagebreak
+A basic winding macro for magnetic-circuit sketches and similar figures
+is shown in \FR{Windings}.
+For simplicity, the complete spline
+is first drawn and then blanked in appropriate places using the background
+(core) color (\verb!lightgray! for example, default \verb!white!).
+\begin{figure}[h!t]
+ \vspace*{-\baselineskip}%
+% \ifpdf\vspace*{-2\baselineskip}\else \vspace{-\baselineskip}\fi
+ \input WindingsMan
+% \ifpdf\vspace*{-\baselineskip}\else\vspace*{-1ex}\fi
+ \caption{The {\tt winding(L|R, diam, pitch, turns, core wid, core color)}
+ macro draws a coil with axis along the current drawing direction.
+ Terminals {\tt T1} and {\tt T2} are defined.
+ Setting the first argument to {\tt R} draws a right-hand winding.}
+ \label{Windings}
+ \end{figure}
+
\subsection{Semiconductors\label{Semiconductors:}}%
\FR{Bip} shows the variants of bipolar transistor macro
{\tt bi\_tr(\linespec,L|R,P,E)}
@@ -1672,9 +1680,9 @@ which contains predefined internal locations {\sl E},
{\sl B}, {\sl C}.
The first argument defines the distance and direction from {\sl E}
\begin{figure}[h!t]
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
- \input Bip
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
+ \input BipMan
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
\caption{Variants of bipolar transistor {\tt bi\_tr(\linespec,L|R,P,E)}
(current direction upward).}
\label{Bip}
@@ -1727,15 +1735,15 @@ and a thyristor macro with predefined internal locations
{\sl A,} {\sl K} is in \FR{thyristor}.
Except for the {\sl G} terminal, a thyristor (the {\tt IEC} variant excluded)
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
- \input ujt
- \ifpdf\vspace*{-0.5\baselineskip}\fi%
+% \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+ \input ujtMan
+% \ifpdf\vspace*{-0.5\baselineskip}\fi%
\caption{UJT devices, with current drawing direction {\tt up\_}. }
\label{ujt}
\end{figure}
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
- \input thyristor
+% \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+ \input thyristorMan
\vspace*{-1ex}
\caption{The top two rows illustrate use of the
{\tt thyristor({\sl linespec, chars})} macro,
@@ -1761,9 +1769,9 @@ Some FETs with predefined internal locations {\sl S,} {\sl D,} and {\sl G} are
also included, with similar arguments to those of {\tt bi\_tr,} as shown in
\FR{fet}.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\fi%
- \input fet
- \ifpdf\vspace*{-\baselineskip}\fi%
+% \ifpdf\vspace*{-\baselineskip}\fi%
+ \input fetMan
+% \ifpdf\vspace*{-\baselineskip}\fi%
\caption{JFET, insulated-gate enhancement and depletion MOSFETs,
and simplified versions.
These macros are wrappers that invoke the {\tt mosfet}
@@ -1791,7 +1799,6 @@ temporarily for compatibility.
This system allows considerable freedom in choosing or customizing components,
as illustrated in \FR{fet}.
-%\pagebreak
The number of possible semiconductor symbols is very
large, so these macros must be regarded as prototypes.
Often an element is a minor modification of existing elements. For example,
@@ -1800,8 +1807,8 @@ the {\tt thyristor(\linespec, {\sl chars})} macro illustrated in
Another example is the {\tt tgate} macro shown in \FR{Tgate}, which
also shows a pass transistor.
\begin{figure}[h!t]
- \ifpdf\vspace*{-\baselineskip}\fi%
- \input Tgate
+% \ifpdf\vspace*{-\baselineskip}\fi%
+ \input TgateMan
\caption{The {\tt tgate({\sl linespec,} [B][R|L])} element, derived from
a customized diode and {\tt ebox}, and the
{\tt ptrans(\linespec, [R|L])} macro.
@@ -1811,14 +1818,15 @@ also shows a pass transistor.
\label{Tgate}
\end{figure}
+\pagebreak
Some other non-two-terminal macros are {\tt dot}, which has an
optional argument ``{\tt at} {\sl location}'', the line-thickness
macros, the {\tt fill\_} macro, and {\tt crossover}, which is a useful if
archaic method to show non-touching conductor crossovers, as in
\FR{bistable}.
\begin{figure}[h!t]
- \input bistable
- \vspace{-1ex}
+ \input bistableMan
+% \vspace{-1ex}
\caption{Bipolar transistor circuit, illustrating {\tt crossover}
and colored elements.}
\label{bistable}
@@ -1826,13 +1834,12 @@ archaic method to show non-touching conductor crossovers, as in
This figure also illustrates how elements and labels can be colored
using the macro
-
+\par
{\tt rgbdraw({\sl r}, {\sl g}, {\sl b}, {\sl drawing commands})}
-
+\par
\noindent
where the {\sl r, g, b} values are in the range 0 to 1
-(integers from 0 to 255 for \SVG)
- to specify the rgb color.
+(integers from 0 to 255 for \SVG) to specify the rgb color.
This macro is a wrapper for the following, which may be more convenient
if many elements are to be given the same color:
@@ -1917,7 +1924,7 @@ which have one input {\tt In1} unless they are given a
first argument, which is treated as the line specification of a
two-terminal element.
\begin{figure}[h!]
- \input Logic
+ \input LogicMan
\caption{Basic logic gates. The input and output locations of
a three-input NOR gate are shown. Inputs are negated by
including an {\tt N} in the second argument letter sequence. A {\tt B}
@@ -1977,27 +1984,6 @@ If the fifth argument begins with {\tt sprintf} or a double quote then
the argument is copied literally; otherwise it is treated as scriptsize
mathematics.
-The macro {\tt BUFFER\_gate(\linespec,[N|B],{\sl wid},{\sl ht},%
- [N|P]\char42,[N|P]\char42)}
-is a wrapper for the composite element {\tt BUFFER\_gen}.
-If the second argument is {\tt B}, then a box gate is drawn; otherwise
-the gate is triangular. Arguments 5 and 6 determine the number of defined
-points along the northeast and southeast edges respectively, with an {\tt N}
-adding a NOT circle.
-If the first argument is non-blank however, then the buffer is drawn along
-an invisible line like a two-terminal element, which is convenient sometimes
-but requires internal locations of the block to be referenced using
-{\tt last []}, as shown in \FR{Buffer}.
-\begin{figure}[h!t]
- \input Buffer
- \caption{The {\tt BUFFER\_gate} and {\tt BUFFER\_gen} macros.
- The bottom two examples show how the gate can be drawn as a two-terminal
- macro but internal block locations must be referenced using
- {\tt last []}.}
- \label{Buffer}
- \end{figure}
-
-%\pagebreak
A good strategy for drawing complex logic circuits might be summarized
as follows:
\begin{itemize}\itemsep=0pt
@@ -2021,17 +2007,37 @@ as follows:
\end{itemize}
\end{itemize}
+The macro {\tt BUFFER\_gate(\linespec,[N|B],{\sl wid},{\sl ht},%
+ [N|P]\char42,[N|P]\char42)}
+is a wrapper for the composite element {\tt BUFFER\_gen}.
+If the second argument is {\tt B}, then a box gate is drawn; otherwise
+the gate is triangular. Arguments 5 and 6 determine the number of defined
+points along the northeast and southeast edges respectively, with an {\tt N}
+adding a NOT circle.
+If the first argument is non-blank however, then the buffer is drawn along
+an invisible line like a two-terminal element, which is convenient sometimes
+but requires internal locations of the block to be referenced using
+{\tt last []}, as shown in \FR{Buffer}.
+\begin{figure}[h!t]
+ \input Buffer
+ \caption{The {\tt BUFFER\_gate} and {\tt BUFFER\_gen} macros.
+ The bottom two examples show how the gate can be drawn as a two-terminal
+ macro but internal block locations must be referenced using
+ {\tt last []}.}
+ \label{Buffer}
+ \end{figure}
+
\FR{Multiplexer} shows a multiplexer block with variations, and
\FR{Demultiplexer} shows
the very similar demultiplexer.
\begin{figure}[h!t]
- \input Multiplexer
+ \input MultiplexerMan
\caption{The {\tt Mux({\sl input count}, {\sl label},
[L][B|H|X][N[$n$]|S[$n$]][[N]OE],{\sl wid},{\sl ht})} macro.}
\label{Multiplexer}
\end{figure}
\begin{figure}[h!t]
- \input Demultiplexer
+ \input DemultiplexerMan
\caption{The {\tt Demux({\sl input count}, {\sl label},
[L][B|H|X][N[$n$]|S[$n$]][[N]OE],{\sl wid},{\sl ht})} macro.}
\label{Demultiplexer}
@@ -2047,7 +2053,7 @@ leftpins, toppins, rightpins, bottompins, pinlength}{\tt )}.
\caption{The {\tt FlipFlop} and {\tt FlipFlopX} macros, with variations.}
\label{FlipFlops}
\end{figure}
-The first argument modifies the box (labelled Chip) default specification.
+The first argument modifies the box (labelled {\sl Chip}) default specification.
Each of arguments 3 to 6 is null or a string of {\sl pinspecs} separated
by semicolons ({\tt;}).
A {\sl pinspec} is either empty (null) or of the form
@@ -2062,13 +2068,12 @@ base. Semicolons are
not allowed in labels; use e.g., \verb|\char59{}| instead. To put a bar over
a label, use {\tt lg\_bartxt(}{\sl label}{\tt)}.
The {\sl pinopts} are {\tt [L|M|I|O][N][E]} as for the \verb|lg_pin| macro.
-Option argument 7 is the pin length in drawing units.
+Optional argument 7 is the pin length in drawing units.
-\pagebreak
Customized gates can be defined simply.
For example, the following code defines the custom flipflops in \FR{ShiftR}.
\begin{figure}[h!t]
- \input ShiftR
+ \input ShiftRMan
\caption{A 5-bit shift register.}
\label{ShiftR}
\end{figure}
@@ -2077,7 +2082,7 @@ define(`customFF',`FlipFlopX(wid 10*L_unit ht FF_ht*L_unit,,
:S;NE:CK;:R, N:PR, :Q;;ifelse(`$1',1,:lg_bartxt(Q)), N:CLR) ')
\end{verbatim}
This definition makes use of macros \verb|L_unit| and
-\verb|FF_ht| that predefine dimensions.
+\verb|FF_ht| that predefine default dimensions.
There are three pins on the right side; the centre pin is null and
the bottom is null if the first macro argument is 1.
@@ -2088,7 +2093,7 @@ of which can be specified as macro arguments.
\begin{figure}[h!t]
% \ifpdf\vspace*{-\baselineskip}\fi%
\input Dac
- \ifpdf\vspace*{-\baselineskip}\fi%
+% \ifpdf\vspace*{-\baselineskip}\fi%
\caption{The {\tt dac({\sl width,height},nIn,nN,nOut,nS)}
and {\tt adc({\sl width,height},nIn,nN,nOut,nS)} macros.}
\label{Dac}
@@ -2097,6 +2102,52 @@ of which can be specified as macro arguments.
In addition to the logic gates described here, some experimental
IC chip diagrams are included with the distributed example files.
+\xection{Integrated circuits\label{ICs:}}
+Developing a definitive library of integrated circuits is problematic
+because context may determine how they should be drawn. Logical clarity
+may require drawing a functional diagram in which the connection pins are
+not in the physical order of a terminal diagram, for example. Circuit
+boards and connectors are similar. Although the geometries are simple,
+managing lists of pin locations and labels can be tedious and repetitive.
+
+The many-argument macro
+ {\tt lg\_pin( {\sl location, label, Picname,} n|e|s|w [L|M|I|O][N][E],
+ {\sl pinno, optional length})}
+can be used to draw a variety of pins as illustrated in the \FR{sampleIC}.
+To draw the left-side pins, for example, one can write
+\begin{verbatim}
+ lg_pin( U.nw-(0,lg_pinsep), Vin, Pin1, w )
+ lg_pin( U.nw-(0,2*lg_pinsep),,, wL )
+\end{verbatim}
+\noindent
+and so on.
+\begin{figure}[h!]
+ \parbox{\textwidth}{\small\verbatiminput{sampleIC.m4}}%
+ \hfill\llap{\raise-0.15in\hbox{\input sampleIC }}%
+ \vspace*{-\baselineskip}%
+ \caption{ An imaginary 16-pin integrated circuit and its code.
+ Pin variations defined by the first {\tt Loopover\_}
+ are shown on the left; and text, pic labels, and pin
+ numbers are defined on the right.
+ The third and successive arguments of the second
+ {\tt Loopover\_}
+ are {\tt ;}-separated pin number, text, and pin type. The
+ semicolons are changed to commas by the {\tt patsubst} \Mfour\ macro
+ and the {\tt Upin} macro gives the resulting arguments to {\tt lg\_pin}.
+\label{sampleIC}}%
+ \end{figure}
+Each pin can also be given a \pic\ name, some text
+to indicate function, and a number.
+
+To reduce the tedium of adding the pins by hand, a list
+can be given to the
+{\tt Loopover\_(\char96{}variable\char39,
+\char96{}{\sl actions}\char39,
+{\sl value1, value2, $\ldots$})}
+which executes the given actions successively with
+ {\sl variable} = {\sl value1}, {\sl value2} $ldots$ and the
+ counter {\tt m4Lx} set to 1, 2, $\ldots$ as in the diagram.
+
\xection{Element and diagram scaling\label{Scaling:}}
There are several issues related to scale changes. You may wish to use
@@ -2217,6 +2268,7 @@ If you develop a library of custom macros in the installation
directory then the statement {\tt include(}{\sl mylibrary}{\tt.m4)}
can bring its definitions into play.
+\enlargethispage{\baselineskip}
It may not be necessary to define your own macro if all that is needed is
a small addition to an existing element that is defined in an enclosing
\verb|[ ]| block. After the element arguments are expanded,
@@ -2235,10 +2287,6 @@ to defer macro expansion. Macro arguments are referenced inside a
macro by number; thus {\tt \$1} refers to the first argument.
A few examples will be given.
-\pagebreak
-%\enlargethispage{\baselineskip}
-%\noindent\hbox{}\\ {\bf Example 1:}
-%\par\noindent {\bf Example 1:}
\Example{1}
Custom two-terminal elements can often be defined by writing a wrapper
for an existing element. For example, an enclosed thermal switch
@@ -2253,7 +2301,6 @@ can be defined as shown in \FR{Thermal}.
\label{Thermal}
\end{figure}
-%\par\noindent {\bf Example 2:}
\Example{2}
In the following,
two macros are defined to simplify the repeated drawing
@@ -2261,27 +2308,19 @@ of a series resistor and series inductor, and the macro {\tt tsection} defines
a subcircuit that is replicated several times to generate \FR{Tline}.
{\small \verbatiminput{Tline.m4}}
\begin{figure}[h!]
- \ifpdf\vspace*{-\baselineskip}\fi%
+% \ifpdf\vspace*{-\baselineskip}\fi%
\input Tline
\caption{A lumped model of a transmission line, illustrating the
use of custom macros.}
\label{Tline}
\end{figure}
-\pagebreak
\Example{3}
%\par\noindent {\bf Example 3:}
Composite elements containing several basic elements may be
required. \FR{HybridPi} shows a circuit that can be drawn in
any reference direction prespecified by {\tt Point\_({\sl degrees})},
containing labels that always appear in their natural horizontal orientation.
-\begin{figure}[h!t]
- \vspace*{-0.5ex}
- \input HybridPi
- \vspace*{-0.5ex}
- \caption{A composite element containing several basic elements}
- \label{HybridPi}
- \end{figure}
Two flags in the argument determine the circuit orientation with respect to
the current drawing direction and whether a mirrored circuit is drawn.
The key to writing such a macro is to observe that the \pic language
@@ -2321,10 +2360,15 @@ define(`hybrid_PI_BJT',
`"$\mathrm{r_o}$"' at Ro.c+vec_(hunit/4,0)
`$2' ] ')
\end{verbatim}
+\begin{figure}[h!t]
+ \vspace*{-0.5ex}
+ \input HybridPi
+ \vspace*{-0.5ex}
+ \caption{A composite element containing several basic elements}
+ \label{HybridPi}
+ \end{figure}
-\pagebreak
\Example{4}
-%\par\noindent {\bf Example 4:}
A number of elements have arguments meant explicitly for customization.
\FR{Sinus} customizes the {\tt source} macro to show a cycle of a horizontal
sinusoid with adjustable phase given by argument 2 in degrees,
@@ -2347,9 +2391,7 @@ $3,$4,$5)')
\end{figure}
\Example{5}
-%\par\noindent {\bf Example 5:}
Repeated subcircuits might have different orientations
-% but the potential orientations often
that
include only the element and its mirror image, for example, so the
power of the \verb|vec_()| and \verb|rvec_()| macros is not required.
@@ -2363,7 +2405,7 @@ orientation as shown in \FR{Opto}.
\end{figure}
The macro interface could be something like the following:
-
+\par
{\tt opto( [L|R][A|B] )},
\noindent where an {\tt R} in the argument string signifies a right-left
@@ -2372,7 +2414,7 @@ that is, there are two related elements that might be drawn in either
orientation, for a total of four possibilities.
Those who find such an interface to be too cryptic might prefer to
invoke the macro as
-
+\par
{\tt opto(orientation=Rightleft;type=B)},
\noindent
@@ -2588,9 +2630,11 @@ define(`Q\_d',0.0pt\_\_)dnl}
These definitions are required by the \verb|boxdim| macro
described below.
+\vbox{\strut
The \latex macro
-
+\par
\verb|\boxdimfile{|{\sl dimension file}\verb|}|
+}
\noindent is used to specify an alternative to {\sl jobname.}\verb|dim| as the
dimension file to be written. This simplifies cases where {\sl jobname}
@@ -2661,6 +2705,12 @@ libgen.m4}, to convert points to drawing coordinates.
Sometimes a label needs a plain background in order to blank
out previously drawn components overlapped by the label,
as shown on the left of \FR{fbox}.
+\begin{figure}[h!b]
+ \input woodchips
+ \vspace{-0.5\baselineskip}
+ \caption{Illustrating the {\tt f\_box} macro.}
+ \label{fbox}
+ \end{figure}
The technique illustrated in \FR{boxdims} is automated by the
macro
{\tt f\_box(}{\sl boxspecs}, {\sl label arguments}{\tt )}.
@@ -2675,15 +2725,8 @@ Otherwise, the first argument specifies the box characteristics
\noindent%
For example, the result of the following command
is shown on the right of \FR{fbox}.
-
+\par
\verb|f_box(color "lightgray" thickness 2 rad 2pt__,"\huge$n^{%g}$",4-1)|
-\begin{figure}[h!b]
-%\begin{figure}[b!]
- \input woodchips
- \vspace{-0.5\baselineskip}
- \caption{Illustrating the {\tt f\_box} macro.}
- \label{fbox}
- \end{figure}
More tricks can be played. The example
@@ -2699,6 +2742,7 @@ with {\tt boxcoord(}{\sl object name}{\tt,0,0)} at the lower left
corner of the object, and {\tt boxcoord(}{\sl object name}{\tt,1,1)} at
its upper right.
+\pagebreak
\xection{\PSTricks and other tricks\label{Pstricks:}}
This section applies only to a \pic processor (\dpic) that is
capable of producing output compatible with
@@ -2833,23 +2877,26 @@ to the desired output, whereas \dpic can generate several alternative
formats, as shown in \FR{Workflow}.
One of the easiest methods
for producing web documents is to generate postscript as usual and to
-convert the result to pdf format with Adobe
-Distiller
-%\Textregistered
-or equivalent.
+convert the result to pdf format with Adobe Distiller or equivalent.
+\begin{figure}[h!b]
+% \ifpdf\vspace*{-\baselineskip}\fi%
+ \input Workflow
+% \ifpdf\vspace*{-\baselineskip}\fi%
+ \caption{Output formats produced by \gpic {\tt -t} and \dpic.
+ SVG output can be read by Inkscape or used directly in web documents.}
+ \label{Workflow}
+ \end{figure}
PDFlatex produces pdf without first creating a postscript file
but does not handle \tpic \verb|\special|s, so \dpic must be
installed.
-%\enlargethispage{\baselineskip}
Most PDFLatex distributions are not directly compatible with \PSTricks, but
the \TPGF output of \dpic is compatible with both \latex and PDFLatex.
Several alternative \dpic output formats such as
\mfpic and \MetaPost also work well.
To test \MetaPost, create a file {\sl filename}{\tt .mp}
containing appropriate header lines, for example:
-%\pagebreak
\begin{verbatim}
verbatimtex
\documentclass[11pt]{article}
@@ -2890,14 +2937,6 @@ The \dpic processor is capable of other output formats, as illustrated in
\FR{Workflow} and in example files included with the distribution.
The \latex drawing commands alone or with {\tt eepic} or {\tt pict2e}
extensions are suitable only for simple diagrams.
-\begin{figure}[h!b]
-% \ifpdf\vspace*{-\baselineskip}\fi%
- \input Workflow
- \ifpdf\vspace*{-\baselineskip}\fi%
- \caption{Output formats produced by \gpic {\tt -t} and \dpic.
- SVG output can be read by Inkscape or used directly in web documents.}
- \label{Workflow}
- \end{figure}
\xection{Developer's notes\label{Developersnotes:}}
Years ago in the course of writing a book, I took a few days off to
diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex
index 8e21bba0ec..cb3a1a5dae 100644
--- a/graphics/circuit_macros/doc/defines.tex
+++ b/graphics/circuit_macros/doc/defines.tex
@@ -34,6 +34,13 @@
\macrodef{abs\_}{abs_}{({\sl number})}
{gen}
{absolute value function}
+\macrodef{ACsymbol}{ACsymbol}{(at {\sl position, len, ht,}
+ [A]U|D|L|R|{\sl degrees}) }
+ {cct}
+ {draw an AC symbol ( 1-cycle sine wave); If arg 4 contains A, two arcs
+ are drawn. The current drawing direction is default, otherwise Up, Down,
+ Left, Right, or at {\sl degrees} slant; e.g.,
+ {\tt ebox; $\lbrace$ ACsymbol(at last [],{,}dimen\_/8) $\rbrace$} }
\macrodef{adc}{adc}{({\sl width,height,nIn,nN,nOut,nS})}
{cct}
{ADC with defined width, height, and number of inputs {\tt In$i$},
@@ -630,6 +637,7 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
MMR = momentary contact on make and release,
O = hand operation button,
P = pushbutton,
+ Pr{\tt [T|M]} = proximity (touch-sensitive or magnetically controlled),
Th = thermal control linkage,
Tr = tripping,
Y = pull switch,
@@ -769,7 +777,7 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
\macrodef{fuse}{fuse}{({\sl linespec, type, wid, ht})}
{cct}
{fuse symbol, type$=$
- {\tt A|B|C|D|S|HB|HC} or {\tt dA=D}\seesect{Twoterminal:}}
+ {\tt A|B|C|D|S|HB|HC|SB} or {\tt dA=D}\seesect{Twoterminal:}}
\macrodef{g\_}{g_}{}
{gen}
{green color value}
@@ -801,12 +809,14 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
\macrodef{grid\_}{grid_}{({\sl x},{\sl y})}
{log}
{absolute grid location}
-\macrodef{ground}{ground}{(at {\sl location}, T, N|F|S|L|P|E, U|D|L|R|{\sl
+\macrodef{ground}{ground}{(at {\sl location}, T, N|F|S|L|P[A]|E, U|D|L|R|{\sl
degrees})}
{cct}
{ ground, without stem for nonblank 2nd arg;
{\tt N}=normal, {\tt F}=frame, {\tt S}=signal, {\tt L}=low-noise,
- {\tt P}=protective, {\tt E}=European; up, down, left, right, or angle
+ {\tt P}=protective,
+ {\tt PA}=protective alternate,
+ {\tt E}=European; up, down, left, right, or angle
from horizontal (default -90)
\seesect{Composite:}}
\macrodef{gshade}{gshade}{({\sl gray value},A,B,...,Z,A,B)}
@@ -821,9 +831,13 @@ B|CR|D|G|L|LE[R]|P[R]|S|Sh|T|V|v|w|Z|chars,%
\macrodef{H\_ht}{H_ht}{}
{log}
{hysteresis symbol dimension in {\tt L\_unit}s}
-\macrodef{Header}{Header}{(1|2,{\sl rows,wid,ht,type})}
+\macrodef{Header}{Header}{(1|2,{\sl rows,wid,ht,box attributes})}
{log}
- {Header block with 1 or 2 columns and square Pin 1
+ {Header block with 1 or 2 columns and square Pin 1:
+ arg1 = number of columns;
+ arg2 = pins per column;
+ arg3,4 = custom wid, ht;
+ arg5 = e.g., {\tt fill\_(0.9)}
\seesect{Composite:}}
\macrodef{HeaderPin}{HeaderPin}{({\sl location, type, Picname},%
n|e|s|w,{\sl length})}
@@ -981,13 +995,19 @@ n|e|s|w,{\sl length})}
\macrodef{lg\_bartxt}{lg_bartxt}{}
{log}
{draws an overline over logic-pin text (except for xfig)}
-\macrodef{lg\_pin}{lg_pin}{({\sl location, logical name, pin label},
+\macrodef{lg\_pin}{lg_pin}{({\sl location, label, Picname},
n|e|s|w[L|M|I|O][N][E], {\sl pinno, optlen})}
{log}
- {comprehensive logic pin; {\tt n|e|s|w}=direction,
- {\tt L}=active low out, {\tt M}=active low in,
- {\tt I}=inward arrow, {\tt O}=outward arrow,
- {\tt N}=negated, {\tt E}=edge trigger}
+ {comprehensive logic pin;
+ {\sl label}= text (indicating logical pin function, usually),
+ {\sl Picname}= pic label for referring to the pin (line),
+ {\tt n|e|s|w}=orientation (north, south, east, west),
+ {\tt L}=active low out,
+ {\tt M}=active low in,
+ {\tt I}=inward arrow,
+ {\tt O}=outward arrow,
+ {\tt N}=negated,
+ {\tt E}=edge trigger}
\macrodef{lg\_pintxt}{lg_pintxt}{}
{log}
{reduced-size text for logic pins}
@@ -1030,7 +1050,8 @@ n|e|s|w,{\sl length})}
value2, $\ldots$})}
{gen}
{Repeat {\sl actions} with {\sl variable} set successively to
- {\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2, $\ldots$}
+ {\sl value1, value2, $\ldots$}, setting macro {\tt m4Lx} to 1, 2, $\ldots$,
+ terminating if {\sl variable} is nul}
\macrodef{lp\_xy}{lp_xy}{}
{log}
{coordinates used by {\tt lg\_pin}}
@@ -1077,9 +1098,11 @@ n|e|s|w,{\sl length})}
\macrodef{memristor}{memristor}{({\sl linespec, wid, ht})}
{cct}
{memristor element\seesect{Twoterminal:}}
-\macrodef{microphone}{microphone}{( U|D|L|R|{\sl degrees, size})}
+\macrodef{microphone}{microphone}{( A|U|D|L|R|{\sl degrees, size})}
{cct}
- {microphone, {\sl In1} to {\sl In3} defined
+ {microphone; if arg1 = A: upright mic, otherwise arg1 sets direction
+ of standard microphone with
+ {\sl In1} to {\sl In3} defined
\seesect{Composite:}}
\macrodef{Min}{Min}{({\sl arg, arg, $\ldots$})}
{gen}
@@ -1114,6 +1137,7 @@ n|e|s|w,{\sl length})}
{\tt L:} G pin to channel (obsolete);
{\tt [u][d]M:} G pin to channel; u: at drain end; d: at source end
{\tt [u][d]M{\sl n}:} multiple gates G0 to G{\sl n}
+ {\tt Py:} parallel diode;
{\tt Pz:} parallel zener diode;
{\tt Q:} connect B pin to S pin;
{\tt R:} thick channel;
@@ -1278,6 +1302,9 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
%\macrodef{par\_}{par_}{({\sl element},{\sl element},{\sl separation})}
% {cct}
% {two same-direction, same-length elements in parallel}
+\macrodef{proximity}{proximity}{(\sl linespec)}
+ {cct}
+ {proximity detector (= {\tt consource(,P)})}
\macrodef{pc\_\_}{pc__}{}
{gen}
{absolute points}
@@ -1659,15 +1686,22 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
e.g., to draw a dashed sine curve, amplitude {\sl a}, of {\sl n} cycles
of length {\sl x} from {\sl A},
{\tt sinusoid(a,twopi\_*n/x,-pi\_/2,0,x,dashed) with .Start at A}}
-\macrodef{source}{source}{(\linespec,V|v|I|i|AC|B|F|G|H|Q|L|N|P|S|T|X|U|{\sl
- other},{\sl diameter},R)}
- {cct}
- {source, blank or voltage (2 types), current (2 types), AC,
- or type F, G, Q, B, L, N, X or labelled,
- H = step (Heaviside),
- P = pulse, U = square, R = ramp,
- S = sinusoid, T = triangle; other = custom interior label or waveform,
- R = reversed polarity \seesect{Twoterminal:}}
+\macrodef{source}{source}{(\linespec,
+ V|v|I|i|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other},
+ {\sl diameter},R)}
+ {cct}
+ {source, blank or:
+ V = voltage source; v = alternate voltage source;
+ I = current source; i = alternate current source;
+ AC = AC source; B = bulb; F = fluorescent; G =
+ generator; H = step function; L = lamp;
+ N = neon; P = pulse; Q = charge; R = ramp; r = right
+ orientation; S = sinusoid; SC = quarter arc; SE =
+ arc; T = triangle; U = square-wave; X = interior X;
+ other = custom interior label or waveform;
+ arg 4: R = reversed polarity;
+ arg 5 modifies the circle with e.g., color or fill
+ \seesect{Twoterminal:}}
\macrodef{sourcerad\_}{sourcerad_}{}
{cct}
{default source radius}
@@ -1881,11 +1915,14 @@ nw,nn,ne,ns,pin lgth,style, other commands})}
{gen}
{set current direction up \seesect{Placing:}}
\macrodef{variable}{variable}{(`{\sl element}',
- {\tt [A|P|L|[u]N][C|S]},{\sl angle},{\sl length})}
+ {\tt [A|P|L|[u]N|[u]NN][C|S]},{\sl angle},{\sl length})}
{cct}
{overlaid arrow or line to indicate variable 2-terminal element:
{\tt A}=arrow, {\tt P}=preset,
- {\tt L}=linear, {\tt N}=nonlinear, {\tt C}=continuous, {\tt S}=setpwise
+ {\tt L}=linear,
+ {\tt N}= symmetric nonlinear,
+ {\tt C}=continuous, {\tt S}=setpwise; {\tt u} changes the
+ nonlinearity direction
\seesect{Twoterminal:}}
\macrodef{Vcoords\_}{Vcoords_}{({\sl position})}
{gen}
diff --git a/graphics/circuit_macros/doc/fet.tex b/graphics/circuit_macros/doc/fet.tex
new file mode 100644
index 0000000000..7fbd593d5a
--- /dev/null
+++ b/graphics/circuit_macros/doc/fet.tex
@@ -0,0 +1,513 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,-0.175)
+ --(0.15,-0.175)
+ --(0.15,-0.16393)\dpicstop
+\dpicdraw (0.5,-0.175)
+ --(0.35,-0.175)
+ --(0.35,-0.16393)\dpicstop
+\dpicdraw (0.35,-0.175)
+ --(0.35,0)\dpicstop
+\dpicdraw (0.125,0)
+ --(0.375,0)\dpicstop
+\filldraw[line width=0bp](0.122222,0.083333)
+ --(0.15,0)
+ --(0.177778,0.083333) --cycle\dpicstop
+\dpicdraw (0.15,0.175)
+ --(0.15,0.017568)\dpicstop
+\dpicdraw (0.15,-0.175)
+ --(0.15,0)\dpicstop
+\dpicdraw (0.25,0) circle (0.07874in)\dpicstop
+\draw (0.875,-0.5) node{{\tt j\_fet(right\_ dimen\_,{,},E)}};
+\draw (0.15,0.175) node[above left=-2bp]{$G$};
+\draw (0,-0.175) node[left=-2bp]{$S$};
+\draw (0.5,-0.175) node[right=-2bp]{$D$};
+\dpicdraw (1.127778,-0.175)
+ --(1.127778,0)\dpicstop
+\dpicdraw (0.902778,0)
+ --(1.152778,0)\dpicstop
+\dpicdraw (0.927778,0)
+ --(0.927778,0.175)\dpicstop
+\filldraw[line width=0bp](0.955556,0.066667)
+ --(0.927778,0.15)
+ --(0.9,0.066667) --cycle\dpicstop
+\dpicdraw (0.927778,0.066667)
+ --(0.927778,0.132432)\dpicstop
+\dpicdraw (0.927778,-0.175)
+ --(0.927778,0)\dpicstop
+\draw (1.026389,-0.225) node[below=-2bp]{{\tt j\_fet(,{,}P,)}};
+\draw (0.927778,0.175) node[left=-2bp]{$G$};
+\draw (0.927778,-0.175) node[left=-2bp]{$S$};
+\draw (1.127778,-0.175) node[right=-2bp]{$D$};
+\dpicdraw (1.925,0.175)
+ --(1.925,0)\dpicstop
+\filldraw[line width=0bp](1.897222,0.129167)
+ --(1.925,0.045833)
+ --(1.952778,0.129167) --cycle\dpicstop
+\dpicdraw (1.925,0.129167)
+ --(1.925,0.063402)\dpicstop
+\dpicdraw (2.025,0.175)
+ --(2.025,0)\dpicstop
+\dpicdraw (1.8,0)
+ --(1.875,0)\dpicstop
+\dpicdraw (1.9,0)
+ --(1.95,0)\dpicstop
+\dpicdraw (1.975,0)
+ --(2.05,0)\dpicstop
+\dpicdraw (2.025,-0.05)
+ --(1.825,-0.05)
+ --(1.825,-0.175)\dpicstop
+\dpicdraw (1.925,0.16393)
+ --(1.925,0.175)
+ --(1.825,0.175)
+ --(1.825,0.16393)\dpicstop
+\dpicdraw (1.825,0.175)
+ --(1.825,0)\dpicstop
+\draw (1.925,-0.225) node[below=-2bp]{{\tt e\_fet(,R,{,})}};
+\draw (1.825,-0.175) node[left=-2bp]{$G$};
+\draw (1.825,0.175) node[left=-2bp]{$S$};
+\draw (2.025,0.175) node[right=-2bp]{$D$};
+\dpicdraw (1.925,-1.175)
+ --(1.925,-1)\dpicstop
+\filldraw[line width=0bp](1.897222,-1.045833)
+ --(1.925,-1.129167)
+ --(1.952778,-1.045833) --cycle\dpicstop
+\dpicdraw (1.925,-1.111598)
+ --(1.925,-1.045833)\dpicstop
+\dpicdraw (2.025,-1.175)
+ --(2.025,-1)\dpicstop
+\dpicdraw (1.8,-1)
+ --(1.875,-1)\dpicstop
+\dpicdraw (1.9,-1)
+ --(1.95,-1)\dpicstop
+\dpicdraw (1.975,-1)
+ --(2.05,-1)\dpicstop
+\dpicdraw (2.025,-0.95)
+ --(1.825,-0.95)
+ --(1.825,-0.825)\dpicstop
+\dpicdraw (1.925,-1.16393)
+ --(1.925,-1.175)
+ --(1.825,-1.175)
+ --(1.825,-1.16393)\dpicstop
+\dpicdraw (1.825,-1.175)
+ --(1.825,-1)\dpicstop
+\draw (2.025,-1.375) node[below=-2bp]{{\tt e\_fet(,{,}P)}};
+\dpicdraw (2.825,-0.175)
+ --(2.825,0)\dpicstop
+\filldraw[line width=0bp](2.852778,-0.129167)
+ --(2.825,-0.045833)
+ --(2.797222,-0.129167) --cycle\dpicstop
+\dpicdraw (2.825,-0.129167)
+ --(2.825,-0.063402)\dpicstop
+\dpicdraw (2.925,-0.175)
+ --(2.925,0)\dpicstop
+\dpicdraw (2.7,0)
+ --(2.95,0)\dpicstop
+\dpicdraw (2.925,0.05)
+ --(2.725,0.05)
+ --(2.725,0.175)\dpicstop
+\dpicdraw (2.825,-0.16393)
+ --(2.825,-0.175)
+ --(2.725,-0.175)
+ --(2.725,-0.16393)\dpicstop
+\dpicdraw (2.725,-0.175)
+ --(2.725,0)\dpicstop
+\draw (2.825,-0.225) node[below=-2bp]{{\tt d\_fet(,{,},)}};
+\dpicdraw (2.825,-1.175)
+ --(2.825,-1)\dpicstop
+\filldraw[line width=0bp](2.797222,-1.045833)
+ --(2.825,-1.129167)
+ --(2.852778,-1.045833) --cycle\dpicstop
+\dpicdraw (2.825,-1.111598)
+ --(2.825,-1.045833)\dpicstop
+\dpicdraw (2.925,-1.175)
+ --(2.925,-1)\dpicstop
+\dpicdraw (2.7,-1)
+ --(2.95,-1)\dpicstop
+\dpicdraw (2.925,-0.95)
+ --(2.725,-0.95)
+ --(2.725,-0.825)\dpicstop
+\dpicdraw (2.825,-1.16393)
+ --(2.825,-1.175)
+ --(2.725,-1.175)
+ --(2.725,-1.16393)\dpicstop
+\dpicdraw (2.725,-1.175)
+ --(2.725,-1)\dpicstop
+\draw (2.825,-1.225) node[below=-2bp]{{\tt d\_fet(,{,}P)}};
+\dpicdraw (3.827778,-0.1875)
+ --(3.827778,-0.0125)\dpicstop
+\dpicdraw (3.602778,-0.0125)
+ --(3.852778,-0.0125)\dpicstop
+\dpicdraw (3.627778,-0.1875)
+ --(3.627778,-0.0125)\dpicstop
+\filldraw[line width=0bp](3.6,-0.058333)
+ --(3.627778,-0.141667)
+ --(3.655556,-0.058333) --cycle\dpicstop
+\dpicdraw (3.627778,-0.124098)
+ --(3.627778,-0.058333)\dpicstop
+\dpicdraw (3.627778,0.0375)
+ --(3.827778,0.0375)\dpicstop
+\dpicdraw (3.727778,0.0375)
+ --(3.727778,0.1875)\dpicstop
+\draw (3.726389,-0.2375) node[below=-2bp]{{\tt e\_fet(,{,},S)}};
+\dpicdraw (3.827778,-1.1875)
+ --(3.827778,-1.0125)\dpicstop
+\dpicdraw (3.602778,-1.0125)
+ --(3.852778,-1.0125)\dpicstop
+\dpicdraw (3.627778,-1.1875)
+ --(3.627778,-1.0125)\dpicstop
+\filldraw[line width=0bp](3.655556,-1.141667)
+ --(3.627778,-1.058333)
+ --(3.6,-1.141667) --cycle\dpicstop
+\dpicdraw (3.627778,-1.141667)
+ --(3.627778,-1.075902)\dpicstop
+\dpicdraw (3.627778,-0.9625)
+ --(3.827778,-0.9625)\dpicstop
+\dpicdraw (3.727778,-0.9625)
+ --(3.727778,-0.8125)\dpicstop
+\draw (3.726389,-1.3875) node[below=-2bp]{{\tt e\_fet(,{,}P,S)}};
+\dpicdraw (4.727778,-0.1875)
+ --(4.727778,-0.0125)\dpicstop
+\dpicdraw (4.502778,-0.0125)
+ --(4.752778,-0.0125)\dpicstop
+\dpicdraw[line width=1.6bp](4.527778,-0.029104)
+ --(4.727778,-0.029104)\dpicstop
+\dpicdraw (4.527778,-0.1875)
+ --(4.527778,-0.0125)\dpicstop
+\filldraw[line width=0bp](4.5,-0.058333)
+ --(4.527778,-0.141667)
+ --(4.555556,-0.058333) --cycle\dpicstop
+\dpicdraw (4.527778,-0.124098)
+ --(4.527778,-0.058333)\dpicstop
+\dpicdraw (4.527778,0.0375)
+ --(4.727778,0.0375)\dpicstop
+\dpicdraw (4.627778,0.0375)
+ --(4.627778,0.1875)\dpicstop
+\draw (4.626389,-0.3875) node[below=-2bp]{{\tt d\_fet(,{,},S)}};
+\dpicdraw (4.727778,-1.1875)
+ --(4.727778,-1.0125)\dpicstop
+\dpicdraw (4.502778,-1.0125)
+ --(4.752778,-1.0125)\dpicstop
+\dpicdraw[line width=1.6bp](4.527778,-1.029104)
+ --(4.727778,-1.029104)\dpicstop
+\dpicdraw (4.527778,-1.1875)
+ --(4.527778,-1.0125)\dpicstop
+\filldraw[line width=0bp](4.555556,-1.141667)
+ --(4.527778,-1.058333)
+ --(4.5,-1.141667) --cycle\dpicstop
+\dpicdraw (4.527778,-1.141667)
+ --(4.527778,-1.075902)\dpicstop
+\dpicdraw (4.527778,-0.9625)
+ --(4.727778,-0.9625)\dpicstop
+\dpicdraw (4.627778,-0.9625)
+ --(4.627778,-0.8125)\dpicstop
+\draw (4.626389,-1.2375) node[below=-2bp]{{\tt d\_fet(,{,}P,S)}};
+\dpicdraw (5.6,-0.1625)
+ --(5.6,-0.0375)\dpicstop
+\dpicdraw (5.4,-0.0375)
+ --(5.6,-0.0375)\dpicstop
+\dpicdraw (5.4,-0.1625)
+ --(5.4,-0.0375)\dpicstop
+\dpicdraw (5.4,0.0125)
+ --(5.6,0.0125)\dpicstop
+\dpicdraw (5.5,0.0125)
+ --(5.5,0.1625)\dpicstop
+\draw (5.5,-0.2125) node[below=-2bp]{{\tt c\_fet(,{,},)}};
+\dpicdraw (5.6,-1.1625)
+ --(5.6,-1.0375)\dpicstop
+\dpicdraw (5.4,-1.0375)
+ --(5.6,-1.0375)\dpicstop
+\dpicdraw (5.4,-1.1625)
+ --(5.4,-1.0375)\dpicstop
+\dpicdraw (5.4,-0.9875)
+ --(5.6,-0.9875)\dpicstop
+\dpicdraw (5.5,-0.954167) circle (0.013123in)\dpicstop
+\dpicdraw (5.5,-0.920833)
+ --(5.5,-0.8375)\dpicstop
+\draw (5.5,-1.3625) node[below=-2bp]{{\tt c\_fet(,{,}P)}};
+\dpicdraw (0.473333,-2.127778)
+ --(0.473333,-1.917778)\dpicstop
+\dpicdraw (0.203333,-1.917778)
+ --(0.503333,-1.917778)\dpicstop
+\filldraw[line width=0bp](0.2,-1.817778)
+ --(0.233333,-1.917778)
+ --(0.266667,-1.817778) --cycle\dpicstop
+\dpicdraw (0.233333,-1.707778)
+ --(0.233333,-1.90021)\dpicstop
+\dpicdraw (0.233333,-2.127778)
+ --(0.233333,-1.917778)\dpicstop
+\draw (0.625,-2.227778) node{\tt mosfet(,{,}dGSDF,)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](0.176412,-1.797833)
+ --(0.233333,-1.757778)
+ --(0.163763,-1.759886) --cycle\dpicstop
+\dpicdraw (0.214992,-1.763892)
+ --(0.083333,-1.807778)\dpicstop
+\draw (0.083333,-1.807778) node[left=-2bp]{\tt dG};
+\filldraw[line width=0bp](0.296412,-1.957833)
+ --(0.353333,-1.917778)
+ --(0.283763,-1.919886) --cycle\dpicstop
+\dpicdraw (0.334992,-1.923892)
+ --(0.053333,-2.017778)\dpicstop
+\draw (0.053333,-2.017778) node[left=-2bp]{\tt F};
+\filldraw[line width=0bp](0.176412,-2.117833)
+ --(0.233333,-2.077778)
+ --(0.163763,-2.079886) --cycle\dpicstop
+\dpicdraw (0.214992,-2.083892)
+ --(0.083333,-2.127778)\dpicstop
+\draw (0.083333,-2.127778) node[left=-2bp]{\tt S};
+\filldraw[line width=0bp](0.542903,-2.079886)
+ --(0.473333,-2.077778)
+ --(0.530254,-2.117833) --cycle\dpicstop
+\dpicdraw (0.491675,-2.083892)
+ --(0.623333,-2.127778)\dpicstop
+\draw (0.623333,-2.127778) node[right=-2bp]{\tt D};
+\dpiclw=0.8bp
+\dpicdraw (1.523333,-2.142778)
+ --(1.523333,-1.932778)\dpicstop
+\dpicdraw (1.253333,-1.932778)
+ --(1.553333,-1.932778)\dpicstop
+\dpicdraw (1.403333,-1.932778)
+ --(1.403333,-1.692778)\dpicstop
+\filldraw[line width=0bp](1.436667,-1.852778)
+ --(1.403333,-1.752778)
+ --(1.37,-1.852778) --cycle\dpicstop
+\dpicdraw (1.403333,-1.852778)
+ --(1.403333,-1.770346)\dpicstop
+\dpicdraw (1.283333,-2.142778)
+ --(1.283333,-1.932778)\dpicstop
+\draw (1.403333,-2.292778) node[below=-2bp]{\tt $\ldots$(,{,}uHSDF,)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](1.346412,-1.782833)
+ --(1.403333,-1.742778)
+ --(1.333763,-1.744886) --cycle\dpicstop
+\dpicdraw (1.384992,-1.748892)
+ --(1.253333,-1.792778)\dpicstop
+\draw (1.253333,-1.792778) node[left=-2bp]{\tt uH};
+\dpiclw=0.8bp
+\dpicdraw (2.453333,-2.127778)
+ --(2.453333,-1.917778)\dpicstop
+\filldraw[line width=0bp](2.486667,-2.072778)
+ --(2.453333,-1.972778)
+ --(2.42,-2.072778) --cycle\dpicstop
+\dpicdraw (2.453333,-2.072778)
+ --(2.453333,-1.990346)\dpicstop
+\dpicdraw (2.573333,-2.127778)
+ --(2.573333,-1.917778)\dpicstop
+\dpicdraw (2.303333,-1.917778)
+ --(2.393333,-1.917778)\dpicstop
+\dpicdraw (2.423333,-1.917778)
+ --(2.483333,-1.917778)\dpicstop
+\dpicdraw (2.513333,-1.917778)
+ --(2.603333,-1.917778)\dpicstop
+\dpicdraw (2.573333,-1.857778)
+ --(2.333333,-1.857778)
+ --(2.333333,-1.707778)\dpicstop
+\dpicdraw (2.453333,-2.116708)
+ --(2.453333,-2.127778)
+ --(2.333333,-2.127778)
+ --(2.333333,-2.116708)\dpicstop
+\dpicdraw (2.333333,-2.127778)
+ --(2.333333,-1.917778)\dpicstop
+\draw (2.453333,-2.177778) node[below=-2bp]{\tt $\ldots$(,{,}dMEDSQuB,)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](2.276412,-1.797833)
+ --(2.333333,-1.757778)
+ --(2.263763,-1.759886) --cycle\dpicstop
+\dpicdraw (2.314992,-1.763892)
+ --(2.183333,-1.807778)\dpicstop
+\draw (2.183333,-1.807778) node[left=-2bp]{\tt dM};
+\filldraw[line width=0bp](2.370115,-1.962636)
+ --(2.423333,-1.917778)
+ --(2.354211,-1.925934) --cycle\dpicstop
+\dpicdraw (2.405593,-1.925465)
+ --(2.123333,-2.047778)\dpicstop
+\draw (2.123333,-2.047778) node[left=-2bp]{\tt E};
+\filldraw[line width=0bp](2.342649,-2.175481)
+ --(2.393333,-2.127778)
+ --(2.324761,-2.139703) --cycle\dpicstop
+\dpicdraw (2.376041,-2.136424)
+ --(2.293333,-2.177778)\dpicstop
+\draw (2.293333,-2.177778) node[left=-2bp]{\tt Q};
+\filldraw[line width=0bp](2.522903,-1.954886)
+ --(2.453333,-1.952778)
+ --(2.510254,-1.992833) --cycle\dpicstop
+\dpicdraw (2.471675,-1.958892)
+ --(2.693333,-2.032778)\dpicstop
+\draw (2.693333,-2.032778) node[right=-2bp]{\tt uB};
+\dpiclw=0.8bp
+\dpicdraw (3.503333,-2.127778)
+ --(3.503333,-1.917778)\dpicstop
+\filldraw[line width=0bp](3.536667,-2.072778)
+ --(3.503333,-1.972778)
+ --(3.47,-2.072778) --cycle\dpicstop
+\dpicdraw (3.503333,-2.072778)
+ --(3.503333,-1.990346)\dpicstop
+\dpicdraw (3.623333,-2.127778)
+ --(3.623333,-1.917778)\dpicstop
+\dpicdraw (3.353333,-1.917778)
+ --(3.443333,-1.917778)\dpicstop
+\dpicdraw (3.473333,-1.917778)
+ --(3.533333,-1.917778)\dpicstop
+\dpicdraw (3.563333,-1.917778)
+ --(3.653333,-1.917778)\dpicstop
+\dpicdraw (3.383333,-1.857778)
+ --(3.623333,-1.857778)
+ --(3.623333,-1.707778)\dpicstop
+\dpicdraw (3.383333,-2.127778)
+ --(3.383333,-1.917778)\dpicstop
+\draw (3.503333,-2.277778) node[below=-2bp]{{\tt $\ldots$(,{,}uMEDSuB)}};
+\draw (3.623333,-1.707778) node[left=-2bp]{$G$};
+\draw (3.383333,-2.127778) node[left=-2bp]{$S$};
+\draw (3.623333,-2.127778) node[right=-2bp]{$D$};
+\draw (3.503333,-2.127778) node[below=-2bp]{$B$};
+\dpicdraw (4.643333,-2.112778)
+ --(4.643333,-1.962778)\dpicstop
+\dpicdraw (4.403333,-1.962778)
+ --(4.643333,-1.962778)\dpicstop
+\dpicdraw (4.403333,-2.112778)
+ --(4.403333,-1.962778)\dpicstop
+\dpicdraw (4.403333,-1.902778)
+ --(4.643333,-1.902778)\dpicstop
+\dpicdraw (4.523333,-1.862778) circle (0.015748in)\dpicstop
+\dpicdraw (4.523333,-1.822778)
+ --(4.523333,-1.722778)\dpicstop
+\draw (4.523333,-2.162778) node[below=-2bp]{\tt $\ldots$(,{,}ZSDFdT,)};
+\dpiclw=0.4bp
+\filldraw[line width=0bp](4.370335,-2.05406)
+ --(4.403333,-1.992778)
+ --(4.342051,-2.025776) --cycle\dpicstop
+\dpicdraw (4.389662,-2.006449)
+ --(4.323333,-2.072778)\dpicstop
+\draw (4.323333,-2.072778) node[left=-2bp]{\tt Z};
+\filldraw[line width=0bp](4.520367,-2.007933)
+ --(4.573333,-1.962778)
+ --(4.504258,-1.971321) --cycle\dpicstop
+\dpicdraw (4.323333,-2.072778)
+ --(4.555637,-1.970564)\dpicstop
+\filldraw[line width=0bp](4.577324,-2.08485)
+ --(4.643333,-2.062778)
+ --(4.576074,-2.04487) --cycle\dpicstop
+\dpicdraw (4.323333,-2.072778)
+ --(4.624009,-2.063382)\dpicstop
+\filldraw[line width=0bp](4.592903,-1.744886)
+ --(4.523333,-1.742778)
+ --(4.580254,-1.782833) --cycle\dpicstop
+\dpicdraw (4.541675,-1.748892)
+ --(4.763333,-1.822778)\dpicstop
+\draw (4.763333,-1.822778) node[right=-2bp]{\tt dT};
+\dpiclw=0.8bp
+\dpicdraw (5.483333,-1.917778)
+ --(5.273333,-1.917778)\dpicstop
+\filldraw[line width=0bp](5.328333,-1.951111)
+ --(5.428333,-1.917778)
+ --(5.328333,-1.884444) --cycle\dpicstop
+\dpicdraw (5.410765,-1.917778)
+ --(5.328333,-1.917778)\dpicstop
+\dpicdraw (5.483333,-1.797778)
+ --(5.273333,-1.797778)\dpicstop
+\dpicdraw (5.273333,-2.067778)
+ --(5.273333,-1.977778)\dpicstop
+\dpicdraw (5.273333,-1.947778)
+ --(5.273333,-1.887778)\dpicstop
+\dpicdraw (5.273333,-1.857778)
+ --(5.273333,-1.767778)\dpicstop
+\dpicdraw (5.213333,-1.797778)
+ --(5.213333,-2.037778)
+ --(5.063333,-2.037778)\dpicstop
+\dpicdraw (5.603333,-1.797778)
+ --(5.603333,-1.874477)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (5.603333,-1.874477)
+ --(5.653333,-1.874477)
+ --(5.603333,-1.955544)
+ --(5.553333,-1.874477)
+ --(5.603333,-1.874477)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (5.549282,-1.936079)
+ --(5.549282,-1.961079)
+ --(5.657385,-1.961079)
+ --(5.657385,-1.986079)\dpicstop
+\dpicdraw (5.603333,-1.961079)
+ --(5.603333,-2.037778)\dpicstop
+\dpicdraw (5.483333,-2.037778)
+ --(5.603333,-2.037778)
+ --(5.603333,-1.797778)
+ --(5.483333,-1.797778)\dpicstop
+\dpicdraw (5.472264,-1.917778)
+ --(5.483333,-1.917778)
+ --(5.483333,-2.037778)
+ --(5.472264,-2.037778)\dpicstop
+\dpicdraw (5.483333,-2.037778)
+ --(5.273333,-2.037778)\dpicstop
+\dpicdraw (5.603333,-2.037778)
+ --(5.603333,-2.157778)\dpicstop
+\dpicdraw (5.603333,-1.797778)
+ --(5.603333,-1.677778)\dpicstop
+\dpicdraw (5.423333,-1.917778) circle (0.11811in)\dpicstop
+\draw (5.393333,-2.367778) node[below=-2bp]{\tt IRF4905};
+\draw (5.063333,-2.037778) node[left=-2bp]{$G$};
+\draw (5.603333,-1.677778) node[above right=-2bp]{$D$};
+\draw (5.603333,-2.157778) node[below right=-2bp]{$S$};
+\dpicdraw (0.2,-1.175)
+ --(0.2,-1)\dpicstop
+\filldraw[line width=0bp](0.172222,-1.045833)
+ --(0.2,-1.129167)
+ --(0.227778,-1.045833) --cycle\dpicstop
+\dpicdraw (0.2,-1.111598)
+ --(0.2,-1.045833)\dpicstop
+\dpicdraw (0.3,-1.175)
+ --(0.3,-1)\dpicstop
+\dpicdraw (0.075,-1)
+ --(0.325,-1)\dpicstop
+\dpicdraw (0.075,-0.843875)
+ --(0.075,-0.95)
+ --(0.158333,-0.95)\dpicstop
+\dpicdraw (0.241667,-0.804388)
+ --(0.241667,-0.95)
+ --(0.325,-0.95)\dpicstop
+\dpicdraw (0.2,-1.16393)
+ --(0.2,-1.175)
+ --(0.1,-1.175)
+ --(0.1,-1.16393)\dpicstop
+\dpicdraw (0.1,-1.175)
+ --(0.1,-1)\dpicstop
+\dpicdraw (0.2,-1) circle (0.07874in)\dpicstop
+\draw (0.075,-0.843875) node[above left=-2bp]{$G0$};
+\draw (0.241667,-0.804388) node[above right=-2bp]{$G1$};
+\draw (0.725,-1.48) node{\tt mosfet(,{,}dBSDFQM1,E)};
+\dpicdraw (1.025,-1.175)
+ --(1.025,-1)\dpicstop
+\filldraw[line width=0bp](0.997222,-1.045833)
+ --(1.025,-1.129167)
+ --(1.052778,-1.045833) --cycle\dpicstop
+\dpicdraw (1.025,-1.111598)
+ --(1.025,-1.045833)\dpicstop
+\dpicdraw (1.125,-1.175)
+ --(1.125,-1)\dpicstop
+\dpicdraw (0.9,-1)
+ --(1.15,-1)\dpicstop
+\dpicdraw (1.15,-0.8)
+ --(1.15,-0.95)
+ --(1.066667,-0.95)\dpicstop
+\dpicdraw (0.983333,-0.8)
+ --(0.983333,-0.95)
+ --(0.9,-0.95)\dpicstop
+\dpicdraw (1.025,-1.16393)
+ --(1.025,-1.175)
+ --(0.925,-1.175)
+ --(0.925,-1.16393)\dpicstop
+\dpicdraw (0.925,-1.175)
+ --(0.925,-1)\dpicstop
+\draw (1.15,-0.8) node[above right=-2bp]{$G0$};
+\draw (0.983333,-0.8) node[above left=-2bp]{$G1$};
+\draw (1.025,-1.275) node{\tt ...(,{,}dBSDFQuM1)};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/fet.m4 b/graphics/circuit_macros/doc/fetMan.m4
index 08498ef83d..08498ef83d 100644
--- a/graphics/circuit_macros/doc/fet.m4
+++ b/graphics/circuit_macros/doc/fetMan.m4
diff --git a/graphics/circuit_macros/doc/relaycoil.m4 b/graphics/circuit_macros/doc/relaycoilMan.m4
index b3273794cd..b3273794cd 100644
--- a/graphics/circuit_macros/doc/relaycoil.m4
+++ b/graphics/circuit_macros/doc/relaycoilMan.m4
diff --git a/graphics/circuit_macros/doc/sampleIC.m4 b/graphics/circuit_macros/doc/sampleIC.m4
new file mode 100644
index 0000000000..bf2bb2358e
--- /dev/null
+++ b/graphics/circuit_macros/doc/sampleIC.m4
@@ -0,0 +1,16 @@
+.PS
+log_init
+command "\small\sf"
+
+ U: box wid 18*L_unit ht 9*lg_pinsep
+
+ Loopover_(`x',
+ `lg_pin(U.nw-(0,m4Lx*lg_pinsep),,,w`'x)',
+ nul,L,M,I,O,N,E,NE)
+
+ define(`Upin',
+ `lg_pin(U.ne-(0,(17-`$1')*lg_pinsep),`$2',Pin`$1',e`$3',`$1',8*L_unit)')
+ Loopover_(`x',
+ `Upin(patsubst(x,;,`,'))',
+ 16;Vin;, 15;D0;L, 14;D1;M, 13;D2;I, 12;D3;O, 11;D4;N, 10;D5;E, 9;D6;NE )
+.PE
diff --git a/graphics/circuit_macros/doc/thyristor.tex b/graphics/circuit_macros/doc/thyristor.tex
new file mode 100644
index 0000000000..33b2c5261c
--- /dev/null
+++ b/graphics/circuit_macros/doc/thyristor.tex
@@ -0,0 +1,561 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (-2.38478,-0.179985)
+ --(-2.38478,-0.3189)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-2.38478,-0.3189)
+ --(-2.343113,-0.3189)
+ --(-2.38478,-0.385534)
+ --(-2.426446,-0.3189)
+ --(-2.38478,-0.3189)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-2.430498,-0.391069)
+ --(-2.339061,-0.391069)\dpicstop
+\dpicdraw (-2.363946,-0.391069)
+ --(-2.32228,-0.463238)\dpicstop
+\dpicdraw (-2.38478,-0.391069)
+ --(-2.38478,-0.529985)\dpicstop
+\draw (-2.38478,-0.179985) node[above=-2bp]{\sl A};
+\draw (-2.38478,-0.529985) node[below=-2bp]{\sl K};
+\draw (-2.32228,-0.463238) node[right=-2bp]{\sl G};
+\draw (-2.376389,-0.779985) node{\tt thyristor};
+\dpicdraw (-1.876389,-0.179985)
+ --(-1.876389,-0.3189)\dpicstop
+\dpicdraw (-1.876389,-0.3189)
+ --(-1.813889,-0.427154)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-1.834722,-0.3189)
+ --(-1.793056,-0.3189)
+ --(-1.834722,-0.385534)
+ --(-1.876389,-0.3189)
+ --(-1.834722,-0.3189)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-1.963774,-0.391069)
+ --(-1.789004,-0.391069)\dpicstop
+\dpicdraw (-1.963774,-0.3189)
+ --(-1.789004,-0.3189)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-1.918056,-0.391069)
+ --(-1.876389,-0.391069)
+ --(-1.918056,-0.324435)
+ --(-1.959722,-0.391069)
+ --(-1.918056,-0.391069)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-1.876389,-0.391069)
+ --(-1.876389,-0.529985)\dpicstop
+\draw (-1.876389,-0.179985) node[above=-2bp]{\sl T1};
+\draw (-1.876389,-0.529985) node[below=-2bp]{\sl T2};
+\draw (-1.813889,-0.427154) node[below right=-2bp]{\sl G};
+\draw (-1.876389,-0.879985) node{\tt ...(,B)};
+\dpicdraw (-1.376389,-0.179985)
+ --(-1.376389,-0.3439)\dpicstop
+\dpicdraw (-1.376389,-0.3439)
+ --(-1.438889,-0.452154)\dpicstop
+\dpicdraw (-1.418056,-0.3439)
+ --(-1.376389,-0.3439)
+ --(-1.418056,-0.410534)
+ --(-1.459722,-0.3439)
+ --(-1.418056,-0.3439)\dpicstop
+\dpicdraw (-1.463774,-0.416069)
+ --(-1.289004,-0.416069)\dpicstop
+\dpicdraw (-1.463774,-0.3439)
+ --(-1.289004,-0.3439)\dpicstop
+\dpicdraw (-1.334722,-0.416069)
+ --(-1.293056,-0.416069)
+ --(-1.334722,-0.349435)
+ --(-1.376389,-0.416069)
+ --(-1.334722,-0.416069)\dpicstop
+\dpicdraw (-1.376389,-0.416069)
+ --(-1.376389,-0.579985)\dpicstop
+\draw (-1.376389,-0.179985) node[above=-2bp]{\sl T1};
+\draw (-1.376389,-0.579985) node[below=-2bp]{\sl T2};
+\draw (-1.438889,-0.452154) node[below left=-2bp]{\sl G};
+\draw (-1.376389,-0.799985) node{\tt ...(,BRK)};
+\dpicdraw (-0.776389,-0.179985)
+ --(-0.776389,-0.3189)\dpicstop
+\dpicdraw (-0.776389,-0.3189)
+ --(-0.693056,-0.463238)
+ --(-0.637945,-0.463238)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-0.734722,-0.3189)
+ --(-0.693056,-0.3189)
+ --(-0.734722,-0.385534)
+ --(-0.776389,-0.3189)
+ --(-0.734722,-0.3189)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-0.863774,-0.391069)
+ --(-0.689004,-0.391069)\dpicstop
+\dpicdraw (-0.863774,-0.3189)
+ --(-0.689004,-0.3189)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-0.818056,-0.391069)
+ --(-0.776389,-0.391069)
+ --(-0.818056,-0.324435)
+ --(-0.859722,-0.391069)
+ --(-0.818056,-0.391069)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-0.776389,-0.391069)
+ --(-0.776389,-0.529985)\dpicstop
+\dpicdraw (-0.776389,-0.354985) circle (0.068898in)\dpicstop
+\draw (-0.776389,-0.179985) node[above=-2bp]{\sl T1};
+\draw (-0.776389,-0.529985) node[below=-2bp]{\sl T2};
+\draw (-0.637945,-0.463238) node[below right=-2bp]{\sl G};
+\draw (-0.776389,-0.879985) node{\tt ...(,BE)};
+\dpicdraw (-0.28478,-0.179985)
+ --(-0.28478,-0.3189)\dpicstop
+\dpicdraw (-0.28478,-0.3189)
+ --(-0.243113,-0.3189)
+ --(-0.28478,-0.385534)
+ --(-0.326446,-0.3189)
+ --(-0.28478,-0.3189)\dpicstop
+\dpicdraw (-0.330498,-0.391069)
+ --(-0.239061,-0.391069)\dpicstop
+\dpicdraw (-0.263946,-0.391069)
+ --(-0.22228,-0.463238)\dpicstop
+\dpicdraw (-0.28478,-0.391069)
+ --(-0.28478,-0.529985)\dpicstop
+\draw (-0.28478,-0.179985) node[above=-2bp]{\sl A};
+\draw (-0.28478,-0.529985) node[below=-2bp]{\sl K};
+\draw (-0.22228,-0.463238) node[right=-2bp]{\sl G};
+\draw (-0.276389,-0.879985) node{\tt ...(,A)};
+\dpicdraw (0.21522,-0.179985)
+ --(0.21522,-0.3189)\dpicstop
+\dpicdraw (0.21522,-0.3189)
+ --(0.256887,-0.3189)
+ --(0.21522,-0.385534)
+ --(0.21522,-0.3189)\dpicstop
+\dpicdraw (0.21522,-0.3189)
+ --(0.173554,-0.3189)\dpicstop
+\dpicdraw (0.169502,-0.391069)
+ --(0.260939,-0.391069)\dpicstop
+\dpicdraw (0.236054,-0.391069)
+ --(0.27772,-0.463238)\dpicstop
+\dpicdraw (0.21522,-0.391069)
+ --(0.21522,-0.529985)\dpicstop
+\draw (0.21522,-0.179985) node[above=-2bp]{\sl A};
+\draw (0.21522,-0.529985) node[below=-2bp]{\sl K};
+\draw (0.27772,-0.463238) node[right=-2bp]{\sl G};
+\draw (0.223611,-0.749985) node{\tt ...(,F)};
+\dpicdraw (0.873611,-0.179985)
+ --(0.873611,-0.3189)\dpicstop
+\dpicdraw (0.873611,-0.3189)
+ --(0.790278,-0.463238)
+ --(0.735167,-0.463238)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.831944,-0.3189)
+ --(0.873611,-0.3189)
+ --(0.831944,-0.385534)
+ --(0.790278,-0.3189)
+ --(0.831944,-0.3189)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.786226,-0.391069)
+ --(0.960996,-0.391069)\dpicstop
+\dpicdraw (0.786226,-0.3189)
+ --(0.960996,-0.3189)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.915278,-0.391069)
+ --(0.956944,-0.391069)
+ --(0.915278,-0.324435)
+ --(0.873611,-0.391069)
+ --(0.915278,-0.391069)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.873611,-0.391069)
+ --(0.873611,-0.529985)\dpicstop
+\dpicdraw (0.873611,-0.354985) circle (0.068898in)\dpicstop
+\draw (0.873611,-0.179985) node[above=-2bp]{\sl T1};
+\draw (0.873611,-0.529985) node[below=-2bp]{\sl T2};
+\draw (0.735167,-0.463238) node[below left=-2bp]{\sl G};
+\draw (0.873611,-0.879985) node{\tt ...(,BRE)};
+\dpicdraw (1.623611,-0.179985)
+ --(1.623611,-0.3189)\dpicstop
+\dpicdraw (1.623611,-0.3189)
+ --(1.665278,-0.3189)
+ --(1.623611,-0.385534)
+ --(1.581944,-0.3189)
+ --(1.623611,-0.3189)\dpicstop
+\dpicdraw (1.623611,-0.3189)
+ --(1.623611,-0.391069)\dpicstop
+\dpicdraw (1.577893,-0.391069)
+ --(1.66933,-0.391069)\dpicstop
+\dpicdraw (1.602778,-0.391069)
+ --(1.561111,-0.463238)
+ --(1.486111,-0.463238)\dpicstop
+\dpicdraw (1.623611,-0.391069)
+ --(1.623611,-0.529985)\dpicstop
+\dpicdraw (1.623611,-0.354985) circle (0.068898in)\dpicstop
+\draw (1.623611,-0.179985) node[above=-2bp]{\sl A};
+\draw (1.623611,-0.529985) node[below=-2bp]{\sl K};
+\draw (1.486111,-0.463238) node[below left=-2bp]{\sl G};
+\draw (1.623611,-0.749985) node{\tt ...(,UARE)};
+\dpicdraw (2.123611,-0.179985)
+ --(2.123611,-0.3189)\dpicstop
+\dpicdraw (2.123611,-0.3189)
+ --(2.165278,-0.3189)
+ --(2.123611,-0.385534)
+ --(2.081944,-0.3189)
+ --(2.123611,-0.3189)\dpicstop
+\dpicdraw (2.077893,-0.354985)
+ --(2.16933,-0.354985)\dpicstop
+\dpicdraw (2.077893,-0.391069)
+ --(2.16933,-0.391069)\dpicstop
+\dpicdraw (2.123611,-0.391069)
+ --(2.123611,-0.529985)\dpicstop
+\dpiclw=0.4bp
+\filldraw[line width=0bp](2.135537,-0.286412)
+ --(2.123611,-0.354985)
+ --(2.171314,-0.304301) --cycle\dpicstop
+\dpicdraw (2.223611,-0.254985)
+ --(2.198611,-0.254985)
+ ..controls (2.181944,-0.254985) and (2.166719,-0.268769)
+ ..(2.152934,-0.296338)
+ --(2.132257,-0.337692)\dpicstop
+\dpiclw=0.8bp
+\draw (2.123611,-0.179985) node[above=-2bp]{\sl A};
+\draw (2.123611,-0.529985) node[below=-2bp]{\sl K};
+\draw (2.223611,-0.254985) node[right=-2bp]{\sl G};
+\draw (2.123611,-0.879985) node{\tt ...(,AV)};
+\dpicdraw (2.523611,-0.229985)
+ --(2.523611,-0.429985)\dpicstop
+\dpicdraw (2.723611,-0.179985)
+ --(2.523611,-0.269985)\dpicstop
+\filldraw[line width=0bp](2.638206,-0.187957)
+ --(2.573611,-0.247485)
+ --(2.661004,-0.238619) --cycle\dpicstop
+\dpicdraw (2.673611,-0.202485)
+ --(2.589632,-0.240275)\dpicstop
+\dpicdraw (2.723611,-0.479985)
+ --(2.523611,-0.389985)\dpicstop
+\filldraw[line width=0bp](2.586219,-0.448619)
+ --(2.673611,-0.457485)
+ --(2.609017,-0.397957) --cycle\dpicstop
+\dpicdraw (2.65759,-0.450275)
+ --(2.573611,-0.412485)\dpicstop
+\dpicdraw (2.523611,-0.329985)
+ --(2.597685,-0.363318)\dpicstop
+\draw (2.723611,-0.179985) node[above right=-2bp]{\sl A};
+\draw (2.723611,-0.479985) node[below right=-2bp]{\sl K};
+\draw (2.597685,-0.363318) node[right=-2bp]{\sl G};
+\draw (2.623611,-0.699985) node{\tt ...(,IEC)};
+\dpicdraw (-2.457639,-1.336073)
+ --(-2.457639,-1.474989)\dpicstop
+\dpicdraw (-2.457639,-1.474989)
+ --(-2.415972,-1.474989)
+ --(-2.457639,-1.541623)
+ --(-2.499306,-1.474989)
+ --(-2.457639,-1.474989)\dpicstop
+\dpicdraw (-2.457639,-1.474989)
+ --(-2.457639,-1.547157)\dpicstop
+\dpicdraw (-2.436806,-1.511073)
+ --(-2.34942,-1.511073)\dpicstop
+\dpicdraw (-2.503357,-1.547157)
+ --(-2.41192,-1.547157)\dpicstop
+\dpicdraw (-2.457639,-1.547157)
+ --(-2.457639,-1.686073)\dpicstop
+\draw (-2.457639,-1.336073) node[above left=-2bp]{\sl A};
+\draw (-2.457639,-1.686073) node[below left=-2bp]{\sl K};
+\draw (-2.34942,-1.511073) node[right=-2bp]{\sl G};
+\draw (-2.426389,-2.036073) node{\tt ...(,UAH)};
+\dpicdraw (-1.867998,-1.336073)
+ --(-1.867998,-1.474989)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-1.867998,-1.474989)
+ --(-1.826331,-1.474989)
+ --(-1.867998,-1.541623)
+ --(-1.909665,-1.474989)
+ --(-1.867998,-1.474989)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-1.913717,-1.547157)
+ --(-1.82228,-1.547157)\dpicstop
+\dpicdraw (-1.888831,-1.474989)
+ --(-1.930498,-1.40282)\dpicstop
+\dpicdraw (-1.867998,-1.547157)
+ --(-1.867998,-1.686073)\dpicstop
+\draw (-1.867998,-1.336073) node[above=-2bp]{\sl A};
+\draw (-1.867998,-1.686073) node[below=-2bp]{\sl K};
+\draw (-1.930498,-1.40282) node[left=-2bp]{\sl Ga};
+\draw (-1.876389,-1.906073) node{\tt ...(,N)};
+\dpicdraw (-1.326389,-1.336073)
+ --(-1.326389,-1.474989)\dpicstop
+\dpicdraw (-1.326389,-1.474989)
+ --(-1.284722,-1.474989)
+ --(-1.326389,-1.541623)
+ --(-1.368056,-1.474989)
+ --(-1.326389,-1.474989)\dpicstop
+\dpicdraw (-1.326389,-1.474989)
+ --(-1.326389,-1.547157)\dpicstop
+\dpicdraw (-1.372107,-1.547157)
+ --(-1.28067,-1.547157)\dpicstop
+\dpicdraw (-1.305556,-1.474989)
+ --(-1.263889,-1.40282)
+ --(-1.188889,-1.40282)\dpicstop
+\dpicdraw (-1.326389,-1.547157)
+ --(-1.326389,-1.686073)\dpicstop
+\dpicdraw (-1.326389,-1.511073) circle (0.068898in)\dpicstop
+\draw (-1.326389,-1.336073) node[above=-2bp]{\sl A};
+\draw (-1.326389,-1.686073) node[below=-2bp]{\sl K};
+\draw (-1.188889,-1.40282) node[above right=-2bp]{\sl Ga};
+\draw (-1.326389,-2.036073) node{\tt ...(,UANRE)};
+\dpicdraw (-0.78478,-1.336073)
+ --(-0.78478,-1.474989)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-0.78478,-1.474989)
+ --(-0.743113,-1.474989)
+ --(-0.78478,-1.541623)
+ --(-0.826446,-1.474989)
+ --(-0.78478,-1.474989)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-0.830498,-1.547157)
+ --(-0.739061,-1.547157)\dpicstop
+\dpicdraw (-0.763946,-1.547157)
+ --(-0.72228,-1.619326)\dpicstop
+\dpicdraw (-0.78478,-1.547157)
+ --(-0.78478,-1.686073)\dpicstop
+\draw (-0.78478,-1.336073) node[above=-2bp]{\sl A};
+\draw (-0.78478,-1.686073) node[below left=-2bp]{\sl K};
+\draw (-0.72228,-1.619326) node[below right=-2bp]{\sl G};
+\draw (-0.776389,-1.906073) node{\tt ...(,SCR)};
+\dpicdraw (-0.226389,-1.336073)
+ --(-0.226389,-1.474989)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-0.226389,-1.474989)
+ --(-0.184722,-1.474989)
+ --(-0.226389,-1.541623)
+ --(-0.268056,-1.474989)
+ --(-0.226389,-1.474989)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-0.272107,-1.547157)
+ --(-0.18067,-1.547157)\dpicstop
+\dpicdraw (-0.205556,-1.547157)
+ --(-0.163889,-1.619326)
+ --(-0.088889,-1.619326)\dpicstop
+\dpicdraw (-0.226389,-1.547157)
+ --(-0.226389,-1.686073)\dpicstop
+\dpicdraw (-0.226389,-1.511073) circle (0.068898in)\dpicstop
+\draw (-0.226389,-1.336073) node[above=-2bp]{\sl A};
+\draw (-0.226389,-1.686073) node[below=-2bp]{\sl K};
+\draw (-0.088889,-1.619326) node[below right=-2bp]{\sl G};
+\draw (-0.226389,-2.036073) node{\tt ...(SCRE)};
+\dpicdraw (0.423611,-1.336073)
+ --(0.423611,-1.474989)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.423611,-1.474989)
+ --(0.465278,-1.474989)
+ --(0.423611,-1.541623)
+ --(0.381944,-1.474989)
+ --(0.423611,-1.474989)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.377893,-1.547157)
+ --(0.46933,-1.547157)\dpicstop
+\dpicdraw (0.402778,-1.547157)
+ --(0.361111,-1.619326)
+ --(0.286111,-1.619326)\dpicstop
+\dpicdraw (0.423611,-1.547157)
+ --(0.423611,-1.686073)\dpicstop
+\dpicdraw (0.423611,-1.511073) circle (0.068898in)\dpicstop
+\draw (0.423611,-1.336073) node[above=-2bp]{\sl A};
+\draw (0.423611,-1.686073) node[below=-2bp]{\sl K};
+\draw (0.286111,-1.619326) node[below left=-2bp]{\sl G};
+\draw (0.423611,-1.906073) node{\tt ...(SCRRE)};
+\dpicdraw (0.973611,-1.336073)
+ --(0.973611,-1.474989)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (0.973611,-1.474989)
+ --(1.015278,-1.474989)
+ --(0.973611,-1.541623)
+ --(0.931944,-1.474989)
+ --(0.973611,-1.474989)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (0.927893,-1.547157)
+ --(1.01933,-1.547157)\dpicstop
+\dpicdraw (0.952778,-1.474989)
+ --(0.911111,-1.40282)\dpicstop
+\dpicdraw (0.994444,-1.547157)
+ --(1.036111,-1.619326)\dpicstop
+\dpicdraw (0.973611,-1.547157)
+ --(0.973611,-1.686073)\dpicstop
+\draw (0.973611,-1.336073) node[above=-2bp]{\sl A};
+\draw (0.973611,-1.686073) node[below=-2bp]{\sl K};
+\draw (1.036111,-1.619326) node[right=-2bp]{\sl G};
+\draw (0.973611,-2.036073) node{\tt ...(SCS)};
+\draw (0.911111,-1.40282) node[above left=-2bp]{\sl Ga};
+\dpicdraw (1.523611,-1.336073)
+ --(1.523611,-1.474989)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (1.523611,-1.474989)
+ --(1.565278,-1.474989)
+ --(1.523611,-1.541623)
+ --(1.481944,-1.474989)
+ --(1.523611,-1.474989)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (1.477893,-1.547157)
+ --(1.56933,-1.547157)\dpicstop
+\dpicdraw (1.502778,-1.474989)
+ --(1.461111,-1.40282)
+ --(1.386111,-1.40282)\dpicstop
+\dpicdraw (1.544444,-1.547157)
+ --(1.586111,-1.619326)
+ --(1.661111,-1.619326)\dpicstop
+\dpicdraw (1.523611,-1.547157)
+ --(1.523611,-1.686073)\dpicstop
+\dpicdraw (1.523611,-1.511073) circle (0.068898in)\dpicstop
+\draw (1.523611,-1.336073) node[above=-2bp]{\sl A};
+\draw (1.523611,-1.686073) node[below=-2bp]{\sl K};
+\draw (1.661111,-1.619326) node[below right=-2bp]{\sl G};
+\draw (1.523611,-1.906073) node{\tt ...(SCSE)};
+\draw (1.386111,-1.40282) node[above left=-2bp]{\sl Ga};
+\dpicdraw (2.173611,-1.336073)
+ --(2.173611,-1.474989)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.173611,-1.474989)
+ --(2.215278,-1.474989)
+ --(2.173611,-1.541623)
+ --(2.173611,-1.474989)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (2.173611,-1.474989)
+ --(2.002372,-1.474989)\dpicstop
+\dpicdraw (2.173611,-1.547157)
+ --(2.173611,-1.686073)\dpicstop
+\dpicdraw (2.173611,-1.511073) circle (0.068898in)\dpicstop
+\draw (2.173611,-1.336073) node[above=-2bp]{\sl A};
+\draw (2.173611,-1.686073) node[below=-2bp]{\sl K};
+\draw (2.002372,-1.474989) node[left=-2bp]{\sl G};
+\draw (2.173611,-2.036073) node{\tt ...(SUSE)};
+\dpicdraw (2.823611,-1.336073)
+ --(2.823611,-1.438904)\dpicstop
+\dpicdraw (2.781944,-1.438904)
+ --(2.823611,-1.438904)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (2.823611,-1.438904)
+ --(2.865278,-1.438904)
+ --(2.823611,-1.583242)
+ --(2.781944,-1.583242)
+ --(2.823611,-1.438904)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (2.865278,-1.583242)
+ --(2.823611,-1.583242)\dpicstop
+\dpicdraw (2.865278,-1.511073)
+ --(2.648611,-1.511073)\dpicstop
+\dpicdraw (2.823611,-1.583242)
+ --(2.823611,-1.686073)\dpicstop
+\dpicdraw (2.823611,-1.511073) circle (0.068898in)\dpicstop
+\draw (2.823611,-1.336073) node[above=-2bp]{\sl T1};
+\draw (2.823611,-1.686073) node[below=-2bp]{\sl T2};
+\draw (2.648611,-1.511073) node[left=-2bp]{\sl G};
+\draw (2.823611,-1.906073) node{\tt ...(SBSE)};
+\dpicdraw (-2.751389,-2.402454)
+ --(-2.412473,-2.402454)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-2.412473,-2.402454)
+ --(-2.412473,-2.360788)
+ --(-2.345839,-2.402454)
+ --(-2.412473,-2.444121)
+ --(-2.412473,-2.402454)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-2.340304,-2.448173)
+ --(-2.340304,-2.356736)\dpicstop
+\dpicdraw (-2.340304,-2.381621)
+ --(-2.268136,-2.339954)\dpicstop
+\dpicdraw (-2.340304,-2.402454)
+ --(-2.001389,-2.402454)\dpicstop
+\draw (-2.001389,-2.394064) node[right=-2bp]{\tt scr(,{,}Q)};
+\draw (-2.268136,-2.339954) node[above=-2bp]{\sl Q.G};
+\dpicdraw (-2.751389,-2.802454)
+ --(-2.412473,-2.802454)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-2.412473,-2.802454)
+ --(-2.412473,-2.760788)
+ --(-2.345839,-2.802454)
+ --(-2.412473,-2.844121)
+ --(-2.412473,-2.802454)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-2.340304,-2.848173)
+ --(-2.340304,-2.756736)\dpicstop
+\dpicdraw (-2.412473,-2.823288)
+ --(-2.484642,-2.864954)\dpicstop
+\dpicdraw (-2.340304,-2.781621)
+ --(-2.268136,-2.739954)\dpicstop
+\dpicdraw (-2.340304,-2.802454)
+ --(-2.001389,-2.802454)\dpicstop
+\draw (-2.001389,-2.802454) node[right=-2bp]{\tt scs(,{,}Q2)};
+\draw (-2.268136,-2.739954) node[above=-2bp]{\sl Q2.G};
+\draw (-2.484642,-2.864954) node[below=-2bp]{\sl Q2.Ga};
+\dpicdraw (-0.973611,-2.600574)
+ --(-0.634696,-2.600574)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (-0.634696,-2.600574)
+ --(-0.634696,-2.642241)
+ --(-0.568062,-2.600574)
+ --(-0.634696,-2.600574)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (-0.634696,-2.600574)
+ --(-0.634696,-2.429335)\dpicstop
+\dpicdraw (-0.562527,-2.600574)
+ --(-0.223611,-2.600574)\dpicstop
+\dpicdraw (-0.598611,-2.600574) circle (0.068898in)\dpicstop
+\draw (-0.223611,-2.600574) node[right=-2bp]{\tt sus(,RE,Q3)};
+\draw (-0.634696,-2.429335) node[above=-2bp]{\sl Q3.G};
+\dpicdraw (0.976389,-2.600574)
+ --(1.27922,-2.600574)\dpicstop
+\dpicdraw (1.27922,-2.642241)
+ --(1.27922,-2.600574)\dpicstop
+\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
+\global\def\dpicstop{--}
+\dpicshdraw[fill=white!0!black]
+\dpicdraw (1.27922,-2.600574)
+ --(1.27922,-2.558907)
+ --(1.423558,-2.600574)
+ --(1.423558,-2.642241)
+ --(1.27922,-2.600574)\dpicstop
+cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
+\dpicdraw (1.423558,-2.558907)
+ --(1.423558,-2.600574)\dpicstop
+\dpicdraw (1.351389,-2.558907)
+ --(1.351389,-2.775574)\dpicstop
+\dpicdraw (1.423558,-2.600574)
+ --(1.726389,-2.600574)\dpicstop
+\dpicdraw (1.351389,-2.600574) circle (0.068898in)\dpicstop
+\draw (1.726389,-2.600574) node[right=-2bp]{\tt sbs(,E,Q4)};
+\draw (1.351389,-2.775574) node[below=-2bp]{\sl Q4.G};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/thyristor.m4 b/graphics/circuit_macros/doc/thyristorMan.m4
index ecc6448bf3..ecc6448bf3 100644
--- a/graphics/circuit_macros/doc/thyristor.m4
+++ b/graphics/circuit_macros/doc/thyristorMan.m4
diff --git a/graphics/circuit_macros/doc/ujt.tex b/graphics/circuit_macros/doc/ujt.tex
new file mode 100644
index 0000000000..46a8566fe6
--- /dev/null
+++ b/graphics/circuit_macros/doc/ujt.tex
@@ -0,0 +1,81 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0.9,-0.15)
+ --(0.9,0)\dpicstop
+\dpicdraw (0.9,0)
+ --(0.725,0)\dpicstop
+\dpicdraw (0.725,-0.025)
+ --(0.725,0.225)\dpicstop
+\dpicdraw (0.725,0.2)
+ --(0.9,0.2)
+ --(0.9,0.35)\dpicstop
+\dpicdraw (0.55,0.2)
+ --(0.725,0.1)\dpicstop
+\filldraw[line width=0bp](0.61699,0.129727)
+ --(0.703125,0.1125)
+ --(0.644553,0.177963) --cycle\dpicstop
+\dpicdraw (0.55,0.2)
+ --(0.687872,0.121216)\dpicstop
+\dpicdraw (0.725,0.1) circle (0.07874in)\dpicstop
+\draw (0.9,-0.15) node[right=-2bp]{\sl B1};
+\draw (0.4625,0.25) node{{\sl E}};
+\draw (0.9,0.35) node[right=-2bp]{\sl B2};
+\draw (0.725,-0.3) node{{\tt ujt(up\_ dimen\_,{,},E)}};
+\dpicdraw (2.125,0)
+ --(1.95,0)\dpicstop
+\dpicdraw (1.95,-0.025)
+ --(1.95,0.225)\dpicstop
+\dpicdraw (1.95,0.2)
+ --(2.125,0.2)\dpicstop
+\dpicdraw (1.775,0.2)
+ --(1.95,0.1)\dpicstop
+\filldraw[line width=0bp](1.88301,0.170273)
+ --(1.796875,0.1875)
+ --(1.855447,0.122037) --cycle\dpicstop
+\dpicdraw (1.95,0.1)
+ --(1.812128,0.178784)\dpicstop
+\draw (2.125,0) node[below=-2bp]{\sl B1};
+\draw (1.6875,0.25) node{{\sl E}};
+\draw (2.125,0.2) node[above=-2bp]{\sl B2};
+\draw (2.05,-0.175) node[below=-2bp]{{\tt ujt(,{,}P,)}};
+\dpicdraw (2.925,0)
+ --(3.1,0)\dpicstop
+\dpicdraw (3.1,-0.025)
+ --(3.1,0.225)\dpicstop
+\dpicdraw (3.1,0.2)
+ --(2.925,0.2)\dpicstop
+\dpicdraw (3.275,0.2)
+ --(3.1,0.1)\dpicstop
+\filldraw[line width=0bp](3.180447,0.177963)
+ --(3.121875,0.1125)
+ --(3.20801,0.129727) --cycle\dpicstop
+\dpicdraw (3.275,0.2)
+ --(3.137128,0.121216)\dpicstop
+\draw (2.925,0) node[below=-2bp]{\sl B1};
+\draw (3.3625,0.25) node{{\sl E}};
+\draw (2.925,0.2) node[above=-2bp]{\sl B2};
+\draw (3.1,-0.175) node[below=-2bp]{{\tt ujt(,R,{,})}};
+\dpicdraw (4.075,0)
+ --(4.25,0)\dpicstop
+\dpicdraw (4.25,-0.025)
+ --(4.25,0.225)\dpicstop
+\dpicdraw (4.25,0.2)
+ --(4.075,0.2)\dpicstop
+\dpicdraw (4.425,0.2)
+ --(4.25,0.1)\dpicstop
+\filldraw[line width=0bp](4.344553,0.122037)
+ --(4.403125,0.1875)
+ --(4.31699,0.170273) --cycle\dpicstop
+\dpicdraw (4.25,0.1)
+ --(4.387872,0.178784)\dpicstop
+\draw (4.075,0) node[below=-2bp]{\sl B1};
+\draw (4.5125,0.25) node{{\sl E}};
+\draw (4.075,0.2) node[above=-2bp]{\sl B2};
+\draw (4.25,-0.175) node[below=-2bp]{{\tt ujt(,R,P,)}};
+\end{tikzpicture}
+\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/ujt.m4 b/graphics/circuit_macros/doc/ujtMan.m4
index aa4e708462..aa4e708462 100644
--- a/graphics/circuit_macros/doc/ujt.m4
+++ b/graphics/circuit_macros/doc/ujtMan.m4
diff --git a/graphics/circuit_macros/dpictools.pic b/graphics/circuit_macros/dpictools.pic
index ead69e973e..8f39057417 100644
--- a/graphics/circuit_macros/dpictools.pic
+++ b/graphics/circuit_macros/dpictools.pic
@@ -3,7 +3,7 @@
# m4 macro NeedDpicTools or the pic statement copy "HOMELIB_/dpictools.pic"
# when HOMELIB_ is defined or, generically, copy "<path>dpictools.pic"
-# Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under #
+# Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under #
# the LaTeX Project Public Licence in file Licence.txt. The files of #
# this distribution may be redistributed or modified provided that this #
# copyright notice is included and provided that modifications are clearly #
@@ -149,9 +149,9 @@ define arraymin { { $3 = -1; if "$4" != "" then { $4 = 0 }; m_arrm = 1e25
# for data separated by comma, spaces, or tabs
define copythru {
sh "sed -e 's/^[ ]*/$1(/' -e 's/[ ]*$/)/' -e 's/[, ][ ]*/,/g' $2 \
- > copy_tmp__"
- copy "copy_tmp__"
- sh "rm -f copy_tmp__";}
+ > copythru_tmp__"
+ copy "copythru_tmp__"
+ sh "rm -f copythru_tmp__";}
# randn(array_name,n,mean,stddev)
# Assign n Gaussian random numbers
diff --git a/graphics/circuit_macros/examples/AntiqueClock.m4 b/graphics/circuit_macros/examples/AntiqueClock.m4
index 566fb4c814..814824bee7 100644
--- a/graphics/circuit_macros/examples/AntiqueClock.m4
+++ b/graphics/circuit_macros/examples/AntiqueClock.m4
@@ -2,7 +2,11 @@
# AntiqueClock.m4
gen_init
NeedDpicTools
-iflatex(command "{\sf")
+
+# PSTricks or tikz only:
+ifelse(ifpstricks(T)`'ifpgf(T),T,`
+
+iflatex(`latexcommand({\sf)')
# https://tex.stackexchange.com/questions/236923/generate-analog-clock-with-numbered-face-add-seconds-roman-numerals
@@ -102,7 +106,7 @@ Face: circle thick 0 fill_(1) rad r3 at C
# Text rotation for PSTricks or TikZ
define(`rottext',
- `ifpstricks(`\rput[c]{%g}(0,0)')ifpgf(`\pgftext[rotate=%g]')')
+ `ifpstricks(`\rput[c]{%g}(0,0)',`ifpgf(`\pgftext[rotate=%g]',%g)')')
# Outer numbers
command sprintf("\font\outerfont=cmss12 at %4.2fin",r3-r4)
for mn = -15 to 15 by 5 do { sprintf("rottext{\outerfont %g}",\
@@ -138,5 +142,8 @@ Face: circle thick 0 fill_(1) rad r3 at C
Clock1: AntiqueClock(,,,3)
# Clock2: AntiqueClock(4,50,07,2) at Clock1.e+(1.5,0)
-iflatex(command "}%")
+ iflatex(`latexcommand(})')
+
+',` "AntiqueClock.m4 requires pstricks or pgf" ')
+
.PE
diff --git a/graphics/circuit_macros/examples/Arrester.m4 b/graphics/circuit_macros/examples/Arrester.m4
new file mode 100644
index 0000000000..791a2f2162
--- /dev/null
+++ b/graphics/circuit_macros/examples/Arrester.m4
@@ -0,0 +1,28 @@
+.PS
+# Arrester.m4
+cct_init
+
+divert(-1)
+
+divert(0)dnl
+
+movewid = movewid/2
+ M: arrester
+ {"\tt arr{}ester()" at last [].s below}
+ N: arrester(,D) with .A at M.end+(movewid,0)
+ {"\strut\tt $\cdots$(,D)" at last [].s below}
+ P: arrester(,LD) with .A at N.B+(movewid,0)
+ {"\tt (,LD)" at last [].s below}
+ move; H: arrester(,S)
+ {"\tt (,S)" at last [].s below}
+ move; Q: arrester(,E)
+ {"\tt (,E)" at last [].s below}
+ R: arrester(,ED) with .A at Q.end+(movewid,0)
+ {"\tt $\cdots$(,ED)" at last [].s below}
+ thinlines_
+ Loopover_(`X',
+ `spline <- from X.A up 8bp__ then up 6bp__ right 4bp__; "\sl A" ljust
+ spline <- from X.B up 8bp__ then up 6bp__ left 4bp__; "\sl B" rjust
+ arrow <- from X.G right 12bp__ up 2bp__; "\sl G" ljust',N,R)
+
+.PE
diff --git a/graphics/circuit_macros/examples/Audio.m4 b/graphics/circuit_macros/examples/Audio.m4
index 722a2434d8..662c6d0c99 100644
--- a/graphics/circuit_macros/examples/Audio.m4
+++ b/graphics/circuit_macros/examples/Audio.m4
@@ -46,14 +46,6 @@ L:[
thicklines_
] with .w at last [].e+(0.0,0.5)
[
- M: microphone
- `"\tt microphone"' at M.s+(0,-0.2) #below
- In123(M)
- thinlines_
- arrow <- from M.Circle.n up 0.15 ; "\sl Circle" above
- thicklines_
- ] with .sw at last [].se+(0.4,0)
-[
Z: buzzer
`"\tt buzzer"' at Z.s+(0,-0.2) #below
In123(Z)
@@ -71,6 +63,24 @@ R:[
"\sl Face" above
thicklines_
] with .sw at last [].se+(0.4,0)
+[
+ M: microphone
+ `"\tt microphone"' at M.s+(0,-0.2) #below
+ In123(M)
+ thinlines_
+ arrow <- from M.Circle.n up 0.15 ; "\sl Circle" above
+ thicklines_
+ ] with .sw at last [].se+(0.4,0)
+[
+ M: microphone(A)
+ `"\tt microphone(A)"' at M.s+(0,-0.2) #below
+ thinlines_
+ arrow <- from M.Head.e+(0,0.05) right 0.2; "\sl Head" ljust
+ spline 0.5 <- from M.Head.b down 0.05 right 0.1 then right 0.1
+ "\sl Head.b" ljust
+ arrow <- from M.Stand.s right 0.2; "\sl Stand.s" ljust
+ thicklines_
+ ] with .n at last [].s+(0,-0.05)
[[
E: earphone
`"\tt earphone"' at E.s+(0,-0.2) #below
@@ -89,6 +99,6 @@ R:[
"\sl C" at E.C
thicklines_
] with .sw at last [].se+(0.6,0)
-] with .n at (0.6 between L and R, R.s)+(0,0.1-ifdpic(0.2,0.25))
+] with .n at (0.6 between L and R, R.s)+(0.5,0.1-ifdpic(0.2,0.25))
.PE
diff --git a/graphics/circuit_macros/examples/Conn.m4 b/graphics/circuit_macros/examples/Conn.m4
index 7253d2b313..204ad5d96a 100644
--- a/graphics/circuit_macros/examples/Conn.m4
+++ b/graphics/circuit_macros/examples/Conn.m4
@@ -17,7 +17,7 @@ T:[
"$\vdots$" at (0.5 between last "" and 2nd last "")+(0.15,0.02)
thicklines_
CS1: "`\tt tstrip(U)'" at S1.s+(0,-0.15)
- S2: tstrip(R,5,DO;wid=1.0;ht=0.25) with .sw at S1.se+(0.7,0.15)
+ S2: tstrip(R,5,DO;wid=1.0;ht=0.25) with .sw at S1.se+(0.8,0.15)
thinlines_
arrow <- up 0.2 right 0.1 from S2.T1; "T1" above
arrow <- up 0.2 right 0.1 from S2.T5; "T5" above
@@ -36,7 +36,7 @@ C: [
thicklines_
C2: ccoax(at C1+(0,0.3),F)
`"\tt ccoax(,F)"' ht 11 pt__ wid 0.65 at C2.ne ljust
- ] with .C1.sw at T.S2.se+(0.5,0.0)
+ ] with .C1.sw at T.S2.se+(0.6,0.0)
Y: [
tconn(,O)
@@ -46,24 +46,24 @@ Y: [
{`"\tt (,>)"' at last line.c+(0,-0.2)}
move to P1.end+(0.3,0)
tconn(,>>)
- {`"\tt (,>>)"' at last line.c+(0,-0.2)}
+ {`"\tt (,>{}>)"' at last line.c+(0,-0.2)}
move to P1.start+(0,linewid)
P3: tconn(,<)
{`"\tt tconn(,<)"' at last line.c+(0,-0.2)}
move to P3.end+(0.3,0)
tconn(,<<)
- {`"\tt (,<<)"' at last line.c+(0,-0.2)}
+ {`"\tt (,<{}<)"' at last line.c+(0,-0.2)}
] with .sw at (C.e.x-0.4,T.s.y)
B: [
tbox(V_2)
- `"\tt tbox(V\_2)"' at last [].sw below ljust
- [ left_;
- tbox(V_1,,,<>) ] with .nw at last [].sw+(0,-0.25)
- `"\tt tbox(V\_1,{,},<>)"' at last [].sw below ljust
-# `"\tt left\_"' at last [].sw +(0,-0.2) ljust `"\tt tbox(V\_1)"' ljust
-] with .nw at Y.ne+(0.2,0)
+ { `"\tt tbox(V\_2)"' at last [].sw below ljust }
+ tbox(V_1,,,<) with .sw at last [].se+(0.75,0)
+ { `"\tt tbox(V\_1,{,},<)"' at last [].s below }
+ tbox(V_1,,,<>) with .sw at last [].se+(0.75,0)
+ { `"\tt tbox(V\_1,{,},<>)"' at last [].s below }
+] with .nw at T.sw+(0,-0.2)
.PE
diff --git a/graphics/circuit_macros/examples/Connectors.m4 b/graphics/circuit_macros/examples/Connectors.m4
new file mode 100644
index 0000000000..5c3207c17d
--- /dev/null
+++ b/graphics/circuit_macros/examples/Connectors.m4
@@ -0,0 +1,24 @@
+.PS
+# Connectors
+log_init
+include(ics.m4)
+
+# ArduinoUno
+# "{\sf Arduino Uno Rev 3}" at last [].Connector.s below
+ Ar: ArduinoLeonardo #with .sw at last [].se+(0.25,0)
+ "{\sf Arduino Leonardo}" at last [].Connector.s below
+
+ RPI: RPi with .sw at last [].se+(0.25,0)
+ "{\sf Raspberry Pi 4 GPIO}" at last [].GPIO.s below
+
+ HD: HDMI_micro with .nw at last [].ne+(0.25,0.5)
+ "\sf Micro" rjust at HD.Base.sw+(-2bp__,10bp__) "\sf HDMI" rjust
+
+ S: USB_C_Socket with .sw at (HD.e.x+0.25,RPI.s.y)
+ "\sf USB-C Socket" at S.Base.s below
+ "\sf B12" at S.B12.end above ljust
+ "\sf B1" at S.B1.end above ljust
+ "\sf A1" at S.A1.end above rjust
+ "\sf A12" at S.A12.end above rjust
+
+.PE
diff --git a/graphics/circuit_macros/examples/Fuses.m4 b/graphics/circuit_macros/examples/Fuses.m4
index b308e5aadb..bde24fac3e 100644
--- a/graphics/circuit_macros/examples/Fuses.m4
+++ b/graphics/circuit_macros/examples/Fuses.m4
@@ -4,7 +4,8 @@ cct_init
movewid = 0.25
- {fuse ; {"`{\tt fuse}'" at last line.c+(0,-0.2)}
+ {
+ fuse ; {"`{\tt fuse}'" at last line.c+(0,-0.2)}
move
fuse(,D) ; {"`{\tt fuse(,D)}'" at last line.c+(0,-0.2)}
move
@@ -14,11 +15,10 @@ movewid = 0.25
move
fuse(,S) ; {"`{\tt fuse(,S)}'" at last line.c+(0,-0.2)}
move
- fuse(,HB) ; {"`{\tt fuse(,HB)}'" at last line.c+(0,-0.2)}
+ fuse(,SB) ; {"`{\tt fuse(,SB)}'" at last line.c+(0,-0.2)}
}
move down; right_
- fuse(,HC,0.5,0.3) ; {"`{\tt (,HC,0.5,0.3)}'" at last line.c+(0,-0.25)}
- move
+ {
cbreaker; {"`{\tt cbreaker}'" at last line.c+(0,-0.25)}
move
cbreaker(,R); {"`{\tt cbreaker(,R)}'" at last line.c+(0,-0.25)}
@@ -27,6 +27,13 @@ movewid = 0.25
move
cbreaker(,{,}T); {"`{\tt $\ldots$(,{,}T)}'" at last line.c+(0,-0.25)}
move
- cbreaker(,{,}TS); {"`{\tt $\ldots$(,{,}TS)}'" at last line.c+(0,-0.25)}
+ cbreaker(,{,}TS); {"`{\tt $\ldots$(,{,}TS)}'" at last line.c+(0,-0.25) }
+ }
+ move down; right_
+ {
+ fuse(,HB) ; {"`{\tt fuse(,HB)}'" at last line.c+(0,-0.2)}
+ move
+ fuse(,HC,0.5,0.3) ; {"`{\tt (,HC,0.5,0.3)}'" at last line.c+(0,-0.25)}
+ }
.PE
diff --git a/graphics/circuit_macros/examples/Grounds.m4 b/graphics/circuit_macros/examples/Grounds.m4
index 13b4730b80..e93fadf33c 100644
--- a/graphics/circuit_macros/examples/Grounds.m4
+++ b/graphics/circuit_macros/examples/Grounds.m4
@@ -8,15 +8,18 @@ Ground: ground
GT: ground(,T)
move right sep
GF: ground(,,F)
+sep = 0.55
move right sep
GE: ground(,,E)
move right sep
-B: Here+(0,-0.5) ; {
- "{\tt `ground'}" wid 32bp__ at (Ground,B)
- "{\tt `ground'(,T)}" at (GT,B)+(0,7bp__)
+B: Here+(0,-0.5)
+D: B+(0,11bp__)
+
+ { "{\tt `ground'}" wid 32bp__ at (Ground,B)
+ "{\tt `ground'(,T)}" at (GT,B)+(0,11bp__)
"{\tt (,{,}F)}" at (GF,B)
- "{\tt (,{,}E)}" at (GE,B)}
+ "{\tt (,{,}E)}" at (GE,D)}
GS: ground(,,S)
@@ -28,12 +31,16 @@ GQ: ground(,,Q)
GL: ground(,,L)
move right sep
GP: ground(,,P)
+ move right sep
+GPA: ground(,T,PA)
C: Here+(0,-0.5)
+E: C+(0,11bp__)
"{\tt (,{,}S)}" at (GS,C)
- "{\tt (,{,}S,90)}" at (GS90,C)
+ "{\tt (,{,}S,90)}" at (GS90,E)
"{\tt (,{,}Q)}" at (GQ,C)
- "{\tt (,{,}L)}" at (GL,C)
+ "{\tt (,{,}L)}" at (GL,E)
"{\tt (,{,}P)}" at (GP,C)
+ "{\tt (,T,PA)}" at (GPA,E)
.PE
diff --git a/graphics/circuit_macros/examples/Headers.m4 b/graphics/circuit_macros/examples/Headers.m4
index a4e1abce3b..1c040227e3 100644
--- a/graphics/circuit_macros/examples/Headers.m4
+++ b/graphics/circuit_macros/examples/Headers.m4
@@ -5,7 +5,11 @@ log_init
Header
{"\sl P1" at last [].P1 rjust
`"\tt Header"' at last [].s+(0,-10pt__)
- "\sl P2" at last [].P2 rjust}
+ "\sl P2" at last [].P2 rjust
+ thinlines_
+ arrow <- from last [].Block.ne-(0,0.1) up 0.15 right 0.15
+ "\sl Block" ljust
+ thicklines_ }
Header(2,3,8mm__,10mm__) with .nw at last [].ne+(0.75,-0.05)
{"\sl P1" at last [].P1 rjust
diff --git a/graphics/circuit_macros/examples/MC.m4 b/graphics/circuit_macros/examples/MC.m4
index 6e4eb88ea0..d76016c6e4 100644
--- a/graphics/circuit_macros/examples/MC.m4
+++ b/graphics/circuit_macros/examples/MC.m4
@@ -2,6 +2,7 @@
# MC.m4
cct_init
+MC: [
dv = dimen_*0.6
dh = dimen_*0.4
backup = dimen_/6
@@ -32,4 +33,49 @@ cct_init
source(right_ dimen_,AC); llabel(sprintf("$v_{\char%g}$",64+i))
if i==2 then { Output: dot } else { line down (2-i)*dv }
}}
+]
+
+Three: [
+ dv = dimen_*0.6
+ dh = dimen_
+ define(`swfet',`mosfet(`$1',,dMEDSuBQPy)')
+ define(`swpair',`[ up_
+ BS: swfet(up_ dimen_); { "`$1'" at BS.D-(0,2bp__) rjust }
+ L: line up_ 3*dimen_ from BS.D
+ TS: swfet(up_ dimen_) with .S at Here; { "`$2'" at TS.S+(0,2bp__) rjust }
+ T: TS.D
+ B: BS.S
+ C: L.c
+ ]')
+
+ V1: gap(up_ 5*dimen_,1,A); { "$V_1$" at last arrow.c rjust }
+ line right_ dh/2
+ { C1: capacitor(down_ to (Here,V1.start)); llabel(C_1) }
+ for_(1,3,1,`
+ line right_ dh ifelse(m4x,1,,*5/4)
+ {SP1`'m4x: swpair(S1`'eval(m4x+3),S1`'m4x) with .T at Here
+ dot(at last [].C + (0,(2-m4x)*dh))
+ line right_ (3-m4x)*dh*5/4
+ inductor(right_ dimen_,L); llabel(,L_{1\char`'eval(64+m4x)})
+ line down_ (2-m4x)*dimen_*2/3
+ pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
+ line down_ (2-m4x)*dimen_/3
+ M: move right_ dimen_/8
+ line up_ (2-m4x)*dimen_/3
+ pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
+ line up_ (2-m4x)*dimen_*2/3
+ inductor(right_ dimen_,L); llabel(,L_{2\char`'eval(64+m4x)})
+ line right_ dimen_/8+(m4x-1)*dh*5/4
+ dot
+ SP2`'m4x: swpair(S2`'eval(m4x+3),S2`'m4x) with .C at Here+(0,(m4x-2)*dh) }
+ ')
+ "$T_r$" at M.c+(0,dimen_/2)
+ line from V1.start to SP13.B
+ line from SP21.B to SP23.B+(dh*3/4,0)
+ { C2: capacitor(up_ to (Here,V1.end)); llabel(,,C_2) }
+ line right_ dh/2
+ gap(up_ 5*dimen_,1,A); { "$V_2$" at last arrow.c ljust }
+ line to SP21.T chop dotrad_ chop 0
+
+] with .nw at MC.sw+(0,-0.2)
.PE
diff --git a/graphics/circuit_macros/examples/Makefile b/graphics/circuit_macros/examples/Makefile
index 92968df523..d729596a17 100644
--- a/graphics/circuit_macros/examples/Makefile
+++ b/graphics/circuit_macros/examples/Makefile
@@ -27,18 +27,15 @@ LIBDIR = ..
# The dpic processor:
PIC = dpic -p
-#PIC = $$HOME/dpic/bu*/p2c/ftp/dpic -p
-#PIC = /cygdrive/d/Dwight/dpic/p2c/Windows/dpic -p
-#PIC = dpic -1 -p
-#PIC = $$HOME/dpic/build/test/dpic -p
+#PIC = $$HOME/dpic/build/p2c/ftp/dpic -p
#PIC = $$HOME/dpic/dev/p2c/ftp/dpic -p
-#PIC = $$HOME/tmp/dpic -p
#PIC = $$HOME/dpic/bison/dpic -p
#PIC = $$HOME/dpic/bdev/dpic -p
CONFIGFILE = pstricks.m4
-# This is for testing the mingw version of dpic:
+# Testing the mingw version of dpic:
+#PIC = $$HOME/dpic/bison/distsrc/Windows/dpic -p
#CUSTOM=windows.m4
# Uncomment for gpic. Use gpic or pic as applicable on your machine:
@@ -61,8 +58,9 @@ DOC = examples
PICS = \
ABlogix.tex Adder.tex Alogix.tex AmpTable.tex Antennas.tex \
AntiqueClock.tex Audio.tex Bip.tex Btree.tex Buttons.tex Byte.tex \
- CanLogic.tex CctTable.tex Conn.tex Contacts.tex Contact.tex control.tex \
- Counting.tex Crossbar.tex Crow.tex csc.tex Csource.tex Decoder.tex \
+ CanLogic.tex CctTable.tex Conn.tex Connectors.tex \
+ Contacts.tex Contact.tex control.tex Counting.tex Crossbar.tex Crow.tex \
+ csc.tex Csource.tex Decoder.tex \
Demultiplexer.tex diamond.tex Dini.tex Diodes.tex Drive.tex Emarrows.tex \
ex00.tex ex01.tex ex02.tex ex03.tex ex04.tex ex05.tex ex06.tex ex08.tex \
ex09.tex ex10.tex ex11.tex ex12.tex ex15.tex ex16.tex ex17.tex ex18.tex \
@@ -111,7 +109,7 @@ BS = tr '|' '\134'
make $*.tex
printf "|documentclass[11pt]{article}\n\
|usepackage{times,pstricks,boxdims,graphicx,pst-grad,pst-slpe}\n\
-|usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}\n\
+|usepackage{siunitx}\n\
|setlength{|textwidth}{28cm}|setlength{|textheight}{28cm}\n\
|setlength{|oddsidemargin}{0pt}|setlength{|evensidemargin}{0pt}\n\
|setlength{|hoffset}{-1cm}\n\
@@ -174,10 +172,10 @@ BS = tr '|' '\134'
$(DOC).pdf: clean pdfmode $(DOC).frp
touch $(DOC).dim
rm -f $(BOXDIMS) $(BOXPICS)
- make PIC="dpic -g" CONFIGFILE=pgf.m4 DIMFILE=$(DOC).dim pics
+ make PIC="$(PIC) -g" CONFIGFILE=pgf.m4 DIMFILE=$(DOC).dim pics
pdflatex $(DOC)
rm -f $(BOXDIMS) $(BOXPICS)
- make PIC="dpic -g" CONFIGFILE=pgf.m4 DIMFILE=$(DOC).dim pics
+ make PIC="$(PIC) -g" CONFIGFILE=pgf.m4 DIMFILE=$(DOC).dim pics
pdflatex $(DOC)
optpdf $(DOC).pdf
@@ -202,14 +200,14 @@ $(DOC).dvi: $(DOC).frs
latex $(DOC)
$(DOC).frs: $(DOC).tex files.tex header.tex psmode
- make PIC="dpic -p" CONFIGFILE=pstricks.m4 DIMFILE=$(DOC).dim pics
+ make PIC="$(PIC) -p" CONFIGFILE=pstricks.m4 DIMFILE=$(DOC).dim pics
cp $(LIBDIR)/doc/Version.tex .
latex $(DOC)
rm -f $(DOC).dvi
touch $(DOC).frs
$(DOC).frp: $(DOC).tex files.tex header.tex pdfmode
- make PIC="dpic -g" CONFIGFILE=pgf.m4 DIMFILE=$(DOC).dim pics
+ make PIC="$(PIC) -g" CONFIGFILE=pgf.m4 DIMFILE=$(DOC).dim pics
cp $(LIBDIR)/doc/Version.tex .
pdflatex $(DOC)
rm -f $(DOC).pdf
@@ -235,7 +233,7 @@ echopics:
clobber: clean
rm -f *.ps
- -@for dir in mf mpost pdflatex xfig psfrag pgf svg dev test; \
+ -@for dir in mf mpost pdflatex xfig psfrag svg dev test; \
do (if test -d $$dir ; then cd $$dir; make clobber; fi) ; done
rm -f *.warn
rm -f examples.pdf
diff --git a/graphics/circuit_macros/examples/Pconn.m4 b/graphics/circuit_macros/examples/Pconn.m4
index fbda5cc2e7..cb8afd0875 100644
--- a/graphics/circuit_macros/examples/Pconn.m4
+++ b/graphics/circuit_macros/examples/Pconn.m4
@@ -19,27 +19,23 @@ P1: [
arrow from G.w to C1.G.e
arrow from G.e to C2.G.w
`"\tt (,AF)"' at last [].s below
- C03: pconnex(,AC) with .w at C2.e+(0.2,0)
+ C03: pconnex(,AC) with .w at C2.e+(0.25,0)
`"\tt (,AC)"' at last [].s below
C3: pconnex(,ACF) with .w at last [].e+(0.2,0)
`"\tt (,ACF)"' at last [].s below
- C5: pconnex(U,D) with .w at last [].e+(0.2,0)
+ C5: pconnex(U,D) with .w at last [].e+(0.25,0)
`"\tt (U,D)"' at last [].s below
- C6: pconnex(U,DF) with .w at last [].e+(0.2,0)
+ C6: pconnex(U,DF) with .w at last [].e+(0.25,0)
`"\tt (U,DF)"' at last [].s below
- C7: pconnex(U,J) with .w at last [].e+(0.2,0)
+ C7: pconnex(U,J) with .w at last [].e+(0.25,0)
`"\tt (U,J)"' at last [].s below
- C8: pconnex(U,JF) with .w at last [].e+(0.2,0)
+ C8: pconnex(U,JF) with .w at last [].e+(0.25,0)
`"\tt (U,JF)"' at last [].s below
]
P2: [
- C4: pconnex(,P)
- `"\tt (,P)"' at last [].s below
- C11: pconnex(,PF) with .w at last [].e+(0.2,0)
- `"\tt (,PF)"' at (C11,last "") below
- C9: pconnex(,G) with .w at last [].e+(0.2,0)
+ C9: pconnex(,G) #with .w at last [].e+(0.2,0)
`"\tt (,G)"' at last [].s below
C91: pconnex(,GF) with .w at last [].e+(0.2,0)
`"\tt (,GF)"' at last [].s below
@@ -47,6 +43,15 @@ P2: [
`"\tt (L,GF)"' at last [].s below
C10: pconnex(,GC) with .w at last [].e + (0.2,0)
`"\tt (,GC)"' ht 11pt__ at last [].s below
-] with .nw at P1.C1.sw + (0,-0.25)
+ C12: pconnex(,GCF) with .w at last [].e + (0.2,0)
+ `"\tt (,GCF)"' ht 11pt__ at last [].s below
+] with .nw at P1.C1.sw + (0,-0.35)
+
+P3: [
+ C4: pconnex(,P)
+ `"\tt (,P)"' at last [].s below
+ C11: pconnex(,PF) with .w at last [].e+(0.2,0)
+ `"\tt (,PF)"' at (C11,last "") below
+] with .nw at P2.C9.sw + (0,-0.35)
.PE
diff --git a/graphics/circuit_macros/examples/README-examples b/graphics/circuit_macros/examples/README-examples
index 7585e3dc77..5561e4d3fc 100644
--- a/graphics/circuit_macros/examples/README-examples
+++ b/graphics/circuit_macros/examples/README-examples
@@ -8,7 +8,8 @@ of unix, linux, cygwin, djgpp, ...):
2. In this directory, type "make". If your installed dpic is the
Mingw version included in the dpic distribution, (a) edit the
file windows.m4 to point to your installation folder, and (b) uncomment
- the CUSTOM= line in the Makefile, or type "make CUSTOM=windows.m4".
+ the CUSTOM=windows.m4 line in the Makefile, or type
+ "make CUSTOM=windows.m4".
To test one of the diagrams, say ex01.m4, type one of the following
(and have a look at the comments at the top of the Makefile):
diff --git a/graphics/circuit_macros/examples/Rectifiers.m4 b/graphics/circuit_macros/examples/Rectifiers.m4
index e24315d0fd..23d544f812 100644
--- a/graphics/circuit_macros/examples/Rectifiers.m4
+++ b/graphics/circuit_macros/examples/Rectifiers.m4
@@ -59,19 +59,22 @@ Threephase: [ linethick_(1)
]
Cct3:[
- No: dot; {"$N_o$" below rjust }
- { inductor(to Here+(Rect_(dimen_,60)),W); E2: "$e_2$" ljust }
- { inductor(to Here+(Rect_(dimen_,-60)),W); E3: "$e_3$" ljust }
- { inductor(from No-(dimen_,0) to No,W); E1: "$e_1$" above at last line.start }
+ No: dot; "$N_o$" at last [].s below rjust
+ E2: No+(Rect_(dimen_,60))
+ E3: No+(Rect_(dimen_,-60))
+ E1: No+(-dimen_,0)
+ inductor(from No to E2,W); round; "$e_2$" ljust
+ inductor(from No to E3,W); round; "$e_3$" ljust
+ inductor(from E1 to No,W); round(at E1); "$e_1$" at E1 above
D3: diode(down_ from E3); b_current(i_3,rjust); llabel(,,D_3)
- line from E1 to (E1,D3.start)
- D1: diode(down_); b_current(i_1,rjust); llabel(,,D_1)
- line from E2 left E2.x-E1.x+dimen_/3 then down E2.y-E3.y \
- then to 0.5 between D1.start and D3.start
+ line from E1 to (E1.x,D3.start.y+dimen_/3) then right_ (E3.x-E1.x)/2 \
+ then down_ dimen_/3
+ D1: diode(down_); b_current(i_1,rjust); llabel(,,D_1); dot
+ line from E2 left_ E2.x-E1.x+dimen_/3 then down_ E2.y-E3.y \
+ then to 2 between D3.start and D1.start; corner
D2: diode(down_); b_current(i_2,rjust); llabel(,,D_2)
- { line from D1.end to D3.end }
- dot
- arrowline(down elen_/2); rlabel(,i_L)
+ { line from D2.end to D3.end }
+ arrowline(from D1.end down_ elen_/2); rlabel(,i_L)
resistor(right_ elen_); rlabel(+,e_L,-); llabel(,R)
line to (Here,No) then to No
] with .e at Threephase.w-(0.5,0)
diff --git a/graphics/circuit_macros/examples/SampleFlow.m4 b/graphics/circuit_macros/examples/SampleFlow.m4
new file mode 100644
index 0000000000..f8d73ca203
--- /dev/null
+++ b/graphics/circuit_macros/examples/SampleFlow.m4
@@ -0,0 +1,35 @@
+.PS
+# SampleFlow.m4
+darrow_init
+
+boxwid = 1.9
+boxht = 1.0
+linethick = 1.2
+
+ define(`dlthick',0.25)
+ define(`dfillcolor',`0.7,0.7,0.7')
+
+ define rbox {box rad boxht/10}
+ define offset { with .nw at last box.se+(-0.15,-0.125)}
+ define indent { at last box.w+(0.1,0)}
+ define connect {
+ { Dline(from 2nd last box.s to (2nd last box,last box),E;ends=!-)
+ dleft
+ darrow(to last box.w) } }
+
+ command "{\sf\huge"
+
+ B1: rbox
+ { "Sample" ljust indent "Acquisition" ljust }
+ B2: rbox offset
+ {"Sample" ljust indent "Checking" ljust }
+ connect
+ B3: rbox offset
+ {"Dimensionality" ljust indent "Sample Check" ljust }
+ connect
+ B4: rbox offset
+ {"Sample" ljust indent "Synthesis" ljust "Techniques" ljust }
+ connect
+
+ command "}%"
+.PE
diff --git a/graphics/circuit_macros/examples/Sources.m4 b/graphics/circuit_macros/examples/Sources.m4
index a70cea1113..8a4bab9bc6 100644
--- a/graphics/circuit_macros/examples/Sources.m4
+++ b/graphics/circuit_macros/examples/Sources.m4
@@ -21,7 +21,8 @@ define(`NL',`; move down $1; right_')
{source(,X) ; move ; "`source(,X)'" ljust} NL
{source(,F) ; move ; "`source(,F)'" ljust} NL
{source(,G) ; move ; "`source(,G)'" ljust} NL
- {source(,Q) ; move ; "`source(,Q)'" ljust}
+ {source(,Q) ; move ; "`source(,Q)'" ljust} NL(0.3)
+ {proximity ; move ; "`\shortstack[l]{proximity\\ = consource(,P)}'" ljust}
}
move right_ 2.0
{
@@ -34,8 +35,8 @@ define(`NL',`; move down $1; right_')
{source(,SCr) ; move ; "`source(,SCr)'" ljust} NL
{source(,T) ; move ; "`source(,T)'" ljust} NL
{source(,L) ; move ; "`source(,L)'" ljust} NL
- {source(,B) ; move ; "`source(,B)'" ljust} NL(moveht*0.8)
- {nullator ; move ; "`nullator'" ljust} NL(moveht*0.6)
+ {source(,B) ; move ; "`source(,B)'" ljust} NL
+ {nullator ; move ; "`nullator'" ljust} NL(moveht*0.8)
{norator ; move ; "`norator'" ljust}
}
move right_ 2.0
@@ -49,7 +50,7 @@ define(`NL',`; move down $1; right_')
{source(,SE) ; move ; "`source(,SE)'" ljust} NL
{consource(,V) ; move ; "`consource(,V)'" ljust} NL(0.32)
{consource(,v) ; move ; "`consource(,v)'" ljust} NL(0.3)
- {battery ; move ; "`battery'" ljust} NL
+ {battery ; move ; "`battery'" ljust} NL(0.3)
{battery(,3,R) ; move ; "`battery(,3,R)'" ljust}
iflatex(`ifpsfrag(,`latexcommand(})')')
diff --git a/graphics/circuit_macros/examples/Switches.m4 b/graphics/circuit_macros/examples/Switches.m4
index d8262be92d..46b3f9240d 100644
--- a/graphics/circuit_macros/examples/Switches.m4
+++ b/graphics/circuit_macros/examples/Switches.m4
@@ -2,38 +2,40 @@
# Switches.m4
cct_init
+define(`Below',`at last [].s+(0,-10bp__)')
+
movewid = 0.25
# Row 1
right_; {
- lswitch; {S:"\tt ls{}witch" at last [].s+(0,-10bp__)}
+ lswitch; {S:"\tt ls{}witch" Below}
move right_
- lswitch(,,O); {"\tt (,,O)" at (last [],S)}
+ lswitch(,,O); {"\tt (,{,}O)" at (last [],S)}
move right_
- lswitch(,,C); {"\tt (,,C)" at (last [],S)}
+ lswitch(,,C); {"\tt (,{,}C)" at (last [],S)}
move right_
- lswitch(,,DA); {"\tt (,,DA)" at (last [],S)}
+ lswitch(,,DA); {"\tt (,{,}DA)" at (last [],S)}
move right_
- lswitch(,,dDO); {"\tt (,,dDO)" at (last [],S)}
+ lswitch(,,dDO); {"\tt (,{,}dDO)" at (last [],S)}
move right_
- lswitch(,,uDC); {"\tt (,,uDC)" at (last [],S)}
+ lswitch(,,uDC); {"\tt (,{,}uDC)" at (last [],S)}
}
# Row 2
move down; right_; {
- lswitch(,,K); {S:"\tt (,,K)" at last [].s+(0,-10bp__)}
+ lswitch(,,K); {S:"\tt (,{,}K)" Below}
move right_
- lswitch(,,KD); {"\tt (,,KD)" at (last [],S)}
+ lswitch(,,KD); {"\tt (,{,}KD)" at (last [],S)}
move right_
- lswitch(,,KOD); {"\tt (,,KOD)" at (last [],S)}
+ lswitch(,,KOD); {"\tt (,{,}KOD)" at (last [],S)}
move right_
- lswitch(,,KCD); {"\tt (,,KCD)" at (last [],S)}
+ lswitch(,,KCD); {"\tt (,{,}KCD)" at (last [],S)}
move right_
bswitch; {"\tt `bswitch'" at (last [],S)}
move right_
- bswitch(,,C); {"\tt (,,C)" at (last [],S)}
+ bswitch(,,C); {"\tt (,{,}C)" at (last [],S)}
}
# Row 3
move down; right_; {
- D: dswitch(,,); {S: "\tt ds{}witch(,{},)" at last [].s+(0,-10bp__)}
+ D: dswitch(,,); {S: "\tt ds{}witch(,{},)" Below}
thinlines_
{ spline <- from 0.25 along_(D) up 0.1 then up 0.05 left 0.1
{"\tt W" rjust}
@@ -41,7 +43,7 @@ movewid = 0.25
{"\tt B" rjust }}
thicklines_
move right_
- D: dswitch(,,WdBK); {"\tt (,,WdBK)" at (last [],S)+(0,-4bp__)}
+ D: dswitch(,,WdBK); {"\tt (,{,}WdBK)" at (last [],S)+(0,-4bp__)}
thinlines_
{ spline <- from tr_xy(0,-2) up 0.1 then up 0.10 left 0.1
{"\tt dB" rjust}
@@ -49,69 +51,81 @@ movewid = 0.25
{"\tt K" above }}
thicklines_
move right_
- dswitch(,,WBmdDK); {"\tt (,,WBmdDK)" at (last [],S)}
+ dswitch(,,WBmdDK); {"\tt (,{,}WBmdDK)" at (last [],S)}
move right_
- dswitch(,,WBKTr); {"\tt (,,WBKTr)" at (last [],S)}
+ dswitch(,,WBKTr); {"\tt (,{,}WBKTr)" at (last [],S)}
move right_
- dswitch(,,WdBL); {"\tt (,,WdBL)" at (last [],S+(0,-4bp__))}
+ dswitch(,,WdBL); {"\tt (,{,}WdBL)" at (last [],S+(0,-4bp__))}
move right_
- dswitch(,,WBCo); {"\tt (,,WBCo)" at (last [],S)}
+ dswitch(,,WBCo); {"\tt (,{,}WBCo)" at (last [],S)}
}
# Row 4
move down; right_; {
- dswitch(,,WBKCo); {S: "\tt (,,WBKCo)" at last [].s+(0,-10bp__)}
+ dswitch(,,WBKCo); {S: "\tt (,{,}WBKCo)" Below}
move right_
- dswitch(,,WBCb); {"\tt (,,WBCb)" at (last [],S)}
+ dswitch(,,WBCb); {"\tt (,{,}WBCb)" at (last [],S)}
move right_
- dswitch(,,WBDI); {"\tt (,,WBDI)" at (last [],S)}
+ dswitch(,,WBDI); {"\tt (,{,}WBDI)" at (last [],S)}
move right_
- dswitch(,,WBSd); {"\tt (,,WBSd)" at (last [],S)}
+ dswitch(,,WBSd); {"\tt (,{,}WBSd)" at (last [],S)}
move right_
- dswitch(,,WBFDI); {"\tt (,,WBFDI)" at (last [],S)}
+ dswitch(,,WBFDI); {"\tt (,{,}WBFDI)" at (last [],S)}
move right_
- dswitch(,,WBFSd); {"\tt (,,WBFSd)" at (last [],S)}
+ dswitch(,,WBFSd); {"\tt (,{,}WBFSd)" at (last [],S)}
}
# Row 5
move down moveht*5/4; right_; {
- dswitch(,,WBTh); {S: "\tt (,,WBTh)" at last [].s+(0,-10bp__)}
+ dswitch(,,WBTh); {S: "\tt (,{,}WBTh)" Below}
move right_
- dswitch(,,WBKC); {"\tt (,,WBKC)" at (last [],S)}
+ dswitch(,,WBKC); {"\tt (,{,}WBKC)" at (last [],S)}
move right_
- dswitch(,,WBM); {"\tt (,,WBM)" at (last [],S)}
+ dswitch(,,WBM); {"\tt (,{,}WBM)" at (last [],S)}
move right_
- dswitch(,,WBCO); {"\tt (,,WBCO)" at (last [],S)}
+ dswitch(,,WBCO); {"\tt (,{,}WBCO)" at (last [],S)}
move right_
- dswitch(,,WBMP); {"\tt (,,WBMP)" at (last [],S)}
+ dswitch(,,WBMP); {"\tt (,{,}WBMP)" at (last [],S)}
move right_
- dswitch(,,WBoKCP); {"\tt (,,WBoKCP)" at (last [],S)}
+ dswitch(,,WBoKCP); {"\tt (,{,}WBoKCP)" at (last [],S)}
}
# Row 6
move down moveht*5/4; right_; {
- dswitch(,,WBCY); {S: "\tt (,,WBCY)" at last [].s+(0,-10bp__)}
+ dswitch(,,WBCY); {S: "\tt (,{,}WBCY)" Below}
move right_
- dswitch(,,WBCZ); {"\tt (,,WBCZ)" at (last [],S)}
+ dswitch(,,WBCZ); {"\tt (,{,}WBCZ)" at (last [],S)}
move right_
- dswitch(,,WBCE); {"\tt (,,WBCE)" at (last [],S)}
+ dswitch(,,WBCE); {"\tt (,{,}WBCE)" at (last [],S)}
move right_
- dswitch(,,WBRH); {"\tt (,,WBRH)" at (last [],S)}
+ dswitch(,,WBRH); {"\tt (,{,}WBRH)" at (last [],S)}
move right_
- dswitch(,,WBRdH); {"\tt (,,WBRdH)" at (last [],S)}
+ dswitch(,,WBRdH); {"\tt (,{,}WBRdH)" at (last [],S)}
move right_
- dswitch(,,WBRHH); {"\tt (,,WBRHH)" at (last [],S)}
+ dswitch(,,WBRHH); {"\tt (,{,}WBRHH)" at (last [],S)}
}
# Row 7
+ move down moveht; right_; {
+ move down_ 2bp__; right_
+ dswitch(,,WBPr); {S: "\tt (,{,}WBPr)" Below}
+ move right_
+ dswitch(,,WBPrT); {S: "\tt (,{,}WBPrT)" Below}
+# move right_
+# Proxim; {S: "\tt Pro{}xim" Below}
+# move right_
+# Magn; {S: "\tt Mag{}n" Below}
+ move down_ 6bp__ then right_
+ dswitch(,,WBPrM); {S: "\tt (,{,}WBPrM)" Below}
+ }
+# Row 8
move down; right_; {
- dswitch(,,WBMMR); {S: "\tt (,,WBMMR)" at last [].s+(0,-10bp__)}
+ dswitch(,,WBMMR); {S: "\tt (,{,}WBMMR)" Below}
move right_
- dswitch(,,WBMM); {"\tt (,,WBMM)" at (last [],S)}
+ dswitch(,,WBMM); {"\tt (,{,}WBMM)" at (last [],S)}
move right_
- dswitch(,,WBMR); {"\tt (,,WBMR)" at (last [],S)}
+ dswitch(,,WBMR); {"\tt (,{,}WBMR)" at (last [],S)}
move right_
- dswitch(,,WBEL); {"\tt (,,WBEL)" at (last [],S)}
+ dswitch(,,WBEL); {"\tt (,{,}WBEL)" at (last [],S)}
move right_
- dswitch(,,WBLE); {"\tt (,,WBLE)" at (last [],S)}
+ dswitch(,,WBLE); {"\tt (,{,}WBLE)" at (last [],S)}
move right_
- dswitch(,,WBoKEL); {"\tt (,,WBoKEL)" at (last [],S)}
+ dswitch(,,WBoKEL); {"\tt (,{,}WBoKEL)" at (last [],S)}
}
-
.PE
diff --git a/graphics/circuit_macros/examples/Tubediags.m4 b/graphics/circuit_macros/examples/Tubediags.m4
index e07336e4e3..b49f0ffa8e 100644
--- a/graphics/circuit_macros/examples/Tubediags.m4
+++ b/graphics/circuit_macros/examples/Tubediags.m4
@@ -4,7 +4,7 @@
cct_init
include(tubedefs.m4)
-iflatex(`command "{\sf"')
+iflatex(`latexcommand({\sf)')
Overall:[
@@ -366,5 +366,5 @@ PO: dot
#showbox_
#print last [].wid,last [].ht
-iflatex(command "}")
+iflatex(latexcommand(}))
.PE
diff --git a/graphics/circuit_macros/examples/Variable.m4 b/graphics/circuit_macros/examples/Variable.m4
index 6fac01e164..e52e30913d 100644
--- a/graphics/circuit_macros/examples/Variable.m4
+++ b/graphics/circuit_macros/examples/Variable.m4
@@ -3,11 +3,11 @@
cct_init
define(`elen_',dimen_); down_
-[ { variable(`capacitor') }; move right
- { variable(`resistor',uN) }; move right
- { variable(`capacitor(,C)') }; move right
- { variable(`inductor') }; move right
- { variable(`inductor(,W)') }
+[ { variable(`resistor',A) }; {"A" at last line.end below}; move right
+ { variable(`resistor',N) }; {"N" at last line.end below}; move right
+ { variable(`resistor',uN) }; {"uN" at last line.end below}; move right
+ { variable(`resistor',NN) }; {"uN" at last line.end below}; move right
+ { variable(`resistor',uNN) }; {"uNN" at last line.end below}; #; move right
]
[
skp = 0.4
diff --git a/graphics/circuit_macros/examples/debug2.m4 b/graphics/circuit_macros/examples/debug2.m4
index eccd9d38bb..6b6edf77ba 100644
--- a/graphics/circuit_macros/examples/debug2.m4
+++ b/graphics/circuit_macros/examples/debug2.m4
@@ -20,9 +20,9 @@
% If boxdims.sty is not found, then either it has not been copied to
% where latex can find it or the latex filename database has not been
% updated correctly. Instructions for the latter depend on the operating
-% system and may invlove commands texhash, mktexlsr, tlmgr, possibly preceded
-% by sudo, or (for MiKTeX) clicking on the Refresh FNDB button. See steps 3
-% and 4 (ignore 1 and 2) at
+% system and may involve commands texhash, mktexlsr, tlmgr, possibly preceded
+% by sudo, or (for MiKTeX) clicking on the Refresh FNDB button.
+% See Manual Installation, steps 3 and 4 (ignore 1 and 2) at
% https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages
%
% On my Ubuntu machine, boxdims.sty is in
diff --git a/graphics/circuit_macros/examples/examples.pdf b/graphics/circuit_macros/examples/examples.pdf
index 2f31b4f030..d59436e0a3 100644
--- a/graphics/circuit_macros/examples/examples.pdf
+++ b/graphics/circuit_macros/examples/examples.pdf
Binary files differ
diff --git a/graphics/circuit_macros/examples/examples.tex b/graphics/circuit_macros/examples/examples.tex
index 0e483fa094..e2f90fc585 100644
--- a/graphics/circuit_macros/examples/examples.tex
+++ b/graphics/circuit_macros/examples/examples.tex
@@ -28,20 +28,17 @@
Most of the examples can be processed using either dpic~-p, dpic~-g,
or gpic~-t, but the possibility of other postprocessing has meant that
sometimes the source is slightly more complicated than it would be if
- only one workflow had been assumed. The most simplicity and elegance
- is achieved by sticking to one pic interpreter and one postprocessor.
+ only one workflow had been assumed. Some of the examples require dpic.
+ The most simplicity and elegance is achieved by sticking to one pic
+ interpreter and one postprocessor.
- A few of these examples are also found in the manual
- Circuit\_macros.pdf. There are other examples in the examples directory
- that are not included in this document. To process {\sl file}.m4, type, for
- example, "make {\sl file}.pdf."
+ This document duplicates a few diagrams from the manual
+ Circuit\_macros.pdf. There are also a few files in the
+ examples directory that are not included in this document. To process
+ {\sl file}.m4, type, for example, "make {\sl file}.pdf."
-% The tables of elements attempt to illustrate each macro option
-% at least once but the number of option combinations is huge so these
-% examples are not exhaustive.
-
- A few of the examples following the circuits test some of the boundaries
- of what macros and the pic language can do.
+% Some of the boundaries of what macros and the pic language can do are
+% tested toward the end of the following examples.
\input files
\endinput
diff --git a/graphics/circuit_macros/examples/files.tex b/graphics/circuit_macros/examples/files.tex
index 3f14c21bdb..334c7657f6 100644
--- a/graphics/circuit_macros/examples/files.tex
+++ b/graphics/circuit_macros/examples/files.tex
@@ -140,6 +140,12 @@
}
\bfig{
+ \centerline{\getpic{Connectors}}
+ \caption{Some connectors with simple geometry and lists of labels
+ \src{Connectors.m4}.}
+ }
+
+\bfig{
\centerline{\getpic{fet}}
\caption{FETs, showing programmable components and example customizations
\src{fet.m4}.}
@@ -247,7 +253,7 @@
\bfig{
\centerline{\getpic{MC}}
- \caption{A three-phase switched AC-AC converter
+ \caption{A three-phase switched AC-AC converter and a DC-DC converter
\src{MC.m4}.}
}
@@ -666,6 +672,7 @@
\src{Btree.m4}.}
}
+\ifmpost\else% Tex capacity exceeded at this point under metapost
\bfig{
\centerline{\getpic{Ttree}}
\caption{Another tree
@@ -710,5 +717,6 @@
\src{Inclpdf.m4}.}
}
\fi\fi\fi\fi\fi
+\fi % ifmpost
\end{document}
diff --git a/graphics/circuit_macros/examples/ics.m4 b/graphics/circuit_macros/examples/ics.m4
index 023b0d2a56..15e0f05bb8 100644
--- a/graphics/circuit_macros/examples/ics.m4
+++ b/graphics/circuit_macros/examples/ics.m4
@@ -1,26 +1,26 @@
divert(-1)
- Macros defining some integrated circuits
+ Macros defining some integrated circuits and connectors
-define(`lg_pinsep',3*L_unit) logic pin separation in logic units
-define(`lg_chipwd',18*L_unit) default chip width
-
- `Chip outline sizes'
-define(`chip_gen',` box invis wid lg_chipwd ht lg_pinsep*eval(`$1'/2+1)
- arcd(last box.n, lg_pinsep/2, 180, 360)
- { line to last box.ne chop -linewid bp__/2 }
- { line from last arc.start to last box.nw chop -linewid bp__/2 }
- line from last box.nw to last box.sw then to last box.se then to last box.ne
- ')
+ `DIP_chip_outline( pin count, wid )'
+define(`DIP_chip_outline',
+ `[ define(`m4chgw',`ifelse(`$2',,(18*L_unit),`$2')')dnl
+ Chip: box invis wid m4chgw ht lg_pinsep*eval((`$1')/2+1)
+ arcd(last box.n, lg_pinsep/2, 180, 360)
+ { line to last box.ne chop -linewid bp__/2 }
+ { line from last arc.start to last box.nw chop -linewid bp__/2 }
+ line from last box.nw to last box.sw then to last box.se then to last box.ne
+ `$3']')
`A sequence of pins along the east or west side of a chip:
- lg_pinseq(initial pin no,final pin no,
- e|w,initial offset,pinnum_root,Labelroot,[not])'
-lg_pinseq(1,8,w)
+ lg_pinseq(initial pin no, final pin no,
+ e|w, initial offset, pinnum_root, Labelroot, [N])'
+ `e.g., lg_pinseq(1,8,w)'
define(`lg_pinseq',`for_($1,$2,1,
- `lg_pin( Chip.s`$3'+(0,eval($4+m4x)*lg_pinsep),
+ `lg_pin( Chip.s`$3'+(0,($4+m4x)*lg_pinsep),
$6`'m4x,Pin`'eval($5`'m4x),`$3'`$7',eval($5`'m4x))') ')
+
define(`ic6116',`[ Chip: box wid_ lg_chipwd ht_ 15*lg_pinsep
lg_pin(Chip.sw_+(0,lg_pinsep),GND,Pin12,w,12)
lg_pin(Chip.sw_+(0,2*lg_pinsep),lg_bartxt(CS),Pin18,wN,18)
@@ -113,4 +113,163 @@ define(`icVS1053',`[ Chip: chip_gen(32)
SDCD,RX,TX,7,6,5,4,3,2,1,0,GND,3V3,AGND,MIC-,MIC+)
`$1']')
+ `ArduinoUno( wid,ht,pinlen )'
+define(`ArduinoUno',`[
+ define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl
+#
+ command "{\small\sf"
+ Connector: box wid m4bwid ht m4bht
+#
+ plen = ifelse(`$4',,`2*L_unit',`$4')
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep)
+ { "x" ljust at last line.start }')',
+ IOREF, RESET,`$+$`'3V3',`$+$`'5V', GND, GND, VIN,
+ nul, A0, A1, A2, A3, A4, A5)
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep)
+ { "x" rjust at last line.start }')',
+ SCL, SDA, AREF, GND, D13, D12, \char126 D11, \char126 D10, \char126 D9, D8,
+ nul, D7, \char126 D6, \char126 D5, D4, \char126 D3, D2, TX D1, RX D0)
+#
+ command "}"
+ `$4'] ')
+
+ `ArduinoLeonardo( wid,ht,pinlen )'
+define(`ArduinoLeonardo',`[
+ define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl
+#
+ command "{\small\sf"
+ Connector: box wid m4bwid ht m4bht
+#
+ plen = ifelse(`$4',,`2*L_unit',`$4')
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep)
+ { "x" ljust at last line.start }')',
+ IOREF, RESET,`$+$`'3V3',`$+$`'5V', GND, GND, VIN,
+ nul, A0, A1, A2, A3, A4, A5)
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep)
+ { "x" rjust at last line.start }')',
+ SCL, SDA, AREF, GND,
+ \char126 D13, D12, \char126 D11, \char126 D10, \char126 D9, D8,
+ nul, D7, \char126 D6, \char126 D5, D4, \char126 D3, D2, TX D1, RX D0)
+#
+ command "}"
+ `$4'] ')
+
+ `RPi( wid,ht,pinlen )'
+define(`RPi',`[
+ define(`m4bwid',`ifelse(`$1',,`34*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`21*lg_pinsep',`$2')')dnl
+#
+ command "{\small\sf"
+ GPIO: box wid m4bwid ht m4bht
+ plen = ifelse(`$4',,`6*L_unit',`$4')
+#
+define A_LeftGPIO {
+ exec sprintf("Pin%g: line left_ plen from GPIO.nw-(0,%g)",\
+ 2*(`$'1)-1,(`$'1)*lg_pinsep)
+ { "`$'3" ljust at last line.start }
+ "`$'2" at last line.c above }
+#
+Loopover_(`x',`ifelse(x,nul,,`A_LeftGPIO(m4Lx,patsubst(x,;,`,'))')',
+ ;3V3,
+ 2;SDA1, 3;SCL1, 4;GPIO\_GCLK,
+ ;GND,
+ 17;GPIO\_GEN0, 27;GPIO\_GEN2, 22;GPIO\_GEN3,
+ ;3V3,
+ 10;SPI\_MOSI, 9;SPI\_MISO, 11;SPI\_SCLK,
+ ;GND,
+ ;ID\_SD,
+ 5;, 6;, 13;, 19;, 26;,
+ ;GND )
+#
+define A_RightGPIO {
+ exec sprintf("Pin%g: line right_ plen from GPIO.ne-(0,%g)",\
+ 2*(`$'1),(`$'1)*lg_pinsep)
+ { "`$'3" rjust at last line.start }
+ "`$'2" at last line.c above }
+#
+Loopover_(`x',`ifelse(x,nul,,`A_RightGPIO(m4Lx,patsubst(x,;,`,'))')',
+ ;5V,
+ ;5V,
+ ;GND,
+ 14;TXD0, 15;RXD0, 18;GPIO\_GEN1,
+ ;GND,
+ 23;GPIO\_GEN4, 24;GPIO\_GEN5,
+ ;GND,
+ 25;GPIO\_GEN6, 8;SPI\_CEO\_N, 7;SPI\_CE1\_N,
+ ;ID\_SC,
+ ;GND,
+ 12;,
+ ;GND,
+ 16;, 20;, 21; )
+#
+ command "}"
+ `$4'] ')
+
+ `USB_C_Socket( wid, ht, pinlen )'
+define(`USB_C_Socket',`[
+ define(`m4bwid',`ifelse(`$1',,`18*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`14*lg_pinsep',`$2')')dnl
+ command "{\small\sf"
+#
+ Base: box wid m4bwid ht m4bht rad 5/3*lg_pinsep
+ plen = ifelse(`$4',,`6*L_unit',`$4')
+#
+ Loopover_(`x',
+ `B`'eval(13-m4Lx): dnl
+ line left_ plen from Base.n-(m4bwid/2,(m4Lx+0.5)*lg_pinsep)
+ {"x" ljust at last line.start}',
+ GND, RX1$+$, RX1$-$, VBUS, SBU2, D$-$, D$+$, CC2, VBUS, TX2$-$, TX2$+$, GND)
+#
+ Loopover_(`x',
+ `A`'m4Lx: line right_ plen from Base.n+(m4bwid/2,-(m4Lx+0.5)*lg_pinsep)
+ {"x" rjust at last line.start}',
+ GND, TX1$+$, TX1$-$, VBUS, CC1, D$+$, D$-$, SBU1, VBUS, RX2$-$, RX2$+$, GND)
+#
+ command "}"
+ `$4']')
+
+ `HDMI_micro( wid, ht, pinlen )'
+define(`HDMI_micro',`[
+ define(`m4bwid',`ifelse(`$1',,`16*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`20*lg_pinsep+m4bwid*2/3',`$2')')dnl
+ command "{\small\sf"
+#
+ Base:[line up m4bht/2 then right m4bwid*2/3 \
+ then right m4bwid/3 down m4bwid/3 \
+ then down m4bht-2*m4bwid/3 then down m4bwid/3 left m4bwid/3 \
+ then left m4bwid*2/3 then to Here]
+ plen = ifelse(`$4',,`6*L_unit',`$4')
+#
+ Loopover_(`x',
+ `Pin`'m4Lx: line left_ plen from Base.nw-(0,m4bwid/3+m4Lx*lg_pinsep)
+ {"x" ljust at last line.start}
+ "m4Lx" at last line.c above',
+ HPD, UTILITY, D2$+$, D2\_SH, D2$-$, D1$+$, D1\_SH, D1$-$, D0$+$, D0\_SH,
+ D0$-$, CLK$+$, CLK\_SH, CLK$-$, CEC, GND, SCL, SDA, $+``$''5V)
+ line from Base.nw+(m4bwid*2/3-lg_pinsep,0) up plen
+ r_text(21) at last line.c+(-5bp__,0)
+ r_text(SH2) at last line.start + (0,-10bp__)
+ line from Base.nw+(m4bwid*2/3-2*lg_pinsep,0) up plen
+ r_text(20) at last line.c+(-5bp__,0)
+ r_text(SH1) at last line.start + (0,-10bp__)
+ line from Base.sw+(m4bwid*2/3-lg_pinsep,0) down plen
+ r_text(23) at last line.c+(-5bp__,0)
+ r_text(SH4) at last line.start + (0, 10bp__)
+ line from Base.sw+(m4bwid*2/3-2*lg_pinsep,0) down plen
+ r_text(22) at last line.c+(-5bp__,0)
+ r_text(SH3) at last line.start + (0, 10bp__)
+#
+ command "}"
+ `$4']')
+
divert(0)dnl
diff --git a/graphics/circuit_macros/examples/mf/cct.mf b/graphics/circuit_macros/examples/mf/cct.mf
index 789ec556e1..7134b617a0 100644
--- a/graphics/circuit_macros/examples/mf/cct.mf
+++ b/graphics/circuit_macros/examples/mf/cct.mf
@@ -1,5 +1,5 @@
% cct.mf, generated by Mfpic, v1.10 2012/12/03,
-% from TeX source "font" on 2020/02/16 at 21:34
+% from TeX source "font" on 2020/05/01 at 17:17
numeric mfpicversion; mfpicversion := 110;
if unknown mode: mode := localfont; fi
if unknown mag: mag := 1000/1000; fi
@@ -135,15 +135,15 @@ resizedrawpen (0.4bp);
store (curpath)
drawn
-circle ((0.3084,-0),0.002767);
+circle ((0.3084,0),0.002767);
resizedrawpen (0.8bp);
store (curpath)
drawn
polyline (false)
-((0.3084,-0),
-(0.333333,-0));
+((0.3084,0),
+(0.333333,0));
endmfpic; % (3) line 59 in the TeX source.
%------------------------------------------
@@ -217,15 +217,15 @@ resizedrawpen (0.4bp);
store (curpath)
drawn
-circle ((-0,-0.3084),0.002767);
+circle ((0,-0.3084),0.002767);
resizedrawpen (0.8bp);
store (curpath)
drawn
polyline (false)
-((-0,-0.3084),
-(-0,-0.333333));
+((0,-0.3084),
+(0,-0.333333));
endmfpic; % (4) line 77 in the TeX source.
%------------------------------------------
@@ -3121,7 +3121,7 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0,0.1375),180,-0,0.175);
+arcplr ((0,0.1375),-180,-360,0.175);
store (curpath)
drawn
@@ -4687,7 +4687,7 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0,-0.2),-0,-180,0.15);
+arcplr ((0,-0.2),0,-180,0.15);
endmfpic; % (103) line 1561 in the TeX source.
%------------------------------------------
@@ -4739,7 +4739,7 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0,0.2),180,0,0.15);
+arcplr ((0,0.2),-180,-360,0.15);
endmfpic; % (105) line 1581 in the TeX source.
%------------------------------------------
@@ -5035,7 +5035,7 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0,-0.2),-0,-180,0.15);
+arcplr ((0,-0.2),0,-180,0.15);
store (curpath)
drawn
@@ -5095,7 +5095,7 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0,0.2),180,0,0.15);
+arcplr ((0,0.2),-180,-360,0.15);
store (curpath)
drawn
diff --git a/graphics/circuit_macros/examples/mpost/Makefile b/graphics/circuit_macros/examples/mpost/Makefile
index 3373e88305..2b8099c34d 100644
--- a/graphics/circuit_macros/examples/mpost/Makefile
+++ b/graphics/circuit_macros/examples/mpost/Makefile
@@ -22,6 +22,7 @@ DOC = examplesmpost
FIGS = Adder.1 Alogix.1 ABlogix.1 Antennas.1 AmpTable.1 Audio.1 \
AntiqueClock.1 \
Bip.1 Btree.1 Byte.1 Buttons.1 \
+ Connectors.1 Contact.1 Contacts.1 \
Counting.1 Crossbar.1 Crow.1 Csource.1 CanLogic.1 CctTable.1 Conn.1 \
Decoder.1 Demultiplexer.1 Dini.1 Diodes.1 Drive.1 \
Emarrows.1 Flow.1 Fuses.1 \
@@ -71,7 +72,7 @@ DIMFILE = tmp.dim
@(printf 'verbatimtex\n' ;\
printf '=documentclass[11pt]{article}\n' ;\
printf '=usepackage{times,boxdims,graphicx}\n' ;\
- printf '=usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}\n' ;\
+ printf '=usepackage{siunitx}\n' ;\
$(MKDIM) ;\
printf '=begin{document} etex\n' ) $(TR) > $*.mp
# $(M4) $(DIMFILE) $(DOC).dim $*.m4 | $(DPIC) -s >> $*.mp
diff --git a/graphics/circuit_macros/examples/mpost/README-mpost b/graphics/circuit_macros/examples/mpost/README-mpost
index 8ac5ba426f..53d0263f27 100644
--- a/graphics/circuit_macros/examples/mpost/README-mpost
+++ b/graphics/circuit_macros/examples/mpost/README-mpost
@@ -7,6 +7,8 @@ output of dpic.
passed through m4, dpic, and MetaPost, and then is imported into
examplesmpost.tex by the \includegraphics macro. On MikTeX, check the MKDIM
definition in the Makefile before typing "make".
+ The current version truncates the input near the end to avoid
+ a "Tex capacity exceeded error".
2. To work on a single file, copy the source into test.m4 in this directory
and type make tst. The files test.pic, test.mp, test.1, tst.dvi, and tst.ps
diff --git a/graphics/circuit_macros/examples/mpost/examplesmpost.tex b/graphics/circuit_macros/examples/mpost/examplesmpost.tex
index 280a985c49..45baa6b325 100644
--- a/graphics/circuit_macros/examples/mpost/examplesmpost.tex
+++ b/graphics/circuit_macros/examples/mpost/examplesmpost.tex
@@ -4,7 +4,7 @@
\usepackage{times,boxdims,pstricks}
\usepackage{rotating}
\usepackage{graphicx}
-\usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}
+\usepackage{siunitx}
\input ../header
diff --git a/graphics/circuit_macros/examples/mpost/mptest b/graphics/circuit_macros/examples/mpost/mptest
index 29f6d5841a..cfc94b6bc0 100755
--- a/graphics/circuit_macros/examples/mpost/mptest
+++ b/graphics/circuit_macros/examples/mpost/mptest
@@ -18,7 +18,7 @@ m4 $LIBS $1.m4 > $1.pic
( echo 'verbatimtex
=documentclass[11pt]{article}
=usepackage{times,boxdims}=usepackage{graphicx}
-=usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}
+=usepackage{siunitx}
=begin{document} etex
') | tr '=' '\134' > $1.mp
diff --git a/graphics/circuit_macros/examples/mpost/tstmpost.tex b/graphics/circuit_macros/examples/mpost/tstmpost.tex
index a791b3d9dd..a64a66241f 100644
--- a/graphics/circuit_macros/examples/mpost/tstmpost.tex
+++ b/graphics/circuit_macros/examples/mpost/tstmpost.tex
@@ -1,7 +1,7 @@
\documentclass[11pt,dvips]{article}
\usepackage[dvips]{graphicx}
\usepackage{amssymb,pstricks,boxdims,pst-grad}
-\usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}
+\usepackage{siunitx}
\addtolength{\textwidth}{2cm}
\addtolength{\textheight}{3cm}
\setlength{\oddsidemargin}{0pt}
diff --git a/graphics/circuit_macros/examples/odistmakefile b/graphics/circuit_macros/examples/odistmakefile
deleted file mode 100644
index f6e26d9d37..0000000000
--- a/graphics/circuit_macros/examples/odistmakefile
+++ /dev/null
@@ -1,548 +0,0 @@
-# Examples distmakefile.
-#
-# CTAN dist files: make -f distmakefile dist zips
-# The CTAN file is tmp/Circuit_macros/Circuit_macrosN.N.tar.gz
-# or
-# make -f distmakefile distece
-# The ECE file is ~/tmp/CMdistfiles.tar.gz
-# Change the version number in doc/Version.tex
-
-# Circuit_macro directory, change this if necessary:
-LIBDIR = $$HOME/lib
-LIBDIR=/cygdrive/D/Dwight/lib
-# LIBDIR = ..
-
-# The dpic processor:
-PIC = dpic -p
-
-CONFIGFILE = pstricks.m4
-
-# Uncomment for gpic. Use gpic or pic as applicable on your machine:
-# PIC = gpic -t
-# PIC = pic -t
-# CONFIGFILE = gpic.m4
-
-#########################################################################
-
-# M4 = m4 -B32000
-# M4 = m4 -I $(LIBDIR)
-# Environment variable M4PATH has been set to the installation directory:
-M4 = m4
-
-#########################################################################
-
-THISFILE = distmakefile
-
-DOC = examples
-PICS = \
- Adder.tex Alogix.tex ABlogix.tex AmpTable.tex Antennas.tex Audio.tex \
- Bip.tex Btree.tex Byte.tex Buttons.tex \
- CanLogic.tex CctTable.tex Conn.tex Counting.tex Crossbar.tex Crow.tex \
- Csource.tex \
- Decoder.tex Demultiplexer.tex Dini.tex Diodes.tex Drive.tex \
- Emarrows.tex Flow.tex Fuses.tex Grounds.tex \
- Headers.tex Heathkit.tex \
- I2L.tex Incleps.tex Jack.tex \
- Logic.tex Loglog.tex MC.tex Mixer.tex MotorControl.tex Multiplexer.tex \
- NLG.tex NPDT.tex Nport.tex \
- Opamp.tex Optoiso.tex \
- Pconn.tex PushPull.tex Quantum.tex \
- Rectifiers.tex Relay.tex Rotbox.tex \
- Schottky.tex ShiftR.tex Sierpinski.tex Sixpole.tex Sources.tex SQUID.tex \
- Switches.tex \
- TTLnand.tex Tgate.tex Three.tex Timer.tex Ttree.tex Tubediags.tex \
- Variable.tex Windings.tex Xform.tex \
- control.tex csc.tex diamond.tex \
- ex00.tex ex01.tex ex02.tex ex03.tex ex04.tex ex05.tex ex06.tex \
- ex08.tex ex09.tex ex10.tex ex11.tex ex12.tex ex15.tex \
- ex16.tex ex17.tex ex18.tex ex21.tex exp.tex fet.tex \
- graysurf.tex lcct.tex pwrsupply.tex quick.tex recycle.tex rose.tex \
- sfg.tex shapes.tex thyristor.tex ujt.tex worm.tex XOR.tex
-
-PICS = `make -f Makefile echopics`
-
-MANFIGS = AmpTable Antennas Audio Bip CctTable Conn Contact Contacts \
- Demultiplexer Diodes \
- Emarrows Fuses Grounds Headers Jack Logic Multiplexer NLG NPDT Nport Opamp \
- Pconn Relay ShiftR Sources Switches Tgate Variable Windings Xform fet quick \
- thyristor ujt
-
-# Files that have to be processed twice:
-BOXDIMS = ex09 Crow Incleps Loglog Opamp Windings
-
-M4LIBS = $(CONFIGFILE)
-
-# Convert options
-EPSOPTS = -trim
-TIFOPTS = -trim
-SVGOPTS = -trim
-GIFOPTS = -trim
-PNGOPTS = -trim -density 400 -scale 25% -quality 92 -alpha Remove
-
-DVIPSOPTS = -Ppdf -G0 -t ledger
-
-DIMFILE = $(DOC).dim
-LTX = latex --shell-escape --quiet
-BS = tr '|' '\134'
-
-.SUFFIXES: .ps .dvi .tex .m4 .pic .eps .png .pdf .svg .tif .gif
-.dvi.ps:
- dvips $(DVIPSOPTS) $* -o $*.ps
- chmod 644 $*.ps
-.m4.tex:
- @if test -n "$(DIMFILE)" ; then touch $(DIMFILE) ; fi ; touch F_$*.dim
- $(M4) $(M4LIBS) $(DIMFILE) F_$*.dim $*.m4 | sed -e '/^ *$$/d' > $*.pic
- $(PIC) $*.pic > $*.tex
-.m4.pic:
- @if test -n "$(DIMFILE)" ; then touch $(DIMFILE) ; fi
- $(M4) $(M4LIBS) $(DIMFILE) $*.m4 > $*.pic
-.m4.dvi:
- make -f $(THISFILE) $*.tex
- printf "|documentclass[11pt]{article}\n\
-|usepackage{times,pstricks,boxdims,graphicx,pst-grad,pst-slpe}\n\
-|usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}\n\
-|setlength{|textwidth}{28cm}|addtolength{|textheight}{28cm}\n\
-|setlength{|oddsidemargin}{0pt}|setlength{|evensidemargin}{0pt}\n\
-|setlength{|hoffset}{-1cm}\n\
-|newbox|graph\n\
-|pagestyle{empty}|thispagestyle{empty}\n\
-|begin{document}\n\
-|noindent|input{"$*".tex}\n\
-|end{document}\n" | $(BS) > F_$*.tex
- latex --quiet F_$*
- touch F_$*.dim $(DIMFILE) ; rm -f $*.tex $*.pic ; make -f $(THISFILE) $*.tex
- latex --quiet F_$*
- touch F_$*.dim $(DIMFILE) ; rm -f $*.tex $*.pic ; make -f $(THISFILE) $*.tex
- latex --quiet F_$*
-.m4.eps:
- make -f $(THISFILE) $*.dvi
- dvips -Ppdf F_$* -T128cm,28cm -o $*.ps
-# Recent changes to PSTricks(?) have clashed with the use of TeXtoEPS
-# so use ps2epsi
- ps2epsi $*.ps $*.epsi
- ( sed -e '/%%Pages:/d' -e '/BeginPreview/,$$d' -e '/%%HiResBoundingBox/d' \
- $*.epsi | tr '\015' '\012' ; sed -e '1,/EndPreview/d' $*.epsi ) | awk \
- '/^%%BoundingBox/{print $$1" "$$2" "$$3" "$$4+10" "$$5+15; next}; {print}' \
- >$*.eps
-.m4.ps:
- make -f $(THISFILE) $*.tex && mv $*.tex test.tex; latex --quiet tst
- rm -f test.tex $*.pic
- if test -f tst.dim ; then cp tst.dim F_$*.dim ; fi
- make -f $(THISFILE) $*.tex && mv $*.tex test.tex; latex --quiet tst
- dvips $(DVIPSOPTS) tst -o $*.ps
- chmod 644 $*.ps
-.m4.svg:
- make -f $(THISFILE) $*.ps
- convert $(SVGOPTS) $*.ps $*.svg
-.m4.png:
- make -f $(THISFILE) $*.ps
-# make -f $(THISFILE) $*.eps
-# convert $(PNGOPTS) $*.eps $*.png
- convert $(PNGOPTS) $*.ps $*.png
- @if test -f $*.png.0 ; then mv $*.png.0 $*.png ; fi
-.m4.gif:
- make -f $(THISFILE) $*.ps
- convert $(GIFOPTS) $*.ps $*.gif
-.m4.tif:
- make -f $(THISFILE) $*.ps
- convert $(TIFOPTS) $*.ps $*.tif
- @if test -f $*.tif.0 ; then mv $*.tif.0 $*.tif ; fi
-.m4.pdf:
- touch F_$*.dim
- $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
- dpic -g $*.pic > test.tex
- sed -e '/^\\usepackage.*graphicx/s/^.*$$/\\usepackage{tikz}/' \
- -e '/pstricks/d' tst.tex > F_$*.tex
- pdflatex --quiet F_$*
- $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
- dpic -g $*.pic > test.tex
- pdflatex --quiet F_$*
- mv F_$*.pdf $*.pdf
-
-#########################################################################
-default:
- @printf "\n === making default\n"
- @printf "\n\n\nUSAGE: make -f $(THISFILE) distece\n\n\n"
-
-$(DOC).ps: $(DOC).dvi
-
-doclinks:
- @printf "\n === making doclinks\n"
- -for nm in $(MANFIGS) ; do cp $(LIBDIR)/doc/$$nm.m4 . ; done
- touch doclinks
-
-$(DOC).dvi: $(DOC).frs
- @printf "\n === making $(DOC).dvi\n"
- touch $(DOC).dim
- for file in $(BOXDIMS) ; do \
- rm -f $$file.tex $$file.pic ; \
- make -f $(THISFILE) PIC="$(PIC)" DIMFILE=$(DOC).dim $${file}.tex ; done
- latex --quiet $(DOC)
- for file in $(BOXDIMS) ; do \
- rm -f $$file.tex $$file.pic ; \
- make -f $(THISFILE) PIC="$(PIC)" DIMFILE=$(DOC).dim $${file}.tex ; done
- latex --quiet $(DOC)
-
-$(DOC).frs: $(DOC).tex files.tex header.tex
- @printf "\n === making $(DOC).frs\n"
- printf "|usepackage{pstricks,pst-grad}\n" | $(BS) > mode.tex
- make -f $(THISFILE) $(PICS)
- cp $(LIBDIR)/doc/Version.tex .
- latex --quiet $(DOC)
- touch $(DOC).frs
- rm -f $(DOC).dvi
-
-tst:
- make -f $(THISFILE) test.tex; latex --quiet tst; rm -f test.tex test.pic
- make -f $(THISFILE) DIMFILE=tst.dim test.tex; latex --quiet tst
- dvips $(DVIPSOPTS) tst -o tst.ps
-
-tst1: test.tex tst.tex
- latex --quiet tst
- dvips $(DVIPSOPTS) tst -o tst.ps
-
-gtst:
- touch test.m4; make -f $(THISFILE) PIC="gpic -t" CONFIGFILE="" tst
-
-gtst1:
- touch test.m4; make -f $(THISFILE) PIC="gpic -t" CONFIGFILE="" tst1
-
-# Distribution files
-NAME=Circuit_macros
-TMP=/tmp
-
-# Makes test.m4, examples.pdf, Circuit_macros.pdf,
-# Copying, examples/mf/cct.tfm examples/xfig
-dist:
- @printf "\n === making lib/examples/dist\n"
- (cd .. ; make clobber )
- touch test.m4; cp test.m4 $(TMP)/test`date +%Y.%m.%d.%H:%M:%S`
- find . -name test.m4 -exec rm -f {} \;
- make -f $(THISFILE) test.m4
- (cd $(LIBDIR)/doc; make )
- make -f Makefile examples.pdf
- ( cd $(LIBDIR); mv doc/Circuit_macros.pdf . ; \
- mv examples/examples.pdf . ; \
- make clobber; chmod 644 Circuit_macros.pdf examples.pdf; \
- cp -p Circuit_macros.pdf examples.pdf $(TMP) ; \
- mv Circuit_macros.pdf doc; mv examples.pdf examples )
-# touch reducedfiles
-# make -f $(THISFILE) reducedfiles
-# while test -f reducedfiles ; do sleep 1; done
- make -f $(THISFILE) Copying
- @printf "\n === making lib/examples/mf/cct.tfm\n"
- (cd mf; make; chmod 644 cct.tfm; make clean)
- @printf "\n === making lib/examples/xfig\n"
- (cd xfig; make; make clean)
- (cd $(LIBDIR)/doc; make clean )
- -dir=`pwd` ; if [ "`basename $$dir`" = "examples" ] ; then \
- rm -f $(LIBDIR)/examples.tar.gz ; fi
-
-EXCHANGE="`find C:/Program*\\(x86\\)/Adobe -name Acrobat.exe -print`"
-
-reducedfiles:
- @printf "\n === making reducedfiles\n"
- -( cd $(LIBDIR)/doc ; \
- printf "\n\n save Circuit_macros.pdf as reduced size pdf\n\n" ; \
- pwd | sed -e 's%/cygdrive/\(.\)%\1:%' -e 's%/%\\\\%g' \
- -e 's%^%$(EXCHANGE) %' -e 's%$$%\\\\Circuit_macros.pdf%' | sh ) && \
- ( printf "\n\n save examples.pdf as reduced size pdf\n\n" ; \
- pwd | sed -e 's%/cygdrive/\(.\)%\1:%' -e 's%/%\\\\%g' \
- -e 's%^%$(EXCHANGE) %' -e 's%$$%/examples.pdf%' | sh ) && \
-
-$(TMP)/$(NAME):
- if test -d $(TMP)/$(NAME); then rm -rf $(TMP)/$(NAME); \
- mkdir -p $(TMP)/$(NAME) ; fi
-
-COPIED = boxdims.sty CHANGES Copying darrow.m4 doc examples gpic.m4 \
- lib3D.m4 libcct.m4 libgen.m4 liblog.m4 Licence.txt \
- Makefile mfpic.m4 mpost.m4 pgf.m4 postscript.m4 psfrag.m4 pstricks.m4 \
- README svg.m4 xfig.m4 dpictools.pic
-
-REMOVED = examples/test examples/dev examples/pdflatex examples/xfig/info \
- examples/htmlsource examples/html examples/dist examples/zips \
- examples/SCP examples/distmakefile examples/boxdims \
- m4s \
- doc/expl-m4.pdf
-
-zipdir: $(TMP)/$(NAME)
- @printf "\n === making lib/examples/zips\n"
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- PCVersion=`echo $$Version | sed -e 's/\./_/g'` ; \
- rm -rf $(TMP)/$(NAME)$$Version ; mkdir $(TMP)/$(NAME)$$Version; \
- (cd $(LIBDIR); cp -r $(COPIED) $(TMP)/$(NAME)$$Version ); \
- (cd $(TMP)/$(NAME)$$Version ; rm -rf $(REMOVED) ) ; \
- (cd $(TMP)/$(NAME)$$Version ; find . -type f -exec chmod 644 {} \; ) ; \
- (cd $(TMP)/$(NAME)$$Version ; find . -type f -empty -exec rm {} \; ) ; \
- (cd $(TMP)/$(NAME)$$Version ; find . -type d -exec chmod 755 {} \; ) ; \
- (cd $(TMP)/$(NAME)$$Version ; chmod +x examples/mf/mftest ) ; \
- (cd $(TMP)/$(NAME)$$Version ; chmod +x examples/mpost/mptest ) ; \
- (cd $(LIBDIR)/doc; make clobber )
- touch zipdir
-
-zips: zipdir
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- ( cd $(TMP); \
- tar cf - $(NAME)$$Version | gzip > $(NAME)$$Version.tar.gz ; \
- (cd $(NAME)$$Version; zip -r $(NAME) * ) ; \
- mv $(NAME)$$Version/$(NAME).zip $(NAME)$$PCVersion.zip ; \
- printf "\n$(TMP)/$(NAME)$$Version and\n" ; \
- printf "$(TMP)/$(NAME)$$Version.tar.gz created\n"; \
- printf "\n$(TMP)/$(NAME)$$PCVersion.zip created\n" )
-# touch zips
-
-test.m4:
- @printf "\n === making test.m4\n"
- printf \
-".PS\n\
-# Test.m4\n\
-cct_init\n\
-# Use this file to do a quick test of diagrams you are developing.\n\
-# Enter the drawing commands here and (if you have a \"make\" utility) type\n\
-# make tst\n\
-# Otherwise, to process a file called filename.m4, type one of\n\
-# make filename.ps\n\
-# make filename.eps\n\
-# make filename.pdf\n\
-# make filename.gif (requires ImageMagick convert)\n\
-# make filename.png (requires ImageMagick convert)\n\
-# make filename.tif (requires ImageMagick convert)\n\
-# To perform tests in a new folder, copy the Makefile, this file,\n\
-# and tst.tex (or your own equivalent) to that folder.\n\
-.PE\n" > test.m4
-
-# For the git repository
-GITDIR=$${HOME}/dpic/git/Circuit_macros
-gitsync: dist zipdir
- cd $(GITDIR) && rsync -a -v $(TMP)/Cir*[0-9]/* .
- cp -p htmlsource/.gitignore $(GITDIR)
-
-distfile:
- @printf "\n === making distfile\n"
- rm -f dist zips htmlfiles
- make -f $(THISFILE) dist zips htmlfiles
- rm -rf distfile distfile.tar.gz; mkdir distfile
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- cp -p $(TMP)/$(NAME)$$Version.tar.gz \
- $(TMP)/$(NAME)$$Version/README $(TMP)/$(NAME)$$Version/CHANGES \
- distfile ;\
- PCVersion=`echo $$Version | sed -e 's/\./_/g'` ; \
- cp -p $(TMP)/$(NAME)$$PCVersion.zip distfile ;\
- mkdir distfile/html
- cp -rp html/* distfile/html
- (cd distfile/html; mv index.html .. ; rm -f access.log *.pl )
-# tarlib distfile
-
-EPSFILES=${PICS:%.tex=%.eps}
-# Make an encapsulated Postscript file for each example (requires pstricks)
-eps:
- @printf "\n === making eps\n"
- make -f $(THISFILE) ${PICS:%.tex=%.eps}
-
-Copying: $(LIBDIR)/doc/Version.tex
- @printf "\n === making Copying\n"
- sed -e \
- "s%Version *[0-9.]*,%`cat $(LIBDIR)/doc/Version.tex`,%" $(LIBDIR)/Copying \
- > xxx
- sed -e "s%opyright (c) [^ ][^ ]* J%opyright (c) `date '+%Y'` J%" xxx \
- > $(LIBDIR)/Copying ; rm -f xxx
-# for file in `find $(LIBDIR) -name Copying -print` ; do \
-# if test ! "$$file" = "$(LIBDIR)/Copying" ; then \
-# cp $(LIBDIR)/Copying $$file; fi ; done
- (cd $(LIBDIR) ; for file in `grep -l 'Version [0-9][\.0-9]*,' *` ; do \
- if test ! \( "$$file" = "Copying" -o "$$file" = "CHANGES" \) ; then \
- ( sed -e '/opyright (c)/,$$d' $$file ; cat Copying ; echo "" ; \
- sed -e '1,/opyright (c)/d' $$file | sed -e '1,/^ *$$/d' ) > xxx ; \
- sed -e "s%Version *[0-9.]*:%`cat doc/Version.tex`:%" xxx \
- > $$file ; rm -f xxx ; fi ; done ; )
- (cd $(LIBDIR) ; \
- ( sed -e '/opyright (c)/,$$d' dpictools.pic ; \
- sed -e 's/^ *\*/\#/' -e 's/\* *$$/\#/' Copying ; echo "" ; \
- sed -e '1,/opyright (c)/d' dpictools.pic | sed -e '1,/^ *$$/d' ) > xxx ;\
- sed -e "s%Version *[0-9.]*:%`cat doc/Version.tex`:%" xxx \
- > dpictools.pic ; rm xxx )
-
-htmlfiles: html svgfiles pngs html/examples.html html/index.html \
- Circuit_macros.ico html/Optosample.png
- @printf "\n === making lib/examples/htmlfiles\n"
- mv Circuit_macros.ico html
- if test -f examples.pdf ; \
- then printf "\n\n examples.pdf found\n" ; \
- else printf "\n\n examples.pdf not found\n" ; fi
- if test -f doc/Circuit_macros.pdf ; \
- then printf "\n\n doc/Circuit_macros.pdf found\n" ; \
- cp doc/Circuit_macros.pdf html ; \
- else printf "\n\n doc/Circuit_macros.pdf not found\n" ; \
- cp $(TMP)/Circuit_macros.pdf $(LIBDIR)/doc ; fi
- cp examples.pdf html
- (cd html; chmod 644 *.svg *.txt *.html *.pdf )
- touch htmlfiles
-
-html:
- @printf "\n === making html\n"
- if test ! -d html ; then mkdir html ; fi
- ( cd htmlsource; cp -p $(PERLFILE).pl .htaccess ../html )
-
-svgfiles: html
- @printf "\n === making svgfiles\n"
- ( cd svg; make )
- for file in `ls svg/*SVG.m4` ; \
- do cp $$file html/`basename $$file .m4`.txt ; done
- cp -p svg/examplesSVG.html svg/*.svg svg/*.jpg html
- touch svgfiles
-
-Circuit_macros.ico: html htmlsource/favicon.m4
- @printf "\n === making Circuit_macros.ico\n"
- cp htmlsource/favicon.m4 .
- make -f $(THISFILE) favicon.eps
- convert -density 105 favicon.eps Circuit_macros.ico
- rm -f favicon.*
-
-html/index.html: htmlsource/index.htmx html
- @printf "\n === making index.html\n"
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- PCVersion=`echo $$Version | sed -e 's/\./_/g'` ; \
- sed -e 's/XXX/'$$Version'/' \
- -e 's/PCVersion/'$$PCVersion'/' \
- htmlsource/index.htmx > html/index.html
-
-html/Optosample.png: html htmlsource/Optosample.m4
- @printf "\n === making Optosample.png\n"
- cp htmlsource/Optosample.m4 .
- make -f $(THISFILE) Optosample.eps
- convert Optosample.eps Optosample.png
- mv Optosample.png html/Optosample.png
- rm -f Optosample.*
-
-TR = tr '^@' '\012`'
-html/examples.html: html htmlsource/examples.htmx files.tex
- @printf "\n === making examples.html\n"
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- sed -e 's/Version XXX/Version '$$Version'/' htmlsource/examples.htmx \
- > html/examples.html
- cat files.tex | sed -e '/bfig[\{]/d' -e '/^ *[\}][\}]* *$$/d' \
- -e '/src[\{]/d' -e '/\\if/d' -e '/\\fi/d' -e '/includegraphics/d' \
- -e '/\%ignore\%/d' -e '/^\%/d' -e '/\\end[\{]/d' -e '/^\%/d' \
- -e '/getpic/s/\\getpic[\{]\([^\}]*\)[\}][\}]*/ <\1> /g' \
- -e '/<[^-]/s/^[^<]*<//' -e '/<[^-]/s/>[^<]*</> /g' -e '/[^-]>/s/>.*$$/>/' \
- -e 's/\([^ -][^ -]*\)>/IS_"\1.png" A_"\1 diagram">B_"\1.txt" T_\1.m4Y/'\
- -e 's/IS_/<P><IMG SRC=/' -e 's/A_/ALT=/' -e 's/B_/<BR>^<A HREF=/' \
- -e 's/T_/TARGET="_blank"><P>/' -e 's/4Y/4<\/A>:/' \
- -e 's/^.*caption[\{]//' -e '/^ *$$/s/^ */<HR>/' \
- -e 's/\\hbox//g' \
- | sed \
- -e '/<P>/!s/{\\tt \([^}]*\)}/<tt>\1<\/tt>/g' \
- -e '/<P>/!s/{\\texttt \([^}]*\)}/<tt>\1<\/tt>/g' \
- -e '/<P>/!s/{\\bf \([^}]*\)}/<tt>\1<\/tt>/g' \
- -e '/<P>/!s/{\\em \([^}]*\)}/<em>\1<\/em>/g' \
- -e '/<P>/!s/{\\it \([^}]*\)}/<em>\1<\/em>/g' \
- -e '/<P>/!s/{\\sl \([^}]*\)}/<em>\1<\/em>/g' \
- -e '/<P>/!s%\([^\\]\)_\(.\)%\1<sub>\2</sub>%g' \
- -e '/<P>/!s%\([^\\]\)\^\(.\)%\1<sup>\2</sup>%g' \
- -e 's%``%"%g' -e "s%''%\"%g" -e 's/\~/ /g' \
- -e 's%\\%%g' -e 's/\$$//g' \
- | sed -e 's/HREF=Inclpdf.m4/HREF=Inclpdf.txt/' | $(TR) \
- >> html/examples.html
- cat htmlsource/endexamples.htmx >> html/examples.html
-
-BACKGROUND = blight
-
-pngs: basenames
- @printf "\n === making pngs\n"
- cp htmlsource/$(BACKGROUND).m4 .
- -for nm in `cat basenames` ; do \
- echo "make -f $(THISFILE) $$nm.png ; mv $$nm.png html/$$nm.png" ;\
- make -f $(THISFILE) $$nm.png ; mv $$nm.png html/$$nm.png ;\
- ls -l html/$$nm.png ; \
- done
- make -f $(THISFILE) $(BACKGROUND).png
- mv $(BACKGROUND).png html/$(BACKGROUND).png
- rm -f $(BACKGROUND).tex
- -for nm in `cat basenames` ; do\
- cp $$nm.m4 html/$$nm.txt ; done
- cp Inclpdf.m4 html/Inclpdf.txt
- echo "" > html/Inclpdf.m4
- cat Inclpdf.m4 >> html/Inclpdf.m4
- chmod 644 html/Inclpdf.m4
-
-gifs: basenames
- @printf "\n === making gifs\n"
- -for nm in `cat basenames` ; do \
- make -f $(THISFILE) $$nm.gif ; mv $$nm.gif html/$$nm.gif ;\
- done
- make -f $(THISFILE) $(BACKGROUND).gif
- mv $(BACKGROUND).gif html/$(BACKGROUND).gif
- rm -f $(BACKGROUND).tex
- -for nm in `cat basenames` ; do\
- cp $$nm.m4 html/$$nm.txt ; done
- cp Inclpdf.m4 html/Inclpdf.txt
- echo "" > html/Inclpdf.m4
- cat Inclpdf.m4 >> html/Inclpdf.m4
- chmod 644 html/Inclpdf.m4
-
-basenames: files.tex
- @printf "\n === making basenames\n"
- grep '\\getpic' files.tex | sed -e '/Inclpdf/d' \
- -e 's%\\getpic[\{]\([^\}]*\)[\}]% <\1> %g' \
- -e 's/^[^<]*<//' -e 's/>[^<]*</ /g' -e 's/>.*$$//' \
- | sort | uniq > basenames
-
-# To make but not distribute everything: make dist zips htmlfiles
-
-ECETMP = /cygdrive/d/Dwight/tmp
-ECENAM = CMdistfiles
-ECEDIR = $(ECETMP)/$(NAME)
-PERLFILE = Circuit_macros_access_log
-
-# (cd lib/examples; make -f distmakefile distece 2>&1)2>&1 > typescript
-distece:
- @printf "\n === making lib/examples/distece\n"
- (cd ..; find . -type f -exec chmod 644 {} \; )
- rm -f dist zips htmlfiles
- make -f $(THISFILE) dist zips htmlfiles
- rm -rf $(ECEDIR)* ; mkdir $(ECEDIR)
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- PCVersion=`echo $$Version | sed -e 's/\./_/g'` ; \
- cp -p $(TMP)/$(NAME)$$Version.tar.gz \
- $(TMP)/$(NAME)$$PCVersion.zip \
- $(TMP)/$(NAME)$$Version/README $(TMP)/$(NAME)$$Version/CHANGES \
- $(TMP)/$(NAME)$$Version/doc/Circuit_macros.pdf \
- $(ECEDIR)
- rm -rf $(ECEDIR)/html ; mkdir $(ECEDIR)/html
- cp -rp html/* $(ECEDIR)/html
- mv $(ECEDIR)/html/index.html $(ECEDIR)/index.html
- (cd $(ECETMP); tarlib $(NAME); mv $(NAME).tar.gz $(ECENAM).tar.gz )
- echo ""; echo ""; ls -l $(ECETMP)/$(ECENAM).tar.gz
-
-testall:
- (cd mf; make)
- (cd mpost; make)
-# (cd pgf; make)
- (cd psfrag; make)
- (cd svg; make)
- (cd xfig; make)
-
-clobber: clean
- rm -f *.ps
- -@for dir in mf mpost pdflatex xfig psfrag pgf svg dev test; \
- do (if test -d $$dir ; then cd $$dir; make clobber; fi) ; done
- rm -f *.warn
- rm -rf index.html html basenames *.png* dist zips htmlfiles svgfiles
- rm -rf $(TMP)/Cir* $(ECETMP)/Cir* $(ECEDIR)
- if test -f Incl.pdf ; then \
- mv Incl.pdf Incl.pdx; rm -f *.pdf; mv Incl.pdx Incl.pdf ; fi
- for file in `ls *.tex` ; do \
- nm=`echo $$file | sed -e "s/\(.*\)\.tex/\1/"` ; \
- if test -s $$nm.m4 ; then rm -f $$nm.pic $$nm.tex ; fi ; done
-
-clean:
- @printf "\nclean:\n"
- find .. -name \*stackdump -exec rm {} \;
- rm -f core snapshots *.ico *favicon* $(BACKGROUND).* zipdir
- rm -f *.dvi *.aux *.log *.toc *.blg *.eps *.epsi eps *-mfpic*
- rm -f fig*.tex $(PICS) *.roff *.int *.pic gpic.m4 test.tex xxx* *.fig
- rm -f *.dim *.bak *.frs $(RPICS) rotate.ps tst.ps *.bbl *-pics.ps *.gif
- rm -f *.tfm *[0-9]pk *.png *.1
- rm -f F_*.tex Version.tex doclinks *stackdump *.ico
- rm -rf distfile distfile.tar.gz
- @printf "\n"
diff --git a/graphics/circuit_macros/examples/psfrag/Makefile b/graphics/circuit_macros/examples/psfrag/Makefile
index 83eb573f8e..314d8c3ef1 100644
--- a/graphics/circuit_macros/examples/psfrag/Makefile
+++ b/graphics/circuit_macros/examples/psfrag/Makefile
@@ -23,8 +23,10 @@ DOC = examplespsfrag
FIGS = Adder.eps Alogix.eps ABlogix.eps Antennas.eps Audio.eps AmpTable.eps \
AntiqueClock.eps \
Bip.eps Btree.eps Byte.eps Buttons.eps \
- CanLogic.eps CctTable.eps Conn.eps Counting.eps Crossbar.eps Crow.eps \
+ CanLogic.eps CctTable.eps Conn.eps Connectors.eps \
+ Counting.eps Crossbar.eps Crow.eps \
Decoder.eps Demultiplexer.eps Dini.eps Diodes.eps Drive.eps \
+ Contact.eps Contacts.eps \
Csource.eps \
Emarrows.eps Flow.eps Fuses.eps \
GrayCode.eps Grounds.eps Headers.eps Heathkit.eps Jack.eps \
diff --git a/graphics/circuit_macros/examples/psfrag/examplespsfrag.tex b/graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
index 594eafcd08..2baa5cd04f 100644
--- a/graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
+++ b/graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
@@ -2,7 +2,7 @@
\documentclass[11pt]{article}
\usepackage{times,boxdims}
-\usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}
+\usepackage{siunitx}
\usepackage{rotating}
\usepackage{graphicx}
\usepackage[scanall]{psfrag}
diff --git a/graphics/circuit_macros/examples/psfrag/tstpsfrag.tex b/graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
index 2073079ef1..6aa6ed438f 100644
--- a/graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
+++ b/graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
@@ -1,6 +1,6 @@
\documentclass[dvips]{article}
\usepackage{times,boxdims,graphicx}
-\usepackage[amssymb,Gray,thinqspace,textstyle]{SIunits}
+\usepackage{siunitx}
\usepackage[scanall]{psfrag}
\addtolength{\textwidth}{2cm}
\addtolength{\textheight}{3cm}
diff --git a/graphics/circuit_macros/examples/svg/AntiqueClockSVG.m4 b/graphics/circuit_macros/examples/svg/AntiqueClockSVG.m4
index 0848a53cbe..63c169d3e2 100644
--- a/graphics/circuit_macros/examples/svg/AntiqueClockSVG.m4
+++ b/graphics/circuit_macros/examples/svg/AntiqueClockSVG.m4
@@ -4,9 +4,7 @@ gen_init(svg_font(font-family="sans-serif" font-stretch="condensed"))
# https://tex.stackexchange.com/questions/236923/generate-analog-clock-with-numbered-face-add-seconds-roman-numerals
-# `Initialize rotated text. Any unrotated text must
-# appear after the rotated text.'
-svgrot_init(AntiqueClockSVG)
+svg_rot_init(AntiqueClockSVG)
# `hms2deg(hr,min,sec) hr:min:sec to degrees
# blank arg1: degrees for minute hand
@@ -74,8 +72,8 @@ define(`AntiqueClock',`[ # h,m,s,diam
second = ifelse(`$3',,51,`$3')
# outer radius
ifelse(`$4',,`skale=0.5; r1=2',`r1=(`$4')/2; skale=r1/4')
- r2 = r1-0.5*skale
- r3 = r2-0.14*skale
+ r2 = r1 - 0.5*skale
+ r3 = r2 - 0.14*skale
r4 = r3 - 0.35*skale
r5 = r4 - 0.17*skale
r6 = r5 - 0.63*skale
@@ -117,11 +115,11 @@ Face: circle thick 0 fill_(1) rad r3 at C
textht = (r3-r4)*0.6
for mn = -15 to 15 by 5 do { t = 90-mn/60*360
R:(Rect_((r3+r4)/2,t))
- svg_rot(mn/60*360,sprintf("%g",pmod(mn,60)) at C+R+adj(t))
+ svg_rot(-mn/60*360,sprintf("%g",pmod(mn,60)) at C+R+adj(t))
}
for mn = 20 to 40 by 5 do { t = 450-mn/60*360
R: (Rect_((r3+r4)/2,t))
- svg_rot(-180+mn/60*360, sprintf("%g",pmod(mn,60)) at C+R+adj(t))
+ svg_rot(180-mn/60*360, sprintf("%g",pmod(mn,60)) at C+R+adj(t))
}
# Outer tics
for mn = 1 to 60 do { t = 90-mn/60*360
@@ -131,11 +129,11 @@ Face: circle thick 0 fill_(1) rad r3 at C
textht = (r5-r6)*0.6
Loopover_(`mx',`tt = 90-(m4Lx-4)/12*360
R: (Rect_((r5+r6)/2,tt))
- svg_rot(90-tt, "mx" at C+R+adj(tt)) ',
+ svg_rot(tt-90, "mx" at C+R+adj(tt)) ',
IX,X,XI,XII,I,II,III)
Loopover_(`mx',`tt = 360-m4Lx*30
R: (Rect_((r5+r6)/2,tt))
- svg_rot(270-tt, "mx" at C+R+adj(tt)) ',
+ svg_rot(tt-270, "mx" at C+R+adj(tt)) ',
IV,V,VI,VII,VIII)
# Inner tics
diff --git a/graphics/circuit_macros/examples/svg/AudioSVG.m4 b/graphics/circuit_macros/examples/svg/AudioSVG.m4
index 116f155e58..709fdf4c25 100644
--- a/graphics/circuit_macros/examples/svg/AudioSVG.m4
+++ b/graphics/circuit_macros/examples/svg/AudioSVG.m4
@@ -1,5 +1,5 @@
.PS
-# `Audio.m4'
+# `AudioSVG.m4'
cct_init(svg_font(sans-serif,11bp__,2bp__))
define(`In123',`
@@ -44,14 +44,6 @@ L:[
thicklines_
] with .sw at last [].se+(0.35,0)
[
- M: microphone
- `"microphone"' at M.s+(0,-0.2) below
- In123(M)
- thinlines_
- arrow <- from M.Circle.n up 0.15 ; "svg_it(Circle)" above
- thicklines_
- ] with .sw at last [].se+(0.4,0)
-[
Z: buzzer
`"buzzer"' at Z.s+(0,-0.2) below
In123(Z)
@@ -69,6 +61,24 @@ R:[
"svg_it(Face)" wid 0.5 at Here above
thicklines_
] with .sw at last [].se+(0.4,0)
+[
+ M: microphone
+ `"microphone"' wid 60bp__ at M.s+(0,-0.2) below
+ In123(M)
+ thinlines_
+ arrow <- from M.Circle.n up 0.15 ; "svg_it(Circle)" above
+ thicklines_
+ ] with .sw at last [].se+(0.4,0)
+[
+ M: microphone(A)
+ "`microphone(A)'" at M.s+(0,-0.2) #below
+ thinlines_
+ arrow <- from M.Head.e+(0,0.05) right 0.2; "svg_it(Head)" wid 40bp__ ljust
+ spline 0.5 <- from M.Head.b down 0.05 right 0.1 then right 0.1
+ "svg_it(Head.b)" ljust
+ arrow <- from M.Stand.s right 0.2; "svg_it(Stand.s)" ljust
+ thicklines_
+ ] with .n at last [].s+(0,-0.2)
[[
E: earphone
`"earphone"' at E.s+(0,-0.2) below
@@ -87,7 +97,7 @@ R:[
"svg_it(C)" at E.C
thicklines_
] with .sw at last [].se+(0.4,0)
-] with .n at (0.5 between L and R,L.s)+(0,-0.2)
+] with .n at (0.5 between L and R,L.s)+(0.5,-0.2)
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/Banking.m4 b/graphics/circuit_macros/examples/svg/Banking.m4
deleted file mode 100644
index 630326f867..0000000000
--- a/graphics/circuit_macros/examples/svg/Banking.m4
+++ /dev/null
@@ -1,59 +0,0 @@
-.PS
-#Banking.m4
-
-gen_init
-
- scale = 2.54 # use cm
- svg_font(Arial Black,11 bp__,2 bp__)
- boxwid = 6.8
- boxht = 4.5
- linethick_(1.5)
-
- define(`heading',
- `<tspan font-style=\"bold\" font-size=\"120%\" fill=\"white\">`$1'</tspan>')
- define(`subheading',
- `<tspan fill=\"white\" font-size=\"75%\" font-style=\"bold\">[`$1']</tspan>')
- define(`wtext',`<tspan fill=\"white\">`$1'</tspan>')
-
- C: circle diam 2.6 colored "mediumblue"
- Person: box rad boxht/4 colored "mediumblue" with .n at C.s+(0,C.rad/8) \
- "heading(Personal Banking)" \
- "" \
- "heading(Customer)" \
- "subheading(Person)" \
- "" \
- "wtext(A customer of the bank`,' with)" \
- "wtext(personal bank accounts.)"
-
- A1: arrow thick 1.5 dashed down 3.5 from Person.s
- svg_font(Arial,11 bp__,2 bp__)
- { box invis fill 1 ht 0.4 wid 1.0 "Uses" at A1 }
- command "</g>"
- Internet: box colored "steelblue" \
- "heading(Internet Banking System)" \
- "subheading(Software system)" \
- "" \
- "wtext(Allows customers to view)" \
- "wtext(information about their bank)" \
- "wtext(accounts`,' and make payments.)"
-
- svg_font(Arial,11 bp__,2 bp__)
- A2: arrow thick 1.5 dashed right 5.4 from Internet.e \
- "Sends e-mail" above "using" below
- command "</g>"
- Email: box colored "slategrey" \
- "heading(E-mail System)" \
- "subheading(Software system)" \
- "" \
- "wtext(Internal Microsoft Exchange)" \
- "wtext(e-mail system.)"
-
- A3:arrow thick 1.5 dashed from Email.nw+(0.4,0) to Person.se+(0.3,Person.ht/5)
- svg_font(Arial,11 bp__,2 bp__)
- { box invis fill 1 ht 0.4 wid 3.3 "Sends e-mails to" at A3 }
- command "</g>"
-
-# etc
-
- command "</g>" # font
-.PE
diff --git a/graphics/circuit_macros/examples/svg/ButtonsSVG.m4 b/graphics/circuit_macros/examples/svg/ButtonsSVG.m4
index b9e9c12e69..79c9463639 100644
--- a/graphics/circuit_macros/examples/svg/ButtonsSVG.m4
+++ b/graphics/circuit_macros/examples/svg/ButtonsSVG.m4
@@ -1,7 +1,7 @@
.PS
# ButtonsSVG.m4
gen_init(svg_font(sans-serif,11bp__))
-copy "HOMELIB_/dpictools.pic"
+NeedDpicTools
divert(-1)
#################################################################
diff --git a/graphics/circuit_macros/examples/svg/ConnSVG.m4 b/graphics/circuit_macros/examples/svg/ConnSVG.m4
index 9d828ee48f..7344baeb23 100644
--- a/graphics/circuit_macros/examples/svg/ConnSVG.m4
+++ b/graphics/circuit_macros/examples/svg/ConnSVG.m4
@@ -1,6 +1,6 @@
.PS
# `ConnSVG.m4'
-cct_init(svg_font(sans-serif,11.5bp__))
+cct_init(svg_font(sans-serif,10.5bp__))
T:[
S1: tstrip(U)
@@ -55,13 +55,13 @@ Y: [
] with .sw at (C.e.x-0.3,T.s.y)
B: [
- tbox(V`'svg_sub(2))
- `"tbox(V`'svg_sub(2))"' wid 105bp__ with .nw at last [].sw+(0,-4bp__)
- [ left_;
- tbox(V`'svg_sub(1)) ] with .nw at last [].sw+(0,-0.25)
- `"left_"' at last [].sw +(0,-0.2) ljust `"tbox(V`'svg_sub(1))"' wid 100bp__ \
- ljust
-] with .nw at Y.ne+(0.2,0)
+ tbox(V`'svg_sub(1))
+ { `"tbox'(V`'svg_sub(1))" wid 47bp__ with .nw at last [].sw+(0,-4bp__) }
+ tbox(V`'svg_sub(2),,,<) with .sw at last [].se+(0.75,0)
+ { `"tbox'(V`'svg_sub(2)`,,,&#x3C;)"' at last [].s below }
+ tbox(V`'svg_sub(3),,,<>) with .sw at last [].se+(0.75,0)
+ { `"tbox'(V`'svg_sub(3)`,,,&#x3C;&#x3E;)"' at last [].s below }
+] with .nw at T.sw+(0,-0.2)
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4 b/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4
new file mode 100644
index 0000000000..59860a2d1e
--- /dev/null
+++ b/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4
@@ -0,0 +1,30 @@
+.PS
+# ConnectorsSVG.m4
+log_init
+include(icsSVG.m4)
+
+svg_font(sans-serif,8.5bp__)
+#vg_rot_init(test)
+svg_rot_init(ConnectorsSVG)
+
+# ArduinoUno
+# "Arduino Uno Rev 3" at last [].Connector.s below
+ Ar: ArduinoLeonardo #with .sw at last [].se+(0.25,0)
+ "Arduino Leonardo" at last [].Connector.s below
+
+ RPI: RPi with .sw at last [].se+(0.25,0)
+ "Raspberry Pi 4 GPIO" at last [].GPIO.s below
+
+ HD: HDMI_micro with .nw at last [].ne+(0.25,0.5)
+ "Micro" rjust at HD.Base.sw+(0,10bp__) "HDMI" rjust
+
+ S: USB_C_Socket with .sw at (HD.e.x+0.25,RPI.s.y)
+ "USB-C Socket" at S.Base.s below
+ "B12" at S.B12.end above ljust
+ "B1" at S.B1.end above ljust
+ "A1" at S.A1.end above rjust
+ "A12" at S.A12.end above rjust
+
+ command "</g>"
+
+.PE
diff --git a/graphics/circuit_macros/examples/svg/CsourceSVG.m4 b/graphics/circuit_macros/examples/svg/CsourceSVG.m4
index e194f01f8c..c95aaff3d4 100644
--- a/graphics/circuit_macros/examples/svg/CsourceSVG.m4
+++ b/graphics/circuit_macros/examples/svg/CsourceSVG.m4
@@ -4,7 +4,7 @@ cct_init(svg_font(sans-serif,11bp__,2bp__))
# The default line separation is a bit small if the top line contains
# subscripts, so we space stacked lines explicitly:
-define(`stbelow',`at last ""-(0,textht*1.3)')
+define(`stbelow',`at last ""-(0,textht*1.5)')
define(`loffset',`+(textoffset,0)')
define(`roffset',`-(textoffset,0)')
diff --git a/graphics/circuit_macros/examples/svg/FontsSVG.m4 b/graphics/circuit_macros/examples/svg/FontsSVG.m4
index 856014836b..57dcd431a5 100644
--- a/graphics/circuit_macros/examples/svg/FontsSVG.m4
+++ b/graphics/circuit_macros/examples/svg/FontsSVG.m4
@@ -3,10 +3,13 @@
gen_init
textht = 0.2
-define(`ft',`{ svg_font(`$1',`$2',`$3',"`$1'")}; move down 0.5; right_')
+define(`ft',`{ svg_font(`$1',`$2',`$3',"`$1'" ljust)
+ move to (B.w+(2.5,0),Here)
+ svg_font(`$1',`$2',`$3',"ABCDEFG abcdefg" ljust)}
+ move down 0.5; right_')
-B: box wid 4 ht 7
- move to B.nw+(2,-0.5)
+B: box wid 5.5 ht 7
+ move to B.nw+(0.5,-0.5)
ft(Arial)
ft(Helvetica)
@@ -23,6 +26,6 @@ B: box wid 4 ht 7
ft(Arial Black)
ft(Impact)
- textht = 0.1
- "These may be vewer-dependent" above ljust at B.sw
+ textht = 0.12
+ "These may be viewer-dependent" above ljust at B.sw
.PE
diff --git a/graphics/circuit_macros/examples/svg/FusesSVG.m4 b/graphics/circuit_macros/examples/svg/FusesSVG.m4
index a4617e6221..a421c45b57 100644
--- a/graphics/circuit_macros/examples/svg/FusesSVG.m4
+++ b/graphics/circuit_macros/examples/svg/FusesSVG.m4
@@ -14,11 +14,10 @@ movewid = 0.25
move
fuse(,S) ; {"`fuse(,S)'" at last line.c+(0,-0.2)}
move
- fuse(,HB) ; {"`fuse(,HB)'" at last line.c+(0,-0.2)}
+ fuse(,SB) ; {"`fuse(,SB)'" at last line.c+(0,-0.2)}
}
move down; right_
- fuse(,HC,0.5,0.3) ; {"`(,HC,0.5,0.3)'" ljust at last line.start+(0,-0.25)}
- move
+ {
cbreaker; {"`cbreaker'" at last line.c+(0,-0.25)}
move
cbreaker(,R); {"`cbreaker(,R)'" at last line.c+(0,-0.25)}
@@ -28,6 +27,13 @@ movewid = 0.25
cbreaker(,,T); {"`...(,,T)'" at last line.c+(0,-0.25)}
move
cbreaker(,,TS); {"`...(,,TS)'" at last line.c+(0,-0.25)}
+ }
+ move down; right_
+ {
+ fuse(,HB) ; {"`fuse(,HB)'" at last line.c+(0,-0.2)}
+ move
+ fuse(,HC,0.5,0.3) ; {"`(,HC,0.5,0.3)'" ljust at last line.start+(0,-0.25)}
+ }
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/GroundsSVG.m4 b/graphics/circuit_macros/examples/svg/GroundsSVG.m4
index 7c4d741d0e..c1a9589f2d 100644
--- a/graphics/circuit_macros/examples/svg/GroundsSVG.m4
+++ b/graphics/circuit_macros/examples/svg/GroundsSVG.m4
@@ -8,15 +8,17 @@ Ground: ground
GT: ground(,T)
move right sep
GF: ground(,,F)
+sep = 0.55
move right sep
GE: ground(,,E)
move right sep
-B: Here+(0,-0.5) ; {
- "`ground'" wid 36bp__ at (Ground,B)
- "`ground'(,T)" at (GT,B)+(0,12bp__)
+B: Here+(0,-0.5)
+D: B+(0,11bp__)
+ { "`ground'" wid 36bp__ at (Ground,B)
+ "`ground'(,T)" at (GT,B)+(0,11bp__)
"(,,F)" at (GF,B)
- "(,,E)" at (GE,B)}
+ "(,,E)" at (GE,D)}
GS: ground(,,S)
@@ -28,13 +30,17 @@ GQ: ground(,,Q)
GL: ground(,,L)
move right sep
GP: ground(,,P)
+ move right sep
+GPA: ground(,T,PA)
C: Here+(0,-0.5)
+E: C+(0,11bp__)
"(,,S)" at (GS,C)
- "(,,S,90)" at (GS90,C)
+ "(,,S,90)" at (GS90,E)
"(,,Q)" at (GQ,C)
- "(,,L)" at (GL,C)
+ "(,,L)" at (GL,E)
"(,,P)" at (GP,C)
+ "(,T,PA)" wid 32bp__ at (GPA,E)
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/HeadersSVG.m4 b/graphics/circuit_macros/examples/svg/HeadersSVG.m4
index c222f18650..15e4cda70b 100644
--- a/graphics/circuit_macros/examples/svg/HeadersSVG.m4
+++ b/graphics/circuit_macros/examples/svg/HeadersSVG.m4
@@ -5,7 +5,11 @@ log_init(svg_font(sans-serif,10bp__))
Header
{"svg_it(P1)" wid 15bp__ at last [].P1 rjust
`"Header"' wid 45bp__ at last [].s+(0,-10pt__)
- "svg_it(P2)" at last [].P2 rjust}
+ "svg_it(P2)" at last [].P2 rjust
+ thinlines_
+ arrow <- from last [].Block.ne-(0,0.1) up 0.15 right 0.15
+ "svg_it(Block)" ljust
+ thicklines_ }
Header(2,3,8mm__,10mm__) with .nw at last [].ne+(0.75,-0.05)
{"svg_it(P1)" at last [].P1 rjust
diff --git a/graphics/circuit_macros/examples/svg/MCSVG.m4 b/graphics/circuit_macros/examples/svg/MCSVG.m4
index ef1d215809..cececf42b5 100644
--- a/graphics/circuit_macros/examples/svg/MCSVG.m4
+++ b/graphics/circuit_macros/examples/svg/MCSVG.m4
@@ -3,6 +3,7 @@
cct_init(svg_font(Times,11bp__))
textoffset = 3bp__
+MC:[
dv = dimen_*0.6
dh = dimen_*0.4
backup = dimen_/6
@@ -40,5 +41,57 @@ textoffset = 3bp__
llabel(sprintf("svg_it(v`'svg_sub(&``#''%g;,66%))",64+i))
if i==2 then { Output: dot } else { line down (2-i)*dv }
}}
+]
+
+Three: [
+ dv = dimen_*0.6
+ dh = dimen_
+ define(`swfet',`mosfet(`$1',,dMEDSuBQPy)')
+ define(`swpair',`[ up_
+ BS: swfet(up_ dimen_); { "`$1'" at BS.D-(0,2bp__) rjust }
+ L: line up_ 3*dimen_ from BS.D
+ TS: swfet(up_ dimen_) with .S at Here; { "`$2'" at TS.S+(0,2bp__) rjust }
+ T: TS.D
+ B: BS.S
+ C: L.c
+ ]')
+
+ V1: gap(up_ 5*dimen_,1,A)
+ { "svg_it(V)svg_sub(1)" wid 12bp__ at last arrow.c rjust }
+ line right_ dh/2
+ { C1: capacitor(down_ to (Here,V1.start)); llabel(svg_it(C)svg_sub(1)) }
+ for_(1,3,1,`
+ line right_ dh ifelse(m4x,1,,*5/4)
+ {SP1`'m4x: swpair(svg_it(S`'svg_sub(1`'eval(m4x+3))),
+ svg_it(S`'svg_sub(1`'m4x))) with .T at Here
+ dot(at last [].C + (0,(2-m4x)*dh))
+ line right_ (3-m4x)*dh*5/4
+ inductor(right_ dimen_,L)
+ {sprintf("svg_it(L`'svg_sub(1&`#'%g;,70%))",64+m4x) at last [].n+(0,8bp__)}
+ line down_ (2-m4x)*dimen_*2/3
+ pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
+ line down_ (2-m4x)*dimen_/3
+ M: move right_ dimen_/8
+ line up_ (2-m4x)*dimen_/3
+ pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
+ line up_ (2-m4x)*dimen_*2/3
+ inductor(right_ dimen_,L)
+ {sprintf("svg_it(L`'svg_sub(2&`#'%g;,70%))",64+m4x) at last [].n+(0,8bp__)}
+ line right_ dimen_/8+(m4x-1)*dh*5/4
+ dot
+ SP2`'m4x: swpair(svg_it(S`'svg_sub(2`'eval(m4x+3))),
+ svg_it(S`'svg_sub(2`'m4x))) with .C at Here+(0,(m4x-2)*dh) }
+ ')
+ "svg_it(T)svg_sub(r)" at M.c+(0,dimen_*2/3)
+ line from V1.start to SP13.B
+ line from SP21.B to SP23.B+(dh*3/4,0)
+ { C2: capacitor(up_ to (Here,V1.end)); llabel(,,svg_it(C`'svg_sub(2))) }
+ line right_ dh/2
+ gap(up_ 5*dimen_,1,A)
+ { "svg_it(V`'svg_sub(2))" wid 12bp__ at last arrow.c ljust }
+ line to SP21.T chop dotrad_ chop 0
+
+] with .nw at MC.sw+(0,-0.2)
+
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/Makefile b/graphics/circuit_macros/examples/svg/Makefile
index 5ee232a5ea..4471d513f4 100644
--- a/graphics/circuit_macros/examples/svg/Makefile
+++ b/graphics/circuit_macros/examples/svg/Makefile
@@ -1,14 +1,21 @@
LIBDIR = $$HOME/lib
M4LIBS = svg.m4 SVGconfig.m4
+M4LIBS = svg.m4
# To process a single file, copy it to test.m4 and type "make tst"
# to produce tstSVG.html
DPIC = dpic
-#DPIC = $$HOME/dpic/bu*/p2c/ftp/dpic
-#DPIC = $$HOME/dpic/bu*/test/dpic
-#DPIC = $$HOME/dpic/dev/p2c/ftp/dpic
+#DPIC = $$HOME/dpic/build/p2c/ftp/dpic
+#DPIC = ../../../dpic/build/p2c/ftp/dpic
#DPIC = ../../../dpic/bison/dpic
+#DPIC = ../../../dpic/bdev/dpic
+
+# To test the Windows executable. Change these as needed for the operating
+# system. NOTE: AntiqueClockSVG.m4 and Connectors.m4 use awk and sed which
+# do not work at present with the Windows version.
+# M4LIBS = svg.m4 windows.m4
+# DPIC = ../../../dpic/bison/distsrc/Windows/dpic
.SUFFIXES: .pic .svg .m4
.pic.svg:
@@ -23,8 +30,9 @@ CCTSVG = \
AdderSVG.svg AlogixSVG.svg ABlogixSVG.svg AmpTableSVG.svg AntennasSVG.svg \
AntiqueClockSVG.svg \ AudioSVG.svg \
BipSVG.svg BtreeSVG.svg ByteSVG.svg ButtonsSVG.svg \
- CanLogicSVG.svg CctTableSVG.svg ConnSVG.svg ContactSVG.svg ContactsSVG.svg \
- CountingSVG.svg CrossbarSVG.svg CrowSVG.svg CrullerSVG.svg CsourceSVG.svg \
+ CanLogicSVG.svg CctTableSVG.svg ConnSVG.svg ConnectorsSVG.svg \
+ ContactSVG.svg ContactsSVG.svg \
+ CountingSVG.svg CrossbarSVG.svg CrowSVG.svg CsourceSVG.svg \
DecoderSVG.svg DemultiplexerSVG.svg DiniSVG.svg DiodesSVG.svg DriveSVG.svg \
EmarrowsSVG.svg \
FlowSVG.svg FontsSVG.svg FusesSVG.svg GrayCodeSVG.svg GroundsSVG.svg \
@@ -68,6 +76,7 @@ tst:
test.pic:
if test -f test.pic ; then echo "Usage: make clean tst" ; fi
m4 $(M4LIBS) test.m4 | $(SED) > test.pic
+ m4 $(M4LIBS) test.m4 | $(SED) > test.pic
tstSVG.html: tstSVG.htmx $(TEST).svg
Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
@@ -78,7 +87,14 @@ tstSVG.html: tstSVG.htmx $(TEST).svg
xst: Incleps.png
-AntiqueClockSVG.svg:
+AntiqueClockSVG.svg ConnectorsSVG.svg:
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+ $(DPIC) -v $*.pic > $*.svg
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+ $(DPIC) -v $*.pic > $*.svg
+ grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
+
+xntiqueClockSVG.svg:
m4 $(M4LIBS) AntiqueClockSVG.m4 | sed -e '/^\%/d' > AntiqueClockSVG.pic
$(DPIC) -v AntiqueClockSVG.pic > AntiqueClockSVG.svg
m4 $(M4LIBS) AntiqueClockSVG.m4 | sed -e '/^\%/d' > AntiqueClockSVG.pic
@@ -96,8 +112,9 @@ Incleps.png:
clean:
@printf "\n svg clean:\n"
rm -f *.svg *.dim *.ps *log *.siz *.pic examplesSVG.html Incleps.png
- rm -f tstSVG.html
+ rm -f tstSVG.html copy_tmp__
@printf "\n"
clobber: clean
+ (cd dev; make clobber)
rm -f test.m4
diff --git a/graphics/circuit_macros/examples/svg/MixerSVG.m4 b/graphics/circuit_macros/examples/svg/MixerSVG.m4
index aa778337b3..1712e017ed 100644
--- a/graphics/circuit_macros/examples/svg/MixerSVG.m4
+++ b/graphics/circuit_macros/examples/svg/MixerSVG.m4
@@ -1,7 +1,7 @@
.PS
#`MixerSVG.m4
# Showing VMOS mosfet and custom transformer'
-cct_init(svg_font(sans-serif,11bp__,1bp__))
+cct_init(svg_font(sans-serif,10.5bp__,1bp__))
define(`dimen_',0.6)
define(`elen_',0.75)
diff --git a/graphics/circuit_macros/examples/svg/PconnSVG.m4 b/graphics/circuit_macros/examples/svg/PconnSVG.m4
index 348a619317..b0fdb65e80 100644
--- a/graphics/circuit_macros/examples/svg/PconnSVG.m4
+++ b/graphics/circuit_macros/examples/svg/PconnSVG.m4
@@ -19,27 +19,23 @@ P1: [
arrow from G.w to C1.G.e
arrow from G.e to C2.G.w
`"(,AF)"' at last [].s below
- C03: pconnex(,AC) with .w at C2.e+(0.2,0)
+ C03: pconnex(,AC) with .w at C2.e+(0.25,0)
`"(,AC)"' at last [].s below
C3: pconnex(,ACF) with .w at last [].e+(0.2,0)
`"(,ACF)"' at last [].s below
- C5: pconnex(U,D) with .w at last [].e+(0.2,0)
+ C5: pconnex(U,D) with .w at last [].e+(0.25,0)
`"(U,D)"' at last [].s below
- C6: pconnex(U,DF) with .w at last [].e+(0.2,0)
+ C6: pconnex(U,DF) with .w at last [].e+(0.25,0)
`"(U,DF)"' at last [].s below
- C7: pconnex(U,J) with .w at last [].e+(0.2,0)
+ C7: pconnex(U,J) with .w at last [].e+(0.25,0)
`"(U,J)"' at last [].s below
- C8: pconnex(U,JF) with .w at last [].e+(0.2,0)
+ C8: pconnex(U,JF) with .w at last [].e+(0.25,0)
`"(U,JF)"' wid 21bp__ at last [].s below
]
P2: [
- C4: pconnex(,P)
- `"(,P)"' at last [].s below
- C11: pconnex(,PF) with .w at last [].e+(0.2,0)
- `"(,PF)"' at C11.s below
- C9: pconnex(,G) with .w at C11.e+(0.2,0)
+ C9: pconnex(,G)
`"(,G)"' at last [].s below
C91: pconnex(,GF) with .w at last [].e+(0.2,0)
`"(,GF)"' at last [].s below
@@ -47,7 +43,17 @@ P2: [
`"(L,GF)"' at last [].s below
C10: pconnex(,GC) with .w at last [].e + (0.2,0)
`"(,GC)"' at last [].s below
-] with .nw at P1.C1.sw + (0,-0.25)
+ C12: pconnex(,GCF) with .w at last [].e + (0.2,0)
+ `"(,GCF)"' at last [].s below
+] with .nw at P1.C1.sw + (0,-0.35)
+
+P3:[
+ C4: pconnex(,P)
+ `"(,P)"' at last [].s below
+ C11: pconnex(,PF) with .w at last [].e+(0.2,0)
+ `"(,PF)"' at C11.s below
+] with .nw at P2.C9.sw + (0,-0.35)
+
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/RectifiersSVG.m4 b/graphics/circuit_macros/examples/svg/RectifiersSVG.m4
index 3329094082..c6473744eb 100644
--- a/graphics/circuit_macros/examples/svg/RectifiersSVG.m4
+++ b/graphics/circuit_macros/examples/svg/RectifiersSVG.m4
@@ -60,20 +60,21 @@ Threephase: [ linethick_(1)
]
Cct3:[
- No: dot; {"N`'svg_sub(o)" below rjust }
- { inductor(to Here+(Rect_(dimen_,60)),W); E2: "e`'svg_sub(2)" ljust }
- { inductor(to Here+(Rect_(dimen_,-60)),W); E3: "e`'svg_sub(3)" ljust }
- { inductor(from No-(dimen_,0) to No,W)
- E1: "e`'svg_sub(1)" above at last line.start }
+ No: dot; {"N`'svg_sub(o)" at last [].s below rjust }
+ { inductor(to Here+(Rect_(dimen_,60)),W); E2: Here; "e`'svg_sub(2)" ljust }
+ { inductor(to Here+(Rect_(dimen_,-60)),W); E3: Here; "e`'svg_sub(3)" ljust }
+ { inductor(from No-(dimen_,0) to No,W); E1: last line.start
+ "e`'svg_sub(1)" at E1 above }
D3: diode(down_ from E3); b_current(i`'svg_sub(3),rjust)
llabel(,,D`'svg_sub(3))
- line from E1 to (E1,D3.start)
+ line from E1 to (E1.x,D3.start.y+dimen_/3) then right_ (E3.x+E1.x)/2-E1.x \
+ then down_ dimen_/3
D1: diode(down_); b_current(i`'svg_sub(1),rjust); llabel(,,D`'svg_sub(1))
line from E2 left E2.x-E1.x+dimen_/3 then down E2.y-E3.y \
- then to 0.5 between D1.start and D3.start
+ then to 2 between D3.start and D1.start
D2: diode(down_); b_current(i`'svg_sub(2),rjust); llabel(,,D`'svg_sub(2))
- { line from D1.end to D3.end }
- dot
+ { line from D2.end to D3.end }
+ dot(at D1.end)
arrowline(down elen_/2); rlabel(,i`'svg_sub(L))
resistor(right_ elen_); rlabel(+,e`'svg_sub(L),-); llabel(,R)
line to (Here,No) then to No
diff --git a/graphics/circuit_macros/examples/svg/SVGconfig.m4 b/graphics/circuit_macros/examples/svg/SVGconfig.m4
index 372a93937b..e8aa1fa3ec 100644
--- a/graphics/circuit_macros/examples/svg/SVGconfig.m4
+++ b/graphics/circuit_macros/examples/svg/SVGconfig.m4
@@ -50,21 +50,9 @@ define(`SIdefaults',`
')
define(`local_init',`
+`#' local init begin
scaledefaults(1.1)
+`#' local init end
')
-# If the variable dptextratio is not found you don't have
-# dpic version 2018.05.15 or later. In that case, change
-# dptextratio to 1 in the following (or delete *dptextrario ).
-define(`svg_font',`
-command "<g patsubst(ifelse(`$1',,,
-index(`$1',font),0,`$1',
-index(`$1',style),0,`$1',
-style="font-family:`$1'")
-,",\\")>"
- ifelse(`$2',,,`textht=(`$2')*dptextratio')
- ifelse(`$3',,,`textoffset=`$3'')
- `$4'
- ifelse(`$4',,,`command "</g>"')')
-
divert(0)dnl
diff --git a/graphics/circuit_macros/examples/svg/ShiftRSVG.m4 b/graphics/circuit_macros/examples/svg/ShiftRSVG.m4
index 022f4ced9f..9a0b56d523 100644
--- a/graphics/circuit_macros/examples/svg/ShiftRSVG.m4
+++ b/graphics/circuit_macros/examples/svg/ShiftRSVG.m4
@@ -21,8 +21,8 @@ define(`customFF',`FlipFlopX(wid 10*L_unit ht FF_ht*L_unit,,
line from T to (T,F0.W3) then to F0.W3.end
NCLR: NOT_gate(right T.x-Serial.x from (Serial,F0.S1.end),N)
- "CLEAR" at NCLR.start rjust
- line left textht*5 from last ""+(-textoffset,0.8*textht)
+ "CLEAR" wid 33bp__ at NCLR.start rjust
+ line left last "".wid with .c at last "".n+(0,1.5bp__)
CLK: NOT_gate(right T.x-Serial.x from NCLR.start+(0,-BUF_ht*3/2*L_unit))
"CLOCK" at CLK.start rjust
diff --git a/graphics/circuit_macros/examples/svg/SourcesSVG.m4 b/graphics/circuit_macros/examples/svg/SourcesSVG.m4
index 8096317a5d..2a611fe681 100644
--- a/graphics/circuit_macros/examples/svg/SourcesSVG.m4
+++ b/graphics/circuit_macros/examples/svg/SourcesSVG.m4
@@ -15,7 +15,8 @@ define(`NL',`; move down $1; right_')
{source(,X) ; move ; "`source(,X)'" ljust} NL
{source(,F) ; move ; "`source(,F)'" ljust} NL
{source(,G) ; move ; "`source(,G)'" ljust} NL
- {source(,Q) ; move ; "`source(,Q)'" ljust}
+ {source(,Q) ; move ; "`source(,Q)'" ljust} NL(0.3)
+ {proximity ; move ; "`proximity" ljust "= consource(,P)'" ljust}
}
move right_ 2.0
{
@@ -27,8 +28,8 @@ define(`NL',`; move down $1; right_')
{source(,S) ; move ; "`source(,S)'" ljust} NL
{source(,T) ; move ; "`source(,T)'" ljust} NL
{source(,L) ; move ; "`source(,L)'" ljust} NL
- {source(,B) ; move ; "`source(,B)'" ljust} NL(moveht*0.8)
- {nullator ; move ; "`nullator'" ljust} NL(moveht*0.6)
+ {source(,B) ; move ; "`source(,B)'" ljust} NL
+ {nullator ; move ; "`nullator'" ljust} NL(moveht*0.8)
{norator ; move ; "`norator'" ljust}
}
move right_ 2.0
diff --git a/graphics/circuit_macros/examples/svg/SwitchesSVG.m4 b/graphics/circuit_macros/examples/svg/SwitchesSVG.m4
index 04fc2f52c5..95c9f2b2ca 100644
--- a/graphics/circuit_macros/examples/svg/SwitchesSVG.m4
+++ b/graphics/circuit_macros/examples/svg/SwitchesSVG.m4
@@ -101,6 +101,15 @@ movewid = 0.25
dswitch(,,WBRHH); {"svg_tt(`(,,WBRHH)')" at (last [],S)}
}
# Row 7
+ move down moveht*5/4; right_; {
+ move down 2bp__; right_
+ dswitch(,,WBPr); {S: "svg_tt(`(,,WBPr)')" at last [].s+(0,-10bp__)}
+ move right_
+ dswitch(,,WBPrT); {S: "svg_tt(`(,,WBPrT)')" at last [].s+(0,-10bp__)}
+ move down_ 6bp__ then right_
+ dswitch(,,WBPrM); {S: "svg_tt(`(,,WBPrM)')" at last [].s+(0,-10bp__)}
+ }
+# Row 8
move down; right_; {
dswitch(,,WBMMR); {S: "svg_tt(`(,,WBMMR)')" at last [].s+(0,-10bp__)}
move right_
diff --git a/graphics/circuit_macros/examples/svg/TimerSVG.m4 b/graphics/circuit_macros/examples/svg/TimerSVG.m4
index dcdb2cc477..d1a0c2ffa1 100644
--- a/graphics/circuit_macros/examples/svg/TimerSVG.m4
+++ b/graphics/circuit_macros/examples/svg/TimerSVG.m4
@@ -1,6 +1,6 @@
.PS
# TimerSVG.m4
-cct_init(svg_font(sans-serif,11bp__,1bp__))
+cct_init(svg_font(sans-serif,10.5bp__))
define(`ic555',`[Chip: box ht boxwid wid boxwid "555"
P7: "7" ljust at 1/6<Chip.sw,Chip.nw>
diff --git a/graphics/circuit_macros/examples/svg/TubediagsSVG.m4 b/graphics/circuit_macros/examples/svg/TubediagsSVG.m4
index cfc87b0a6a..6409325558 100644
--- a/graphics/circuit_macros/examples/svg/TubediagsSVG.m4
+++ b/graphics/circuit_macros/examples/svg/TubediagsSVG.m4
@@ -1,7 +1,7 @@
.PS
# TubediagsSVG.m4
-cct_init(svg_font(sans-serif,11bp__,2bp__))
+cct_init(svg_font(sans-serif,10bp__,2bp__))
include(../tubedefs.m4)
# Some base diagrams
diff --git a/graphics/circuit_macros/examples/svg/VariableSVG.m4 b/graphics/circuit_macros/examples/svg/VariableSVG.m4
index 642b81466a..ccab653936 100644
--- a/graphics/circuit_macros/examples/svg/VariableSVG.m4
+++ b/graphics/circuit_macros/examples/svg/VariableSVG.m4
@@ -1,36 +1,29 @@
.PS
-# `Variable.m4'
-cct_init(svg_font(sans-serif,11bp__))
+# `VariableSVG.m4'
+cct_init
-define(`elen_',dimen_)
-down_
-[ { variable(`capacitor') }
- move right; down_
- { variable(`resistor',uN) }
- move right; down_
- { variable(`capacitor(,C)') }
- move right; down_
- { variable(`inductor') }
- move right; down_
- { variable(`inductor(,W)') }
+define(`elen_',dimen_); down_
+[ { variable(`resistor',A) }; {"svg_tt(A)" at last line.end below}; move right
+ { variable(`resistor',N) }; {"svg_tt(N)" at last line.end below}; move right
+ { variable(`resistor',uN) }; {"svg_tt(uN)" at last line.end below}; move right
+ { variable(`resistor',NN) }; {"svg_tt(uN)" at last line.end below}; move right
+ { variable(`resistor',uNN) }; {"svg_tt(uNN)" at last line.end below}
]
[
skp = 0.4
hskip = linewid*0.5
cskip = hskip
Orig: Here
- { move right cskip
- move right elen_; move up 0.15 then down 0.15 then right_ hskip
- line invis right_ elen_ "C"; move right_ hskip
- line invis right_ elen_ "S" }
+ { move right cskip+elen_+hskip
+ line invis right_ elen_ "svg_tt(C)"; move right_ hskip
+ { move up_ 0.25 }
+ line invis right_ elen_ "svg_tt(S)" }
Loopover_(`char',
`move down skp ifelse(char,A,*0.5)
- { line invis right_ cskip "char"
+ { line invis right_ cskip "svg_tt(char)"
variable(`capacitor(,C)',char); move right_ hskip
variable(`capacitor(,C)',char`'C); move right_ hskip
variable(`capacitor(,C)',char`'S) }',
A,P,L,N)
] with .w at last [].e+(0.4,0)
-
- command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/ex01SVG.m4 b/graphics/circuit_macros/examples/svg/ex01SVG.m4
index 535bdec795..3a20d90a18 100644
--- a/graphics/circuit_macros/examples/svg/ex01SVG.m4
+++ b/graphics/circuit_macros/examples/svg/ex01SVG.m4
@@ -1,6 +1,6 @@
.PS
# ex01.m4
-cct_init(svg_font(sans-serif,11bp__))
+cct_init(svg_font(sans-serif,10.5bp__))
linewid = linewid*1.5 # let's make the circuit elements bigger than usual
define(`elen_',linewid) # but not longer
diff --git a/graphics/circuit_macros/examples/svg/ex09SVG.m4 b/graphics/circuit_macros/examples/svg/ex09SVG.m4
index 507245235e..b267c68ea0 100644
--- a/graphics/circuit_macros/examples/svg/ex09SVG.m4
+++ b/graphics/circuit_macros/examples/svg/ex09SVG.m4
@@ -65,7 +65,7 @@ define(`bdot',
move right 0.8
# Upper left diagram
- spacer
+ spacer
# Lower left diagram
[ define(`lwid',`29bp__')
@@ -76,18 +76,21 @@ Ctr: 0.5 between A and B
L: move left 0.85*sk from A
linethick_(1)
- dimension_(from A to B,0.5*sk,label,lwid,0.1*sk)
- "`dimension_(from A to B,0.5,label,29bp__,0.1)'" wid 90 \
- with .w at (L.end,A +(0,-9))
+ dimension_(from A to B,0.5*sk,svg_it(label),lwid,0.1*sk)
+ "`dimension_(from A to B,0.5,label,29bp__,0.1)'" wid 70 \
+ with .w at (L.end.x+2,A.y-10)
+ move down_ 4 from last ""
thinlines_
- arrow from A to B chop 0.05*sk "linespec" below
- dimension_(up_ 0.5*sk from A,0.2*sk,"offset" rjust,,,->)
- dimension_(up_ 0.1*sk from B,-0.2*sk," tic offset" ljust)
- dimension_(up_ 0.1*sk from B+(0,0.5*sk),-0.2*sk," tic offset" ljust)
+ arrow from A to B chop 0.05*sk "svg_it(linespec)" below
+ dimension_(up_ 0.5*sk from A,0.2*sk,"svg_it(offset)" rjust,,,->)
+ dimension_(up_ 0.1*sk from B,-0.2*sk," svg_it(tic offset)" ljust)
+ dimension_(up_ 0.1*sk from B+(0,0.5*sk),-0.2*sk,
+ " svg_it(tic offset)" ljust)
dimension_(from Ctr+(-lwid/2,0.5*sk) right lwid,0.2*sk,
- "blank width" above)
-] with .nw at last [].sw+(0,-0.7*sk)
+ "svg_it(blank width)" above)
+] with .nw at last [].sw+(0,-0.4*sk)
+#showbox_
# Upper right diagram
[ A: bdot(at (0,0),A, above rjust)
@@ -104,23 +107,22 @@ T: C+(-0.45*sk,-0.5*sk)
dimension_(from C to D chop dotrad_,,svg_it(T`'svg_sub(15)),15bp__)
arcdimension_(from C to D with .c at 0.5 between A and B,12bp__,
svg_it(C) to svg_it(D),34bp__)
-Q: C+(-9,-9)
+Q: C+(-9,-15)
`define' leftparagraph { [ baselineskip = textht*1.5; { move right $1 }
for i = 2 to $+ do {
move to Here+(0,-baselineskip)
- exec sprintf("{ `\"$%g \"' ljust }; ",i) } ] }
-
-define(`svg_comma',`svg_symbol(&`#'44;)')
-leftparagraph(5.7*scale; baselineskip = 1.5*textht,
- `dimension_(from A to B,0.3,svg_it(AB),20bp__)',
- `dimension_(from C to B,,svg_it(X),16bp__)',
- `dimension_(from C to A,0.3,svg_it(CA),14bp__,,->)',
- `dimension_(from D to B,-0.3,"svg_it(DB)" ljust)',
- `dimension_(from C to D chop dotrad_,,svg_it(T`'svg_sub(15)),15bp__)',
+ exec sprintf("{ `\"$%g \"' wid 4.5*scale ljust }; ",i) } ] }
+
+leftparagraph(1.7*scale; baselineskip = 1.5*textht,
+ `dimension_(from A to B,0.3,AB,20bp__)',
+ `dimension_(from C to B,,X,16bp__)',
+ `dimension_(from C to A,0.3,CA,14bp__,,->)',
+ `dimension_(from D to B,-0.3,"DB" ljust)',
+ `dimension_(from C to D chop dotrad_,,T`'svg_sub(15),15bp__)',
`arcdimension_'svg_symbol(&`#'40;)`from C to D with .c at 0.5 \
between A and B'svg_comma`12bp__'svg_comma,
- svg_ensp `svg_it(C) to svg_it(D)'svg_comma`34bp__'svg_symbol(&`#'41;)
+ svg_ensp `C to D'svg_comma`34bp__'svg_symbol(&`#'41;)
) with .nw at Q
] with .nw at 1st [].ne+(1.7*sk,0)
diff --git a/graphics/circuit_macros/examples/svg/examplesSVG.htmx b/graphics/circuit_macros/examples/svg/examplesSVG.htmx
index 91bc93f48e..825c1d5cf4 100644
--- a/graphics/circuit_macros/examples/svg/examplesSVG.htmx
+++ b/graphics/circuit_macros/examples/svg/examplesSVG.htmx
@@ -107,16 +107,29 @@ There are a number of other issues:
They are subject to change:
<ul>
<li>
- m4tt`'svg_font(</g>font-face,height,textoffset,dpic commands`'m4tt)</g>:
- Change font face, size, and dpic textoffset parameter.
+ m4tt`'svg_font(</g>font-face,nominal size[:dptextratio],textoffset,
+ dpic commands`'m4tt)</g>:
+ Change font face, size, textratio and dpic textoffset parameters.
+ Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>,
+ and m4tt`'textoffset</g> parameters.
If arg4 is blank, the font is changed and
requires m4tt`'command "&lt;/g&gt;"</g> to cancel the font change.
+ <br>
+ Note:
+ Nominal height = text height in drawing units; actual height =
+ nominal ht x m4tt`'dptextratio</g>.
+ <br>
Examples: <br>
m4tt`'svg_font(Times)</g><br>
+ m4tt`'svg_font(Times,14bp__)</g><br>
+ m4tt`'svg_font(sans-serif,14bp__:0.71)</g><br>
m4tt`'svg_font(Times,11bp__,1bp__,"text" at A)</g><br>
m4tt`'svg_font(font-family="Times")</g><br>
m4tt`'svg_font(font-family="Times" font-style="italic")</g><br>
m4tt`'svg_font(style="font-family:Times; font-style:italic")</g>
+ <li>m4tt svgfontratio(</g>font name`'m4tt)</g>;
+ Reasonable m4tt`'dptextratio</g> value for common fonts, used
+ by m4tt`'svg_font</g>.
<li>m4tt svg_tspan(</g>text attributes, text`'m4tt)</g>;
e.g. m4tt`'svg_tspan(font-style="italic" font-size="75%",XYZ)</g>
<li>m4tt svg_it(</g>text`'m4tt)</g>: for italics
@@ -131,6 +144,13 @@ There are a number of other issues:
subscript
<li>m4tt svg_sup(</g>text, size percent, y displ, x displ`'m4tt)</g>:
superscript
+ <li>m4tt svg_rot(</g>degrees, "text" [at position]`'m4tt)</g>:
+ Rotate text degrees (default 90) ccw.
+ Requires m4tt`'svg_rot_init(</g>filename`'m4tt)</g> and the source
+ must be processed twice.
+ <li>m4tt svg_rot_init(</g>filename`'m4tt)</g>:
+ filename is the basename of the output of
+ m4tt`'dpic -v filename.pic > filename.svg`'m4tt
<li>m4tt svg_symbol(</g>text`'m4tt)</g>: allow quoted pound sign in text,
e.g., m4tt`'svg_symbol(10&&#96;&#35;&#39;176;)</g> produces 10&#176;
<li>m4tt svgLink(</g>URL, drawing object, m4tt[B])</g>:
@@ -140,103 +160,63 @@ There are a number of other issues:
arg 3 = B)
<li>m4tt svgLinkString</g> as above but for strings attached to objects
<li> Greek and other symbols:
+
+<table cellpadding="0" cellspacing="0" width="100%" >
<table cellpadding="0" cellspacing="0" width="100%" >
<tr>
-<td width="7%"> m4tt svg_alpha</g>
- <td align="left"> changecom(,)&`#'945;changecom(`#')
-<td width="7%"> m4tt svg_beta</g>
- <td align="left"> changecom(,)&`#'946;changecom(`#')
-<td width="7%"> m4tt svg_chi</g>
- <td align="left"> changecom(,)&`#'967;changecom(`#')
-<td width="7%"> m4tt svg_comma</g>
- <td align="left"> changecom(,)&`#'44;changecom(`#')
-<td width="7%"> m4tt svg_Delta</g>
- <td align="left"> changecom(,)&`#'916;changecom(`#')
-<td width="7%"> m4tt svg_delta</g>
- <td align="left"> changecom(,)&`#'948;changecom(`#')
-<td width="7%"> m4tt svg_epsilon</g>
- <td align="left"> changecom(,)&`#'949;changecom(`#')
-<td width="7%"> m4tt svg_eta</g>
- <td align="left"> changecom(,)&`#'951;changecom(`#')
+<td width="8%"> m4tt svg_alpha</g> <td align="left"> changecom(,)&`#'945;changecom(`#')
+<td width="8%"> m4tt svg_beta</g> <td align="left"> changecom(,)&`#'946;changecom(`#')
+<td width="8%"> m4tt svg_Gamma</g> <td align="left"> changecom(,)&`#'915;changecom(`#')
+<td width="8%"> m4tt svg_gamma</g> <td align="left"> changecom(,)&`#'947;changecom(`#')
+<td width="8%"> m4tt svg_Delta</g> <td align="left"> changecom(,)&`#'916;changecom(`#')
+<td width="8%"> m4tt svg_delta</g> <td align="left"> changecom(,)&`#'948;changecom(`#')
+<td width="10%"> m4tt svg_epsilon</g> <td align="left"> changecom(,)&`#'949;changecom(`#')
+<td width="8%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_Gamma</g>
- <td align="left"> changecom(,)&`#'915;changecom(`#')
-<td width="7%"> m4tt svg_gamma</g>
- <td align="left"> changecom(,)&`#'947;changecom(`#')
-<td width="7%"> m4tt svg_iota</g>
- <td align="left"> changecom(,)&`#'953;changecom(`#')
-<td width="7%"> m4tt svg_kappa</g>
- <td align="left"> changecom(,)&`#'954;changecom(`#')
-<td width="7%"> m4tt svg_Lambda</g>
- <td align="left"> changecom(,)&`#'923;changecom(`#')
-<td width="7%"> m4tt svg_lambda</g>
- <td align="left"> changecom(,)&`#'955;changecom(`#')
-<td width="7%"> m4tt svg_micro</g>
- <td align="left"> changecom(,)&`#'956;changecom(`#')
-<td width="7%"> m4tt svg_mu</g>
- <td align="left"> changecom(,)&`#'956;changecom(`#')
+<td width="8%"> m4tt svg_eta</g> <td align="left"> changecom(,)&`#'951;changecom(`#')
+<td width="8%"> m4tt svg_Theta</g> <td align="left"> changecom(,)&`#'920;changecom(`#')
+<td width="8%"> m4tt svg_theta</g> <td align="left"> changecom(,)&`#'952;changecom(`#')
+<td width="8%"> m4tt svg_iota</g> <td align="left"> changecom(,)&`#'953;changecom(`#')
+<td width="8%"> m4tt svg_kappa</g> <td align="left"> changecom(,)&`#'954;changecom(`#')
+<td width="8%"> m4tt svg_Lambda</g> <td align="left"> changecom(,)&`#'923;changecom(`#')
+<td width="8%"> m4tt svg_lambda</g> <td align="left"> changecom(,)&`#'955;changecom(`#')
+<td width="8%"> m4tt svg_mu</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_nu</g>
- <td align="left"> changecom(,)&`#'957;changecom(`#')
-<td width="7%"> m4tt svg_ohm</g>
- <td align="left"> changecom(,)&`#'937;changecom(`#')
-<td width="7%"> m4tt svg_Omega</g>
- <td align="left"> changecom(,)&`#'937;changecom(`#')
-<td width="7%"> m4tt svg_omega</g>
- <td align="left"> changecom(,)&`#'969;changecom(`#')
-<td width="7%"> m4tt svg_Phi</g>
- <td align="left"> changecom(,)&`#'934;changecom(`#')
-<td width="7%"> m4tt svg_phi</g>
- <td align="left"> changecom(,)&`#'966;changecom(`#')
-<td width="7%"> m4tt svg_Pi</g>
- <td align="left"> changecom(,)&`#'928;changecom(`#')
-<td width="7%"> m4tt svg_pi</g>
- <td align="left"> changecom(,)&`#'960;changecom(`#')
+<td width="8%"> m4tt svg_nu</g> <td align="left"> changecom(,)&`#'957;changecom(`#')
+<td width="8%"> m4tt svg_Xi</g> <td align="left"> changecom(,)&`#'926;changecom(`#')
+<td width="8%"> m4tt svg_xi</g> <td align="left"> changecom(,)&`#'958;changecom(`#')
+<td width="8%"> m4tt svg_Pi</g> <td align="left"> changecom(,)&`#'928;changecom(`#')
+<td width="8%"> m4tt svg_pi</g> <td align="left"> changecom(,)&`#'960;changecom(`#')
+<td width="8%"> m4tt svg_rho</g> <td align="left"> changecom(,)&`#'961;changecom(`#')
+<td width="8%"> m4tt svg_Sigma</g> <td align="left"> changecom(,)&`#'931;changecom(`#')
+<td width="8%"> m4tt svg_sigma</g> <td align="left"> changecom(,)&`#'963;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_Psi</g>
- <td align="left"> changecom(,)&`#'936;changecom(`#')
-<td width="7%"> m4tt svg_psi</g>
- <td align="left"> changecom(,)&`#'968;changecom(`#')
-<td width="7%"> m4tt svg_rho</g>
- <td align="left"> changecom(,)&`#'961;changecom(`#')
-<td width="7%"> m4tt svg_Sigma</g>
- <td align="left"> changecom(,)&`#'931;changecom(`#')
-<td width="7%"> m4tt svg_sigma</g>
- <td align="left"> changecom(,)&`#'963;changecom(`#')
-<td width="7%"> m4tt svg_tau</g>
- <td align="left"> changecom(,)&`#'964;changecom(`#')
-<td width="7%"> m4tt svg_Theta</g>
- <td align="left"> changecom(,)&`#'920;changecom(`#')
-<td width="7%"> m4tt svg_theta</g>
- <td align="left"> changecom(,)&`#'952;changecom(`#')
+<td width="8%"> m4tt svg_tau</g> <td align="left"> changecom(,)&`#'964;changecom(`#')
+<td width="10%"> m4tt svg_upsilon</g> <td align="left"> changecom(,)&`#'965;changecom(`#')
+<td width="8%"> m4tt svg_Phi</g> <td align="left"> changecom(,)&`#'934;changecom(`#')
+<td width="8%"> m4tt svg_phi</g> <td align="left"> changecom(,)&`#'966;changecom(`#')
+<td width="8%"> m4tt svg_chi</g> <td align="left"> changecom(,)&`#'967;changecom(`#')
+<td width="8%"> m4tt svg_Psi</g> <td align="left"> changecom(,)&`#'936;changecom(`#')
+<td width="8%"> m4tt svg_psi</g> <td align="left"> changecom(,)&`#'968;changecom(`#')
+<td width="8%"> m4tt svg_Omega</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_upsilon</g>
- <td align="left"> changecom(,)&`#'965;changecom(`#')
-<td width="7%"> m4tt svg_Xi</g>
- <td align="left"> changecom(,)&`#'926;changecom(`#')
-<td width="7%"> m4tt svg_xi</g>
- <td align="left"> changecom(,)&`#'958;changecom(`#')
-<td width="7%"> m4tt svg_zeta</g>
- <td align="left"> changecom(,)&`#'950;changecom(`#')
-<td width="7%"> m4tt svg_lt</g>
- <td align="left"> changecom(,)&`#'60;changecom(`#')
-<td width="7%"> m4tt svg_gt</g>
- <td align="left"> changecom(,)&`#'62;changecom(`#')
-<td width="7%"> m4tt svg_leq</g>
- <td align="left"> changecom(,)&`#'8804;changecom(`#')
-<td width="7%"> m4tt svg_geq</g>
- <td align="left"> changecom(,)&`#'8805;changecom(`#')
+<td width="8%"> m4tt svg_omega</g> <td align="left"> changecom(,)&`#'969;changecom(`#')
+<td width="8%"> m4tt svg_micro</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
+<td width="8%"> m4tt svg_ohm</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
+<td width="8%"> m4tt svg_lt</g> <td align="left"> changecom(,)&`#'60;changecom(`#')
+<td width="8%"> m4tt svg_gt</g> <td align="left"> changecom(,)&`#'62;changecom(`#')
+<td width="8%"> m4tt svg_leq</g> <td align="left"> changecom(,)&`#'8804;changecom(`#')
+<td width="8%"> m4tt svg_geq</g> <td align="left"> changecom(,)&`#'8805;changecom(`#')
+<td width="8%"> m4tt svg_prime</g> <td align="left"> changecom(,)&`#'8242;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_prime</g>
- <td align="left"> changecom(,)&`#'8242;changecom(`#')
-<td width="7%"> m4tt svg_ensp</g>
- <td align="left"> |changecom(,)&`#'8194;changecom(`#')|
-<td width="7%"> m4tt svg_emsp</g>
- <td align="left"> |changecom(,)&`#'8195;changecom(`#')|
-<td width="7%"> m4tt svg_thinsp</g>
- <td align="left"> |changecom(,)&`#'8201;changecom(`#')|
-<td width="7%"> m4tt svg_backsl</g>
- <td align="left"> changecom(,)&`#'92;changecom(`#')
+<td width="8%"> m4tt svg_backsl</g> <td align="left"> changecom(,)&`#'92;changecom(`#')
+<td width="8%"> m4tt svg_pound</g> <td align="left"> changecom(,)&`#'35;changecom(`#')
+<td width="8%"> m4tt svg_comma</g> <td align="left"> changecom(,)&`#'44;changecom(`#')
+<td width="8%"> m4tt svg_lparen</g> <td align="left"> changecom(,)&`#'40;changecom(`#')
+<td width="8%"> m4tt svg_rparen</g> <td align="left"> changecom(,)&`#'41;changecom(`#')
+<td width="8%"> m4tt svg_emsp</g> <td align="left"> |changecom(,)&`#'8195;changecom(`#')|
+<td width="8%"> m4tt svg_ensp</g> <td align="left"> |changecom(,)&`#'8194;changecom(`#')|
+<td width="8%"> m4tt svg_thinsp</g> <td align="left"> |changecom(,)&`#'8201;changecom(`#')|
</table>
</ul>
@@ -277,6 +257,7 @@ cfig(JackSVG)
cfig(ConnSVG)
cfig(PconnSVG)
cfig(HeadersSVG)
+cfig(ConnectorsSVG)
cfig(fetSVG)
cfig(ujtSVG)
cfig(thyristorSVG)
@@ -285,7 +266,7 @@ cfig(TgateSVG)
cfig(NportSVG)
cfig(NLGSVG)
cfig(WindingsSVG)
-cfig(ex01.m4)
+cfig(ex01SVG)
cfig(TimerSVG)
cfig(OptoisoSVG)
cfig(MixerSVG)
@@ -328,6 +309,7 @@ cfig(CanLogicSVG)
cfig(AlogixSVG)
cfig(ABlogixSVG)
cfig(XORSVG)
+cfig(paletteSVG)
cfig(ex00SVG)
cfig(controlSVG)
cfig(GrayCodeSVG)
@@ -355,6 +337,11 @@ cfig(ex15SVG)
cfig(CountingSVG)
cfig(CrowSVG)
cfig(FlowSVG)
+ <!-- <p>
+ More flow-chart examples? Try
+ <a href="https://buraphakit.sourceforge.io/EFI/EFI_2019_S2_W13.shtml"
+ TARGET="_blank">here.</a>
+ </p> -->
cfig(BtreeSVG)
cfig(TtreeSVG)
cfig(InclepsSVG)
diff --git a/graphics/circuit_macros/examples/svg/graysurfSVG.m4 b/graphics/circuit_macros/examples/svg/graysurfSVG.m4
index 5427b62afc..13c91aabc0 100644
--- a/graphics/circuit_macros/examples/svg/graysurfSVG.m4
+++ b/graphics/circuit_macros/examples/svg/graysurfSVG.m4
@@ -1,7 +1,7 @@
.PS
# graysurfSVG.m4
threeD_init
-copy "HOMELIB_/dpictools.pic"
+NeedDpicTools
Overall: [
[]
diff --git a/graphics/circuit_macros/examples/svg/icsSVG.m4 b/graphics/circuit_macros/examples/svg/icsSVG.m4
index 9a1f40634a..0733bbef64 100644
--- a/graphics/circuit_macros/examples/svg/icsSVG.m4
+++ b/graphics/circuit_macros/examples/svg/icsSVG.m4
@@ -1,9 +1,10 @@
divert(-1)
- Macros defining some integrated circuits
+ Macros defining some integrated circuits and connectors
define(`lg_pinsep',3*L_unit) logic pin separation in logic units
define(`lg_chipwd',18*L_unit) default chip width
+define(`overbar_',`{ line right last "".wid with .c at last "".n+(0,1bp__) }')
`A sequence of pins along the east or west side of a chip:
lg_pinseq(initial pin no,final pin no,
@@ -15,19 +16,17 @@ define(`lg_pinseq',`for_($1,$2,1,
define(`ic6116',`[ Chip: box wid_ lg_chipwd ht_ 15*lg_pinsep
lg_pin(Chip.sw_+(0,lg_pinsep),GND,Pin12,w,12)
lg_pin(Chip.sw_+(0,2*lg_pinsep),,Pin18,wN,18)
- "svg_small(CS,75)" wid textht*1.5 at (Chip.w,last line) ljust
- { line right last "".wid from last "".nw+(1,0)*textoffset }
+ "svg_small(CS,75)" wid textht*1.5 at (Chip.w,last line) ljust; overbar_
lg_pinseq(0,2,w,4,9+,D)
lg_pinseq(3,7,w,4,10+,D)
lg_pin(Chip.sw_+(0,13*lg_pinsep),,Pin21,w,21)
"svg_small(R/W,75)" wid textht*2.0 at (Chip.w,last line) ljust
- { line right last "".wid/2 from last "".n+(2,0)*textoffset }
+ { line right last "".wid/2 from last "".n+(0,1bp__) }
lg_pin(Chip.sw_+(0,14*lg_pinsep),V`'svg_small(CC,75),Pin24,w,24)
lg_pin(Chip.se_+(0,lg_pinsep),,Pin20,eN,20)
- "svg_small(OE,75)" wid textht*1.5 at (Chip.e,last line) rjust
- { line left last "".wid from last "".ne+(-1,0)*textoffset }
+ "svg_small(OE,75)" wid textht*1.5 at (Chip.e,last line) rjust; overbar_
lg_pinseq(0,7,e,3,8-,A)
lg_pinseq(8,9,e,3,31-,A)
@@ -39,17 +38,15 @@ define(`ic6502',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep
lg_pin(Chip.sw_+(0,2*lg_pinsep),V`'svg_small(SS,75),Pin1,w,1)
lg_pin(Chip.sw_+(0,4*lg_pinsep),,Pin34,w,34)
"svg_small(R/W,75)" wid textht*2.0 at (Chip.w,last line) ljust
- { line right last "".wid/2 from last "".n+(2,0)*textoffset }
+ { line right last "".wid/2 from last "".n+(0,1bp__) }
lg_pinseq(0,7,w,6,33-,D)
lg_pin(Chip.sw_+(0,15*lg_pinsep),,Pin40,wN,40)
- "svg_small(RESET,75)" wid textht*3.8 at (Chip.w,last line) ljust
- { line right last "".wid from last "".nw+(1,0)*textoffset }
+ "svg_small(RESET,75)" wid textht*3.8 at (Chip.w,last line) ljust; overbar_
lg_pin(Chip.sw_+(0,17*lg_pinsep),SYNC,Pin7,w,7)
lg_pin(Chip.sw_+(0,19*lg_pinsep),,Pin6,wN,6)
- "svg_small(NMI,75)" wid textht*2.1 at (Chip.w,last line) ljust
- { line right last "".wid from last "".nw+(1,0)*textoffset }
+ "svg_small(NMI,75)" wid textht*2.1 at (Chip.w,last line) ljust; overbar_
lg_pin(Chip.sw_+(0,21*lg_pinsep),RDY,Pin2,w,2)
lg_pin(Chip.sw_+(0,22*lg_pinsep),SO,Pin38,w,38)
@@ -59,8 +56,7 @@ define(`ic6502',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep
lg_pinseq(0,11,e,6,9+,A)
lg_pinseq(12,15,e,6,10+,A)
lg_pin(Chip.se+(0,23*lg_pinsep),,Pin4,eN,4)
- "svg_small(IRQ,75)" wid textht*2.0 at (Chip.e,last line) rjust
- { line left last "".wid from last "".ne+(-1,0)*textoffset }
+ "svg_small(IRQ,75)" wid textht*2.0 at (Chip.e,last line) rjust; overbar_
`$1']')
define(`ic6522',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep
@@ -68,8 +64,7 @@ define(`ic6522',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep
lg_pin(Chip.sw_+(0,3*lg_pinsep),CS1,Pin24,w,24)
lg_pin(Chip.sw_+(0,4*lg_pinsep),CK,Pin25,w,25)
lg_pin(Chip.sw_+(0,5*lg_pinsep),,Pin23,wN,23)
- "svg_small(CS2,75)" wid textht*2.2 at (Chip.w,last line) ljust
- { line right last "".wid from last "".nw+(1,0)*textoffset }
+ "svg_small(CS2,75)" wid textht*2.2 at (Chip.w,last line) ljust; overbar_
lg_pin(Chip.sw_+(0,7*lg_pinsep),RS0(A0),Pin38,w,38)
lg_pin(Chip.sw_+(0,8*lg_pinsep),RS1(A1),Pin37,w,37)
@@ -78,11 +73,10 @@ define(`ic6522',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep
lg_pinseq(0,7,w,12,33-,D)
lg_pin(Chip.sw_+(0,21*lg_pinsep),,Pin22,w,22)
"svg_small(R/W,75)" wid textht*2.0 at (Chip.w,last line) ljust
- { line right last "".wid/2 from last "".n+(2,0)*textoffset }
+ { line right last "".wid/2 from last "".n+(0,1bp__) }
lg_pin(Chip.sw_+(0,22*lg_pinsep),,Pin21,wN,21)
- "svg_small(IRQ,75)" wid textht*2.0 at (Chip.w,last line) ljust
- { line right last "".wid from last "".nw+(1,0)*textoffset }
+ "svg_small(IRQ,75)" wid textht*2.0 at (Chip.w,last line) ljust; overbar_
lg_pin(Chip.sw_+(0,23*lg_pinsep),V`'svg_small(CC,75),Pin20,w,20)
lg_pinseq(0,7,e,1,10+,PB)
@@ -90,20 +84,17 @@ define(`ic6522',`[ Chip: box wid_ lg_chipwd ht_ 24*lg_pinsep
lg_pinseq(0,7,e,12,2+,PA)
lg_pinseq(1,2,e,19,41-,CA)
lg_pin(Chip.se_+(0,23*lg_pinsep),,Pin34,eN,34)
- "svg_small(RESET,75)" wid textht*3.8 at (Chip.e,last line) rjust
- { line left last "".wid from last "".ne+(-1,0)*textoffset }
+ "svg_small(RESET,75)" wid textht*3.8 at (Chip.e,last line) rjust; overbar_
`$1']')
define(`ic74LS138',`[ Chip: box wid_ lg_chipwd ht_ 11*lg_pinsep
lg_pin(Chip.sw_+(0,lg_pinsep),GND,Pin8,w,8)
lg_pin(Chip.sw_+(0,2*lg_pinsep),,Pin4,wN,4)
- "svg_small(G2a,75)" wid textht*2.0 at (Chip.w,last line) ljust
- { line right last "".wid from last "".nw+(1,0)*textoffset }
+ "svg_small(G2a,75)" wid textht*2.0 at (Chip.w,last line) ljust; overbar_
lg_pin(Chip.sw_+(0,3*lg_pinsep),,Pin5,wN,5)
- "svg_small(G2b,75)" wid textht*2.0 at (Chip.w,last line) ljust
- { line right last "".wid from last "".nw+(1,0)*textoffset }
+ "svg_small(G2b,75)" wid textht*2.0 at (Chip.w,last line) ljust; overbar_
lg_pin(Chip.sw_+(0,5*lg_pinsep),A,Pin1,w,1)
lg_pin(Chip.sw_+(0,6*lg_pinsep),B,Pin2,w,2)
@@ -114,4 +105,154 @@ define(`ic74LS138',`[ Chip: box wid_ lg_chipwd ht_ 11*lg_pinsep
lg_pin(Chip.se_+(0,9*lg_pinsep),Y7,Pin7,eN,7)
`$1']')
+ `ArduinoUno( wid,ht,pinlen )'
+define(`ArduinoUno',`[
+ define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl
+#
+
+ Connector: box wid m4bwid ht m4bht
+#
+ plen = ifelse(`$4',,`2*L_unit',`$4')
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep)
+ { "x" ljust at last line.start }')',
+ IOREF, RESET,`+`'3V3',`+`'5V', GND, GND, VIN,
+ nul, A0, A1, A2, A3, A4, A5)
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep)
+ { "x" rjust at last line.start }')',
+ SCL, SDA, AREF, GND, D13, D12, ~D11, ~D10, ~D9, D8,
+ nul, D7, ~D6, ~D5, D4, ~D3, D2, TX D1, RX D0)
+#
+ `$4'] ')
+
+ `ArduinoLeonardo( wid,ht,pinlen )'
+define(`ArduinoLeonardo',`[
+ define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl
+#
+ Connector: box wid m4bwid ht m4bht
+#
+ plen = ifelse(`$4',,`2*L_unit',`$4')
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep)
+ { "x" ljust at last line.start }')',
+ IOREF, RESET,`+`'3V3',`+`'5V', GND, GND, VIN,
+ nul, A0, A1, A2, A3, A4, A5)
+#
+Loopover_(`x',`ifelse(x,nul,,
+ `Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep)
+ { "x" rjust at last line.start }')',
+ SCL, SDA, AREF, GND,
+ ~D13, D12, ~D11, ~D10, ~D9, D8,
+ nul, D7, ~D6, ~D5, D4, ~D3, D2, TX D1, RX D0)
+#
+ `$4'] ')
+
+ `RPi( wid,ht,pinlen )'
+define(`RPi',`[
+ define(`m4bwid',`ifelse(`$1',,`34*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`21*lg_pinsep',`$2')')dnl
+#
+ GPIO: box wid m4bwid ht m4bht
+ plen = ifelse(`$4',,`6*L_unit',`$4')
+#
+define A_LeftGPIO {
+ exec sprintf("Pin%g: line left_ plen from GPIO.nw-(0,%g)",\
+ 2*(`$'1)-1,(`$'1)*lg_pinsep)
+ { "`$'3" ljust at last line.start }
+ "`$'2" at last line.c above }
+#
+Loopover_(`x',`ifelse(x,nul,,`A_LeftGPIO(m4Lx,patsubst(x,;,`,'))')',
+ ;3V3,
+ 2;SDA1, 3;SCL1, 4;GPIO_GCLK,
+ ;GND,
+ 17;GPIO_GEN0, 27;GPIO_GEN2, 22;GPIO_GEN3,
+ ;3V3,
+ 10;SPI_MOSI, 9;SPI_MISO, 11;SPI_SCLK,
+ ;GND,
+ ;ID_SD,
+ 5;, 6;, 13;, 19;, 26;,
+ ;GND )
+#
+define A_RightGPIO {
+ exec sprintf("Pin%g: line right_ plen from GPIO.ne-(0,%g)",\
+ 2*(`$'1),(`$'1)*lg_pinsep)
+ { "`$'3" rjust at last line.start }
+ "`$'2" at last line.c above }
+#
+Loopover_(`x',`ifelse(x,nul,,`A_RightGPIO(m4Lx,patsubst(x,;,`,'))')',
+ ;5V,
+ ;5V,
+ ;GND,
+ 14;TXD0, 15;RXD0, 18;GPIO_GEN1,
+ ;GND,
+ 23;GPIO_GEN4, 24;GPIO_GEN5,
+ ;GND,
+ 25;GPIO_GEN6, 8;SPI_CEO_N, 7;SPI_CE1_N,
+ ;ID_SC,
+ ;GND,
+ 12;,
+ ;GND,
+ 16;, 20;, 21; )
+#
+ `$4'] ')
+
+ `USB_C_Socket( wid, ht, pinlen )'
+define(`USB_C_Socket',`[
+ define(`m4bwid',`ifelse(`$1',,`18*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`14*lg_pinsep',`$2')')dnl
+#
+ Base: box wid m4bwid ht m4bht rad 5/3*lg_pinsep
+ plen = ifelse(`$4',,`6*L_unit',`$4')
+#
+ Loopover_(`x',
+ `B`'eval(13-m4Lx): dnl
+ line left_ plen from Base.n-(m4bwid/2,(m4Lx+0.5)*lg_pinsep)
+ {"x" ljust at last line.start}',
+ GND, RX1+, RX1-, VBUS, SBU2, D-, D+, CC2, VBUS, TX2-, TX2+, GND)
+#
+ Loopover_(`x',
+ `A`'m4Lx: line right_ plen from Base.n+(m4bwid/2,-(m4Lx+0.5)*lg_pinsep)
+ {"x" rjust at last line.start}',
+ GND, TX1+, TX1-, VBUS, CC1, D+, D-, SBU1, VBUS, RX2-, RX2+, GND)
+#
+ `$4']')
+
+ `HDMI_micro( wid, ht, pinlen )'
+define(`HDMI_micro',`[
+ define(`m4bwid',`ifelse(`$1',,`16*L_unit',`$1')')dnl
+ define(`m4bht',`ifelse(`$2',,`19*lg_pinsep+m4bwid*2/3',`$2')')dnl
+#
+ Base:[line up m4bht/2 then right m4bwid*2/3 \
+ then right m4bwid/3 down m4bwid/3 \
+ then down m4bht-2*m4bwid/3 then down m4bwid/3 left m4bwid/3 \
+ then left m4bwid*2/3 then to Here]
+ plen = ifelse(`$4',,`6*L_unit',`$4')
+#
+ Loopover_(`x',
+ `Pin`'m4Lx: line left_ plen from Base.nw-(0,m4bwid/3+(m4Lx-1/2)*lg_pinsep)
+ {"x" ljust at last line.start}
+ "m4Lx" at last line.c above',
+ HPD, UTILITY, D2+, D2_SH, D2-, D1+, D1_SH, D1-, D0+, D0_SH,
+ D0-, CLK+, CLK_SH, CLK-, CEC, GND, SCL, SDA, +5V)
+ line from Base.nw+(m4bwid*2/3-lg_pinsep,0) up plen
+ svg_rot(90,"21" at last line.c +(-2bp__,0))
+ svg_rot(90,sprintf("SH2") at last line.start + (4bp__,-8bp__))
+ line from Base.nw+(m4bwid*2/3-2*lg_pinsep,0) up plen
+ svg_rot(90,"20" at last line.c+(-2bp__,0))
+ svg_rot(90,"SH1" at last line.start + (4bp__,-8bp__))
+ line from Base.sw+(m4bwid*2/3-lg_pinsep,0) down plen
+ svg_rot(90,"23" at last line.c+(-2bp__,0))
+ svg_rot(90,"SH4" at last line.start + (4bp__,14bp__))
+ line from Base.sw+(m4bwid*2/3-2*lg_pinsep,0) down plen
+ svg_rot(90,"22" at last line.c+(-2bp__,0))
+ svg_rot(90,"SH3" at last line.start + (4bp__,14bp__))
+#
+ `$4']')
+
divert(0)dnl
diff --git a/graphics/circuit_macros/examples/svg/lcctSVG.m4 b/graphics/circuit_macros/examples/svg/lcctSVG.m4
index 9994b32309..ba25e60172 100644
--- a/graphics/circuit_macros/examples/svg/lcctSVG.m4
+++ b/graphics/circuit_macros/examples/svg/lcctSVG.m4
@@ -1,7 +1,7 @@
.PS
# lcctSVG.m4
maxpswid = 10
-log_init(svg_font(sans-serif,11bp__,1bp__))
+log_init(svg_font(sans-serif,11bp__,2bp__))
include(icsSVG.m4)
textht = textht * 0.9
diff --git a/graphics/circuit_macros/examples/svg/paletteSVG.m4 b/graphics/circuit_macros/examples/svg/paletteSVG.m4
index 2a26afdb99..2bad59ba93 100644
--- a/graphics/circuit_macros/examples/svg/paletteSVG.m4
+++ b/graphics/circuit_macros/examples/svg/paletteSVG.m4
@@ -333,7 +333,7 @@ A:Gridbox( FlipFlop(D)
] with .nw at (0,0)
-"A draft palette of elements for Inkscape using a 1 mm grid" \
+"A draft palette of a few elements for Inkscape using a 1 mm grid" \
ljust below at last [].sw
command "</g>" # end font
diff --git a/graphics/circuit_macros/examples/svg/recycleSVG.m4 b/graphics/circuit_macros/examples/svg/recycleSVG.m4
index d6246cc9ab..135f31414e 100644
--- a/graphics/circuit_macros/examples/svg/recycleSVG.m4
+++ b/graphics/circuit_macros/examples/svg/recycleSVG.m4
@@ -1,7 +1,7 @@
.PS
# recycle.m4
gen_init
-copy "HOMELIB_`'dpictools.pic"
+NeedDpicTools
[
# Gradient fill and clipping are simply
# done with PStricks or Tikz but the other
diff --git a/graphics/circuit_macros/examples/svg/tstSVG.htmx b/graphics/circuit_macros/examples/svg/tstSVG.htmx
index f15d09b7c7..6bb5ab2029 100644
--- a/graphics/circuit_macros/examples/svg/tstSVG.htmx
+++ b/graphics/circuit_macros/examples/svg/tstSVG.htmx
@@ -60,16 +60,28 @@ more basic.
<ul>
<ul>
<li>
- m4tt`'svg_font(</g>font-face,height,textoffset,dpic commands`'m4tt)</g>:
- Change font face, size, and dpic textoffset parameter.
+ m4tt`'svg_font(</g>font-face,nominal size[:dptextratio],textoffset,
+ dpic commands`'m4tt)</g>:
+ Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>,
+ and m4tt`'textoffset</g> parameters.
If arg4 is blank, the font is changed and
requires m4tt`'command "&lt;/g&gt;"</g> to cancel the font change.
+ <br>
+ Note:
+ Nominal height = text height in drawing units; actual height =
+ nominal ht x m4tt`'dptextratio</g>.
+ <br>
Examples: <br>
m4tt`'svg_font(Times)</g><br>
+ m4tt`'svg_font(Times,14bp__)</g><br>
+ m4tt`'svg_font(sans-serif,14bp__:0.71)</g><br>
m4tt`'svg_font(Times,11bp__,1bp__,"text" at A)</g><br>
m4tt`'svg_font(font-family="Times")</g><br>
m4tt`'svg_font(font-family="Times" font-style="italic")</g><br>
m4tt`'svg_font(style="font-family:Times; font-style:italic")</g>
+ <li>m4tt svgfontratio(</g>font name`'m4tt)</g>;
+ Reasonable m4tt`'dptextratio</g> value for common fonts, used
+ by m4tt`'svg_font</g>.
<li>m4tt svg_tspan(</g>text attributes, text`'m4tt)</g>;
e.g. m4tt`'svg_tspan(font-style="italic" font-size="75%",XYZ)</g>
<li>m4tt svg_it(</g>text`'m4tt)</g>: for italics
@@ -84,6 +96,13 @@ more basic.
subscript
<li>m4tt svg_sup(</g>text, size percent, y displ, x displ`'m4tt)</g>:
superscript
+ <li>m4tt svg_rot(</g>degrees, "text" [at position]`'m4tt)</g>:
+ Rotate text degrees (default 90) ccw.
+ Requires m4tt`'svg_rot_init(</g>filename`'m4tt)</g> and the source
+ must be processed twice.
+ <li>m4tt svg_rot_init(</g>filename`'m4tt)</g>:
+ filename is the basename of the output of
+ m4tt`'dpic -v filename.pic > filename.svg`'m4tt
<li>m4tt svg_symbol(</g>text`'m4tt)</g>: allow quoted pound sign in text,
e.g., m4tt`'svg_symbol(10&&#96;&#35;&#39;176;)</g> produces 10&#176;
<li>m4tt svgLink(</g>URL, drawing object, m4tt[B])</g>:
@@ -96,102 +115,61 @@ more basic.
<table cellpadding="0" cellspacing="0" width="100%" >
<tr>
-<td width="7%"> m4tt svg_alpha</g>
- <td align="left"> changecom(,)&`#'945;changecom(`#')
-<td width="7%"> m4tt svg_beta</g>
- <td align="left"> changecom(,)&`#'946;changecom(`#')
-<td width="7%"> m4tt svg_chi</g>
- <td align="left"> changecom(,)&`#'967;changecom(`#')
-<td width="7%"> m4tt svg_comma</g>
- <td align="left"> changecom(,)&`#'44;changecom(`#')
-<td width="7%"> m4tt svg_Delta</g>
- <td align="left"> changecom(,)&`#'916;changecom(`#')
-<td width="7%"> m4tt svg_delta</g>
- <td align="left"> changecom(,)&`#'948;changecom(`#')
-<td width="7%"> m4tt svg_epsilon</g>
- <td align="left"> changecom(,)&`#'949;changecom(`#')
-<td width="7%"> m4tt svg_eta</g>
- <td align="left"> changecom(,)&`#'951;changecom(`#')
+<td width="8%"> m4tt svg_alpha</g> <td align="left"> changecom(,)&`#'945;changecom(`#')
+<td width="8%"> m4tt svg_beta</g> <td align="left"> changecom(,)&`#'946;changecom(`#')
+<td width="8%"> m4tt svg_Gamma</g> <td align="left"> changecom(,)&`#'915;changecom(`#')
+<td width="8%"> m4tt svg_gamma</g> <td align="left"> changecom(,)&`#'947;changecom(`#')
+<td width="8%"> m4tt svg_Delta</g> <td align="left"> changecom(,)&`#'916;changecom(`#')
+<td width="8%"> m4tt svg_delta</g> <td align="left"> changecom(,)&`#'948;changecom(`#')
+<td width="10%"> m4tt svg_epsilon</g> <td align="left"> changecom(,)&`#'949;changecom(`#')
+<td width="8%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_Gamma</g>
- <td align="left"> changecom(,)&`#'915;changecom(`#')
-<td width="7%"> m4tt svg_gamma</g>
- <td align="left"> changecom(,)&`#'947;changecom(`#')
-<td width="7%"> m4tt svg_iota</g>
- <td align="left"> changecom(,)&`#'953;changecom(`#')
-<td width="7%"> m4tt svg_kappa</g>
- <td align="left"> changecom(,)&`#'954;changecom(`#')
-<td width="7%"> m4tt svg_Lambda</g>
- <td align="left"> changecom(,)&`#'923;changecom(`#')
-<td width="7%"> m4tt svg_lambda</g>
- <td align="left"> changecom(,)&`#'955;changecom(`#')
-<td width="7%"> m4tt svg_micro</g>
- <td align="left"> changecom(,)&`#'956;changecom(`#')
-<td width="7%"> m4tt svg_mu</g>
- <td align="left"> changecom(,)&`#'956;changecom(`#')
+<td width="8%"> m4tt svg_eta</g> <td align="left"> changecom(,)&`#'951;changecom(`#')
+<td width="8%"> m4tt svg_Theta</g> <td align="left"> changecom(,)&`#'920;changecom(`#')
+<td width="8%"> m4tt svg_theta</g> <td align="left"> changecom(,)&`#'952;changecom(`#')
+<td width="8%"> m4tt svg_iota</g> <td align="left"> changecom(,)&`#'953;changecom(`#')
+<td width="8%"> m4tt svg_kappa</g> <td align="left"> changecom(,)&`#'954;changecom(`#')
+<td width="8%"> m4tt svg_Lambda</g> <td align="left"> changecom(,)&`#'923;changecom(`#')
+<td width="8%"> m4tt svg_lambda</g> <td align="left"> changecom(,)&`#'955;changecom(`#')
+<td width="8%"> m4tt svg_mu</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_nu</g>
- <td align="left"> changecom(,)&`#'957;changecom(`#')
-<td width="7%"> m4tt svg_ohm</g>
- <td align="left"> changecom(,)&`#'937;changecom(`#')
-<td width="7%"> m4tt svg_Omega</g>
- <td align="left"> changecom(,)&`#'937;changecom(`#')
-<td width="7%"> m4tt svg_omega</g>
- <td align="left"> changecom(,)&`#'969;changecom(`#')
-<td width="7%"> m4tt svg_Phi</g>
- <td align="left"> changecom(,)&`#'934;changecom(`#')
-<td width="7%"> m4tt svg_phi</g>
- <td align="left"> changecom(,)&`#'966;changecom(`#')
-<td width="7%"> m4tt svg_Pi</g>
- <td align="left"> changecom(,)&`#'928;changecom(`#')
-<td width="7%"> m4tt svg_pi</g>
- <td align="left"> changecom(,)&`#'960;changecom(`#')
+<td width="8%"> m4tt svg_nu</g> <td align="left"> changecom(,)&`#'957;changecom(`#')
+<td width="8%"> m4tt svg_Xi</g> <td align="left"> changecom(,)&`#'926;changecom(`#')
+<td width="8%"> m4tt svg_xi</g> <td align="left"> changecom(,)&`#'958;changecom(`#')
+<td width="8%"> m4tt svg_Pi</g> <td align="left"> changecom(,)&`#'928;changecom(`#')
+<td width="8%"> m4tt svg_pi</g> <td align="left"> changecom(,)&`#'960;changecom(`#')
+<td width="8%"> m4tt svg_rho</g> <td align="left"> changecom(,)&`#'961;changecom(`#')
+<td width="8%"> m4tt svg_Sigma</g> <td align="left"> changecom(,)&`#'931;changecom(`#')
+<td width="8%"> m4tt svg_sigma</g> <td align="left"> changecom(,)&`#'963;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_Psi</g>
- <td align="left"> changecom(,)&`#'936;changecom(`#')
-<td width="7%"> m4tt svg_psi</g>
- <td align="left"> changecom(,)&`#'968;changecom(`#')
-<td width="7%"> m4tt svg_rho</g>
- <td align="left"> changecom(,)&`#'961;changecom(`#')
-<td width="7%"> m4tt svg_Sigma</g>
- <td align="left"> changecom(,)&`#'931;changecom(`#')
-<td width="7%"> m4tt svg_sigma</g>
- <td align="left"> changecom(,)&`#'963;changecom(`#')
-<td width="7%"> m4tt svg_tau</g>
- <td align="left"> changecom(,)&`#'964;changecom(`#')
-<td width="7%"> m4tt svg_Theta</g>
- <td align="left"> changecom(,)&`#'920;changecom(`#')
-<td width="7%"> m4tt svg_theta</g>
- <td align="left"> changecom(,)&`#'952;changecom(`#')
+<td width="8%"> m4tt svg_tau</g> <td align="left"> changecom(,)&`#'964;changecom(`#')
+<td width="10%"> m4tt svg_upsilon</g> <td align="left"> changecom(,)&`#'965;changecom(`#')
+<td width="8%"> m4tt svg_Phi</g> <td align="left"> changecom(,)&`#'934;changecom(`#')
+<td width="8%"> m4tt svg_phi</g> <td align="left"> changecom(,)&`#'966;changecom(`#')
+<td width="8%"> m4tt svg_chi</g> <td align="left"> changecom(,)&`#'967;changecom(`#')
+<td width="8%"> m4tt svg_Psi</g> <td align="left"> changecom(,)&`#'936;changecom(`#')
+<td width="8%"> m4tt svg_psi</g> <td align="left"> changecom(,)&`#'968;changecom(`#')
+<td width="8%"> m4tt svg_Omega</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_upsilon</g>
- <td align="left"> changecom(,)&`#'965;changecom(`#')
-<td width="7%"> m4tt svg_Xi</g>
- <td align="left"> changecom(,)&`#'926;changecom(`#')
-<td width="7%"> m4tt svg_xi</g>
- <td align="left"> changecom(,)&`#'958;changecom(`#')
-<td width="7%"> m4tt svg_zeta</g>
- <td align="left"> changecom(,)&`#'950;changecom(`#')
-<td width="7%"> m4tt svg_lt</g>
- <td align="left"> changecom(,)&`#'60;changecom(`#')
-<td width="7%"> m4tt svg_gt</g>
- <td align="left"> changecom(,)&`#'62;changecom(`#')
-<td width="7%"> m4tt svg_leq</g>
- <td align="left"> changecom(,)&`#'8804;changecom(`#')
-<td width="7%"> m4tt svg_geq</g>
- <td align="left"> changecom(,)&`#'8805;changecom(`#')
+<td width="8%"> m4tt svg_omega</g> <td align="left"> changecom(,)&`#'969;changecom(`#')
+<td width="8%"> m4tt svg_micro</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
+<td width="8%"> m4tt svg_ohm</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
+<td width="8%"> m4tt svg_lt</g> <td align="left"> changecom(,)&`#'60;changecom(`#')
+<td width="8%"> m4tt svg_gt</g> <td align="left"> changecom(,)&`#'62;changecom(`#')
+<td width="8%"> m4tt svg_leq</g> <td align="left"> changecom(,)&`#'8804;changecom(`#')
+<td width="8%"> m4tt svg_geq</g> <td align="left"> changecom(,)&`#'8805;changecom(`#')
+<td width="8%"> m4tt svg_prime</g> <td align="left"> changecom(,)&`#'8242;changecom(`#')
<tr>
-<td width="7%"> m4tt svg_prime</g>
- <td align="left"> changecom(,)&`#'8242;changecom(`#')
-<td width="7%"> m4tt svg_ensp</g>
- <td align="left"> |changecom(,)&`#'8194;changecom(`#')|
-<td width="7%"> m4tt svg_emsp</g>
- <td align="left"> |changecom(,)&`#'8195;changecom(`#')|
-<td width="7%"> m4tt svg_thinsp</g>
- <td align="left"> |changecom(,)&`#'8201;changecom(`#')|
-<td width="7%"> m4tt svg_backsl</g>
- <td align="left"> changecom(,)&`#'92;changecom(`#')
+<td width="8%"> m4tt svg_backsl</g> <td align="left"> changecom(,)&`#'92;changecom(`#')
+<td width="8%"> m4tt svg_pound</g> <td align="left"> changecom(,)&`#'35;changecom(`#')
+<td width="8%"> m4tt svg_comma</g> <td align="left"> changecom(,)&`#'44;changecom(`#')
+<td width="8%"> m4tt svg_lparen</g> <td align="left"> changecom(,)&`#'40;changecom(`#')
+<td width="8%"> m4tt svg_rparen</g> <td align="left"> changecom(,)&`#'41;changecom(`#')
+<td width="8%"> m4tt svg_emsp</g> <td align="left"> |changecom(,)&`#'8195;changecom(`#')|
+<td width="8%"> m4tt svg_ensp</g> <td align="left"> |changecom(,)&`#'8194;changecom(`#')|
+<td width="8%"> m4tt svg_thinsp</g> <td align="left"> |changecom(,)&`#'8201;changecom(`#')|
</table>
+
</ul>
<li> Inkscape: It may be efficient to define elements by macro and to
place them using a WYSIWYG graphics editor. A draft page intended
diff --git a/graphics/circuit_macros/examples/svg/windows.m4 b/graphics/circuit_macros/examples/svg/windows.m4
new file mode 100644
index 0000000000..bc4527f36e
--- /dev/null
+++ b/graphics/circuit_macros/examples/svg/windows.m4
@@ -0,0 +1,12 @@
+divert(-1)
+# windows.m4
+# This file is used if the CUSTOM=windows.m4 function is turned on in Makefile
+define(`windows_')
+
+# To makd NeedDpicTools work,
+# change the absolute Windows path to your installation directory:
+
+define(`NeedDpicTools',`if "dpictools" != "1" then {
+ copy "D:\Dwight\lib\dpictools.pic" } define(`dfitcurve__') ')
+
+divert(0)dnl
diff --git a/graphics/circuit_macros/examples/windows.m4 b/graphics/circuit_macros/examples/windows.m4
index 1b2a904af0..bc4527f36e 100644
--- a/graphics/circuit_macros/examples/windows.m4
+++ b/graphics/circuit_macros/examples/windows.m4
@@ -1,7 +1,10 @@
divert(-1)
-# This file is used if the CUSTOM= function is turned on in Makefile
+# windows.m4
+# This file is used if the CUSTOM=windows.m4 function is turned on in Makefile
+define(`windows_')
-# Change the absolute Windows path to your installation directory:
+# To makd NeedDpicTools work,
+# change the absolute Windows path to your installation directory:
define(`NeedDpicTools',`if "dpictools" != "1" then {
copy "D:\Dwight\lib\dpictools.pic" } define(`dfitcurve__') ')
diff --git a/graphics/circuit_macros/examples/xfig/xfiglib.fig b/graphics/circuit_macros/examples/xfig/xfiglib.fig
index 386844bc5c..6b3d4fb3e4 100644
--- a/graphics/circuit_macros/examples/xfig/xfiglib.fig
+++ b/graphics/circuit_macros/examples/xfig/xfiglib.fig
@@ -6,7 +6,7 @@ Letter
100.00
Single
-2
-# dpic version 2020.03.01 option -x for Fig 3.2
+# dpic version 2020.06.01 option -x for Fig 3.2
1200 2
6 0 0 3975 5025
6 0 0 3975 5025
@@ -184,8 +184,10 @@ Single
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
1125 1425 1125 1275
1 3 0 1 0 -1 0 -1 -1 0 1 0.0 1125 1125 150 150 1275 1125 1275 1125
-5 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 1075 1125 1025 1125 1075 1075 1125 1125
+6 1025 1075 1225 1175
+5 1 0 1 0 -1 0 -1 -1 0 0 1 0 0 1075 1125 1125 1125 1075 1075 1025 1125
5 1 0 1 0 -1 0 -1 -1 0 0 1 0 0 1175 1125 1125 1125 1175 1175 1225 1125
+-6
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
1125 975 1125 825
-6
diff --git a/graphics/circuit_macros/gpic.m4 b/graphics/circuit_macros/gpic.m4
index 9a5c596dce..16d58c7a15 100644
--- a/graphics/circuit_macros/gpic.m4
+++ b/graphics/circuit_macros/gpic.m4
@@ -1,7 +1,7 @@
divert(-1)
gpic.m4 Initialization for gpic.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/lib3D.m4 b/graphics/circuit_macros/lib3D.m4
index 53d2004b43..e469841036 100644
--- a/graphics/circuit_macros/lib3D.m4
+++ b/graphics/circuit_macros/lib3D.m4
@@ -3,7 +3,7 @@ lib3D.m4 Macros for rotation, projection, and other
operations on argument triples representing
3D vectors.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/libcct.m4 b/graphics/circuit_macros/libcct.m4
index b213af9e91..0ae189ad17 100644
--- a/graphics/circuit_macros/libcct.m4
+++ b/graphics/circuit_macros/libcct.m4
@@ -1,7 +1,7 @@
divert(-1)
libcct.m4
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -551,15 +551,15 @@ define(`xtal',`eleminit_(`$1')
`source( linespec,
V|v|I|i|AC|B|F|G|H|Q|L|N|P|R|S[C[r]|E[r]]]|T|X|U|other,
diameter, R, fill)
- V = voltage source; v=alternate voltage source;
+ V = voltage source; v = alternate voltage source;
I = current source; i = alternate current source;
- AC = AC source, B = bulb, F = fluorescent, G = generator,
- Q = charge, L = lamp, N = neon, P = pulse, R = ramp,
- SC = quarter arc, SE = arc; r = right orientation,
- S = sinusoid,
- T = triangle, X = interior X, U = square-wave,
- other = custom interior label or waveform,
- R = reversed polarity
+ AC = AC source; B = bulb; F = fluorescent; G =
+ generator; H = step function; L = lamp;
+ N = neon; P = pulse; Q = charge; R = ramp; r = right
+ orientation; S = sinusoid; SC = quarter arc; SE =
+ arc; T = triangle; U = square-wave; X = interior X;
+ other = custom interior label or waveform;
+ arg 4: R = reversed polarity;
arg 5 modifies the circle with e.g., color or fill'
define(`source',`ifelse(`$4',R,
`reversed(`source',`$1',`$2',`$3',,shift(shift(shift(shift($@)))))',
@@ -621,10 +621,7 @@ define(`source',`ifelse(`$4',R,
at rvec_( m4h/2,0) ifsvg(+(0,textht/10))}',
`$2',v,`{line from rvec_(-m4h,0) \
to rvec_(m4h,0)}',
- `$2',AC,`{
- arc rad m4h/3 cw from Here-(m4h*2/3,0) \
- to Here with .c at Here-(m4h/3,0)
- arc rad m4h/3 ccw from Here to Here+(m4h*2/3,0) with .c at Here+(m4h/3,0)}',
+ `$2',AC,`{ACsymbol(,,,AR)}',
`$2',P,`{ line from Here+(-m4h/2,-m4h/4) \
to Here+(-m4h/4,-m4h/4) \
then to Here+(-m4h/4,m4h/4) \
@@ -652,13 +649,7 @@ define(`source',`ifelse(`$4',R,
`$2',SE,`{ arc from Cintersect(Here,m4h,rvec_(0,2*m4h),1.8*m4h) \
to Cintersect(Here,m4h,rvec_(0,2*m4h),1.8*m4h,R) \
with .c at rvec_(0,2*m4h) }',
- `$2',S,`{ ifgpic(
- `arc rad m4h/3 cw from Here-(m4h*2/3,0) \
- to Here with .c at Here-(m4h/3,0)
- arc rad m4h/3 ccw from Here to Here+(m4h*2/3,0) with .c at Here+(m4h/3,0)',
- `savem4dir(`m4srcstack') right_
- sinusoid(m4h/2,twopi_/(m4h),pi_/2,-m4h/2,m4h/2) with .Origin at Here
- restorem4dir(`m4srcstack') ') }',
+ `$2',S,`{ACsymbol(,,,R)}',
`$2',T,`{ line from Here+(-m4h*3/4,-m4h/4) \
to Here+(-m4h/4,m4h/4) \
then to Here+(m4h/4,-m4h/4) \
@@ -706,34 +697,75 @@ define(`ttmotor',`eleminit_(`$1')
{ [box invis ht_ m4r*2 wid_ (m4r+m4w)*2] at last circle.c }
line to rvec_(rp_len,0) invis ')
- `Controlled source
- consource( linespec ,V|I|v|i, R )
+ `consource( linespec ,V|I|v|i|P, R )
+ Controlled source
+ Arg3:
+ V= voltage
+ I= current
+ v= voltage type 2
+ i= current type 2
+ P= proximity sensor
arg 4 can be used to modify the body with e.g.
color or fill'
define(`consource',`ifelse(`$3',R,
`reversed(`consource',`$1',`$2',,shift(shift(shift($@))))',
`eleminit_(`$1')
{line to rvec_(rp_len/2-csdim_,0)
- {line to rvec_(csdim_,csdim_) \
- then to rvec_(2*csdim_,0)\
- then to rvec_(csdim_,-csdim_) \
- then to Here `$4' }
+ M4CSN: rvec_(csdim_,csdim_)
+ M4CSS: rvec_(csdim_,-csdim_)
+ M4CSE: rvec_(2*csdim_,0)
+ M4CSW: Here
+ {line to M4CSN then to M4CSE then to M4CSS then to Here `$4'}
ifelse(`$2',I,
`{arrow from rvec_(csdim_/4,0) \
to rvec_(csdim_*7/4,0)}',
`$2',i,
- `{line from rvec_(csdim_,csdim_) \
- to rvec_(csdim_,-csdim_)}',
+ `{line from M4CSN to M4CSS}',
`$2',V,
- `{"ifsvg(-,`$-$')" at rvec_(csdim_*0.5,0) ifsvg(+(0,textht/10))}
- {"ifsvg(+,`$+$')" at rvec_(csdim_*1.5,0) ifsvg(+(0,textht/10))}',
+ `{"iflatex(`$-$',-)" at rvec_(csdim_*0.5,0) ifsvg(+(0,textht/10))}
+ {"iflatex(`$+$',+)" at rvec_(csdim_*1.5,0) ifsvg(+(0,textht/10))}',
`$2',v,
- `{line to rvec_(2*csdim_,0)} ')
- line from rvec_(2*csdim_,0) \
- to rvec_(rp_len/2+csdim_,0) }
+ `{line to M4CSE} ',
+ `$2',P,
+ `{ Proxim(2*csdim_) at rvec_(csdim_,0) }')
+ line from M4CSE to rvec_(rp_len/2+csdim_,0) }
{[box invis ht_ 2*csdim_ wid_ 2*csdim_] at rvec_(rp_len/2,0)}
line to rvec_(rp_len,0) invis ')')
+ `Proxim(size, U|D|L|R|degrees)
+ Proximity symbol
+ Arg2 default: current direction'
+define(`Proxim',`[
+ define(`m4prwid',`ifelse(`$1',,(dimen_/2),`($1)')')dnl
+ setdir_(ifelse(`$2',,`ifdef(`m4a_',rp_ang*rtod_,0)',`$2'))
+ M4PRN: rvec_(0, m4prwid/2)
+ M4PRE: rvec_(m4prwid/2,0)
+ M4PRS: rvec_(0,-m4prwid/2)
+ M4PRW: rvec_(-m4prwid/2,0)
+ { line from 1/2 between M4PRN and M4PRE to M4PRE then to M4PRS \
+ then to M4PRW then to M4PRN then to 1/2 between M4PRN and M4PRE }
+ { line from 1/4 between M4PRW and M4PRN to 1/4 between M4PRE and M4PRN }
+ { line from 1/4 between M4PRW and M4PRS to 1/4 between M4PRE and M4PRS }
+ `$3'; resetdir_ ]')
+
+ `Magn(len, ht, U|D|L|R|degrees)
+ Magnetic relay action symbol'
+define(`Magn',`[
+ define(`m4mawi2',`ifelse(`$1',,(dimen_/4),`(($1)/2)')')dnl
+ define(`m4mah2',`ifelse(`$2',,(dimen_/8),`(($2)/2)')')dnl
+ setdir_(ifelse(`$3',,`ifdef(`m4a_',rp_ang*rtod_,0)',`$3'))
+ m4fshade(0, line from vec_( 0, m4mah2) \
+ to vec_( m4mawi2, m4mah2) \
+ then to vec_( m4mawi2,-m4mah2) \
+ then to vec_( m4mawi2/2,-m4mah2) \
+ then to vec_( m4mawi2/2,0) \
+ then to vec_(-m4mawi2/2,0) \
+ then to vec_(-m4mawi2/2,-m4mah2) \
+ then to vec_(-m4mawi2,-m4mah2) \
+ then to vec_(-m4mawi2, m4mah2) \
+ then to vec_( 0, m4mah2))
+ `$4'; resetdir_ ]')
+
`battery( linespec, n, R )
Arg 3: reversed polarity'
define(`battery',`ifelse(`$3',R,
@@ -765,7 +797,7 @@ define(`ebox',`eleminit_(`$1')
line to rvec_(rp_len,0) invis ')
`fuse( linespec, chars, wid, ht )
- chars A|B|C|D|S|HB|HC or dA (=D)'
+ chars dA|B|C|D|S|SB|HB|HC or dA (=D)'
define(`fuse',`eleminit_(`$1')
define(`m4fusetype',`ifelse(`$2',,A,`$2',D,dA,`$2')')dnl
define(`m4ht',ifelse(`$4',,`dimen_/5'ifinstr(`$2',H,*5/3),`($4)'))dnl
@@ -775,7 +807,7 @@ define(`fuse',`eleminit_(`$1')
sc_draw(`m4fusetype',HB,
`{move to rvec_(m4d,0); lbox(m4wd-2*m4d,m4ht-2*m4d)}
{lbox(m4wd,m4ht)}
- line to rvec_(m4wd+max(0,rp_len/2-m4wd/2),0)}')
+ line to rvec_(m4wd+max(0,rp_len/2-m4wd/2),0)')
sc_draw(`m4fusetype',HC,
`{move to rvec_(m4d,0); {lbox(m4wd-2*m4d,m4ht-2*m4d)}
{line from rvec_((m4wd-2*m4d)/5,m4ht/2-m4d) \
@@ -783,30 +815,87 @@ define(`fuse',`eleminit_(`$1')
line from rvec_((m4wd-2*m4d)*4/5,m4ht/2-m4d) \
to rvec_((m4wd-2*m4d)*4/5,-m4ht/2+m4d) }
{lbox(m4wd,m4ht)}
- move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)}')
+ move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)')
sc_draw(`m4fusetype',A,
`arc cw to rvec_(m4ht,0) rad m4ht/2 with .c at rvec_(m4ht/2,0)dnl
ifelse(m4a,d,`; {dot(at last arc.start,,1)}')
arc ccw to rvec_(m4ht,0) rad m4ht/2 with .c at rvec_(m4ht/2,0)
line to rvec_(max(0,rp_len/2-m4wd/2),0)dnl
- ifelse(m4a,d,`; dot(at last line.start,,1)') }')
+ ifelse(m4a,d,`; dot(at last line.start,,1)')')
+ sc_draw(`m4fusetype',SB,
+ `{lbox(m4wd,m4ht)}
+ {line to rvec_(m4wd+max(0,rp_len/2-m4wd/2),0)}
+ {m4fshade(m4fill,lbox(m4wd/5,m4ht))}
+ move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)')
sc_draw(`m4fusetype',B,
`{lbox(m4wd,m4ht)}
- line to rvec_(m4wd+max(0,rp_len/2-m4wd/2),0)}')
+ line to rvec_(m4wd+max(0,rp_len/2-m4wd/2),0)')
sc_draw(`m4fusetype',C,
`{lbox(m4wd,m4ht)}
{line from rvec_(m4wd/5,-m4ht/2) \
to rvec_(m4wd/5,m4ht/2)}
{line from rvec_(m4wd*4/5,-m4ht/2) \
to rvec_(m4wd*4/5,m4ht/2)}
- move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)}')
+ move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)')
sc_draw(`m4fusetype',S,
`{lbox(m4wd,m4ht)}
{m4fshade(m4fill,lbox(m4wd/5,m4ht))}
- move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)}')
+ move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)')
+ }
{[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
line to rvec_(rp_len,0) invis ')
+ `arrester( linespec, [G|E|S][D[L]], len, ht )
+ G= spark gap (default)
+ E= gas discharge
+ S= surge
+ D= double (creates 3-terminal element)
+ DL= double, left orientation'
+define(`arrester',
+ `define(`m4wd',ifelse(`$3',,`dimen_/2',`($3)'))dnl
+ define(`m4ht',ifelse(`$4',,`dimen_/5',`($4)'))dnl
+ define(`m4arm',ifinstr(`$2',L,,-))dnl
+ define(`m4ardna',`patsubst(patsubst(`$2',L),D)')dnl
+ define(`m4awd',arrowwid*4/3)define(`m4aht',arrowht*2/3)dnl
+ define(`m4len',`ifinstr(`$2',D,`ifelse(`$1',,dimen_)',`$1')')dnl
+ ifinstr(`$2',D,[)eleminit_(m4len)ifinstr(`$2',D,,`;{')dnl
+ ifinstr( m4ardna,S,
+ `line to rvec_(max(0,rp_len/2-m4wd/2),0)
+ {lbox(m4wd,m4ht)}
+ {arrow to rvec_(m4wd*0.4,0) wid m4awd ht m4aht}
+ ifinstr(`$2',D,
+ `A: 3rd last line.start; B: last line.end; C: 1/2 between A and B
+ move to rvec_(m4wd/2,m4arm`'(-m4ht/2))
+ Gb: line to rvec_(0,m4arm`'(m4ht*2))
+ G: Here]',
+ `line from rvec_(m4wd,0) to rvec_(max(0,rp_len/2+m4wd/2),0)}
+ {[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
+ line to rvec_(rp_len,0) invis ') ',
+ m4ardna,E,
+ `arrow to rvec_(max(0,rp_len/2-m4wd/8),0) wid m4awd ht m4aht
+ {dot(at rvec_(-m4aht/4,-m4wd/4),dotrad_*2/3)}
+ {move to rvec_(m4wd/4,0)
+ arrow <- to rvec_(max(0,rp_len/2-m4wd/8),0) wid m4awd ht m4aht }
+ {circle diam m4wd at rvec_(m4wd/8,0)}
+ ifinstr(`$2',D,
+ `A: 2nd last arrow.start; B: last arrow.end; C: last circle.c
+ move to rvec_(m4wd/8,m4arm`'(-m4ht/2))
+ Gb: line to rvec_(0,m4arm`'ifelse(`$3',,`dimen_/2',`($3)'))
+ G: Here]',
+ `}; {[box invis ht_ m4wd wid_ m4wd] at rvec_(rp_len/2,0)}
+ line to rvec_(rp_len,0) invis ')',
+ `define(`m4wd',ifelse(`$3',,`dimen_/8',`($3)'))dnl
+ arrow to rvec_(max(0,rp_len/2-m4wd/2),0) wid m4awd ht m4aht
+ { move to rvec_(m4wd,0)
+ arrow <- to rvec_(max(0,rp_len/2-m4wd/2),0) wid m4awd ht m4aht }
+ ifinstr(`$2',D,
+ `A: 2nd last arrow.start; B: last arrow.end; C: 1/2 between A and B
+ move to rvec_(m4wd/2,m4arm`'(-m4awd))
+ Gb: line to rvec_(0,m4arm`'ifelse(`$3',,`dimen_/2',`($3)'))
+ G: Here]',
+ `}; {[box invis ht_ m4ht wid_ m4wd+2*m4aht] at rvec_(rp_len/2,0)}
+ line to rvec_(rp_len,0) invis ')')')
+
`memristor( linespec, wid, ht )'
define(`memristor',`eleminit_(`$1')
define(`m4ht',ifelse(`$3',,`dimen_/5',`($3)'))define(`m4htx',`m4ht/4')dnl
@@ -949,10 +1038,11 @@ define(`arrowline',`line ifelse(`$1',,`to rvec_(elen_,0)',`$1')
chop lin_leng(last line)/2-arrowht/2
[box invis ht_ arrowwid wid_ arrowht] at last line.c }')
- `ground( at position, T, N|F|S|L|P|E, D|U|L|R|degrees)
+ `ground( at position, T, N|F|S|L|P[A]|E,
+ D|U|L|R|degrees)
T=truncated stem; N=normal ground,
F=frame, S=signal, L=low-noise, P=protective,
- E=European;
+ E=European; PA=protective alternate
down (default), up, left, right, angle (deg)'
define(`ground',`box invis ht 0 wid 0 with .c ifelse(`$1',,`at Here',`$1')
define(`m4v',`dimen_/6')define(`m4h',`dimen_/16')dnl
@@ -979,6 +1069,12 @@ define(`ground',`box invis ht 0 wid 0 with .c ifelse(`$1',,`at Here',`$1')
arc cw rad m4v*3/2 from rvec_(Rect_(m4v*3/2,-60)) \
to rvec_(Rect_(m4v*3/2,60)) with .c at Here}
ground(,T,,`$4')',
+ `$3',PA,
+ `{Grnd_T: line to rvec_(0,m4v*1.6) \
+ then to rvec_(5.5*m4h,0) \
+ then to rvec_(0,-m4v*1.6) \
+ then to Here}
+ ground(at rvec_(m4h,0),T,,`$4')',
`$3',P,
`{Grnd_C: circle rad m4v*3/2 at rvec_(m4h,0)}
ground(,T,,`$4')',
@@ -1146,7 +1242,6 @@ define(`lswitch',`eleminit_(`$1') dnl
arrowht = m4t1 ; arrowwid = m4t2; ifelse(`$4',,,`{`$4'}')
line to rvec_(rp_len,0) invis ')
-
`dswitch(linespec,R,W[ud]B[K] chars)
Comprehensive IEEE-IEC single-pole switch:
arg2=R: orient to the right of drawing dir
@@ -1180,6 +1275,8 @@ define(`lswitch',`eleminit_(`$1') dnl
MMR = momentary contact on make and release
O = hand operation button
P = pushbutton
+ Pr[T|M] = proximity [touch-sensitive or
+ magnetically controlled]
R = time-delay operating arm
Sd = Switch-disconnector
Th = thermal control linkage
@@ -1281,6 +1378,10 @@ define(`m4R',`ifelse(`$2',R,-)')define(`m4sc',`dimen_/24')dnl
move to M4dT1+vec_(0,m4c`'m4dTr/2)
m4fshade(0,lbox(m4dTr,m4dTr))
point_(m4angtmp) ')
+ sc_draw(`dna_',PrM,
+ `M4T: Proxim(dimen_/3) at M4B.c+ta_xy(0,ifelse(m4a,d,-)8)
+ line dashed dimen_/16 from M4B.c to M4T chop 0 chop dimen_/6
+ Magn(dimen_/3,dimen_/6) at M4T+vec_(0,ifelse(m4a,d,-)dimen_/4)')
sc_draw(`dna_',M,
`define(`m4t',ifelse(m4a,d,-))dnl
M4T: M4B.c+ta_xy(0,m4t`'12)
@@ -1294,6 +1395,13 @@ define(`m4R',`ifelse(`$2',R,-)')define(`m4sc',`dimen_/24')dnl
sc_draw(`dna_',O,
`line from M4T + ta_xy(-2.5,0) \
to M4T + ta_xy(2.5,0) ')
+ sc_draw(`dna_',PrT,
+ `M4T: Proxim(dimen_/3) at M4B.c+ta_xy(0,ifelse(m4a,d,-)8)
+ line dashed dimen_/16 from M4B.c to M4T chop 0 chop dimen_/6
+ line to rvec_(dimen_/4,0) with .c at M4T+vec_(0,ifelse(m4a,d,-)dimen_/6)')
+ sc_draw(`dna_',Pr,
+ `M4T: Proxim(dimen_/3) at M4B.c+ta_xy(0,ifelse(m4a,d,-)8)
+ line dashed dimen_/16 from M4B.c to M4T chop 0 chop dimen_/6 ')
sc_draw(`dna_',P,
`line from M4T + ta_xy(-2.5,-2.5) \
to M4T + ta_xy(-2.5,0) \
@@ -2118,6 +2226,7 @@ define(`c_fet',`mosfet(`$1',`$2',`ZSDF'ifelse(`$3',P,d)T,,`$4')')
udM: G pin to channel center or
u: pin at drain end, d: pin at source end
udMn: gates G0 to Gn as above
+ Py: parallel diode
Pz: parallel zener diode
Q: connect B pin to S pin
R: thick channel
@@ -2200,15 +2309,18 @@ define(`mosfet',
Gl: line from tr_xy(2,(m4s+1)) \
to tr_xy(-2,(m4s+1)) \
then to G')')
- sc_draw(`dna_',Pz,
+ sc_draw(`dna_',Py,`pushdef(`m4pdd_mosfet')')
+ sc_draw(`dna_',Pz,`pushdef(`m4pdd_mosfet',Z)')
+ ifdef(`m4pdd_mosfet',
`define(`m4q',m4a)dnl
Diode: diode(ifelse(m4q,d,to,from) tr_xy(-2,-2) \
- ifelse(m4q,d,from,to) tr_xy( 2,-2),Z)
+ ifelse(m4q,d,from,to) tr_xy( 2,-2),m4pdd_mosfet)
ifelse(m4q,d,rp_ang = rp_ang + pi_)
line from tr_xy(-2,0) \
to tr_xy(-2,-2) \
then to tr_xy(2,-2) \
- then to tr_xy(2,0)')
+ then to tr_xy(2,0)
+ popdef(`m4pdd_mosfet')')
sc_draw(`dna_',Q,
`Ql: line from tr_xy(0,0)+vec_(0,m4R`'linethick pt__) \
to tr_xy(0,0) \
@@ -2464,8 +2576,10 @@ define(`resized',`define(`m4resiztmp',dimen_)define(`dimen_',(dimen_)*(`$1'))dnl
`variable(`element', type, angle, length)
overlaid arrow or line on two-terminal element
- to show variablility: type = [A|P|L|[u]N][C|S]
+ to show variablility:
+ type = [A|P|L|[u]N|[u]NN][C|S]
A=arrow, P=preset, L=linear, N=nonlinear,
+ NN=symmetric nonlinear, u changes direction,
C=continuous, S=setpwise'
define(`variable',`$1
{[ define(`dna_',`ifelse($2,,A,$2)') ang = ifelse(`$3',,45,`$3')
@@ -2473,6 +2587,11 @@ define(`variable',`$1
sc_draw(`dna_',P,`Line: line to M4_T
[line to (Rect_(dimen_/6,ang-90))] at Line.end')
sc_draw(`dna_',L,`Line: line to M4_T')
+ sc_draw(`dna_',NN,`Line: ifelse(m4a,u,
+ `line from Here-(dimen_/6,0) to Here \
+ then to M4_T then to M4_T+(dimen_/6,0)',
+ `line from Here-(0,dimen_/6) to Here \
+ then to M4_T then to M4_T+(0,dimen_/6)') ')
sc_draw(`dna_',N,`Line: line to M4_T
ifelse(m4a,u,`line up dimen_/6 from Line.end',
`line left dimen_/6 from Line.start')')
@@ -2669,7 +2788,6 @@ define(`contact',`[ dnl
')
`$3'] ')
-
`relaycoil( chars, wid, ht, U|D|L|R|degrees )
chars:
X or default: external lines from A2 and B2
@@ -2679,8 +2797,8 @@ define(`contact',`[ dnl
SO slow operating
SOR slow operating and release
SR slow release
- HS hight speed
- HS hight speed
+ HS high speed
+ HS high speed
NAC unaffected by AC current
AC AC current
ML mechanically latched
@@ -2951,7 +3069,7 @@ define(`m4pcrpin',`[ifinstr(`$2',F,`circle diam `$1'',
`Header(1|2,rows,wid,ht,type)
arg1: number of columns
arg2: pins per column
- arg3,4: custom sizes
+ arg3,4: custom wid, ht
arg5: eg fill_(0.9)'
define(`Header',
`[define(`m4Hm',`ifelse(`$2',,2,`$2')')define(`m4Hn',`ifelse(`$1',,1,`$1')')dnl
@@ -3041,7 +3159,8 @@ define(`gyrator',
down Box.ht/4 then right N1b.x-N1a.x then up Box.ht/4
arcd(Box+(0,Box.ht/4),(N1b.x-N1a.x)/3,90+90,90+270)
`$5')') ')
-
+ `proximity(linespec)'
+define(`proximity',`consource(`$1',P)')
`nullator(linespec, wid, ht)'
define(`nullator',`eleminit_(`$1')
define(`m4wd',ifelse(`$2',,`dimen_/2',`($2)'))dnl
@@ -3080,6 +3199,25 @@ define(`norator',`eleminit_(`$1')
{[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
line to rvec_(rp_len,0) invis ')
+ `ACsymbol(at position, len, ht, [A]U|D|L|R|degrees)
+ Arg4: drawing direction (default: current direction)
+ Arg4 contains A: use arcs instead of sinusoid
+ A convenience for drawing a 1-cycle sinusoid,
+ e.g. source; ACsymbol(at last [])'
+define(`ACsymbol',`[ Origin: Here
+ define(`m4range',`ifelse(`$2',,(dimen_/3),`($2)')')dnl
+ define(`m4ACd',patsubst(`$4',A))dnl
+ setdir_(ifelse(m4ACd,,`ifdef(`m4a_',rp_ang*rtod_,0)',m4ACd))
+ Start: rvec_(-m4range/2,0)
+ End: rvec_( m4range/2,0)
+ define(`m4amp',`ifelse(`$3',,`m4range/3',`($3)/2')')
+ ifinstr(ifgpic(A)`$4',A,
+ `{ arc ccw to Start with .c at rvec_(-m4range/4,-max(m4range/4-m4amp,0)) }
+ { arc ccw to End with .c at rvec_( m4range/4, max(m4range/4-m4amp,0)) }',
+ `{ sinusoid(m4amp,twopi_/m4range,pi_/2,-m4range/2,m4range/2) \
+ with .Origin at Origin } ')
+ `$5'; resetdir_ ] with .Origin ifelse(`$1',,`at Here',`$1')')
+
`n-terminal box
nterm(box specs; other commands,
nw,nn,ne,ns,
@@ -3156,16 +3294,37 @@ define(`bell',`[setdir_($1,R)
In2: Here
In3: rvec_(0,-m4h/4)
`$3'; resetdir_ ]')
- `microphone(U|D|L|R|degrees, vert size)'
-define(`microphone',`[setdir_($1,R)
- define(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
- {L1: line from rvec_(m4h,-m4h/2) \
- to rvec_(m4h,m4h/2)}
- {Circle: circle diameter m4h at rvec_(m4h/2,0)}
- In1: rvec_(m4h*(2-sqrt(3))/4,m4h/4)
- In2: Here
- In3: rvec_(m4h*(2-sqrt(3))/4,-m4h/4)
- `$3'; resetdir_ ]')
+ `microphone(A|U|D|L|R|degrees, vert size)
+ Arg1= A, upright mic
+ Thanks to Arnold Knott'
+define(`microphone',`ifinstr(`$1',A,
+ `[ define(`m4sfact',`(ifelse(`$2',,dimen_,(`$2'))*8/5)')
+ circlerad = m4sfact/1000
+ cspace = m4sfact/100
+ bwd = m4sfact/10
+ bht = m4sfact/4+bwd
+ Stand: line up m4sfact/5
+ { arc from Here+(-bwd,bwd) to Here+(bwd,bwd) with .c at Here+(0,bwd)
+ line up m4sfact/4-bwd from last arc.start
+ line up m4sfact/4-bwd from last arc.end }
+ Head: box rad bwd/2 ht bht wid bwd with .s at Here+(0,bwd/2)
+ Inner: box rad bwd/2 ht bht/2+bwd/2 wid bwd with .n at Head.n
+ move to Inner.s+(0,bwd/2)
+ for i=1 to 4 do {
+ for j=-1 to 1 do {
+ { circle at Here+(3*j*cspace,(abs(j)-3)*cspace) }
+ if j != 0 then {{ circle at Here+(j*3/2*cspace,0) }} }
+ move up 5*cspace } ]',
+ `[setdir_($1,R)
+ define(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
+ {L1: line from rvec_(m4h,-m4h/2) \
+ to rvec_(m4h,m4h/2)}
+ {Circle: circle diameter m4h at rvec_(m4h/2,0)}
+ In1: rvec_(m4h*(2-sqrt(3))/4,m4h/4)
+ In2: Here
+ In3: rvec_(m4h*(2-sqrt(3))/4,-m4h/4)
+ `$3'; resetdir_ ]')')
+
`buzzer(U|D|L|R|degrees, vert size,[C])'
define(`buzzer',`[setdir_($1,R)
ifelse(`$3',,
diff --git a/graphics/circuit_macros/libgen.m4 b/graphics/circuit_macros/libgen.m4
index 29a7e0811e..e03ab1ae27 100644
--- a/graphics/circuit_macros/libgen.m4
+++ b/graphics/circuit_macros/libgen.m4
@@ -2,7 +2,7 @@ divert(-1)
libgen.m4 Base macros for dpic and gpic diagrams
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -110,7 +110,7 @@ ifgpic(` if (rp_len == 0) then { rp_ang=0 } else {')dnl
dnl Insert customizations as desired,
dnl e.g. ifmpost(` ... ') etc
ifdef(`local_init',`
-`# local'_init start
+`# local'_init begin
local_init
`# local'_init end
') `$1' dnl Customizations in arg1
@@ -173,15 +173,15 @@ define(`SIdefaults',
ellipseht = 12
ellipsewid = 18
dashwid = 2
- maxpswid = 8.5*25.4
- maxpsht = 11.5*25.4
+ maxpswid = 8.5*scale
+ maxpsht = 11.5*scale
')
`Conditionally add mpost code for latex command'
define(`latexcommand',`command "ifmpost(verbatimtex) `$1' ifmpost(etex)"')
define(`m4announceprocessor',`dnl Do not change the format of the next line:
-`#' `$1' Version 9.2: ifelse(m4picprocessor,gpic,`Gpic',
+`#' `$1' Version 9.3: ifelse(m4picprocessor,gpic,`Gpic',
m4postprocessor,pstricks,`PSTricks',
m4postprocessor,pgf,`TikZ PGF',
m4postprocessor,mfpic,`Mfpic',
@@ -773,6 +773,15 @@ ifelse(index(`$1',"),0,`substr(`$1',1,eval(len(`$1')-2))',`$1')}dnl
wid s_wd(,`textwid') ht s_ht(,`textht')+s_dp')')
define(`text_ang',90)
+ `r_text(text,degrees)
+ (requires PSTricks, pgf, or svg)'
+define(`r_text',`define(`m4txt',
+`ifelse(index(`$1',"),0,`substr(`$1',1,eval(len(`$1')-2))',`$1')')dnl
+define(`m4rtang',`ifelse(`$2',,90,`$2')')dnl
+ifsvg(`svg_rot(m4rtang,"m4txt")')dnl
+ifpstricks(`"\rput[c]{m4rtang}(0,0){m4txt}"')dnl
+ifpgf(`"\pgftext[rotate=m4rtang]{m4txt}"')')
+
`Like s_box but text is rotated text_ang degrees
(requires PSTricks or pgf)'
define(`rs_box',
@@ -1509,8 +1518,8 @@ define(`sinc',`sin(max(pi_*abs(`$1'),1e-6))/max(pi_*abs(`$1'),1e-6)')
`sinusoid(amplitude, frequency, phase,
tmin,tmax, linetype )
- in the current direction (only with dpic) in [ ]
- brackets; e.g., to draw a dashed sine curve,
+ cosine curve in the current direction (only with dpic)
+ in [ ] brackets; e.g., to draw a dashed sine curve,
amplitude a, of n cycles over length 0 to x:
sinusoid(a,twopi_*n/x,-pi_/2,0,x,dashed) \
with [.Start|.End|.Origin] at position'
diff --git a/graphics/circuit_macros/liblog.m4 b/graphics/circuit_macros/liblog.m4
index 495ab2ad2b..ce261707ca 100644
--- a/graphics/circuit_macros/liblog.m4
+++ b/graphics/circuit_macros/liblog.m4
@@ -1,7 +1,7 @@
divert(-1)
liblog.m4 Logic gates
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -52,6 +52,8 @@ define(`Mux_wid',8) `Multiplexer defaults'
define(`Mux_ht',18)
define(`lg_plen',4) `Logic pin'
+define(`lg_pinsep',`(3*L_unit)') `logic pin separation in logic units'
+define(`lg_chipwd',`(18*L_unit)') `default chip width'
define(`lg_pintxt',
`"ifxfig(`$1',`ifsvg(`svg_small(`$1',75)',`sp_{\scriptsize `$1'}sp_')')"')
`Logic pin text with bar where possible'
@@ -485,17 +487,17 @@ define(`NOT_gate',`ifinstr(`$2',B,
`The comprehensive logic pin:
lg_pin(location, label, Picname, n|e|s|w [L|M|I|O][N][E], pinno, optlen)
- label=text indicating logical pin function;
- Picname=pic label for referring to the pin;
- n|e|s|w=orientation;
+ label=text (indicating logical pin function, usually)
+ Picname=pic label for referring to the pin
+ n|e|s|w=orientation (north, east, south, west)
L=active low out; M=active low in; I=inward arrow; O=outward arrow
- N=negated; E=edge trigger'
+ N=negated (NOT-circle); E=edge trigger'
define(`lg_pin',`ifelse(`$1',,,`move to $1')
- define(`dna_',`substr(`$4',1)')define(`m4lE',)define(`m4lN',)dnl
+ define(`dna_',`substr(`$4',1)')define(`m4lE',)define(`m4lch',0)dnl
define(`m4ld',`ifelse(`$4',,e,`substr(`$4',0,1)')')dnl
define(`m4lph',`ifelse(m4ld,n,0,m4ld,w,-1,m4ld,s,0,1)')dnl
define(`m4lpv',`ifelse(m4ld,n,1,m4ld,w,0,m4ld,s,-1,0)')dnl
- define(`m4lpl',`ifelse(`$6',,`lg_plen',`$6')')dnl
+ define(`m4lpl',`ifelse(`$6',,`lg_plen',(`$6')/L_unit)')dnl
sc_draw(`dna_',E,`define(`m4lE',1)dnl
{ line from rsvec_(lp_xy(0,N_rad)) \
to rsvec_(lp_xy(-N_diam*sqrt(3)/2,0)) then to rsvec_(lp_xy(0,-N_rad)) }')
@@ -504,29 +506,22 @@ define(`lg_pin',`ifelse(`$1',,,`move to $1')
m4ld,s,`above_',`rjust_') at Here dnl
ifxfig(`+(lp_xy(-0.72bp__,0))') dnl
ifelse(m4lE,1,`+svec_(lp_xy(-N_diam*sqrt(3)/2,0))') }')
- sc_draw(`dna_',N,`define(`m4lN',N)
+ sc_draw(`dna_',N,`define(`m4lch',N_diam*L_unit)
{ NOT_circle \
at rsvec_(lp_xy(N_rad,0)) }')
- sc_draw(`dna_',L,`define(`m4lN',M)
+ sc_draw(`dna_',L,`define(`m4lch',N_rad*2.5*L_unit)
{line from rsvec_(lp_xy(0,
- ifelse(m4ld,w,-,m4ld,s,-)N_rad*3/2)) to rsvec_(lp_xy(N_rad*2.5,0)) }')
- sc_draw(`dna_',M,`define(`m4lN',M)
+ ifelse(m4ld,w,-,m4ld,s,-)N_rad*3/2)) to rsvec_(lp_xy(N_rad*2.5,0)) \
+ then to Here }')
+ sc_draw(`dna_',M,`define(`m4lch',N_rad*2.5*L_unit)
{ line to rsvec_(lp_xy(N_rad*2.5,
- ifelse(m4ld,w,-,m4ld,s,-)N_rad*3/2)) then to rsvec_(lp_xy(N_rad*2.5,0))}')
- {ifelse(`$3',,,`$3':) line to rsvec_(lp_xy(m4lpl,0))dnl
- ifelse(m4lN,N,`chop N_diam*L_unit chop 0')dnl
+ ifelse(m4ld,w,-,m4ld,s,-)N_rad*3/2)) then to rsvec_(lp_xy(N_rad*2.5,0)) \
+ then to Here}')
+ {ifelse(`$3',,,`$3':) line to rsvec_(lp_xy(m4lpl,0)) chop m4lch chop 0 dnl
ifinstr(dna_,I,` <- wid linethick*5.6bp__ ht linethick*7.2bp__ ')dnl
ifinstr(dna_,O,` -> wid linethick*5.6bp__ ht linethick*7.2bp__ ')
- ifelse(`$5',,,`lg_pintxt(`$5') dnl
- at rsvec_(lp_xy(vscal_(1/(L_unit),1pt__,0))) dnl
- ifgpic(
- `ifelse(m4ld,n,`+svec_(lp_xy(4pt__/(L_unit),0)) rjust_ below_',
- m4ld,w,`+svec_(lp_xy(vscal_(1/(L_unit),1pt__,3pt__))) \
- ljust_ above_',
- m4ld,s,`+svec_(lp_xy(2pt__/(L_unit),0)) rjust_ above_',
- `+svec_(lp_xy(0,-3pt__/(L_unit))) rjust_ above_') ',
- `ifelse(m4ld,n,`rjust_ below_', m4ld,w,`ljust_ above_',
- `rjust_ above_')')') dnl
+ ifelse(`$5',,,`move to last line.c; lg_pintxt(`$5') dnl
+ ifelse(m4ld,n,`rjust_', m4ld,w,`above_',m4ld,e,`above_',`rjust_')')
} ')
define(`lp_xy',`vrot_(`$1',`$2',m4lph,m4lpv)')
@@ -746,16 +741,6 @@ define(`m4ifboolvar_',
define(`m4stackdump',`ifdef(`$1',`ifelse($1,,`popdef(`$1')',
`$2`'popdef(`$1')m4stackdump(`$1',`$2')')')')dnl
-# ****Obsolete `Define positions In1, In2, ... equal to
-# positions stacked in `arg2', prefixed by arg1.
-# If arg3 is not null then In is replaced by arg3.
-# eg H:And(x,y); stackpromote_(H,`AutoInNames',In_)'
-#define(`stackpromote_',`define(`m4nct',0)
-#`#' Promoting stack `$2':
-#stackexec_(`$2',`m4R_',`ifelse($2,,,`define(`m4nct',incr(m4nct))
-#ifelse(`$3',,In,$3)`'m4nct: ifelse(`$1',,,$1.)$2')')
-#stackexec_(`m4R_',`$2')')
-
define(`DrawIn',`
# Draw and label input $1
PrevInput: PrevInput-ifdef(`m4LI',`(0,autoinputsep)',
diff --git a/graphics/circuit_macros/mfpic.m4 b/graphics/circuit_macros/mfpic.m4
index 2b38512d43..6e68706e24 100644
--- a/graphics/circuit_macros/mfpic.m4
+++ b/graphics/circuit_macros/mfpic.m4
@@ -1,7 +1,7 @@
divert(-1)
mfpic.m4 Initialization for mfpic.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/mpost.m4 b/graphics/circuit_macros/mpost.m4
index b2ce311049..0698a3d8d9 100644
--- a/graphics/circuit_macros/mpost.m4
+++ b/graphics/circuit_macros/mpost.m4
@@ -1,7 +1,7 @@
divert(-1)
mpost.m4 Initialization for metapost.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pgf.m4 b/graphics/circuit_macros/pgf.m4
index 9117f8f537..5b292ccaea 100644
--- a/graphics/circuit_macros/pgf.m4
+++ b/graphics/circuit_macros/pgf.m4
@@ -1,7 +1,7 @@
divert(-1)
pgf.m4 Initialization for Tikz-pgf.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/postscript.m4 b/graphics/circuit_macros/postscript.m4
index a59d78e177..21072c1d17 100644
--- a/graphics/circuit_macros/postscript.m4
+++ b/graphics/circuit_macros/postscript.m4
@@ -1,7 +1,7 @@
divert(-1)
postscript.m4 Initialization for Postscript output.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/psfrag.m4 b/graphics/circuit_macros/psfrag.m4
index 999723386d..7bf1df5656 100644
--- a/graphics/circuit_macros/psfrag.m4
+++ b/graphics/circuit_macros/psfrag.m4
@@ -2,7 +2,7 @@ divert(-1)
psfrag.m4 Initialization for dpic -f processing:
Postscript with psfrag strings
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pstricks.m4 b/graphics/circuit_macros/pstricks.m4
index 8d20667140..efe7cafe16 100644
--- a/graphics/circuit_macros/pstricks.m4
+++ b/graphics/circuit_macros/pstricks.m4
@@ -1,7 +1,7 @@
divert(-1)
pstricks.m4 Initialization for PSTricks.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/svg.m4 b/graphics/circuit_macros/svg.m4
index e270060393..84f7e21e06 100644
--- a/graphics/circuit_macros/svg.m4
+++ b/graphics/circuit_macros/svg.m4
@@ -1,7 +1,7 @@
divert(-1)
svg.m4 Initialization for SVG output.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -41,24 +41,58 @@ define(`svg_gt',`$1')
',
`define(`svg_tspan',`patsubst(<tspan `$1'
>`$2'</tspan>,",\\")')
-define(`svg_font',`
+divert(-1)
+ `svg_font(fontname,nominal ht:dptextratio,textoffset)
+ or svg_font(fontname,nominal ht:dptextratio,textoffset,
+ text)
+ Note: nominal ht = text height in drawing units,
+ e.g. 12bp__ for 12pt text
+   actual height = nominal ht * dptextratio '
+define(`svg_font',`ifinstr(`$2',:,
+ `stacksplit_(`m4svgf',`$2',:)
+ ifelse(m4svgf,,,dptextratio = m4svgf; )popdef(`m4svgf')dnl
+ ifelse(m4svgf,,,`textht=(m4svgf)*dptextratio; ')undefine(`m4svgf')',
+ `dptextratio=svgfontratio(`$1'); dnl
+ ifelse(`$2',,,textht=(`$2')*dptextratio; )')dnl
+ ifelse(`$3',,,`textoffset=`$3'; ')
command "<g patsubst(ifelse(`$1',,,
index(`$1',font),0,`$1',
index(`$1',style),0,`$1',
style="font-family:`$1'")
,",\\")>"
- ifelse(`$2',,,`textht=(`$2')*dptextratio; ')dnl
- ifelse(`$3',,,`textoffset=`$3'; ')dnl
`$4'
ifelse(`$4',,,`command "</g>"')')
+
`e.g. svg_font(Times)
+ svg_font(Times,12bp__:0.66)
svg_font(Times,11bp__,1bp__,"text" at A)
svg_font(font-family="Times")
svg_font(font-family="Times" font-style="italic")
svg_font(style="font-family:Times; font-style:italic")
+
Some fairly safe choices: Arial, Helvetica, Times, Courier, Verdana, Georgia,
Palatino, Garamond, Bookman, Cursive, Trebuchet MS, Arial Black, Impact.
'
+ `svgfontratio(fontname)
+ reasonable dptextratio values for common fonts'
+define(`svgfontratio',`ifinstr(
+`$1',Times,0.66,
+`$1',sans-serif,0.71,
+`$1',Arial,0.71,
+`$1',Helvetica,0.71,
+`$1',Courier,0.57,
+`$1',Cursive,0.7,
+`$1',Verdana,0.72,
+`$1',Georgia,0.70,
+`$1',Palatino,0.66,
+`$1',Garamond,0.62,
+`$1',Bookman,0.66,
+`$1',Comic Sans MS,0.75,
+`$1',Trebuchet MS,0.71,
+`$1',Arial Black,0.71,
+`$1',Impact,0.79,
+dptextratio)')
+
`see http://www.ascii.cl/htmlcodes.htm
and http://webdesign.about.com/od/localization/l/blhtmlcodes-gr.htm'
define(`svg_symbol',`changecom(,)`$1'changecom(`#',)')
@@ -136,6 +170,7 @@ define(`svg_ensp',`svg_symbol(&`#'8194;)')
define(`svg_emsp',`svg_symbol(&`#'8195;)')
define(`svg_thinsp',`svg_symbol(&`#'8201;)')
define(`svg_backsl',`svg_symbol(&`#'92;)')
+define(`svg_pound',`svg_symbol(&`#'35;)')
')
define(`svgcolor',`sprintf("rgb(%g,%g,%g)",\
@@ -156,35 +191,49 @@ define(`svgLinkString',`"<a xlink:href=\"`$1'\"dnl
`$2' dnl
</a>"')
-# svgrot_init(filename)
+# svg_rot_init(filename)
# filename is the basename of the output
# produced by dpic -v filename.pic > filename.svg
-define(`svgrot_init',`NeedDpicTools
+define(`svg_rot_init',`
+`# svg_rot'_init begin
+ NeedDpicTools
define(`_file_',ifelse(`$1',,patsubst(__file__,.m4),`$1'))
syscmd(touch _file_.svg _file_.cor; cp _file_.svg _file_.tmp)
- sh "grep \"^ x=.*\/text>\" _file_.tmp | sed -e dnl
- \"s/x=\\"\([0-9.]*\)\\" y=\\"\([0-9.]*\)\\".*/\1 \2/\" > _file_.cor"
- svgrot_k = 0; svg_rotz = 0
- define svg_rotcoords { svgrot_k += 1
- if "$`'1" != "" then { x[svgrot_k] = $`'1; y[svgrot_k] = $`'2; svg_rotz = 1 }
- }
+# Extract from the .svg file the x= y= coordinates
+# that appear after each transform="rotate(.." line
+ retcode = ( sh "awk -e \"/transform=\\"rotate/ { r=1 }; dnl
+ /x=\\".*y=\\"/ { if(r==1){ print; r=0 } }\" _file_.tmp dnl
+ | sed -e \"s/x=\\"\([0-9.]*\)\\" y=\\"\([0-9.]*\)\\".*/\1 \2/\" dnl
+ > _file_.cor" )
+ if retcode != 0 then { print "
+ Awk failure
+ Awk and sed are required by svg_rot to rotate svg text.
+ " }
+ svgrot_k = 0
+ define svg_rotcoords { if "$`'1" != "" then { svgrot_k += 1
+ svg_rx[svgrot_k] = $`'1; svg_ry[svgrot_k] = $`'2 }
+ }
copythru(svg_rotcoords, _file_.cor)
sh "rm -f _file_.tmp _file_.cor"
- svg_rotk = 0
+ svgrot_i = 0
ifdef(`svg_rot_',,`
-# `svg_rot(deg clockwise rotation,text or object)
-# Requires svgrot_init(filename)
-# Rotation of svg text is a can of worms because
-# the final coordinates of the text are required;
-# this forward reference has to be extracted from
-# the output file and the source processed twice.'
- define svg_rot { if svg_rotz then { svg_rotk += 1; command \
- sprintf("<g transform=\"rotate(%g %g %g)\">",$`'1,x[svg_rotk],y[svg_rotk]) }\
- else { command sprintf("<g transform=\"rotate(%g)\">",$`'1) }
+# `svg_rot(degrees,"text" [at position])
+# Rotate text degrees ccw
+# Requires svg_rot_init(filename)
+# which uses both awk and sed.
+# The source must be processed twice by m4 and dpic.'
+ define svg_rot { if retcode != 0 then {$`'2} else {
+ if "$`'1" != "" then { svg_rang = -($`'1) } else { svg_rang = -90 }
+ if svgrot_k != 0 then { svgrot_i +=1
+ command sprintf("<g transform=\"rotate(%g %g %g)\">",svg_rang,\
+ svg_rx[svgrot_i],svg_ry[svgrot_i]) }\
+ else { command sprintf("<g transform=\"rotate(%g)\">",svg_rang) }
$`'2
- command "</g>" }
- define(`svg_rot_') ')
+ command "</g>" } }
+ define(`svg_rot_')
+ ')
+`# svg_rot'_init end
')
# ---------------------------------------------------------------------------#
diff --git a/graphics/circuit_macros/xfig.m4 b/graphics/circuit_macros/xfig.m4
index 5cc6df1728..f092b44df5 100644
--- a/graphics/circuit_macros/xfig.m4
+++ b/graphics/circuit_macros/xfig.m4
@@ -1,7 +1,7 @@
divert(-1)
xfig.m4 Initialization for xfig.
-* Circuit_macros Version 9.2, copyright (c) 2020 J. D. Aplevich under *
+* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/pstricks/contrib/pst-ovl/Changes b/graphics/pstricks/contrib/pst-ovl/Changes
index b1e3740b5b..59686608b8 100644
--- a/graphics/pstricks/contrib/pst-ovl/Changes
+++ b/graphics/pstricks/contrib/pst-ovl/Changes
@@ -1,5 +1,6 @@
pst-ovl.tex ----------- (hv)
+ v 0.07b 2020-05-01 - typos in the documentation
v 0.07a 2017-10-09 - load pstricks.sty first
v 0.07 2016-05-03 - moved code from seminar
- use names as \ps...
diff --git a/graphics/pstricks/contrib/pst-ovl/README b/graphics/pstricks/contrib/pst-ovl/README
index 04a3dd63f1..a97f1c552a 100644
--- a/graphics/pstricks/contrib/pst-ovl/README
+++ b/graphics/pstricks/contrib/pst-ovl/README
@@ -1,12 +1,10 @@
Save the files pst-ovl.sty|.tex| in a directory, which is part of your
local TeX ovl. Then do not forget to run texhash to update this ovl
if these packages are new to your TeX distribution.
-For more information see the documentation of your LaTeX distribution
-on installing packages into your LaTeX distribution or the
-TeX Frequently Asked Questions:
-(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
pst-ovl needs pstricks, which should be part of your
local TeX installation, otherwise get it from a CTAN server, f.ex.
http://mirror.ctan.org/graphics/pstricks/
+
+hvoss@tug.org \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib b/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib
index 96838e3a2d..0ea26b0a83 100644
--- a/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib
+++ b/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.bib
@@ -66,15 +66,6 @@
}
-@Book{voss:chaos,
- author = {Herbert Vo{\ss}},
- title = {Chaos und {F}raktale selbst programmieren: von {M}andelbrotmengen
- {\"u}ber {F}arbmanipulationen zur perfekten Darstellung},
- publisher = {{Franzis Verlag}},
- year = {1994},
- address = {Poing}
-}
-
@Article{girou:01:,
author = {Denis Girou},
title = {Pr\'esentation de {PST}ricks},
@@ -104,33 +95,13 @@
year = 1989,
}
-@Manual{pstricks,
+@online{pstricks,
Title = {PSTricks - {\PS} macros for generic {\TeX}},
Author = {{Timothy van} Zandt},
- Organization = {},
Address = {\url{http://www.tug.org/application/PSTricks}},
- Note = {},
year = 1993
}
-@Manual{pst-plot,
- Title = {\texttt{pst-plot}: Plotting two dimensional functions and data},
- Author = {{Timothy van} Zandt},
- Organization = {},
- Address = {\url{CTAN:graphics/pstricks/generic/pst-plot.tex}},
- Note = {},
- year = 1999
-}
-
-@Manual{multido,
- Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
- Author = {{Timothy van} Zandt},
- Organization = {},
- Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}},
- Note = {},
- year = 1997
-}
-
@Book{PSTricks2,
author = {Herbert Vo\ss},
title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
@@ -156,7 +127,7 @@
address = {Cambridge}
}
-@Manual{wolfram,
+@online{wolfram,
author = {Eric Weisstein},
title = {Wolfram MathWorld},
publisher = {{Wolfram}},
diff --git a/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdf b/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdf
index 152d118906..aea0eb93cf 100644
--- a/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdf
+++ b/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex b/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex
index 98f30a1037..070a0da0e4 100644
--- a/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex
+++ b/graphics/pstricks/contrib/pst-ovl/doc/pst-ovl-doc.tex
@@ -1,22 +1,21 @@
-%% $Id: pst-func-doc.tex 599 2011-11-03 19:38:28Z herbert $
-\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,
+%% $Id: pst-ovl-doc.tex 1169 2020-05-01 14:27:32Z herbert $
+\documentclass[fontsize=11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,
smallheadings, headexclude,footexclude,oneside]{pst-doc}
-\usepackage[utf8]{inputenc}
\usepackage{pst-ovl}
\let\pstOVLFV\fileversion
\renewcommand\bgImage{}
+\usepackage{ragged2e}
\addbibresource{\jobname.bib}
-\lstset{language=PSTricks,
- morekeywords={psPrintValue},basicstyle=\footnotesize\ttfamily}
+\lstset{language=PSTricks,basicstyle=\footnotesize\ttfamily}
%
\begin{document}
\title{\texttt{pst-ovl}}
\subtitle{Helper functions for overlays; v.\pstOVLFV}
-\author{Herbert Vo\ss}
+\author{Herbert Voß}
\docauthor{}
\date{\today}
\maketitle
@@ -36,7 +35,7 @@ Overlays are made by creating an "`\Lcs{hbox}"' and then outputting the box seve
times, printing different material in the box each time. The box is created by
the commands
\begin{lstlisting}
- \Lcs{psoverlaybox} < stuff >\Lcs{endpsoverlaybox}
+ \psoverlaybox < stuff >\endpsoverlaybox
\end{lstlisting}
\LaTeX{} users can instead write:
\begin{lstlisting}
@@ -88,18 +87,8 @@ It is possible to define macros which hold the numbers:
\psputoverlaybox{\main} \hspace{.5in} \psputoverlaybox{\one}
\end{LTXexample}
-
-
-\clearpage
-\section{List of all optional arguments for \texttt{pst-ovl}}
-
-\xkvview{family=pst-ovl,columns={key,type,default}}
-
-
-
-
\bgroup
-\raggedright
+\RaggedRight
\nocite{*}
\printbibliography
\egroup
diff --git a/graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro b/graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro
index 188299ff6a..f26726d91e 100644
--- a/graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro
+++ b/graphics/pstricks/contrib/pst-ovl/dvips/pst-ovl.pro
@@ -1,4 +1,4 @@
-% $Id: pst-ovl.pro 859 2013-12-21 16:51:58Z herbert $
+% $Id: pst-ovl.pro 1169 2020-05-01 14:27:32Z herbert $
%
%% PostScript prologue for pst-ovl.tex.
%% Version 0.04, 2014/05/12
diff --git a/graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty b/graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty
index 5eb1d9adcb..fd3638ab6d 100644
--- a/graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty
+++ b/graphics/pstricks/contrib/pst-ovl/latex/pst-ovl.sty
@@ -1,13 +1,13 @@
-%% $Id: pst-ovl.sty 859 2013-12-21 16:51:58Z herbert $
+%% $Id: pst-ovl.sty 1169 2020-05-01 14:27:32Z herbert $
%%
-%% pst-ovl.sty Copyright (C) 2017 Herbert Voss <hvoss@tug.org>
+%% pst-ovl.sty Copyright (C) 2017,2020 Herbert Voss <hvoss@tug.org>
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pst-ovl}
- [2017/10/09 v0.01 LaTeX wrapper for `pst-ovl' (HV)]
+ [2020/05/01 v0.02 LaTeX wrapper for `pst-ovl' (HV)]
\ProvidesFile{pst-ovl.tex}
- [2017/10/09 v0.07a overlay macros `pst-ovl' (HV)]
+ [2020/05/01 v0.07b overlay macros `pst-ovl' (HV)]
\RequirePackage{pstricks}
\input{pst-ovl}
%\@addtofilelist{pst-ovl.tex}
diff --git a/graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex b/graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex
index e0d7910586..11909c8cf4 100644
--- a/graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex
+++ b/graphics/pstricks/contrib/pst-ovl/tex/pst-ovl.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-ovl.tex 859 2013-12-21 16:51:58Z herbert $
+%% $Id: pst-ovl.tex 1169 2020-05-01 14:27:32Z herbert $
%%
%%
%% This is file `pst-ovl.tex',
@@ -7,7 +7,7 @@
%%
%% Package `pst-ovl.tex'
%%
-%% 2015 -- Timothy Van Zandt
+%% 2015,2020 -- Timothy Van Zandt
%% Herbert Voss <hvoss@tug.org>
%%
%% This program can be redistributed and/or modified under the terms
@@ -24,8 +24,8 @@
%% Requires main PSTricks
\ifx\PSTricksLoaded\endinput\else\input pstricks \fi
%
-\def\fileversion{0.07a}
-\def\filedate{2017/10/09}
+\def\fileversion{0.07b}
+\def\filedate{2020/05/01}
\message{`pst-ovl' v\fileversion, \filedate\space (tvz,hv)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
diff --git a/language/chinese/ctex/README.md b/language/chinese/ctex/README.md
index 0fb3ee02f4..ae64dbcadd 100644
--- a/language/chinese/ctex/README.md
+++ b/language/chinese/ctex/README.md
@@ -15,6 +15,10 @@ Authors and Contributors
* Chen Zhichu <zhichu.chen@gmail.com>
* Li Qing <sobenlee@gmail.com>
* Liam Huang <liamhuang0205@gmail.com>
+* Zeng Xiangdong <xdzeng96@gmail.com>
+* Li Zeping <zepinglee@gmail.com>
+* Zhou Yukai <muzimuzhi@gmail.com>
+* Zhang Ruixi <ruixizhang42@gmail.com>
Contributing
------------
@@ -26,7 +30,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2003--2019
+ Copyright (C) 2003--2020
CTEX.ORG and any individual authors listed elsewhere in this file.
----------------------------------------------------------------------
@@ -40,11 +44,13 @@ 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, Qing Lee and Liam Huang.
-
- This package consists of the file ctex.dtx,
+ This package consists of the files ctex.dtx,
+ ctxdoc.cls,
+ ctxdocstrip.tex,
+ zhconv.lua,
+ zhconv-make.lua,
and the derived files ctex.pdf,
ctex.ins,
ctex.sty,
@@ -54,16 +60,15 @@ Copyright and Licence
ctexbook.cls,
ctexrep.cls,
ctexbeamer.cls,
- ctxdoc.cls,
ctexcap.sty,
ctexhook.sty,
ctexpatch.sty,
ctex-c5size.clo,
ctex-cs4size.clo,
- ctex-article.def,
- ctex-book.def,
- ctex-report.def,
- ctex-beamer.def,
+ ctex-heading-article.def,
+ ctex-heading-book.def,
+ ctex-heading-report.def,
+ ctex-heading-beamer.def,
ctex-scheme-plain.def,
ctex-scheme-plain-article.def,
ctex-scheme-plain-book.def,
@@ -78,6 +83,7 @@ Copyright and Licence
ctex-name-utf8.cfg,
ctex.cfg,
ctexopts.cfg,
+ ctexbackend.cfg,
ctex-engine-pdftex.def,
ctex-engine-xetex.def,
ctex-engine-luatex.def,
@@ -95,26 +101,25 @@ Copyright and Licence
jt2zhrm.fd,
jt2zhsf.fd,
jt2zhtt.fd,
- ctex-fontset-windows.def,
- ctex-fontset-windowsnew.def,
- ctex-fontset-windowsold.def,
ctex-fontset-adobe.def,
ctex-fontset-fandol.def,
+ ctex-fontset-founder.def,
ctex-fontset-mac.def,
ctex-fontset-macnew.def,
ctex-fontset-macold.def,
- ctex-fontset-founder.def,
ctex-fontset-ubuntu.def,
+ ctex-fontset-windows.def,
ctexspa.def,
ctexpunct.spa,
ctexmakespa.tex,
ctexspamacro.tex,
- ctxdocstrip.tex,
zhadobefonts.tex,
zhfandolfonts.tex,
zhfounderfonts.tex,
+ zhmacfonts.tex,
zhubuntufonts.tex,
zhwindowsfonts.tex,
+ zhconv-index.lua,
translator-theorem-dictionary-ChineseGBK.dict,
translator-theorem-dictionary-ChineseUTF8.dict, and
README.md (this file).
diff --git a/language/chinese/ctex/ctex.dtx b/language/chinese/ctex/ctex.dtx
index d4a80e4344..bd92c7e0a0 100644
--- a/language/chinese/ctex/ctex.dtx
+++ b/language/chinese/ctex/ctex.dtx
@@ -2,7 +2,7 @@
% !TeX program = XeLaTeX
% !TeX encoding = UTF-8
%
-% Copyright (C) 2003--2019
+% Copyright (C) 2003--2020
% CTEX.ORG and any individual authors listed elsewhere in this file.
% --------------------------------------------------------------------------
%
@@ -16,9 +16,7 @@
% 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 Maintainers of this work are Leo Liu, Qing Lee and Liam Huang.
+% This work has the LPPL maintenance status "maintained".
%
% --------------------------------------------------------------------------
%
@@ -43,6 +41,10 @@ Authors and Contributors
* Chen Zhichu <zhichu.chen@gmail.com>
* Li Qing <sobenlee@gmail.com>
* Liam Huang <liamhuang0205@gmail.com>
+* Zeng Xiangdong <xdzeng96@gmail.com>
+* Li Zeping <zepinglee@gmail.com>
+* Zhou Yukai <muzimuzhi@gmail.com>
+* Zhang Ruixi <ruixizhang42@gmail.com>
Contributing
------------
@@ -54,7 +56,7 @@ Issues and pull requests are welcome.
Copyright and Licence
---------------------
- Copyright (C) 2003--2019
+ Copyright (C) 2003--2020
CTEX.ORG and any individual authors listed elsewhere in this file.
----------------------------------------------------------------------
@@ -68,11 +70,13 @@ 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'.
-
- The Current Maintainers of this work are Leo Liu, Qing Lee and Liam Huang.
+ This work has the LPPL maintenance status "maintained".
- This package consists of the file ctex.dtx,
+ This package consists of the files ctex.dtx,
+ ctxdoc.cls,
+ ctxdocstrip.tex,
+ zhconv.lua,
+ zhconv-make.lua,
and the derived files ctex.pdf,
ctex.ins,
ctex.sty,
@@ -82,16 +86,15 @@ Copyright and Licence
ctexbook.cls,
ctexrep.cls,
ctexbeamer.cls,
- ctxdoc.cls,
ctexcap.sty,
ctexhook.sty,
ctexpatch.sty,
ctex-c5size.clo,
ctex-cs4size.clo,
- ctex-article.def,
- ctex-book.def,
- ctex-report.def,
- ctex-beamer.def,
+ ctex-heading-article.def,
+ ctex-heading-book.def,
+ ctex-heading-report.def,
+ ctex-heading-beamer.def,
ctex-scheme-plain.def,
ctex-scheme-plain-article.def,
ctex-scheme-plain-book.def,
@@ -106,6 +109,7 @@ Copyright and Licence
ctex-name-utf8.cfg,
ctex.cfg,
ctexopts.cfg,
+ ctexbackend.cfg,
ctex-engine-pdftex.def,
ctex-engine-xetex.def,
ctex-engine-luatex.def,
@@ -123,26 +127,25 @@ Copyright and Licence
jt2zhrm.fd,
jt2zhsf.fd,
jt2zhtt.fd,
- ctex-fontset-windows.def,
- ctex-fontset-windowsnew.def,
- ctex-fontset-windowsold.def,
ctex-fontset-adobe.def,
ctex-fontset-fandol.def,
+ ctex-fontset-founder.def,
ctex-fontset-mac.def,
ctex-fontset-macnew.def,
ctex-fontset-macold.def,
- ctex-fontset-founder.def,
ctex-fontset-ubuntu.def,
+ ctex-fontset-windows.def,
ctexspa.def,
ctexpunct.spa,
ctexmakespa.tex,
ctexspamacro.tex,
- ctxdocstrip.tex,
zhadobefonts.tex,
zhfandolfonts.tex,
zhfounderfonts.tex,
+ zhmacfonts.tex,
zhubuntufonts.tex,
zhwindowsfonts.tex,
+ zhconv-index.lua,
translator-theorem-dictionary-ChineseGBK.dict,
translator-theorem-dictionary-ChineseUTF8.dict, and
README.md (this file).
@@ -160,9 +163,9 @@ Copyright and Licence
\preamble
- Copyright (C) 2003--2019
+ Copyright (C) 2003--2020
CTEX.ORG and any individual authors listed in the documentation.
-------------------------------------------------------------------------------
+---------------------------------------------------------------------
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -174,16 +177,18 @@ 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'.
-
- The Current Maintainers of this work are Leo Liu, Qing Lee and Liam Huang.
+ This work has the LPPL maintenance status "maintained".
-------------------------------------------------------------------------------
+---------------------------------------------------------------------
\endpreamble
\postamble
- This package consists of the file ctex.dtx,
+ This package consists of the files ctex.dtx,
+ ctxdoc.cls,
+ ctxdocstrip.tex,
+ zhconv.lua,
+ zhconv-make.lua,
and the derived files ctex.pdf,
ctex.ins,
ctex.sty,
@@ -193,16 +198,15 @@ Copyright and Licence
ctexbook.cls,
ctexrep.cls,
ctexbeamer.cls,
- ctxdoc.cls,
ctexcap.sty,
ctexhook.sty,
ctexpatch.sty,
ctex-c5size.clo,
ctex-cs4size.clo,
- ctex-article.def,
- ctex-book.def,
- ctex-report.def,
- ctex-beamer.def,
+ ctex-heading-article.def,
+ ctex-heading-book.def,
+ ctex-heading-report.def,
+ ctex-heading-beamer.def,
ctex-scheme-plain.def,
ctex-scheme-plain-article.def,
ctex-scheme-plain-book.def,
@@ -217,6 +221,7 @@ Copyright and Licence
ctex-name-utf8.cfg,
ctex.cfg,
ctexopts.cfg,
+ ctexbackend.cfg,
ctex-engine-pdftex.def,
ctex-engine-xetex.def,
ctex-engine-luatex.def,
@@ -234,26 +239,25 @@ Copyright and Licence
jt2zhrm.fd,
jt2zhsf.fd,
jt2zhtt.fd,
- ctex-fontset-windows.def,
- ctex-fontset-windowsnew.def,
- ctex-fontset-windowsold.def,
ctex-fontset-adobe.def,
ctex-fontset-fandol.def,
+ ctex-fontset-founder.def,
ctex-fontset-mac.def,
ctex-fontset-macnew.def,
ctex-fontset-macold.def,
- ctex-fontset-founder.def,
ctex-fontset-ubuntu.def,
+ ctex-fontset-windows.def,
ctexspa.def,
ctexpunct.spa,
ctexmakespa.tex,
ctexspamacro.tex,
- ctxdocstrip.tex,
zhadobefonts.tex,
zhfandolfonts.tex,
zhfounderfonts.tex,
+ zhmacfonts.tex,
zhubuntufonts.tex,
zhwindowsfonts.tex,
+ zhconv-index.lua,
translator-theorem-dictionary-ChineseGBK.dict,
translator-theorem-dictionary-ChineseUTF8.dict, and
README.md.
@@ -270,16 +274,15 @@ Copyright and Licence
\file{ctexrep.cls} {\from{\jobname.dtx}{class,report}}
\file{ctexbeamer.cls} {\from{\jobname.dtx}{class,beamer}}
\usepostamble\emptypostamble
- \file{ctxdoc.cls} {\from{\jobname.dtx}{ctxdoc}}
\file{ctexcap.sty} {\from{\jobname.dtx}{ctexcap}}
\file{ctexhook.sty} {\from{\jobname.dtx}{ctexhook}}
\file{ctexpatch.sty} {\from{\jobname.dtx}{ctexpatch}}
\file{ctex-c5size.clo} {\from{\jobname.dtx}{c5size}}
\file{ctex-cs4size.clo} {\from{\jobname.dtx}{cs4size}}
- \file{ctex-article.def} {\from{\jobname.dtx}{heading,article}}
- \file{ctex-book.def} {\from{\jobname.dtx}{heading,book}}
- \file{ctex-report.def} {\from{\jobname.dtx}{heading,report}}
- \file{ctex-beamer.def} {\from{\jobname.dtx}{heading,beamer}}
+ \file{ctex-heading-article.def} {\from{\jobname.dtx}{heading,article}}
+ \file{ctex-heading-book.def} {\from{\jobname.dtx}{heading,book}}
+ \file{ctex-heading-report.def} {\from{\jobname.dtx}{heading,report}}
+ \file{ctex-heading-beamer.def} {\from{\jobname.dtx}{heading,beamer}}
\file{ctex-scheme-plain.def} {\from{\jobname.dtx}{scheme,generic,plain}}
\file{ctex-scheme-plain-article.def} {\from{\jobname.dtx}{scheme,article,plain}}
\file{ctex-scheme-plain-book.def} {\from{\jobname.dtx}{scheme,book,plain}}
@@ -290,10 +293,11 @@ Copyright and Licence
\file{ctex-scheme-chinese-book.def} {\from{\jobname.dtx}{scheme,book,chinese}}
\file{ctex-scheme-chinese-report.def} {\from{\jobname.dtx}{scheme,report,chinese}}
\file{ctex-scheme-chinese-beamer.def} {\from{\jobname.dtx}{scheme,beamer,chinese}}
- \file{ctex-name-gbk.cfg} {\from{\jobname.dtx}{name,GBK}}
+ \ctxfile{GBK}{ctex-name-gbk.cfg} {\from{\jobname.dtx}{name,GBK}}
\file{ctex-name-utf8.cfg} {\from{\jobname.dtx}{name,UTF8}}
\file{ctex.cfg} {\from{\jobname.dtx}{config}}
\file{ctexopts.cfg} {\from{\jobname.dtx}{ctexopts}}
+ \file{ctexbackend.cfg} {\from{\jobname.dtx}{backend}}
\file{ctex-engine-pdftex.def} {\from{\jobname.dtx}{pdftex}}
\file{ctex-engine-xetex.def} {\from{\jobname.dtx}{xetex}}
\file{ctex-engine-luatex.def} {\from{\jobname.dtx}{luatex}}
@@ -311,34 +315,29 @@ Copyright and Licence
\file{jt2zhrm.fd} {\from{\jobname.dtx}{fd,rm,jt2}}
\file{jt2zhsf.fd} {\from{\jobname.dtx}{fd,sf,jt2}}
\file{jt2zhtt.fd} {\from{\jobname.dtx}{fd,tt,jt2}}
- \file{ctex-fontset-windows.def} {\from{\jobname.dtx}{fontset,windows}}
- \file{ctex-fontset-windowsnew.def} {\from{\jobname.dtx}{fontset,windowsnew}}
- \file{ctex-fontset-windowsold.def} {\from{\jobname.dtx}{fontset,windowsold}}
\file{ctex-fontset-adobe.def} {\from{\jobname.dtx}{fontset,adobe}}
\file{ctex-fontset-fandol.def} {\from{\jobname.dtx}{fontset,fandol}}
+ \file{ctex-fontset-founder.def} {\from{\jobname.dtx}{fontset,founder}}
\file{ctex-fontset-mac.def} {\from{\jobname.dtx}{fontset,mac}}
- \file{ctex-fontset-macold.def} {\from{\jobname.dtx}{fontset,macold}}
\file{ctex-fontset-macnew.def} {\from{\jobname.dtx}{fontset,macnew}}
- \file{ctex-fontset-founder.def} {\from{\jobname.dtx}{fontset,founder}}
+ \file{ctex-fontset-macold.def} {\from{\jobname.dtx}{fontset,macold}}
\file{ctex-fontset-ubuntu.def} {\from{\jobname.dtx}{fontset,ubuntu}}
- \file{translator-theorem-dictionary-ChineseGBK.dict}
+ \file{ctex-fontset-windows.def} {\from{\jobname.dtx}{fontset,windows}}
+ \ctxfile{GBK}{translator-theorem-dictionary-ChineseGBK.dict}
{\from{\jobname.dtx}{dict,theorem,GBK}}
\file{translator-theorem-dictionary-ChineseUTF8.dict}
{\from{\jobname.dtx}{dict,theorem,UTF8}}
- \file{ctexspa.def}
- {
- \from{\jobname.dtx} {ctexspa}
- \from{ctexpunct.spa} {}
- }
+ \file{ctexspa.def} {\from{\jobname.dtx}{ctexspa}
+ \from{ctexpunct.spa}{}}
\usedir{tex/generic/ctex}
\file{ctexmakespa.tex} {\from{\jobname.dtx}{spa,make}}
\file{ctexspamacro.tex} {\from{\jobname.dtx}{spa,macro}}
\file{zhadobefonts.tex} {\from{\jobname.dtx}{zhmap,adobe}}
\file{zhfandolfonts.tex} {\from{\jobname.dtx}{zhmap,fandol}}
\file{zhfounderfonts.tex} {\from{\jobname.dtx}{zhmap,founder}}
+ \file{zhmacfonts.tex} {\from{\jobname.dtx}{zhmap,mac}}
\file{zhubuntufonts.tex} {\from{\jobname.dtx}{zhmap,ubuntu}}
\file{zhwindowsfonts.tex} {\from{\jobname.dtx}{zhmap,windows}}
- \file{ctxdocstrip.tex} {\from{\jobname.dtx}{docstrip}}
%</install>
%<*internal>
\usedir{source/latex/ctex}
@@ -366,16 +365,15 @@ Copyright and Licence
\Msg{* ctexbook.cls *}
\Msg{* ctexrep.cls *}
\Msg{* ctexbeamer.cls *}
-\Msg{* ctxdoc.cls *}
\Msg{* ctexcap.sty *}
\Msg{* ctexhook.sty *}
\Msg{* ctexpatch.sty *}
\Msg{* ctex-c5size.clo *}
\Msg{* ctex-cs4size.clo *}
-\Msg{* ctex-article.def *}
-\Msg{* ctex-book.def *}
-\Msg{* ctex-report.def *}
-\Msg{* ctex-beamer.def *}
+\Msg{* ctex-heading-article.def *}
+\Msg{* ctex-heading-book.def *}
+\Msg{* ctex-heading-report.def *}
+\Msg{* ctex-heading-beamer.def *}
\Msg{* ctex-scheme-plain.def *}
\Msg{* ctex-scheme-plain-article.def *}
\Msg{* ctex-scheme-plain-book.def *}
@@ -390,6 +388,7 @@ Copyright and Licence
\Msg{* ctex-name-utf8.cfg *}
\Msg{* ctex.cfg *}
\Msg{* ctexopts.cfg *}
+\Msg{* ctexbackend.cfg *}
\Msg{* ctex-engine-pdftex.def *}
\Msg{* ctex-engine-xetex.def *}
\Msg{* ctex-engine-luatex.def *}
@@ -407,23 +406,21 @@ Copyright and Licence
\Msg{* jt2zhrm.fd *}
\Msg{* jt2zhsf.fd *}
\Msg{* jt2zhtt.fd *}
-\Msg{* ctex-fontset-windows.def *}
-\Msg{* ctex-fontset-windowsnew.def *}
-\Msg{* ctex-fontset-windowsold.def *}
\Msg{* ctex-fontset-adobe.def *}
\Msg{* ctex-fontset-fandol.def *}
+\Msg{* ctex-fontset-founder.def *}
\Msg{* ctex-fontset-mac.def *}
-\Msg{* ctex-fontset-macold.def *}
\Msg{* ctex-fontset-macnew.def *}
-\Msg{* ctex-fontset-founder.def *}
+\Msg{* ctex-fontset-macold.def *}
\Msg{* ctex-fontset-ubuntu.def *}
+\Msg{* ctex-fontset-windows.def *}
\Msg{* ctexspa.def *}
\Msg{* ctexmakespa.tex *}
\Msg{* ctexspamacro.tex *}
-\Msg{* ctxdocstrip.tex *}
\Msg{* zhadobefonts.tex *}
\Msg{* zhfandolfonts.tex *}
\Msg{* zhfounderfonts.tex *}
+\Msg{* zhmacfonts.tex *}
\Msg{* zhubuntufonts.tex *}
\Msg{* zhwindowsfonts.tex *}
\Msg{* translator-theorem-dictionary-ChineseGBK.dict *}
@@ -442,12 +439,11 @@ Copyright and Licence
\fi
%</internal>
%<*!(driver|readme|install|zhmap|spa|docstrip)>
-%<*!(fd|ctexspa|dict)>
-%<class|style|ctexcap|ctexhook|ctexpatch|ctxdoc>\NeedsTeXFormat{LaTeX2e}
-%<class|style|ctexcap|ctexhook|ctexpatch|ctxdoc>\RequirePackage{expl3}
-%<+!driver>\GetIdInfo$Id: ctex.dtx 735dfe2 2019-05-29 21:42:29 +0800 Qing Lee <sobenlee@gmail.com> $
-%<ctxdoc> {ctex documentation (CTEX)}
-%<ctxdoc>\ProvidesExplClass{ctxdoc}
+%<*!(fd|ctexspa|dict|backend)>
+%<class|style|ctexcap|ctexhook|ctexpatch>\NeedsTeXFormat{LaTeX2e}
+%<class>\input{ctexbackend.cfg}
+%<class|style|ctexcap|ctexhook|ctexpatch>\RequirePackage{expl3}
+%<+!driver>\GetIdInfo$Id: ctex.dtx d2534e9 2020-05-01 21:11:07 +0800 Qing Lee <sobenlee@gmail.com> $
%<ctex> {Chinese adapter in LaTeX (CTEX)}
%<ctex>\ProvidesExplPackage{\ExplFileName}
%<ctexsize> {Chinese font size definition (CTEX)}
@@ -502,7 +498,7 @@ Copyright and Licence
%<scheme&chinese&beamer>\ProvidesExplFile{ctex-scheme-chinese-beamer.def}
%<name&GBK> {Caption with encoding GBK (CTEX)}
%<name&GBK>\ProvidesExplFile{ctex-name-gbk.cfg}
-%<name&UTF8> {Caption with encoding UTF8 (CTEX)}
+%<name&UTF8> {Caption with encoding UTF-8 (CTEX)}
%<name&UTF8>\ProvidesExplFile{ctex-name-utf8.cfg}
%<config> {Configuration file (CTEX)}
%<config>\ProvidesExplFile{\ExplFileName.cfg}
@@ -520,26 +516,22 @@ Copyright and Licence
%<uptex>\ProvidesExplFile{ctex-engine-uptex.def}
%<windows> {Windows fonts definition (CTEX)}
%<windows>\ProvidesExplFile{ctex-fontset-windows.def}
-%<windowsnew> {Windows fonts definition for Vista or later version (CTEX)}
-%<windowsnew>\ProvidesExplFile{ctex-fontset-windowsnew.def}
-%<windowsold> {Windows fonts definition for XP or earlier version (CTEX)}
-%<windowsold>\ProvidesExplFile{ctex-fontset-windowsold.def}
%<adobe> {Adobe fonts definition (CTEX)}
%<adobe>\ProvidesExplFile{ctex-fontset-adobe.def}
%<fandol> {Fandol fonts definition (CTEX)}
%<fandol>\ProvidesExplFile{ctex-fontset-fandol.def}
-%<mac> {Mac OS X fonts definition (CTEX)}
+%<mac> {macOS fonts definition (CTEX)}
%<mac>\ProvidesExplFile{ctex-fontset-mac.def}
-%<macnew> {Mac OS X fonts definition for El Capitan or later version (CTEX)}
+%<macnew> {macOS fonts definition for El Capitan or later version (CTEX)}
%<macnew>\ProvidesExplFile{ctex-fontset-macnew.def}
-%<macold> {Mac OS X fonts definition for Yosemite or earlier version (CTEX)}
+%<macold> {macOS fonts definition for Yosemite or earlier version (CTEX)}
%<macold>\ProvidesExplFile{ctex-fontset-macold.def}
%<founder> {Founder fonts definition (CTEX)}
%<founder>\ProvidesExplFile{ctex-fontset-founder.def}
%<ubuntu> {Ubuntu fonts definition (CTEX)}
%<ubuntu>\ProvidesExplFile{ctex-fontset-ubuntu.def}
-%<!driver> {\ExplFileDate}{2.4.16}{\ExplFileDescription}
-%</!(fd|ctexspa|dict)>
+%<!driver> {\ExplFileDate}{2.5}{\ExplFileDescription}
+%</!(fd|ctexspa|dict|backend)>
%<c19&rm>\ProvidesFile{c19rm.fd}%
%<c19&sf>\ProvidesFile{c19sf.fd}%
%<c19&tt>\ProvidesFile{c19tt.fd}%
@@ -553,11 +545,13 @@ Copyright and Licence
%<jt2&sf>\ProvidesFile{jt2zhsf.fd}%
%<jt2&tt>\ProvidesFile{jt2zhtt.fd}%
%<ctexspa>\ProvidesFile{ctexspa.def}%
+%<backend>\ProvidesFile{ctexbackend.cfg}%
%<dict&theorem&GBK>\ProvidesDictionary{translator-theorem-dictionary}{ChineseGBK}%
%<dict&theorem&UTF8>\ProvidesDictionary{translator-theorem-dictionary}{ChineseUTF8}%
-%<fd> [2019/05/29 v2.4.16 Chinese font definition (CTEX)]
-%<ctexspa> [2019/05/29 v2.4.16 Space info for CJKpunct (CTEX)]
-%<dict&theorem> [2019/05/29 v2.4.16 Chinese translation for theorem name (CTEX)]
+%<fd> [2020/05/01 v2.5 Chinese font definition (CTEX)]
+%<ctexspa> [2020/05/01 v2.5 Space info for CJKpunct (CTEX)]
+%<backend> [2020/05/01 v2.5 Backend configuration file (CTEX)]
+%<dict&theorem> [2020/05/01 v2.5 Chinese translation for theorem name (CTEX)]
%</!(driver|readme|install|zhmap|spa|docstrip)>
%<*driver>
\documentclass{ctxdoc}
@@ -580,8 +574,7 @@ Copyright and Licence
% \changes{v2.4.12}{2018/01/13}{åŒæ­¥ \LaTeXiii{} 2017/12/16。}
% \changes{v2.4.15}{2019/03/23}{åŒæ­¥ \LaTeXiii{} 2019/03/05。}
%
-%
-% \CheckSum{5934}
+% \CheckSum{6105}
%
% \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
@@ -599,7 +592,7 @@ Copyright and Licence
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
-% \GetFileId{ctex.sty}%
+% \GetFileId{ctex.sty}
%
% \title{\bfseries \CTeX{} å®é›†æ‰‹å†Œ}
% \author{\href{http://www.ctex.org}{CTEX.ORG}}
@@ -612,13 +605,13 @@ Copyright and Licence
% 日期转æ¢ç­‰æ”¯æŒåŠŸèƒ½ï¼Œå¯é€‚应论文ã€æŠ¥å‘Šã€ä¹¦ç±ã€å¹»ç¯ç‰‡ç­‰ä¸åŒç±»åž‹çš„中文文档。
%
% \CTeX{} å®é›†æ”¯æŒ \LaTeXã€\pdfLaTeXã€\XeLaTeXã€\LuaLaTeXã€\upLaTeX{} 等多ç§ä¸åŒ
-% 的编译方å¼ï¼Œå¹¶ä¸ºå®ƒä»¬æ供了统一的界é¢ã€‚主è¦åŠŸèƒ½ç”±å®åŒ… \pkg{ctex} 和中文文档类
+% 的编译方å¼ï¼Œå¹¶ä¸ºå®ƒä»¬æ供了统一的界é¢ã€‚主è¦åŠŸèƒ½ç”±å®åŒ… \pkg{ctex} 以åŠä¸­æ–‡æ–‡æ¡£ç±»
% \cls{ctexart}ã€\cls{ctexrep}ã€\cls{ctexbook} å’Œ \cls{ctexbeamer} 实现。
% \end{abstract}
%
% \tableofcontents
%
-% \clearpage
+% \bigskip
% \setlength{\parskip}{0.8ex}
%
% \begin{documentation}
@@ -629,14 +622,14 @@ Copyright and Licence
%
% \CTeX{} å®é›†çš„æºå¤´æœ‰ä¸¤ä¸ªï¼šä¸€æ˜¯çŽ‹ç£Šç¼–写的 \cls{cjkbook} 文档类,二是å´å‡Œäº‘编写的
% \file{GB.cap}。
-% 这些工作没有ç»è¿‡è®¤çœŸã€ç³»ç»Ÿçš„设计,也没有用户文档,ä¸åˆ©äºŽç»´æŠ¤å’Œæ”¹è¿›ã€‚
+% 这些工作没有ç»è¿‡è®¤çœŸç³»ç»Ÿçš„设计,也没有用户文档,ä¸åˆ©äºŽç»´æŠ¤å’Œæ”¹è¿›ã€‚
%
% 2003 年,å´å‡Œäº‘使用 \pkg{doc} å’Œ \pkg{DocStrip} é‡æž„了整个工程,并增加了许多新的功能,
% 称为 \pkg{ctex} å®åŒ…。2007 年,oseen 和王越在 \pkg{ctex} å®åŒ…的基础上,
% 增加了对 UTF-8 ç¼–ç çš„支æŒï¼Œå¼€å‘出了 \pkg{ctexutf8} å®åŒ…。
%
% 2009 年 5 月,我们在 Google Code 建立了 ctex-kit 项目^^A
-% \footnote{\nolinkurl{http://code.google.com/p/ctex-kit/}},
+% \footnote{\nolinkurl{http://code.google.com/p/ctex-kit/},该链接现已失效。},
% 对 \pkg{ctex} å®åŒ…åŠç›¸å…³è„šæœ¬è¿›è¡Œäº†æ•´åˆï¼Œå¹¶åŠ å…¥äº†å¯¹ \XeTeX{} 引擎的支æŒã€‚
% 在开å‘新版本时,考虑到åˆä½œå¼€å‘和调试的方便,我们放弃了 \pkg{doc} å’Œ \pkg{DocStrip},
% 采å–了直接编写å®åŒ…代ç çš„æ–¹å¼ã€‚
@@ -649,11 +642,11 @@ Copyright and Licence
% \href{https://github.com/CTeX-org/ctex-kit}{GitHub}^^A
% \footnote{\url{https://github.com/CTeX-org/ctex-kit}}。
%
-% 最åˆï¼ŒKnuth åœ¨è®¾è®¡å¼€å‘ \TeX{} 的时候没有考虑到多国语言支æŒï¼Œç‰¹åˆ«æ˜¯å¯¹å¤šå­—节的中日韩
-% 语言的支æŒã€‚这使得 \TeX{} 以至åŽæ¥çš„ \LaTeX{} 对中文的支æŒä¸€ç›´ä¸æ˜¯å¾ˆå¥½ã€‚å³ä½¿åœ¨
+% 最åˆï¼ŒKnuth åœ¨è®¾è®¡å¼€å‘ \TeX{} 的时候没有考虑到多国文字支æŒï¼Œç‰¹åˆ«æ˜¯å¯¹å¤šå­—节的中日韩
+% 表æ„文字的支æŒã€‚这使得 \TeX{} 以至åŽæ¥çš„ \LaTeX{} 对中文的支æŒä¸€ç›´ä¸æ˜¯å¾ˆå¥½ã€‚å³ä½¿åœ¨
% \pkg{CJK} å®åŒ…解决了中文字符处ç†çš„问题以åŽï¼Œä¸­æ–‡ç”¨æˆ·ä½¿ç”¨ \LaTeX{} ä»ç„¶è¦é¢å¯¹è®¸
% 多困难。
-% 这些困难里,以章节标题的中文化为最。由于中文和西文语言习惯的差异,用户很难使用标准
+% 这些困难里,以章节标题的中文化为最。由于中文和西文书写习惯的差异,用户很难使用标准
% 文档类中的代ç ç»“æž„æ¥è¡¨è¾¾ä¸­æ–‡æ ‡é¢˜ã€‚于是,用户ä¸å¾—ä¸å¯¹æ ‡å‡†æ–‡æ¡£ç±»åšè¾ƒå¤§çš„修改。
% 除此之外,日期格å¼ã€é¦–行缩进ã€ä¸­æ–‡å­—å·å’Œå­—è·ç­‰ç»†èŠ‚问题,也需è¦ç²¾ç»†çš„调校。
% 我们设计 \CTeX{} å®é›†çš„目的之一就是解决这些 \LaTeX{} 文档的汉化难题。
@@ -661,23 +654,24 @@ Copyright and Licence
% å¦ä¸€æ–¹é¢ï¼Œéšç€ \TeX{} 引擎和 \LaTeX{} å®åŒ…çš„ä¸æ–­å‘展,\LaTeX{} 的中文支æŒæ–¹å¼ä»Žæ—©æœŸçš„
% 专用系统(如 \pkg{CCT})å‘展为适用于ä¸åŒå¼•æ“Žçš„多ç§æ–¹å¼^^A
% \footnote{比如:\pdfTeX{} 引擎下的 \pkg{CJK}ã€\pkg{zhmCJK}å®åŒ…,
-% \XeTeX{} 引擎下的 \pkg{xeCJK} å®åŒ…å’Œ \LuaTeX{} 引擎下的 \pkg{LuaTeX-ja} å®
-% 包}。这些方å¼çš„适用情况和使用方å¼æœ‰ä¸å°‘细节上的差异,åŒæ—¶æ“作系统的ä¸åŒã€è¯­è¨€çŽ¯å¢ƒçš„ä¸åŒç­‰
+% \XeTeX{} 引擎下的 \pkg{xeCJK} å®åŒ…å’Œ \LuaTeX{} 引擎下的 \pkg{LuaTeX-ja} å®åŒ…。}。
+% 这些方å¼çš„适用情况和使用方å¼æœ‰ä¸å°‘细节上的差异,åŒæ—¶æ“作系统的ä¸åŒã€è¯­è¨€çŽ¯å¢ƒçš„ä¸åŒç­‰
% 客观情况åˆè¿›ä¸€æ­¥å¸¦æ¥äº†æ›´å¤šçš„细节差异。我们设计 \CTeX{} å®é›†çš„å¦ä¸€ä¸ªä¸»è¦ç›®çš„就是
% å°½å¯èƒ½æ¶ˆé™¤è¿™äº›å·®å¼‚带æ¥çš„å½±å“,使用户能够以一个统一的接å£æ¥ä½¿ç”¨ä¸åŒçš„中文支æŒæ–¹å¼ï¼Œ
% 使得åŒä¸€ä»½æ–‡æ¡£èƒ½å¤Ÿåœ¨ä¸åŒçŽ¯å¢ƒä¸‹äº¤æ¢ä½¿ç”¨ã€‚
%
-% \CTeX{} å®é›†çš„许多实现细节离ä¸å¼€çƒ­å¿ƒæœ‹å‹ä»¬åœ¨ \url{bbs.ctex.org} 论å›ä¸Šçš„讨论,
-% 在此对å‚与讨论的朋å‹ä»¬è¡¨ç¤ºæ„Ÿè°¢ã€‚
+% \CTeX{} å®é›†çš„许多实现细节离ä¸å¼€çƒ­å¿ƒæœ‹å‹ä»¬åœ¨ \nolinkurl{bbs.ctex.org} 论å›^^A
+% \footnote{2018 年,\CTeX{} 论å›å› æ•…æ— é™æœŸå…³é—­ï¼Œæ­¤é“¾æŽ¥çŽ°å·²å¤±æ•ˆã€‚}^^A
+% 上的讨论,在此对å‚与讨论的朋å‹ä»¬è¡¨ç¤ºæ„Ÿè°¢ã€‚
%
% \subsection*{关于å®é›†å字的说明}
%
% \CTeX{} 之å是英文å•è¯ China(中国)或 Chinese(中文)的首字æ¯â€œCâ€ä¸Ž “\TeX{}â€
% 结åˆè€Œæˆçš„。在纯文本环境下,该å字应写作“CTeXâ€ã€‚
%
-% \CTeX{} å®é›†æ˜¯ç”± \href{http://bbs.ctex.org}{\CTeX{} 社区} å‘起并维护的
+% \CTeX{} å®é›†æ˜¯ç”± \href{https://github.com/CTeX-org}{\CTeX{} 社区}å‘起并维护的
% \LaTeX{} \emph{å®åŒ…和文档类的集åˆ}。
-% 社区å¦æœ‰å‘布å为 \href{http://www.ctex.org/CTeX}{\CTeX{} 套装}
+% 社区å¦æœ‰å‘布å为 \href{http://www.ctex.org/CTeX}{\CTeX{} 套装}^^A
% çš„ \TeX{} å‘行版,与本文档所述的 \CTeX{} å®é›†å¹¶éžæ˜¯åŒä¸€äº‹ç‰©ã€‚
%
% \pkg{ctex} 则是本å®é›†ä¸­çš„ \pkg{ctex.sty} çš„å字。这一完全å°å†™çš„å称,在过去
@@ -688,7 +682,7 @@ Copyright and Licence
%
% \subsection{\CTeX{} å®é›†çš„组æˆ}
%
-% 为了适应用户ä¸åŒçš„需求,我们将 \CTeX{} å®é›†çš„主è¦åŠŸèƒ½åˆ†æ•£åœ¨å››ä¸ªä¸­æ–‡æ–‡æ¡£ç±»å’Œ
+% 为了适应用户ä¸åŒçš„需求,我们将 \CTeX{} å®é›†çš„主è¦åŠŸèƒ½è®¾è®¡å®‰æŽ’在四个中文文档类和
% 三个å®åŒ…当中,具体的组æˆè§è¡¨~\ref{tab:ctex}。
%
% \begin{table}[htbp]
@@ -698,21 +692,21 @@ Copyright and Licence
% \toprule
% 类别 & 文件 & 说明 \\
% \midrule
-% 文档类 & \file{ctexart.cls} & 标准文档类 \cls{article} 的汉化版本,一般适用于
-% 短篇幅的文章 \\
-% & \file{ctexrep.cls} & 标准文档类 \cls{report} 的汉化版本,一般适用于
-% 中篇幅的报告 \\
-% & \file{ctexbook.cls} & 标准文档类 \cls{book} 的汉化版本,一般适用于
-% é•¿ç¯‡å¹…çš„ä¹¦ç± \\
-% & \file{ctexbeamer.cls} & 文档类 \cls{beamer} 的汉化版本,适用于
-% å¹»ç¯ç‰‡æ¼”示 \\
+% 文档类 & \file{ctexart.cls} & 标准文档类 \cls{article} 的汉化版本,
+% 一般适用于短篇幅的文章 \\
+% & \file{ctexrep.cls} & 标准文档类 \cls{report} 的汉化版本,
+% 一般适用于中篇幅的报告 \\
+% & \file{ctexbook.cls} & 标准文档类 \cls{book} 的汉化版本,
+% ä¸€èˆ¬é€‚ç”¨äºŽé•¿ç¯‡å¹…çš„ä¹¦ç± \\
+% & \file{ctexbeamer.cls} & 文档类 \cls{beamer} 的汉化版本,
+% 适用于幻ç¯ç‰‡æ¼”示 \\
% \midrule
-% å®åŒ… & \file{ctex.sty} & æ供全部功能,但\emph{默认ä¸å¼€å¯ç« èŠ‚标题设置功能},
-% 需è¦ä½¿ç”¨ \opt{heading} 选项æ¥å¼€å¯ \\
-% & \file{ctexsize.sty} & 定义和调整中文字å·ï¼Œåœ¨ \pkg{ctex} å®åŒ…
-% 或 \CTeX{} 中文文档类之外å•ç‹¬è°ƒç”¨ \\
+% å®åŒ… & \file{ctex.sty} & æ供全部功能,但\emph{默认ä¸å¼€å¯ç« èŠ‚标题设置功能},
+% 需è¦ä½¿ç”¨ \opt{heading} 选项æ¥å¼€å¯ \\
+% & \file{ctexsize.sty} & 定义和调整中文字å·ï¼Œå¯ä»¥åœ¨ \pkg{ctex} å®åŒ…
+% 或 \CTeX{} 中文文档类之外å•ç‹¬è°ƒç”¨ \\
% & \file{ctexheading.sty} & æä¾›ç« èŠ‚æ ‡é¢˜è®¾ç½®åŠŸèƒ½ï¼ˆè§ \ref{sec:secstyle}
-% 节),在 \pkg{ctex} å®åŒ…或 \CTeX{} 中文
+% 节),å¯ä»¥åœ¨ \pkg{ctex} å®åŒ…或 \CTeX{} 中文
% 文档类之外å•ç‹¬è°ƒç”¨ \\
% \bottomrule
% \end{tabularx}
@@ -720,37 +714,42 @@ Copyright and Licence
%
% \subsection{\CTeX{} å®é›†çš„安装和更新}
% \label{subsec:easy-ins}
-%
-% \CTeX{} å®é›†ä¾èµ–çš„å®åŒ…å’Œå®é›†å·²è¢«æœ€å¸¸è§çš„ \TeX{} å‘行版 \TeXLive{} å’Œ \MiKTeX{}
-% 所收录。如果本地安装 \TeXLive{} 或 \MiKTeX{} ä¸æ˜¯å®Œå…¨ç‰ˆæœ¬ï¼Œå°±å¯èƒ½éœ€è¦é€šè¿‡è¿™
-% 两个å‘行版æ供的\emph{å®åŒ…管ç†å™¨}æ¥å®‰è£…å®åŒ…。
-%
-% \TeXLive{} çš„å®åŒ…管ç†å™¨æ˜¯ tlmgr。用户å¯ä»¥åœ¨ç³»ç»Ÿå‘½ä»¤è¡Œä¸­^^A
-% \footnote{Windows 系统的命令行是 CMD 命令æ示符,你å¯ä»¥ä½¿ç”¨ Win + R 组åˆé”®^^A
-% 打开“è¿è¡Œâ€å¯¹è¯æ¡†ï¼Œç„¶åŽè¾“å…¥ cmd 确认打开命令æ示符窗å£ã€‚}^^A
-% 执行
+% 最常è§çš„ \TeX{} å‘行版(\TeXLive{} å’Œ \MiKTeX{})已收录 \CTeX{} å®é›†åŠå…¶ä¾èµ–çš„å®åŒ…å’Œå®é›†ã€‚
+% \footnote{\pkg{zhmCJK} å®åŒ…是个例外。当用户显å¼æŒ‡å®šé€‰é¡¹ \opt{zhmap = zhmCJK} 时,^^A
+% \CTeX{} å®é›†ä¾èµ–它。由于,它没有被 \TeXLive{} å’Œ \MiKTeX{} 收录,用户å¯èƒ½éœ€è¦éµç…§å…¶è¯´æ˜Žæ–‡æ¡£
+% 自行安装。}如果本地安装 \TeXLive{} 或 \MiKTeX{} ä¸æ˜¯å®Œæ•´ç‰ˆæœ¬ï¼Œåˆ™å¯èƒ½éœ€è¦é€šè¿‡è¿™
+% 两个å‘行版æ供的\emph{包管ç†å™¨}æ¥å®‰è£…å®åŒ…。
+%
+% \TeXLive{} 的包管ç†å™¨æ˜¯ tlmgr(\TeXLive{} Manager)。用户å¯ä»¥åœ¨ç³»ç»Ÿå‘½ä»¤è¡Œä¸­^^A
+% \footnote{Windows 系统的命令行是 CMD 命令æ示符,你å¯ä»¥ä½¿ç”¨ Win + R 组åˆé”®
+% 打开“è¿è¡Œâ€å¯¹è¯æ¡†ï¼Œç„¶åŽè¾“å…¥ cmd 确认打开命令æ示符窗å£ã€‚}执行
% \begin{frameverb}
% tlmgr gui
% \end{frameverb}
-% å¯åŠ¨ç®¡ç†å™¨çš„图形界é¢ï¼ˆWindows 用户也å¯ä»¥é€šè¿‡å¼€å§‹èœå•çš„
-% TeX Live 2015 \ding{212} TeX Live Manager 打开)。
-% 连接上远程仓库之åŽï¼Œæœç´¢ ctex 安装å³å¯ã€‚
-% tlmgr 的图形界é¢ä½¿ç”¨ Perl 编写,容易造æˆç³»ç»Ÿå‡æ­»ã€‚é‡åˆ°è¿™ç§é—®é¢˜çš„用户,
+% å¯åŠ¨ç®¡ç†å™¨çš„图形界é¢ï¼ˆWindows 用户也å¯ä»¥é€šè¿‡å¼€å§‹èœå•çš„ TeX Live 20XX(年份)
+% \ding{212} TeX Live Manager 打开)。连接上远程仓库之åŽï¼Œæœç´¢ |ctex| å³å¯å®‰è£…。
+% tlmgr 的图形界é¢ä½¿ç”¨ Perl 编写,在实践中å‘现容易造æˆç³»ç»Ÿå‡æ­»ã€‚é‡åˆ°è¿™ç§é—®é¢˜çš„用户,
% 也å¯ä»¥ç›´æŽ¥åœ¨ç³»ç»Ÿå‘½ä»¤è¡Œæ‰§è¡Œ
% \begin{frameverb}
% tlmgr install ctex
% \end{frameverb}
-% æ¥å®‰è£… \CTeX{} å®é›†\footnote{*nix 用户å¯èƒ½éœ€è¦è¶…级用户æƒé™æ‰èƒ½æ­£ç¡®å®‰è£…å®é›†ã€‚}。
+% æ¥å®‰è£… \CTeX{} å®é›†^^A
+% \footnote{*nix 用户å¯èƒ½éœ€è¦è¶…级用户æƒé™ï¼ˆsudo)æ‰èƒ½æ­£ç¡®å®‰è£…å®é›†ã€‚}。
%
-% \MiKTeX{} çš„å®åŒ…管ç†å™¨æ˜¯ mpm (\MiKTeX{} Package Manager)。用户å¯ä»¥åœ¨å¼€å§‹èœå•
-% 找到 MiKTeX \ding{212} Maintenance (Admin) \ding{212} Package Manager (Admin),
-% 打开管ç†å™¨ï¼Œè¿žæŽ¥ä¸Šè¿œç¨‹ä»“库之åŽï¼Œæœç´¢ ctex 安装å³å¯ã€‚
+% \MiKTeX{} 通常会在缺失å®åŒ…时自动完æˆå®‰è£…。如需手动安装,å¯ä»¥ä½¿ç”¨å…¶ç®¡ç†ç»´æŠ¤
+% 工具 \MiKTeX{} Console。用户å¯ä»¥æ‰“开管ç†å™¨ï¼Œè¿žæŽ¥ä¸Šè¿œç¨‹ä»“库之åŽï¼Œåœ¨â€œPackageâ€
+% 选项å¡ä¸­æœç´¢â€œctexâ€å¹¶å®‰è£…å³å¯ã€‚
+% 也å¯ä»¥ä½¿ç”¨ mpm(\MiKTeX{} Package Manager),在命令行执行
+% \begin{frameverb}
+% mpm --admin --install=ctex
+% \end{frameverb}
+% æ¥å®‰è£… \CTeX{} å®é›†ã€‚
%
-% 若希望了解 \CTeX{} å®é›†å…·ä½“çš„ä¾èµ–情况和手工安装å®é›†çš„方法,
+% 若希望了解 \CTeX{} å®é›†å…·ä½“çš„ä¾èµ–情况或手工安装å®é›†çš„方法,
% 请å‚阅第 \ref{sec:dep-ins}~节。
%
-% 当å®åŒ…å‘布新版本,并被å‘行版在远程仓库安装之åŽï¼Œåœ¨æœ¬åœ°å°±å¯ä»¥é€šè¿‡å®åŒ…管ç†å™¨æ¥
-% å–得新版本。
+% 当我们将å®é›†çš„新版本å‘布于 CTAN,且为å‘行版的远程仓库更新åŽï¼Œç”¨æˆ·å°±å¯ä»¥åœ¨æœ¬åœ°
+% 通过包管ç†å™¨èŽ·å–新版本。
%
% 对于 \TeXLive{},å¯ä»¥åœ¨ tlmgr 的图形界é¢ç‚¹å‡»â€œæ›´æ–°å…¨éƒ¨å·²å®‰è£…çš„â€æŒ‰é’®æˆ–者在
% 命令行执行
@@ -759,14 +758,17 @@ Copyright and Licence
% \end{frameverb}
% æ¥å®Œæ•´æ›´æ–°å·²å®‰è£…çš„å®åŒ…。
%
-% 对于 \MiKTeX{},在开始èœå•æ‰¾åˆ°
-% MiKTeX \ding{212} Maintenance (Admin) \ding{212} Update (Admin),
-% 按照界é¢è¯´æ˜Žæ›´æ–°å³å¯ã€‚
+% 对于 \MiKTeX{},在 \MiKTeX{} Console 中找到“Updatesâ€é€‰é¡¹å¡ï¼Œæ£€æŸ¥æ›´æ–°åŽå³å¯
+% 选择å‡çº§å®åŒ…。也å¯ä»¥ä½¿ç”¨ mpm,在命令行执行
+% \begin{frameverb}
+% mpm --admin --update
+% \end{frameverb}
+% æ¥è¿›è¡Œæ›´æ–°ã€‚
%
% \subsection{使用 \CTeX{} 文档类}
%
-% \emph{如果用户需è¦åœ¨æ ‡å‡†æ–‡æ¡£ç±»çš„基础上添加中文支æŒå’Œä¸­æ–‡ç‰ˆå¼æ”¯æŒï¼Œæˆ‘们建议用户使用 \CTeX{}
-% å®é›†æ供的四个中文文档类。}
+% \emph{如果用户需è¦åœ¨ä¸‰ä¸ªæ ‡å‡†æ–‡æ¡£ç±»æˆ– \cls{beamer} 的基础上添加中文åŠç‰ˆå¼çš„支æŒï¼Œ
+% 我们建议用户使用 \CTeX{} å®é›†æ供的四个中文文档类。}
%
% \CTeX{} å®é›†æ供了四个中文文档类:\cls{ctexart}ã€\cls{ctexrep}ã€\cls{ctexbook} å’Œ
% \cls{ctexbeamer},分别对应 \LaTeX{} 的标准文档类 \cls{article}ã€\cls{report}ã€
@@ -775,18 +777,18 @@ Copyright and Licence
% \ref{subs:encoding}~节)}。
%
% \begin{ctexexam}
-% \documentclass[UTF8]{ctexart}
+% \documentclass{ctexart}
% \begin{document}
% 中文文档类测试。你需è¦å°†æ‰€æœ‰æºæ–‡ä»¶ä¿å­˜ä¸º UTF-8 ç¼–ç ã€‚
%
% ä½ å¯ä»¥ä½¿ç”¨ XeLaTeXã€LuaLaTeX 或 upLaTeX 编译,也å¯ä»¥ä½¿ç”¨ (pdf)LaTeX 编译。
-% 推è使用 XeLaTeX 或 LuaLaTeX 编译。
+% 推è使用 XeLaTeX 或 LuaLaTeX 编译。对高级用户,我们也推è使用 upLaTeX 编译。
% \end{document}
% \end{ctexexam}
%
% 以下是使用 \cls{ctexbeamer} 文档类编写中文演示文稿的一个示例。
% \begin{ctexexam}
-% \documentclass[UTF8]{ctexbeamer}
+% \documentclass{ctexbeamer}
% \begin{document}
% \begin{frame}{中文演示文档}
% \begin{itemize}
@@ -794,6 +796,7 @@ Copyright and Licence
% \item ä½ å¯ä»¥ä½¿ç”¨ XeLaTeXã€LuaLaTeX 或 upLaTeX 编译
% \item 也å¯ä»¥ä½¿ç”¨ (pdf)LaTeX 编译
% \item 推è使用 XeLaTeX 或 LuaLaTeX 编译
+% \item 对高级用户,我们也推è使用 upLaTeX 编译
% \end{itemize}
% \end{frame}
% \end{document}
@@ -801,14 +804,14 @@ Copyright and Licence
%
% \subsection{使用 \pkg{ctex} å®åŒ…}
%
-% \emph{用户在使用éžæ ‡å‡†æ–‡æ¡£ç±»æ—¶ï¼Œå¦‚果需è¦æ·»åŠ ä¸­æ–‡æ”¯æŒæˆ–中文版å¼æ”¯æŒï¼Œåˆ™å¯ä»¥ä½¿ç”¨ \pkg{ctex}
-% å®åŒ…。}
+% \emph{用户在使用éžæ ‡å‡†æ–‡æ¡£ç±»åŠ \cls{beamer} 时,如果需è¦æ·»åŠ ä¸­æ–‡åŠç‰ˆå¼çš„支æŒï¼Œ
+% 则å¯ä»¥ä½¿ç”¨ \pkg{ctex} å®åŒ…。}
%
-% 有些文档类是建立在 \LaTeX{} 标准文档类之上开å‘的。这时,给 \pkg{ctex} å®åŒ…
+% 对于建立在 \LaTeX{} 标准文档类之上开å‘的文档类,在使用 \pkg{ctex} å®åŒ…æ—¶
% 加上 \opt{heading} 选项,å¯ä»¥å°†ç« èŠ‚标题设置为中文风格。
% \begin{ctexexam}
% \documentclass{ltxdoc}
-% \usepackage[UTF8, heading = true]{ctex}
+% \usepackage[heading = true]{ctex}
% \begin{document}
% \section{简介}
% 章节标题中文化的 \LaTeX{} 手册。
@@ -820,16 +823,13 @@ Copyright and Licence
%
% \CTeX{} å®é›†å·²ç»å°½å¯èƒ½å°±ä¸­æ–‡çš„行文和版å¼ä¹ æƒ¯åšäº†è°ƒæ•´å’Œé…置,通常而言,这些é…ç½®
% å·²ç»å¤Ÿç”¨ã€‚因此,除éžå¿…è¦ï¼Œæˆ‘们ä¸å»ºè®®æ™®é€šç”¨æˆ·ä¿®æ”¹è¿™äº›é»˜è®¤é…置。如果你认为 \CTeX{} å®é›†
-% 的默认é…置还å¯ä»¥å®Œå–„,å¯ä»¥åœ¨é¡¹ç›®ä¸»é¡µä¸Š%
+% 的默认é…置还å¯ä»¥å®Œå–„,å¯ä»¥åœ¨é¡¹ç›®ä¸»é¡µä¸Š^^A
% \href{https://github.com/CTeX-org/ctex-kit/issues}{æ交 issue},
% å‘我们å映,我们会酌情在åŽç»­ç‰ˆæœ¬ä¸­äºˆä»¥æ”¹è¿›ã€‚
%
% ä¸è¿‡ï¼Œ\CTeX{} å®é›†ä¹Ÿæ供了一系列选项。用户å¯ä»¥ä½¿ç”¨è¿™äº›é€‰é¡¹æ¥æŽ§åˆ¶ \CTeX{} å®é›†çš„行为。
-% 具体æ¥è¯´ï¼Œè¿™äº›é€‰é¡¹é‡Œï¼Œæœ‰çš„以传统的方å¼æ供,
-% 也有的以 \meta{key}|=|\meta{value} çš„å½¢å¼æ供。对于以键值对形å¼æ供的选项,
-% 在下é¢çš„说明中使用\textbf{粗体}æ¥è¡¨ç¤º \CTeX{} 的默认设置。
-%
-% å¦ä¸€æ–¹é¢ï¼Œè¿™äº›é€‰é¡¹å¯ä»¥åˆ†ä¸ºä»¥ä¸‹ä¸‰ç±»ï¼š
+% 按形å¼åˆ†ç±»ï¼Œè¿™äº›é€‰é¡¹æœ‰çš„以传统的方å¼æ供,有的以 \meta{key}|=|\meta{value} çš„å½¢å¼æ供。
+% 按指定ä½ç½®åˆ†ç±»ï¼Œè¿™äº›é€‰é¡¹åˆå¯ä»¥åˆ†ä¸ºä»¥ä¸‹ä¸‰ç±»ï¼š
% \begin{itemize}
% \item åå­—åŽå¸¦æœ‰ \rexptarget\rexpstar{} å·çš„选项,åªèƒ½ä½œä¸ºå®åŒ…/文档类选项,需è¦
% 在引入å®åŒ…/文档类的时候指定;
@@ -891,28 +891,24 @@ Copyright and Licence
% \end{table}
%
% ä¸åŒçš„编译方å¼å’Œä¸­æ–‡æ”¯æŒæ–¹å¼ä¼šåœ¨ä¸€å®šç¨‹åº¦ä¸Šå½±å“ \CTeX{} å®é›†çš„行为,比如å®åŒ…对
-% ç¼–ç çš„处ç†ã€‚
-% 在用户使用 \XeLaTeXã€\LuaLaTeX{} åŠ \upLaTeX{} 编译时,\CTeX{} å®é›†ä½¿ç”¨ï¼ˆä¸”ä»…
-% 能使用)UTF-8 ç¼–ç ï¼›è€Œå› ä¸ºåŽ†å²åŽŸå› ï¼Œåœ¨ç”¨æˆ·ä½¿ç”¨ \LaTeX{} åŠ \pdfLaTeX{} 编译
-% 时,å®åŒ…默认使用 GBK ç¼–ç ã€‚用户需è¦\emph{ä¿è¯ç¼–译方å¼ã€
-% æºæ–‡ä»¶ç¼–ç ã€å®åŒ…ç¼–ç é€‰é¡¹ä¸‰è€…一致}。
-% 关于å®åŒ…ç¼–ç é€‰é¡¹ï¼Œå¯ä»¥å‚考 \ref{subs:encoding}~节。
-%
-% 除去文档编ç ä¹‹å¤–,选择ä¸åŒçš„编译方å¼è¿˜å¯èƒ½å½±å“ \CTeX{} å®é›†å¯¹å­—体选择ã€ç©ºæ ¼å¤„ç†ã€
-% 标点处ç†çš„处ç†ã€‚具体的影å“将在本文档åŽç»­å†…容中进行é˜è¿°ã€‚
+% 文档编ç ã€å­—体选择ã€ç©ºæ ¼ã€æ ‡ç‚¹ç­‰çš„处ç†ã€‚具体细节将在本文档åŽç»­å†…容中进行é˜è¿°ã€‚
%
% \subsection{中文编ç }
% \label{subs:encoding}
%
-% \begin{function}[rEXP]{GBK, UTF8}
-% 指明编写文档时使用的编ç æ ¼å¼ã€‚\CTeX{} å®é›†æ— æ³•æ£€æµ‹ç”¨æˆ·ç¼–写文档时使用的编ç æ ¼å¼ï¼Œå› æ­¤
-% 需è¦ç”¨æˆ·è‡ªè¡ŒæŒ‡å®šç¼–ç ã€‚\emph{我们建议用户总是使用 UTF-8 ç¼–ç ï¼Œå¹¶æ˜¾å¼æŒ‡å®š \opt{UTF8}
-% 选项,并使用 \XeLaTeXã€\LuaLaTeX{} 或 \upLaTeX{} 编译。}
+% \begin{function}[rEXP,updated=2019-11-10]{GBK, UTF8}
+% 指明编写文档时使用的编ç ã€‚\CTeX{} å®é›†æ— æ³•æ£€æµ‹æ–‡æ¡£æºæ–‡ä»¶çš„实际编ç æ ¼å¼ï¼Œå› æ­¤éœ€è¦
+% 用户通过选项声明。如果没有显å¼æŒ‡å®šï¼Œåˆ™é»˜è®¤é‡‡ç”¨ UTF-8 ç¼–ç ã€‚
+%
+% 使用 \XeLaTeX{}ã€\LuaLaTeX{} 或 \upLaTeX{} 编译时,\CTeX{} å®é›†å¼ºåˆ¶ä½¿ç”¨
+% UTF-8 ç¼–ç ï¼Œæ­¤æ—¶ \opt{GBK} 选项无效;使用 (pdf)\LaTeX{} 编译时,
+% \CTeX{} å®é›†é»˜è®¤ä½¿ç”¨ UTF-8 ç¼–ç ï¼Œä½†ç”¨æˆ·ä¹Ÿå¯ä»¥æ˜¾å¼å£°æ˜Ž \opt{GBK} 选项,
+% 使 \CTeX{} å®é›†æŒ‰ GBK ç¼–ç å¤„ç†æ–‡æ¡£ã€‚
%
-% 使用 \XeLaTeXã€\LuaLaTeX{} 或 \upLaTeX{} 编译时,\CTeX{} å®é›†å¼ºåˆ¶ä½¿ç”¨ UTF-8
-% ç¼–ç ï¼Œæ­¤æ—¶ \opt{GBK} 选项无效。
-% 使用 (pdf)\LaTeX{} 编译时,\CTeX{} å®é›†é»˜è®¤å¯ç”¨ \opt{GBK} 选项;ä¸è¿‡ï¼Œç”¨æˆ·ä¹Ÿå¯ä»¥
-% 显å¼å£°æ˜Ž \opt{UTF8} 选项,使 \CTeX{} å®é›†å·¥ä½œåœ¨ UTF-8 ç¼–ç ä¸‹ã€‚
+% 用户需è¦\emph{ä¿è¯ç¼–译方å¼ã€æºæ–‡ä»¶ç¼–ç ã€å®åŒ…ç¼–ç é€‰é¡¹ä¸‰è€…一致}。
+%
+% \emph{我们建议编写新文档时始终使用 UTF-8 ç¼–ç ï¼Œè€Œä»…把 GBK ç¼–ç ç•™ç»™
+% 历å²é—留文档。}
% \end{function}
%
% \subsection{中文字库}
@@ -920,9 +916,9 @@ Copyright and Licence
%
% 以往,为 \LaTeX{} 文档é…置中文支æŒæ˜¯ä¸€ä»¶ç›¸å½“ç¹ç的事情。默认情况下,
% \CTeX{} å®é›†èƒ½è‡ªåŠ¨æ£€æµ‹ç”¨æˆ·ä½¿ç”¨çš„编译方å¼ï¼ˆå‚è§ \ref{subs:compile}~节)和
-% æ“作系统\footnote{\CTeX{} å®é›†çŽ°åœ¨èƒ½å¤Ÿè¯†åˆ« Mac~OS~X ç³»ç»Ÿä»¥åŠ Windows 系统。},
-% 选择åˆé€‚的底层支æŒå’Œå­—库,从而简化é…置过程。自动é…置的情况å‚è§
-% 表~\ref{tab:default-font-select}。
+% æ“作系统\footnote{\CTeX{} å®é›†çŽ°åœ¨èƒ½å¤Ÿè¯†åˆ« macOS åŠ Windows 系统,
+% 并将其他系统统一归为 Linux。},选择åˆé€‚的底层支æŒå’Œå­—库,从而简化é…置过程。
+% 自动é…置的情况å‚è§è¡¨~\ref{tab:default-font-select}。
%
% \begin{table}[htbp]
% \centering
@@ -931,42 +927,50 @@ Copyright and Licence
% \label{tab:default-font-select}
% \begin{tabular}{*{5}{c}}
% \toprule
-% & Mac OS X & Windows New\tnote{1} & Windows Old\tnote{2} &
-% 其他 \\
+% & macOS Old\tnote{1}
+% & macOS New\tnote{2}
+% & Windows\tnote{3}
+% & 其他 \\
% \midrule
-% \XeLaTeX{} & \makecell{\pkg{xeCJK}\\åŽæ–‡å­—库} &
-% \makecell{\pkg{xeCJK}\\中易字库 + 微软雅黑} & \makecell{\pkg{xeCJK}\\中易字库} &
-% \makecell{\pkg{xeCJK}\\Fandol 字库\tnote{3}} \\
+% \XeLaTeX & \makecell{\pkg{xeCJK}\\åŽæ–‡å­—库}
+% & \makecell{\pkg{xeCJK}\\åŽæ–‡å­—库 + 苹方}
+% & \makecell{\pkg{xeCJK}\\中易字库 + 微软雅黑}
+% & \makecell{\pkg{xeCJK}\\Fandol 字库\tnote{4}} \\
% \cmidrule(lr){1-5}
-% \LuaLaTeX{}\tnote{4} & \makecell{\pkg{LuaTeX-ja}\\åŽæ–‡å­—库} &
-% \makecell{\pkg{LuaTeX-ja}\\中易字库 + 微软雅黑} &
-% \makecell{\pkg{LuaTeX-ja}\\中易字库} &
-% \makecell{\pkg{LuaTeX-ja}\\Fandol 字库} \\
+% \LuaLaTeX\tnote{5}
+% & \makecell{\pkg{LuaTeX-ja}\\åŽæ–‡å­—库}
+% & \makecell{\pkg{LuaTeX-ja}\\åŽæ–‡å­—库 + 苹方}
+% & \makecell{\pkg{LuaTeX-ja}\\中易字库 + 微软雅黑}
+% & \makecell{\pkg{LuaTeX-ja}\\Fandol 字库} \\
% \cmidrule(lr){1-5}
-% \pdfLaTeX{} & ä¸å¯ç”¨\tnote{5} &
-% \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库 + 微软雅黑} &
-% \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库} & ä¸å¯ç”¨\tnote{5} \\
+% \pdfLaTeX
+% & ä¸å¯ç”¨
+% & ä¸å¯ç”¨
+% & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库 + 微软雅黑\tnote{6}}
+% & ä¸å¯ç”¨ \\
% \cmidrule(lr){1-5}
-% \makecell{\LaTeX{} + \\\dvipdfmx{}} & ä¸å¯ç”¨\tnote{6} &
-% \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库 + 微软雅黑} &
-% \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库} &
-% \makecell{\pkg{CJK} + \pkg{zhmetrics}\\Fandol 字库} \\
+% \makecell{\LaTeX{} + \\\dvipdfmx}
+% & ä¸å¯ç”¨
+% & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\åŽæ–‡å­—库 + 苹方}
+% & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库 + 微软雅黑\tnote{6}}
+% & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\Fandol 字库} \\
% \cmidrule(lr){1-5}
-% \makecell{\upLaTeX{} + \\\dvipdfmx{}} & ä¸å¯ç”¨\tnote{6} &
-% \makecell{\pkg{zhmetrics-uptex}\\中易字库 + 微软雅黑} &
-% \makecell{\pkg{zhmetrics-uptex}\\中易字库} &
-% \makecell{\pkg{zhmetrics-uptex}\\Fandol 字库} \\
+% \makecell{\upLaTeX{} + \\\dvipdfmx}
+% & ä¸å¯ç”¨
+% & \makecell{\pkg{zhmetrics-uptex}\\åŽæ–‡å­—库 + 苹方}
+% & \makecell{\pkg{zhmetrics-uptex}\\中易字库 + 微软雅黑}
+% & \makecell{\pkg{zhmetrics-uptex}\\Fandol 字库} \\
% \bottomrule
% \end{tabular}
% \begin{tablenotes}
-% \item [1] Windows Vista åŠä»¥åŽçš„ Windows æ“作系统。
-% \item [2] Windows XP åŠä»¥å‰çš„ Windows æ“作系统。
-% \item [3] 由马起园ã€è‹æ°ã€é»„晨æˆç­‰äººå¼€å‘çš„å¼€æºä¸­æ–‡å­—体,
-% å‚è§ï¼š\url{https://github.com/clerkma/fandol-fonts}。
-% \item [4] \LuaLaTeX{} 编译时使用 \pkg{LuaTeX-ja} å®åŒ…。对此,
+% \item [1] Yosemite (10.10) åŠä»¥å‰çš„ macOS 系统。
+% \item [2] El Capitan (10.11) åŠä»¥åŽçš„ macOS 系统。
+% \item [3] ä»…æ”¯æŒ Windows Vista åŠä»¥åŽçš„ Windows æ“作系统。
+% \item [4] 由马起园ã€è‹æ°ã€é»„晨æˆç­‰äººå¼€å‘çš„å¼€æºä¸­æ–‡å­—体,
+% å‚è§ï¼š\url{https://www.ctan.org/pkg/fandol}。
+% \item [5] \LuaLaTeX{} 编译时使用 \pkg{LuaTeX-ja} å®åŒ…。对此,
% 第 \ref{sec:lualatex-chinese}~节有特别说明。
-% \item [5] å— \pdfTeX{} çš„é™åˆ¶ï¼Œæ— æ³•åµŒå…¥ OpenType 字体。
-% \item [6] ç›®å‰å— \dvipdfmx{} çš„é™åˆ¶ï¼ŒMac OS X 系统上的黑体和仿宋无法读å–。
+% \item [6] 微软雅黑字体并ä¸æ€»æ˜¯æœ‰æ•ˆï¼Œè¿™å’Œé€‰é¡¹ \opt{zhmap} çš„å–值有关。
% \end{tablenotes}
% \end{threeparttable}
% \end{table}
@@ -980,14 +984,20 @@ Copyright and Licence
% \begin{syntax}
% zhmap = <\TTF|zhmCJK>
% \end{syntax}
-% 指定字体映射机制。本选项åªåœ¨ä½¿ç”¨ \pdfLaTeX/\LaTeX{} 编译时有æ„义。
+% 指定字体映射机制。本选项åªåœ¨ä½¿ç”¨ (pdf)\LaTeX{} 编译时有æ„义。
% \end{function}
% \begin{optdesc}
-% \item[true] 使用 \pkg{zhmetrics} å®åŒ…,将 CJK 字库通过 \tn{special}
+% \item[true] 这是该选项的默认值。^^A
+% \footnote{对于以键值对形å¼æ供的选项,文档以\textbf{粗体}æ¥è¡¨ç¤ºå…¶é»˜è®¤å€¼ã€‚^^A
+% 下åŒï¼Œä¸å†é¢å¤–解释。}使用 \pkg{zhmetrics} å®åŒ…,将 CJK 字库通过 \tn{special}
% 命令映射到 \file{.ttf} 文件。
%
% \item[false] 使用传统的 CJK 字库(Type 1)^^A
-% \footnote{如果需è¦ä½¿ç”¨è‡ªå®šä¹‰çš„字体映射文件,或者希望使用 Type1 字库,请ç¦ç”¨æœ¬é€‰é¡¹ã€‚}。
+% \footnote{使用 (pdf)\LaTeX{} 编译时,如果需è¦ä½¿ç”¨è‡ªå®šä¹‰çš„字体映射文件(比如需è¦
+% 使用 \LaTeX{} + Dvips 编译),或者希望使用 Type1 字库,请ç¦ç”¨æœ¬é€‰é¡¹ã€‚为此,你
+% å¯èƒ½éœ€è¦å®‰è£… CJK 字体。å‚考 \pkg{zhmetrics} å®åŒ…æ供的脚本
+% \href{https://github.com/CTeX-org/ctex-kit/blob/master/zhmetrics/CTeXFonts.lua}
+% {\file{CTeXFonts.lua}}。}。
%
% \item[zhmCJK] 载入 \pkg{zhmCJK} å®åŒ…^^A
% \footnote{\pkg{zhmCJK} å®åŒ…基于 \pkg{zhmetrics} å’Œ \pkg{CJK} å®åŒ…,æ供与
@@ -997,8 +1007,7 @@ Copyright and Licence
%
% \begin{function}[added=2014-03-08]{fontset}
% \begin{syntax}
-% fontset =^^A
-% <none|adobe|fandol|founder|mac|macnew|macold|ubuntu|windows|windowsnew|windowsold|...>
+% fontset = <adobe|fandol|founder|mac|macnew|macold|ubuntu|windows|none|...>
% \end{syntax}
% 指定 \CTeX{} å®é›†åŠ è½½çš„字库。
%
@@ -1012,24 +1021,18 @@ Copyright and Licence
% \item[adobe] 使用 Adobe å…¬å¸çš„四款中文字体,\emph{ä¸æ”¯æŒ \pdfLaTeX}。
% \item[fandol] 使用 Fandol 中文字体,\emph{ä¸æ”¯æŒ \pdfLaTeX}。
% \item[founder] 使用方正公å¸çš„中文字体。
-% \item[mac] 使用 Mac OS X 系统下的字体,\emph{ä¸æ”¯æŒ (pdf)\LaTeX}。
-% \item[macnew] 使用 El Capitan 或之åŽçš„多字é‡å®‹ä½“ã€è‹¹æ–¹é»‘体。
-% \item[macold] 使用 Yosemite 或之å‰çš„åŽæ–‡å­—库。
-% \item[ubuntu] 使用 Ubuntu 系统下的文泉驿和文鼎字体。
-% \item[windows] 使用简体中文 Windows 系统下的中文字体,自动判断 Windows 系
-% 统版本,采用 |windowsnew| 或 |windowsold| 的设置。
-% \item[windowsnew] 使用简体中文 Windows Vista 或之åŽç³»ç»Ÿä¸‹çš„中易字体和微软
-% 雅黑字体。
-% \item[windowsold] 使用简体中文 Windows XP 或之å‰ç³»ç»Ÿä¸‹çš„中易字体。
+% \item[mac] 使用 macOS 系统下的字体,\emph{ä¸æ”¯æŒ \pdfLaTeX},根æ®ç‰ˆæœ¬åˆ†ä¸º
+% |macnew| å’Œ |macold| 两ç§ã€‚
+% \item[macnew] 使用 El Capitan 或之åŽçš„多字é‡åŽæ–‡å­—体和苹方字体。
+% \item[macold] 使用 Yosemite 或之å‰çš„åŽæ–‡å­—体。
+% \item[ubuntu] 使用 Ubuntu 系统下的æ€æºå®‹ä½“ã€æ€æºé»‘体和 \TeX{} å‘行版自带的
+% 文鼎楷体,\emph{ä¸æ”¯æŒ \pdfLaTeX}。
+% \item[windows] 使用 Windows 系统下的中易字体和微软雅黑字体。
+% 当使用 (pdf)\LaTeX{} 编译时,微软雅黑仅在以下两ç§æƒ…形有效:
+% 安装有 \pkg{zhmCJK} å®åŒ…且选项 \opt{zhmap=zhmCJK} 时,或者
+% 安装有微软雅黑的 Type1 字体且选项 \opt{zhmap=false} 时。
% \end{optdesc}
%
-% 注æ„:使用 (pdf)\LaTeX{} 编译的时候,若设置 \opt{zhmap = false}(比如需è¦
-% 使用 \LaTeX{} + Dvips 编译),则需è¦æŒ‰ç…§ä¼ ç»Ÿæ–¹å¼^^A
-% \footnote{å¯ä»¥ä½¿ç”¨ \pkg{zhmetrics} å®åŒ…æ供的脚本
-% \href{https://github.com/CTeX-org/ctex-kit/blob/master/zhmetrics/CTeXFonts.lua}
-% {\file{CTeXFonts.lua}}。}^^A
-% 在本地安装好 CJK 字体。
-%
% 如果ä¸æƒ³ä½¿ç”¨ \CTeX{} 预定义的中文字库,å¯ä»¥è®¾ç½® \opt{fontset} 为下述值之一。
%
% \begin{optdesc}
@@ -1043,7 +1046,7 @@ Copyright and Licence
% \end{optdesc}
%
% 注æ„:\emph{如果希望使用 \tn{ctexset} 在导言区指定字库,则需è¦å…ˆåœ¨å®åŒ…/文档类选项中指定
-% \opt{fontset = none}}。例如:
+% \opt{fontset = none}}(这会ç¦ç”¨ \CTeX{} å®é›†çš„æ“作系统检测功能和自动设定字库功能)。例如:
% \begin{ctexexam}
% \documentclass[fontset = none]{ctexart}
% \ctexset{fontset = founder}
@@ -1054,27 +1057,25 @@ Copyright and Licence
% \end{ctexexam}
%
% \CTeX{} å®é›†é¢„定义的中文字库还定义了一些字体命令。除了在 \opt{ubuntu} 字库中没有
-% \tn{fangsong} 的定义外,所有字库都有以下四个字体命令。
-%
+% \tn{fangsong} 的定义外,所有字库都有以下四个字体命令:
% \begin{optdesc}
% \item[\tn{songti}] 宋体,CJK 等价命令 |\CJKfamily{zhsong}|。
% \item[\tn{heiti}] 黑体,CJK 等价命令 |\CJKfamily{zhhei}|。
% \item[\tn{fangsong}] 仿宋,CJK 等价命令 |\CJKfamily{zhfs}|。
% \item[\tn{kaishu}] 楷书,CJK 等价命令 |\CJKfamily{zhkai}|。
% \end{optdesc}
-%
-% 在 \opt{windows} å’Œ \opt{founder} 字库中,é¢å¤–定义了 \tn{lishu} å’Œ \tn{youyuan}。
+% 在 \opt{windows}ã€\opt{founder} å’Œ \opt{macnew} 字库中,é¢å¤–定义了 \tn{lishu}
+% 和 \tn{youyuan}:
% \begin{optdesc}
% \item[\tn{lishu}] 隶书,CJK 等价命令 |\CJKfamily{zhli}|。
% \item[\tn{youyuan}] 圆体,CJK 等价命令 |\CJKfamily{zhyou}|。
% \end{optdesc}
-% 在 \opt{windowsnew} 和 \opt{macnew} 字库中,还有 \tn{yahei}。
-% 其中在 \opt{macnew} 字库中,\tn{yahei} 实际调用苹方黑体。此举乃是为了更好的兼容性而设。
+% 在 \opt{windows} 字库中还定义了 \tn{yahei}。出于兼容性的考虑,\tn{yahei} 命令
+% 在 \opt{macnew} 字库中也有定义,但实际调用苹方黑体:
% \begin{optdesc}
% \item[\tn{yahei}] 微软雅黑,CJK 等价命令 |\CJKfamily{zhyahei}|。
% \end{optdesc}
-%
-% 在 \opt{macnew} 字库中,还定义了 \tn{pingfang}。
+% 在 \opt{macnew} 字库中,还定义了 \tn{pingfang}:
% \begin{optdesc}
% \item[\tn{pingfang}] 苹方黑体,CJK 等价命令 |\CJKfamily{zhpf}|。
% \end{optdesc}
@@ -1093,9 +1094,10 @@ Copyright and Licence
% 本选项å¯ä»¥ç”¨äºŽå››ä¸ª \CTeX{} 文档类和 \pkg{ctex} å®åŒ…,
% 也å¯ä»¥ç”¨äºŽ \pkg{ctexsize} å®åŒ…。
%
-% \opt{scheme = chinese} 时,对标准文档类默认值为 |5|,å³è®¾ç½®
-% \tn{normalsize} 为五å·å­—;对 \cls{beamer} 则为 |false|,使用文档类原有的设
-% 置。
+% 该选项的默认值与 \opt{scheme} çš„å–值有关。
+% 当 \opt{scheme = chinese} 时,对标准文档类默认值为 |5|,å³è®¾ç½®
+% \tn{normalsize} 为五å·å­—;对 \cls{beamer} 则为 |false|,使用文档类原有的设置。
+% 当 \opt{scheme = plain} 时,该选项ä¸è®¾é»˜è®¤å€¼ï¼Œæ²¿ç”¨æ ‡å‡†æ–‡æ¡£ç±»æˆ– \cls{beamer} 的原有设置。
% \end{function}
%
% \begin{table}[htbp]
@@ -1150,8 +1152,7 @@ Copyright and Licence
% 本选项åªèƒ½åœ¨è°ƒç”¨ \pkg{ctex.sty} 时作为å®åŒ…选项使用。
%
% \CTeX{} å®é›†æ供了一套用于修改文档章节标题格å¼çš„接å£ã€‚该选项用于选择是å¦
-% å¯ç”¨è¯¥åŠŸèƒ½ã€‚详细的设置方法请å‚è§
-% \ref{sec:secstyle}~节和 \ref{subs:pagestyle}~节。
+% å¯ç”¨è¯¥åŠŸèƒ½ã€‚详细的设置方法请å‚è§ç¬¬ \ref{subs:pagestyle}~节和第 \ref{sec:secstyle}~节。
% \end{function}
%
% \CTeX{} å®é›†æ供的四个文档类总是å¯ç”¨è¯¥åŠŸèƒ½ã€‚如果在 \pkg{ctex.sty} 下å¯ç”¨è¯¥é€‰é¡¹ï¼Œ
@@ -1169,7 +1170,7 @@ Copyright and Licence
% çš„æ ¼å¼ã€‚å¯ç”¨ \opt{sub4section} 会将 \tn{paragraph} å’Œ \tn{subparagraph} çš„æ ¼å¼
% 都修改为类似 \tn{section} çš„æ ¼å¼ã€‚
%
-% å¯ç”¨è¯¥é€‰é¡¹é€šå¸¸éœ€è¦å°†è®¡æ•°å™¨ |secnumdepth| 的值为设置为 4 或 5。
+% å¯ç”¨è¯¥é€‰é¡¹é€šå¸¸è¿˜éœ€è¦å°†è®¡æ•°å™¨ |secnumdepth| 的值为设置为 4 或 5。
%
% 具体格å¼å¯å‚考 \ref{sec:secstyle}~节中的 \opt{runin} å’Œ \opt{afterskip} 选项。
%
@@ -1185,7 +1186,7 @@ Copyright and Licence
% \begin{syntax}
% scheme = <(chinese)|plain>
% \end{syntax}
-% 选择文章的排版方案,预设有 \opt{chinese} å’Œ \opt{plain} 两ç§æ–¹æ¡ˆã€‚%
+% 选择文章的排版方案,预设有 \opt{chinese} å’Œ \opt{plain} 两ç§æ–¹æ¡ˆã€‚
% \end{function}
% \begin{optdesc}[itemsep=\medskipamount]
% \item[chinese] 对 \cls{beamer} 以外的文档类,调整默认字å·ä¸ºäº”å·å­—,并调
@@ -1224,14 +1225,14 @@ Copyright and Licence
% \begin{syntax}
% space = <\TF|(auto)>
% \end{syntax}
-% 是å¦åœ¨ç”Ÿæˆçš„ PDF 中ä¿ç•™æ±‰å­—åŽé¢çš„空格。
+% 是å¦åœ¨ç”Ÿæˆçš„ PDF 中ä¿ç•™æ±‰å­—åŽé¢çš„空格。该选项仅在使用 \XeLaTeX{}/(pdf)\LaTeX{} 编译时有效。
% \end{function}
%
% \begin{optdesc}
% \item[true] 总是ä¿ç•™æ±‰å­—åŽçš„空格。此时,用户需è¦è‡ªè¡Œåœ¨è¡Œå°¾åŠ ä¸Š~|%|~处ç†æ¢è¡Œäº§ç”Ÿ
% 的空格\footnote{\LaTeX{} å°†å•ä¸ªæ¢è¡Œè§†ä½œä¸€ä¸ªç©ºæ ¼ã€‚}。
-% \item[false] 总是忽略掉汉字åŽé¢çš„空格,ä¸è®ºæ±‰å­—åŽæ˜¯ä»€ä¹ˆï¼ˆä½¿ç”¨ (pdf)\LaTeX{}
-% 编译时);等åŒäºŽ \opt{auto} 的效果(使用 \XeLaTeX{} 编译时)。ä¸å»ºè®®ä½¿ç”¨è¯¥é€‰é¡¹ã€‚
+% \item[false] 使用 (pdf)\LaTeX{} 编译时:总是忽略掉汉字åŽé¢çš„空格,ä¸è®ºæ±‰å­—åŽæ˜¯ä»€ä¹ˆï¼›
+% 使用 \XeLaTeX{} 编译时,等åŒäºŽ \opt{auto} 的效果。ä¸å»ºè®®ä½¿ç”¨è¯¥é€‰é¡¹ã€‚
% \item[auto] æ ¹æ®ç©ºæ ¼åŽé¢çš„情况决定是å¦ä¿ç•™ï¼šå¦‚果空格åŽé¢æ˜¯æ±‰å­—,则忽略该
% 空格,å¦åˆ™ä¿ç•™ã€‚
% \end{optdesc}
@@ -1278,8 +1279,10 @@ Copyright and Licence
% \begin{optdesc}
% \item[\meta{数值或带å•ä½çš„数值}] 用于设置段首缩进的长度。如果ä¸å¸¦å•ä½ï¼Œåˆ™é»˜è®¤
% å•ä½æ˜¯å•ä¸ªæ±‰å­—字宽 \tn{ccwd};如果带å•ä½ï¼Œåˆ™ä½¿ç”¨è¯¥å•ä½ã€‚
+% è‹¥è¦æ˜¾å¼ä½¿ç”¨ \tn{ccwd} 为å•ä½ï¼Œåˆ™å¿…须在导言区进行设置。
%
-% \item[true] 等价于设置 \opt{autoindent = 2}。
+% \item[true] 等价于设置 \opt{autoindent = 2} 或
+% 在导言区设置 \opt{autoindent = 2\tn{ccwd}}。
%
% \item[false] ç¦ç”¨è‡ªåŠ¨è°ƒæ•´åŠŸèƒ½ï¼Œå¯ä»¥è®¾ç½®å›ºå®šé•¿åº¦çš„段首缩进。如设置æ¯æ®µç¼©è¿› 40 点:
% \begin{ctexexam}
@@ -1315,7 +1318,7 @@ Copyright and Licence
% \subsection{日期汉化}
%
% \CTeX å®åŒ…对显示当å‰æ—¥æœŸçš„ \tn{today} 命令进行了汉化,使之以中文的方å¼æ˜¾ç¤ºä»Š
-% 天的日期。如编译本文档的日期就是“\todayâ€ã€‚
+% 天的日期。如本文档编译时的日期是“\todayâ€ã€‚
%
% \begin{function}[EXP]{today}
% \begin{syntax}
@@ -1329,6 +1332,7 @@ Copyright and Licence
% 效果为“\todayâ€ã€‚使用全汉字的日期格å¼ã€‚
% \item[old] \ctexset{today=old}
% 效果为“\todayâ€ã€‚使用文档原æ¥çš„(英文)日期格å¼ã€‚
+% \ctexset{today=small} ^^A NOTE(Liam): å¤åŽŸè®¾å®šæ˜¯å¥½ä¹ æƒ¯ã€‚
% \end{optdesc}
% \end{function}
%
@@ -1343,7 +1347,7 @@ Copyright and Licence
% \subsection{文档标题汉化}
% \label{subs:capname}
%
-% 这里主è¦ä»‹ç»ç”±å®åŒ… \opt{scheme} 选项(\ref{subs:options-type-style}~节)控制
+% 这里主è¦ä»‹ç»ç”± \opt{scheme} 选项(\ref{subs:options-type-style}~节)控制
% 的文档标题汉化功能。
%
% 设置文档标题å的示例å¯è§ä¾‹~\ref{exam:capname}。下é¢çš„选项(如
@@ -1413,8 +1417,16 @@ Copyright and Licence
% \begin{syntax}
% bibname = <åå­—>
% \end{syntax}
-% 设置å‚考文献标题å \tn{refname}(对 \cls{article})或 \tn{bibname}(对
-% \cls{report}ã€\cls{book} å’Œ \cls{beamer})。中文默认为“\refnameâ€ã€‚
+% 设置å‚考文献标题å。中文默认为“\refnameâ€ã€‚
+%
+% 在标准文档类中 \cls{article} çš„å‚考文献åä½¿ç”¨å® \tn{refname},而
+% \cls{book} å’Œ \cls{report} ä½¿ç”¨å® \tn{bibname}。本选项会根æ®æ ‡å‡†æ–‡æ¡£ç±»çš„ä¸åŒï¼Œè‡ªåŠ¨
+% 设定 \tn{refname} 或是 \tn{bibname}。因此,对于标准文档类åŠå¯¹åº”çš„ \CTeX{} 文档类
+% å¯ä»¥ç»Ÿä¸€åœ°ä½¿ç”¨ \opt{bibname} 选项æ¥æŽ§åˆ¶å‚考文献标题å。
+%
+% 对于 \cls{beamer} åŠå¯¹åº”çš„ \cls{ctexbeamer} æ¥è¯´ï¼Œå®ƒä»¬åŒæ—¶å…·æœ‰å® \tn{bibname} å’Œ
+% å® \tn{refname}。本选项仅控制其中的 \tn{bibname}ï¼›
+% \tn{refname} 则交由 \opt{refname} 选项控制。
% \end{function}
%
% \begin{function}[EXP]{proofname}
@@ -1433,6 +1445,10 @@ Copyright and Licence
% refname = <åå­—>
% \end{syntax}
% 设置å‚考文献标题å \tn{refname}。中文默认为“\refnameâ€ã€‚
+%
+% 注æ„,三个标准文档类(åŠç›¸åº”çš„ \CTeX{} 文档类)的å‚考文献标题åç”± \opt{bibname} 选项
+% 统一设置,本选项仅适用于 \cls{beamer} åŠå…¶å¯¹åº”çš„ \cls{ctexbeamer}。
+% 在三个标准文档类(åŠç›¸åº”çš„ \CTeX{} 文档类)中使用 \opt{refname} 选项会报错。
% \end{function}
%
% \begin{function}[EXP]{algorithmname}
@@ -1455,8 +1471,10 @@ Copyright and Licence
% \subsection{页é¢æ ¼å¼è®¾ç½®ä¸Žæ±‰åŒ–}
% \label{subs:pagestyle}
%
-% 当使用了 \CTeX 的文档类或是用 \pkg{ctex} å®åŒ…加载了 \opt{heading} 选项时,会
-% 设置整个文档的页é¢æ ¼å¼ï¼ˆpage style)为 |headings|,å³ç›¸å½“于设置了
+% 页é¢æ ¼å¼è®¾ç½®ä¸Žæ±‰åŒ–的功能(åŠç« èŠ‚标题样å¼è®¾ç½®åŠŸèƒ½ï¼Œè§ç¬¬ \ref{sec:secstyle} 节)^^A
+% ç”± \pkg{ctexheading} å®åŒ…完æˆã€‚加载该å®åŒ…时,或者使用 \CTeX{} 文档类时,^^A
+% 或者是使用 \pkg{ctex} å®åŒ…并设定选项 \opt{heading = true} 时,相关功能被激活。
+% 此时,整个文档的页é¢æ ¼å¼ï¼ˆpage style)被设定为 |headings|,å³ç›¸å½“于设置了
% \begin{frameverb}
% \pagestyle{headings}
% \end{frameverb}
@@ -1481,7 +1499,7 @@ Copyright and Licence
% \tn{chaptermark}ã€\tn{sectionmark} 中调用 \tn{markright} 或 \tn{markboth} 生
% æˆçš„。
% \end{itemize}
-% 有关 \LaTeX 页é¢æ ‡è®°çš„涵义与使用细节,已ç»è¶…出了本文档讨论的范围。å¯ä»¥å‚考
+% 有关 \LaTeX 页é¢æ ‡è®°çš„å«ä¹‰ä¸Žä½¿ç”¨ç»†èŠ‚,已ç»è¶…出了本文档讨论的范围。å¯ä»¥å‚考
% \cite[Chapter~23]{knuthtex1986}ã€\cite[\S4.3, \S4.4]{mittelbach2004} 等书ç±ã€‚
%
% 这里举一个例å­ï¼Œè¯´æ˜Žé€šè¿‡é‡å®šä¹‰ \tn{sectionmark},在 \cls{ctexart} 文档类中的
@@ -1548,41 +1566,50 @@ Copyright and Licence
% \smallskip\hrule
% \end{trivlist}
%
-% \section{章节标题格å¼è®¾ç½®}
+% \section{章节标题样å¼è®¾ç½®}
% \label{sec:secstyle}
%
-% \CTeX å®åŒ…对 \LaTeX 的标准文档类(\cls{article}ã€\cls{report} å’Œ
-% \cls{book})和 \cls{beamer} 进行了扩充。当以 \opt{heading} 选项调用 \CTeX
-% å®åŒ…时(\ref{subs:options-heading}~节),则会å¯ç”¨ç« 
-% 节标题的格å¼è®¾ç½®åŠŸèƒ½ã€‚本节就æ¥ä»‹ç»æœ‰å…³ç« èŠ‚标题的格å¼é€‰é¡¹ï¼Œæ‰€æœ‰é€‰é¡¹ä½¿ç”¨
-% \tn{ctexset} 命令设置。
+% \CTeX{} å®é›†å¯¹ \LaTeX{} 的标准文档类(\cls{article}ã€\cls{report}ã€
+% \cls{book})和 \cls{beamer} 进行了章节标题样å¼è®¾ç½®åŠŸèƒ½çš„扩充。
+% 章节标题样å¼è®¾ç½®åŠŸèƒ½ï¼ˆåŠé¡µé¢æ ¼å¼è®¾ç½®ä¸Žæ±‰åŒ–功能,è§ç¬¬ \ref{subs:pagestyle} 节)^^A
+% ç”± \pkg{ctexheading} å®åŒ…完æˆã€‚加载该å®åŒ…时,或者使用 \CTeX{} 文档类时,^^A
+% 或者是使用 \pkg{ctex} å®åŒ…并设定选项 \opt{heading = true} 时,相关功能被激活。
+% 其中,独立使用 \pkg{ctexheading} å®åŒ…时,本节介ç»å„选项的默认值与指定
+% \opt{scheme = plain} 时相åŒã€‚
%
-% 第 \ref{subs:pagestyle} 节和本节介ç»çš„功能已ç»è¢«æå–到 \pkg{ctexheading}
-% å®åŒ…之中,å¯ä»¥åœ¨ \pkg{ctex} å®åŒ…å’Œ \cls{ctexart} 等文档类之外独立使用。
-% å„选项的默认值与 \opt{scheme = plain} 时的情形相åŒã€‚
+% 本节涉åŠçš„所有选项å‡éœ€ä½¿ç”¨ \tn{ctexset} 命令设置。
%
% \changes{v2.0}{2015/03/21}{\tn{CTEXsetup}, \tn{CTEXoptions} 是过时命令。}
-% 章节标题的格å¼é€‰é¡¹æ˜¯åˆ†å±‚设置的。顶层的选项是章节标题å称,次一级的选项是章节
-% 标题的格å¼ã€‚章节标题å包括 |part|, |chapter|, |section|, |subsection|,
-% |subsubsection|, |paragraph|, |subparagraph|;而å¯ç”¨çš„æ ¼å¼åŒ…括 \opt{numbering},
-% \opt{name}, \opt{number}, \opt{format}, \opt{nameformat}, \opt{numberformat},
-% \opt{aftername}, \opt{titleformat}, \opt{aftertitle}, \opt{runin},
-% \opt{afterindent}, \opt{beforeskip}, \opt{afterskip}, \opt{fixskip},
-% \opt{lotskip}, \opt{lofskip}, \opt{indent}, \opt{hang},
-% \opt{pagestyle}, \opt{break}, \opt{tocline} 等。
+%
+% 章节标题的样å¼é€‰é¡¹æ˜¯åˆ†å±‚设置的。顶层的选项是章节标题å称(例如 |section|),
+% 次一层的选项是章节标题的样å¼ï¼ˆä¾‹å¦‚ \opt{nameformat})。章节标题å称包括
+% |part|, |chapter|, |section|, |subsection|, |subsubsection|, |paragraph|,
+% |subparagraph|。å¯ç”¨çš„æ ·å¼é€‰é¡¹åŒ…括:
+% \begin{itemize}
+% \item ç¼–å·ç›¸å…³ï¼ˆ\ref{subsec:sec-number}~å°èŠ‚):
+% \opt{numbering}, \opt{name}, \opt{number}
+% \item æ ¼å¼ç›¸å…³ï¼ˆ\ref{subsec:sec-format}~å°èŠ‚):
+% \opt{format}, \opt{nameformat}, \opt{numberformat}, \opt{titleformat},
+% \opt{aftername}, \opt{aftertitle}, \opt{pagestyle}
+% \item é—´è·ã€ç¼©è¿›ç›¸å…³ï¼ˆ\ref{subsec:sec-spacing}~å°èŠ‚):
+% \opt{runin}, \opt{hang}, \opt{indent}, \opt{beforeskip}, \opt{afterskip},
+% \opt{fixskip}, \opt{break}, \opt{afterindent}
+% \item 目录ã€é™„录相关(\ref{subsec:sec-toc-appendix}~å°èŠ‚):
+% \opt{tocline}, \opt{lofskip}, \opt{lotskip}, \opt{appendix/numbering},
+% \opt{appendix/name}, \opt{appendix/number}
+% \end{itemize}
%
% 注æ„,对 \cls{article} åŠå…¶è¡ç”Ÿçš„ \cls{ctexart} 等文档类,没有 |chapter|
-% 级别的标题。而对于 \cls{beamer} 文档类,这些选项控制的是由 \tn{partpage},
-% \tn{sectionpage} å’Œ \tn{subsectionpage} 产生的标题格å¼ï¼Œæ­¤æ—¶åªæœ‰ |part|,
+% 级别的标题;而对于 \cls{beamer} 文档类,这些选项控制的是由 \tn{partpage},
+% \tn{sectionpage} å’Œ \tn{subsectionpage} 产生的标题样å¼ï¼Œæ­¤æ—¶åªæœ‰ |part|,
% |section| 和 |subsection| 这三层级别,并且 \opt{runin}, \opt{afterindent},
-% \opt{fixskip}, \opt{hang}, \opt{break} å’Œ \opt{tocline} 这六个格å¼æ— æ•ˆã€‚
+% \opt{fixskip}, \opt{hang}, \opt{break} 和 \opt{tocline} 这六个选项无效。
%
-% 多级选项之间用斜线分开,例如,\opt{part/name} 选项设置 \tn{part} 标题的在数
+% 多层选项之间用斜线分开,例如,\opt{part/name} 选项设置 \tn{part} 标题的在数
% å­—å‰åŽçš„å称,而 \opt{section/number} 选项设置 \tn{section} 标题的数字类型。
-% 注æ„,斜线 |/| å‰åŽä¸èƒ½æœ‰ç©ºæ ¼æˆ–者æ¢è¡Œã€‚
-%
-% 使用 \tn{ctexset} 设置多级选项时,å¯ä»¥åœ¨åŒä¸€ä¸ªä¸Šçº§é€‰é¡¹ä¸‹è®¾ç½®å¤šä¸ªä¸‹çº§é€‰é¡¹ã€‚
+% 注æ„,斜线 |/| çš„å‰åŽä¸èƒ½æœ‰ç©ºæ ¼æˆ–者æ¢è¡Œã€‚
%
+% 使用 \tn{ctexset} 设置多级选项时,还å¯ä»¥åœ¨åŒä¸€ä¸ªä¸Šçº§é€‰é¡¹ä¸‹è®¾ç½®å¤šä¸ªä¸‹çº§é€‰é¡¹ã€‚
% 例如,åŒæ—¶è®¾ç½® |part| 一级标题的 \opt{pagestyle} 选项,|chapter| 一级标题的
% \opt{format} 与 \opt{pagestyle} 选项和 |section| 一级标题的 \opt{name} 与
% \opt{number} 选项:
@@ -1600,32 +1627,55 @@ Copyright and Licence
% }
% \end{ctexexam}
%
+% \subsection{ç¼–å·ç›¸å…³}
+% \label{subsec:sec-number}
+%
% \begin{function}[EXP,added=2015-06-21]{part/numbering, chapter/numbering,
% section/numbering, subsection/numbering, subsubsection/numbering,
% paragraph/numbering, subparagraph/numbering}
% \begin{syntax}
% numbering = \TTF
% \end{syntax}
-% 控制是å¦å¯¹ç« èŠ‚标题编å·ã€‚对å„级标题的默认值å‡ä¸º \opt{true}。
+% 控制是å¦å¯¹\emph{ä¸å¸¦æ˜Ÿå·}的章节标题进行编å·ã€‚
+% å„级标题的默认值å‡ä¸º \opt{true}。
+%
+% \LaTeX{} 标准的章节标题命令(如 \tn{section})大体上完æˆå››é¡¹å·¥ä½œï¼š
+% 输出标题内容ã€å¯¹æ ‡é¢˜ç¼–å·ï¼ˆè®¡æ•°å™¨å¢žåŠ  1)ã€å°†æ ‡é¢˜åˆ—入目录(若调用了
+% \pkg{hyperref} å®åŒ…还会添加 PDF 书签)ã€æ›´æ–°é¡µçœ‰é¡µè„šæ ‡è®°ã€‚带星å·çš„
+% 章节标题命令(如 \tn{section*})åªç®€å•åœ°è¾“出章节标题内容,但ä¸å¯¹æ ‡é¢˜ç¼–å·ï¼Œ
+% ä¸å°†æ ‡é¢˜åˆ—入目录或 PDF 书签,也ä¸å†™å…¥é¡µçœ‰é¡µè„šæ ‡è®°ã€‚与之ä¸åŒçš„是,
+% 本选项仅仅是å¦å¯¹\emph{ä¸å¸¦æ˜Ÿå·}的章节标题进行编å·ã€‚因此,当设置本选项为
+% \opt{false} 时,除了ä¸å¯¹æ ‡é¢˜ç¼–å·ä»¥å¤–,其余功能与正常标题一致:å¯ä»¥
+% 编入目录,并生æˆæ­£ç¡®çš„ \pkg{hyperref} 目录超链接ä½ç½®å’Œé¡µçœ‰é¡µè„šæ ‡è®°ã€‚例如:
+% \begin{ctexexam}
+% \documentclass{ctexbook}
+% \begin{document}
+% \tableofcontents
+% \chapter{A}
+% \chapter*{B}
+% \ctexset{chapter/numbering=false}
+% \chapter{C}
+% \end{document}
+% \end{ctexexam}
+% 三章的标题分别为“第一章\quad Aâ€ã€â€œBâ€å’Œâ€œCâ€ï¼Œä½†åœ¨ç›®å½•ä¸­åˆ™åªå‡ºçŽ°
+% “第一章\quad Aâ€å’Œâ€œCâ€ã€‚
%
-% 我们知é“,\LaTeX{} 带星å·çš„章节标题命令(如 \tn{section*})ä¸ä¼šå¯¹æ ‡é¢˜ç¼–å·ï¼Œ
-% 但也ä¸ä¼šå°†è¯¥æ²¡ç¼–å·çš„标题编入目录中。本选项控制的是ä¸å¸¦æ˜Ÿå·çš„标题命令是å¦ç¼–å·ã€‚
-% 设置本选项为 \opt{false},除了ä¸å¯¹æ ‡é¢˜ç¼–å·ä»¥å¤–,功能与正常标题一致,
-% 比如å¯ä»¥ç¼–目录,正确的 \pkg{hyperref} 目录超链接ä½ç½®å’Œé¡µçœ‰æ ‡è®°ã€‚
+% 注æ„,章节标题是å¦ç¼–å·è¿˜è¦å—到 \LaTeX{} 计数器 |secnumdepth| 的控制。
+% 例如,对于 |section| 而言,其深度为 1。因此,|section| 会被编å·ï¼Œå½“且仅当
+% |secnumdepth| ä¸å°äºŽ 1,并且 \opt{section/numbering} 为 \opt{true},
+% 并且使用ä¸å¸¦æ˜Ÿå·çš„ç« èŠ‚æ ‡é¢˜å‘½ä»¤ï¼ˆå³ \tn{section})。
%
-% 注æ„,章节标题的编å·æ·±åº¦å— \LaTeX{} 计数器 |secnumdepth| 的控制。
-% \opt{numbering} 选项在 |secnumdepth| 的控制下起作用。
+% 如果没有特别说明,以下将用 “|...|†代表å„级章节标题å。
% \end{function}
%
-% 如果没有特别说明,以下将用 “|...|†代表å„级章节标题å。
-%
% \begin{function}[EXP,updated=2014-03-08]{.../name}
% \begin{syntax}
% name = \{<å‰åå­—>,<åŽåå­—>\}
% name = \Arg{å‰åå­—}
% \end{syntax}
-% 设置章节的å字。åå­—å¯ä»¥åˆ†ä¸ºå‰åŽä¸¤éƒ¨åˆ†ï¼Œå³ç« èŠ‚ç¼–å·å‰åŽçš„è¯è¯­ï¼Œä¸¤ä¸ªè¯ä¹‹é—´ç”¨
-% 一个åŠè§’逗å·åˆ†å¼€ï¼›ä¹Ÿå¯ä»¥åªæœ‰ä¸€éƒ¨åˆ†ï¼Œè¡¨ç¤ºåªæœ‰ç« èŠ‚ç¼–å·ä¹‹å‰çš„å字。例如:
+% 设置章节的å字。所谓“章节的åå­—â€ï¼Œå¯ä»¥åˆ†ä¸ºå‰åŽä¸¤éƒ¨åˆ†ï¼Œå³ç« èŠ‚ç¼–å·å‰åŽçš„
+% è¯è¯­ï¼Œä¸¤ä¸ªè¯ä¹‹é—´ç”¨ä¸€ä¸ªåŠè§’逗å·åˆ†å¼€ï¼›ä¹Ÿå¯ä»¥åªæœ‰ä¸€éƒ¨åˆ†ï¼Œè¡¨ç¤ºåªæœ‰ç« èŠ‚ç¼–å·ä¹‹å‰
+% çš„å字。例如:
% \begin{ctexexam}
% \ctexset{
% chapter/name = {第,章},
@@ -1633,30 +1683,32 @@ Copyright and Licence
% }
% \end{ctexexam}
% 会使得 \tn{chapter} 标题使用形如“第一章â€çš„å字,而 \tn{section} 标题则使
-% 用形如“\S1â€çš„å字。
+% 用形如“\S1â€çš„å字。该选项的默认设置è§è¡¨~\ref{tab:name-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{name} 选项的默认设置}
-% \begin{tabular}{llll}
-% \toprule
-% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} & 注 \\
-% \midrule
-% part & |{第,部分}| & |{\partname\space}| & 原 \tn{partname} 为 Part \\
-% chapter & |{第,章}| & |{\chaptername\space}|
-% & 原 \tn{chaptername} 为 Chapter \\
-% section (beamer) & |{}| & |{\sectionname\space}|
-% & \BSTACK 原 \tn{sectionname} 为\\ |\translate{Section}| \ESTACK \\
-% section & åŒå³ & |{}| & \\
-% subsection (beamer) & |{}| & |{\subsectionname\space}|
-% & \BSTACK 原 \tn{subsectionname} 为\\ |\translate{Subsection}| \ESTACK \\
-% subsection & åŒå³ & |{}| & \\
-% subsubsection & åŒå³ & |{}| & \\
-% paragraph & åŒå³ & |{}| & \\
-% subparagraph & åŒå³ & |{}| & \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \setlength\leftskip{0pt plus 1 fil minus \marginparwidth}
+% \caption{\opt{name} 选项的默认设置}
+% \label{tab:name-default}
+% \begin{tabular}{llll}
+% \toprule
+% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} & 注 \\
+% \midrule
+% part & |{第,部分}| & |{\partname\space}| & 原 \tn{partname} 为 Part \\
+% chapter & |{第,章}| & |{\chaptername\space}|
+% & 原 \tn{chaptername} 为 Chapter \\
+% section (beamer) & |{}| & |{\sectionname\space}|
+% & \BSTACK 原 \tn{sectionname} 为\\ |\translate{Section}| \ESTACK \\
+% section & åŒå³ & |{}| & \\
+% subsection (beamer) & |{}| & |{\subsectionname\space}|
+% & \BSTACK 原 \tn{subsectionname} 为\\ |\translate{Subsection}| \ESTACK \\
+% subsection & åŒå³ & |{}| & \\
+% subsubsection & åŒå³ & |{}| & \\
+% paragraph & åŒå³ & |{}| & \\
+% subparagraph & åŒå³ & |{}| & \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
% \begin{function}[EXP]{.../number}
@@ -1664,118 +1716,132 @@ Copyright and Licence
% number = \Arg{数字输出命令}
% \end{syntax}
% 设置章节编å·çš„数字输出格å¼ã€‚\meta{数字输出命令} 通常是对应章节编å·è®¡æ•°å™¨çš„
-% 输出命令,如 \tn{thesection} 或 |\chinese{chapter}| 之类。
+% 输出命令,如 \tn{thesection} 或 |\chinese{chapter}| 之类。例如:
% \begin{ctexexam}
% \ctexset{
% section/number = \Roman{section}
% }
% \end{ctexexam}
-% \end{function}
+% 将会使 \tn{section} çš„ç¼–å·å˜ä¸ºå¤§å†™ç½—马数字(如 Iã€II 等)。
%
-% \opt{number} 选项的定义åŒæ—¶å°†æŽ§åˆ¶å¯¹ç« èŠ‚计数器的交å‰å¼•ç”¨ã€‚在引用计数器时,
+% \opt{number} 选项定义的åŒæ—¶å°†æŽ§åˆ¶å¯¹ç« èŠ‚计数器的交å‰å¼•ç”¨ã€‚在引用计数器时,
% 记录在 \LaTeX{} 辅助文件中的是 \opt{number} 选项的定义。
%
% 但是,\opt{number} 选项ä¸ä¼šå½±å“计数器本身的输出。å³è®¾ç½® |section/number|
-% ä¸ä¼šå½±å“ \tn{thesection} çš„å®šä¹‰ã€‚ï¼ˆä½†è¯¥é€‰é¡¹ä¼šå½±å“ \tn{CTEXthesection} 的定
-% 义,è§åŽã€‚)
+% ä¸ä¼šå½±å“ \tn{thesection} çš„å®šä¹‰ï¼ˆä½†è¯¥é€‰é¡¹ä¼šå½±å“ \tn{CTEXthesection} 的定
+% 义,è§åŽï¼‰ã€‚该选项的默认设置è§è¡¨~\ref{tab:number-default}。
+% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{number} 选项的默认设置}
-% \setlength\leftskip{0pt plus 1 fil minus \marginparwidth}
-% \begin{tabular}{llll}
-% \toprule
-% 标题å & \opt{scheme = chinese} & \opt{scheme = plain}
-% & 原 |\the|\meta{标题} 等价定义 \\
-% \midrule
-% part (beamer) & |\chinese{part}| & |\insertromanpartnumber| & æ„义为 |\Roman{part}| \\
-% part & |\chinese{part}| & |\thepart| & |\Roman{part}| \\
-% chapter & |\chinese{chapter}| & |\thechapter| & |\arabic{chapter}| \\
-% section (beamer) & åŒå³ & |\insertsectionnumber| & æ„义为 |\arabic{section}| \\
-% section & åŒå³ & |\thesection| & |\arabic{section}| \\
-% subsection (beamer)
-% & \BSTACK |\arabic{section}.|\\ |\arabic{subsection}| \ESTACK
-% & |\insertsubsectionnumber| & æ„义为 |\arabic{subsection}| \\
-% subsection & åŒå³ & |\thesubsection| & |\thesection.\arabic{subsection}| \\
-% subsubsection & åŒå³ & |\thesubsubsection|
-% & |\thesubsection.\arabic{subsubsection}| \\
-% paragraph & åŒå³ & |\theparagraph|
-% & |\thesubsubsection.\arabic{paragraph}| \\
-% subparagraph & åŒå³ & |\thesubparagraph|
-% & |\theparagraph.\arabic{subparagraph}| \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \caption{\opt{number} 选项的默认设置}
+% \label{tab:number-default}
+% \setlength\leftskip{0pt plus 1 fil minus \marginparwidth}
+% \begin{tabular}{llll}
+% \toprule
+% 标题å & \opt{scheme = chinese} & \opt{scheme = plain}
+% & 原 |\the|\meta{标题} 等价定义 \\
+% \midrule
+% part (beamer) & |\chinese{part}| & |\insertromanpartnumber| & æ„义为 |\Roman{part}| \\
+% part & |\chinese{part}| & |\thepart| & |\Roman{part}| \\
+% chapter & |\chinese{chapter}| & |\thechapter| & |\arabic{chapter}| \\
+% section (beamer) & åŒå³ & |\insertsectionnumber| & æ„义为 |\arabic{section}| \\
+% section & åŒå³ & |\thesection| & |\arabic{section}| \\
+% subsection (beamer)
+% & \BSTACK |\arabic{section}.|\\ |\arabic{subsection}| \ESTACK
+% & |\insertsubsectionnumber| & æ„义为 |\arabic{subsection}| \\
+% subsection & åŒå³ & |\thesubsection| & |\thesection.\arabic{subsection}| \\
+% subsubsection & åŒå³ & |\thesubsubsection|
+% & |\thesubsection.\arabic{subsubsection}| \\
+% paragraph & åŒå³ & |\theparagraph|
+% & |\thesubsubsection.\arabic{paragraph}| \\
+% subparagraph & åŒå³ & |\thesubparagraph|
+% & |\theparagraph.\arabic{subparagraph}| \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
-% \begin{function}{\CTEXthepart, \CTEXthechapter, \CTEXthesection,
-% \CTEXthesubsection, \CTEXthesubsubsection, \CTEXtheparagraph,
-% \CTEXthesubparagraph}
-% 以 |\CTEXthe| 开头的这组å®ç»™å‡ºç»“åˆäº† \opt{name} 与 \opt{number} 选项的章节
-% ç¼–å·è¾“出格å¼ã€‚例如在 \opt{scheme = chinese} 时,默认章编å·è¾“出格å¼å°±æ˜¯
-% \tn{CTEXthechapter},形如“第一章â€ã€‚
-%
-% 这组å®åœ¨ \CTeX 文档类中将代替 \tn{thechapter} ç­‰å®çš„作用,在章节中引用本章
-% 节的完整编å·ã€‚例如用于帮助定义自定义的目录格å¼ã€é¡µçœ‰æ ¼å¼ç­‰ã€‚
-% \end{function}
-%
-% \begin{function}[added=2016-09-18]{\CTEXifname}
-% \begin{syntax}
-% \tn{CTEXifname} \Arg{有å字时的格å¼å‘½ä»¤} \Arg{æ— å字时的格å¼å‘½ä»¤}
-% \end{syntax}
-% \tn{CTEXifname} 用于根æ®å½“å‰ç« èŠ‚çš„å字的有无设置ä¸åŒçš„æ ¼å¼ã€‚
-%
-% 它å¯ç”¨äºŽ \opt{format}, \opt{titleformat}, \opt{aftertitle}, \opt{afterskip},
-% \opt{indent} 这五个选项和 \tn{chapter} 标题 \opt{beforeskip} 选项的格å¼è®¾ç½®ä¹‹ä¸­ã€‚
-% 也å¯ç”¨äºŽå¸®åŠ©å®šä¹‰è‡ªå®šä¹‰çš„目录格å¼ã€é¡µçœ‰æ ¼å¼ç­‰ã€‚
-%
-% 例如,设置章的标题有å字时左对é½ï¼Œæ— å字时居中对é½ï¼Œå¹¶ä¸”在标题åŽç”»ä¸€æ¡æ¨ªçº¿ã€‚
-% \begin{ctexexam}
-% \ctexset{
-% chapter/format = \CTEXifname{\raggedright}{\centering},
-% chapter/aftertitle = \par\CTEXifname{}{\hrule},
-% }
-% \end{ctexexam}
-% \end{function}
-%
-% \begin{function}[EXP,updated=2015-06-30]{.../format, .../format+}
+% \subsection{æ ¼å¼ç›¸å…³}
+% \label{subsec:sec-format}
+%
+% \CTeX{} å®é›†æ供了 \opt{numberformat}, \opt{nameformat}, \opt{titleformat},
+% \opt{format} 这几个选项用æ¥æŽ§åˆ¶ç« èŠ‚标题的格å¼ã€‚
+% 它们的作用范围如图~\ref{fig:heading-format} 所示。具体用法è§ä¸‹æ–‡ã€‚
+%
+% \begin{figure}[htbp]
+% \centering
+% \[
+% \underbrace{
+% \overbrace{
+% \text{\huge\bfseries 第}
+% \mspace{-25mu}
+% \underbrace{\text{\huge\bfseries 1}}_{\text{\small\opt{numberformat}}}
+% \mspace{-25mu}
+% \text{\huge\bfseries ç« }
+% }^{\text{\small\opt{nameformat}}} \quad
+% \overbrace{\text{\huge\bfseries 熟悉 \LaTeX}}^{\text{\small\opt{titleformat}}}
+% }_{\text{\small\opt{format}}}
+% \]
+% \caption{\opt{numberformat}, \opt{nameformat}, \opt{titleformat},
+% \opt{format} 几个选项的作用范围示æ„}
+% \label{fig:heading-format}
+% \end{figure}
+%
+% \begin{function}[EXP,updated=2020-04-22]{.../format, .../format+}
% \begin{syntax}
% format = \Arg{æ ¼å¼å‘½ä»¤}
% format+= \Arg{æ ¼å¼å‘½ä»¤}
% \end{syntax}
% \opt{format} 选项用于控制章节标题的全局格å¼ï¼Œä½œç”¨åŸŸä¸ºç« èŠ‚åå­—å’ŒéšåŽçš„标题
% 内容。å¯ä»¥ç”¨äºŽæŽ§åˆ¶ç« èŠ‚标题的对é½æ–¹å¼ã€æ•´ä½“字体字å·ç­‰æ ¼å¼ã€‚
+% 带加å·çš„ \opt{format+} 选项用于在已有的格å¼å‘½ä»¤åŽé™„加内容。
%
-% 带加å·çš„ \opt{format+} 选项则用于在已有格å¼ä¹‹åŽè¿½åŠ æ–°çš„æ ¼å¼å‘½ä»¤ã€‚
+% \opt{format} 选项的最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥å¸¦æœ‰ä¸€ä¸ªå‚数。
+% 这一å‚数用于接å—章节åå­—ã€ç¼–å·å’Œæ ‡é¢˜å†…容(以åŠç”± \opt{nameformat}, \opt{numberformat},
+% \opt{aftername},\opt{titleformat}, \opt{aftertitle}, \opt{indent}
+% åŠ \opt{hang} 选项设定的,应用于这些内容之上的格å¼ï¼‰ï¼Œä»¥å®žçŽ°ç‰¹æ®Šæ•ˆæžœã€‚
%
-% 例如,设置章格å¼ä¸ºæ— è¡¬çº¿å­—体左对é½ï¼Œä¸ºèŠ‚æ ¼å¼å¢žåŠ æ— è¡¬çº¿å­—体设置:
+% 例如,设置章标题为无衬线字体左对é½ã€ä¸ºèŠ‚标题增加无衬线字体设置ã€
+% 为å°èŠ‚标题加框(\tn{fbox} 命令本身需带一个å‚数):
% \begin{ctexexam}
% \ctexset{
-% chapter/format = \sffamily\raggedright,
-% section/format += \sffamily
+% chapter/format = \sffamily\raggedright,
+% section/format += \sffamily,
+% subsection/format += \fbox,
% }
% \end{ctexexam}
+%
+% \opt{format} 选项的默认设置è§è¡¨~\ref{tab:format-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{format} 选项的默认设置}
-% \begin{tabular}{lll}
-% \toprule
-% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
-% \midrule
-% part (article) & |\Large\bfseries\centering| & |\raggedright| \\
-% part (beamer) & åŒå³ & |\centering| \\
-% part & |\huge\bfseries\centering| & |\centering| \\
-% chapter & |\huge\bfseries\centering| & |\raggedright| \\
-% section (beamer) & åŒå³ & |\centering| \\
-% section & |\Large\bfseries\centering| & |\Large\bfseries| \\
-% subsection (beamer) & åŒå³ & |\centering| \\
-% subsection & åŒå³ & |\large\bfseries| \\
-% subsubsection & åŒå³ & |\normalsize\bfseries| \\
-% paragraph & åŒå³ & |\normalsize\bfseries| \\
-% subparagraph & åŒå³ & |\normalsize\bfseries| \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \begin{threeparttable}
+% \caption{\opt{format} 选项的默认设置}
+% \label{tab:format-default}
+% \begin{tabular}{lll}
+% \toprule
+% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
+% \midrule
+% part (article) & |\Large\bfseries\centering| & |\raggedright|\tnote{*} \\
+% part (beamer) & åŒå³ & |\centering| \\
+% part & |\huge\bfseries\centering| & |\centering| \\
+% chapter & |\huge\bfseries\centering| & |\raggedright| \\
+% section (beamer) & åŒå³ & |\centering| \\
+% section & |\Large\bfseries\centering| & |\Large\bfseries| \\
+% subsection (beamer) & åŒå³ & |\centering| \\
+% subsection & åŒå³ & |\large\bfseries| \\
+% subsubsection & åŒå³ & |\normalsize\bfseries| \\
+% paragraph & åŒå³ & |\normalsize\bfseries| \\
+% subparagraph & åŒå³ & |\normalsize\bfseries| \\
+% \bottomrule
+% \end{tabular}
+% \begin{tablenotes}
+% \item[*] 为了与 \LaTeXe{} 的默认效果ä¿æŒä¸€è‡´ï¼Œåœ¨ \opt{scheme = plain}
+% 时,part 和 chapter 的 \opt{nameformat} 和 \opt{titleformat}
+% 并ä¸ä¸€æ ·ï¼Œå› æ­¤æ²¡æœ‰ä½¿ç”¨ \opt{format} 选项统一设置å字和标题的格å¼ã€‚
+% \end{tablenotes}
+% \end{threeparttable}
% \end{table}
%
% \begin{function}[EXP,updated=2015-06-30]{.../nameformat, .../nameformat+}
@@ -1785,42 +1851,42 @@ Copyright and Licence
% \end{syntax}
% \opt{nameformat} 用于控制章节åå­—çš„æ ¼å¼ï¼Œä½œç”¨åŸŸä¸ºç« èŠ‚å字,包括编å·ã€‚它一
% 般用于章节å(包括编å·ï¼‰ä¸Žç« èŠ‚标题的字体ã€å­—å·ç­‰è®¾ç½®ä¸ä¸€è‡´çš„情形。å‚è§
-% \opt{titleformat} 选项。
+% 下é¢çš„ \opt{titleformat} 选项。\opt{nameformat+} 用于在已有的章节åå­—
+% æ ¼å¼å‘½ä»¤åŽé™„加内容。
%
-% \opt{nameformat+} 用于在已有的章节åå­—æ ¼å¼åŽé™„加内容。
+% \opt{nameformat} 选项的最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥å¸¦æœ‰ä¸€ä¸ªå‚数。
+% 这一å‚数用于接å—章节å字和编å·ï¼Œä»¥å®žçŽ°ç‰¹æ®Šæ•ˆæžœï¼ˆè§ä¾‹~\ref{exam:miscopt})。
%
-% \opt{nameformat} 选项的最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥æ˜¯ä¸€ä¸ªæœ‰ä¸€ä¸ªå‚数的命令。
-% 这个命令的å‚数用于接å—章节å字和编å·ï¼Œå®žçŽ°ç‰¹æ®Šæ•ˆæžœï¼ˆè§ä¾‹~\ref{exam:miscopt})。
-%
-% \opt{nameformat} 选项的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下相åŒã€‚
+% \opt{nameformat} 选项的默认设置è§è¡¨~\ref{tab:nameformat-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{nameformat} 选项的默认设置}
-% \begin{tabular}{lll}
-% \toprule
-% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
-% \midrule
-% part (article) & |{}| & |\Large\bfseries| \\
-% part (beamer) & åŒå³
-% & \BSTACK |\usebeamerfont{part name}| \\
-% |\usebeamercolor[fg]{part name}| \ESTACK \\
-% part & |{}| & |\huge\bfseries| \\
-% chapter & |{}| & |\huge\bfseries| \\
-% section (beamer) & åŒå³
-% & \BSTACK |\usebeamerfont{section name}| \\
-% |\usebeamercolor[fg]{section name}| \ESTACK \\
-% section & åŒå³ & |{}| \\
-% subsection (beamer) & åŒå³
-% & \BSTACK |\usebeamerfont{subsection name}| \\
-% |\usebeamercolor[fg]{subsection name}| \ESTACK \\
-% subsection & åŒå³ & |{}| \\
-% subsubsection & åŒå³ & |{}| \\
-% paragraph & åŒå³ & |{}| \\
-% subparagraph & åŒå³ & |{}| \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \caption{\opt{nameformat} 选项的默认设置}
+% \label{tab:nameformat-default}
+% \begin{tabular}{lll}
+% \toprule
+% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
+% \midrule
+% part (article) & |{}| & |\Large\bfseries| \\
+% part (beamer) & åŒå³
+% & \BSTACK |\usebeamerfont{part name}| \\
+% |\usebeamercolor[fg]{part name}| \ESTACK \\
+% part & |{}| & |\huge\bfseries| \\
+% chapter & |{}| & |\huge\bfseries| \\
+% section (beamer) & åŒå³
+% & \BSTACK |\usebeamerfont{section name}| \\
+% |\usebeamercolor[fg]{section name}| \ESTACK \\
+% section & åŒå³ & |{}| \\
+% subsection (beamer) & åŒå³
+% & \BSTACK |\usebeamerfont{subsection name}| \\
+% |\usebeamercolor[fg]{subsection name}| \ESTACK \\
+% subsection & åŒå³ & |{}| \\
+% subsubsection & åŒå³ & |{}| \\
+% paragraph & åŒå³ & |{}| \\
+% subparagraph & åŒå³ & |{}| \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
% \begin{function}[EXP,updated=2015-06-19]{.../numberformat, .../numberformat+}
@@ -1829,74 +1895,37 @@ Copyright and Licence
% numberformat+= \Arg{æ ¼å¼å‘½ä»¤}
% \end{syntax}
% \opt{numberformat} 选项用于控制章节编å·çš„æ ¼å¼ï¼Œä½œç”¨åŸŸä»…为编å·æ•°å­—本身。对
-% å„级标题默认å‡ä¸ºç©ºï¼Œå½“你需è¦ç¼–å·çš„æ ¼å¼å’Œå‰åŽçš„章节åå­—ä¸ä¸€æ ·æ—¶å¯ä»¥ä½¿ç”¨ã€‚
-%
-% \opt{numberformat+} 选项用于在原有编å·æ ¼å¼åŽé¢é™„加格å¼å‘½ä»¤ã€‚
+% å„级标题默认å‡ä¸ºç©ºï¼Œå½“需è¦ç¼–å·çš„æ ¼å¼å’Œå‰åŽçš„章节åå­—ä¸ä¸€æ ·æ—¶å¯ä»¥ä½¿ç”¨ã€‚
+% \opt{numberformat+} 用于在已有的编å·æ ¼å¼å‘½ä»¤åŽé™„加内容。
%
-% \opt{numberformat} 选项的最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥æ˜¯ä¸€ä¸ªæœ‰ä¸€ä¸ªå‚数的命令。
-% 这个命令的å‚数用于接å—ç¼–å·æ•°å­—。
-% \end{function}
-%
-% 例如,我们å¯ä»¥ä½¿ç”¨ \opt{numberformat} 特别强调章标题中的数字:
+% \opt{numberformat} 选项的最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥å¸¦æœ‰ä¸€ä¸ªå‚数。这一å‚数用于接å—
+% ç¼–å·æ•°å­—。例如,我们å¯ä»¥ä½¿ç”¨ \opt{numberformat} 特别强调章标题中的数字:
% \begin{ctexexam}
% \ctexset{
% chapter/number = \arabic{chapter},
-% chapter/numberformat = \color{blue}\zihao{0}\itshape,
+% chapter/numberformat = \color{blue}\zihao{0}\emph,
% }
% \end{ctexexam}
% 上é¢çš„代ç åœ¨ \opt{scheme = chinese} æ—¶å¯ä»¥åšå‡ºç±»ä¼¼è¿™æ ·çš„章标题效果:
% \begin{center}
-% \huge\bfseries 第 \textit{\color{blue}\zihao{0}4} 章
+% \huge\bfseries 第 \emph{\color{blue}\zihao{0}4} 章
% \end{center}
%
-% \begin{function}[EXP,updated=2014-03-08]{.../aftername, .../aftername+}
-% \begin{syntax}
-% aftername = \Arg{代ç }
-% aftername+= \Arg{代ç }
-% \end{syntax}
-% \opt{aftername} 选项的å‚æ•° \meta{代ç } 将被æ’入到章节编å·ä¸Žå…¶åŽçš„标题内容之
-% 间,用于控制格å¼å˜æ¢ã€‚常用于控制章节编å·ä¸Žæ ‡é¢˜å†…容之间的è·ç¦»ï¼Œæˆ–者控制标题
-% 是å¦å¦èµ·ä¸€è¡Œã€‚
-%
-% \opt{aftername+} 选项用于在原有代ç åŽé¢é™„加代ç ã€‚
+% \opt{numberformat} 选项默认å‡è®¾ç½®ä¸ºç©ºï¼Œæ•…章节编å·é»˜è®¤ä¸Žç« èŠ‚å字使用
+% 相åŒçš„æ ¼å¼ã€‚
% \end{function}
%
-% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{aftername} 选项的默认设置}
-% \begin{tabular}{lll}
-% \toprule
-% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
-% \midrule
-% part (article) & |\quad| & |\par\nobreak| \\
-% part (beamer) & åŒå³ & |\vskip 1em \par| \\
-% part & åŒå³ & |\par\vskip 20pt| \\
-% chapter & |\quad| & |\par\nobreak\vskip 20pt| \\
-% section (beamer) & åŒå³ & |\vskip 1em \par| \\
-% section & åŒå³ & |\quad| \\
-% subsection (beamer) & åŒå³ & |\vskip 1em \par| \\
-% subsection & åŒå³ & |\quad| \\
-% subsubsection & åŒå³ & |\quad| \\
-% paragraph & åŒå³ & |\quad| \\
-% subparagraph & åŒå³ & |\quad| \\
-% \bottomrule
-% \end{tabular}
-% \end{table}
-%
% \begin{function}[EXP,updated=2015-06-30]{.../titleformat, .../titleformat+}
% \begin{syntax}
% titleformat = \Arg{æ ¼å¼å‘½ä»¤}
% titleformat+= \Arg{æ ¼å¼å‘½ä»¤}
% \end{syntax}
% \opt{titleformat} 选项用于控制标题内容的格å¼ï¼Œä½œç”¨åŸŸä¸ºç« èŠ‚标题内容。
+% \opt{titleformat+} 选项用于在已有的标题格å¼å‘½ä»¤åŽé™„加内容。
%
-% \opt{titleformat+} 选项用于在原有标题格å¼åŽé¢é™„加格å¼å‘½ä»¤ã€‚
-%
-% 需è¦æ³¨æ„的是,\opt{titleformat} 选项的最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥æ˜¯ä¸€ä¸ªæœ‰ä¸€ä¸ª
-% å‚数的命令。这个命令的å‚数接å—标题内容,用于实现特殊效果。
-% 例如,实现多行标题的居中悬挂对é½ï¼š
-% \end{function}
-% \begin{ctexexam}
+% \opt{titleformat} 选项的最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥å¸¦æœ‰ä¸€ä¸ªå‚数。这一å‚数用于接å—
+% 标题内容。例如,实现多行标题的居中悬挂对é½ï¼š
+% \begin{ctexexam}
% \usepackage{varwidth} %% æä¾› varwidth 环境
% \ctexset{
% chapter/name = {第,回},
@@ -1906,142 +1935,265 @@ Copyright and Licence
% \begin{varwidth}[t]{.7\linewidth}#1\end{varwidth}}
% ......
% \chapter{情中情因情感妹妹\\错里错以错åŠå“¥å“¥}
-% \end{ctexexam}
-% 上é¢çš„代ç å¯ä»¥åšå‡ºç±»ä¼¼è¿™æ ·çš„章标题效果:
-% \begin{center}\Large\bfseries
-% 第三å四回\quad
-% \begin{tabular}[t]{l}
-% 情中情因情感妹妹\\
-% 错里错以错åŠå“¥å“¥
-% \end{tabular}
-% \end{center}
+% \end{ctexexam}
+% 上é¢çš„代ç å¯ä»¥åšå‡ºç±»ä¼¼è¿™æ ·çš„章标题效果:
+% \begin{center}\Large\bfseries
+% 第三å四回\quad
+% \begin{tabular}[t]{l}
+% 情中情因情感妹妹\\
+% 错里错以错åŠå“¥å“¥
+% \end{tabular}
+% \end{center}
+%
+% \opt{titleformat} 选项的默认设置è§è¡¨~\ref{tab:titleformat-default}。
+% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{titleformat} 选项的默认设置}
-% \begin{tabular}{lll}
-% \toprule
-% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
-% \midrule
-% part (article) & |{}| & |\huge\bfseries| \\
-% part (beamer) & åŒå³ & |\usebeamerfont{part title}| \\
-% part & |{}| & |\Huge\bfseries| \\
-% chapter & |{}| & |\Huge\bfseries| \\
-% section (beamer) & åŒå³ & |\usebeamerfont{section title}| \\
-% section & åŒå³ & |{}| \\
-% subsection (beamer) & åŒå³ & |\usebeamerfont{subsection title}| \\
-% subsection & åŒå³ & |{}| \\
-% subsubsection & åŒå³ & |{}| \\
-% paragraph & åŒå³ & |{}| \\
-% subparagraph & åŒå³ & |{}| \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \caption{\opt{titleformat} 选项的默认设置}
+% \label{tab:titleformat-default}
+% \begin{tabular}{lll}
+% \toprule
+% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
+% \midrule
+% part (article) & |{}| & |\huge\bfseries| \\
+% part (beamer) & åŒå³ & |\usebeamerfont{part title}| \\
+% part & |{}| & |\Huge\bfseries| \\
+% chapter & |{}| & |\Huge\bfseries| \\
+% section (beamer) & åŒå³ & |\usebeamerfont{section title}| \\
+% section & åŒå³ & |{}| \\
+% subsection (beamer) & åŒå³ & |\usebeamerfont{subsection title}| \\
+% subsection & åŒå³ & |{}| \\
+% subsubsection & åŒå³ & |{}| \\
+% paragraph & åŒå³ & |{}| \\
+% subparagraph & åŒå³ & |{}| \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
+% \begin{function}[EXP,updated=2014-03-08]{.../aftername, .../aftername+}
+% \begin{syntax}
+% aftername = \Arg{代ç }
+% aftername+= \Arg{代ç }
+% \end{syntax}
+% \opt{aftername} 选项的å‚æ•° \meta{代ç } 将被æ’入到章节编å·ä¸Žå…¶åŽçš„标题内容之
+% 间,用于控制格å¼å˜æ¢ã€‚常用于控制章节编å·ä¸Žæ ‡é¢˜å†…容之间的è·ç¦»ï¼Œæˆ–者控制标题
+% 是å¦å¦èµ·ä¸€è¡Œã€‚\opt{aftername+} 用于在已有的代ç åŽé™„加内容。该选项的默认设置
+% è§è¡¨~\ref{tab:aftername-default}。
+% \end{function}
+%
% \begin{function}[EXP,added=2015-06-19]{.../aftertitle, .../aftertitle+}
% \begin{syntax}
% aftertitle = \Arg{代ç }
% aftertitle+= \Arg{代ç }
% \end{syntax}
% \opt{aftertitle} 选项的å‚æ•° \meta{代ç } 将被æ’入到章节标题内容之åŽã€‚
+% \opt{aftertitle+} 用于在已有的代ç åŽé™„加内容。该选项的默认设置
+% è§è¡¨~\ref{tab:aftertitle-default}。需注æ„,\opt{sub3section} 或
+% \opt{sub4section} å®åŒ…é€‰é¡¹ï¼ˆè§ \ref{subs:options-heading}~节)会影å“
+% \opt{aftertitle} 选项的默认值。
+% \end{function}
%
-% \opt{aftertitle+} 选项用于在原有代ç åŽé¢é™„加代ç ã€‚
-%
-% \opt{aftertitle} 选项的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下相åŒã€‚
+% \begin{table}[htbp]
+% \setlength\leftskip{0pt plus 1 fil minus \marginparwidth}
+% \begin{minipage}[t]{.75\linewidth}
+% \small\centering
+% \caption{\opt{aftername} 选项的默认设置}
+% \label{tab:aftername-default}
+% \begin{tabular}{lll}
+% \toprule
+% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
+% \midrule
+% part (article) & |\quad| & |\par\nobreak| \\
+% part (beamer) & åŒå³ & |\vskip 1em \par| \\
+% part & åŒå³ & |\par\vskip 20pt| \\
+% chapter & |\quad| & |\par\nobreak\vskip 20pt| \\
+% section (beamer) & åŒå³ & |\vskip 1em \par| \\
+% section & åŒå³ & |\quad| \\
+% subsection (beamer) & åŒå³ & |\vskip 1em \par| \\
+% subsection & åŒå³ & |\quad| \\
+% subsubsection & åŒå³ & |\quad| \\
+% paragraph & åŒå³ & |\quad| \\
+% subparagraph & åŒå³ & |\quad| \\
+% \bottomrule
+% \end{tabular}
+% \end{minipage}\nobreak\quad
+% \begin{minipage}[t]{.42\linewidth}
+% \small\centering
+% \caption{\opt{aftertitle} 选项的默认设置}
+% \label{tab:aftertitle-default}
+% \begin{tabular}{p{\dimexpr .58\linewidth - 2\tabcolsep\relax}p{\dimexpr .4\linewidth - 2\tabcolsep\relax}}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part & |\par| \\
+% chapter & |\par| \\
+% section & |\@@par| \\
+% subsection & |\@@par| \\
+% subsubsection & |\@@par| \\
+% paragraph & |{}| \\
+% \qquad(sub3section) & |\@@par| \\
+% \qquad(sub4section) & åŒä¸Š \\
+% subparagraph & |{}| \\
+% \qquad(sub4section) & |\@@par| \\
+% \bottomrule
+% \end{tabular}
+% \end{minipage}
+% \end{table}
%
-% \opt{sub3section} 或 \opt{sub4section} å®åŒ…选项(è§
-% \ref{subs:options-heading}~èŠ‚ï¼‰ä¼šå½±å“ \opt{aftertitle} 选项的默认值。
+% \begin{function}[EXP,added=2014-03-21]{part/pagestyle, chapter/pagestyle}
+% \begin{syntax}
+% pagestyle = \Arg{页é¢æ ¼å¼}
+% \end{syntax}
+% 设置 \cls{book}/\cls{ctexbook} 或 \cls{report}/\cls{ctexrep} 文档类
+% 中,\tn{part} 与 \tn{chapter} 标题所在页的页é¢æ ¼å¼ï¼ˆpage style)。
+% 该选项的默认设置è§è¡¨~\ref{tab:pagestyle-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \begin{minipage}[t]{.5\linewidth}
-% \small\centering
-% \caption{\opt{aftertitle} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part & |\par| \\
-% chapter & |\par| \\
-% section & |\@@par| \\
-% subsection & |\@@par| \\
-% subsubsection & |\@@par| \\
-% paragraph & |{}| \\
-% \qquad(sub3section) & |\@@par| \\
-% \qquad(sub4section) & åŒä¸Š \\
-% subparagraph & |{}| \\
-% \qquad(sub4section) & |\@@par| \\
-% \bottomrule
-% \end{tabular}
-% \end{minipage}%
-% \begin{minipage}[t]{.5\linewidth}
-% \small\centering
-% \caption{\opt{runin} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part & 无效 \\
-% chapter & 无效 \\
-% section & |false| \\
-% subsection & |false| \\
-% subsubsection & |false| \\
-% paragraph & |true| \\
-% \qquad(sub3section) & |false| \\
-% \qquad(sub4section) & åŒä¸Š \\
-% subparagraph & |true| \\
-% \qquad(sub4section) & |false| \\
-% \bottomrule
-% \end{tabular}
-% \end{minipage}
+% \small\centering
+% \caption{\opt{pagestyle} 选项的默认设置}
+% \label{tab:pagestyle-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part (article) & 无效 \\
+% part & |plain| \\
+% chapter & |plain| \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
+% \subsection{é—´è·ã€ç¼©è¿›ç›¸å…³}
+% \label{subsec:sec-spacing}
+%
% \begin{function}[EXP,added=2015-06-27]{section/runin, subsection/runin,
% subsubsection/runin, paragraph/runin, subparagraph/runin}
% \begin{syntax}
% runin = \TF
% \end{syntax}
-% \opt{runin} 选项åªå¯¹ \tn{section} 级以下标题有æ„义。
-% 用于确定标题与éšåŽçš„正文是å¦æŽ’在åŒä¸€æ®µä¹‹ä¸Šã€‚
-%
-% \opt{runin} 选项的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下相åŒã€‚
+% \opt{runin} 选项åªå¯¹ \tn{section} 级以下标题有æ„义,用于确定标题与éšåŽçš„
+% 正文是å¦æŽ’在åŒä¸€æ®µä¹‹ä¸Šã€‚该选项的默认设置è§è¡¨~\ref{tab:runin-default}。
%
% 默认情况下,\tn{paragraph}ã€\tn{subparagraph} 两级标题是与åŽé¢æ­£æ–‡æŽ’在åŒä¸€
% 段的,\opt{runin} 选项为 \opt{true};但使用 \opt{sub3section} 或
-% \opt{sub4section} å®åŒ…é€‰é¡¹ï¼ˆè§ \ref{subs:options-heading}~节)åŽï¼Œ
-% 将对这两级标题设 \opt{runin} 选项为 \opt{false},这两级标题会改为排在ä¸åŒæ®µã€‚
+% \opt{sub4section} å®åŒ…é€‰é¡¹ï¼ˆè§ \ref{subs:options-heading}~节)åŽï¼Œå°†å¯¹
+% 这两级标题设 \opt{runin} 选项为 \opt{false},这两级标题会改为排在ä¸åŒæ®µã€‚
% \end{function}
%
-% \begin{function}[EXP,added=2015-06-27]{.../afterindent}
+% \begin{table}[htbp]
+% \small\centering
+% \caption{\opt{runin} 选项的默认设置}
+% \label{tab:runin-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part & 无效 \\
+% chapter & 无效 \\
+% section & |false| \\
+% subsection & |false| \\
+% subsubsection & |false| \\
+% paragraph & |true| \\
+% \qquad(sub3section) & |false| \\
+% \qquad(sub4section) & åŒä¸Š \\
+% subparagraph & |true| \\
+% \qquad(sub4section) & |false| \\
+% \bottomrule
+% \end{tabular}
+% \end{table}
+%
+% \begin{function}[EXP,updated=2020-04-23]{.../hang}
% \begin{syntax}
-% afterindent = \TF
+% hang = \TF
% \end{syntax}
-% \opt{afterindent} 选项用于设置章节标题åŽé¦–段的缩进。
+% \opt{hang} 选项用于设置是å¦å¯¹ç« èŠ‚标题实施悬挂缩进(缩进的宽度为å字宽度
+% 和 \opt{indent} 选项设置的宽度之和)。
%
-% \cls{book} å’Œ \cls{report} 类的 \tn{part} 标题被å•ç‹¬æŽ’在一页之上,
-% \opt{afterindent} 选项没有æ„义。
+% 注æ„,当 \opt{hang = true} 时,ä¸æ°å½“地设置选项 \opt{aftername} 的值,å¯èƒ½ä¼šå¼•å‘
+% 错误。这是因为当 \opt{hang = true} 时,\LaTeX{} 内部会构造一个 \tn{hbox} 而
+% 进入å—é™æ°´å¹³æ¨¡å¼ï¼ˆrestricted horizontal mode)。若在 \opt{aftername} 中加入
+% åŒ…å« \tn{vskip} 等会导致从å—é™æ°´å¹³æ¨¡å¼åˆ‡å‡ºçš„垂直命令(vertical command)时,就会报错。
+% 特别地,\opt{aftername} 的默认值也å¯èƒ½å¯¼è‡´è¿™ç§æƒ…形(è§è¡¨~\ref{tab:aftername-default})。
+% 因此,当设置 \opt{hang = true} 时,用户必须æ°å½“地设置选项 \opt{aftername} 的值。
%
+% 本选项对 \cls{beamer}/\cls{ctexbeamer} 文档类无效。
% 对于 \tn{section} 级以下标题,若设置了 \opt{runin} 选项为 \opt{true},
-% å³æ ‡é¢˜ä¸ŽéšåŽæ­£æ–‡æŽ’在åŒä¸€æ®µï¼Œ\opt{afterindent} 选项也就没有了æ„义。
+% å³æ ‡é¢˜ä¸ŽéšåŽæ­£æ–‡æŽ’在åŒä¸€æ®µï¼Œ\opt{hang} 选项没有æ„义。
+% 该选项的默认设置è§è¡¨~\ref{tab:hang-default}。
+% \end{function}
+%
+% \begin{function}[EXP,updated=2020-04-23]{.../indent}
+% \begin{syntax}
+% indent = \Arg{缩进间è·}
+% \end{syntax}
+% \opt{indent} 选项用于设置章节标题本身的首行缩进。
+% 该选项的默认设置è§è¡¨~\ref{tab:indent-default}。
+%
+% 如果 \opt{indent} 的值是以 \texttt{em}ã€\texttt{ex} 或 \cs{ccwd} 为å•ä½ï¼Œ
+% 那么缩进间è·çš„大å°æ˜¯ç›¸å¯¹äºŽ \opt{format} 中指定的字å·å¤§å°ã€‚
+% 例如,设置 \tn{part} 标题缩进三个字ã€\tn{section} 标题缩进 \SI{20}{pt}:
+% \begin{ctexexam}
+% \ctexset{
+% part = {
+% format += \raggedright,
+% indent = 3\ccwd,
+% },
+% section = {
+% format = \Large\bfseries,
+% indent = 20pt,
+% }
+% }
+% \part{首行缩进的标题}
+% \noindent 无缩进的正文。
+% \section{首行缩进的标题}
+% \noindent 无缩进的正文。
+% \end{ctexexam}
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{afterindent} 选项的默认设置}
-% \begin{tabular}{lll}
-% \toprule
-% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
-% \midrule
-% part (article) & |true| & |false| \\
-% part & 无效 & 无效 \\
-% chapter & |true| & |false| \\
-% section & |true| & |false| \\
-% subsection & |true| & |false| \\
-% subsubsection & |true| & |false| \\
-% paragraph & |true| & |false| \\
-% subparagraph & |true| & |false| \\
-% \bottomrule
-% \end{tabular}
+% \begin{minipage}[t]{.5\linewidth}
+% \small\centering
+% \caption{\opt{hang} 选项的默认设置}
+% \label{tab:hang-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part & |false| \\
+% chapter & |false| \\
+% section & |true| \\
+% subsection & |true| \\
+% subsubsection & |true| \\
+% paragraph & æ— æ„义 \\
+% \qquad(sub3section) & |true| \\
+% \qquad(sub4section) & |true| \\
+% subparagraph & æ— æ„义 \\
+% \qquad(sub4section) & |true| \\
+% \bottomrule
+% \end{tabular}
+% \end{minipage}
+% \begin{minipage}[t]{.5\linewidth}
+% \small\centering
+% \caption{\opt{indent} 选项的默认设置}
+% \label{tab:indent-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part & |0pt| \\
+% chapter & |0pt| \\
+% section & |0pt| \\
+% subsection & |0pt| \\
+% subsubsection & |0pt| \\
+% paragraph & |0pt| \\
+% subparagraph & |\parindent| \\
+% \qquad(sub3section) & |0pt| \\
+% \qquad(sub4section) & åŒä¸Š \\
+% \bottomrule
+% \end{tabular}
+% \end{minipage}
% \end{table}
%
% \begin{function}[EXP,updated=2016-05-10]{.../beforeskip}
@@ -2049,59 +2201,9 @@ Copyright and Licence
% beforeskip = \Arg{弹性间è·}
% \end{syntax}
% \opt{beforeskip} 选项用于设置章节标题å‰çš„åž‚ç›´é—´è·ã€‚
-%
-% \opt{beforeskip} 选项的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下相åŒã€‚
+% 该选项的默认设置è§è¡¨~\ref{tab:beforeskip-default}。
% \end{function}
%
-% \begin{table}[htbp]
-% \setlength\leftskip{0pt plus 1 fil minus \marginparwidth}
-% \begin{minipage}[t]{.6\linewidth}
-% \small\centering
-% \caption{\opt{beforeskip} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part (article) & |4ex| \\
-% part (beamer) & |0pt| \\
-% part & |0pt plus 1fil| \\
-% chapter & |50pt| \\
-% section (beamer) & |0pt| \\
-% section & |3.5ex plus 1ex minus .2ex| \\
-% subsection (beamer) & |0pt| \\
-% subsection & |3.25ex plus 1ex minus .2ex| \\
-% subsubsection & |3.25ex plus 1ex minus .2ex| \\
-% paragraph & |3.25ex plus 1ex minus .2ex| \\
-% subparagraph & |3.25ex plus 1ex minus .2ex| \\
-% \bottomrule
-% \end{tabular}
-% \end{minipage}%
-% \begin{minipage}[t]{.5\linewidth}
-% \small\centering
-% \caption{\opt{afterskip} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part (article) & |3ex| \\
-% part (beamer) & |0pt| \\
-% part & |0pt plus 1fil| \\
-% chapter & |40pt| \\
-% section (beamer) & |0pt| \\
-% section & |2.3ex plus .2ex| \\
-% subsection (beamer) & |0pt| \\
-% subsection & |1.5ex plus .2ex| \\
-% subsubsection & |1.5ex plus .2ex| \\
-% paragraph & |1em| \\
-% \qquad(sub3section) & |1ex plus .2ex| \\
-% \qquad(sub4section) & åŒä¸Š \\
-% subparagraph & |1em| \\
-% \qquad(sub4section) & |1ex plus .2ex| \\
-% \bottomrule
-% \end{tabular}
-% \end{minipage}
-% \end{table}
-%
% \begin{function}[EXP,updated=2015-06-27]{.../afterskip}
% \begin{syntax}
% afterskip = \Arg{弹性间è·}
@@ -2112,222 +2214,207 @@ Copyright and Licence
% è‹¥ \opt{runin} 为 \opt{true},标题与éšåŽæ­£æ–‡æŽ’在åŒä¸€æ®µï¼Œ\meta{弹性间è·} 给出水平间è·ã€‚
% å¦åˆ™ï¼Œæ­£æ–‡å¦èµ·ä¸€æ®µï¼Œ\meta{弹性间è·} 给出的是垂直间è·ã€‚
%
-% \opt{afterskip} 选项的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下相åŒã€‚
-%
-% \opt{sub3section} 或 \opt{sub4section} å®åŒ…选项(è§
+% 该选项的默认设置è§è¡¨~\ref{tab:afterskip-default}。
+% æ³¨æ„ \opt{sub3section} 或 \opt{sub4section} å®åŒ…选项(è§
% \ref{subs:options-heading}~èŠ‚ï¼‰ä¼šå½±å“ \opt{aftertitle} 选项的默认值。
% \end{function}
%
+% \begin{table}[htbp]
+% \setlength\leftskip{0pt plus 1 fil minus \marginparwidth}
+% \begin{minipage}[t]{.6\linewidth}
+% \small\centering
+% \caption{\opt{beforeskip} 选项的默认设置}
+% \label{tab:beforeskip-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part (article) & |4ex| \\
+% part (beamer) & |0pt| \\
+% part & |0pt plus 1fil| \\
+% chapter & |50pt| \\
+% section (beamer) & |0pt| \\
+% section & |3.5ex plus 1ex minus .2ex| \\
+% subsection (beamer) & |0pt| \\
+% subsection & |3.25ex plus 1ex minus .2ex| \\
+% subsubsection & |3.25ex plus 1ex minus .2ex| \\
+% paragraph & |3.25ex plus 1ex minus .2ex| \\
+% subparagraph & |3.25ex plus 1ex minus .2ex| \\
+% \bottomrule
+% \end{tabular}
+% \end{minipage}\nobreak\quad
+% \begin{minipage}[t]{.5\linewidth}
+% \small\centering
+% \caption{\opt{afterskip} 选项的默认设置}
+% \label{tab:afterskip-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part (article) & |3ex| \\
+% part (beamer) & |0pt| \\
+% part & |0pt plus 1fil| \\
+% chapter & |40pt| \\
+% section (beamer) & |0pt| \\
+% section & |2.3ex plus .2ex| \\
+% subsection (beamer) & |0pt| \\
+% subsection & |1.5ex plus .2ex| \\
+% subsubsection & |1.5ex plus .2ex| \\
+% paragraph & |1em| \\
+% \qquad(sub3section) & |1ex plus .2ex| \\
+% \qquad(sub4section) & åŒä¸Š \\
+% subparagraph & |1em| \\
+% \qquad(sub4section) & |1ex plus .2ex| \\
+% \bottomrule
+% \end{tabular}
+% \end{minipage}
+% \end{table}
+%
% \begin{function}[EXP,added=2016-06-03]{.../fixskip}
% \begin{syntax}
% fixskip = \TFF
% \end{syntax}
-% 默认情况下,\cls{article}ã€\cls{book} å’Œ \cls{report} 类的标题与正文的è·ç¦»é™¤äº†ç”±
-% \opt{beforeskip} å’Œ \opt{afterskip} 选项设置的垂直间è·å¤–,还会有一些多余的间è·ã€‚
-% \opt{fixskip} 选项用于抑制这些多余间è·ã€‚
+% 默认情况下,\cls{article}ã€\cls{book} å’Œ \cls{report} 类的标题与正文的è·ç¦»
+% 除了由 \opt{beforeskip} å’Œ \opt{afterskip} 选项设置的垂直间è·å¤–,还会有
+% 一些多余的间è·ã€‚\opt{fixskip} 选项用于抑制这些多余间è·ã€‚该选项默认ä¸å¼€å¯ã€‚
% \end{function}
%
-% \begin{function}[EXP,added=2016-10-01]{chapter/lofskip, chapter/lotskip}
-% \begin{syntax}
-% lofskip = \Arg{弹性间è·}
-% lotskip = \Arg{弹性间è·}
-% \end{syntax}
-% \opt{lofskip} 选项控制æ’图目录(\file{.lof})中,章之间的æ’图标题的è·ç¦»ã€‚
-%
-% åŒæ ·ï¼Œ\opt{lotskip} 选项控制表格目录(\file{.lot})中,章之间的表格标题的è·ç¦»ã€‚
-%
-% ç›®å‰ï¼Œè¿™ä¸¤ä¸ªé€‰é¡¹åªåœ¨ \opt{chapter} 标题下有定义。
-% 他们的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下都为 \SI{10}{pt}。
-% \end{function}
-%
-% \begin{function}[EXP,updated=2015-06-27]{.../indent}
+% \begin{function}[EXP,added=2016-09-19]{.../break, .../break+}
% \begin{syntax}
-% indent = \Arg{缩进间è·}
+% break = \Arg{æ ¼å¼å‘½ä»¤}
+% break+= \Arg{æ ¼å¼å‘½ä»¤}
% \end{syntax}
-% \opt{indent} 选项用于设置章节标题本身的首行缩进。
+% \opt{break} 选项用于控制章节标题与\emph{之å‰}正文的分隔关系。
+% 一般用于设置是å¦åœ¨æ ‡é¢˜ä¹‹å‰åˆ†é¡µæˆ–者设置行间罚点。
+% \opt{break+} 用于在已有的格å¼å‘½ä»¤åŽé™„加内容。
%
-% \opt{indent} 选项的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下相åŒã€‚
-%
-% 如果 \opt{indent} 的值是以 \texttt{em}ã€\texttt{ex} 或 \cs{ccwd} 为å•ä½ï¼Œ
-% 那么缩进间è·çš„大å°æ˜¯ç›¸å¯¹äºŽ \opt{format} 中指定的字å·å¤§å°ã€‚
+% 例如,若当å‰é¡µå‰©ä½™é«˜åº¦å°äºŽæ­£æ–‡é«˜åº¦çš„一åŠæ—¶ï¼Œåˆ™å¦èµ·ä¸€é¡µè¾“出
+% \tn{section} 标题:
+% \begin{ctexexam}
+% \usepackage{needspace}
+% \ctexset{section/break = \Needspace{.5\textheight}}
+% \end{ctexexam}
%
-% 例如,设置 \tn{part} 标题缩进三个字ã€\tn{section} 标题缩进 \SI{20}{pt}:
+% 该选项的默认设置è§è¡¨~\ref{tab:break-default}。
% \end{function}
-% \begin{ctexexam}
-% \ctexset{
-% part={
-% format+=\raggedright,
-% indent=3\ccwd,
-% },
-% section={
-% format=\Large\bfseries,
-% indent=20pt,
-% }
-% }
-% \part{首行缩进的标题}
-% \noindent 无缩进的正文。
-% \section{首行缩进的标题}
-% \noindent 无缩进的正文。
-% \end{ctexexam}
%
% \begin{table}[htbp]
-% \begin{minipage}[t]{.5\linewidth}
-% \small\centering
-% \caption{\opt{indent} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part & |0pt| \\
-% chapter & |0pt| \\
-% section & |0pt| \\
-% subsection & |0pt| \\
-% subsubsection & |0pt| \\
-% paragraph & |0pt| \\
-% subparagraph & |\parindent| \\
-% \qquad(sub3section) & |0pt| \\
-% \qquad(sub4section) & åŒä¸Š \\
-% \bottomrule
-% \end{tabular}
-% \end{minipage}%
-% \begin{minipage}[t]{.5\linewidth}
-% \small\centering
-% \caption{\opt{hang} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part & |false| \\
-% chapter & |false| \\
-% section & |true| \\
-% subsection & |true| \\
-% subsubsection & |true| \\
-% paragraph & æ— æ„义 \\
-% \qquad(sub3section) & |true| \\
-% \qquad(sub4section) & |true| \\
-% subparagraph & æ— æ„义 \\
-% \qquad(sub4section) & |true| \\
-% \bottomrule
-% \end{tabular}
-% \end{minipage}%
+% \small\centering
+% \caption{\opt{break} 选项的默认设置}
+% \label{tab:break-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part (article) & |{}| \\
+% part & |\if@openright\cleardoublepage\else\clearpage\fi| \\
+% chapter & åŒä¸Š \\
+% section & |\addpenalty{\@secpenalty}| \\
+% subsection & åŒä¸Š \\
+% subsubsection & åŒä¸Š \\
+% paragraph & åŒä¸Š \\
+% subparagraph & åŒä¸Š \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
-% \begin{function}[EXP,updated=2019-03-31]{part/hang, chapter/hang, section/hang,
-% subsection/hang, subsubsection/hang, paragraph/hang, subparagraph/hang}
+% \begin{function}[EXP,added=2015-06-27]{.../afterindent}
% \begin{syntax}
-% hang = \TF
+% afterindent = \TF
% \end{syntax}
-% \opt{hang} 选项用于设置是å¦å¯¹ç« èŠ‚标题实施悬挂缩进(缩进的宽度为å字宽度和 \opt{indent} 选项
-% 设置的宽度之和)。
+% \opt{afterindent} 选项用于设置章节标题åŽé¦–段的缩进。
%
-% 本选项对 \cls{beamer}/\cls{ctexbeamer} 文档类无效。
+% \cls{book} å’Œ \cls{report} 类的 \tn{part} 标题被å•ç‹¬æŽ’在一页之上,
+% \opt{afterindent} 选项没有æ„义。
% 对于 \tn{section} 级以下标题,若设置了 \opt{runin} 选项为 \opt{true},
-% å³æ ‡é¢˜ä¸ŽéšåŽæ­£æ–‡æŽ’在åŒä¸€æ®µï¼Œ\opt{hang} 选项没有æ„义。
-% \end{function}
+% å³æ ‡é¢˜ä¸ŽéšåŽæ­£æ–‡æŽ’在åŒä¸€æ®µï¼Œ\opt{afterindent} 选项也就没有了æ„义。
%
-% \begin{function}[EXP,added=2014-03-21]{part/pagestyle, chapter/pagestyle}
-% \begin{syntax}
-% pagestyle = \Arg{页é¢æ ¼å¼}
-% \end{syntax}
-% 设置 \cls{book}/\cls{ctexbook} 或 \cls{report}/\cls{ctexrep} 文档类
-% 中,\tn{part} 与 \tn{chapter} 标题所在页的页é¢æ ¼å¼ï¼ˆpage style)。
+% 该选项的默认设置è§è¡¨~\ref{tab:afterindent-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{pagestyle} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part (article) & 无效 \\
-% part & |plain| \\
-% chapter & |plain| \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \caption{\opt{afterindent} 选项的默认设置}
+% \label{tab:afterindent-default}
+% \begin{tabular}{lll}
+% \toprule
+% 标题å & \opt{scheme = chinese} & \opt{scheme = plain} \\
+% \midrule
+% part (article) & |true| & |false| \\
+% part & 无效 & 无效 \\
+% chapter & |true| & |false| \\
+% section & |true| & |false| \\
+% subsection & |true| & |false| \\
+% subsubsection & |true| & |false| \\
+% paragraph & |true| & |false| \\
+% subparagraph & |true| & |false| \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
-% \begin{function}[EXP,added=2016-09-19]{.../break, .../break+}
+% \subsection{目录ã€é™„录相关}
+% \label{subsec:sec-toc-appendix}
+%
+% \begin{function}[EXP,added=2016-10-25]{.../tocline}
% \begin{syntax}
-% break = \Arg{æ ¼å¼å‘½ä»¤}
-% break+= \Arg{æ ¼å¼å‘½ä»¤}
+% tocline = \Arg{æ ¼å¼å®šä¹‰}
% \end{syntax}
-% \opt{break} 选项用于控制章节标题与之å‰æ­£æ–‡çš„分隔关系。一般用于设置是å¦åœ¨æ ‡é¢˜ä¹‹å‰åˆ†é¡µæˆ–者设置行间罚点。
-%
-% 带加å·çš„ \opt{break+} 选项则用于在已有格å¼ä¹‹åŽè¿½åŠ æ–°çš„æ ¼å¼å‘½ä»¤ã€‚
-%
-% \opt{break} 选项的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下相åŒã€‚
-%
-% 例如,若当å‰é¡µå‰©ä½™é«˜åº¦å°äºŽæ­£æ–‡é«˜åº¦çš„一åŠæ—¶ï¼Œåˆ™å¦èµ·ä¸€é¡µè¾“出 \tn{section} 标题:
-% \begin{ctexexam}
-% \usepackage{needspace}
-% \ctexset{section/break = \Needspace{.5\textheight}}
-% \end{ctexexam}
+% \opt{tocline} 选项用于定义章节标题在目录文件(\file{.toc})中的格å¼ã€‚
+% \meta{æ ¼å¼å®šä¹‰}有两个å‚数:å‚æ•° |#1| 是 |part|ã€|chapter| ç­‰å字,
+% å‚æ•° |#2| 是标题内容。该选项的默认设置è§è¡¨~\ref{tab:tocline-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{break} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part (article) & |{}| \\
-% part & |\if@openright\cleardoublepage\else\clearpage\fi| \\
-% chapter & åŒä¸Š \\
-% section & |\addpenalty{\@secpenalty}| \\
-% subsection & åŒä¸Š \\
-% subsubsection & åŒä¸Š \\
-% paragraph & åŒä¸Š \\
-% subparagraph & åŒä¸Š \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \caption{\opt{tocline} 选项的默认设置}
+% \label{tab:tocline-default}
+% \begin{tabular}{ll}
+% \toprule
+% 标题å & 默认值 \\
+% \midrule
+% part & |\CTEXifname{\CTEXthepart\hspace{1em}}{}#2| \\
+% chapter (\opt{chinese})
+% & |\CTEXifname{\protect\numberline{\CTEXthechapter\hspace{.3em}}}{}#2| \\
+% chapter (\opt{plain})
+% & |\CTEXnumberline{#1}#2| \\
+% section & |\CTEXnumberline{#1}#2| \\
+% subsection & åŒä¸Š \\
+% subsubsection & åŒä¸Š \\
+% paragraph & åŒä¸Š \\
+% subparagraph & åŒä¸Š \\
+% \bottomrule
+% \end{tabular}
+%
+% \medskip
+% \raggedright
+% 这里 \tn{CTEXnumberline} çš„æ„义是,若标题 |#1| 没有å字,则ä¸è¾“出
+% |\numberline{\CTEXthe#1}| 等编å·ï¼š
+% \begin{verbatim}
+% \CTEXifname{\protect\numberline{\csname CTEXthe#1\endcsname}}{}
+% \end{verbatim}
+% 其中,\tn{CTEXifname} çš„å®šä¹‰è§ \ref{subsec:sec-commands}~å°èŠ‚。
% \end{table}
%
-% \begin{function}[EXP,added=2016-10-25]{.../tocline}
+% \begin{function}[EXP,added=2016-10-01]{chapter/lofskip, chapter/lotskip}
% \begin{syntax}
-% tocline = \Arg{æ ¼å¼å®šä¹‰}
+% lofskip = \Arg{弹性间è·}
+% lotskip = \Arg{弹性间è·}
% \end{syntax}
-% \opt{tocline} 选项用于定义章节标题在目录文件(\file{.toc})中的格å¼ã€‚\meta{æ ¼å¼å®šä¹‰}有两个å‚数:
-% å‚æ•° |#1| 是 |part|ã€|chapter| ç­‰å字,å‚æ•° |#2| 是标题内容。
-% \end{function}
-%
-% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{tocline} 选项的默认设置}
-% \begin{tabular}{ll}
-% \toprule
-% 标题å & 默认值 \\
-% \midrule
-% part & |\CTEXifname{\CTEXthepart\hspace{1em}}{}#2| \\
-% chapter (\opt{chinese})
-% & |\CTEXifname{\protect\numberline{\CTEXthechapter\hspace{.3em}}}{}#2| \\
-% chapter (\opt{plain})
-% & |\CTEXnumberline{#1}#2| \\
-% section & |\CTEXnumberline{#1}#2| \\
-% subsection & åŒä¸Š \\
-% subsubsection & åŒä¸Š \\
-% paragraph & åŒä¸Š \\
-% subparagraph & åŒä¸Š \\
-% \bottomrule
-% \end{tabular}
+% \opt{lofskip} 选项控制æ’图目录(\file{.lof})中,章之间的æ’图标题的è·ç¦»ã€‚
+% åŒæ ·ï¼Œ\opt{lotskip} 选项控制表格目录(\file{.lot})中,章之间的表格标题
+% çš„è·ç¦»ã€‚
%
-% \medskip
-% 其中 \tn{CTEXnumberline} çš„æ„义是若标题 |#1| 没有å字,则ä¸è¾“出 |\numberline{\CTEXthe#1}|
-% 等编å·ï¼š
-% \begin{verbatim}
-% \CTEXifname{\protect\numberline{\csname CTEXthe#1\endcsname}}{}
-% \end{verbatim}
-% \end{table}
+% ç›®å‰ï¼Œè¿™ä¸¤ä¸ªé€‰é¡¹åªåœ¨ \opt{chapter} 标题下有定义。
+% 它们的默认值,在 \opt{scheme} 选项的ä¸åŒå–值下都为 \SI{10}{pt}。
+% \end{function}
%
% \begin{function}[EXP,added=2015-06-21]{appendix/numbering}
% \begin{syntax}
% numbering = \TTF
% \end{syntax}
-% 控制是å¦å¯¹é™„录章(对 \cls{book} 与 \cls{report})或附录节(对 \cls{article})
-% 进行编å·ã€‚
-%
-% 用法与普通章节 \opt{numbering} 选项类似。
+% 控制是å¦å¯¹é™„录章(对应 \cls{book} 与 \cls{report})或附录节
+% (对应 \cls{article})进行编å·ï¼Œç”¨æ³•ä¸Žæ™®é€šç« èŠ‚对应的 \opt{numbering}
+% 选项相åŒã€‚该选项默认值为 \opt{true}。
% \end{function}
%
% \begin{function}[EXP,updated=2014-03-08]{appendix/name}
@@ -2335,60 +2422,103 @@ Copyright and Licence
% name = \{<å‰åå­—>,<åŽåå­—>\}
% name = \Arg{å‰åå­—}
% \end{syntax}
-% 设置附录章(对 \cls{book} 与 \cls{report})或附录节(对 \cls{article})的
-% å字。
-%
-% 用法与普通章节 \opt{name} 选项类似。
+% 设置附录章(对应 \cls{book} 与 \cls{report})或附录节(对应 \cls{article})
+% çš„å字,用法与普通章节对应的 \opt{name} 选项相åŒã€‚
%
% 注æ„该选项与 \opt{appendixname} 选项(\ref{subs:capname}~节)在æ„义上有
-% 些é‡å ï¼Œä½†æ„义ä¸åŒã€‚\opt{appendixname} 选项åªç”¨æ¥é‡å®šä¹‰
-% \tn{appendixname},而ä¸ç®¡ \tn{appendixname} 如何使用;该选项则决定在章节标
-% 题中输出的å字,å¯ä»¥è°ƒç”¨ \tn{appendixname} 设置。
+% 些é‡å ï¼Œä½†ä¸å®Œå…¨ç›¸åŒã€‚\opt{appendixname} 选项åªç”¨æ¥é‡å®šä¹‰
+% \tn{appendixname},而ä¸ç®¡ \tn{appendixname} 如何使用;该选项则决定在章节
+% 标题中输出的å字,å¯ä»¥è°ƒç”¨ \tn{appendixname} 设置。
+%
+% 该选项的默认设置è§è¡¨~\ref{tab:appendix-name-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{appendix/name} 选项的默认设置}
-% \begin{tabular}{llllll}
-% \toprule
-% 文档类 & å½±å“命令 & \opt{scheme = chinese} & 实际定义
-% & \opt{scheme = plain} & 实际定义 \\
-% \midrule
-% article & \tn{section} & |{}| & & |{}| & \\
-% book, report & \tn{chapter} & |\appendixname\space| & \verb*|附录 |
-% & |\appendixname\space| & \verb*|Appendix | \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \caption{\opt{appendix/name} 选项的默认设置}
+% \label{tab:appendix-name-default}
+% \begin{tabular}{llllll}
+% \toprule
+% 文档类 & å½±å“命令 & \opt{scheme = chinese} & 实际定义
+% & \opt{scheme = plain} & 实际定义 \\
+% \midrule
+% article & \tn{section} & |{}| & & |{}| & \\
+% book, report & \tn{chapter} & |\appendixname\space| & \verb*|附录 |
+% & |\appendixname\space| & \verb*|Appendix | \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
% \begin{function}[EXP]{appendix/number}
% \begin{syntax}
% number = \Arg{数字输出命令}
% \end{syntax}
-% 设置附录章(对 \cls{book} 与 \cls{report})或附录节(对 \cls{article})编
-% å·çš„数字输出格å¼ã€‚
-%
-% 用法与普通章节的 \opt{number} 选项类似。
-%
-% 该选项也åŒæ—¶æŽ§åˆ¶é™„录章节计数器的交å‰å¼•ç”¨ã€‚
+% 设置附录章(对 \cls{book} 与 \cls{report})或附录节(对 \cls{article})
+% ç¼–å·çš„数字输出格å¼ï¼Œç”¨æ³•ä¸Žæ™®é€šç« èŠ‚对应的 \opt{number} 选项相åŒã€‚
%
+% \opt{appendix/number} 选项åŒæ—¶ä¹Ÿä¼šæŽ§åˆ¶é™„录章节计数器的交å‰å¼•ç”¨ã€‚
% 与普通章节的 \opt{number} 选项类似,åŒæ ·éœ€è¦æ³¨æ„,该选项ä¸ä¼šå½±å“计数器本身
% 的输出,å³ä¸å½±å“ \tn{thesection} 或 \tn{thechapter} 的定义。
+%
+% 该选项的默认设置è§è¡¨~\ref{tab:appendix-number-default}。
% \end{function}
%
% \begin{table}[htbp]
-% \small\centering
-% \caption{\opt{appendix/number} 选项的默认设置}
-% \begin{tabular}{llllll}
-% \toprule
-% 文档类 & å½±å“命令 & 默认值 \\
-% \midrule
-% article & \tn{section} & |\Alph{section}| \\
-% book, report & \tn{chapter} & |\Alph{chapter}| \\
-% \bottomrule
-% \end{tabular}
+% \small\centering
+% \caption{\opt{appendix/number} 选项的默认设置}
+% \label{tab:appendix-number-default}
+% \begin{tabular}{llllll}
+% \toprule
+% 文档类 & å½±å“命令 & 默认值 \\
+% \midrule
+% article & \tn{section} & |\Alph{section}| \\
+% book, report & \tn{chapter} & |\Alph{chapter}| \\
+% \bottomrule
+% \end{tabular}
% \end{table}
%
+% \subsection{有关命令}
+% \label{subsec:sec-commands}
+%
+% \CTeX{} å®é›†è¿˜æ供了一些命令(å®ï¼‰ï¼Œç”¨äºŽå­˜å‚¨ç« èŠ‚标题格å¼ï¼Œæˆ–进行一些æ¡ä»¶åˆ¤æ–­ã€‚
+%
+% \begin{function}{\CTEXthepart, \CTEXthechapter, \CTEXthesection,
+% \CTEXthesubsection, \CTEXthesubsubsection, \CTEXtheparagraph,
+% \CTEXthesubparagraph}
+% 以 |\CTEXthe| 开头的这组å®ç»™å‡ºç»“åˆäº† \opt{name} 与 \opt{number} 选项的章节
+% ç¼–å·è¾“出格å¼ã€‚例如在 \opt{scheme = chinese} 时,默认章编å·è¾“出格å¼å°±æ˜¯
+% \tn{CTEXthechapter},形如“第一章â€ã€‚
+%
+% 这组å®åœ¨ \CTeX 文档类中将代替 \tn{thechapter} ç­‰å®çš„作用,在章节中引用本章
+% 节的完整编å·ã€‚例如用于帮助定义自定义的目录格å¼ã€é¡µçœ‰æ ¼å¼ç­‰ã€‚
+% \end{function}
+%
+% \begin{function}[added=2016-09-18]{\CTEXifname}
+% \begin{syntax}
+% \tn{CTEXifname} \Arg{有å字时的内容} \Arg{æ— å字时的内容}
+% \end{syntax}
+% \tn{CTEXifname} 会根æ®å½“å‰ç« èŠ‚有无å字展开得到ä¸åŒå†…容(通常是格å¼å‘½ä»¤ï¼‰ã€‚
+% 由于章节å字总是与编å·ä¸€èµ·å‡ºçŽ°ï¼Œç« èŠ‚有无å字通常也表达为“章节是å¦ç¼–å·â€ã€‚
+% 在 \LaTeX{} 中,åŽè€…å–决于以下几个方é¢ï¼šç« èŠ‚深度是å¦ä¸å¤§äºŽè®¡æ•°å™¨
+% |secnumdepth| 的值,章节标题是å¦ä½¿ç”¨ä¸å¸¦æ˜Ÿå·çš„命令。在 \CTeX{} å®é›†ä¸­ï¼Œ
+% åŽè€…还å–决于 \opt{.../numbering} 是å¦ä¸º \opt{true}。
+%
+% \tn{CTEXifname} å¯ç”¨äºŽ \opt{format}, \opt{titleformat}, \opt{aftertitle},
+% \opt{afterskip}, \opt{indent} 这五个选项和 \tn{chapter} 标题
+% \opt{beforeskip} 选项的格å¼è®¾ç½®ä¹‹ä¸­ã€‚也å¯ç”¨äºŽå¸®åŠ©å®šä¹‰è‡ªå®šä¹‰çš„目录格å¼ã€
+% 页眉格å¼ç­‰ã€‚
+%
+% 例如,设置章的标题有å字时左对é½ï¼Œæ— å字时居中对é½ï¼Œå¹¶ä¸”在标题åŽç”»ä¸€æ¡æ¨ªçº¿ã€‚
+% \begin{ctexexam}
+% \ctexset{
+% chapter/format = \CTEXifname{\raggedright}{\centering},
+% chapter/aftertitle = \par\CTEXifname{}{\hrule},
+% }
+% \end{ctexexam}
+% \end{function}
+%
+% \subsection{示例}
+%
% 我们最åŽä¸¾ä¸€ä¸ªç¨å¾®å¤æ‚的例å­ï¼Œæ¥çœ‹çœ‹ä¸Šè¿°é€‰é¡¹çš„综åˆåº”用。
%
% \begin{ctexexam}[labelref=exam:miscopt]
@@ -2548,18 +2678,18 @@ Copyright and Licence
%
% \subsection{\LuaLaTeX{} 下替代字体的设置}
%
-% \begin{function}[added=2014-04-14]{AlternateFont}
+% \begin{function}[updated=2020-04-30]{AlternateFont}
% \begin{syntax}
-% \tn{setCJKfamilyfont} \Arg{family}
+% \tn{setCJKfamilyfont} \Arg{family} \Arg{base font name}
% \ [
+% \ <base font features> ,
% \ AlternateFont =
% \ \{
-% \ \Arg{character range_1} \oarg{alternate font features_1} \Arg{alternate font name_1} ||
-% \ \Arg{character range_2} \oarg{alternate font features_2} \Arg{alternate font name_2} ||
+% \ \Arg{character range_1} \Arg{alternate font name_1} ,
+% \ \Arg{character range_2} \Arg{alternate font name_2} \Arg{alternate font features_2} ,
% \ ......
-% \ \} ,
-% \ <base font features>
-% \ ] \Arg{base font name}
+% \ \}
+% \ ]
% \end{syntax}
% åœ¨è®¾ç½®å­—ä½“æ— \meta{family} 的时候,åŒæ—¶è®¾ç½®è¯¥å­—体æ—在字符范围
% \meta{character range_n} 内,对应字形的替代字体。
@@ -2567,11 +2697,11 @@ Copyright and Licence
%
% \begin{function}[added=2014-04-14]{CharRange}
% \begin{syntax}
-% \tn{setCJKfamilyfont} \Arg{family}
+% \tn{setCJKfamilyfont} \Arg{family} \Arg{alternate font name}
% \ [
% \ CharRange = \Arg{character range} ,
% \ <alternate font features>
-% \ ] \Arg{alternate font name}
+% \ ]
% \end{syntax}
% åªè®¾ç½®å­—ä½“æ— \meta{family} 在字符范围 \meta{character range} 内,对应字形的
% 替代字体。
@@ -2586,7 +2716,7 @@ Copyright and Licence
% \setCJKmainfont[CharRange={"6800->"9FFF}, ...]{...}
% \end{ctexexam}
%
-% \begin{function}[EXP,added=2014-04-14]{declarecharrange}
+% \begin{function}[EXP,added=2020-04-30]{declarecharrange}
% \begin{syntax}
% \tn{ctexset}
% \ \{
@@ -2605,9 +2735,10 @@ Copyright and Licence
%
% 在声明字符范围 \meta{name} çš„åŒæ—¶ï¼Œè¿˜ä¸º \tn{setCJKmainfont} 等字体设置命令定义
% 了选项 \meta{name},用于设置对应字符的替代字体:
-% \begin{quote}\linespread{1}\small\ttfamily
-% \meta{name} = \oarg{alternate font features} \Arg{alternate font name}
-% \end{quote}
+% \begin{syntax}
+% \meta{name} = \Arg{alternate font name}
+% \meta{name} = \Arg{alternate font name} \Arg{alternate font features}
+% \end{syntax}
% \meta{name} 选项å¯ä»¥ä¸Ž \opt{AlternateFont} å…±åŒä½¿ç”¨ï¼Œä½†ä¸èƒ½ä¸Ž \opt{CharRange}
% 一起使用。如果没有给 \meta{name} 设置值,则等价于设置 \opt{CharRange=\meta{name}},
% å³åªè®¾ç½® \meta{name} 对应的字符范围的替代字体。
@@ -2652,7 +2783,7 @@ Copyright and Licence
% 例如对于 \TeX{} Live,系统自带的é…置文件就在 \TeX{} Live 安装目录下的
% \path{texmf-dist/tex/latex/ctex/config/} å­ç›®å½•ä¸‹ï¼Œå¯ä»¥ä¿®æ”¹å®ƒçš„副本,ä¿å­˜åœ¨
% 本地 TDS 树的 \path{texmf-local/tex/latex/ctex/} 目录下,或者用户 TDS 树的
-% \path{~/.texlive2015/texmf-var/tex/latex/ctex/} 目录下,作为本地/用户专有的
+% \path{~/texmf/tex/latex/ctex/} 目录下,作为本地/用户专有的
% é…置文件。å¤åˆ¶é…置文件åŽéœ€è¦è¿è¡Œ |texhash| 命令使本地é…置文件生效。
%
% \MiKTeX{} çš„é…置文件也ä¿å­˜åœ¨ç±»ä¼¼çš„目录结构中,\MiKTeX{} 管ç†çš„
@@ -2668,13 +2799,12 @@ Copyright and Licence
% 注释就å¯ä»¥ç”Ÿæ•ˆã€‚
%
% \begin{ctexexam}
-% % 系统自带 ctexopts.cfg 注释中的示例语å¥ï¼Œå›ºå®šé»˜è®¤å­—体集为 windowsnew。
+% % 系统自带 ctexopts.cfg 注释中的示例语å¥ï¼Œå›ºå®šé»˜è®¤å­—体集为 windows。
% % 该设置å¯ä»¥ç”¨åœ¨å®‰è£…了 Windows å­—ä½“çš„éž Windows 系统中。
-% \keys_set:nn { ctex / option } { fontset = windowsnew }
+% \ctex_set:nn { option } { fontset = windows }
% \end{ctexexam}
-% 如上例所示,å®åŒ…选项通常使用 \LaTeXiii{} çš„ \cs{keys_set:nn} 命令完æˆé”®å€¼è®¾ç½®ï¼Œ
-% 第一个å‚数是固定的å­æ¨¡å— |ctex/option|,第二个å‚数中是用户定义的新的默认å®åŒ…
-% 选项。
+% 如上例所示,å®åŒ…选项通常使用 \LaTeXiii{} çš„ \cs{ctex_set:nn} 命令完æˆé”®å€¼è®¾ç½®ï¼Œ
+% 第一个å‚数是固定的å­æ¨¡å— |option|,第二个å‚数中是用户定义的新的默认å®åŒ…选项。
%
% \file{ctexopts.cfg} 中的设置将在 \CTeX{} å®é›†çš„开始处,定义过å®åŒ…选项之åŽï¼Œ
% \tn{ProcessKeysOptions} 命令之å‰ç”Ÿæ•ˆã€‚最好åªä½¿ç”¨æ­¤é…置文件修改å®åŒ…默认选项。
@@ -2820,20 +2950,22 @@ Copyright and Licence
%
% \begin{function}{fntef}
% 旧版本的 \opt{fntef} 选项用于统一 \pkg{CCTfntef} 与 \pkg{CJKfntef} çš„ç•Œé¢ï¼Œ
-% 新版本 \CTeX{} å®é›†ä¸å†æ”¯æŒ \pkg{CCT},而是直接载入 \pkg{CJKfntef} 或
-% \pkg{xeCJKfntef} å®åŒ…并ç¦ç”¨å…¶å½©è‰²è®¾ç½®ã€‚该选项是过时选项。
+% 新版本 \CTeX{} å®é›†ä¸å†æ”¯æŒ \pkg{CCT},也ä¸å†è‡ªåŠ¨è½½å…¥ \pkg{CJKfntef} 或
+% \pkg{xeCJKfntef} å®åŒ…,而仅在其末尾åšé€‚当格å¼è°ƒæ•´ã€‚
+%
+% \opt{fntef} 选项过时,因兼容性ä¿ç•™ï¼ŒåŠŸèƒ½æ˜¯æ ¹æ®å¼•æ“Žè½½å…¥ \pkg{CJKfntef}
+% (\pdfTeX{}) 或 \pkg{xeCJKfntef} (\XeTeX{}) å®åŒ…。
% \end{function}
%
% \begin{function}{\CTEXunderdot, \CTEXunderline, \CTEXunderdblline,
-% \CTEXunderwave, \CTEXsout, \CTEXxout, \CTEXfilltwosides}
+% \CTEXunderwave, \CTEXsout, \CTEXxout, CTEXfilltwosides}
% 在调用 \opt{fntef} å®åŒ…选项的åŒæ—¶ï¼Œæ—§ç‰ˆæœ¬ \CTeX{} å®åŒ…由于需è¦æ”¯æŒ \pkg{CCT}
% 系统,会将以 |\CJK| 开头的 \tn{CJKunderline} ç­‰å®æ¢å为以 |\CTEX| 开头的
-% \tn{CTEXunderline} ç­‰å®ã€‚此功能在新版本的 \CTeX{} å®é›†ä¸­å·²å¤±åŽ»æ„义。
-%
-% 此外,在 \pdfTeX{} 引擎下,用于设置格å¼çš„ \tn{CJKunderdotbasesep} ç­‰å®ä¹Ÿè¢«æ¢
-% å为 \tn{CTEXunderdotbasesep} ç­‰å®ã€‚
+% \tn{CTEXunderline} ç­‰å®ã€‚此功能在新版本的 \CTeX{} å®é›†ä¸­å·²å¤±åŽ»æ„义。此外,
+% 在 \pdfTeX{} 引擎下,用于设置格å¼çš„ \tn{CJKunderdotbasesep} ç­‰å®ä¹Ÿè¢«æ›´å为
+% \tn{CTEXunderdotbasesep} ç­‰å®ã€‚
%
-% 在新版本中,上述由 \opt{fntef} è¡ç”Ÿçš„相关å®éƒ½æˆä¸ºè¿‡æ—¶å‘½ä»¤ã€‚
+% 在新版本中,上述由 \opt{fntef} è¡ç”Ÿçš„相关命令和环境å‡è¢«ç§»é™¤ã€‚
% \end{function}
%
% \begin{function}{\CTEXsetfont}
@@ -2927,11 +3059,53 @@ Copyright and Licence
% 这两个选项已ç»è¢«åˆ é™¤ï¼Œç›¸åº”功能由新的选项 \opt{fixskip} æ供。
% \end{function}
%
+% \subsection{\CTeX\ 2.5 之å‰çš„版本}
+%
+% \CTeX\ 2.5 有一些比较大的å˜åŠ¨ã€‚
+%
+% \begin{function}[label =]{UTF8, GBK}
+% (pdf)\LaTeX{} æ ¼å¼ä¸‹ï¼Œæ–‡æ¡£ç¼–ç åˆå§‹å€¼ç»Ÿä¸€è®¾ç½®æˆ UTF-8。因此,ä»æ—§ä½¿ç”¨ GBK
+% ç¼–ç çš„文档,需è¦åœ¨æ–‡æ¡£ç±»æˆ–å®åŒ…选项中显å¼æŒ‡å®š \opt{GBK}。
+% \end{function}
+%
+% \begin{function}[label =]{\CTEXunderdot, \CTEXunderline, \CTEXunderdblline,
+% \CTEXunderwave, \CTEXsout, \CTEXxout, CTEXfilltwosides}
+% ä¸å†é»˜è®¤è½½å…¥ \pkg{CJKfntef} 或 \pkg{xeCJKfntef} å®åŒ…,åŒæ­¥ç§»é™¤æœ‰å…³å‘½ä»¤
+% 和环境。若需使用相关å®åŒ…,建议用户使用 \tn{usepackage} 命令主动载入。
+% \end{function}
+%
+% \begin{function}[label =]{fntef}
+% 作为兼容性ä¿ç•™ï¼Œä¼šè§†ç¼–译引擎载入相应å®åŒ…。
+% \end{function}
+%
+% \begin{function}{windows}
+% ä¸å†æ”¯æŒ Windows XP 系统,默认è¦æ±‚ Windows 系统有微软雅黑字体。
+% 建议 Windows XP 系统的用户åŠæ—¶æ›´æ–°æ“作系统。若一定è¦åœ¨ Windows XP 中使用,
+% 请使用 2.5 以å‰çš„版本。
+% \end{function}
+%
+% \begin{function}{windowsold, windowsnew}
+% 过时字库选项,作为兼容性ä¿ç•™ï¼ŒåŠŸèƒ½æ˜¯è½½å…¥ \opt{windows} 字库。
+% \end{function}
+%
+% \begin{function}{ubuntu}
+% 改用æ€æºï¼ˆNoto CJK)和文鼎字库。该字库ä¸å†æ”¯æŒ \pdfLaTeX 编译。
+% \end{function}
+%
+% \begin{function}[label =]{AlternateFont}
+% ä¸å†æ”¯æŒå°†æ›¿ä»£å­—体的å¯é€‰é¡¹æ”¾åœ¨å­—体å之å‰çš„方括å·ä¸­ï¼Œ
+% 新的语法是将å¯é€‰é¡¹æ”¾åœ¨å­—体å之åŽçš„花括å·ä¹‹å†…。
+% \end{function}
+%
+% 除了以上列出的选项以外,当用户使用 \CTeX{} 系列文档类,且使用 \LaTeX 或
+% \upLaTeX 编译时,若用户没有在文档类选项中显å¼æŒ‡å®š |dvips|/|dvipdfmx|/|dvisvgm|
+% 等驱动选项,则文档类指定默认驱动为 \dvipdfmx。
+%
% \section{å®é›†ä¾èµ–情况与手工安装方法}
% \label{sec:dep-ins}
%
% æœ¬èŠ‚ä»‹ç» \CTeX{} å®é›†çš„ä¾èµ–情况,并介ç»æ‰‹å·¥ç¼–译安装的具体方法。
-% 通常用户åªéœ€å‚照第 \ref{subsec:easy-ins}~节介ç»çš„方法,使用å‘行版自带的å®åŒ…管ç†å™¨å®‰è£…
+% 通常用户åªéœ€å‚照第 \ref{subsec:easy-ins}~节介ç»çš„方法,使用å‘行版自带的包管ç†å™¨å®‰è£…
% 本å®é›†ã€‚
%
% \CTeX{} å®é›†æœ‰ä¸¤ä¸ªæºæ–‡ä»¶ï¼š\file{ctex.dtx}ã€\file{ctexpunct.spa}。
@@ -2943,14 +3117,20 @@ Copyright and Licence
% å’Œ \pkg{l3packages} å®é›†ã€‚
% \item \pkg{indentfirst} å®åŒ…,属于 \pkg{tools} å®é›†ã€‚
% \item \pkg{everysel} å®åŒ…,属于 \pkg{ms} å®é›†ã€‚
-% \item \pkg{ulem} å®åŒ…。
% \item \pkg{zhnumber} å®åŒ…。
% \item[\ding{229}] 以上是å„ç§ç¼–译方å¼éƒ½å¿…需的ä¾èµ–项。
% \item \pkg{CJK} å®é›†ã€‚
% \item \pkg{CJKpunct} å®åŒ…。
% \item \pkg{xCJK2uni} å®åŒ…。
% \item \pkg{zhmetrics} å®åŒ…。
-% \item \pkg{zhmCJK} å®åŒ…,它还ä¾èµ– \pkg{oberdiek} å®é›†ã€‚
+% \item \pkg{zhmCJK} å®åŒ…,它还ä¾èµ–
+% \begin{itemize}
+% \item \pkg{iftex} å®åŒ…。
+% \item \pkg{ltxcmds} å®åŒ…。
+% \item \pkg{kvoptions} å®åŒ…。
+% \item \pkg{kvsetkeys} å®åŒ…。
+% \item \pkg{keyval} å®åŒ…,\pkg{graphics} å®é›†ã€‚
+% \end{itemize}
% \item[\ding{229}] 以上是使用 \pdfLaTeX{} 或 \LaTeX{} + \dvipdfmx{} 的编译方å¼æ‰€éœ€è¦
% çš„ä¾èµ–项,其中 \pkg{zhmCJK} 是å¯é€‰çš„。
% \item \pkg{xeCJK} å®é›†ï¼Œå®ƒè¿˜ä¾èµ–
@@ -2958,17 +3138,19 @@ Copyright and Licence
% \item \pkg{xtemplate} å®åŒ…,它属于 \pkg{l3packages} å®é›†ã€‚
% \item \pkg{fontspec} å®åŒ…。
% \end{itemize}
-% \item \pkg{environ} å®åŒ…,它还ä¾èµ– \pkg{trimspaces} å®åŒ…。
% \item[\ding{229}] 以上是使用 \XeLaTeX{} 编译时的ä¾èµ–项。
% \item \pkg{luatexja} å®åŒ…,它还ä¾èµ–
% \begin{itemize}
% \item \pkg{adobemapping} å®åŒ…。
-% \item \pkg{lualibs} å®åŒ…。
-% \item \pkg{luaotfload} å®åŒ…。
+% \item \pkg{luaotfload} å®åŒ…,它还ä¾èµ– \pkg{lualibs} å®åŒ…。
% \item \pkg{luatexbase} å®åŒ…,它还ä¾èµ– \pkg{ctablestack} å®åŒ…。
-% \item \pkg{oberdiek} å®é›†ã€‚
-% \item \pkg{xkeyval} å®åŒ…。
+% \item \pkg{atbegshi} å®åŒ…。
% \item \pkg{etoolbox} å®åŒ…。
+% \item \pkg{iftex} å®åŒ…。
+% \item \pkg{infwarerr} å®åŒ…。
+% \item \pkg{ltxcmds} å®åŒ…。
+% \item \pkg{pdftexcmds} å®åŒ…。
+% \item \pkg{xkeyval} å®åŒ…。
% \end{itemize}
% \item \pkg{fontspec} å®åŒ…。
% \item \pkg{xunicode-addon} å®åŒ…,属于 \pkg{xeCJK} å®é›†ï¼Œå®ƒè¿˜ä¾èµ–
@@ -2978,6 +3160,7 @@ Copyright and Licence
% \item \pkg{graphics} å®é›†ã€‚
% \item \pkg{graphics-cfg} å®åŒ…。
% \item \pkg{graphics-def} å®åŒ…。
+% \item \pkg{tipa} å®åŒ…。
% \end{itemize}
% \end{itemize}
% \item[\ding{229}] 以上是使用 \LuaLaTeX{} 编译时的ä¾èµ–项。
@@ -3001,7 +3184,7 @@ Copyright and Licence
% 中第 3 节的指导。
%
% \emph{\CTeX{} å®é›†å·²è¢« \TeXLive{} å’Œ \MiKTeX{} 收录,若无特别ç†ç”±ï¼Œ
-% 我们强烈建议用户使用å®åŒ…管ç†å™¨å®‰è£…本å®é›†ã€‚}
+% 我们强烈建议用户使用包管ç†å™¨å®‰è£…本å®é›†ã€‚}
%
% è‹¥è¦æ‰‹å·¥å®‰è£…,请éµå¾ªå¦‚下步骤:
% \begin{enumerate}
@@ -3023,9 +3206,12 @@ Copyright and Licence
% \item é™ˆä¹‹åˆ (\email{zhichu.chen@gmail.com})
% \item æŽæ¸… (\email{sobenlee@gmail.com})
% \item é»„æ™¨æˆ (\email{liamhuang0205@gmail.com})
+% \item 曾祥东 (\email{xdzeng96@gmail.com})
+% \item æŽæ³½å¹³ (\email{zepinglee@gmail.com})
+% \item å‘¨å®‡æº (\email{muzimuzhi@gmail.com})
+% \item 张瑞熹 (\email{ruixizhang42@gmail.com})
% \end{itemize}
%
-% ç›®å‰æ¯”较活跃的开å‘维护人员是刘海洋ã€æŽæ¸…和黄晨æˆã€‚
%
%
% \begin{thebibliography}{9}
@@ -3105,11 +3291,11 @@ Copyright and Licence
\msg_new:nnnn { ctex } { l3-too-old }
{ Support~package~`#1'~too~old. }
{
- Please~update~an~up~to~date~version~of~the~bundles\\\\
+ Please~update~an~up-to-date~version~of~the~bundles\\\\
`l3kernel'~and~`l3packages'\\\\
using~your~TeX~package~manager~or~from~CTAN.
}
-\@ifpackagelater { expl3 } { 2019/03/05 } { }
+\@ifpackagelater { expl3 } { 2020/04/06 } { }
{ \msg_error:nnn { ctex } { l3-too-old } { expl3 } }
%<*class>
\@ifpackagelater { l3keys2e } { 2015/12/20 } { }
@@ -3138,13 +3324,20 @@ Copyright and Licence
%</class|ctex>
% \end{macrocode}
%
+% \changes{v2.5}{2020/04/19}
+% {å¤„ç† \cs{ctex_file_input:n} 在 \pkg{ctexsize} 中未定义的错误。}
+% \changes{v2.5}{2020/04/21}{在 \pkg{ctexsize} 也载入 \pkg{fix-cm}。}
+%
% \begin{macrocode}
-%<*class|ctex|ctexheading>
+%<*class|ctex|ctexheading|ctexsize>
% \end{macrocode}
%
+% \pkg{ctexsize} 也è¦è½½å…¥ \pkg{fix-cm} 包解决传统 cm 字体字å·ç¼ºå¤±çš„问题。
% \begin{macrocode}
-\RequirePackage { ctexhook , ctexpatch }
-%<!ctexheading>\RequirePackage { fix-cm , everysel }
+%<!ctexsize>\RequirePackage { ctexhook , ctexpatch }
+%<!ctexheading>\RequirePackage { fix-cm }
+%<*!ctexsize>
+%<!ctexheading>\RequirePackage { everysel }
% \end{macrocode}
%
% \subsection{内部函数与å˜é‡}
@@ -3159,10 +3352,28 @@ Copyright and Licence
% \end{macrocode}
% \end{variable}
%
+% \begin{macro}[int]{\ctex_define_option:n,
+% \ctex_define:n,\ctex_set:n,\ctex_set:nn}
+% 在å®åŒ…内部使用的键值选项定义ã€è®¾ç½®å‘½ä»¤ã€‚
+% \begin{macrocode}
+%</!ctexsize>
+\cs_new_protected:Npn \ctex_define_option:n
+ { \keys_define:nn { ctex / option } }
+%<*!ctexsize>
+\cs_new_protected:Npn \ctex_define:n
+ { \keys_define:nn { ctex } }
+\cs_new_protected:Npn \ctex_set:n
+ { \keys_set:nn { ctex } }
+\cs_new_protected:Npn \ctex_set:nn #1
+ { \keys_set:nn { ctex / #1 } }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[int]{\ctex_file_wrapper:nnn}
% 设置文件æ“作的 \tn{catcode} 环境,å‚æ•° |#1| 是设置,|#2| 是文件æ“作,|#3| 是æ¢å¤ã€‚
% 默认关闭 \LaTeXiii{} 语法环境,并设置 |@| 的 \tn{catcode} 为 $11$。
% \begin{macrocode}
+%</!ctexsize>
\cs_new_protected:Npn \ctex_file_wrapper:nnn #1#2#3
{
\use:x
@@ -3184,15 +3395,16 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_file_input:n}
% 输入文件。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_file_input:n #1
+\cs_new_protected:Npn \ctex_file_input:n #1
{ \ctex_file_wrapper:nnn { } { \file_input:n {#1} } { } }
+%<*!ctexsize>
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\ctex_scheme_input:n}
% 输入 \opt{scheme} 文件。先查找当å‰æ–‡æ¡£ç±»ä¸‹çš„ \meta{scheme},找ä¸åˆ°å†æŸ¥æ‰¾ä¸€èˆ¬çš„文件。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_scheme_input:n #1
+\cs_new_protected:Npn \ctex_scheme_input:n #1
{
\ctex_file_wrapper:nnn
{ }
@@ -3222,7 +3434,8 @@ Copyright and Licence
% \end{variable}
%
% \begin{macrocode}
-%</class|ctex|ctexheading>
+%</!ctexsize>
+%</class|ctex|ctexheading|ctexsize>
%<*class|ctex>
% \end{macrocode}
%
@@ -3231,7 +3444,7 @@ Copyright and Licence
\msg_new:nnnn { ctex } { package-too-old }
{ Support~package~`#1'~too~old. }
{
- Please~update~an~up~to~date~version~of~the~package~`#1'\\
+ Please~update~an~up-to-date~version~of~the~package~`#1'\\
using~your~TeX~package~manager~or~from~CTAN.
}
% \end{macrocode}
@@ -3278,12 +3491,10 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{variable}{\l_@@_encoding_tl}
-% (pdf)\LaTeX{} åˆå§‹åŒ–ç¼–ç ä¸º GBK,其它则是 UTF8。
+% \begin{variable}{\g_@@_encoding_tl}
+% 所有引擎下默认编ç å‡è®¾ä¸º UTF-8,åˆå§‹å€¼ä¸ºç©ºï¼Œ\tn{ProcessKeysOptions} å†åˆ¤æ–­ã€‚
% \begin{macrocode}
-\tl_new:N \l_@@_encoding_tl
-\tl_set:Nx \l_@@_encoding_tl
- { \sys_if_engine_pdftex:TF { GBK } { UTF8 } }
+\tl_new:N \g_@@_encoding_tl
% \end{macrocode}
% \end{variable}
%
@@ -3318,8 +3529,8 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_at_end:n}
% 区分 \tn{AtEndOfClass} å’Œ \tn{AtEndOfPackage},虽然它们的æ„æ€éƒ½æ˜¯ä¸€æ ·çš„。
% \begin{macrocode}
-%<class>\cs_new_protected_nopar:Npn \ctex_at_end:n { \AtEndOfClass }
-%<ctex>\cs_new_protected_nopar:Npn \ctex_at_end:n { \AtEndOfPackage }
+%<class>\cs_new_protected:Npn \ctex_at_end:n { \AtEndOfClass }
+%<ctex>\cs_new_protected:Npn \ctex_at_end:n { \AtEndOfPackage }
% \end{macrocode}
% \end{macro}
%
@@ -3340,15 +3551,28 @@ Copyright and Licence
{ Value~`#1'~is~invalid~for~the~key~`\l_keys_key_tl'. }
% \end{macrocode}
%
+% \begin{macro}[int]{\ctex_deprecated_option:nn,
+% \ctex_set_deprecated_option:n,\ctex_deprecated_command:Nn}
% 对过时选项或命令给出警告。
% \begin{macrocode}
+\cs_new_protected:Npn \ctex_deprecated_option:n
+ { \msg_warning:nnn { ctex } { deprecated-option } }
+\cs_new_protected:Npn \ctex_set_deprecated_option:n #1
+ {
+ \ctex_deprecated_option:n { Option~`#1'~is~set. }
+ \ctex_set:nn { option } {#1}
+ }
+\cs_new_protected:Npn \ctex_deprecated_command:Nn #1#2
+ {
+ \msg_warning:nnxx { ctex } { deprecated-command }
+ { \token_to_str:N #1 } { \exp_not:n {#2} }
+ }
\msg_new:nnn { ctex } { deprecated-option }
- { Option~ `\l_keys_key_tl'~ is~ deprecated.\\ #1 }
+ { Option~`\l_keys_key_tl'~is~deprecated.\\ #1 }
\msg_new:nnn { ctex } { deprecated-command }
- { Command~ #1 is~ deprecated.\\ #2 }
-\msg_new:nnn { ctex } { deprecated-environment }
- { Environment~ `#1'~ is~ deprecated.\\ #2 }
+ { Command~`#1'~is~deprecated.\\ #2 }
% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
%</class|ctex>
@@ -3360,7 +3584,7 @@ Copyright and Licence
% \begin{macrocode}
%<*class|ctex|ctexsize>
\int_new:N \g_@@_font_size_int
-\int_set:Nn \g_@@_font_size_int { -1 }
+\int_gset:Nn \g_@@_font_size_int { -1 }
%</class|ctex|ctexsize>
% \end{macrocode}
% \end{variable}
@@ -3372,7 +3596,7 @@ Copyright and Licence
%
% \begin{macrocode}
%<*class|style>
-\keys_define:nn { ctex / option }
+\ctex_define_option:n
{
%</class|style>
% \end{macrocode}
@@ -3392,18 +3616,8 @@ Copyright and Licence
%<ctexsize> }
%</class|ctex|ctexsize>
%<*class|ctex>
- c5size .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- { Option~ `zihao=5'~ is~ set. }
- \keys_set:nn { ctex / option } { zihao = 5 }
- } ,
- cs4size .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- { Option~ `zihao=-4'~ is~ set. }
- \keys_set:nn { ctex / option } { zihao = -4 }
- } ,
+ c5size .code:n = { \ctex_set_deprecated_option:n { zihao = 5 } } ,
+ cs4size .code:n = { \ctex_set_deprecated_option:n { zihao = -4 } } ,
c5size .value_forbidden:n = true ,
cs4size .value_forbidden:n = true ,
% \end{macrocode}
@@ -3451,31 +3665,40 @@ Copyright and Licence
% \begin{macrocode}
indent .code:n =
{
- \msg_warning:nnn { ctex } { deprecated-option }
+ \ctex_deprecated_option:n
{
- The~ functionality~ has~ been~ removed.\\
- It's~ better~ to~ set~ the~ heading~ styles~ via~ `afterindent'~
- options.~
+ The~functionality~has~been~removed.\\
+ It's~better~to~set~the~heading~styles~via~`afterindent'~option.
}
} ,
indent .value_forbidden:n = true ,
noindent .code:n =
{
- \msg_warning:nnn { ctex } { deprecated-option }
+ \ctex_deprecated_option:n
{
- The~ functionality~ has~ been~ removed.\\
- It's~ better~ to~ set~ the~ heading~ styles~ via~ `afterindent'~
- options.
+ The~functionality~has~been~removed.\\
+ It's~better~to~set~the~heading~styles~via~`afterindent'~option.
}
} ,
noindent .value_forbidden:n = true ,
% \end{macrocode}
% \end{macro}
%
+% \changes{v2.5}{2019/11/10}{所有引擎下默认编ç å‡è®¾ä¸º UTF-8。}
+%
% \begin{macro}{GBK,UTF8}
+% 文档编ç ï¼Œé»˜è®¤ä¸º UTF-8。
% \begin{macrocode}
- GBK .code:n = { \tl_set:Nn \l_@@_encoding_tl { GBK } } ,
- UTF8 .code:n = { \tl_set:Nn \l_@@_encoding_tl { UTF8 } } ,
+ GBK .code:n =
+ {
+ \sys_if_engine_pdftex:TF
+ { \tl_gset:Nn \g_@@_encoding_tl { GBK } }
+ {
+ \msg_warning:nn { ctex } { invalid-option }
+ \tl_gset:Nn \g_@@_encoding_tl { UTF8 }
+ }
+ } ,
+ UTF8 .code:n = { \tl_gset:Nn \g_@@_encoding_tl { UTF8 } } ,
GBK .value_forbidden:n = true ,
UTF8 .value_forbidden:n = true ,
% \end{macrocode}
@@ -3487,36 +3710,12 @@ Copyright and Licence
%
% \begin{macro}{fontset}
% åˆå§‹å€¼ä¸ºç©ºã€‚若用户未指定,则根æ®æ“作系统载入对应字体é…置,å¯ä»¥åŒºåˆ† Windowsã€
-% Mac~OS~X 和其它。
+% macOS 和其他。
% \begin{macrocode}
fontset .tl_gset:N = \g_@@_fontset_tl ,
- nofonts .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- {
- Option~ `fontset=none'~ is~ set.~ It~ is~ better~ to~ use~
- fontset~ option.
- }
- \keys_set:nn { ctex / option } { fontset = none }
- } ,
- adobefonts .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- {
- Option~ `fontset=adobe'~ is~ set.~ It~ is~ better~ to~ use~
- fontset~ option.
- }
- \keys_set:nn { ctex / option } { fontset = adobe }
- } ,
- winfonts .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- {
- Option~ `fontset=windows'~ is~ set.~ It~ is~ better~ to~ use~
- fontset~ option.
- }
- \keys_set:nn { ctex / option } { fontset = windows }
- } ,
+ nofonts .code:n = { \ctex_set_deprecated_option:n { fontset = none } } ,
+ adobefonts .code:n = { \ctex_set_deprecated_option:n { fontset = adobe } } ,
+ winfonts .code:n = { \ctex_set_deprecated_option:n { fontset = windows } } ,
nofonts .value_forbidden:n = true ,
winfonts .value_forbidden:n = true ,
adobefonts .value_forbidden:n = true ,
@@ -3546,11 +3745,7 @@ Copyright and Licence
\cs_gset_eq:NN \ctex_zhmap_case:nnn \use_iii:nnn
} ,
nozhmap .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- { Option~ `zhmap=false'~ is~ set. }
- \keys_set:nn { ctex / option } { zhmap = false }
- } ,
+ { \ctex_set_deprecated_option:n { zhmap = false } } ,
nozhmap .value_forbidden:n = true ,
% \end{macrocode}
% \end{macro}
@@ -3564,12 +3759,7 @@ Copyright and Licence
punct .tl_set:N = \l_@@_punct_tl ,
punct .default:n = { quanjiao } ,
punct .initial:n = { quanjiao } ,
- nopunct .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- { Option~ `punct=plain'~ is~ set. }
- \keys_set:nn { ctex / option } { punct = plain }
- } ,
+ nopunct .code:n = \ctex_set_deprecated_option:n { punct = plain } ,
nopunct .value_forbidden:n = true ,
% \end{macrocode}
% \end{macro}
@@ -3581,15 +3771,10 @@ Copyright and Licence
{ true , auto , false }
{
\exp_args:Nx \ctex_at_end:n
- { \keys_set:nn { ctex } { space = \l_keys_choice_tl } }
+ { \ctex_set:n { space = \l_keys_choice_tl } }
} ,
space .default:n = { true } ,
- nospace .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- { Option~ `space=false'~ is~ set. }
- \keys_set:nn { ctex / option } { space = false }
- } ,
+ nospace .code:n = { \ctex_deprecated_option:nn { space = false } } ,
nospace .value_forbidden:n = true ,
% \end{macrocode}
% \end{macro}
@@ -3622,6 +3807,7 @@ Copyright and Licence
%
% \changes{v2.0}{2015/04/15}{新增 \opt{scheme} 选项,并将 \opt{cap} 和 \opt{nocap}
% 列为过时选项。}
+%
% \begin{macro}{scheme}
% \begin{macrocode}
scheme .tl_set:N = \l_@@_scheme_tl ,
@@ -3635,25 +3821,18 @@ Copyright and Licence
scheme .initial:n = { chinese } ,
%</!ctexheading>
% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
%</class|ctex|ctexheading>
%<*class|ctex>
% \end{macrocode}
%
+% \begin{macro}{cap,nocap}
+% \opt{cap} 和 \opt{nocap} 是过时选项。
% \begin{macrocode}
- cap .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- { Option~ `scheme = chinese' ~ is~ set. }
- \keys_set:nn { ctex / option } { scheme = chinese }
- } ,
- nocap .code:n =
- {
- \msg_warning:nnn { ctex } { deprecated-option }
- { Option~ `scheme = plain' ~ is~ set. }
- \keys_set:nn { ctex / option } { scheme = plain }
- } ,
+ cap .code:n = { \ctex_set_deprecated_option:n { scheme = chinese } } ,
+ nocap .code:n = { \ctex_set_deprecated_option:n { scheme = plain } } ,
cap .value_forbidden:n = true ,
nocap .value_forbidden:n = true ,
% \end{macrocode}
@@ -3662,25 +3841,51 @@ Copyright and Licence
% \changes{v2.0}{2015/04/20}{\opt{hyperref} æˆä¸ºè¿‡æ—¶é€‰é¡¹ï¼ŒåŽŸé€‰é¡¹åŠŸèƒ½æ€»æ˜¯æ‰“开。}
% \changes{v2.0}{2015/04/20}{\opt{fancyhdr} æˆä¸ºè¿‡æ—¶é€‰é¡¹ï¼ŒåŽŸé€‰é¡¹åŠŸèƒ½æ€»æ˜¯æ‰“开。}
% \changes{v2.0}{2015/04/20}{\opt{fntef} æˆä¸ºè¿‡æ—¶é€‰é¡¹ï¼ŒåŽŸé€‰é¡¹åŠŸèƒ½æ€»æ˜¯æ‰“开。}
-% \begin{macro}{fntef,fancyhdr,hyperref}
-% \changes{v2.1}{2015/06/03}{补充定义 \tn{hypersetup}。}
-% 这些都是过时的å®åŒ…兼容选项,原选项功能总是打开的。
+%
+% 以下三项都是过时的兼容选项,它们会载入有关å®åŒ…。
+%
+% \begin{macro}{fntef}
+% \changes{v2.5}{2019/11/10}{仅在该选项å¯ç”¨æ—¶ä¼šè½½å…¥ \pkg{CJKfntef} 或
+% \pkg{xeCJKfntef} å®åŒ…。}
% \begin{macrocode}
- fntef .code:n =
+ fntef .code:n =
{
- \msg_warning:nnn { ctex } { deprecated-option }
- { `(xe)CJKfntef'~ package~ is~ always~ loaded. }
+ \sys_if_engine_xetex:TF
+ {
+ \ctex_deprecated_option:n { `xeCJKfntef'~package~is~loaded. }
+ \ctex_at_end:n { \RequirePackage { xeCJKfntef } }
+ }
+ {
+ \sys_if_engine_pdftex:TF
+ {
+ \ctex_deprecated_option:n { `CJKfntef'~package~is~loaded. }
+ \ctex_at_end:n { \RequirePackage { CJKfntef } }
+ }
+ {
+ \ctex_deprecated_option:n
+ { Furthermore,~option~`fntef'~is~invalid~in~current~mode. }
+ }
+ }
} ,
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{fancyhdr}
+% \begin{macrocode}
fancyhdr .code:n =
{
- \msg_warning:nnn { ctex } { deprecated-option }
- { `fancyhdr'~ package~ is~ loaded. }
- \RequirePackage { fancyhdr }
+ \ctex_deprecated_option:n { `fancyhdr'~package~is~loaded. }
+ \ctex_at_end:n { \RequirePackage { fancyhdr } }
} ,
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{hyperref}
+% \changes{v2.1}{2015/06/03}{补充定义 \tn{hypersetup}。}
+% \begin{macrocode}
hyperref .code:n =
{
- \msg_warning:nnn { ctex } { deprecated-option }
- { `hyperref'~ package~ will~ be~ loaded. }
+ \ctex_deprecated_option:n { `hyperref'~package~will~be~loaded. }
\ctex_at_end:n
{
\cs_if_exist:NF \hypersetup
@@ -3726,7 +3931,7 @@ Copyright and Licence
#1 .value_forbidden:n = true ,
}
}
-\use:x { \keys_define:nn { ctex / option } { \exp_not:o { \l_@@_tmp_tl } } }
+\exp_args:No \ctex_define_option:n { \l_@@_tmp_tl }
\tl_clear:N \l_@@_tmp_tl
% \end{macrocode}
% \end{macro}
@@ -3734,7 +3939,7 @@ Copyright and Licence
% 将未知选项传给标准文档类。
% \begin{macrocode}
%<*class>
-\keys_define:nn { ctex / option }
+\ctex_define_option:n
{
unknown .code:n =
{ \clist_gput_right:No \g_@@_std_options_clist { \CurrentOption } }
@@ -3742,28 +3947,44 @@ Copyright and Licence
%</class>
% \end{macrocode}
%
+% 载入选项é…置文件。
% \begin{macrocode}
%<!ctexsize>\ctex_file_input:n { ctexopts.cfg }
%</class|ctex|ctexsize>
% \end{macrocode}
%
+% 处ç†å®åŒ…选项。
% \begin{macrocode}
%<*class|style>
\ProcessKeysOptions { ctex / option }
%</class|style>
% \end{macrocode}
%
+% \pdfLaTeX{} 下,如果没有显å¼æŒ‡å®šç¼–ç ä¸º |UTF8|,则给出警告信æ¯ã€‚
+% \begin{macrocode}
+%<*class|ctex>
+\msg_new:nnn { ctex } { pdftex-utf8 }
+ { UTF8~will~be~used~as~the~default~encoding. }
+\tl_if_empty:NT \g_@@_encoding_tl
+ {
+ \sys_if_engine_pdftex:T
+ { \msg_warning:nn { ctex } { pdftex-utf8 } }
+ \tl_gset:Nn \g_@@_encoding_tl { UTF8 }
+ }
+%</class|ctex>
+% \end{macrocode}
+%
% \begin{macrocode}
%<*class>
% \end{macrocode}
%
% 五å·å­—使用标准文档类的 |10pt| 字体大å°è®¾ç½®ï¼Œå°å››å·å­—则使用 |12pt|。
% \begin{macrocode}
-\if_case:w \g_@@_font_size_int
- \clist_gput_right:Nn \g_@@_std_options_clist { 10pt }
-\or:
- \clist_gput_right:Nn \g_@@_std_options_clist { 12pt }
-\fi:
+\int_case:nn { \g_@@_font_size_int }
+ {
+ { 0 } { \clist_gput_right:Nn \g_@@_std_options_clist { 10pt } }
+ { 1 } { \clist_gput_right:Nn \g_@@_std_options_clist { 12pt } }
+ }
% \end{macrocode}
%
% 使用 \tn{PassOptionsToClass} 是为了预防å¯èƒ½å­˜åœ¨çš„选项冲çªã€‚
@@ -3796,19 +4017,71 @@ Copyright and Licence
%
% \subsection{特定引擎支æŒä¸Žè®¾ç½®}
%
+% \changes{v2.5}{2020/04/22}{给 \LaTeX 和 \upLaTeX 下的文档类指定驱动为 \dvipdfmx。}
+%
+% \subsubsection{\pkg{ctexbackend.cfg}}
+%
+% 对于 \XeLaTeX{}/\pdfLaTeX{}/\LuaLaTeX{} 等默认直接输出 PDF 的编译方å¼ï¼Œç”¨æˆ·
+% 无需为涉åŠé©±åŠ¨çš„å®åŒ…指定驱动选项。对于 \LaTeX å’Œ \upLaTeX{} 等默认ä¸ç›´æŽ¥è¾“出 PDF 的编译方å¼ï¼Œ
+% 用户则需è¦æŒ‡å®šé©±åŠ¨é€‰é¡¹ã€‚
+%
+% 由于历å²é—留问题,在使用 \LaTeX{} 或 \upLaTeX{} 等编译时,
+% 大多数涉åŠé©±åŠ¨çš„å®åŒ…选定的默认输出驱动都是 Dvips。
+% 考虑当å‰å®žé™…使用频率,以åŠè€ƒè™‘到 \CTeX{} å®é›†å¯¹ä¸­æ–‡æ”¯æŒçš„默认方å¼ï¼Œ
+% 我们在用户使用 \CTeX{} 系列文档类时,将默认的输出驱动改为 \dvipdfmx。
+%
+% 具体æ¥è¯´ï¼Œå¦‚æžœ |dvips|,|dvipdfmx|,|dvisvgm| 等驱动没有在文档类的全局选项中被明确指定,
+% 我们就在 \tn{@classoptionslist} 开头加入 |dvipdfmx|。
+%
+% 本段代ç åªåœ¨ \cls{ctexart} 等文档类开头载入,ä¸åœ¨ \pkg{ctex} 中使用。
+% 并且需è¦æ”¾åœ¨ \pkg{expl3} 之å‰è½½å…¥ï¼Œä¿è¯å®ƒè½½å…¥æ­£ç¡®çš„ backend 文件。
+% \begin{macrocode}
+%<*backend>
+\begingroup
+\expandafter\ifx\csname Umathchardef\endcsname\relax
+\else\expandafter\endgroup\expandafter\endinput\fi
+ \ifodd
+ \expandafter\ifx\csname pdfoutput\endcsname\relax
+ \expandafter\ifx\csname enablecjktoken\endcsname\relax 0\else 1\fi
+ \else\ifnum\pdfoutput>0 0\else 1\fi\fi\space
+ \def\x#1{%
+ \if\relax\detokenize{#1}\relax
+ \gdef\@classoptionslist{dvipdfmx}%
+ \else
+ \let\CTEX@add\@ne
+ \@tfor\x:={dvips}{dvipdfmx}{dvisvgm}\do{%
+ \expandafter\in@\expandafter{\expandafter,\x,}{,#1,}%
+ \ifin@ \let\CTEX@add\tw@ \@break@tfor \fi}%
+ \ifodd\CTEX@add \gdef\@classoptionslist{dvipdfmx,#1}\fi
+ \fi}
+ \expandafter\x\expandafter{\@classoptionslist}
+ \fi
+\endgroup
+%</backend>
+% \end{macrocode}
+%
% \subsubsection{\pkg{ctex-engine-pdftex.def}}
%
% \begin{macro}[int]{\ctex_set_zhmap:n}
% 设置 \upTeX{} 字体映射,åŒæ—¶ä½œç”¨äºŽ \tn{AtBeginDvi} 与
% \tn{AtBeginShipoutFirst}。该å®å¯¹ \pdfTeX{} å’Œ \upTeX{} å‡æœ‰ç”¨ã€‚
+% \tn{AtBeginDvi} 直接将 \tn{special} ä¿å­˜åˆ°ç›’å­ä¸­ï¼Œ
+% \tn{AtBeginShipoutFirst} 是ä¿å­˜åˆ°åˆ°å®ä¸­ï¼Œå¹¶ä¸”ä¸å±•å¼€å‚数。
% \begin{macrocode}
%<*pdftex|uptex|aptex>
-\cs_new_protected_nopar:Npn \ctex_set_zhmap:n #1
- {
- \AtBeginDvi {#1}
- \ctex_at_end_package:nn { atbegshi }
- { \AtBeginShipoutFirst {#1} }
- }
+\cs_new_protected:Npn \ctex_set_zhmap:n
+ { \tl_gput_right:Nx \g_@@_zhmap_tl }
+\cs_new_protected:Npn \ctex_use_zhmap:
+ { \tl_use:N \g_@@_zhmap_tl }
+\cs_new_protected:Npn \ctex_add_dvi_zhmap:
+ { \AtBeginDvi { \ctex_use_zhmap: } }
+\ctex_after_end_preamble:n { \ctex_add_dvi_zhmap: }
+\ctex_at_end_package:nn { atbegshi }
+ {
+ \AtBeginShipoutFirst { \ctex_use_zhmap: }
+ \cs_gset_eq:NN \ctex_add_dvi_zhmap: \prg_do_nothing:
+ }
+\tl_new:N \g_@@_zhmap_tl
\@onlypreamble \ctex_set_zhmap:n
%</pdftex|uptex|aptex>
% \end{macrocode}
@@ -3818,7 +4091,7 @@ Copyright and Licence
%<*pdftex>
% \end{macrocode}
%
-% \changes{v2.1}{2015/05/18}{ç»™ \pdfLaTeX{} ä¸‹çš„éž UTF8 ç¼–ç  CJK 字体æ—加上 CMap。}
+% \changes{v2.1}{2015/05/18}{ç»™ \pdfLaTeX{} ä¸‹çš„éž UTF-8 ç¼–ç  CJK 字体æ—加上 CMap。}
%
% \begin{variable}{\c_@@_cmap_encoding_seq}
% 需è¦åŠ ä¸Š CMap çš„ CJK 字体编ç ã€‚
@@ -3831,7 +4104,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_family_cmap:nn}
% 在 \tn{DeclareFontFamily} çš„ \meta{loading-settings} 中给 CJK 字体æ—加上 CMap。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_family_cmap:nn #1#2
+\cs_new_protected:Npn \ctex_family_cmap:nn #1#2
{
\cs_if_free:cF { #1 + #2 }
{
@@ -3847,22 +4120,22 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_add_cmap:n}
% ç»™ |#1| ç¼–ç çš„ CJK 字体加上 CMap。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_add_cmap:n #1
+\cs_new_protected:Npn \ctex_add_cmap:n #1
{
\cs_if_free:NF \CJK@plane
{ \ctex_add_cmap:cn { @@_add_cmap_ #1 \CJK@plane : } {#1} }
}
-\cs_new_protected_nopar:Npn \ctex_add_cmap:Nn #1#2
+\cs_new_protected:Npn \ctex_add_cmap:Nn #1#2
{
\cs_if_exist:NF #1 { \@@_save_cmap:Nn #1 {#2} }
#1
}
\cs_generate_variant:Nn \ctex_add_cmap:Nn { c }
-\cs_new_protected_nopar:Npn \@@_save_cmap:Nn #1#2
+\cs_new_protected:Npn \@@_save_cmap:Nn #1#2
{
- \tl_set:Nx \l_@@_tmp_tl { \str_lower_case:n {#2} \CJK@plane }
+ \tl_set:Nx \l_@@_tmp_tl { \str_lowercase:n {#2} \CJK@plane }
\tex_immediate:D \tex_pdfobj:D stream ~ file { \l_@@_tmp_tl .cmap }
- \cs_new_protected_nopar:Npx #1
+ \cs_new_protected:Npx #1
{
\exp_not:N \tex_pdffontattr:D \exp_not:N \tex_font:D
{ /ToUnicode ~ \int_use:N \tex_pdflastobj:D \c_space_tl 0 ~ R }
@@ -3894,13 +4167,13 @@ Copyright and Licence
% 首先检查选项,决定是å¦è½½å…¥ \pkg{zhmCJK} å®åŒ…。
% \begin{macrocode}
\if_bool:N \g_@@_zhmCJK_bool
- \PassOptionsToPackage { encoding = \l_@@_encoding_tl } { zhmCJK }
+ \PassOptionsToPackage { encoding = \g_@@_encoding_tl } { zhmCJK }
\RequirePackage { zhmCJK }
% \end{macrocode}
% ä¸è½½å…¥ \pkg{zhmCJK} å®åŒ…时直接调用 \pkg{CJK} åŠç›¸å…³å®åŒ…。
% \begin{macrocode}
\else:
- \str_if_eq:onTF { \l_@@_encoding_tl } { GBK }
+ \str_if_eq:onTF { \g_@@_encoding_tl } { GBK }
{ \RequirePackage { CJK } }
{ \RequirePackage { CJKutf8 } }
\RequirePackage { CJKpunct , CJKspace }
@@ -3909,7 +4182,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_load_zhmap:nnnn}
% 载入 \pkg{zhmetrics} 的字体映射文件,åŒæ—¶è®¾ç½® \tn{CJKrmdefault} 等。
% \begin{macrocode}
- \cs_new_protected_nopar:Npn \ctex_load_zhmap:nnnn #1#2#3#4
+ \cs_new_protected:Npn \ctex_load_zhmap:nnnn #1#2#3#4
{
\tl_set:Nn \CJKrmdefault {#1}
\tl_set:Nn \CJKsfdefault {#2}
@@ -3924,7 +4197,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_zhmap_input:n}
% 载入字体映射文件时,确认 |%| 和 |\| 的 \tn{catcode}。
% \begin{macrocode}
- \cs_new_protected_nopar:Npn \ctex_zhmap_input:n #1
+ \cs_new_protected:Npn \ctex_zhmap_input:n #1
{
\ctex_file_wrapper:nnn
{
@@ -3946,22 +4219,10 @@ Copyright and Licence
\tl_if_exist:NF \CJKrmdefault { \tl_new:N \CJKrmdefault }
\tl_if_exist:NF \CJKsfdefault { \tl_new:N \CJKsfdefault }
\tl_if_exist:NF \CJKttdefault { \tl_new:N \CJKttdefault }
- \ctex_preto_cmd:NnnTF \rmfamily { \ExplSyntaxOff }
- { \CJKfamily { \CJKrmdefault } }
- { }
- { \ctex_patch_failure:N \rmfamily }
- \ctex_preto_cmd:NnnTF \sffamily { \ExplSyntaxOff }
- { \CJKfamily { \CJKsfdefault } }
- { }
- { \ctex_patch_failure:N \sffamily }
- \ctex_preto_cmd:NnnTF \ttfamily { \ExplSyntaxOff }
- { \CJKfamily { \CJKttdefault } }
- { }
- { \ctex_patch_failure:N \ttfamily }
- \ctex_preto_cmd:NnnTF \normalfont { \ExplSyntaxOff }
- { \CJKfamily { \CJKfamilydefault } }
- { \cs_set_eq:NN \reset@font \normalfont }
- { \ctex_patch_failure:N \normalfont }
+ \g@addto@macro \@rmfamilyhook { \CJKfamily { \CJKrmdefault } }
+ \g@addto@macro \@sffamilyhook { \CJKfamily { \CJKsfdefault } }
+ \g@addto@macro \@ttfamilyhook { \CJKfamily { \CJKttdefault } }
+ \g@addto@macro \@defaultfamilyhook { \CJKfamily { \CJKfamilydefault } }
% \end{macrocode}
%
% \pkg{zhmCJK} 判断结æŸã€‚
@@ -3975,7 +4236,7 @@ Copyright and Licence
% \tn{CJK@loadEncoding})。因此需è¦ç¡®ä¿è½½å…¥ \file{.enc} å’Œ \file{.bdg} 文件时,
% |^| 的 \tn{catcode} 为 $7$。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_CJK_input:n #1
+\cs_new_protected:Npn \ctex_CJK_input:n #1
{
\ctex_file_wrapper:nnn
{
@@ -4002,7 +4263,7 @@ Copyright and Licence
% 我们在这里给出 \tn{CJK@surr} 的一个ä¸ä¾èµ– \tn{uppercase} 的实现。
% \begin{macrocode}
\if_cs_exist:N \CJK@surr
- \cs_new_protected_nopar:Npn \ctex_plane_to_utfxvibe:Nn #1#2
+ \cs_new_protected:Npn \ctex_plane_to_utfxvibe:Nn #1#2
{
\tl_set:Nx \l_@@_tmp_tl {#2}
\int_set:Nn \l_@@_tmp_int
@@ -4039,14 +4300,14 @@ Copyright and Licence
\ctex_at_end_preamble:n { \ctex_update_default_family: }
% \end{macrocode}
%
-% å¯ç”¨ä¸­æ–‡å­—符功能。\texttt{GBK} ç¼–ç æ—¶ï¼Œå°†æ±‰å­—的首字节设置为活动字符,并对这些
-% 字符åˆå§‹åŒ–ï¼›\texttt{UTF8} ç¼–ç æ—¶ï¼Œä¸Šæ¸¸å®åŒ…å·²ç»å¤„ç†å¥½ã€‚
+% å¯ç”¨ä¸­æ–‡å­—符功能。\opt{GBK} ç¼–ç æ—¶ï¼Œå°†æ±‰å­—的首字节设置为活动字符,并对这些
+% 字符åˆå§‹åŒ–ï¼›\opt{UTF8} ç¼–ç æ—¶ï¼Œä¸Šæ¸¸å®åŒ…å·²ç»å¤„ç†å¥½ã€‚
% \tn{CJK@makeActive} 应该先于 \file{ctex-name-gbk.cfg} 等文件的载入。
% æ³¨æ„ \tn{CJK@loadBinding} 需è¦è°ƒç”¨è¡¥ä¸åŽçš„ \tn{CJK@input}。使用
% \pkg{zhmCJK} 时,此功能已ç»è¢«å¯ç”¨ã€‚
% \begin{macrocode}
\reverse_if:N \if_bool:N \g_@@_zhmCJK_bool
- \str_if_eq:onF { \l_@@_encoding_tl } { UTF8 }
+ \str_if_eq:onF { \g_@@_encoding_tl } { UTF8 }
{
\CJK@makeActive
\CJK@loadBinding { standard }
@@ -4087,7 +4348,7 @@ Copyright and Licence
\exp_args:Nx \ctex_at_end_preamble:n
{
\exp_not:N \CJK@envStart
- { } { \l_@@_encoding_tl } { \exp_not:N \CJKfamilydefault }
+ { } { \g_@@_encoding_tl } { \exp_not:N \CJKfamilydefault }
\exp_not:N \CJKtilde
}
% \end{macrocode}
@@ -4098,14 +4359,9 @@ Copyright and Licence
% \end{macrocode}
%
% \begin{macro}[int]{\ctex_auto_ignorespaces:}
-% 关闭å字空间,ä¿å­˜ \tn{CJK@@ignorespaces} 的定义,方便使用。
-% \begin{macrocode}
-%<@@=>
-\cs_new_eq:NN \ctex_auto_ignorespaces: \CJK@@ignorespaces
-% \end{macrocode}
-% æ¢å¤å字空间,è¦æŠŠå®ƒæ”¾åœ¨ä¸€ä¸ª \env{macrocode} 环境中,\cls{l3doc} æ‰èƒ½æ­£ç¡®å·¥ä½œã€‚
+% ä¿å­˜ \tn{CJK@@ignorespaces} 的定义,方便使用。
% \begin{macrocode}
-%<@@=ctex>
+\cs_new_eq:NN \ctex_auto_ignorespaces: \CJK@@@@ignorespaces
% \end{macrocode}
% \end{macro}
%
@@ -4113,13 +4369,13 @@ Copyright and Licence
% 设置忽略空格的的方å¼ã€‚æ ¹æ® \opt{space} 选项的值é‡å®šä¹‰ \tn{CJK@ignorespaces},
% 并ä¿å­˜èµ·æ¥ä¾› \tn{CJKhook} 备用。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ignorespaces_case:N #1
+\cs_new_protected:Npn \ctex_ignorespaces_case:N #1
{
- \cs_set_protected_nopar:Npn \ctex_set_ignorespaces:
+ \cs_set_protected:Npn \ctex_set_ignorespaces:
{ \cs_set_eq:NN \CJK@ignorespaces #1 }
\ctex_set_ignorespaces:
}
-\cs_new_protected_nopar:Npn \ctex_set_ignorespaces:
+\cs_new_protected:Npn \ctex_set_ignorespaces:
{ \cs_set_eq:NN \CJK@ignorespaces \ctex_auto_ignorespaces: }
% \end{macrocode}
% \end{macro}
@@ -4136,7 +4392,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_punct_set:n}
% 设置 CJK æ—对应到实际的字体。|#1| 是 \opt{fontset} çš„å字。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_punct_set:n #1
+\cs_new_protected:Npn \ctex_punct_set:n #1
{
\clist_map_inline:Nn \c_@@_punct_family_clist
{
@@ -4159,7 +4415,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_punct_map_family:nn}
% CJK æ— |#1| ä½¿ç”¨æ— |#2| 的边界信æ¯ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_punct_map_family:nn #1#2
+\cs_new_protected:Npn \ctex_punct_map_family:nn #1#2
{
\cs_if_free:cF { CJKpunct@ #2 @spaces }
{ \cs_set_eq:cc { CJKpunct@ #1 @spaces } { CJKpunct@ #2 @spaces } }
@@ -4170,7 +4426,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_punct_map_bfseries:nn}
% CJK æ— |#1| çš„ \tn{bfseries} ä½¿ç”¨æ— |#2| 的边界信æ¯ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_punct_map_bfseries:nn #1#2
+\cs_new_protected:Npn \ctex_punct_map_bfseries:nn #1#2
{
\clist_map_inline:nn {#1}
{
@@ -4178,7 +4434,7 @@ Copyright and Licence
\ctex_punct_map_series:nnn { ##1 } { bx } {#2}
}
}
-\cs_new_protected_nopar:Npn \ctex_punct_map_series:nnn #1#2#3
+\cs_new_protected:Npn \ctex_punct_map_series:nnn #1#2#3
{
\CJKpunctmapfamily { C19 } {#1} {#2} { m } {#3}
\CJKpunctmapfamily { C19 } {#1} {#2} { it } {#3}
@@ -4193,7 +4449,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_punct_map_itshape:nn}
% CJK æ— |#1| çš„ \tn{itshape} ä½¿ç”¨æ— |#2| 的边界信æ¯ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_punct_map_itshape:nn #1#2
+\cs_new_protected:Npn \ctex_punct_map_itshape:nn #1#2
{
\CJKpunctmapfamily { C19 } {#1} { m } { it } {#2}
\CJKpunctmapfamily { C19 } {#1} { b } { it } {#2}
@@ -4208,7 +4464,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_punct_space:nn,\ctexspadef}
% 定义标点的边界信æ¯ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_punct_space:nn #1#2
+\cs_new_protected:Npn \ctex_punct_space:nn #1#2
{ \tl_const:cn { c_@@_ #1 _punct_spaces_tl } {#2} }
\cs_new_eq:NN \ctexspadef \ctex_punct_space:nn
% \end{macrocode}
@@ -4259,6 +4515,7 @@ Copyright and Licence
%
% \changes{v2.0}{2014/03/08}{通过 \pkg{LuaTeX-ja} å®åŒ…æ”¯æŒ \LuaLaTeX。}
% \changes{v2.3}{2015/09/25}{æ›´æ–° \pkg{LuaTeX-ja} 支æŒï¼ˆ20150922.0)。}
+% \changes{v2.5}{2020/04/18}{æ›´æ–° \pkg{LuaTeX-ja} 支æŒï¼ˆ20200412.0)。}
%
% \pkg{LuaTeX-ja} 为了兼容 p\LaTeX 的使用习惯,对 \LaTeXe çš„ \pkg{NFSS} 作了ä¸å°‘
% 修改和扩充,这对于简体中文用户æ¥è¯´ä¸æ˜¯å¿…è¦çš„。我们在这里ç¦ç”¨å®ƒã€‚
@@ -4275,13 +4532,13 @@ Copyright and Licence
%
% \begin{macrocode}
\RequirePackage { luatexja }
-\@ifpackagelater { luatexja } { 2015/09/21 } { }
+\@ifpackagelater { luatexja } { 2020/04/12 } { }
{ \msg_error:nnn { ctex } { package-too-old } { luatexja } }
% \end{macrocode}
%
% \begin{macrocode}
\RequirePackage { fontspec }
-\@ifpackagelater { fontspec } { 2014/05/25 } { }
+\@ifpackagelater { fontspec } { 2020/02/21 } { }
{ \msg_error:nnn { ctex } { package-too-old } { fontspec } }
% \end{macrocode}
%
@@ -4300,19 +4557,20 @@ Copyright and Licence
\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF}
\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF}
\ltjdefcharrange{3}{%
- "2000-"206F, "2070-"243F, "2460-"24FF, "2500-"27BF, "2900-"29FF,
- "2B00-"2BFF}
+ "2000-"243F, "2460-"24FF, "2500-"27BF, "2900-"29FF, "2B00-"2BFF}
\ltjdefcharrange{4}{%
"500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
- "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F,
- "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
+ "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A95F, "A980-"ABFF, "E000-"F8FF,
+ "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1AFFF, "1B170-"1F0FF,
+ "1F300-"1FFFF, "2000-"206F}
\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF}
\ltjdefcharrange{6}{%
"2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF,
- "4E00-"9FFF, "F900-"FAFF, "FE10-"FE6F, "20000-"2FFFF, "E0100-"E01EF}
+ "4E00-"9FFF, "F900-"FAFF, "FE10-"FE1F, "FE30-"FE6F, "FF00-"FFEF,
+ "1B000-"1B16F, "1F100-"1F2FF, "20000-"3FFFF, "E0100-"E01EF}
\ltjdefcharrange{7}{%
- "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF,
- "A830-"A83F, "AC00-"D7FF}
+ "1100-"11FF, "2F00-"2FFF, "3100-"318F, "31A0-"31EF, "A000-"A4CF,
+ "A960-"A97F, "AC00-"D7FF}
\ltjdefcharrange{8}{"A7, "A8, "B0, "B1, "B4, "B6, "D7, "F7}
% \end{macrocode}
% 将引å·ã€ç ´æŠ˜å·ç­‰ä¸­è¥¿æ–‡å…¬ç”¨çš„标点符å·å½’入字符范围 9,将他们设置为 JAchar。
@@ -4358,56 +4616,202 @@ Copyright and Licence
% 字符是 ALchar 类。我们这里用 \pkg{xunicode-addon} æ¥å¤„ç† \pkg{xunicode}。
% \begin{macrocode}
\RequirePackage { xunicode-addon }
-\AtBeginUTFCommand
+\AtBeginUTFCommand { \CTEX@beginallalchar }
+\AtEndUTFCommand { \CTEX@endallalchar }
+\cs_new_protected:Npn \CTEX@beginallalchar
{
\group_begin:
- \lua_now:e { tex.globaldefs = 0 }
- \ltj@allalchar
+ \ctex_ltj_zero_globaldefs:
+ \ltj@allalchar
}
-\AtEndUTFCommand { \group_end: }
+\cs_new_protected:Npn \CTEX@endallalchar
+ { \group_end: }
% \end{macrocode}
%
% \changes{v2.4.2}{2016/05/15}{æ¢å¤ \pkg{luatexja} 对 \tn{emshape} å’Œ
% \tn{eminnershape} çš„é‡å®šä¹‰ã€‚}
% \changes{v2.4.3}{2016/08/26}{简化 \pkg{fontspec} è¡¥ä¸ã€‚}
-% \begin{macro}[int]{\fontspec_visible_space:}
-% 我们ä¸ä½¿ç”¨ \pkg{luatexja} 对 \pkg{fontspec} çš„è¡¥ä¸ï¼Œç›´æŽ¥å¤„ç†ã€‚
+% \changes{v2.5}{2020/04/18}{删除 \pkg{fontspec} è¡¥ä¸ã€‚}
+%
+% 对 \pkg{listings} çš„è¡¥ä¸æ˜¯è®©ä»£ç çŽ¯å¢ƒæ”¯æŒ JAchar 类。
% \begin{macrocode}
-\cs_set_protected:Npn \fontspec_visible_space:
- {
- \tex_iffontchar:D \tex_font:D "2423 \exp_stop_f:
- \ltjalchar "2423 \exp_stop_f:
- \else:
- \fontspec_visible_space_fallback:
- \fi:
- }
+\ctex_at_end_package:nn { listings }
+ { \RequirePackage { lltjp-listings } }
% \end{macrocode}
-% \end{macro}
%
-% 对 \pkg{listings} çš„è¡¥ä¸æ˜¯è®©ä»£ç çŽ¯å¢ƒæ”¯æŒ JAchar 类。\pkg{LuaTeX-ja} çš„è¡¥ä¸ä¼šå°†
-% 代ç ç›®å½•æ ‡é¢˜æ”¹ä¸ºæ—¥æ–‡ï¼Œæˆ‘们ä¸éœ€è¦ã€‚
+% \paragraph{\pkg{Lua} 函数}
+%
+% 直接用 |token.set_lua| 定义,ä¸æ˜¯ä¼ ç»Ÿæ„义上的 \TeX \ å®ã€‚
% \begin{macrocode}
-\ctex_at_end_package:nn { listings }
+\group_begin:
+\char_set_catcode_space:n { 32 }
+\lua_now:e
{
- \use:x
- {
- \exp_not:N \RequirePackage { lltjp-listings }
- \tl_set:Nn \exp_not:N \lstlistingname
- { \exp_not:o { \lstlistingname } }
- \tl_set:Nn \exp_not:N \lstlistlistingname
- { \exp_not:o { \lstlistlistingname } }
- }
+ local func = lua.get_functions_table()
+ local ltjfont = luatexja.jfont
+ local getattribute = tex.getattribute
+ local set_lua = token.set_lua
+ local scan_int, scan_arg = token.scan_int, token.scan_argument
+ local new_luafunction = luatexbase.new_luafunction
+% \end{macrocode}
+% \begin{macro}{\ctex_ltj_add_kyenc:n}
+% ä¿å­˜ jfont çš„ç¼–ç ï¼Œç”¨äºŽåˆ¤æ–­ã€‚
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = ltjfont.add_kyenc_list
+ set_lua("ctex_ltj_add_kyenc:n", id, "global", "protected")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_ltj_is_kenc:n}
+% 判断编ç æ˜¯å¦å±žäºŽ jfont。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = ltjfont.is_kenc
+ set_lua("ctex_ltj_is_kenc:n", id, "global")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_ltj_patch_external_font:n}
+% 若对字体的定义完全相åŒï¼Œåˆ™å®ƒä»¬æœ‰ç›¸åŒçš„ \texttt{font.id}。因此如果字形是由
+% \textsf{NFSS} 的替æ¢æœºåˆ¶å®šä¹‰çš„,它们就有相åŒçš„ \texttt{font.id}。
+% |print_aftl_address| 函数的定义是
+% \begin{verbatim}
+% function luatexja.jfont.print_aftl_address()
+% return ';ltjaltfont' .. tostring(aftl_base):sub(8)
+% end
+% \end{verbatim}
+% 主è¦ç›®çš„是,如果当å‰å­—形有替代字体,则往字形的定义中加入一些标志,确ä¿
+% \texttt{font.id} 唯一。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = function ()
+ local s = scan_arg()
+ local is_braced, is_quoted
+ if s:sub(1,1) == '{' and s:sub(-1)=='}' then
+ is_braced = true; s = s:sub(2,-2)
+ end
+ if s:sub(1,1) == '"' and s:sub(-1) == '"' then
+ is_quoted = true; s = s:sub(2,-2)
+ end
+ s = s .. ltjfont.print_aftl_address()
+ if is_braced then s = '{'..s..'}'
+ elseif is_quoted then s = '"'..s..'"'
+ end
+ tex.sprint(-2, s)
+ end
+ set_lua("ctex_ltj_patch_external_font:n", id, "global")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_ltj_use_jfont:}
+% 使用 jfont,确ä¿å½“å‰çš„ \tn{font} 是 jfont。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = function ()
+ font.current(getattribute("ltj@curjfnt"))
+ end
+ set_lua("ctex_ltj_use_jfont:", id, "global", "protected")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_ltj_set_alt_font:nnnn}
+% |#1| 和 |#2| 分别是字符区间的首末,|#3| 是基础字体,|#4| 是替代字体。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = function ()
+ local b = tonumber(scan_arg())
+ local e = tonumber(scan_arg())
+ local alt = scan_arg()
+ local base = scan_arg()
+ ltjfont.set_alt_font_latex(b, e, alt, base)
+ end
+ set_lua("ctex_ltj_set_alt_font:nnnn", id, "global", "protected")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_ltj_clear_alt_font:n}
+% 清除 |#1| 的替代字体。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = function ()
+ local base = scan_arg()
+ ltjfont.clear_alt_font_latex(base)
+ end
+ set_lua("ctex_ltj_clear_alt_font:n", id, "global", "protected")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_ltj_pickup_alt_font:nn}
+% 定义 |#1| 的替代字体,|#2| 是字体大å°ã€‚\\
+% 会在内部执行 \tn{ltj@pickup@altfont@auxy} 和 \tn{ltj@pickup@altfont@copy}。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = function ()
+ local base = scan_arg()
+ local size = scan_arg()
+ ltjfont.output_alt_font_cmd("y", base)
+ ltjfont.pickup_alt_font_a(size)
+ end
+ set_lua("ctex_ltj_pickup_alt_font:nn", id, "global", "protected")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_pickup_alt_font:Nn}
+% |#1| 是 \texttt{font.id},|#2| 是字体å称。
+% 在 \tn{ltj@pickup@altfont@copy} 之中使用。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = function ()
+ local num = scan_int()
+ local base = scan_arg()
+ ltjfont.pickup_alt_font_b(num, base)
+ end
+ set_lua("@@_pickup_alt_font:Nn", id, "global", "protected")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_if_alt_set:nT}
+% 判断是å¦å­˜åœ¨æ›¿ä»£å­—体。会设置å˜é‡ |aftl_base| 和返回 \tn{@firstofone} 或 \tn{@gobble}。
+% \begin{verbatim}
+% function luatexja.jfont.does_alt_set(bbase)
+% aftl_base = alt_font_table_latex[bbase]
+% tex.sprint(cat_lp, aftl_base and '\\@firstofone' or '\\@gobble')
+% end
+% \end{verbatim}
+% \pkg{luatexja} 20200412.0 以åŽçš„定义为:
+% \begin{verbatim}
+% function luatexja.jfont.does_alt_set()
+% aftl_base = alt_font_table_latex[scan_arg()]
+% tex.sprint(cat_lp, aftl_base and '\\@firstofone' or '\\@gobble')
+% end
+% \end{verbatim}
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = \LuaTeXjaversion > 20200412.0
+ and ltjfont.does_alt_set
+ or function ()
+ local base = scan_arg()
+ ltjfont.does_alt_set(base)
+ end
+ set_lua("@@_if_alt_set:nT", id, "global")
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ctex_ltj_zero_globaldefs:}
+% 设置 \tn{globaldefs} 为 $0$,é¿å…全局设置,应当在分组中使用。
+% 这里通过 Lua 设置,å¯ä»¥ä¸å—外部 \TeX\ 环境中的 \tn{globaldefs} çš„å½±å“。
+% \begin{macrocode}
+ local id = new_luafunction("ctex")
+ func[id] = function ()
+ tex.set("globaldefs", 0)
+ end
+ set_lua("ctex_ltj_zero_globaldefs:", id, "global", "protected")
}
+\group_end:
% \end{macrocode}
+% \end{macro}
%
% \paragraph{字体切æ¢æ–¹å¼}
%
% \begin{macro}[int]{\ctex_ltj_select_font:,\CJK@family}
% \tn{CJK@family} ä¿å­˜çš„æ˜¯å½“å‰ CJK 实际的字体æ—å,如果为空表示没有设置过字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_select_font:
+\cs_new_protected:Npn \ctex_ltj_select_font:
{
- \cs_if_exist_use:cF { \l_@@_current_font_tl }
+ \group_begin: \exp_args:NNc \group_end:
+ \cs_if_exist_use:NF { \l_@@_current_font_tl }
{ \tl_if_empty:NF \CJK@family { \@@_select_font_aux: } }
}
\tl_new:N \CJK@family
@@ -4421,7 +4825,7 @@ Copyright and Licence
% 使用 \tn{pickup@font} å–得字体å称å‰ï¼Œæ€»éœ€è¦å…ˆè®¾ç½® \tn{font@name}。在这里将
% \tn{f@family} æ¢æˆ CJK 字体æ—,并确ä¿ç¼–ç æ­£ç¡®ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_select_font_aux:
+\cs_new_protected:Npn \@@_select_font_aux:
{
\group_begin:
\tl_set_eq:NN \f@encoding \CJK@encoding
@@ -4440,20 +4844,24 @@ Copyright and Licence
\cs_if_exist:cF { \l_@@_current_font_tl }
{ \@@_select_font_aux: }
}
-\cs_new_protected_nopar:Npn \@@_push_fontname:n #1
+\cs_new_protected:Npn \@@_push_fontname:n #1
{
- \cs_gset_eq:NN \@@_save_fontname:w \font@name
+ \seq_gpush:No \g_@@_fontname_seq { \font@name }
\cs_gset_nopar:Npx \font@name {#1}
}
-\cs_new_protected_nopar:Npn \@@_pop_fontname:
- { \cs_gset_eq:NN \font@name \@@_save_fontname:w }
+\cs_new_protected:Npn \@@_pop_fontname:
+ {
+ \seq_gpop:NNT \g_@@_fontname_seq \l_@@_tmp_tl
+ { \cs_gset_eq:NN \font@name \l_@@_tmp_tl }
+ }
+\seq_new:N \g_@@_fontname_seq
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\ctex_ltj_pickup_font:}
% æ›¿æ¢ \tn{define@newfont} 内部调用的 \tn{extract@font} å’Œ \tn{do@subst@correction}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_pickup_font:
+\cs_new_protected:Npn \ctex_ltj_pickup_font:
{
\exp_after:wN \cs_if_exist:NF \font@name
{
@@ -4474,11 +4882,18 @@ Copyright and Licence
% %%%%%%%% \jfont\CS={...:...;jfm=metric;...}, \globaljfont
% \protected\def\jfont#1{%
% \afterassignment\ltj@@jfont
-% \directlua{luatexja.jfont.jfontdefX(false, 'yoko','\luatexluaescapestring{\noexpand#1}')}}
+% \directlua{luatexja.jfont.jfontdefX
+% (false, 'yoko','\luatexluaescapestring{\noexpand#1}')}}
% \protected\def\globaljfont#1{%
% \afterassignment\ltj@@jfont
-% \directlua{luatexja.jfont.jfontdefX(true, 'yoko','\luatexluaescapestring{\noexpand#1}')}}
-% \def\ltj@@jfont{\directlua{luatexja.jfont.jfontdefY()}}
+% \directlua{luatexja.jfont.jfontdefX
+% (true, 'yoko','\luatexluaescapestring{\noexpand#1}')}}
+% \newluafunction\ltj@@jfont@inner
+% \directlua{
+% local t = lua.get_functions_table()
+% t[\the\ltj@@jfont@inner] = luatexja.jfont.jfontdefY
+% }
+% \def\ltj@@jfont{\luafunction\ltj@@jfont@inner}
% \end{verbatim}
% \texttt{jfontdefX} 函数的作用是把 \tn{CS} 定义为其åŽçš„字体,\texttt{jfontdefY}
% 的作用是更新 \texttt{JFM} 和记录相关字体信æ¯ã€‚最åŽçš„工作是:
@@ -4505,7 +4920,7 @@ Copyright and Licence
% 赋值总是全局的,ä¸ä¼šå—到分组的影å“。
% \begin{macrocode}
\font@name
- \lua_now:e { font.current(tex.getattribute('ltj@curjfnt')) }
+ \ctex_ltj_use_jfont:
\use:c { \f@encoding + \f@family }
\use:c { \curr@fontshape }
}
@@ -4557,42 +4972,28 @@ Copyright and Licence
% \begin{macrocode}
\prg_new_conditional:Npnn \ctex_ltj_if_alternate_shape_exist:n #1 { T , F , TF }
{
- \lua_now:e { luatexja.jfont.does_alt_set ('\lua_escape:e {#1}') }
- \prg_return_true: \else: \prg_return_false: \fi:
+ \@@_if_alt_set:nT {#1} { \prg_return_true: \use_none:n }
+ \prg_return_false:
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@_patch_external_font:w}
-% 若对字体的定义完全相åŒï¼Œåˆ™å®ƒä»¬æœ‰ç›¸åŒçš„ \texttt{font.id}。因此如果字形是由
-% \textsf{NFSS} 的替æ¢æœºåˆ¶å®šä¹‰çš„,它们就有相åŒçš„ \texttt{font.id}。
-% |print_aftl_address| 函数的定义是
-% \begin{verbatim}
-% function print_aftl_address()
-% tex.sprint(cat_lp, ';ltjaltfont' .. tostring(aftl_base):sub(8))
-% end
-% \end{verbatim}
-% 主è¦ç›®çš„是,如果当å‰å­—形有替代字体,则往字形的定义中加入一些标志,确ä¿
-% \texttt{font.id} 唯一。
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_patch_external_font:w #1 ~ at
- { #1 \lua_now:e { luatexja.jfont.print_aftl_address() } ~ at }
+\cs_new:Npn \@@_patch_external_font:w #1 ~ at
+ { \ctex_ltj_patch_external_font:n {#1} ~ at }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\ctex_ltj_select_alternate_font:}
% 在 \tn{selectfont} 中更新替代字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_select_alternate_font:
+\cs_new_protected:Npn \ctex_ltj_select_alternate_font:
{
\ctex_ltj_if_alternate_shape_exist:nT { \l_@@_current_shape_tl }
{
- \lua_now:e
- {
- luatexja.jfont.output_alt_font_cmd
- ('y', '\lua_escape:e { \l_@@_current_shape_tl }')
- }
- \lua_now:e { luatexja.jfont.pickup_alt_font_a ('\f@size') }
+ \ctex_ltj_pickup_alt_font:nn
+ { \l_@@_current_shape_tl } { \f@size }
}
}
\tl_new:N \l_@@_current_shape_tl
@@ -4604,12 +5005,12 @@ Copyright and Licence
% \begin{macro}[int]{\ltj@pickup@altfont@auxy}
% 被用在函数 |output_alt_font_cmd| 中,作用是定义替代字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ltj@pickup@altfont@auxy #1
+\cs_new_protected:Npn \ltj@pickup@altfont@auxy #1
{
\cs_if_exist:cF { #1/\f@size }
{
\group_begin:
- \use:x { \exp_not:N \split@name #1 / \f@size } \@nil
+ \use:e { \exp_not:N \split@name #1 / \f@size } \@nil
\@@_push_fontname:n { \use:c { \curr@fontshape / \f@size } }
\ctex_ltj_pickup_font:
\group_end:
@@ -4619,32 +5020,20 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macrocode}
-%<@@=>
-% \end{macrocode}
-%
% \begin{macro}[int]{\ltj@pickup@altfont@copy}
% 被用在函数 |pickup_alt_font_a| 中。\tn{ltj@@getjfontnumber} 的作用是将字体命令
% |#1| 对应的 \texttt{font.id} ä¿å­˜åˆ° \tn{ltj@tempcntc} 中。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ltj@pickup@altfont@copy #1#2
+\cs_new_protected:Npn \ltj@pickup@altfont@copy #1#2
{
- \ltj@@getjfontnumber #1
- \lua_now:e
- {
- luatexja.jfont.pickup_alt_font_b
- ( \int_use:N \ltj@tempcntc, '\lua_escape:e {#2}' )
- }
+ \ltj@@@@getjfontnumber #1
+ \@@_pickup_alt_font:Nn \ltj@tempcntc {#2}
}
% \end{macrocode}
% \end{macro}
%
% \paragraph{数学字体æ—}
%
-% \begin{macrocode}
-%<@@=ctex_ltj>
-% \end{macrocode}
-%
% 以下内容æ¥è‡ª \file{lltjfont.sty},目的是让汉字å¯ä»¥åœ¨æ•°å­¦çŽ¯å¢ƒä¸­ç›´æŽ¥ä½¿ç”¨ã€‚
%
% \begin{macro}[int]{\ctex_ltj_if_jfont:nTF}
@@ -4657,10 +5046,11 @@ Copyright and Licence
% \begin{macrocode}
\cs_new:Npn \ctex_ltj_if_jfont:nTF #1
{
- \lua_now:e
- { luatexja.jfont.is_kenc( string.match('\lua_escape:e {#1}', '[^/]+') ) }
+ \ctex_ltj_is_kenc:n { \@@_ltj_if_jfont:w #1 / \q_stop }
\ifin@ \exp_after:wN \use_i:nn \else: \exp_after:wN \use_ii:nn \fi:
}
+\cs_new:Npn \@@_ltj_if_jfont:w #1 / #2 \q_stop
+ {#1}
% \end{macrocode}
% \end{macro}
%
@@ -4678,24 +5068,20 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macrocode}
-%<@@=>
-% \end{macrocode}
-%
% \begin{macro}[int]{\getanddefine@fonts,\ctex_ltj_get_and_define_fonts:nN}
% 在使用的场åˆï¼Œ\tn{escapechar} å·²ç»è¢«è®¾ç½®æˆ $-1$,使用 \cs{token_to_str:N} å°±
% å¯ä»¥å¾—到å字,ä¸å¿…使用 \cs{cs_to_str:N}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_get_and_define_fonts:nN #1#2
+\cs_new_protected:Npn \ctex_ltj_get_and_define_fonts:nN #1#2
{
- \ctex_ltj_if_jfont:nTF { \token_to_str:N #2 }
+ \exp_args:No \ctex_ltj_if_jfont:nTF { \token_to_str:N #2 }
{ \ctex_ltj_get_and_define_fonts_ja:nN }
{ \ctex_ltj_get_and_define_fonts_al:nN }
{#1} #2
}
\cs_new_eq:NN \ctex_ltj_get_and_define_fonts_al:nN \getanddefine@fonts
\cs_set_eq:NN \getanddefine@fonts \ctex_ltj_get_and_define_fonts:nN
-\cs_new_protected_nopar:Npn \ctex_ltj_get_and_define_fonts_ja:nN #1#2
+\cs_new_protected:Npn \ctex_ltj_get_and_define_fonts_ja:nN #1#2
{
\tl_gset:Nx \font@name { \use:c { \token_to_str:N #2 / \tf@size } }
\ctex_ltj_pickup_font: \tl_set_eq:NN \textfont@name \font@name
@@ -4706,22 +5092,18 @@ Copyright and Licence
\tl_put_right:Nx \math@fonts
{
\ltj@setpar@global
- \ltj@@set@stackfont #1 , \textfont@name \c_colon_str { MJT }
- \ltj@@set@stackfont #1 , \scriptfont@name \c_colon_str { MJS }
- \ltj@@set@stackfont #1 , \font@name \c_colon_str { MJSS }
+ \ltj@@@@set@stackfont #1 , \textfont@name \c_colon_str { MJT }
+ \ltj@@@@set@stackfont #1 , \scriptfont@name \c_colon_str { MJS }
+ \ltj@@@@set@stackfont #1 , \font@name \c_colon_str { MJSS }
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macrocode}
-%<@@=ctex_ltj>
-% \end{macrocode}
-%
% \begin{macro}[int]{\use@mathgroup,\ctex_ltj_use_math_group:Nn}
% 在使用 \pkg{unicode-math} å®åŒ…时,\cs{ctex_ltj_math_group_hook:} 将被é‡å®šä¹‰ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_use_math_group:Nn #1#2
+\cs_new_protected:Npn \ctex_ltj_use_math_group:Nn #1#2
{
\mode_if_math:T
{
@@ -4762,7 +5144,7 @@ Copyright and Licence
}
{
\cs_set_eq:NN \use@mathgroup \ctex_ltj_use_math_group:Nn
- \cs_set_protected_nopar:Npn \ctex_ltj_math_group_hook:
+ \cs_set_protected:Npn \ctex_ltj_math_group_hook:
{ \__um_switchto_literal: }
\ctex_ltj_set_math_letter:NN
\__um_sym:nnn
@@ -4777,7 +5159,7 @@ Copyright and Licence
% \begin{variable}{\l_@@_jfm_tl}
% \pkg{LuaTeX-ja} ä¸­ä¸Žæ ‡ç‚¹æ ¼å¼ \opt{plain} 对应的 \texttt{JFM} 是 \opt{mono}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_mono_jfm:n #1
+\cs_new_protected:Npn \ctex_mono_jfm:n #1
{
\str_if_eq:nnTF {#1} { plain }
{ \tl_set:Nn \l_@@_jfm_tl { mono } }
@@ -4791,7 +5173,6 @@ Copyright and Licence
% \end{macro}
%
% \begin{macro}[int]{\CJK@encoding}
-% \begin{macro}{\@@_change_encoding:}
% 在 \LaTeX 下,\pkg{LuaTeX-ja} ä¾èµ–字体编ç æ¥å®žçŽ°ç‰¹æ®Šè®¾ç½®ã€‚例如上述的
% \cs{ctex_ltj_if_jfont:nTF} 就是通过判断编ç æ¥å®žçŽ°çš„,它在设置数学字体时会用到。所以
% ä¸åº”该与西文共用 \texttt{EU2}ã€‚å®šä¹‰å­—ä½“æ— song 为 \tn{CJK@encoding} 的默认替æ¢
@@ -4799,29 +5180,26 @@ Copyright and Licence
% \begin{macrocode}
\tl_const:Nn \CJK@encoding { LTJY3 }
\DeclareFontEncoding { \CJK@encoding } { } { }
-\use:x
+\use:e
{
\exp_not:N \DeclareFontSubstitution
- { \CJK@encoding } { song } { \mddefault } { \updefault }
+ { \CJK@encoding } { song } { \mddefault } { \shapedefault }
}
-\lua_now:e { luatexja.jfont.add_kyenc_list('\CJK@encoding') }
-\cs_new_protected_nopar:Npn \@@_change_encoding:
- { \tl_set_eq:NN \g_fontspec_encoding_tl \CJK@encoding }
+\ctex_ltj_add_kyenc:n { \CJK@encoding }
\DeclareFontFamily { \CJK@encoding } { song } { }
-\DeclareFontShape { \CJK@encoding } { song } { \mddefault } { \updefault }
+\DeclareFontShape { \CJK@encoding } { song } { \mddefault } { \shapedefault }
{ <-> psft:SimSun:cid=Adobe-GB1-5;jfm=\l_@@_jfm_tl } { }
-\DeclareFontShape { \CJK@encoding } { song } { \bfdefault } { \updefault }
+\DeclareFontShape { \CJK@encoding } { song } { \bfdefault } { \shapedefault }
{ <-> psft:SimHei:cid=Adobe-GB1-5;jfm=\l_@@_jfm_tl } { }
\tl_const:Nn \c_@@_math_tl { CJKmath }
\DeclareSymbolFont { \c_@@_math_tl }
- { \CJK@encoding } { song } { \mddefault } { \updefault }
+ { \CJK@encoding } { song } { \mddefault } { \shapedefault }
\SetSymbolFont { \c_@@_math_tl } { bold }
- { \CJK@encoding } { song } { \bfdefault } { \updefault }
+ { \CJK@encoding } { song } { \bfdefault } { \shapedefault }
\int_const:Nn \c_@@_math_fam_int { \use:c { sym \c_@@_math_tl } }
\jfam \c_@@_math_fam_int
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% 这是 \pkg{luatexja-fontspec} 中新增的一些字体选项。
% \begin{macrocode}
@@ -4847,7 +5225,7 @@ Copyright and Licence
{
\group_begin:
\clist_clear:N \l_@@_char_range_clist
- \seq_clear:N \l_@@_alternate_seq
+ \prop_clear:N \l_@@_alternate_prop
\tl_set:Nn \l_@@_base_CJKfamily_tl {#1}
\keys_set_known:nnN { ctex_ltj / fontspec } {#2} \l_@@_tmp_tl
\clist_set:No \l_@@_font_options_clist { \l_@@_tmp_tl }
@@ -4864,10 +5242,17 @@ Copyright and Licence
}
\tl_new:N \l_@@_base_CJKfamily_tl
\clist_new:N \l_@@_font_options_clist
-\cs_new_protected_nopar:Npn \@@_use_global_options:N #1
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_use_global_options:N}
+% 应用默认字体选项,并总是设置 \opt{JFM} 和 \opt{NFSSEncoding} 。
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_use_global_options:N #1
{
\clist_concat:NNN #1 \g_@@_default_features_clist #1
- \clist_put_left:Nx #1 { JFM = \l_@@_jfm_tl }
+ \clist_put_left:Nx #1
+ { NFSSEncoding = \CJK@encoding , JFM = \l_@@_jfm_tl }
}
% \end{macrocode}
% \end{macro}
@@ -4885,7 +5270,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
{
@@ -4911,28 +5296,24 @@ Copyright and Licence
% 在设置字体时,实际上并ä¸æ˜¯é©¬ä¸Šå°±å®šä¹‰ã€‚而是åªä¿å­˜ç›¸å…³å‚数,在通过 \tn{CJKfamily}
% 第一次使用时æ‰å®šä¹‰ã€‚需è¦æ³¨æ„将编ç æ”¹ä¸º \tn{CJK@encoding}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_gset_family_cs:nn #1#2
+\cs_new_protected:Npn \@@_gset_family_cs:nn #1#2
{
- \cs_gset_protected_nopar:cpx { \@@_family_csname:n {#1} }
+ \cs_gset_protected:cpx { \@@_family_csname:n {#1} }
{
\group_begin:
- \@@_change_encoding:
\exp_not:n { \cs_set_eq:NN \CJKfamily \use_none:n }
- \exp_not:n { \cs_set_eq:NN \CTEX@fontfamily \use_none:n }
- \exp_not:n { \fontspec_set_family:Nnn \g_@@_fontspec_family_tl }
+ \exp_not:n { \fontspec_gset_family:Nnn \g_@@_fontspec_family_tl }
{ \exp_not:o { \l_@@_font_options_clist } } {#2}
\prop_gput:Nno \exp_not:N \g_@@_family_name_prop {#1}
{ \exp_not:N \g_@@_fontspec_family_tl }
- \tl_gset_eq:NN \exp_not:N \g_@@_fontspec_family_tl
- \exp_not:N \g_@@_fontspec_family_tl
\@@_set_alternate_family:n {#1}
\group_end:
}
}
\tl_new:N \l_@@_base_family_tl
\tl_new:N \g_@@_fontspec_family_tl
-\cs_new_nopar:Npn \@@_family_csname:n #1 { ctex_ltj/family/#1 }
-\cs_new_protected_nopar:Npn \@@_set_alternate_family:n #1
+\cs_new:Npn \@@_family_csname:n #1 { ctex_ltj/family/#1 }
+\cs_new_protected:Npn \@@_set_alternate_family:n #1
{
\tl_set:Nn \l_@@_base_CJKfamily_tl {#1}
\tl_set_eq:NN \l_@@_base_family_tl \g_@@_fontspec_family_tl
@@ -4948,7 +5329,7 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentCommand \CJKfamily { m }
{ \ctex_ltj_switch_family:x {#1} \tex_ignorespaces:D }
-\cs_new_protected_nopar:Npn \ctex_ltj_switch_family:n #1
+\cs_new_protected:Npn \ctex_ltj_switch_family:n #1
{
\ctex_ltj_family_if_exist:nNTF {#1} \CJK@family
{
@@ -4984,7 +5365,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_family_unknown_warning:n}
% \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
{
@@ -5001,7 +5382,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}
{
@@ -5012,7 +5393,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}
{
@@ -5027,21 +5408,21 @@ Copyright and Licence
%
% \begin{macro}[int]{\ctex_ltj_fontspec:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_fontspec:nn #1#2
+\cs_new_protected:Npn \ctex_ltj_fontspec:nn #1#2
{
\prop_get:NnNTF \g_@@_fontspec_prop
{ CJKfontspec/#1/#2/id } \l_ctex_ltj_family_tl
{ \ctex_ltj_switch_family:x { \l_ctex_ltj_family_tl } }
{
\int_gincr:N \g_@@_family_int
- \@@_fontspec:xnn
+ \@@_fontspec:enn
{ CJKfontspec ( \int_use:N \g_@@_family_int ) }
{#1} {#2}
}
}
-\cs_new_protected_nopar:Npn \ctex_ltj_fontspec:xx #1#2
- { \use:x { \ctex_ltj_fontspec:nn {#1} {#2} } }
-\cs_new_protected_nopar:Npn \@@_fontspec:nnn #1#2#3
+\cs_new_protected:Npn \ctex_ltj_fontspec:ee #1#2
+ { \use:e { \ctex_ltj_fontspec:nn {#1} {#2} } }
+\cs_new_protected:Npn \@@_fontspec:nnn #1#2#3
{
\bool_if:NT \l_@@_add_alternate_bool
{
@@ -5061,7 +5442,7 @@ Copyright and Licence
\ctex_ltj_set_family:nnn {#1} {#2} {#3}
\ctex_ltj_switch_family:n {#1}
}
-\cs_generate_variant:Nn \@@_fontspec:nnn { x }
+\cs_generate_variant:Nn \@@_fontspec:nnn { e }
\prop_new:N \g_@@_fontspec_prop
% \end{macrocode}
% \end{macro}
@@ -5069,9 +5450,9 @@ Copyright and Licence
% \begin{macro}[int]
% {\ctex_ltj_add_font_features:n,\ctex_ltj_add_font_features:nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_add_font_features:n #1
+\cs_new_protected:Npn \ctex_ltj_add_font_features:n #1
{ \ctex_ltj_add_font_features:xn { \l_ctex_ltj_family_tl } {#1} }
-\cs_new_protected_nopar:Npn \ctex_ltj_add_font_features:nn #1#2
+\cs_new_protected:Npn \ctex_ltj_add_font_features:nn #1#2
{
\prop_get:NnNTF \g_@@_family_font_name_prop
{#1} \l_@@_tmp_tl
@@ -5080,7 +5461,7 @@ Copyright and Licence
{#1} \l_@@_font_options_clist
\clist_put_right:Nn \l_@@_font_options_clist {#2}
\bool_set_true:N \l_@@_add_alternate_bool
- \ctex_ltj_fontspec:xx
+ \ctex_ltj_fontspec:ee
{ \exp_not:o { \l_@@_font_options_clist } }
{ \exp_not:o { \l_@@_tmp_tl } }
}
@@ -5102,16 +5483,16 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \@@_pass_args:nnnn #1#2#3#4
{
- \IfNoValueTF {#2}
+ \tl_if_novalue:nTF {#2}
{ \@@_post_arg:w {#1} {#3} {#4} }
{
- \use:x { #1 {#2} {#3} }
+ \use:e { #1 {#2} {#3} }
#4
}
}
\NewDocumentCommand \@@_post_arg:w { m m m O { } }
{
- \use:x { #1 {#4} {#2} }
+ \use:e { #1 {#4} {#2} }
#3
}
% \end{macrocode}
@@ -5131,8 +5512,8 @@ Copyright and Licence
\NewDocumentCommand \newCJKfontfamily { o m o m }
{
\tl_set:Nx \l_@@_tmp_tl
- { \IfNoValueTF {#1} { \cs_to_str:N #2 } {#1} }
- \cs_new_protected_nopar:Npx #2
+ { \tl_if_novalue:nTF {#1} { \cs_to_str:N #2 } {#1} }
+ \cs_new_protected:Npx #2
{ \ctex_ltj_switch_family:n { \l_@@_tmp_tl } }
\@@_pass_args:nnnn
{ \ctex_ltj_set_family:nnn { \l_@@_tmp_tl } } {#3} {#4}
@@ -5202,36 +5583,15 @@ Copyright and Licence
\tl_if_exist:NF \CJKttdefault { \tl_const:Nn \CJKttdefault { tt } }
% \end{macrocode}
%
-% \begin{macro}[int]{\fontfamily}
-% \begin{macro}[int]{\CTEX@fontfamily}
% \changes{v2.4.8}{2017/02/23}
% {解决与 \pkg{fontspec} 2017/01/24 v2.5d 的字体æ—匹é…兼容问题。}
-% 修改 \tn{fontfamily}ï¼Œä½¿ä¸»è¦ |CJK| 字体æ—能éšè¥¿æ–‡ä¸»è¦å­—体更新。
+% 使用 \LaTeXe \ æ供的钩å­ï¼Œä½¿ä¸»è¦ |CJK| 字体æ—能éšè¥¿æ–‡ä¸»è¦å­—体更新。
% \begin{macrocode}
-\RenewDocumentCommand \fontfamily { m }
- {
- \tl_set:Nx \f@family {#1}
- \CTEX@fontfamily {#1}
- }
-\cs_new_protected_nopar:Npn \CTEX@fontfamily #1
- {
- \str_if_eq:nnTF {#1} { \familydefault }
- { \CJKfamily { \CJKfamilydefault } }
- { \@@_update_family_aux: }
- }
-\cs_new_protected_nopar:Npn \@@_update_family_aux:
- {
- \str_case_e:nn { \f@family }
- {
- { \rmdefault } { \CJKfamily { \CJKrmdefault } }
- { \sfdefault } { \CJKfamily { \CJKsfdefault } }
- { \ttdefault } { \CJKfamily { \CJKttdefault } }
- { \familydefault } { \CJKfamily { \CJKfamilydefault } }
- }
- }
+\g@addto@macro \@rmfamilyhook { \CJKfamily { \CJKrmdefault } }
+\g@addto@macro \@sffamilyhook { \CJKfamily { \CJKsfdefault } }
+\g@addto@macro \@ttfamilyhook { \CJKfamily { \CJKttdefault } }
+\g@addto@macro \@defaultfamilyhook { \CJKfamily { \CJKfamilydefault } }
% \end{macrocode}
-% \end{macro}
-% \end{macro}
%
% 在导言区末尾更新 \tn{CJKfamilydefault}。
% \begin{macrocode}
@@ -5241,7 +5601,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_ltj_ensure_default_family:}
% 在导言区结æŸç¡®è®¤ \tn{CJKfamilydefault} 确实存在。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_ensure_default_family:
+\cs_new_protected:Npn \ctex_ltj_ensure_default_family:
{
\prop_if_empty:NF \g_@@_family_font_name_prop
{
@@ -5272,7 +5632,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_ltj_update_mathfont:}
% 更新数学字体为实际的字体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_update_mathfont:
+\cs_new_protected:Npn \ctex_ltj_update_mathfont:
{
\ctex_ltj_family_if_exist:xNTF { \c_@@_math_tl } \l_@@_tmp_tl
{ \ctex_ltj_update_mathfont:n { \l_@@_tmp_tl } }
@@ -5281,20 +5641,20 @@ Copyright and Licence
{ \ctex_ltj_update_mathfont:n { \l_@@_tmp_tl } }
}
}
-\cs_new_protected_nopar:Npn \ctex_ltj_update_mathfont:n #1
+\cs_new_protected:Npn \ctex_ltj_update_mathfont:n #1
{
\tl_const:Nx \c_@@_math_family_tl {#1}
\DeclareSymbolFont { \c_@@_math_tl } { \CJK@encoding }
- { \c_@@_math_family_tl } { \mddefault } { \updefault }
+ { \c_@@_math_family_tl } { \mddefault } { \shapedefault }
\cs_if_free:cTF
- { \CJK@encoding/\c_@@_math_family_tl/\bfdefault/\updefault }
+ { \CJK@encoding/\c_@@_math_family_tl/\bfdefault/\shapedefault }
{
\SetSymbolFont { \c_@@_math_tl } { bold } { \CJK@encoding }
- { \c_@@_math_family_tl } { \mddefault } { \updefault }
+ { \c_@@_math_family_tl } { \mddefault } { \shapedefault }
}
{
\SetSymbolFont { \c_@@_math_tl } { bold } { \CJK@encoding }
- { \c_@@_math_family_tl } { \bfdefault } { \updefault }
+ { \c_@@_math_family_tl } { \bfdefault } { \shapedefault }
}
}
% \end{macrocode}
@@ -5302,12 +5662,14 @@ Copyright and Licence
%
% \paragraph{替代字体的设置}
%
+% \changes{v2.5}{2020/04/30}{é‡æž„字体选项 \opt{AlternateFont}。}
+%
% \begin{macro}{AlternateFont,CharRange}
% 设置替代字体的选项。
% \begin{macrocode}
\keys_define:nn { ctex_ltj / fontspec }
{
- AlternateFont .code:n = \ctex_ltj_set_alternate_seq:n {#1} ,
+ AlternateFont .code:n = \ctex_ltj_set_alternate_prop:n {#1} ,
AlternateFont .value_required:n = true ,
CharRange .clist_set:N = \l_@@_char_range_clist ,
CharRange .value_required:n = true
@@ -5315,84 +5677,84 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\ctex_ltj_set_alternate_seq:n}
-% 我们使用 \verb=||= 作为替代字体åºåˆ—的分隔标志。它å¯èƒ½è¢«è®¾ç½®ä¸ºæ´»åŠ¨å­—符,为此
-% 需è¦å…ˆâ€œæ¶ˆæ¯’â€ï¼ŒåŒæ—¶è¿‡æ»¤æŽ‰ç©ºå…ƒç´ ã€‚
+% \begin{macro}[int]{\ctex_ltj_set_alternate_prop:n}
+% ä¿å­˜æ›¿ä»£å­—体åºåˆ—。
% \begin{macrocode}
-\group_begin:
- \char_set_catcode_other:N \|
- \cs_set:Npn \@@_tmp:w #1
- {
- \cs_new_protected:Npn \ctex_ltj_set_alternate_seq:n ##1
- {
- \clist_if_empty:NT \l_@@_char_range_clist
- {
- \tl_set:Nn \l_@@_tmp_tl { ##1 }
- \tl_replace_all:Nnn \l_@@_tmp_tl {#1} { || }
- \seq_set_split:NnV \l_@@_tmp_seq { || } \l_@@_tmp_tl
- \seq_set_filter:NNn \l_@@_tmp_seq \l_@@_tmp_seq
- { ! \tl_if_blank_p:n { ####1 } }
- \seq_concat:NNN \l_@@_alternate_seq
- \l_@@_alternate_seq \l_@@_tmp_seq
- }
- }
- }
- \char_set_catcode_active:N \|
- \@@_tmp:w { || }
-\group_end:
-\seq_new:N \l_@@_tmp_seq
-\seq_new:N \l_@@_alternate_seq
+\cs_new_protected:Npn \ctex_ltj_set_alternate_prop:n #1
+ { \clist_map_function:nN {#1} \@@_push_alternate_prop:n }
+\cs_new_protected:Npn \@@_push_alternate_prop:n #1
+ {
+ \clist_set:Nx \l_@@_tmp_clist { \tl_head:n {#1} }
+ \tl_remove_all:Nn \l_@@_tmp_clist { ~ }
+ \exp_args:No \@@_push_alternate_prop:nn
+ { \l_@@_tmp_clist } {#1}
+ }
+\cs_new_protected:Npn \@@_push_alternate_prop:nn #1
+ {
+ \prop_remove:Nn \l_@@_alternate_prop {#1}
+ \prop_put:Nnn \l_@@_alternate_prop {#1}
+ }
+\clist_new:N \l_@@_tmp_clist
+\prop_new:N \l_@@_alternate_prop
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\ctex_ltj_set_alternate_family:nnF}
% 如果在字体的选项中设置了 \opt{CharRange},则åªè®¾ç½®æ›¿ä»£å­—体。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_family:nnF #1#2#3
+\cs_new_protected:Npn \ctex_ltj_set_alternate_family:nnF
{
\clist_if_empty:NTF \l_@@_char_range_clist
- {
- \@@_check_family:n {#1}
- \seq_if_empty:NF \l_@@_alternate_seq
- { \ctex_ltj_save_alternate_seq:cn { \@@_alternate_cs:n {#1} } {#2} }
- #3
- }
- { \ctex_ltj_set_alternate_family:nn {#1} {#2} }
+ { \@@_set_family_aux:nnn }
+ { \@@_set_alternate_family_aux:nnn }
}
+\cs_new_protected:Npn \@@_set_family_aux:nnn #1#2#3
+ {
+ \@@_check_family:n {#1}
+ \prop_if_empty:NF \l_@@_alternate_prop
+ { \ctex_ltj_save_alternate_seq:cn { \@@_alternate_cs:n {#1} } {#2} }
+ #3
+ }
+\cs_new_protected:Npn \@@_set_alternate_family_aux:nnn #1#2#3
+ { \ctex_ltj_set_alternate_family:nn {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]
-% {\ctex_ltj_save_alternate_seq:Nn,\ctex_ltj_save_alternate_seq:Nnnwn}
+% \begin{macro}[int]{\ctex_ltj_save_alternate_seq:Nn}
% ä¿å­˜ç”± \opt{AlternateFont} 设置的替代字体åºåˆ—。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_save_alternate_seq:Nn #1#2
+\cs_new_protected:Npn \ctex_ltj_save_alternate_seq:Nn #1#2
{
- \seq_map_inline:Nn \l_@@_alternate_seq
- { \ctex_ltj_save_alternate_seq:Nnnwnw #1 {#2} ##1 { } \q_stop }
+ \prop_map_inline:Nn \l_@@_alternate_prop
+ { \@@_save_alternate_auxi:w ##2 { } \q_mark #1 {#2} }
}
-\cs_generate_variant:Nn \ctex_ltj_save_alternate_seq:Nn { c }
-\NewDocumentCommand \ctex_ltj_save_alternate_seq:Nnnwnw
- { m m m +O{ } m u{ \q_stop } }
+\cs_new_protected:Npn \@@_save_alternate_auxi:w #1#2#
{
- \clist_set:Nn \l_@@_char_range_clist {#3}
- \clist_set:Nn \l_@@_alternate_options_clist {#4}
+ \tl_if_blank:nTF {#2}
+ { \@@_save_alternate_auxii:w {#1} }
+ { \@@_save_alternate_auxii:w {#1} {#2} }
+ }
+\cs_new_protected:Npn \@@_save_alternate_auxii:w #1#2#3 #4 \q_mark #5#6
+ {
+ \clist_set:Nn \l_@@_char_range_clist {#1}
+ \clist_set:Nn \l_@@_alternate_options_clist {#3}
\@@_use_global_options:N \l_@@_alternate_options_clist
- \tl_if_blank:nTF {#5}
- { \tl_set:Nn \l_@@_tmp_tl {#2} }
+ \tl_if_blank:nTF {#2}
+ { \tl_set:Nn \l_@@_tmp_tl {#6} }
{
- \tl_set:Nn \l_@@_tmp_tl {#5}
- \tl_replace_all:Nnn \l_@@_tmp_tl { * } {#2}
+ \tl_set:Nx \l_@@_tmp_tl { \tl_trim_spaces:n {#2} }
+ \tl_replace_all:Nnn \l_@@_tmp_tl { * } {#6}
}
- \use:x
+ \use:e
{
- \ctex_ltj_save_alternate_family:Nnnn \exp_not:N #1
+ \ctex_ltj_save_alternate_family:Nnnn \exp_not:N #5
{ \exp_not:o { \l_@@_char_range_clist } }
{ \exp_not:o { \l_@@_alternate_options_clist } }
{ \exp_not:o { \l_@@_tmp_tl } }
}
}
\clist_new:N \l_@@_alternate_options_clist
+\cs_generate_variant:Nn \ctex_ltj_save_alternate_seq:Nn { c }
% \end{macrocode}
% \end{macro}
%
@@ -5400,7 +5762,7 @@ Copyright and Licence
% 设置选项 \opt{CharRange} 范围内的替代字体。如果已ç»å®šä¹‰äº†ä¸»å­—体,我们也马上
% 定义替代字体,å¦åˆ™åªä¿å­˜èµ·æ¥å¤‡ç”¨ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_family:nn #1#2
+\cs_new_protected:Npn \ctex_ltj_set_alternate_family:nn #1#2
{
\@@_update_family_uid:N \l_@@_font_options_clist
\@@_use_global_options:N \l_@@_font_options_clist
@@ -5409,7 +5771,7 @@ Copyright and Licence
{ \l_@@_char_range_clist }
{ \l_@@_font_options_clist } {#2} {#1}
}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_family:Nnnnn #1#2#3#4#5
+\cs_new_protected:Npn \ctex_ltj_set_alternate_family:Nnnnn #1#2#3#4#5
{
\prop_get:NnNT \g_@@_family_name_prop {#5} \l_@@_base_family_tl
{ \ctex_ltj_set_alternate_family:nnn {#2} {#3} {#4} }
@@ -5422,10 +5784,10 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_ltj_save_alternate_family:Nnnn}
% ä¿å­˜æ›¿ä»£å­—体åºåˆ—的定义,以备定义主字体时使用。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_save_alternate_family:Nnnn #1#2#3#4
+\cs_new_protected:Npn \ctex_ltj_save_alternate_family:Nnnn #1#2#3#4
{
\cs_if_exist:NF #1 { \cs_set_eq:NN #1 \prg_do_nothing: }
- \cs_gset_protected_nopar:Npx #1
+ \cs_gset_protected:Npx #1
{ \exp_not:o { #1 \ctex_ltj_set_alternate_family:nnn {#2} {#3} {#4} } }
}
% \end{macrocode}
@@ -5434,10 +5796,9 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_ltj_set_alternate_family:nnn}
% 实际定义替代字体æ—。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_family:nnn #1#2#3
+\cs_new_protected:Npn \ctex_ltj_set_alternate_family:nnn #1#2#3
{
\group_begin:
- \@@_change_encoding:
\cs_set_eq:NN \CJKfamily \use_none:n
\ctex_ltj_swap_cs:NN
\DeclareFontShape@ \ctex_ltj_declare_alternate_shape:nnnnnn
@@ -5469,7 +5830,7 @@ Copyright and Licence
% \pkg{fontspec} 对 CJK 字体æ—总是定义新字体。
% \begin{macrocode}
\keys_define:nn { fontspec } { LTJFONTUID .code:n = }
-\cs_new_protected_nopar:Npn \@@_update_family_uid:N #1
+\cs_new_protected:Npn \@@_update_family_uid:N #1
{
\int_gincr:N \g_@@_family_int
\clist_put_right:Nx #1 { LTJFONTUID = \int_use:N \g_@@_family_int }
@@ -5488,8 +5849,7 @@ Copyright and Licence
{
\ctex_ltj_declare_alternate_shape:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6}
\ctex_ltj_set_alternate_shape:Nnnnnnn \l_@@_char_range_clist
- { \l_@@_base_family_tl } {#3} {#4}
- { \l_fontspec_family_tl } {#3} {#4}
+ { \l_@@_base_family_tl } {#3} {#4} {#2} {#3} {#4}
}
% \end{macrocode}
% \end{macro}
@@ -5498,7 +5858,7 @@ Copyright and Licence
% 与 \pkg{LuaTeX-ja} çš„ \tn{DeclareAlternateKanjiFont} 的功能类似,区别是固定编ç 
% 为 \tn{CJK@encoding}。这个设置总是全局的。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_shape:Nnnnnnn #1#2#3#4#5#6#7
+\cs_new_protected:Npn \ctex_ltj_set_alternate_shape:Nnnnnnn #1#2#3#4#5#6#7
{
\clist_map_inline:Nn #1
{
@@ -5509,10 +5869,9 @@ Copyright and Licence
}
{ \ctex_ltj_set_alternate_shape:nnn { #2/#3/#4 } { #5/#6/#7 } { ##1 } }
}
- \@@_save_alternate_shape:cnn
+ \@@_save_alternate_shape:cn
{ \@@_alternate_cs:n { clear / \l_@@_base_CJKfamily_tl } }
- { luatexja.jfont.clear_alt_font_latex }
- { '\lua_escape:e { \CJK@encoding/#2/#3/#4 }' }
+ { \ctex_ltj_clear_alt_font:n { \CJK@encoding/#2/#3/#4 } }
}
% \end{macrocode}
% \end{macro}
@@ -5526,85 +5885,80 @@ Copyright and Licence
\NewDocumentCommand \ctex_ltj_set_alternate_shape:nnn
{ m m > { \SplitArgument { 1 } { -> } } m }
{ \ctex_ltj_set_alternate_shape:nnnn {#1} {#2} #3 }
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_shape:nnnn #1#2#3#4
+\cs_new_protected:Npn \ctex_ltj_set_alternate_shape:nnnn #1#2#3#4
{
- \ctex_ltj_set_alternate_shape:n
+ \ctex_ltj_set_alternate_shape:e
{
- \IfNoValueTF {#4}
- { \int_eval:n {#3} , \int_eval:n {#3} , }
- {
- \int_eval:n { \tl_if_blank:nTF {#3} { "80 } {#3} } ,
- \int_eval:n { \tl_if_blank:nTF {#4} { "10FFFF } {#4} } ,
- }
- '\lua_escape:e { \CJK@encoding/#2 }' ,
- '\lua_escape:e { \CJK@encoding/#1 }'
+ \@@_range_normalization:nn {#3} {#4}
+ { \CJK@encoding / \exp_not:n {#2} }
+ { \CJK@encoding / \exp_not:n {#1} }
}
}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_shape:n #1
+\cs_new_protected:Npn \ctex_ltj_set_alternate_shape:n #1
{
- \lua_now:e { luatexja.jfont.set_alt_font_latex ( #1 ) }
- \@@_save_alternate_shape:cnn
+ \ctex_ltj_set_alt_font:nnnn #1
+ \@@_save_alternate_shape:cn
{ \@@_alternate_cs:n { reset / \l_@@_base_CJKfamily_tl } }
- { luatexja.jfont.set_alt_font_latex } {#1}
+ { \ctex_ltj_set_alt_font:nnnn #1 }
}
+\cs_generate_variant:Nn \ctex_ltj_set_alternate_shape:n { e }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\ctex_ltj_set_alternate_shape:nnN}
% 若字符范围预先由 \texttt{declarecharrange} 声明,则å¯ä»¥ç›´æŽ¥ä½¿ç”¨ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_alternate_shape:nnN #1#2#3
+\cs_new_protected:Npn \ctex_ltj_set_alternate_shape:nnN #1#2#3
{
\tl_map_inline:Nn #3
{
\ctex_ltj_set_alternate_shape:n
{
- ##1 ,
- '\lua_escape:e { \CJK@encoding/#2 }' ,
- '\lua_escape:e { \CJK@encoding/#1 }'
+ ##1
+ { \CJK@encoding/#2 }
+ { \CJK@encoding/#1 }
}
}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_save_alternate_shape:Nnn}
+% \begin{macro}{\@@_save_alternate_shape:Nn}
% 将实际设置的替æ¢å­—å½¢ä¿å­˜èµ·æ¥ç”¨äºŽæ¸…除或æ¢å¤ã€‚
% 暂时令 \cs{l_@@_base_family_tl} 为 \cs{scan_stop:} 是让它ä¸è¢«å±•å¼€ï¼Œä½¿å¾—替æ¢
% 字体的设置å¯ä»¥åœ¨ \tn{addCJKfontfeature} 中直接使用。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_save_alternate_shape:Nnn #1#2#3
+\cs_new_protected:Npn \@@_save_alternate_shape:Nn #1#2
{
\group_begin:
- \cs_if_exist:NF #1 { \cs_set_eq:NN #1 \prg_do_nothing: }
- \cs_set_eq:NN \l_@@_base_family_tl \scan_stop:
- \cs_set_eq:NN \lua_escape:e \scan_stop:
- \cs_gset_protected_nopar:Npx #1
- { \exp_not:o {#1} \exp_not:N \lua_now:e { #2 ( #3 ) } }
+ \cs_if_exist:NF #1 { \cs_set_eq:NN #1 \prg_do_nothing: }
+ \cs_set_eq:NN \l_@@_base_family_tl \scan_stop:
+ \cs_gset_protected:Npx #1 { \exp_not:o {#1} #2 }
\group_end:
}
-\cs_generate_variant:Nn \@@_save_alternate_shape:Nnn { c }
+\cs_generate_variant:Nn \@@_save_alternate_shape:Nn { c }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{clearalternatefont,resetalternatefont}
% 清除和é‡ç½®æ“作总是全局的。
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
clearalternatefont .code:n =
- { \clist_map_function:xN {#1} \ctex_ltj_clear_alternate_font:n } ,
+ { \clist_map_function:eN {#1} \ctex_ltj_clear_alternate_font:n } ,
resetalternatefont .code:n =
- { \clist_map_function:xN {#1} \ctex_ltj_reset_alternate_font:n } ,
+ { \clist_map_function:eN {#1} \ctex_ltj_reset_alternate_font:n } ,
clearalternatefont .default:n = \l_ctex_ltj_family_tl ,
resetalternatefont .default:n = \l_ctex_ltj_family_tl
}
-\cs_new_protected_nopar:Npn \ctex_ltj_clear_alternate_font:n #1
+\cs_new_protected:Npn \ctex_ltj_clear_alternate_font:n #1
{
\group_begin:
\ctex_ltj_family_if_exist:xNTF {#1} \l_@@_base_family_tl
{
- \cs_if_exist_use:cT { \@@_alternate_cs:n { clear / #1 } }
+ \cs_if_exist_use:cT
+ { \@@_alternate_cs:n { clear / #1 } }
{
\prop_gput:Nno \g_@@_reset_alternate_prop
{#1} { \l_@@_base_family_tl }
@@ -5615,7 +5969,7 @@ Copyright and Licence
{ \@@_family_unknown_warning:n {#1} }
\group_end:
}
-\cs_new_protected_nopar:Npn \ctex_ltj_reset_alternate_font:n #1
+\cs_new_protected:Npn \ctex_ltj_reset_alternate_font:n #1
{
\group_begin:
\prop_gpop:NnNT \g_@@_reset_alternate_prop {#1} \CJK@family
@@ -5627,23 +5981,23 @@ Copyright and Licence
\group_end:
}
\prop_new:N \g_@@_reset_alternate_prop
-\cs_generate_variant:Nn \clist_map_function:nN { x }
+\cs_generate_variant:Nn \clist_map_function:nN { e }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{declarecharrange}
% 预先声明字符范围。
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
- declarecharrange .code:n = \ctex_ltj_declare_char_range:x {#1} ,
+ declarecharrange .code:n = \ctex_ltj_declare_char_range:e {#1} ,
declarecharrange .value_required:n = true
}
-\cs_new_protected_nopar:Npn \ctex_ltj_declare_char_range:n #1
+\cs_new_protected:Npn \ctex_ltj_declare_char_range:n #1
{ \clist_map_inline:nn {#1} { \@@_declare_char_range:nn ##1 } }
-\cs_generate_variant:Nn \ctex_ltj_declare_char_range:n { x }
-\cs_new_protected_nopar:Npn \@@_declare_char_range:nn #1#2
- { \use:x { \ctex_ltj_declare_char_range:nn { \tl_trim_spaces:n {#1} } } {#2} }
+\cs_generate_variant:Nn \ctex_ltj_declare_char_range:n { e }
+\cs_new_protected:Npn \@@_declare_char_range:nn #1
+ { \exp_args:Ne \ctex_ltj_declare_char_range:nn { \tl_trim_spaces:n {#1} } }
% \end{macrocode}
% \end{macro}
%
@@ -5651,7 +6005,7 @@ Copyright and Licence
% \begin{variable}{\g_@@_char_range_prop}
% |#1| 是å字,|#2| 是范围。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_declare_char_range:nn #1#2
+\cs_new_protected:Npn \ctex_ltj_declare_char_range:nn #1#2
{
\tl_clear:N \l_@@_char_range_tl
\clist_map_function:nN {#2} \ctex_ltj_save_char_range:n
@@ -5671,25 +6025,32 @@ Copyright and Licence
\NewDocumentCommand \ctex_ltj_save_char_range:n
{ > { \SplitArgument { 1 } { -> } } m }
{ \ctex_ltj_save_char_range:nn #1 }
-\cs_new_protected_nopar:Npn \ctex_ltj_save_char_range:nn #1#2
+\cs_new_protected:Npn \ctex_ltj_save_char_range:nn #1#2
{
\tl_put_right:Nx \l_@@_char_range_tl
- { {
- \IfNoValueTF {#2}
- { \int_eval:n {#1} , \int_eval:n {#1} }
- {
- \int_eval:n { \tl_if_blank:nTF {#1} { "80 } {#1} } ,
- \int_eval:n { \tl_if_blank:nTF {#2} { "10FFFF } {#2} }
- }
- } }
+ { { \@@_range_normalization:nn {#1} {#2} } }
+ }
+\cs_new:Npn \@@_range_normalization:nn #1#2
+ {
+ \tl_if_novalue:nTF {#2}
+ {
+ { \int_eval:n {#1} }
+ { \int_eval:n {#1} }
+ }
+ {
+ { \int_eval:n { \tl_if_blank:nTF {#1} { \c_@@_range_min_int } {#1} } }
+ { \int_eval:n { \tl_if_blank:nTF {#2} { \c_@@_range_max_int } {#2} } }
+ }
}
+\int_const:Nn \c_@@_range_min_int { "80 }
+\int_const:Nn \c_@@_range_max_int { \c_max_char_int }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\ctex_ltj_def_char_range_key:n}
% 在字体设置选项中定义字符范围键。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_def_char_range_key:n #1
+\cs_new_protected:Npn \ctex_ltj_def_char_range_key:n #1
{
\keys_if_exist:nnF { ctex_ltj / fontspec } {#1}
{
@@ -5706,42 +6067,13 @@ Copyright and Licence
\cs_new_protected:Npn \ctex_ltj_char_range_key:nn #1#2
{
\tl_if_blank:nTF {#2}
- { \tl_set:Nn \l_@@_char_range_clist {#1} }
- {
- \clist_if_empty:NT \l_@@_char_range_clist
- {
- \tl_set:Nn \l_@@_tmp_tl { {#1} }
- \@@_char_range_parse_feature:w #2 \q_stop
- }
- }
+ { \clist_set:Nn \l_@@_char_range_clist {#1} }
+ { \@@_push_alternate_prop:nn {#1} { {#1} #2 } }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_char_range_parse_feature:w}
-% å¯ä»¥ä½¿ç”¨åŠ æ–¹æ‹¬å·çš„æ–¹å¼ï¼Œé€šè¿‡æ–‡ä»¶åæ¥è°ƒç”¨å­—体。这容易与字体选项混淆。例如,需è¦
-% å°† |[simsun.ttc]| 设置为 \opt{range} 的主字体,就需è¦ä½¿ç”¨
-% |range={{[simsun.ttc]}}| 或者 |[]{[simsun.ttc]}|。下é¢çš„目的是,支æŒç›´æŽ¥ä½¿ç”¨
-% |[simsun.ttc]| 和 |[...][simsun.ttc]|。
-% \begin{macrocode}
-\NewDocumentCommand \@@_char_range_parse_feature:w
- { +o o u { \q_stop } }
- {
- \exp_args:NNf \tl_put_right:Nn \l_@@_tmp_tl
- {
- \IfNoValueTF {#1} { {#3} }
- {
- \IfNoValueTF {#2}
- { \tl_if_blank:nTF {#3} { { [#1] } } { [ {#1} ] {#3} } }
- { [ {#1} ] { [#2] } }
- }
- }
- \seq_put_right:No \l_@@_alternate_seq { \l_@@_tmp_tl }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \paragraph{其它设置}
+% \paragraph{其他设置}
%
% 在抄录环境中ç¦ç”¨ \opt{autospacing} å’Œ \opt{autoxspacing}。然而,\pkg{LuaTeX-ja}
% 还是会使 JAchar 自动折行。没有看到有简å•çš„ç¦ç”¨æŠ˜è¡Œçš„办法,å¯èƒ½éœ€è¦è®¾ç½®æ‰€æœ‰çš„
@@ -5768,16 +6100,14 @@ Copyright and Licence
{ }
{ \ctex_patch_failure:N \verbatim@font }
}
-\cs_new_protected_nopar:Npn \CTEX@verbatim@font@hook
+\cs_new_protected:Npn \CTEX@verbatim@font@hook
{ \ltjsetparameter { autospacing = false , autoxspacing = false } }
% \end{macrocode}
%
-% \begin{macro}{\@@italiccorr}
+% \begin{macro}{\@@@@italiccorr}
% \LaTeX{} 的倾斜校正也è¦é‡æ–°å®šä¹‰ã€‚
% \begin{macrocode}
-%<@@=>
-\cs_set_eq:NN \@@italiccorr \/
-%<@@=ctex>
+\cs_set_eq:NN \@@@@italiccorr \/
% \end{macrocode}
% \end{macro}
%
@@ -5787,14 +6117,15 @@ Copyright and Licence
% \tn{ltjsetkanjiskip} 和 \tn{ltjsetxkanjiskip} 是相应的 \tn{ltjsetparameter}
% çš„å¿«æ·æ–¹å¼ï¼Œåœ¨ä½¿ç”¨ä»–们时,è¦æ³¨æ„先使用 \tn{ltj@setpar@global}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_ltj_set_kanjiskip:N
+\cs_new_protected:Npn \ctex_ltj_set_kanjiskip:N
{ \ltj@setpar@global \ltjsetkanjiskip }
-\cs_new_protected_nopar:Npn \ctex_ltj_set_xkanjiskip:N
+\cs_new_protected:Npn \ctex_ltj_set_xkanjiskip:N
{ \ltj@setpar@global \ltjsetxkanjiskip }
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
+%<@@=ctex>
%</luatex>
% \end{macrocode}
%
@@ -5809,37 +6140,17 @@ Copyright and Licence
%
% 按 \pkg{CJK} 的命å习惯模拟部分命令,并设置默认字体。
% \begin{macrocode}
-\tl_set:Nn \CJKrmdefault { zhrm }
-\tl_set:Nn \CJKsfdefault { zhsf }
-\tl_set:Nn \CJKttdefault { zhtt }
-\tl_set:Nn \CJKfamilydefault { \CJKrmdefault }
+\tl_if_exist:NF \CJKfamilydefault
+ { \tl_const:Nn \CJKfamilydefault { \CJKrmdefault } }
+\tl_if_exist:NF \CJKrmdefault { \tl_const:Nn \CJKrmdefault { zhrm } }
+\tl_if_exist:NF \CJKsfdefault { \tl_const:Nn \CJKsfdefault { zhsf } }
+\tl_if_exist:NF \CJKttdefault { \tl_const:Nn \CJKttdefault { zhtt } }
\tl_set:Nn \kanjifamilydefault { \CJKfamilydefault }
-\RenewDocumentCommand \rmfamily { }
- {
- \not@math@alphabet \rmfamily \mathrm
- \romanfamily \rmdefault
- \kanjifamily \CJKrmdefault
- \selectfont
- }
-\RenewDocumentCommand \sffamily { }
- {
- \not@math@alphabet \sffamily \mathsf
- \romanfamily \sfdefault
- \kanjifamily \CJKsfdefault
- \selectfont
- }
-\RenewDocumentCommand \ttfamily { }
- {
- \not@math@alphabet \ttfamily \mathtt
- \romanfamily \ttdefault
- \kanjifamily \CJKttdefault
- \selectfont
- }
+\g@addto@macro \@rmfamilyhook { \kanjifamily { \CJKrmdefault } }
+\g@addto@macro \@sffamilyhook { \kanjifamily { \CJKsfdefault } }
+\g@addto@macro \@ttfamilyhook { \kanjifamily { \CJKttdefault } }
\NewDocumentCommand \CJKfamily { m }
- {
- \kanjifamily {#1}
- \selectfont
- }
+ { \kanjifamily {#1} \selectfont }
% \end{macrocode}
%
% \changes{v2.4.15}{2019/04/05}{将 \upLaTeX 的默认字体由 \texttt{mc} 改为
@@ -5847,9 +6158,9 @@ Copyright and Licence
%
% å°† \upLaTeX 的默认字体由 |mc| 改为 |zhrm|,并å¯ç”¨ \tn{jfam}。
% \begin{macrocode}
-\DeclareErrorKanjiFont{JY2}{zhrm}{m}{n}{10}
-\DeclareKanjiSubstitution{JY2}{zhrm}{m}{n}
-\DeclareKanjiSubstitution{JT2}{zhrm}{m}{n}
+\DeclareErrorKanjiFont {JY2}{zhrm}{m}{n}{10}
+\DeclareKanjiSubstitution {JY2}{zhrm}{m}{n}
+\DeclareKanjiSubstitution {JT2}{zhrm}{m}{n}
\DeclareSymbolFont{mincho}{JY2}{zhrm}{m}{n}
\SetSymbolFont{mincho}{bold}{JY2}{zhrm}{bx}{n}
\jfam \symmincho
@@ -5892,19 +6203,20 @@ Copyright and Licence
% 形如 |upzhserif|,ä¸åŒ…括表示方å‘çš„åŽç¼€ |-h| 与 |-v|。粗体字体å为空时ä¸è®¾ç½®è¯¥
% 字形。本命令ä¸è®¾ç½®å­—体映射,需è¦å¤ç”¨å·²æœ‰çš„字体映射或å¦è¡Œè®¾ç½®ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_set_upfamily:nnn #1 #2 #3
+\cs_new_protected:Npn \ctex_set_upfamily:nnn #1#2#3
{
\DeclareKanjiFamily{JY2}{#1}{}
\DeclareKanjiFamily{JT2}{#1}{}
\DeclareFontShape{JY2}{#1}{m}{n}{<->~ #2-h}{}
\DeclareFontShape{JT2}{#1}{m}{n}{<->~ #2-v}{}
- \tl_if_empty:nF { #3 }
+ \tl_if_empty:nF {#3}
{
+ \DeclareFontShape{JY2}{#1}{b}{n}{<->~ #3-h}{}
+ \DeclareFontShape{JT2}{#1}{b}{n}{<->~ #3-v}{}
\DeclareFontShape{JY2}{#1}{bx}{n}{<->~ #3-h}{}
\DeclareFontShape{JT2}{#1}{bx}{n}{<->~ #3-v}{}
}
}
-\@onlypreamble \ctex_set_upfamily:nnn
% \end{macrocode}
% \end{macro}
%
@@ -5913,20 +6225,38 @@ Copyright and Licence
% çš„åŽç¼€ |b| 与表示排版方å‘çš„åŽç¼€ |-h| 与 |-v|。|#2| 与 |#3| 是普通与粗体的实际
% 字体å。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_set_upmap:nnn #1 #2 #3
+\cs_new_protected:Npn \ctex_set_upmap:nnn #1#2#3
{
\ctex_set_zhmap:n
{
- \special{ pdf:mapline~ #1-h~ UniGB-UTF16-H~ #2 }
- \special{ pdf:mapline~ #1-v~ UniGB-UTF16-V~ #2 }
- \tl_if_empty:nF { #3 }
+ \special { pdf:mapline~#1-h~UniGB-UTF16-H~#2 }
+ \special { pdf:mapline~#1-v~UniGB-UTF16-V~#2 }
+ \tl_if_empty:nF {#3}
{
- \special{ pdf:mapline~ #1b-h~ UniGB-UTF16-H~ #3 }
- \special{ pdf:mapline~ #1b-v~ UniGB-UTF16-V~ #3 }
+ \special { pdf:mapline~#1b-h~UniGB-UTF16-H~#3 }
+ \special { pdf:mapline~#1b-v~UniGB-UTF16-V~#3 }
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\ctex_set_upmap_unicode:nnn}
+% 设置 \upTeX{} 字体映射,使用 |unicode| CMap。å‚æ•°åŒä¸Šã€‚
+% \begin{macrocode}
+\cs_new_protected:Npn \ctex_set_upmap_unicode:nnn #1#2#3
+ {
+ \ctex_set_zhmap:n
+ {
+ \special { pdf:mapline~#1-h~unicode~#2 }
+ \special { pdf:mapline~#1-v~unicode~#2 }
+ \tl_if_empty:nF {#3}
+ {
+ \special { pdf:mapline~#1b-h~unicode~#3 }
+ \special { pdf:mapline~#1b-v~unicode~#3 }
}
}
}
-\@onlypreamble \ctex_set_upmap:nnn
% \end{macrocode}
% \end{macro}
%
@@ -5934,17 +6264,24 @@ Copyright and Licence
% 设置 \upTeX{} 基本字体映射,按 \pkg{zhmetrics-uptex} 的定义,ä¾æ¬¡è®¾ç½®è¡¬çº¿ä½“
% æ­£ã€ç²—ã€æ„大利,无衬线体正ã€ç²—,等宽体正——共 6 ç§å­—体,并分横排åŠç›´æŽ’。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_set_upfonts:nnnnnn #1 #2 #3 #4 #5 #6
+\cs_new_protected:Npn \ctex_set_upfonts:nnnnnn #1#2#3#4#5#6
{
- \ctex_set_upmap:nnn { upserif } { #1 } { #2 }
- \ctex_set_upmap:nnn { upserifit } { #3 } {}
- \ctex_set_upmap:nnn { upsans } { #4 } { #5 }
- \ctex_set_upmap:nnn { upmono } { #6 } {}
+ \ctex_set_upmap:nnn { upserif } {#1} {#2}
+ \ctex_set_upmap:nnn { upserifit } {#3} {}
+ \ctex_set_upmap:nnn { upsans } {#4} {#5}
+ \ctex_set_upmap:nnn { upmono } {#6} {}
}
-\@onlypreamble \ctex_set_upfonts:nnnnnn
% \end{macrocode}
% \end{macro}
%
+% 以下命令åªèƒ½åœ¨å¯¼è¨€åŒºä½¿ç”¨ã€‚
+% \begin{macrocode}
+\@onlypreamble \ctex_set_upfamily:nnn
+\@onlypreamble \ctex_set_upmap:nnn
+\@onlypreamble \ctex_set_upmap_unicode:nnn
+\@onlypreamble \ctex_set_upfonts:nnnnnn
+% \end{macrocode}
+%
% \changes{v2.4.7}{2016/12/27}{ä¾èµ– \pkg{pxeverysel} å®åŒ…。}
%
% \pkg{everysel} å®åŒ…(2011/10/28)未考虑 \upLaTeX{} 对 \tn{selectfont} çš„ä¿®
@@ -5967,7 +6304,7 @@ Copyright and Licence
% æ›´æ–° \tn{CJKfamilydefault}。\pkg{xeCJK} å·²ç»æœ‰è¿™ä¸ªåŠŸèƒ½ï¼Œä¸éœ€è¦å†è°ƒæ•´ã€‚
% \begin{macrocode}
%<*pdftex|luatex|uptex|aptex>
-\cs_new_protected_nopar:Npn \ctex_update_default_family:
+\cs_new_protected:Npn \ctex_update_default_family:
{
\tl_if_eq:NNT \CJKfamilydefault \l_@@_family_default_init_tl
{
@@ -6012,90 +6349,9 @@ Copyright and Licence
% \end{macrocode}
% \end{variable}
%
-% \subsubsection{æ“作系统的判断}
-%
% \changes{v2.0}{2014/04/16}{自动检测æ“作系统,载入对应的字体é…置。}
-%
-% \begin{macro}[int]{\ctex_detected_platform:}
-% 在 \LuaTeX{} 下直接用调用 |os.name| æ¥åˆ¤æ–­ã€‚
-% \begin{macrocode}
-%<*luatex>
-\cs_new_protected_nopar:Npn \ctex_detected_platform:
- {
- \tl_gset:Nx \g_@@_fontset_tl
- {
- \lua_now:e
- {
- if ~ os.name == 'windows' then ~
- tex.sprint ( 'windows' )
- elseif ~ os.name == 'macosx' then ~
- tex.sprint ( 'mac' )
- else ~
- tex.sprint ( 'fandol' )
- end
- }
- }
- }
-%</luatex>
-% \end{macrocode}
-%
-% \ApTeX{} å¯ä»¥ä½¿ç”¨ \tn{ngostype} æ¥åˆ¤æ–­ã€‚
-% \begin{macrocode}
-%<*aptex>
-\cs_new_protected_nopar:Npn \ctex_detected_platform:
- {
- \tl_gset:Nx \g_@@_fontset_tl
- {
- \str_case:onF { \ngostype }
- {
- { Win32 } { windows }
- { Win64 } { windows }
- { Darwin } { mac }
- }
- { fandol }
- }
- }
-%</aptex>
-% \end{macrocode}
-%
-% \pdfTeX{} å’Œ \XeTeX{} 下则ä¾æ® \file{/dev/null} å’Œ \file{nul:} 的存在性以åŠ
-% 文件系统的大å°å†™æ•æ„Ÿæ€§æ¥åˆ¤æ–­ã€‚Mac~OS~X 的大å°å†™æ•æ„Ÿæ€§åœ¨å®‰è£…时是å¯é€‰çš„。为了
-% ä¿é™©èµ·è§ï¼Œè¿™é‡Œçš„判断很ç¹ç,最多è¦è¿›è¡Œ 4 次文件æ“作ï¼
-% \begin{macrocode}
-%<*xetex|pdftex|uptex>
-\cs_new_protected_nopar:Npn \ctex_detected_platform:
- {
- \file_if_exist:nTF { /dev/null }
- {
- \file_if_exist:nTF { nul: }
- {
- \file_if_exist:nTF { \c_@@_upper_case_file_str }
- { \ctex_if_macosx:TF { mac } { windows } }
- { \ctex_if_macosx:TF { mac } { fandol } }
- }
- { \ctex_if_macosx:TF { mac } { fandol } }
- }
- { \tl_gset:Nn \g_@@_fontset_tl { windows } }
- }
-\str_const:Nx \c_@@_upper_case_file_str
- { \exp_args:No \str_upper_case:n { \g_file_curr_name_str } }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\ctex_if_macosx:TF}
-% \changes{v2.1}{2015/06/17}{改用 \file{/Library/Fonts/Songti.ttc} 为特å¾æ–‡ä»¶ã€‚}
-% 以 \file{/Library/Fonts/Songti.ttc} 为特å¾æ–‡ä»¶åˆ¤æ–­ Mac~OS~X。
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_if_macosx:TF #1#2
- {
- \file_if_exist:nTF { \c_@@_macosx_file_str }
- { \tl_gset:Nn \g_@@_fontset_tl {#1} }
- { \tl_gset:Nn \g_@@_fontset_tl {#2} }
- }
-\str_const:Nn \c_@@_macosx_file_str { /Library/Fonts/Songti.ttc }
-%</xetex|pdftex|uptex>
-% \end{macrocode}
-% \end{macro}
+% \changes{v2.5}{2019/10/25}{æ“作系统检测移动至载入中文字库处,且ä¸å†éœ€è¦
+% ä¾èµ–特定引擎。}
%
% \subsubsection{\pkg{hyperref} 兼容性处ç†}
%
@@ -6113,11 +6369,11 @@ Copyright and Licence
%<*class|ctex>
\@ifpackageloaded { hyperref }
{
- \cs_new_protected_nopar:Npn \ctex_hypersetup:n #1
+ \cs_new_protected:Npn \ctex_hypersetup:n #1
{ \hypersetup {#1} }
}
{
- \cs_new_protected_nopar:Npn \ctex_hypersetup:n #1
+ \cs_new_protected:Npn \ctex_hypersetup:n #1
{ \PassOptionsToPackage {#1} { hyperref } }
}
%</class|ctex>
@@ -6125,14 +6381,14 @@ Copyright and Licence
% \end{macro}
%
% 在 \pdfTeX{} 下使用 \texttt{GBK} ç¼–ç ï¼Œ\dvipdfmx{} 驱动å¯ä»¥ç›´æŽ¥ç”¨å®ƒçš„
-% \tn{special} 命令,其它模å¼ç”¨ \pkg{xCJK2uni} å®åŒ…处ç†ã€‚使用 \texttt{UTF-8} ç¼–
+% \tn{special} 命令,其他模å¼ç”¨ \pkg{xCJK2uni} å®åŒ…处ç†ã€‚使用 \texttt{UTF-8} ç¼–
% ç æ—¶ï¼Œ\pkg{CJKutf8} å·²ç»å¤„ç†äº†ä¹¦ç­¾é—®é¢˜ï¼Œä½†ä»éœ€è¦è®¾ç½® \opt{pdfencoding} 为
% \opt{unicode},目的是在书签的开头写入 BOM (|\376\377|),æ示这是
% \texttt{UTF-16BE} 字节æµã€‚
% \begin{macrocode}
%<*pdftex>
\ctex_hypersetup:n { driverfallback = dvipdfmx }
-\str_if_eq:onTF { \l_@@_encoding_tl } { GBK }
+\str_if_eq:onTF { \g_@@_encoding_tl } { GBK }
{
\ctex_hypersetup:n { CJKbookmarks = true }
\sys_if_output_pdf:TF
@@ -6205,7 +6461,7 @@ Copyright and Licence
%<*uptex|aptex>
\ctex_hypersetup:n { driverfallback = dvipdfmx }
\ctex_at_end_package:nn { hyperref }
- { \AtBeginShipoutFirst { \special { pdf:tounicode~ UTF8-UTF16 } } }
+ { \AtBeginShipoutFirst { \special { pdf:tounicode~UTF8-UTF16 } } }
%</uptex|aptex>
% \end{macrocode}
%
@@ -6215,83 +6471,46 @@ Copyright and Licence
%
% \subsubsection{\pkg{CJKfntef}ã€\pkg{xeCJKfntef} 相关设置}
%
-% \CTeX{} å®é›†å¯¹ \pdfTeX{} 与 \XeTeX{} 引擎,分别载入 \pkg{CJKfntef} 或
-% \pkg{xeCJKfntef} å®åŒ…,并关闭å®åŒ…默认的彩色等多余格å¼ã€‚
-%
% \changes{v2.0}{2015/03/25}{默认关闭 \pkg{CJKfntef} 或 \pkg{xeCJKfntef} 的彩
% 色设置。}
-% \changes{v2.0}{2015/03/25}{\tn{CTEXunderdot}, \tn{CTEXunderline},
-% \tn{CTEXunderdblline}, \tn{CTEXunderwave}, \tn{CTEXsout}, \tn{CTEXxout} 是过
+% \changes{v2.0}{2015/03/25}{\tn{CTEXunderdot}ã€\tn{CTEXunderline}ã€
+% \tn{CTEXunderdblline}ã€\tn{CTEXunderwave}ã€\tn{CTEXsout}ã€\tn{CTEXxout} 是过
% 时命令;\env{CTEXfilltwosides} 是过时环境。}
+% \changes{v2.5}{2019/11/10}{ä¸å†è‡ªåŠ¨è½½å…¥ \pkg{CJKfntef} 或 \pkg{xeCJKfntef} å®åŒ…。}
+% \changes{v2.5}{2019/11/10}{移除 \tn{CTEXunderdot}ã€\tn{CTEXunderline}ã€
+% \tn{CTEXunderdblline}ã€\tn{CTEXunderwave}ã€\tn{CTEXsout}ã€\tn{CTEXxout}ã€
+% \env{CTEXfilltwosides} 等命令和环境。}
%
-% 载入 \pkg{CJKfntef} 或 \pkg{xeCJKfntef} 并åšé€‚当格å¼è®¾ç½®ã€‚有关 |\CTEX| 开头
-% çš„å®å®šä¹‰æ˜¯è¿‡æ—¶å‘½ä»¤ï¼Œä»…åšå…¼å®¹æ€§ä¿ç•™ã€‚
+% 对 \pdfTeX{} 与 \XeTeX{} 引擎,分别在 \pkg{CJKfntef}ã€\pkg{xeCJKfntef} å®åŒ…
+% 的末尾关闭彩色显å¼ç­‰å¤šä½™æ ¼å¼ã€‚
%
% \begin{macrocode}
%<*pdftex>
-\RequirePackage { CJKfntef }
-\normalem
-\cs_new_protected_nopar:Npn \@@_clear_fntef_color:n #1
- { \tl_clear:c { CJK#1color } }
-%</pdftex>
-%<*xetex>
-\RequirePackage { xeCJKfntef }
-\@ifpackagelater { xeCJKfntef } { 2014/11/04 }
+\ctex_at_end_package:nn { CJKfntef }
{
- \cs_new_protected_nopar:Npn \@@_clear_fntef_color:n #1
- { \xeCJKsetup { #1 / format = { } } }
- }
- {
- \cs_new_protected_nopar:Npn \@@_clear_fntef_color:n #1
+ \normalem
+ \cs_new_protected:Npn \@@_clear_fntef_color:n #1
{ \tl_clear:c { CJK#1color } }
- }
-%</xetex>
-%<*luatex|uptex|aptex>
-\msg_new:nnn { ctex } { fntef-not-available }
-%<luatex> { Functions~ of~ `CJKfntef'~ is~ not~ available~ in~ LuaLaTeX. }
-%<uptex> { Functions~ of~ `CJKfntef'~ is~ not~ available~ in~ upLaTeX. }
-%<aptex> { Functions~ of~ `CJKfntef'~ is~ not~ available~ in~ ApLaTeX. }
-\msg_warning:nn { ctex } { fntef-not-available }
-%</luatex|uptex|aptex>
-\clist_map_inline:nn
- { underdot , underline , underdblline , underwave , sout , xout }
-%<*pdftex|xetex>
+%</pdftex>
+%<*xetex>
+\ctex_at_end_package:nn { xeCJKfntef }
{
- \@@_clear_fntef_color:n {#1}
- \cs_new_protected_nopar:cpx { CTEX#1 }
+ \@ifpackagelater { xeCJKfntef } { 2014/11/04 }
{
- \msg_warning:nnnn { ctex } { deprecated-command } { \exp_not:c { CTEX#1 } }
- { You~ can~ use~ the~ command~ with~ prefix~ \exp_not:N \CJK~ instead. }
- \exp_not:c { CJK#1 }
+ \cs_new_protected:Npn \@@_clear_fntef_color:n #1
+ { \xeCJKsetup { #1 / format = { } } }
}
+ {
+ \cs_new_protected:Npn \@@_clear_fntef_color:n #1
+ { \tl_clear:c { CJK#1color } }
+ }
+%</xetex>
+%<*pdftex|xetex>
+ \clist_map_inline:nn
+ { underdot , underline , underdblline , underwave , sout , xout }
+ { \@@_clear_fntef_color:n {#1} }
}
-\cs_new_protected_nopar:Npn { \CTEXfilltwosides }
- {
- \msg_warning:nnnn { ctex } { deprecated-environment } { CTEXfilltwosides }
- { You~ can~ use~ `CJKfilltwosides'~ environment~ instead. }
- \CJKfilltwosides
- }
-\cs_new_protected_nopar:Npn { \endCTEXfilltwosides } { \endCJKfilltwosides }
%</pdftex|xetex>
-%<*luatex|uptex|aptex>
- { \cs_new_eq:cN { CTEX#1 } \use:n }
-\cs_new_eq:NN \CTEXfilltwosides \use_none:n
-\cs_new_eq:NN \endCTEXfilltwosides \prg_do_nothing:
-%</luatex|uptex|aptex>
-%<*pdftex>
-\clist_map_inline:nn
- {
- underdotbasesep , underdotsep , underlinebasesep ,
- underlinesep , underdbllinesep , underdbllinebasesep ,
- underwavebasesep , underwavesep , southeight ,
- underdotcolor , underwavecolor , underlinecolor ,
- underdbllinecolor , soutcolor , xoutcolor
- }
- {
- \cs_new_eq:cc { CTEX#1 } { CJK#1 }
- \cs_set_nopar:cpx { CJK#1 } { \exp_not:c { CTEX#1 } }
- }
-%</pdftex>
% \end{macrocode}
%
% \subsubsection{\tn{ccwd} çš„æ›´æ–°}
@@ -6299,7 +6518,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_update_ccwd:,\ccwd}
% \changes{v2.4.1}{2016/04/29}{正确设置 \upTeX{} 下的 \tn{ccwd}。}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_update_ccwd:
+\cs_new_protected:Npn \ctex_update_ccwd:
%<*pdftex|xetex>
{
\hbox_set:Nn \l_@@_tmp_box { \CJKglue }
@@ -6319,10 +6538,10 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_update_ccglue:}
% æ›´æ–°å­—é—´è·ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_update_ccglue:
+\cs_new_protected:Npn \ctex_update_ccglue:
%<*pdftex|xetex>
{
- \cs_set_protected_nopar:Npn \CJKglue
+ \cs_set_protected:Npn \CJKglue
{ \skip_horizontal:N \l_@@_ccglue_skip }
}
%</pdftex|xetex>
@@ -6354,13 +6573,7 @@ Copyright and Licence
{ \prg_return_false: } { \prg_return_true: }
%</uptex|aptex>
}
-% \end{macrocode}
-% 注æ„下é¢çš„标记ä¸èƒ½ç”¨ \verb"%<pdftex|xetex>",它会导致旧版本的 \pkg{l3docstrip}
-% ä¸èƒ½æ›¿æ¢ \texttt{@@}。
-% \begin{macrocode}
-%<*pdftex|xetex>
-\ctex_at_end:n { \cs_new_eq:NN \@@_ccglue: \CJKglue }
-%</pdftex|xetex>
+%<pdftex|xetex>\ctex_at_end:n { \cs_new_eq:NN \@@_ccglue: \CJKglue }
% \end{macrocode}
% \end{macro}
%
@@ -6374,27 +6587,29 @@ Copyright and Licence
% æ„义。在 \LuaTeX{} 下,\pkg{LuaTeX-ja} 总是按照 JFM 中的设置输出汉字的宽度,å¯ä»¥
% 直接用 \tn{zw} 作为汉字宽度。\upTeX{} å¯ä»¥ç›´æŽ¥ä½¿ç”¨åŽŸç”Ÿçš„长度å•ä½ |zw|。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_update_em_unit:
+\cs_new_protected:Npn \ctex_update_em_unit:
%<pdftex|xetex> { \dim_set:Nn \ccwd { \f@size \p@ } }
%<luatex> { \dim_set:Nn \ccwd { \zw } }
%<uptex|aptex> { \dim_set:Nn \ccwd { 1zw } }
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{其它}
+% \subsubsection{其他}
%
+% \begin{macro}[int]{\ctex_add_to_selectfont:n,\CTEX@selectfont@hook}
% \changes{v2.4.13}{2018/03/23}{修正导言区 \tn{selectfont} é’©å­ä½ç½®ã€‚}
+% \changes{v2.5}{2020/04/19}{兼容 \pkg{KOMA-Script} çš„ \tn{selectfont} è¡¥ä¸ã€‚}
%
-% \begin{macro}[int]{\ctex_add_to_selectfont:n,\CTEX@selectfont@hook}
% \tn{EverySelectfont} 直到文档开始时æ‰æœ‰æ•ˆã€‚为了 \tn{ccwd} å’Œ \pkg{LuaTeX-ja} çš„
% 字体设置在导言区也å¯ç”¨ï¼Œæˆ‘们还需è¦åœ¨è¿™é‡Œæ‰‹å·¥ä¿®æ”¹ \tn{selectfont}。\pkg{everysel}
% å®åŒ…会用 \tn{CheckCommand} æ¥æ£€æŸ¥ \tn{selectfont} 是å¦ä¸ºæ ‡å‡†å®šä¹‰ã€‚我们修改了
% \tn{selectfont},所以会给出一个警告。为了消除这个警告,在它检查之å‰ï¼Œè¿˜åŽŸæœ¬æ¥
% 定义。\pkg{pxeverysel} å®åŒ…å–消了检查,但也需è¦æ¢å¤å®šä¹‰ï¼Œé¿å…é‡å¤ä½¿ç”¨é’©å­ã€‚
+% \pkg{KOMA-Script} å®åŒ…也会进行检查,我们需è¦å°å¿ƒå¤„ç†ã€‚
% \begin{macrocode}
\cs_new_protected:Npn \ctex_add_to_selectfont:n #1
{
- \cs_set_protected_nopar:Npx \CTEX@selectfont@hook
+ \cs_set_protected:Npx \CTEX@selectfont@hook
{ \exp_not:o { \CTEX@selectfont@hook #1 } }
}
\cs_new_eq:NN \CTEX@selectfont@hook \prg_do_nothing:
@@ -6404,10 +6619,32 @@ Copyright and Licence
{
\tl_set:Nn \l_@@_tmp_tl {#1}
\cs_new_eq:NN \CTEX@selectfont@save #1
- \cs_new_protected_nopar:Npn \@@_restore_selectfont:
+ \cs_new_protected:Npn \@@_restore_selectfont:
{
+ \cs_if_free:NF \scr@new@selectfont
+ {
+% \end{macrocode}
+% \pkg{CJK} 直接修改 \tn{selectfont} å’Œ \pkg{pxeverysel} çš„è¡¥ä¸ï¼Œ
+% 会使 \pkg{KOMA-Script} 的 \tn{par@update} 失效。
+% \begin{macrocode}
+%<*pdftex|uptex|aptex>
+ \cs_if_free:NF \par@update
+%<*uptex|aptex>
+ {
+ \tl_put_right:Nn \@EverySelectfont@Init
+ { \tl_put_right:Nn #1 { \par@update } }
+ }
+%</uptex|aptex>
+%<*pdftex>
+ { \tl_put_right:Nn #1 { \par@update } }
+ \cs_set_eq:NN \scr@selectfont \CTEX@selectfont@save
+%</pdftex>
+%</pdftex|uptex|aptex>
+ \cs_set_eq:NN \scr@new@selectfont #1
+%<!pdftex> \cs_set_eq:NN \CTEX@selectfont@save \scr@selectfont
+ }
\tl_put_left:Nn \@EverySelectfont@Init
- { \let #1 \CTEX@selectfont@save }
+ { \cs_set_eq:NN #1 \CTEX@selectfont@save }
\cs_undefine:N \@@_restore_selectfont:
}
}
@@ -6458,7 +6695,7 @@ Copyright and Licence
% 全段。
% \begin{macrocode}
%<*luatex|uptex|aptex>
-\cs_new_protected_nopar:Npn \ctex_update_xkanjiskip:
+\cs_new_protected:Npn \ctex_update_xkanjiskip:
{
\skip_if_eq:nnT
%<luatex> { \ltjgetparameter { xkanjiskip } } { \l_@@_xkanjiskip_skip }
@@ -6488,35 +6725,34 @@ Copyright and Licence
%
% \changes{v2.4.10}{2017/07/23}{定义 \tn{cht},\tn{cdp} 和 \tn{cwd}。}
%
-% \begin{macro}[int]{\cht,\cdp,\cwd}
+% \begin{macro}[int]{\cht,\cdp,\cwd,\ctex_update_kanjisize:}
% 分别从 \file{.jfm} 中读å–字符高度ã€æ·±åº¦å’Œå®½åº¦ï¼Œç›®å‰ä»…考虑横排的情况。
% \begin{macrocode}
%<*luatex>
\dim_new:N \cht
\dim_new:N \cdp
\dim_new:N \cwd
-\newluafunction \g_@@_kanjisize_func
\group_begin:
\char_set_catcode_space:n { 32 }
\lua_now:e
{
local nulltable = { }
- local t = lua.get_functions_table()
local fmt = luatexja.jfont.font_metric_table
local getattribute = tex.getattribute
local setdimen = tex.setdimen
- t[\int_use:N \g_@@_kanjisize_func] = function ()
- local ft = fmt[getattribute('ltj@curjfnt')] or nulltable
+ local func = lua.get_functions_table()
+ local id = luatexbase.new_luafunction("ctex")
+ func[id] = function ()
+ local ft = fmt[getattribute("ltj@curjfnt")] or nulltable
local ft = ft and ft.char_type or nulltable
local fk = ft and ft[0] or nulltable
- setdimen('cht', fk.height or 0)
- setdimen('cdp', fk.depth or 0)
- setdimen('cwd', fk.width or ft.zw or 0)
+ setdimen("cht", fk.height or 0)
+ setdimen("cdp", fk.depth or 0)
+ setdimen("cwd", fk.width or ft.zw or 0)
end
+ token.set_lua("ctex_update_kanjisize:", id, "global", "protected")
}
\group_end:
-\cs_new_protected_nopar:Npn \ctex_update_kanjisize:
- { \tex_luafunction:D \g_@@_kanjisize_func }
\ctex_add_to_selectfont:n { \ctex_update_kanjisize: }
%</luatex>
% \end{macrocode}
@@ -6527,7 +6763,7 @@ Copyright and Licence
% \pdfTeX{} å’Œ \XeTeX{} 下åˆå§‹è®¾ç½®ä¸º \opt{auto},\LuaTeX{}ã€\upTeX{} 下是无效
% 选项。
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
%<*pdftex|xetex>
space .choice: ,
@@ -6555,11 +6791,11 @@ Copyright and Licence
% 在导言区或正文中设置标点符å·è¾“出格å¼ã€‚\pkg{LuaTeX-ja} 设置的是字体的默认 \texttt{JFM},
% åªä¼šå½±å“到之åŽè®¾ç½®çš„字体。\upTeX{} 暂时无效。
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
punct .code:n =
{
- \tl_set:Nx \l_@@_punct_tl { #1 }
+ \tl_set:Nx \l_@@_punct_tl {#1}
%<pdftex> \punctstyle { \l_@@_punct_tl }
%<xetex> \xeCJKsetup { PunctStyle = \l_@@_punct_tl }
%<luatex> \ctex_mono_jfm:o { \l_@@_punct_tl }
@@ -6570,13 +6806,6 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \XeLaTeX{}ã€\LuaLaTeX{} å’Œ \upLaTeX{} 总是使用 \texttt{UTF8} ç¼–ç ã€‚
-% \begin{macrocode}
-%<*xetex|luatex|uptex|aptex>
-\tl_set:Nn \l_@@_encoding_tl { UTF8 }
-%</xetex|luatex|uptex|aptex>
-% \end{macrocode}
-%
% \begin{macrocode}
%</pdftex|xetex|luatex|uptex|aptex>
% \end{macrocode}
@@ -6597,27 +6826,35 @@ Copyright and Licence
% \begin{macro}{\ctexset}
% \begin{macrocode}
%<*class|ctex|ctexheading>
-\NewDocumentCommand \ctexset { } { \keys_set:nn { ctex } }
+\NewDocumentCommand \ctexset { } { \ctex_set:n }
%</class|ctex|ctexheading>
% \end{macrocode}
% \end{macro}
%
% \changes{v2.0}{2015/03/21}{\tn{CTEXsetup}, \tn{CTEXoptions} 是过时命令。}
% \begin{macro}{\CTEXsetup,\CTEXoptions}
-% 过时命令。出于历å²åŽŸå› ï¼Œ\tn{CTEXoptions} 需è¦åœ¨ \pkg{pxeverysel} å®åŒ…之åŽå®šä¹‰ã€‚
+% 过时命令。
% \begin{macrocode}
%<*class|ctex>
-\NewDocumentCommand \CTEXsetup { +o > { \TrimSpaces } m }
+\NewDocumentCommand \CTEXsetup { +O { } > { \TrimSpaces } m }
{
- \msg_warning:nnnn { ctex } { deprecated-command } { \CTEXsetup }
- { \ctexset~ {~ #2~ =~ {~ #1~ }~ }~ is~ set. }
- \IfNoValueF {#1} { \keys_set:nn { ctex / #2 } {#1} }
+ \tl_if_blank:nTF {#1}
+ { \ctex_deprecated_command:Nn \CTEXsetup { } }
+ {
+ \ctex_deprecated_command:Nn \CTEXsetup
+ { \ctexset {~#2~=~{~#1~}~}~is~set. }
+ \ctex_set:nn {#2} {#1}
+ }
}
-\NewDocumentCommand \CTEXoptions { +o }
+\NewDocumentCommand \CTEXoptions { +O { } }
{
- \msg_warning:nnnn { ctex } { deprecated-command } { \CTEXoptions }
- { \ctexset~ {~ #1~ }~ is~ set. }
- \IfNoValueF {#1} { \keys_set:nn { ctex } {#1} }
+ \tl_if_blank:nTF {#1}
+ { \ctex_deprecated_command:Nn \CTEXoptions { } }
+ {
+ \ctex_deprecated_command:Nn \CTEXoptions
+ { \ctexset {~#1~}~is~set. }
+ \ctex_set:n {#1}
+ }
}
% \end{macrocode}
% \end{macro}
@@ -6627,7 +6864,7 @@ Copyright and Licence
% \begin{macro}{autoindent}
% \opt{autoindent} 也是å¯ä»¥ç”¨åœ¨æ­£æ–‡ä¸­çš„选项,æ„义与å®åŒ…选项 |option/autoindent| 相åŒã€‚
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
autoindent .choice: ,
autoindent .default:n = { true } ,
@@ -6651,7 +6888,7 @@ Copyright and Licence
% 无论字体大å°æ˜¯å¦å˜åŒ–都更新相关信æ¯ã€‚
% \begin{macrocode}
\NewDocumentCommand \CTEXsetfont { } { \ctex_select_size: }
-\cs_new_protected_nopar:Npn \ctex_select_size:
+\cs_new_protected:Npn \ctex_select_size:
{ \cs_if_free:NTF \size@update { \ctex_update_size: } { \selectfont } }
% \end{macrocode}
% \end{macro}
@@ -6659,7 +6896,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_update_size:}
% 在字å·å˜åŒ–时更新 \tn{ccwd}ã€\tn{parindent} 和汉字间è·ã€‚å­—è·ä¸ºé›¶åˆ™æ¢å¤æ­£å¸¸è®¾ç½®ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_update_size:
+\cs_new_protected:Npn \ctex_update_size:
{
\tl_if_eq:NNTF \l_@@_ziju_tl \c_@@_zero_tl
{
@@ -6687,7 +6924,7 @@ Copyright and Licence
% é¢å¤–伸展é‡ã€‚åˆå§‹åŒ–为一个汉字的宽度。若设置为 \tn{maxdimen},则ç¦ç”¨æ­¤åŠŸèƒ½ã€‚
% å‚数的默认å•ä½æ˜¯æ±‰å­—的宽度 \tn{ccwd}。
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
linestretch .code:n =
{
@@ -6710,7 +6947,7 @@ Copyright and Licence
% \tn{ccwd},å¦åˆ™è®¾ç½®ä¼¸å±•é‡ä¸º $0.08$ å€ \tn{baselineskip}ã€‚æ³¨æ„ \pkg{everysel} çš„
% é’©å­ä½äºŽ \tn{size@update} 之å‰ï¼Œ\tn{baselineskip} 还未更新,ä¸èƒ½ç›´æŽ¥ä½¿ç”¨å®ƒã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_update_stretch:
+\cs_new_protected:Npn \ctex_update_stretch:
{
\ctex_update_em_unit:
\dim_set:Nn \l_@@_tmp_dim { \l_@@_line_stretch_tl }
@@ -6751,7 +6988,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_update_parindent:}
% 更新段è½é¦–行缩进。此函数在字å·å˜åŒ–时调用。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_update_parindent:
+\cs_new_protected:Npn \ctex_update_parindent:
{
\tl_if_empty:NF \l_@@_autoindent_tl
{
@@ -6767,7 +7004,7 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentCommand \ziju { m }
{ \exp_args:Nx \ctex_ziju:n {#1} \tex_ignorespaces:D }
-\cs_new_protected_nopar:Npn \ctex_ziju:n #1
+\cs_new_protected:Npn \ctex_ziju:n #1
{
\tl_set:Nx \l_@@_ziju_tl { \fp_eval:n {#1} }
\ctex_select_size:
@@ -6779,7 +7016,7 @@ Copyright and Licence
% æ›´æ–°å­—è·ã€‚若字è·ä¸å¤§äºŽ $-1$ï¼Œå³ \tn{ccwd} 为éžæ­£å€¼ï¼Œåˆ™ä¸è®¡ç®—伸缩值。
% å¦åˆ™ï¼Œé¦–å…ˆå‡å®šæ±‰å­—的宽度为正常宽度加上字è·ï¼Œçœ‹ä¸€è¡Œä¸Šèƒ½æ­£å¸¸æ”¾ä¸‹å¤šå°‘个汉字。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_update_ziju:
+\cs_new_protected:Npn \ctex_update_ziju:
{
\ctex_update_em_unit:
\dim_set:Nn \l_@@_ziju_dim { \l_@@_ziju_tl \ccwd }
@@ -6832,14 +7069,15 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentCommand \CTEXindent { }
{
- \msg_warning:nnnn { ctex } { deprecated-command } { \CTEXindent }
- { \parindent is~ set~ to~ 2\ccwd. }
- \ctex_update_ccwd: \dim_set:Nn \parindent { 2 \ccwd }
+ \ctex_deprecated_command:Nn \CTEXindent
+ { \parindent is~set~to~2\ccwd. }
+ \ctex_update_ccwd:
+ \dim_set:Nn \parindent { 2 \ccwd }
}
\NewDocumentCommand \CTEXnoindent { }
{
- \msg_warning:nnnn { ctex } { deprecated-command } { \CTEXnoindent }
- { \parindent is~ set~ to~ 0pt. }
+ \ctex_deprecated_command:Nn \CTEXnoindent
+ { \parindent is~set~to~0pt. }
\dim_zero:N \parindent
}
% \end{macrocode}
@@ -6848,14 +7086,14 @@ Copyright and Licence
% \subsection{中文数字与日期}
%
% \begin{macrocode}
-\PassOptionsToPackage { encoding = \l_@@_encoding_tl } { zhnumber }
+\PassOptionsToPackage { encoding = \g_@@_encoding_tl } { zhnumber }
\RequirePackage { zhnumber }
% \end{macrocode}
%
% \begin{macro}{\chinese}
% \changes{v2.4.1}{2016/05/01}{æ”¯æŒ \tn{pagenumbering}。}
% \begin{macrocode}
-\cs_new_nopar:Npn \chinese { \zhnum_counter:n }
+\cs_new:Npn \chinese { \zhnum_counter:n }
\cs_new_eq:NN \@chinese \@zhnum
\cs_new_eq:NN \Chinese \chinese
\cs_new_eq:NN \CTEXcounter \use_none:n
@@ -6890,7 +7128,7 @@ Copyright and Licence
% \begin{macro}{today}
% \begin{macrocode}
\cs_set_eq:NN \CTEX@todayold \today
-\keys_define:nn { ctex }
+\ctex_define:n
{
today .choice: ,
today / old .code:n =
@@ -6914,7 +7152,7 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \subsection{其它中文标题定义}
+% \subsection{其他中文标题定义}
%
% \changes{v2.0}{2014/03/08}{将标题汉化功能加入 \pkg{ctex.sty}。}
% \changes{v2.4.3}{2016/08/18}{ç¡®ä¿ \tn{proofname} éžç©ºã€‚}
@@ -6931,7 +7169,7 @@ Copyright and Licence
% \end{macro}
%
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
contentsname .tl_set:N = \contentsname ,
listfigurename .tl_set:N = \listfigurename ,
@@ -6962,7 +7200,7 @@ Copyright and Licence
}
\tl_if_exist:NTF \insertcontinuationtext
{
- \keys_define:nn { ctex }
+ \ctex_define:n
{
algorithmname .tl_set:N = \algorithmname ,
bibname .tl_set:N = \bibname ,
@@ -6972,13 +7210,13 @@ Copyright and Licence
}
{
\tl_if_exist:NTF \bibname
- { \keys_define:nn { ctex } { bibname .tl_set:N = \bibname } }
+ { \ctex_define:n { bibname .tl_set:N = \bibname } }
{
\tl_if_exist:NTF \refname
- { \keys_define:nn { ctex } { bibname .tl_set:N = \refname } }
+ { \ctex_define:n { bibname .tl_set:N = \refname } }
{
\msg_warning:nn { ctex } { ctexbibname }
- \keys_define:nn { ctex } { bibname .tl_set:N = \ctexbibname }
+ \ctex_define:n { bibname .tl_set:N = \ctexbibname }
}
}
}
@@ -7028,7 +7266,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_initial_heading:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_initial_heading:n #1
+\cs_new_protected:Npn \@@_initial_heading:n #1
{
\tl_new:c { CTEX@pre#1 }
\tl_new:c { CTEX@post#1 }
@@ -7078,7 +7316,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_def_heading_keys:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_def_heading_keys:n #1
+\cs_new_protected:Npn \@@_def_heading_keys:n #1
{
\tl_put_right:Nx \l_@@_tmp_tl
{
@@ -7103,11 +7341,8 @@ Copyright and Licence
#1 / hang .bool_set:N = \exp_not:c { CTEX@#1@hang } ,
#1 / hang .initial:n = true ,
#1 / runin .bool_set:N = \exp_not:c { CTEX@#1@runin } ,
- #1 / tocline .code:n =
- {
- \cs_set:Npn \exp_not:c { CTEX@#1@tocline}
- \exp_not:n { ####1####2 } { ####1 }
- } ,
+ #1 / tocline .cs_set:Np = \exp_not:c { CTEX@#1@tocline}
+ \exp_not:n { ##1##2 } ,
\@@_plus_key_aux:nn {#1} { break } ,
%</article|book|report>
\@@_plus_key_aux:nn {#1} { format } ,
@@ -7118,7 +7353,7 @@ Copyright and Licence
\@@_plus_key_aux:nn {#1} { aftertitle } ,
}
}
-\cs_new_nopar:Npn \@@_plus_key_aux:nn #1#2
+\cs_new:Npn \@@_plus_key_aux:nn #1#2
{
#1 / #2 .tl_set:N = \exp_not:c { CTEX@#1@#2 } ,
#1 / #2 + .code:n =
@@ -7143,7 +7378,7 @@ Copyright and Licence
\cs_new_protected:Npn \@@_assign_heading_name:nnn #1#2#3
{
\tl_set:cn { CTEX@pre#1 } {#2}
- \IfNoValueTF {#3}
+ \tl_if_novalue:nTF {#3}
{ \tl_clear:c { CTEX@post#1 } }
{ \tl_set:cn { CTEX@post#1 } {#3} }
}
@@ -7189,24 +7424,54 @@ Copyright and Licence
\@@_initial_heading:n {#1}
\@@_def_heading_keys:n {#1}
}
-\use:x
+\exp_args:NNo \group_end: \ctex_define:n { \l_@@_tmp_tl }
+% \end{macrocode}
+%
+% \changes{v2.5}{2020/04/23}{é‡æž„标题选项 \opt{indent} å’Œ \opt{hang}。}
+%
+% \begin{macro}[int]{\CTEX@heading@format@initial}
+% 标题格å¼çš„一些åˆå§‹è®¾ç½®ï¼ŒåŒ…括æ¢å¤é»˜è®¤å­—体,并ç¦ç”¨è‡ªåŠ¨è°ƒæ•´é¦–行缩进,ç¦æ­¢åœ¨æ ‡é¢˜ä¸­åˆ†é¡µã€‚
+% åŒæ—¶ç”¨ \tn{noindent} 抑制首行缩进并进入水平模å¼ã€‚
+% 统一在å„级标题的 \opt{format} 选项之å‰ä½¿ç”¨ã€‚
+% \begin{macrocode}
+\cs_new_protected:Npn \CTEX@heading@format@initial
{
- \group_end:
- \keys_define:nn { ctex } { \exp_not:o { \l_@@_tmp_tl } }
+ \normalfont
+ \tl_clear:N \l_@@_autoindent_tl
+ \int_set:Nn \tex_interlinepenalty:D { 10 000 }
+ \tex_noindent:D
}
% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}[int]{\ctex_indent_box:n}
+% 设置 \tn{parindent},并æ’入用于产生缩进的盒å­ï¼Œå¦‚果缩进为 |0|,就ä¸æ’入。
% \begin{macrocode}
-%<*article|book|report>
+\cs_new_protected:Npn \ctex_indent_box:n #1
+ {
+ \dim_set:Nn \tex_parindent:D {#1}
+ \@@_insert_indent:
+ }
+\cs_new_protected:Npn \@@_insert_indent:
+ {
+ \dim_compare:nNnF \tex_parindent:D = \c_zero_dim
+ { \tex_indent:D }
+ }
+\cs_new_eq:NN \CTEX@indentbox \ctex_indent_box:n
% \end{macrocode}
+% \end{macro}
%
% \subsubsection{标准标题命令的修改}
%
+% \begin{macrocode}
+%<*article|book|report>
+% \end{macrocode}
+%
% \begin{macro}[int]{\CTEX@fixtopskip}
% 修正 \cls{book} å’Œ \cls{report} 类的 \tn{part} å’Œ \tn{chapter} 标题之å‰çš„多余空行。
% \begin{macrocode}
%<*book|report>
-\cs_new_protected_nopar:Npn \CTEX@fixtopskip
+\cs_new_protected:Npn \CTEX@fixtopskip
{
\CTEX@fixheadingskip
\dim_compare:nNnF \tex_pagegoal:D < \c_max_dim
@@ -7222,14 +7487,14 @@ Copyright and Licence
% \TeX{} å°±ä¸ä¼šåŠ ä¸Š \tn{parskip}。这时候就需è¦ç”¨æˆ·æŠŠ \tn{parskip} 加到 \opt{beforeskip}
% 或者 \opt{afterskip} 作为修正。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CTEX@fixheadingskip
+\cs_new_protected:Npn \CTEX@fixheadingskip
{
\par
\dim_set:Nn \tex_prevdepth:D { -1000pt }
\skip_sub:Nn \l_@@_heading_skip { \tex_parskip:D }
}
\skip_new:N \l_@@_heading_skip
-\cs_new_protected_nopar:Npn \CTEX@setheadingskip
+\cs_new_protected:Npn \CTEX@setheadingskip
{ \skip_set:Nn \l_@@_heading_skip }
\cs_new_eq:NN \CTEX@headingskip \l_@@_heading_skip
% \end{macrocode}
@@ -7251,9 +7516,9 @@ Copyright and Licence
% 用于判断当å‰æ ‡é¢˜æ˜¯å¦æœ‰ç¼–å·ã€‚
% \begin{macrocode}
\cs_new_eq:NN \CTEXifname \use_ii:nn
-\cs_new_protected_nopar:Npn \CTEX@ifnametrue
+\cs_new_protected:Npn \CTEX@ifnametrue
{ \cs_set_eq:NN \CTEXifname \use_i:nn }
-\cs_new_protected_nopar:Npn \CTEX@ifnamefalse
+\cs_new_protected:Npn \CTEX@ifnamefalse
{ \cs_set_eq:NN \CTEXifname \use_ii:nn }
% \end{macrocode}
% \end{macro}
@@ -7263,7 +7528,7 @@ Copyright and Licence
% å¾€æ’图和表格目录中加入é¢å¤–é—´è·ã€‚如果间è·ä¸ºé›¶ï¼Œåˆ™ä¸åŠ å…¥ã€‚
% \begin{macrocode}
%<*book|report>
-\cs_new_protected_nopar:Npn \CTEX@addloflotskip #1
+\cs_new_protected:Npn \CTEX@addloflotskip #1
{
\skip_set:Nn \l_@@_heading_skip { \use:c { CTEX@#1@lofskip } }
\skip_if_eq:nnF { \l_@@_heading_skip } { \c_zero_skip }
@@ -7289,14 +7554,6 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\CTEX@disableautoindent}
-% ç¦ç”¨è‡ªåŠ¨è°ƒæ•´é¦–行缩进。
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CTEX@disableautoindent
- { \tl_clear:N \l_@@_autoindent_tl }
-% \end{macrocode}
-% \end{macro}
-%
% \changes{v2.2}{2015/06/27}{\opt{beforeskip}ã€\opt{afterskip} å’Œ \opt{indent}
% 选项支æŒè¡¨è¾¾å¼ã€‚}
% \changes{v2.4.15}{2019/03/31}{修正 \opt{part/indent} 和 \opt{chapter/indent} 的实现方法。}
@@ -7304,11 +7561,9 @@ Copyright and Licence
% \changes{v2.4.16}{2019/05/11}{修正 \opt{part/indent} 和 \opt{chapter/indent}
% 的实现方法,在其标题内部ç¦ç”¨ \opt{autoindent}。}
%
-% \paragraph{part 的标题}
+% \changes{v2.5}{2020/04/22}{标题选项 \opt{format} 也å¯ä»¥æŽ¥å—å‚数。}
%
-% \begin{macrocode}
-%<@@=>
-% \end{macrocode}
+% \paragraph{part 的标题}
%
% \changes{v2.2}{2015/06/27}{éž \cls{ctexart} 类的 \opt{part/beforeskip} å’Œ
% \opt{part/afterskip} 选项有æ„义。}
@@ -7317,19 +7572,19 @@ Copyright and Licence
% \begin{macrocode}
%<*article>
\renewcommand\part{%
- \if@noskipsec \leavevmode \fi
- \par
- \CTEX@part@break
-% \addvspace{4ex}%
- \CTEX@setheadingskip \CTEX@part@beforeskip
- \ifodd \CTEX@part@fixskip \CTEX@fixheadingskip \fi
- \addvspace \CTEX@headingskip
- \ifodd \CTEX@part@afterindent
- \@afterindenttrue
- \else
- \@afterindentfalse
- \fi
- \secdef\@part\@spart}
+ \if@noskipsec \leavevmode \fi
+ \par
+ \CTEX@part@break
+% \addvspace{4ex}%
+ \CTEX@setheadingskip \CTEX@part@beforeskip
+ \ifodd \CTEX@part@fixskip \CTEX@fixheadingskip \fi
+ \addvspace \CTEX@headingskip
+ \ifodd \CTEX@part@afterindent
+ \@afterindenttrue
+ \else
+ \@afterindentfalse
+ \fi
+ \secdef\@part\@spart}
%</article>
%<*book|report>
\renewcommand\part{%
@@ -7377,20 +7632,21 @@ Copyright and Licence
\fi
\CTEX@gettitle{#1}%
\CTEX@addtocline{part}{#1}%
- {\interlinepenalty \@M
-% \normalfont \parindent \z@ \raggedright
- \CTEX@disableautoindent
- \normalfont \CTEX@part@format
-% \ifnum \c@secnumdepth >\m@ne
-% \Large\bfseries\partname\nobreakspace\thepart\par\nobreak
-% \fi
- \CTEX@hangindent{part}%
- {\CTEXifname{\CTEX@partname\CTEX@part@aftername}{}}%
-% \huge\bfseries #2%
- \CTEX@part@titleformat{#2}%
-% \markboth{}{}%
- \partmark{#1}%
- \CTEX@part@aftertitle}%
+ \partmark{#1}%
+ \begingroup
+% \parindent \z@ \raggedright \interlinepenalty \@M \normalfont
+ \CTEX@heading@format@initial
+ \CTEX@part@format{%
+% \ifnum \c@secnumdepth >\m@ne
+% \Large\bfseries\partname\nobreakspace\thepart\par\nobreak
+% \fi
+ \CTEX@headinghang{part}%
+ {\CTEXifname{\CTEX@partname\CTEX@part@aftername}{}}%
+% \huge\bfseries #2%
+ \CTEX@part@titleformat{#2}%
+% \markboth{}{}\par
+ \CTEX@part@aftertitle}\par
+ \endgroup
\nobreak
% \vskip 3ex
\CTEX@setheadingskip \CTEX@part@afterskip
@@ -7418,19 +7674,20 @@ Copyright and Licence
\CTEX@gettitle{#1}%
\CTEX@addtocline{part}{#1}%
% \markboth{}{}%
- \partmark{#1}%
- {\interlinepenalty \@M
-% \normalfont \centering
- \CTEX@disableautoindent
- \normalfont \CTEX@part@format
-% \ifnum \c@secnumdepth >-2\relax
-% \huge\bfseries\partname\nobreakspace\thepart\par\vskip 20\p@
-% \fi
- \CTEX@hangindent{part}%
- {\CTEXifname{\CTEX@partname\CTEX@part@aftername}{}}%
-% \Huge\bfseries #2\par}%
- \CTEX@part@titleformat{#2}%
- \CTEX@part@aftertitle}%
+ \partmark{#1}%
+ \begingroup
+% \centering \interlinepenalty \@M \normalfont
+ \CTEX@heading@format@initial
+ \CTEX@part@format{%
+% \ifnum \c@secnumdepth >-2\relax
+% \huge\bfseries\partname\nobreakspace\thepart\par\vskip 20\p@
+% \fi
+ \CTEX@headinghang{part}%
+ {\CTEXifname{\CTEX@partname\CTEX@part@aftername}{}}%
+% \Huge\bfseries #2\par
+ \CTEX@part@titleformat{#2}%
+ \CTEX@part@aftertitle}\par
+ \endgroup
\@endpart}
%</book|report>
% \end{macrocode}
@@ -7440,38 +7697,40 @@ Copyright and Licence
% \begin{macrocode}
%<*article>
\def\@spart#1{%
- \CTEX@ifnamefalse
- \CTEX@makeanchor@spart{part*}%
- \CTEX@gettitle{#1}%
- {\interlinepenalty \@M
-% \normalfont \parindent \z@ \raggedright
- \CTEX@disableautoindent
- \normalfont \CTEX@part@format
- \CTEX@hangindent{part}{}%
-% \huge \bfseries #1\par}%
- \CTEX@part@titleformat{#1}%
- \CTEX@part@aftertitle}%
- \nobreak
-% \vskip 3ex
- \CTEX@setheadingskip \CTEX@part@afterskip
- \ifodd \CTEX@part@fixskip \CTEX@fixheadingskip \fi
- \vskip \CTEX@headingskip
- \@afterheading}
+ \CTEX@ifnamefalse
+ \CTEX@makeanchor@spart{part*}%
+ \CTEX@gettitle{#1}%
+ \begingroup
+% \parindent \z@ \raggedright \interlinepenalty \@M \normalfont
+ \CTEX@heading@format@initial
+ \CTEX@part@format{%
+ \CTEX@headinghang{part}{}%
+% \huge \bfseries #1\par
+ \CTEX@part@titleformat{#1}%
+ \CTEX@part@aftertitle}\par
+ \endgroup
+ \nobreak
+% \vskip 3ex
+ \CTEX@setheadingskip \CTEX@part@afterskip
+ \ifodd \CTEX@part@fixskip \CTEX@fixheadingskip \fi
+ \vskip \CTEX@headingskip
+ \@afterheading}
%</article>
%<*book|report>
\def\@spart#1{%
- \CTEX@ifnamefalse
- \CTEX@makeanchor@spart{part*}%
- \CTEX@gettitle{#1}%
- {\interlinepenalty \@M
-% \normalfont \centering
- \CTEX@disableautoindent
- \normalfont \CTEX@part@format
- \CTEX@hangindent{part}{}%
-% \Huge \bfseries #1\par}%
- \CTEX@part@titleformat{#1}%
- \CTEX@part@aftertitle}%
- \@endpart}
+ \CTEX@ifnamefalse
+ \CTEX@makeanchor@spart{part*}%
+ \CTEX@gettitle{#1}%
+ \begingroup
+% \centering \interlinepenalty \@M \normalfont
+ \CTEX@heading@format@initial
+ \CTEX@part@format{%
+ \CTEX@headinghang{part}{}%
+% \Huge \bfseries #1\par%
+ \CTEX@part@titleformat{#1}%
+ \CTEX@part@aftertitle}\par
+ \endgroup
+ \@endpart}
%</book|report>
% \end{macrocode}
% \end{macro}
@@ -7480,21 +7739,21 @@ Copyright and Licence
% \begin{macrocode}
%<*book|report>
\def\@endpart{%
-% \vfil
- \CTEX@setheadingskip \CTEX@part@afterskip
- \ifodd \CTEX@part@fixskip \CTEX@fixheadingskip \fi
- \vskip \CTEX@headingskip
- \newpage
- \if@twoside
- \if@openright
- \null
- \thispagestyle{empty}%
- \newpage
- \fi
- \fi
- \if@tempswa
- \twocolumn
- \fi}
+% \vfil
+ \CTEX@setheadingskip \CTEX@part@afterskip
+ \ifodd \CTEX@part@fixskip \CTEX@fixheadingskip \fi
+ \vskip \CTEX@headingskip
+ \newpage
+ \if@twoside
+ \if@openright
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}
%</book|report>
% \end{macrocode}
% \end{macro}
@@ -7508,18 +7767,18 @@ Copyright and Licence
% \begin{macro}[int]{\chapter}
% \begin{macrocode}
\renewcommand\chapter{%
-% \if@openright\cleardoublepage\else\clearpage\fi
-% \thispagestyle{plain}%
- \CTEX@chapter@break
- \thispagestyle{\CTEX@chapter@pagestyle}%
- \global\@topnum\z@
-% \@afterindentfalse
- \ifodd \CTEX@chapter@afterindent
- \@afterindenttrue
- \else
- \@afterindentfalse
- \fi
- \secdef\@chapter\@schapter}
+% \if@openright\cleardoublepage\else\clearpage\fi
+% \thispagestyle{plain}%
+ \CTEX@chapter@break
+ \thispagestyle{\CTEX@chapter@pagestyle}%
+ \global\@topnum\z@
+% \@afterindentfalse
+ \ifodd \CTEX@chapter@afterindent
+ \@afterindenttrue
+ \else
+ \@afterindentfalse
+ \fi
+ \secdef\@chapter\@schapter}
% \end{macrocode}
% \end{macro}
%
@@ -7591,26 +7850,26 @@ Copyright and Licence
\CTEX@setheadingskip \CTEX@chapter@beforeskip
\ifodd \CTEX@chapter@fixskip \CTEX@fixtopskip \fi
\vspace*{\CTEX@headingskip}%
-% {\normalfont \parindent \z@ \raggedright
- {\CTEX@disableautoindent
- \normalfont \CTEX@chapter@format
- \interlinepenalty\@M
-% \ifnum \c@secnumdepth >\m@ne
-% \if@mainmatter
-% \huge\bfseries\@chapapp\space\thechapter\par\nobreak\vskip 20\p@
-% \fi
-% \fi
- \CTEX@hangindent{chapter}%
- {\CTEXifname{\CTEX@chaptername\CTEX@chapter@aftername}{}}%
-% \Huge \bfseries #1\par\nobreak
- \CTEX@chapter@titleformat{#1}%
- \CTEX@chapter@aftertitle
- \nobreak
+ \begingroup
+% \parindent \z@ \raggedright \normalfont
+ \CTEX@heading@format@initial
+ \CTEX@chapter@format{%
+% \ifnum \c@secnumdepth >\m@ne
+% \if@mainmatter
+% \huge\bfseries\@chapapp\space\thechapter\par\nobreak\vskip 20\p@
+% \fi
+% \fi
+ \CTEX@headinghang{chapter}%
+ {\CTEXifname{\CTEX@chaptername\CTEX@chapter@aftername}{}}%
+% \Huge \bfseries #1\par\nobreak
+ \CTEX@chapter@titleformat{#1}%
+ \CTEX@chapter@aftertitle}\par
+ \endgroup
+ \nobreak
% \vskip 40\p@
- \CTEX@setheadingskip \CTEX@chapter@afterskip
- \ifodd \CTEX@chapter@fixskip \CTEX@fixheadingskip \fi
- \vskip \CTEX@headingskip
- }}
+ \CTEX@setheadingskip \CTEX@chapter@afterskip
+ \ifodd \CTEX@chapter@fixskip \CTEX@fixheadingskip \fi
+ \vskip \CTEX@headingskip}
% \end{macrocode}
% \end{macro}
%
@@ -7621,20 +7880,20 @@ Copyright and Licence
\CTEX@setheadingskip \CTEX@chapter@beforeskip
\ifodd \CTEX@chapter@fixskip \CTEX@fixtopskip \fi
\vspace*{\CTEX@headingskip}%
-% {\normalfont \parindent \z@ \raggedright
- {\CTEX@disableautoindent
- \normalfont \CTEX@chapter@format
- \interlinepenalty\@M
- \CTEX@hangindent{chapter}{}%
-% \Huge \bfseries #1\par\nobreak
- \CTEX@chapter@titleformat{#1}%
- \CTEX@chapter@aftertitle
- \nobreak
-% \vskip 40\p@
- \CTEX@setheadingskip \CTEX@chapter@afterskip
- \ifodd \CTEX@chapter@fixskip \CTEX@fixheadingskip \fi
- \vskip \CTEX@headingskip
- }}
+ \begingroup
+% \parindent \z@ \raggedright \normalfont \interlinepenalty\@M
+ \CTEX@heading@format@initial
+ \CTEX@chapter@format{%
+ \CTEX@headinghang{chapter}{}%
+% \Huge \bfseries #1\par\nobreak
+ \CTEX@chapter@titleformat{#1}%
+ \CTEX@chapter@aftertitle}\par
+ \endgroup
+ \nobreak
+% \vskip 40\p@
+ \CTEX@setheadingskip \CTEX@chapter@afterskip
+ \ifodd \CTEX@chapter@fixskip \CTEX@fixheadingskip \fi
+ \vskip \CTEX@headingskip}
% \end{macrocode}
% \end{macro}
%
@@ -7645,6 +7904,11 @@ Copyright and Licence
% \paragraph{section 类的标题}
%
% \begin{macro}[int]{\@startsection}
+% \LaTeX 的标准å‚数是:
+% \begin{quote}\small
+% \Arg{name}\Arg{level}\Arg{indent}\Arg{beforeskip}\Arg{afterskip}^^A
+% \Arg{style}|*|\oarg{altheading}\Arg{heading}
+% \end{quote}
% \begin{macrocode}
\def\@startsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
@@ -7707,12 +7971,13 @@ Copyright and Licence
% \ifdim \@tempskipa>\z@
\unless \ifodd \CTEX@runin
\begingroup
+ \CTEX@heading@format@initial
#6{%
- \CTEX@hangfrom{\hskip\glueexpr #3\relax\@svsec}%
-% \interlinepenalty \@M #8\@@par}%
- \interlinepenalty \@M
+% \@hangfrom{\hskip #3\relax\@svsec}%
+% \interlinepenalty \@M #8\@@@@par
+ \CTEX@sectionhang{#3}{\@svsec}%
\csname CTEX@#1@titleformat\endcsname{#8}%
- \csname CTEX@#1@aftertitle\endcsname}%
+ \csname CTEX@#1@aftertitle\endcsname}\par
\endgroup
\csname #1mark\endcsname{#7}%
% \addcontentsline{toc}{#1}{%
@@ -7723,18 +7988,18 @@ Copyright and Licence
\CTEX@addtocline{#1}{#7}%
\else
\def\@svsechd{%
- #6{\hskip\glueexpr #3\relax
-% \@svsec #8}%
- \@svsec
- \csname CTEX@#1@titleformat\endcsname{#8}%
- \csname CTEX@#1@aftertitle\endcsname}%
- \csname #1mark\endcsname{#7}%
-% \addcontentsline{toc}{#1}{%
-% \ifnum #2>\c@secnumdepth \else
-% \protect\numberline{\csname the#1\endcsname}%
-% \fi
-% #7}%
- \CTEX@addtocline{#1}{#7}}%
+ #6{%
+% \hskip #3\relax \@svsec #8
+ {\CTEX@indentbox{#3}}\@svsec
+ \csname CTEX@#1@titleformat\endcsname{#8}%
+ \csname CTEX@#1@aftertitle\endcsname}%
+ \csname #1mark\endcsname{#7}%
+% \addcontentsline{toc}{#1}{%
+% \ifnum #2>\c@secnumdepth \else
+% \protect\numberline{\csname the#1\endcsname}%
+% \fi
+% #7}%
+ \CTEX@addtocline{#1}{#7}}%
\fi
\@xsect{#5}}
% \end{macrocode}
@@ -7749,17 +8014,18 @@ Copyright and Licence
% \ifdim \@tempskipa>\z@
\unless \ifodd \CTEX@runin
\begingroup
+ \CTEX@heading@format@initial
#4{%
- \CTEX@hangfrom{\hskip\glueexpr #1\relax}%
-% \interlinepenalty \@M #5\@@par}%
- \interlinepenalty \@M
+% \@hangfrom{\hskip #1}%
+% \interlinepenalty \@M #5\@@par
+ \CTEX@sectionhang{#1}{}%
\CTEX@titleformat@n{#5}%
- \CTEX@aftertitle}%
+ \CTEX@aftertitle}\par
\endgroup
\else
-% \def\@svsechd{#4{\hskip\glueexpr #1\relax #5}}%
- \def\@svsechd{#4{\hskip\glueexpr #1\relax
- \CTEX@titleformat@n{#5}\CTEX@aftertitle}}%
+% \def\@svsechd{#4{\hskip #1\relax #5}}%
+ \def\@svsechd{#4{{\CTEX@indentbox{#1}}%
+ \CTEX@titleformat@n{#5}\CTEX@aftertitle}}%
\fi
\@xsect{#3}}
% \end{macrocode}
@@ -7789,7 +8055,7 @@ Copyright and Licence
\unskip
% \@tempskipa #1\relax
% \hskip -\@tempskipa
- \hskip\glueexpr #1\relax
+ \CTEX@heading@glue{#1}%
\else
\clubpenalty \@clubpenalty
\everypar{}%
@@ -7799,44 +8065,62 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}[int]{\CTEX@headinghang,\CTEX@sectionhang}
+% 分别用于用于实现 \tn{part}/\tn{chapter} 和 \tn{section} 类标题的
+% \opt{indent} 和 \opt{hang} 选项。
% \begin{macrocode}
-%<@@=ctex>
+\cs_new_protected:Npn \CTEX@headinghang #1
+ {
+ \ctex_heading_hang:cnn
+ { CTEX@#1@hang }
+ { \use:c { CTEX@#1@indent } }
+ }
+\cs_new_protected:Npn \CTEX@sectionhang
+ { \ctex_heading_hang:Nnn \CTEX@hang }
% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}[int]{\CTEX@hangindent}
-% 用于实现 \tn{part} 和 \tn{chapter} 标题的 \opt{indent} 和 \opt{hang} 选项。
+% \begin{macro}[int]{\ctex_heading_hang:Nnn,\ctex_hang_from:n}
+% \opt{hang} 选项控制是å¦é‡‡ç”¨æ‚¬æŒ‚缩进,åŒæ—¶è®¾ç½® \tn{parindent}。
% \begin{macrocode}
-\cs_new_protected:Npn \CTEX@hangindent #1#2
+\cs_new_protected:Npn \ctex_heading_hang:Nnn #1#2#3
{
- \dim_set:Nn \parindent { \use:c { CTEX@#1@indent } }
- \bool_if:cTF { CTEX@#1@hang }
- { \@hangfrom { \@@_indent_aux: #2 } }
- {#2}
+ \dim_set:Nn \tex_parindent:D {#2}
+ \bool_if:NTF #1
+ { \ctex_hang_from:n }
+ { \use:n }
+ { \@@_insert_indent: #3 }
}
-\cs_new_protected_nopar:Npn \@@_indent_aux:
+\cs_new_protected:Npn \ctex_hang_from:n #1
{
- \dim_compare:nNnF \parindent = \c_zero_dim
- { \skip_horizontal:n { \parindent } }
+ \tex_noindent:D
+ \hbox_set:Nn \l_@@_tmp_box {#1}
+ \tex_hangindent:D = \box_wd:N \l_@@_tmp_box
+ \box_use_drop:N \l_@@_tmp_box
}
+\cs_generate_variant:Nn \ctex_heading_hang:Nnn { c }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\CTEX@hangfrom}
-% \opt{hang} 选项控制是å¦é‡‡ç”¨æ‚¬æŒ‚缩进。
+% \begin{macro}[int]{\ctex_heading_glue:n,\CTEX@heading@glue}
+% 如果缩进 |#1| 长度为零,就ä¸æ’入水平间è·ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CTEX@hangfrom
+\cs_new_protected:Npn \ctex_heading_glue:n #1
{
- \bool_if:NTF \CTEX@hang
- { \@hangfrom }
- { \noindent \use:n }
+ \group_begin:
+ \skip_set:Nn \l_@@_heading_skip {#1}
+ \dim_compare:nNnF \l_@@_heading_skip = \c_zero_dim
+ { \skip_horizontal:N \l_@@_heading_skip }
+ \group_end:
}
+\cs_new_eq:NN \CTEX@heading@glue \ctex_heading_glue:n
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[int]{\CTEX@update@sectionformat@n}
% 在 \tn{@startsection} 中设置 \tn{CTEX@titleformat@n} 等为相应函数。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CTEX@update@sectionformat@n #1
+\cs_new_protected:Npn \CTEX@update@sectionformat@n #1
{
\cs_set_eq:Nc \CTEX@titleformat@n { CTEX@#1@titleformat }
\cs_set_eq:Nc \CTEX@aftertitle { CTEX@#1@aftertitle }
@@ -7877,7 +8161,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\CTEXnumberline}
% \begin{macrocode}
-\cs_new_nopar:Npn \CTEXnumberline #1
+\cs_new:Npn \CTEXnumberline #1
{
\CTEXifname
{ \protect \numberline { \use:c { CTEXthe #1 } } }
@@ -7891,7 +8175,7 @@ Copyright and Licence
\seq_map_inline:Nn \c_@@_section_headings_seq
{
\int_incr:N \l_@@_tmp_int
- \cs_gset_protected_nopar:cpx {#1}
+ \cs_gset_protected:cpx {#1}
{
\exp_not:N \@startsection {#1}
{ \int_use:N \l_@@_tmp_int }
@@ -7909,7 +8193,7 @@ Copyright and Licence
%
% \begin{macro}[int]{appendix/name,appendix/number,appendix/numbering}
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
appendix .meta:nn = { ctex / appendix } {#1} ,
appendix / name .code:n =
@@ -7926,7 +8210,7 @@ Copyright and Licence
% \begin{macro}[int]{\appendix}
% \begin{macrocode}
\cs_new_eq:NN \CTEX@save@appendix \appendix
-\cs_gset_protected_nopar:Npn \appendix
+\cs_gset_protected:Npn \appendix
{
\CTEX@save@appendix
%<*article>
@@ -7952,7 +8236,7 @@ Copyright and Licence
% \begin{macro}[int]{\CTEX@makeanchor}
% 设置超链接跳转锚点,在 \pkg{hyperref} 载入åŽæ‰æœ‰æ„义。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CTEX@makeanchor #1
+\cs_new_protected:Npn \CTEX@makeanchor #1
{ }
% \end{macrocode}
% \end{macro}
@@ -7976,7 +8260,7 @@ Copyright and Licence
% \opt{implicit} 选项的控制)。我们在上é¢å¯¹æ ‡é¢˜å‘½ä»¤çš„修改已ç»åŒ…å«è¿™ä¸€åŠŸèƒ½ï¼Œå¦‚果这些标题命令在
% \pkg{hyperref} 载入之å‰æ²¡æœ‰è¢«ä¿®æ”¹è¿‡ï¼Œåˆ™æ¢å¤ \CTeX{} 的定义。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CTEX@hyperheadinghook
+\cs_new_protected:Npn \CTEX@hyperheadinghook
{
\group_begin:
\ifHy@implicit
@@ -8001,7 +8285,7 @@ Copyright and Licence
% \begin{macrocode}
\ctex_at_end_package:nn { hyperref }
{
- \cs_gset_protected_nopar:Npn \CTEX@makeanchor #1
+ \cs_gset_protected:Npn \CTEX@makeanchor #1
{
\Hy@MakeCurrentHrefAuto {#1}
\Hy@raisedlink
@@ -8025,7 +8309,7 @@ Copyright and Licence
{ }
\ctex_at_end_package:nn { nameref }
{
- \cs_gset_protected_nopar:Npn \CTEX@gettitle { \NR@gettitle }
+ \cs_gset_protected:Npn \CTEX@gettitle { \NR@gettitle }
\seq_map_inline:Nn \c_@@_headings_cs_seq
{
\cs_if_eq:ccT { NR@ #1 } { CTEX@ #1 }
@@ -8062,7 +8346,7 @@ Copyright and Licence
% 如果使用了 \pkg{titlesec} çš„ \opt{indentafter} 等选项,也ä¸éœ€è¦è°ƒæ•´
% |\ttls@|\meta{section}。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_titlesec_hook:
+\cs_new_protected:Npn \ctex_titlesec_hook:
{
\@ifpackagewith { titlesec } { explicit }
{
@@ -8082,17 +8366,17 @@ Copyright and Licence
}
\seq_map_function:NN \c_@@_section_headings_seq \@@_titlesec_hook:n
}
-\cs_new_protected_nopar:Npn \@@_titlesec_hook:n #1
+\cs_new_protected:Npn \@@_titlesec_hook:n #1
{
\@@_titlesec_format:n {#1}
\exp_args:Nc \@@_titlesec_spacing:Nn { ttls@#1 } {#1}
}
-\cs_new_protected_nopar:Npn \@@_titlesec_format:n #1
+\cs_new_protected:Npn \@@_titlesec_format:n #1
{
\cs_if_free:cF { ttlf@#1 }
{ \exp_args:Nc \@@_titlesec_format:Nn { ttlf@#1 } {#1} }
}
-\cs_new_protected_nopar:Npn \@@_titlesec_format:Nn #1#2
+\cs_new_protected:Npn \@@_titlesec_format:Nn #1#2
{
\tl_set:Nx #1
{
@@ -8102,7 +8386,7 @@ Copyright and Licence
\tl_tail:N #1
}
}
-\cs_new_protected_nopar:Npn \@@_titlesec_format_explicit:Nn #1#2
+\cs_new_protected:Npn \@@_titlesec_format_explicit:Nn #1#2
{
\cs_set_nopar:Npx #1 ##1
{
@@ -8112,7 +8396,7 @@ Copyright and Licence
\exp_args:No \tl_tail:n { #1 { } }
}
}
-\cs_new_protected_nopar:Npn \@@_titlesec_spacing:Nn #1#2
+\cs_new_protected:Npn \@@_titlesec_spacing:Nn #1#2
{ \tl_set:Nx #1 { \exp_after:wN \@@_titlesec_spacing:nnnnnn #1 {#2} } }
\cs_new:Npn \@@_titlesec_spacing:nnnnnn #1#2#3#4#5#6
{
@@ -8145,14 +8429,14 @@ Copyright and Licence
%</book|report>
\cs_if_free:NF \ttl@tocpart
{
- \cs_set_protected_nopar:Npn \ttl@tocpart
+ \cs_set_protected:Npn \ttl@tocpart
{ \tl_set:Nn \ttl@a { \CTEXthepart \hspace { 1em } } }
}
\seq_map_inline:Nn \c_@@_headings_seq
{
\cs_if_exist:cF { ttl@toc #1 }
{
- \cs_new_protected_nopar:cpx { ttl@toc #1 }
+ \cs_new_protected:cpx { ttl@toc #1 }
{
\tl_set:Nn \exp_not:N \ttl@a
{
@@ -8178,7 +8462,7 @@ Copyright and Licence
% \begin{macrocode}
\group_begin:
\char_set_catcode_other:N \#
-\cs_new_protected_nopar:Npn \ctex_titleps_hook:
+\cs_new_protected:Npn \ctex_titleps_hook:
{
\ctex_patch_cmd:Nnn \ttl@settopmark
{ \protect \@namedef { the#1 } { \@nameuse { the#1 } } }
@@ -8207,12 +8491,12 @@ Copyright and Licence
% 这两个函数è¦åœ¨éšåŽè¢« \tn{xdef} 展开æ¥èŽ·å¾— |\CTEXtheXXX| 的内容,ä¸åº”该用
% \tn{protected} æ¥å®šä¹‰ã€‚
% \begin{macrocode}
-\cs_new_nopar:Npn \CTEX@titlepslabel@set #1
+\cs_new:Npn \CTEX@titlepslabel@set #1
{
\cs_if_free:cF { CTEXthe#1 }
{ \protect \@namedef { CTEXthe#1 } { \@nameuse { CTEXthe#1 } } }
}
-\cs_new_nopar:Npn \CTEX@titlepslabel@clear #1
+\cs_new:Npn \CTEX@titlepslabel@clear #1
{
\cs_if_free:cF { CTEXthe#1 }
{ \protect \@namedef { CTEXthe#1 } { } }
@@ -8240,9 +8524,9 @@ Copyright and Licence
% \begin{macrocode}
\ctex_at_end_package:nn { titleps }
{
- \cs_set_protected_nopar:Npn \ttl@setifthe #1
+ \cs_set_protected:Npn \ttl@setifthe #1
{
- \exp_args:Nco \cs_set_nopar:Npn { ifthe #1 }
+ \exp_args:Nco \cs_set:Npn { ifthe #1 }
{
\CTEXifname
{ \protect \@firstoftwo }
@@ -8257,7 +8541,7 @@ Copyright and Licence
%
% \subsubsection{目录标签的宽度}
%
-% \begin{macro}[int]{\numberline}
+% \begin{macro}{\CTEX@toc@width@n}
% \begin{macrocode}
\cs_new_protected:Npn \CTEX@toc@width@n #1
{
@@ -8268,6 +8552,17 @@ Copyright and Licence
{ \box_wd:N \l_@@_tmp_box + \f@size \p@ / 2 }
}
}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.5}{2020/01/11}{兼容 \pkg{titletoc} å®åŒ…。}
+%
+% \begin{macro}{\numberline,\@@_patch_toc_width:n}
+% 为 \tn{numberline} 命令打补ä¸ï¼Œå¹¶å…¼å®¹ \pkg{tocloft} å’Œ \pkg{titletoc} å®åŒ…。
+%
+% 这里需è¦æ›¿æ¢ |#| 本身,因此需è¦å…ˆåˆ‡æ¢ä¸º other 类。表示å‚æ•°çš„ |#| 用
+% \cs{c_parameter_token} 代替。
+% \begin{macrocode}
\group_begin:
\char_set_catcode_other:N \#
\use:n
@@ -8277,19 +8572,24 @@ Copyright and Licence
{ \CTEX@toc@width@n {#1} }
{ }
{ \ctex_patch_failure:N \numberline }
- \@ifpackageloaded { tocloft }
- { }
+ \cs_new_protected:Npn \@@_patch_toc_width:n \c_parameter_token 1
{
- \ctex_at_end_package:nn { tocloft }
+ \@ifpackageloaded { \c_parameter_token 1 }
+ { }
{
- \ctex_preto_cmd:NnnTF \numberline
- { \char_set_catcode_letter:n { 64 } }
- { \CTEX@toc@width@n {#1} }
- { }
- { \ctex_patch_failure:N \numberline }
+ \ctex_at_end_package:nn { \c_parameter_token 1 }
+ {
+ \ctex_preto_cmd:NnnTF \numberline
+ { \char_set_catcode_letter:n { 64 } }
+ { \CTEX@toc@width@n {#1} }
+ { }
+ { \ctex_patch_failure:N \numberline }
+ }
}
}
}
+\@@_patch_toc_width:n { tocloft }
+\@@_patch_toc_width:n { titletoc }
% \end{macrocode}
% \end{macro}
%
@@ -8385,72 +8685,69 @@ Copyright and Licence
% \begin{macrocode}
\defbeamertemplate*{part page}{CTEX}[1][]{%
\begingroup
- \CTEX@disableautoindent
% \centering
% {\usebeamerfont{part name}%
% \usebeamercolor[fg]{part name}\partname~\insertromanpartnumber}
% \vskip1em\par
\par \addvspace{\glueexpr\CTEX@part@beforeskip\relax}%
- \CTEX@part@format
- \parindent \dimexpr \CTEX@part@indent \relax
- \ifodd \CTEX@part@numbering
- \CTEX@partname \CTEX@part@aftername
- \fi
- \begin{beamercolorbox}[sep=16pt,center,#1]{part title}
-% \usebeamerfont{part title}\insertpart\par
- \CTEX@part@titleformat \insertpart \CTEX@part@aftertitle
- \end{beamercolorbox}%
+ \CTEX@heading@format@initial
+ \CTEX@part@format{%
+ \CTEX@indentbox{\CTEX@part@indent}%
+ \ifodd \CTEX@part@numbering
+ \CTEX@partname \CTEX@part@aftername
+ \fi
+ \begin{beamercolorbox}[sep=16pt,center,#1]{part title}
+% \usebeamerfont{part title}\insertpart\par
+ \CTEX@part@titleformat \insertpart \CTEX@part@aftertitle
+ \end{beamercolorbox}}%
\par \addvspace{\glueexpr\CTEX@part@afterskip\relax}%
- \endgroup
-}
+ \endgroup}
% \end{macrocode}
%
% 对应 \tn{sectionpage}。
% \begin{macrocode}
\defbeamertemplate*{section page}{CTEX}[1][]{%
\begingroup
- \CTEX@disableautoindent
% \centering
% {\usebeamerfont{section name}%
% \usebeamercolor[fg]{section name}\sectionname~\insertsectionnumber}
% \vskip1em\par
\par \addvspace{\glueexpr\CTEX@section@beforeskip\relax}%
- \CTEX@section@format
- \parindent \dimexpr \CTEX@section@indent \relax
- \ifodd \CTEX@section@numbering
- \CTEX@sectionname \CTEX@section@aftername
- \fi
- \begin{beamercolorbox}[sep=12pt,center,#1]{part title}
-% \usebeamerfont{section title}\insertsection\par
- \CTEX@section@titleformat \insertsection \CTEX@section@aftertitle
- \end{beamercolorbox}%
+ \CTEX@heading@format@initial
+ \CTEX@section@format{%
+ \CTEX@indentbox{\CTEX@section@indent}%
+ \ifodd \CTEX@section@numbering
+ \CTEX@sectionname \CTEX@section@aftername
+ \fi
+ \begin{beamercolorbox}[sep=12pt,center,#1]{part title}
+% \usebeamerfont{section title}\insertsection\par
+ \CTEX@section@titleformat \insertsection \CTEX@section@aftertitle
+ \end{beamercolorbox}}%
\par \addvspace{\glueexpr\CTEX@section@afterskip\relax}%
- \endgroup
-}
+ \endgroup}
% \end{macrocode}
%
% 对应 \tn{subsectionpage}。
% \begin{macrocode}
\defbeamertemplate*{subsection page}{CTEX}[1][]{%
\begingroup
- \CTEX@disableautoindent
% \centering
% {\usebeamerfont{subsection name}%
% \usebeamercolor[fg]{subsection name}\subsectionname~\insertsubsectionnumber}
% \vskip1em\par
\par \addvspace{\glueexpr\CTEX@subsection@beforeskip\relax}%
- \CTEX@subsection@format
- \parindent \dimexpr \CTEX@subsection@indent \relax
- \ifodd \CTEX@subsection@numbering
- \CTEX@subsectionname \CTEX@subsection@aftername
- \fi
- \begin{beamercolorbox}[sep=8pt,center,#1]{part title}
-% \usebeamerfont{subsection title}\insertsubsection\par
- \CTEX@subsection@titleformat \insertsubsection \CTEX@subsection@aftertitle
- \end{beamercolorbox}%
+ \CTEX@heading@format@initial
+ \CTEX@subsection@format{%
+ \CTEX@indentbox{\CTEX@subsection@indent}%
+ \ifodd \CTEX@subsection@numbering
+ \CTEX@subsectionname \CTEX@subsection@aftername
+ \fi
+ \begin{beamercolorbox}[sep=8pt,center,#1]{part title}
+% \usebeamerfont{subsection title}\insertsubsection\par
+ \CTEX@subsection@titleformat \insertsubsection \CTEX@subsection@aftertitle
+ \end{beamercolorbox}}%
\par \addvspace{\glueexpr\CTEX@subsection@afterskip\relax}%
- \endgroup
-}
+ \endgroup}
% \end{macrocode}
%
% å°† \cls{beamer} 的默认模æ¿é‡å®šå‘为 \texttt{CTEX} 模æ¿ã€‚
@@ -8473,7 +8770,7 @@ Copyright and Licence
% \begin{macro}[int]{\refstepcounter}
% 对标题进行引用时,设置标签为通过 \opt{number} 选项设置的形å¼ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \CTEX@setcurrentlabel@n #1
+\cs_new_protected:Npn \CTEX@setcurrentlabel@n #1
{
\protected@edef \@currentlabel
{
@@ -8490,8 +8787,9 @@ Copyright and Licence
% \pkg{hyperref} å®åŒ…都会ä¿å­˜ä¹‹å‰çš„定义,并且它们都è¦æ±‚å°½å¯èƒ½æ™šçš„被载入,所以
% 对我们上述的修改影å“ä¸å¤§ã€‚需è¦æ³¨æ„的是 \pkg{varioref} å®åŒ…,如果它在
% \CTeX{} 之åŽè¢«è½½å…¥ï¼Œæˆ‘们之å‰çš„修改将会被覆盖。
+% 较新版 \LaTeX \ 内核已ç»åŒ…å« \tn{labelformat},å¯ä»¥ç›´æŽ¥ä½¿ç”¨ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_varioref_hook:
+\cs_new_protected:Npn \ctex_varioref_hook:
{
\seq_map_inline:Nn \c_@@_headings_seq
{ \ctex_fix_varioref_label:n { ##1 } }
@@ -8510,17 +8808,19 @@ Copyright and Licence
% \end{verbatim}
% 它的第二个å‚数必须放在花括å·å†…,å¦åˆ™å°†ä¼šè¢«ä½œä¸ºå®çš„定界符å·ã€‚
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_fix_varioref_label:n #1
+\cs_new_protected:Npn \ctex_fix_varioref_label:n #1
{
\tl_if_empty:cT { p@#1 }
- { \exp_args:Nno \labelformat {#1} { \cs:w CTEX@the#1 \cs_end: } }
+ { \exp_args:Nnx \labelformat {#1} { \exp_not:c { CTEX@the#1 } } }
}
% \end{macrocode}
% \end{macro}
%
+% \changes{v2.5}{2020/04/19}{应用新内核中的 \tn{labelformat}。}
+%
% 如果 \pkg{varioref} å·²ç»è¢«è½½å…¥ï¼Œåˆ™ä½¿ç”¨å®ƒæ¥è®¾ç½®ã€‚
% \begin{macrocode}
-\@ifpackageloaded { varioref }
+\cs_if_exist:NTF \labelformat
{ \ctex_varioref_hook: }
{
\cs_new_eq:NN \CTEX@save@refstepcounter \refstepcounter
@@ -8558,7 +8858,7 @@ Copyright and Licence
% 标题的 \opt{nameformat} å’Œ \opt{titleformat} 选项的åˆå€¼åˆå¹¶åˆ° \opt{format} 中。}
%
% \begin{macrocode}
-\keys_set:nn { ctex / part }
+\ctex_set:nn { part }
{
aftertitle = \par ,
%<*article|book|report>
@@ -8619,7 +8919,7 @@ Copyright and Licence
%
% \begin{macrocode}
%<*book|report>
-\keys_set:nn { ctex / chapter }
+\ctex_set:nn { chapter }
{
pagestyle = plain ,
aftertitle = \par ,
@@ -8650,16 +8950,12 @@ Copyright and Licence
% \end{macrocode}
%
% \begin{macrocode}
-%<@@=>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\keys_set:nn { ctex / section }
+\ctex_set:nn { section }
{
%<*article|book|report>
number = \thesection ,
aftername = \quad ,
- aftertitle = \@@par ,
+ aftertitle = \@@@@par ,
beforeskip = 3.5ex \@plus 1ex \@minus .2ex ,
afterskip = 2.3ex \@plus .2ex ,
runin = false ,
@@ -8689,13 +8985,13 @@ Copyright and Licence
% \end{macrocode}
%
% \begin{macrocode}
-\keys_set:nn { ctex / subsection }
+\ctex_set:nn { subsection }
{
%<*article|book|report>
number = \thesubsection ,
format = \large \bfseries ,
aftername = \quad ,
- aftertitle = \@@par ,
+ aftertitle = \@@@@par ,
beforeskip = 3.25ex \@plus 1ex \@minus .2ex ,
afterskip = 1.5ex \@plus .2ex ,
runin = false ,
@@ -8730,12 +9026,12 @@ Copyright and Licence
% \end{macrocode}
%
% \begin{macrocode}
-\keys_set:nn { ctex / subsubsection }
+\ctex_set:nn { subsubsection }
{
number = \thesubsubsection ,
format = \normalsize \bfseries ,
aftername = \quad ,
- aftertitle = \@@par ,
+ aftertitle = \@@@@par ,
beforeskip = 3.25ex \@plus 1ex \@minus .2ex ,
afterskip = 1.5ex \@plus .2ex ,
runin = false ,
@@ -8750,7 +9046,7 @@ Copyright and Licence
% \end{macrocode}
%
% \begin{macrocode}
-\keys_set:nn { ctex / paragraph }
+\ctex_set:nn { paragraph }
{
number = \theparagraph ,
format = \normalsize \bfseries ,
@@ -8767,7 +9063,7 @@ Copyright and Licence
% \end{macrocode}
%
% \begin{macrocode}
-\keys_set:nn { ctex / subparagraph }
+\ctex_set:nn { subparagraph }
{
number = \thesubparagraph ,
format = \normalsize \bfseries ,
@@ -8787,15 +9083,15 @@ Copyright and Licence
% \begin{macrocode}
\int_compare:nNnTF \g__ctex_section_depth_int > 2
{
- \keys_set:nn { ctex / paragraph }
+ \ctex_set:nn { paragraph }
{
- aftertitle = \@@par ,
+ aftertitle = \@@@@par ,
afterskip = 1ex \@plus .2ex ,
runin = false
}
}
{
- \keys_set:nn { ctex / paragraph }
+ \ctex_set:nn { paragraph }
{
afterskip = 1em ,
runin = true
@@ -8803,32 +9099,28 @@ Copyright and Licence
}
\int_compare:nNnTF \g__ctex_section_depth_int > 3
{
- \keys_set:nn { ctex / subparagraph }
+ \ctex_set:nn { subparagraph }
{
- aftertitle = \@@par ,
+ aftertitle = \@@@@par ,
afterskip = 1ex \@plus .2ex ,
runin = false
}
}
{
- \keys_set:nn { ctex / subparagraph }
+ \ctex_set:nn { subparagraph }
{
afterskip = 1em ,
runin = true
}
}
\int_compare:nNnTF \g__ctex_section_depth_int > 2
- { \keys_set:nn { ctex / subparagraph } { indent = \c_zero_dim } }
- { \keys_set:nn { ctex / subparagraph } { indent = \parindent } }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<@@=ctex>
+ { \ctex_set:nn { subparagraph } { indent = \c_zero_dim } }
+ { \ctex_set:nn { subparagraph } { indent = \parindent } }
% \end{macrocode}
%
% 处ç†é™„录的格å¼ã€‚
% \begin{macrocode}
-\keys_set:nn { ctex / appendix }
+\ctex_set:nn { appendix }
%<*article>
{ number = \@Alph \c@section }
%</article>
@@ -8890,7 +9182,7 @@ Copyright and Licence
{ \tl_const:Nn \c_@@_class_tl { article } }
\msg_warning:nnx { ctex } { not-standard-class } { \c_@@_class_tl }
}
- \ctex_file_input:n { ctex- \c_@@_class_tl .def }
+ \ctex_file_input:n { ctex-heading- \c_@@_class_tl .def }
}
%<ctex> { \ctex_scheme_input:o { \l_@@_scheme_tl } }
% \end{macrocode}
@@ -8943,19 +9235,19 @@ Copyright and Licence
%
% 日期格å¼ã€‚
% \begin{macrocode}
-\keys_set:nn { ctex } { today = small }
+\ctex_set:n { today = small }
% \end{macrocode}
%
% 若用户未设置å®åŒ…选项 \opt{autoindent},则自动调整首行缩进。
% \begin{macrocode}
\ctex_if_autoindent_touched:F
- { \keys_set:nn { ctex } { autoindent = true } }
+ { \ctex_set:n { autoindent = true } }
% \end{macrocode}
%
% 使用标题定义时的设置。首先是命题å字汉化。\cls{beamer} 需è¦æ±‰åŒ–定ç†å称。
% \begin{macrocode}
%<*!generic>
-\str_if_eq:onTF { \l_@@_encoding_tl } { GBK }
+\str_if_eq:onTF { \g_@@_encoding_tl } { GBK }
%<*beamer>
{
\uselanguage { ChineseGBK }
@@ -8989,19 +9281,19 @@ Copyright and Licence
% 对 \cls{beamer} 以外的文档类,若用户未设置å®åŒ…选项 \opt{linespread},则设置行
% è·åˆå§‹å€¼ä¸º $1.3\times 1.2=1.56$ å€å­—体大å°ã€‚\cls{beamer} ä¸è°ƒæ•´è¡Œè·ã€‚
% \begin{macrocode}
-\fp_compare:nNnT { \l_@@_line_spread_fp } ? { \c_zero_fp }
+\fp_if_nan:nT { \l_@@_line_spread_fp }
{ \fp_set:Nn \l_@@_line_spread_fp { 1.3 } }
%</!beamer>
%</!generic>
% \end{macrocode}
%
-% ä¸ä½¿ç”¨æ ‡é¢˜å®šä¹‰æ—¶çš„通用设置。
+% ä¸ä½¿ç”¨æ ‡é¢˜å®šä¹‰æ—¶çš„通用设置,注æ„此处 \cs{c_@@_std_class_tl} å¯èƒ½æ²¡æœ‰å®šä¹‰ã€‚
% \begin{macrocode}
%<*generic>
\tl_set:Nn \l_@@_tmp_tl { beamer }
\tl_if_eq:NNTF \c_@@_std_class_tl \l_@@_tmp_tl
{
- \str_if_eq:onTF { \l_@@_encoding_tl } { GBK }
+ \str_if_eq:onTF { \g_@@_encoding_tl } { GBK }
{
\uselanguage { ChineseGBK }
\languagealias { chinese } { ChineseGBK }
@@ -9015,12 +9307,12 @@ Copyright and Licence
\clist_put_left:Nn \trans@languagepath { chinese }
}
{
- \str_if_eq:onTF { \l_@@_encoding_tl } { GBK }
+ \str_if_eq:onTF { \g_@@_encoding_tl } { GBK }
{ \ctex_file_input:n { ctex-name-gbk.cfg } }
{ \ctex_file_input:n { ctex-name-utf8.cfg } }
\int_compare:nNnF \g_@@_font_size_int > { -1 }
{ \int_gset:Nn \g_@@_font_size_int { 0 } }
- \fp_compare:nNnT { \l_@@_line_spread_fp } ? { \c_zero_fp }
+ \fp_if_nan:nT { \l_@@_line_spread_fp }
{ \fp_set:Nn \l_@@_line_spread_fp { 1.3 } }
% \end{macrocode}
% \changes{v2.0.2}{2015/05/16}{ä¿®å¤åŠ è½½ \pkg{ctex} å®åŒ…åŽç« èŠ‚标题åŽç¬¬ä¸€æ®µ
@@ -9055,7 +9347,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\ctex_zihao:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_zihao:n #1
+\cs_new_protected:Npn \ctex_zihao:n #1
{
\prop_get:NnNTF \c_@@_font_size_prop {#1} \l_@@_font_size_tl
{ \exp_after:wN \fontsize \l_@@_font_size_tl \selectfont }
@@ -9083,7 +9375,7 @@ Copyright and Licence
% \begin{macrocode}
\prop_new:N \c_@@_font_size_prop
\seq_new:N \c_@@_font_size_seq
-\cs_new_protected_nopar:Npn \@@_save_font_size:nn #1#2
+\cs_new_protected:Npn \@@_save_font_size:nn #1#2
{
\use:x
{
@@ -9121,7 +9413,7 @@ Copyright and Licence
%
% \begin{macro}[int]{\ctex_declare_math_sizes:nnnn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_declare_math_sizes:nnnn #1#2#3#4
+\cs_new_protected:Npn \ctex_declare_math_sizes:nnnn #1#2#3#4
{
\@@_get_font_sizes:Nn \l_@@_font_size_tl { {#1} {#2} {#3} {#4} }
\exp_after:wN \DeclareMathSizes \l_@@_font_size_tl
@@ -9131,7 +9423,7 @@ Copyright and Licence
%
% \begin{macro}{\@@_get_font_sizes:Nn}
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_get_font_sizes:Nn #1#2
+\cs_new_protected:Npn \@@_get_font_sizes:Nn #1#2
{
\tl_clear:N #1
\tl_map_inline:nn {#2}
@@ -9178,16 +9470,16 @@ Copyright and Licence
{ \msg_error:nnn { ctex } { fontsize } {#2} }
}
\cs_new_protected:Npn \@@_set_font_size:nnNn #1#2#3#4
- { \cs_set_protected_nopar:Npn #3 { \@setfontsize #3 {#1} {#2} #4 } }
+ { \cs_set_protected:Npn #3 { \@setfontsize #3 {#1} {#2} #4 } }
% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
-\if_case:w \g_@@_font_size_int
- \ctex_file_input:n { ctex-c5size.clo }
-\or:
- \ctex_file_input:n { ctex-cs4size.clo }
-\fi:
+\int_case:nn { \g_@@_font_size_int }
+ {
+ { 0 } { \ctex_file_input:n { ctex-c5size.clo } }
+ { 1 } { \ctex_file_input:n { ctex-cs4size.clo } }
+ }
% \end{macrocode}
%
% \begin{macrocode}
@@ -9287,7 +9579,7 @@ Copyright and Licence
%
% \cs{l_@@_line_spread_fp} 被设置了æ‰æœ‰å¿…è¦æ›´æ–°è¡Œè·å’Œ \tn{footnotesep}。
% \begin{macrocode}
-\fp_compare:nNnF { \l_@@_line_spread_fp } ? { \c_zero_fp }
+\fp_if_nan:nF { \l_@@_line_spread_fp }
{
\exp_args:Nx \linespread { \fp_use:N \l_@@_line_spread_fp }
% \end{macrocode}
@@ -9310,7 +9602,7 @@ Copyright and Licence
\normalsize
% \end{macrocode}
%
-% \subsection{其它功能}
+% \subsection{其他功能}
%
% \begin{macro}{\CTeX}
% \changes{v2.4.12}{2017/12/05}{ä¸ä¾èµ– \tn{ifincsname}。}
@@ -9332,11 +9624,11 @@ Copyright and Licence
% \begin{macro}{captiondelimiter}
% 过时选项。
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
captiondelimiter .code:n =
{
- \msg_warning:nnn { ctex } { deprecated-option }
+ \ctex_deprecated_option:n
{ You~can~load~the~package~`caption'~to~get~its~functionality. }
}
}
@@ -9368,56 +9660,113 @@ Copyright and Licence
% {解决 \pkg{etoolbox} 与 \pkg{breqn} 关于 \tn{end} 的冲çªã€‚}
% \changes{v2.2}{2015/06/23}{删去 \pkg{etoolbox} 与 \pkg{breqn} 的兼容补ä¸ã€‚}
%
-% \subsection{载入中文字体}
+% \subsection{载入中文字库}
%
% \begin{macro}[int]{\ctex_fontset_error:n}
% 字库ä¸å¯ç”¨æ—¶ç»™å‡ºç´§æ€¥é”™è¯¯ä¿¡æ¯ï¼Œåœæ­¢è¯»å–定义文件。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_fontset_error:n #1
+\cs_new_protected:Npn \ctex_fontset_error:n #1
{ \msg_critical:nnn { ctex } { fontset-unavailable } {#1} }
\msg_new:nnn { ctex } { fontset-unavailable }
{ CTeX~fontset~`#1'~is~unavailable~in~current~mode. }
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ctex_fontset_case:nnn}
+% $3$ 个å‚æ•°ä¾æ¬¡ä¸º \pdfTeXã€\upTeX\ å’Œ \XeTeX/\LuaTeX。
+% \begin{macrocode}
+\cs_new:Npx \ctex_fontset_case:nnn #1#2#3
+ {
+ \sys_if_engine_pdftex:TF
+ {#1}
+ { \sys_if_engine_uptex:TF {#2} {#3} }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ctex_fontset_case:nnnn}
+% $4$ 个å‚æ•°ä¾æ¬¡ä¸º \pdfTeXï¼ˆç”Ÿæˆ PDF)ã€\pdfTeXï¼ˆç”Ÿæˆ DVI)ã€\upTeX å’Œ
+% \XeTeX/\LuaTeX。
+% \begin{macrocode}
+\cs_new:Npx \ctex_fontset_case:nnnn #1#2#3#4
+ {
+ \sys_if_engine_pdftex:TF
+ { \sys_if_output_pdf:TF {#1} {#2} }
+ { \sys_if_engine_uptex:TF {#3} {#4} }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\ctex_detect_platform:}
+% æ ¹æ®æ“作系统判断默认字体é…置。
+% \begin{macrocode}
+\cs_new_protected:Npn \ctex_detect_platform:
+ {
+ \sys_if_platform_windows:TF
+ { \tl_gset:Nn \g_@@_fontset_tl { windows } }
+ {
+ \ctex_if_platform_macos:TF
+ { \tl_gset:Nn \g_@@_fontset_tl { mac } }
+ { \tl_gset:Nn \g_@@_fontset_tl { fandol } }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\ctex_if_platform_macos:TF}
+% \changes{v2.1}{2015/06/17}{改用 \file{/Library/Fonts/Songti.ttc} 为特å¾æ–‡ä»¶ã€‚}
+% \changes{v2.5}{2019/10/25}{改用 \file{/System/Library/Fonts/Menlo.ttc}
+% 为特å¾æ–‡ä»¶ã€‚}
+% 以特定字体判断 macOS 系统。
+% \begin{macrocode}
+\cs_new_protected:Npn \ctex_if_platform_macos:TF
+ { \file_if_exist:nTF { /System/Library/Fonts/Menlo.ttc } }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[int]{\ctex_load_fontset:}
% 如果用户没有指定字体,则探测æ“作系统,载入相应的字体é…置。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_load_fontset:
+\cs_new_protected:Npn \ctex_load_fontset:
{
\tl_if_empty:NTF \g_@@_fontset_tl
+ { \ctex_detect_platform: }
{
- \ctex_detected_platform:
- \ctex_file_input:n { ctex-fontset- \g_@@_fontset_tl .def }
- }
- {
- \file_if_exist:nTF { ctex-fontset- \g_@@_fontset_tl .def }
- { \ctex_file_input:n { ctex-fontset- \g_@@_fontset_tl .def } }
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:on { \g_@@_fontset_tl } { windowsnew } }
+ { \str_if_eq_p:on { \g_@@_fontset_tl } { windowsold } }
{
- \use:x
+ \msg_warning:nnxx { ctex } { deprecated-fontset }
+ { \g_@@_fontset_tl } { windows }
+ \tl_gset:Nn \g_@@_fontset_tl { windows }
+ }
+ {
+ \file_if_exist:nF { ctex-fontset- \g_@@_fontset_tl .def }
{
- \ctex_detected_platform:
- \msg_error:nnxx { ctex } { fontset-not-found }
- { \g_@@_fontset_tl } { \exp_not:N \g_@@_fontset_tl }
+ \use:x
+ {
+ \ctex_detect_platform:
+ \msg_error:nnxx { ctex } { fontset-not-found }
+ { \g_@@_fontset_tl } { \exp_not:N \g_@@_fontset_tl }
+ }
}
- \ctex_file_input:n { ctex-fontset- \g_@@_fontset_tl .def }
}
}
+ \ctex_file_input:n { ctex-fontset- \g_@@_fontset_tl .def }
}
-\@onlypreamble \ctex_load_fontset:
+\msg_new:nnn { ctex } { deprecated-fontset }
+ { CTeX~fontset~`#1'~is~deprecated.\\ Fontset~`#2'~will~be~used~instead. }
\msg_new:nnnn { ctex } { fontset-not-found }
- {
- CTeX~fontset~`#1'~could~not~be~found.\\
- Fontset~`#2'~will~be~used~instead.
- }
+ { CTeX~fontset~`#1'~could~not~be~found.\\ Fontset~`#2'~will~be~used~instead. }
{ You~may~run~`mktexlsr'~firstly. }
+\@onlypreamble \ctex_load_fontset:
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{fontset}
% 在导言区通过 \tn{ctexset} 载入中文字库的选项。
% \begin{macrocode}
-\keys_define:nn { ctex }
+\ctex_define:n
{
fontset .code:n =
{
@@ -9447,9 +9796,7 @@ Copyright and Licence
}
{ Only~one~fontset~can~be~loaded~in~the~preamble. }
\msg_new:nnn { ctex } { fontset-only-preamble }
- {
- The~ `fontset'~ option~ can~ be~ used~ only~ in~ preamble.
- }
+ { The~`fontset'~option~can~be~used~only~in~preamble. }
% \end{macrocode}
% \end{macro}
%
@@ -9479,11 +9826,11 @@ Copyright and Licence
%
% \subsubsection{\pkg{ctexopts.cfg}}
%
-% 这里仅为é…置文件示例:使用 Windows Vista 或以åŽç‰ˆæœ¬çš„字体设置。
+% 这里仅为é…置文件示例:使用 Windows 下的字体设置。
% \begin{macrocode}
%<*ctexopts>
%%
-%% \keys_set:nn { ctex / option } { fontset = windowsnew }
+%% \ctex_set:nn { option } { fontset = windows }
%</ctexopts>
% \end{macrocode}
%
@@ -9555,11 +9902,13 @@ Copyright and Licence
%<*jy2>
\DeclareFontShape{JY2}{zhrm}{m}{n}{<-> upzhserif-h}{}
\DeclareFontShape{JY2}{zhrm}{m}{it}{<-> upzhserifit-h}{}
+\DeclareFontShape{JY2}{zhrm}{b}{n}{<-> upzhserifb-h}{}
\DeclareFontShape{JY2}{zhrm}{bx}{n}{<-> upzhserifb-h}{}
%</jy2>
%<*jt2>
\DeclareFontShape{JT2}{zhrm}{m}{n}{<-> upzhserif-v}{}
\DeclareFontShape{JT2}{zhrm}{m}{it}{<-> upzhserifit-v}{}
+\DeclareFontShape{JT2}{zhrm}{b}{n}{<-> upzhserifb-v}{}
\DeclareFontShape{JT2}{zhrm}{bx}{n}{<-> upzhserifb-v}{}
%</jt2>
%</rm>
@@ -9591,10 +9940,12 @@ Copyright and Licence
%</c70>
%<*jy2>
\DeclareFontShape{JY2}{zhsf}{m}{n}{<-> upzhsans-h}{}
+\DeclareFontShape{JY2}{zhsf}{b}{n}{<-> upzhsansb-h}{}
\DeclareFontShape{JY2}{zhsf}{bx}{n}{<-> upzhsansb-h}{}
%</jy2>
%<*jt2>
\DeclareFontShape{JT2}{zhsf}{m}{n}{<-> upzhsans-v}{}
+\DeclareFontShape{JT2}{zhsf}{b}{n}{<-> upzhsansb-v}{}
\DeclareFontShape{JT2}{zhsf}{bx}{n}{<-> upzhsansb-v}{}
%</jt2>
%</sf>
@@ -9633,307 +9984,238 @@ Copyright and Licence
%</tt>
% \end{macrocode}
%
+% \subsubsection{预定义字库}
+%
% \begin{macrocode}
%<*fontset>
% \end{macrocode}
%
-% \subsubsection{\pkg{ctex-fontset-windows.def} ç­‰}
+% \paragraph{\opt{adobe}}
%
-% \changes{v2.4.1}{2016/05/14}{使用 \file{bootfont.bin} 判断 Windows XP 以é¿å…
-% æƒé™é—®é¢˜ã€‚}
-% \pkg{ctex} 包利用 |C:\bootfont.bin| 文件的存在性æ¥åˆ¤æ–­æ˜¯å¦ä½¿ç”¨ Windows XP 版
-% 本,分别载入新旧字体设置。(注:\pkg{ctex} 包ä¸æ”¯æŒ Windows 2000 以å‰ä½¿ç”¨
-% \file{simsun.ttf} 的旧宋体文件å。)
-% \begin{macrocode}
-%<*windows>
-\file_if_exist:nTF { C:/bootfont.bin }
- { \ctex_file_input:n { ctex-fontset-windowsold.def } }
- { \ctex_file_input:n { ctex-fontset-windowsnew.def } }
-%</windows>
-% \end{macrocode}
-%
-% 旧的 Windows 字体设置使用黑体作为无衬线体,楷体和仿宋是 GB2312 ç¼–ç ï¼›æ–°çš„
-% Windows 字体设置使用微软雅黑作为无衬线体,楷体和仿宋是大字库。
-% Windows 8 以åŽï¼Œå¾®è½¯é›…黑由原æ¥çš„ \file{.ttf} åŽç¼€æ”¹ä¸º \file{.ttc} åŽç¼€ï¼Œéœ€è¦
-% 加以区分。
+% \tn{pdfmapline} ä¸æ”¯æŒ OpenType 字体,因而 \opt{adobe} 字体集在 pdf 模å¼ä¸‹
+% 就没有定义。\opt{fandol} 的情况类似。
% \begin{macrocode}
-%<*windowsnew>
-\tl_new:N \l_@@_msyh_suffix_tl
-\tl_set:Nn \l_@@_msyh_suffix_tl { .ttc }
-\file_if_exist:nF { C:/Windows/Fonts/msyh.ttc }
- {
- \file_if_exist:nF { msyh.ttc }
- { \tl_set:Nn \l_@@_msyh_suffix_tl { .ttf } }
- }
-%</windowsnew>
-%<*windowsnew|windowsold>
-\sys_if_engine_pdftex:TF
+%<*adobe>
+\ctex_fontset_case:nnnn
+ { \ctex_fontset_error:n { adobe } }
{
\ctex_zhmap_case:nnn
{
- \ctex_punct_set:n { windows }
- \setCJKmainfont
- [ BoldFont = simhei.ttf , ItalicFont = simkai.ttf ] { simsun.ttc }
-%<*windowsold>
- \setCJKsansfont { simhei.ttf }
- \ctex_punct_map_family:nn { \CJKsfdefault } { zhhei }
-%</windowsold>
-%<*windowsnew>
- \setCJKsansfont
- [ BoldFont = msyhbd\l_@@_msyh_suffix_tl ] { msyh\l_@@_msyh_suffix_tl }
- \setCJKfamilyfont { zhyahei }
- [ BoldFont = msyhbd\l_@@_msyh_suffix_tl ] { msyh\l_@@_msyh_suffix_tl }
- \ctex_punct_map_family:nn { \CJKsfdefault } { zhyahei }
- \ctex_punct_map_bfseries:nn { \CJKsfdefault , zhyahei } { zhyaheib }
-%</windowsnew>
- \setCJKmonofont { simfang.ttf }
- \setCJKfamilyfont { zhkai } { simkai.ttf }
- \setCJKfamilyfont { zhfs } { simfang.ttf }
- \setCJKfamilyfont { zhsong } { simsun.ttc }
- \setCJKfamilyfont { zhhei } { simhei.ttf }
- \setCJKfamilyfont { zhli } { simli.ttf }
- \setCJKfamilyfont { zhyou } { simyou.ttf }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- }
- {
- \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhwindowsfonts }
- \ctex_punct_set:n { windows }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- }
- {
- \tl_set:Nn \CJKrmdefault { rm }
- \tl_set:Nn \CJKsfdefault { sf }
- \tl_set:Nn \CJKttdefault { tt }
+ \setCJKmainfont { AdobeSongStd-Light.otf }
+ [
+ cmap = UniGB-UTF16-H,
+ BoldFont = AdobeHeitiStd-Regular.otf,
+ ItalicFont = AdobeKaitiStd-Regular.otf
+ ]
+ \setCJKsansfont { AdobeHeitiStd-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \setCJKmonofont { AdobeFangsongStd-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \setCJKfamilyfont { zhsong } { AdobeSongStd-Light.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \setCJKfamilyfont { zhhei } { AdobeHeitiStd-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \setCJKfamilyfont { zhkai } { AdobeKaitiStd-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \setCJKfamilyfont { zhfs } { AdobeFangsongStd-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \ctex_punct_set:n { adobe }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_family:nn { \CJKsfdefault } { zhhei }
+ \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ }
+ {
+ \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhadobefonts }
+ \ctex_punct_set:n { adobe }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
}
+ { \ctex_fontset_error:n { adobe } }
}
{
- \sys_if_engine_uptex:TF
- {
- \ctex_set_upfonts:nnnnnn
- {simsun.ttc} {simhei.ttf} {simkai.ttf}
-%<windowsnew> {msyh\l_@@_msyh_suffix_tl} {msyhbd\l_@@_msyh_suffix_tl}
-%<windowsold> {simhei.ttf} {simhei.ttf}
- {simfang.ttf}
- \ctex_set_upfamily:nnn { zhsong } { upzhserif } {}
- \ctex_set_upfamily:nnn { zhhei } { upzhserifb } {}
- \ctex_set_upfamily:nnn { zhfs } { upzhmono} {}
- \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
-%<windowsnew> \ctex_set_upfamily:nnn { zhyahei } { upzhsans } { upzhsansb }
- \ctex_set_upfamily:nnn { zhli } { upschrm } {}
- \ctex_set_upmap:nnn { upstsl } { simli.ttf } {}
- \ctex_set_upfamily:nnn { zhyou } { upschgt } {}
- \ctex_set_upmap:nnn { upstht } { simyou.ttf } {}
- }
- {
-%<*windowsold>
- \setCJKmainfont
- [ BoldFont = SimHei , ItalicFont = KaiTi_GB2312 ] { SimSun }
- \setCJKsansfont { SimHei }
- \setCJKmonofont { FangSong_GB2312 }
- \setCJKfamilyfont { zhkai } { KaiTi_GB2312 }
- \setCJKfamilyfont { zhfs } { FangSong_GB2312 }
-%</windowsold>
-%<*windowsnew>
- \setCJKmainfont
- [ BoldFont = SimHei , ItalicFont = KaiTi ] { SimSun }
- \setCJKsansfont
- [ BoldFont = { *~Bold } ] { Microsoft~YaHei }
- \setCJKmonofont { FangSong }
- \setCJKfamilyfont { zhkai } { KaiTi }
- \setCJKfamilyfont { zhfs } { FangSong }
-%</windowsnew>
- \setCJKfamilyfont { zhsong } { SimSun }
- \setCJKfamilyfont { zhhei } { SimHei }
- \setCJKfamilyfont { zhli } { LiSu }
- \setCJKfamilyfont { zhyou } { YouYuan }
-%<*windowsnew>
- \setCJKfamilyfont { zhyahei }
- [ BoldFont = { *~Bold } ] { Microsoft~YaHei }
-%</windowsnew>
- }
+ \ctex_set_upfonts:nnnnnn
+ { AdobeSongStd-Light.otf }
+ { AdobeHeitiStd-Regular.otf }
+ { AdobeKaitiStd-Regular.otf }
+ { AdobeHeitiStd-Regular.otf }
+ { AdobeHeitiStd-Regular.otf }
+ { AdobeFangsongStd-Regular.otf }
+ \ctex_set_upfamily:nnn { zhsong } { upzhserif } {}
+ \ctex_set_upfamily:nnn { zhhei } { upzhsans } {}
+ \ctex_set_upfamily:nnn { zhfs } { upzhmono } {}
+ \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
+ }
+ {
+ \setCJKmainfont { AdobeSongStd-Light }
+ [ BoldFont = AdobeHeitiStd-Regular, ItalicFont = AdobeKaitiStd-Regular ]
+ \setCJKsansfont { AdobeHeitiStd-Regular }
+ \setCJKmonofont { AdobeFangsongStd-Regular }
+ \setCJKfamilyfont { zhsong } { AdobeSongStd-Light }
+ \setCJKfamilyfont { zhhei } { AdobeHeitiStd-Regular }
+ \setCJKfamilyfont { zhfs } { AdobeFangsongStd-Regular }
+ \setCJKfamilyfont { zhkai } { AdobeKaitiStd-Regular }
}
-%</windowsnew|windowsold>
+%</adobe>
% \end{macrocode}
%
-% \subsubsection{\pkg{ctex-fontset-adobe.def}}
+% \paragraph{\opt{fandol}}
%
% \begin{macrocode}
-%<*adobe>
-% \end{macrocode}
-%
-% \tn{pdfmapline} ä¸æ”¯æŒ OpenType 字体,因而 \opt{adobe} 字体集在 pdf 模å¼ä¸‹
-% 就没有定义。\opt{fandol} 的情况类似。
-% \begin{macrocode}
-\sys_if_engine_pdftex:TF
+%<*fandol>
+\ctex_fontset_case:nnnn
+ { \ctex_fontset_error:n { fandol } }
{
- \sys_if_output_pdf:TF
- { \ctex_fontset_error:n { adobe } }
+ \ctex_zhmap_case:nnn
{
- \ctex_zhmap_case:nnn
- {
- \setCJKmainfont
- [
- cmap = UniGB-UTF16-H ,
- BoldFont = AdobeHeitiStd-Regular.otf ,
- ItalicFont = AdobeKaitiStd-Regular.otf
- ] { AdobeSongStd-Light.otf }
- \setCJKsansfont [ cmap = UniGB-UTF16-H ] { AdobeHeitiStd-Regular.otf }
- \setCJKmonofont [ cmap = UniGB-UTF16-H ] { AdobeFangsongStd-Regular.otf }
- \setCJKfamilyfont { zhsong }
- [ cmap = UniGB-UTF16-H ] { AdobeSongStd-Light.otf }
- \setCJKfamilyfont { zhhei }
- [ cmap = UniGB-UTF16-H ] { AdobeHeitiStd-Regular.otf }
- \setCJKfamilyfont { zhkai }
- [ cmap = UniGB-UTF16-H ] { AdobeKaitiStd-Regular.otf }
- \setCJKfamilyfont { zhfs }
- [ cmap = UniGB-UTF16-H ] { AdobeFangsongStd-Regular.otf }
- \ctex_punct_set:n { adobe }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_family:nn { \CJKsfdefault } { zhhei }
- \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- }
- {
- \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhadobefonts }
- \ctex_punct_set:n { adobe }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- }
- { \ctex_fontset_error:n { adobe } }
+ \setCJKmainfont { FandolSong-Regular.otf }
+ [
+ cmap = UniGB-UTF16-H,
+ BoldFont = FandolSong-Bold.otf,
+ ItalicFont = FandolKai-Regular.otf
+ ]
+ \setCJKsansfont { FandolHei-Regular.otf }
+ [ cmap = UniGB-UTF16-H, BoldFont = FandolHei-Bold.otf ]
+ \setCJKmonofont { FandolFang-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \setCJKfamilyfont { zhsong } { FandolSong-Regular.otf }
+ [ cmap = UniGB-UTF16-H, BoldFont = FandolSong-Bold.otf ]
+ \setCJKfamilyfont { zhhei } { FandolHei-Regular.otf }
+ [ cmap = UniGB-UTF16-H, BoldFont = FandolHei-Bold.otf ]
+ \setCJKfamilyfont { zhfs } { FandolFang-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \setCJKfamilyfont { zhkai } { FandolKai-Regular.otf }
+ [ cmap = UniGB-UTF16-H ]
+ \ctex_punct_set:n { fandol }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_family:nn { \CJKsfdefault } { zhhei }
+ \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault, zhsong } { zhsongb }
+ \ctex_punct_map_bfseries:nn { \CJKsfdefault, zhhei } { zhheib }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ }
+ {
+ \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhfandolfonts }
+ \ctex_punct_set:n { fandol }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
}
+ { \ctex_fontset_error:n { fandol } }
}
{
- \sys_if_engine_uptex:TF
- {
- \ctex_set_upfonts:nnnnnn
- {AdobeSongStd-Light.otf} {AdobeHeitiStd-Regular.otf} {AdobeKaitiStd-Regular.otf}
- {AdobeHeitiStd-Regular.otf} {AdobeHeitiStd-Regular.otf}
- {AdobeFangsongStd-Regular.otf}
- \ctex_set_upfamily:nnn { zhsong } { upzhserif } {}
- \ctex_set_upfamily:nnn { zhhei } { upzhsans } {}
- \ctex_set_upfamily:nnn { zhfs } { upzhmono} {}
- \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
- }
- {
- \setCJKmainfont
- [
- BoldFont = AdobeHeitiStd-Regular ,
- ItalicFont = AdobeKaitiStd-Regular
- ] { AdobeSongStd-Light }
- \setCJKsansfont { AdobeHeitiStd-Regular}
- \setCJKmonofont { AdobeFangsongStd-Regular}
- \setCJKfamilyfont { zhsong } { AdobeSongStd-Light }
- \setCJKfamilyfont { zhhei } { AdobeHeitiStd-Regular }
- \setCJKfamilyfont { zhfs } { AdobeFangsongStd-Regular }
- \setCJKfamilyfont { zhkai } { AdobeKaitiStd-Regular }
- }
+ \ctex_set_upfonts:nnnnnn
+ { FandolSong-Regular.otf }
+ { FandolSong-Bold.otf }
+ { FandolKai-Regular.otf }
+ { FandolHei-Regular.otf }
+ { FandolHei-Bold.otf }
+ { FandolFang-Regular.otf }
+ \ctex_set_upfamily:nnn { zhsong } { upzhserif } { upzhserifb }
+ \ctex_set_upfamily:nnn { zhhei } { upzhsans } { upzhsansb }
+ \ctex_set_upfamily:nnn { zhfs } { upzhmono } {}
+ \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
+ }
+ {
+ \setCJKmainfont { FandolSong-Regular }
+ [
+ Extension = .otf,
+ BoldFont = FandolSong-Bold,
+ ItalicFont = FandolKai-Regular
+ ]
+ \setCJKsansfont { FandolHei-Regular }
+ [ Extension = .otf, BoldFont = FandolHei-Bold ]
+ \setCJKmonofont { FandolFang-Regular }
+ [ Extension = .otf ]
+ \setCJKfamilyfont { zhsong } { FandolSong-Regular }
+ [ Extension = .otf, BoldFont = FandolSong-Bold ]
+ \setCJKfamilyfont { zhhei } { FandolHei-Regular }
+ [ Extension = .otf, BoldFont = FandolHei-Bold ]
+ \setCJKfamilyfont { zhfs } { FandolFang-Regular }
+ [ Extension = .otf ]
+ \setCJKfamilyfont { zhkai } { FandolKai-Regular }
+ [ Extension = .otf ]
}
+%</fandol>
% \end{macrocode}
%
-% \begin{macrocode}
-%</adobe>
-%<*fandol>
-% \end{macrocode}
+% \paragraph{\opt{founder}}
%
-% \subsubsection{\pkg{ctex-fontset-fandol.def}}
+% \changes{v2.4.15}{2019/03/28}{统一“方正细黑一\_GBKâ€çš„å称为 \texttt{FZXiHeiI-Z08}。}
%
% \begin{macrocode}
-\sys_if_engine_pdftex:TF
- {
- \sys_if_output_pdf:TF
- { \ctex_fontset_error:n { fandol } }
- {
- \ctex_zhmap_case:nnn
- {
- \setCJKmainfont
- [
- cmap = UniGB-UTF16-H ,
- BoldFont = FandolSong-Bold.otf ,
- ItalicFont = FandolKai-Regular.otf
- ] { FandolSong-Regular.otf }
- \setCJKsansfont
- [
- cmap = UniGB-UTF16-H ,
- BoldFont = FandolHei-Bold.otf
- ] { FandolHei-Regular.otf }
- \setCJKmonofont [ cmap = UniGB-UTF16-H ] { FandolFang-Regular.otf }
- \setCJKfamilyfont { zhsong }
- [
- cmap = UniGB-UTF16-H ,
- BoldFont = FandolSong-Bold.otf
- ] { FandolSong-Regular.otf }
- \setCJKfamilyfont { zhhei }
- [
- cmap = UniGB-UTF16-H ,
- BoldFont = FandolHei-Bold.otf
- ] { FandolHei-Regular.otf }
- \setCJKfamilyfont { zhfs }
- [ cmap = UniGB-UTF16-H ] { FandolFang-Regular.otf }
- \setCJKfamilyfont { zhkai }
- [ cmap = UniGB-UTF16-H ] { FandolKai-Regular.otf }
- \ctex_punct_set:n { fandol }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_family:nn { \CJKsfdefault } { zhhei }
- \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault , zhsong } { zhsongb }
- \ctex_punct_map_bfseries:nn { \CJKsfdefault , zhhei } { zhheib }
- }
- {
- \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhfandolfonts }
- \ctex_punct_set:n { fandol }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- }
- { \ctex_fontset_error:n { fandol } }
- }
- }
+%<*founder>
+\ctex_fontset_case:nnn
{
- \sys_if_engine_uptex:TF
+ \ctex_zhmap_case:nnn
{
- \ctex_set_upfonts:nnnnnn
- {FandolSong-Regular.otf} {FandolSong-Bold.otf} {FandolKai-Regular.otf}
- {FandolHei-Regular.otf} {FandolHei-Bold.otf}
- {FandolFang-Regular.otf}
- \ctex_set_upfamily:nnn { zhsong } { upzhserif } { upzhserifb }
- \ctex_set_upfamily:nnn { zhhei } { upzhsans } { upzhsansb }
- \ctex_set_upfamily:nnn { zhfs } { upzhmono} {}
- \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
+ \setCJKmainfont { FZSSK.TTF }
+ [ BoldFont = FZXBSK.TTF, ItalicFont = FZKTK.TTF ]
+ \setCJKsansfont { FZXH1K.TTF } [ BoldFont = FZHTK.TTF ]
+ \setCJKmonofont { FZFSK.TTF }
+ \setCJKfamilyfont { zhsong } { FZSSK.TTF } [ BoldFont = FZXBSK.TTF ]
+ \setCJKfamilyfont { zhhei } { FZHTK.TTF }
+ \setCJKfamilyfont { zhkai } { FZKTK.TTF }
+ \setCJKfamilyfont { zhfs } { FZFSK.TTF }
+ \setCJKfamilyfont { zhli } { FZLSK.TTF }
+ \setCJKfamilyfont { zhyou } { FZY1K.TTF } [ BoldFont = FZY3K.TTF ]
+ \ctex_punct_set:n { founder }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_family:nn { \CJKsfdefault } { zhheil }
+ \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault, zhsong } { zhsongb }
+ \ctex_punct_map_bfseries:nn { \CJKsfdefault } { zhhei }
+ \ctex_punct_map_bfseries:nn { zhyou } { zhyoub }
}
{
- \setCJKmainfont
- [
- Extension = .otf ,
- BoldFont = FandolSong-Bold , ItalicFont = FandolKai-Regular
- ]
- { FandolSong-Regular }
- \setCJKsansfont
- [ Extension = .otf , BoldFont = FandolHei-Bold ] { FandolHei-Regular }
- \setCJKmonofont [ Extension = .otf ] { FandolFang-Regular }
- \setCJKfamilyfont { zhsong }
- [ Extension = .otf , BoldFont = FandolSong-Bold ] { FandolSong-Regular }
- \setCJKfamilyfont { zhhei }
- [ Extension = .otf , BoldFont = FandolHei-Bold ] { FandolHei-Regular }
- \setCJKfamilyfont { zhfs } [ Extension = .otf ] { FandolFang-Regular }
- \setCJKfamilyfont { zhkai } [ Extension = .otf ] { FandolKai-Regular }
+ \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhfounderfonts }
+ \ctex_punct_set:n { founder }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
}
+ { \ctex_fontset_error:n { founder } }
}
+ {
+ \ctex_set_upfonts:nnnnnn
+ { FZSSK.TTF }
+ { FZXBSK.TTF }
+ { FZKTK.TTF }
+ { FZXH1K.TTF }
+ { FZHTK.TTF }
+ { FZFSK.TTF }
+ \ctex_set_upfamily:nnn { zhsong } { upzhserif } { upzhserifb }
+ \ctex_set_upfamily:nnn { zhhei } { upzhsans } { upzhsansb }
+ \ctex_set_upfamily:nnn { zhfs } { upzhmono } {}
+ \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
+ \ctex_set_upfamily:nnn { zhli } { upschrm } {}
+ \ctex_set_upfamily:nnn { zhyou } { upschgt } {}
+ \ctex_set_upmap:nnn { upstsl } { FZLSK.TTF } {}
+ \ctex_set_upmap:nnn { upstht } { FZY1K.TTF } {}
+ }
+ {
+ \setCJKmainfont { FZShuSong-Z01 }
+ [ BoldFont = FZXiaoBiaoSong-B05, ItalicFont = FZKai-Z03 ]
+ \setCJKsansfont { FZXiHeiI-Z08 } [ BoldFont = FZHei-B01 ]
+ \setCJKmonofont { FZFangSong-Z02 }
+ \setCJKfamilyfont { zhsong } { FZShuSong-Z01 }
+ [ BoldFont = FZXiaoBiaoSong-B05 ]
+ \setCJKfamilyfont { zhhei } { FZHei-B01 }
+ \setCJKfamilyfont { zhkai } { FZKai-Z03 }
+ \setCJKfamilyfont { zhfs } { FZFangSong-Z02 }
+ \setCJKfamilyfont { zhli } { FZLiShu-S01 }
+ \setCJKfamilyfont { zhyou } { FZXiYuan-M01 }
+ [ BoldFont = FZZhunYuan-M02 ]
+ }
+%</founder>
% \end{macrocode}
%
-% \begin{macrocode}
-%</fandol>
-% \end{macrocode}
+% \paragraph{\opt{mac} 相关}
%
-% \subsubsection{\pkg{ctex-fontset-mac.def} ç­‰}
-% \changes{v2.4.14}{2018/05/01}{区分 \texttt{macold} åŠ \texttt{macnew}。}
+% \changes{v2.4.14}{2018/05/01}{区分 \opt{macold} åŠ \opt{macnew}。}
%
% 按 \href{https://github.com/CTeX-org/ctex-kit/issues/351}{Issue 351}
% 的讨论,以 El Capitan 为分界,分别设置 |macold|(El Capitan 之å‰ï¼‰
@@ -9948,273 +10230,317 @@ Copyright and Licence
%</mac>
% \end{macrocode}
%
-% |macold| 的设置å‚考了 ^^A
-% \href{https://github.com/CTeX-org/ctex-kit/wiki/OS-X-Mavericks-(10.9)-\%E9\%A2\%84\%E8\%A3\%85\%E7\%9A\%84\%E4\%B8\%BB\%E8\%A6\%81\%E7\%AE\%80\%E4\%BD\%93\%E4\%B8\%AD\%E6\%96\%87\%E5\%AD\%97\%E4\%BD\%93}^^A
-% {OS X Mavericks (10.9) 预装的主è¦ç®€ä½“中文字体列表}。
+% \changes{v2.4.14}{2018/05/01}{é…ç½® \opt{macnew} 的默认字体设置。}
+% \changes{v2.5}{2019/11/05}{为 \opt{macnew} 增加粗楷体ã€éš¶ä¹¦å’Œåœ†ä½“的定义。}
+% \changes{v2.5}{2019/11/07}{å…许 \opt{macnew} 在 \LaTeX{} å’Œ \upLaTeX{} 下使用。}
%
-% 在 \dvipdfmx{} 下,å¯ä»¥é€šè¿‡ä¸‹è¿°æ–¹å¼ä½¿ç”¨åŽæ–‡å®‹ä½“å’ŒåŽæ–‡æ¥·ä½“:
-% \begin{verbatim}
-% \special{pdf:mapline unisong@Unicode@ unicode :4:Songti.ttc}
-% \special{pdf:mapline unikai@Unicode@ unicode :4:Kaiti.ttc}
-% \end{verbatim}
-% 而 \tn{pdfmapline} 似乎ä¸æ”¯æŒå¸¦ç´¢å¼•çš„ \texttt{ttc} 字体,\file{Songti.ttc} 默认
-% 使用的是 Songti SC Black,\file{Kaiti.ttc} 默认使用的是 Kaiti SC Black。
-% åŽæ–‡é»‘体ä¸èƒ½é€šè¿‡è¿™ç§æ–¹å¼ä½¿ç”¨ï¼š
-% \begin{verbatim}
-% \special{pdf:mapline unihei@Unicode@ unicode \detokenize{åŽæ–‡é»‘体}.ttf}
-% \end{verbatim}
-% \dvipdfmx{} ä¸èƒ½ç”Ÿæˆ PDF,报下述错误:
-% \begin{verbatim}
-% ** WARNING ** UCS-4 TrueType cmap table...
-% ** ERROR ** Unable to read OpenType/TrueType Unicode cmap table.
-% \end{verbatim}
-% 如果将 CMap 改为 UniGB-UTF16-H,错误信æ¯æ˜¯
-% \begin{verbatim}
-% ** WARNING ** No usable TrueType cmap table found for font "åŽæ–‡é»‘体.ttf".
-% ** WARNING ** CID character collection for this font is set to "Adobe-GB1"
-% ** ERROR ** Cannot continue without this...
-% \end{verbatim}
-% 在 \pdfTeX{} 下生æˆçš„ PDF åªæœ‰æ–¹æ¡†^^A
-% \footnote{\url{http://www.newsmth.net/bbscon.php?bid=460&id=312640}}。
-% åŽæ–‡ç»†é»‘å’ŒåŽæ–‡ä»¿å®‹çš„情况类似。
-% 这确认为 \dvipdfmx{} 的 bug^^A
-% \begingroup\makeatletter\@makeother\#\@firstofone{\endgroup
-% \footnote{\url{https://github.com/clerkma/ptex-ng/blob/master/texk/libdpx/cidtype2.c#L597}}}。
-%
-% \changes{v2.4.14}{2018/05/01}{é…ç½® \texttt{macnew} 的默认字体设置。}
+% |macold| 的设置å‚考了
+% \href{https://github.com/CTeX-org/ctex-kit/wiki/OS-X-Mavericks-(10.9)-预装的主è¦ç®€ä½“中文字体}^^A
+% {OS X Mavericks (10.9) 预装的主è¦ç®€ä½“中文字体列表}。
%
% |macnew| 在默认字体设置方é¢ï¼Œå¼•å…¥äº†å¤šå­—é‡çš„宋体作为罗马字æ—,
% 以åŠå¼•å…¥äº†è‹¹æ–¹é»‘体作为无衬线字æ—。
-%
% 由于 Songti SC Light çš„å­—é‡ä¸Ž STSong åŠ Windows 上的 SimSun 更接近,故默认字é‡
-% 使用 Songti SC Light,而ä¸å¸¦åŽç¼€çš„正常字é‡äº‹å®žä¸Šæ²¡æœ‰ä½¿ç”¨ã€‚下方关于 |zhsong| çš„å­—æ—
-% 设置也有åŒæ ·çš„情况。
+% 使用 Songti SC Light,而ä¸å¸¦åŽç¼€çš„正常字é‡äº‹å®žä¸Šæ²¡æœ‰ä½¿ç”¨ã€‚黑体ã€åœ†ä½“等设置
+% 也有类似的情况。
%
% \begin{macrocode}
%<*macold|macnew>
-\sys_if_engine_pdftex:TF
+\ctex_fontset_case:nnnn
{ \ctex_fontset_error:n { mac } }
- {
- \sys_if_engine_uptex:TF
- { \ctex_fontset_error:n { mac } }
- {
%<*macold>
- \setCJKmainfont [ BoldFont = STHeiti , ItalicFont = STKaiti ] { STSong }
- \setCJKsansfont [ BoldFont = STHeiti ] { STXihei }
+ { \ctex_fontset_error:n { macold } }
+ { \ctex_fontset_error:n { macold } }
%</macold>
%<*macnew>
- \setCJKmainfont
+ {
+ \ctex_zhmap_case:nnn
+ {
+ \setCJKmainfont { :3:Songti.ttc }
[
- UprightFont = *~Light ,
- BoldFont = *~Bold ,
- ItalicFont = Kaiti~SC ,
- BoldItalicFont = Kaiti~SC~Bold
- ] { Songti~SC }
- \setCJKsansfont { PingFang~SC }
+ BoldFont = :1:Songti.ttc,
+ ItalicFont = :0:Kaiti.ttc,
+ BoldItalicFont = :3:Kaiti.ttc,
+ ]
+ \setCJKsansfont { :2:PingFang.ttc } [ BoldFont = :8:PingFang.ttc ]
+ \setCJKmonofont { STFANGSO.ttf }
+ \setCJKfamilyfont { zhsong } { :3:Songti.ttc } [ BoldFont = :1:Songti.ttc ]
+ \setCJKfamilyfont { zhhei } { :2:PingFang.ttc } [ BoldFont = :8:PingFang.ttc ]
+ \setCJKfamilyfont { zhkai } { :0:Kaiti.ttc } [ BoldFont = :3:Kaiti.ttc ]
+ \setCJKfamilyfont { zhfs } { STFANGSO.ttf }
+ \setCJKfamilyfont { zhli } { :0:Baoli.ttc }
+ \setCJKfamilyfont { zhyou } { :4:Yuanti.ttc } [ BoldFont = :0:Yuanti.ttc ]
+ \ctex_punct_set:n { mac }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_family:nn { \CJKsfdefault } { zhheil }
+ \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault, zhsong } { zhsongb }
+ \ctex_punct_map_bfseries:nn { \CJKsfdefault } { zhhei }
+ \ctex_punct_map_bfseries:nn { zhyou } { zhyoub }
+ }
+ {
+ \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhmacfonts }
+ \ctex_punct_set:n { mac }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ }
+ { \ctex_fontset_error:n { macnew } }
+ }
+ {
+ \ctex_set_upmap:nnn { upserif } { :3:Songti.ttc } { :1:Songti.ttc }
+ \ctex_set_upmap:nnn { upserifit } { :0:Kaiti.ttc } { }
+ \ctex_set_upmap:nnn { upstsl } { :0:Baoli.ttc } { }
+ \ctex_set_upmap:nnn { upstht } { :4:Yuanti.ttc } { }
+ \ctex_set_upmap_unicode:nnn { upsans } { :2:PingFang.ttc } { :8:PingFang.ttc }
+ \ctex_set_upmap_unicode:nnn { upmono } { STFANGSO.ttf } { }
+ \ctex_set_upfamily:nnn { zhsong } { upzhserif } { upzhserifb }
+ \ctex_set_upfamily:nnn { zhhei } { upzhsans } { upzhsansb }
+ \ctex_set_upfamily:nnn { zhfs } { upzhmono } { }
+ \ctex_set_upfamily:nnn { zhkai } { upzhserifit } { }
+ \ctex_set_upfamily:nnn { zhli } { upschrm } { }
+ \ctex_set_upfamily:nnn { zhyou } { upschgt } { }
+ }
%</macnew>
- \setCJKmonofont { STFangsong }
+ {
%<*macold>
- \setCJKfamilyfont { zhsong } { STSong }
- \setCJKfamilyfont { zhhei } { STHeiti }
+ \setCJKmainfont { STSong }
+ [ BoldFont = STHeiti, ItalicFont = STKaiti ]
+ \setCJKsansfont { STXihei } [ BoldFont = STHeiti ]
+ \setCJKmonofont { STFangsong }
+ \setCJKfamilyfont { zhsong } { STSong }
+ \setCJKfamilyfont { zhhei } { STHeiti }
+ \setCJKfamilyfont { zhfs } { STFangsong }
+ \setCJKfamilyfont { zhkai } { STKaiti }
%</macold>
%<*macnew>
- \setCJKfamilyfont { zhsong }
- [
- UprightFont = *~Light ,
- BoldFont = *~Bold ,
- ] { Songti~SC }
- \setCJKfamilyfont { zhhei } { Heiti~SC }
- \setCJKfamilyfont { zhpf } { PingFang~SC }
+ \setCJKmainfont { Songti~SC~Light }
+ [
+ BoldFont = Songti~SC~Bold,
+ ItalicFont = Kaiti~SC,
+ BoldItalicFont = Kaiti~SC~Bold
+ ]
+ \setCJKsansfont { PingFang~SC }
+ \setCJKmonofont { STFangsong }
+ \setCJKfamilyfont { zhsong } { Songti~SC~Light } [ BoldFont = Songti~SC~Bold ]
+ \setCJKfamilyfont { zhhei } { Heiti~SC~Light } [ BoldFont = Heiti~SC~Medium ]
+ \setCJKfamilyfont { zhpf } { PingFang~SC }
+ \setCJKfamilyfont { zhfs } { STFangsong }
+ \setCJKfamilyfont { zhkai } { Kaiti~SC } [ BoldFont = Kaiti~SC~Bold ]
+ \setCJKfamilyfont { zhli } { Baoli~SC }
+ \setCJKfamilyfont { zhyou } { Yuanti~SC~Light } [ BoldFont = Yuanti~SC~Regular ]
%</macnew>
- \setCJKfamilyfont { zhfs } { STFangsong }
-%<macold>\setCJKfamilyfont { zhkai } { STKaiti }
-%<macnew>\setCJKfamilyfont { zhkai } { Kaiti~SC }
- }
}
%</macold|macnew>
% \end{macrocode}
%
-% \subsubsection{\pkg{ctex-fontset-founder.def}}
-%
-% \begin{macrocode}
-%<*founder>
-% \end{macrocode}
+% \paragraph{\opt{ubuntu}}
%
-% \changes{v2.4.15}{2019/03/28}{统一“方正细黑一\_GBKâ€çš„å称为 \texttt{FZXiHeiI-Z08}。}
+% \changes{v2.5}{2019/11/07}{\opt{ubuntu} 改用æ€æºï¼ˆNoto CJK)和文鼎字库,ä¸å†
+% 支æŒä½¿ç”¨ \pdfLaTeX{} 编译。}
%
% \begin{macrocode}
-\sys_if_engine_pdftex:TF
+%<*ubuntu>
+\ctex_fontset_case:nnnn
+ { \ctex_fontset_error:n { ubuntu } }
{
\ctex_zhmap_case:nnn
{
- \setCJKmainfont
- [ BoldFont = FZXBSK.TTF , ItalicFont = FZKTK.TTF ] { FZSSK.TTF }
- \setCJKsansfont [ BoldFont = FZHTK.TTF ] { FZXH1K.TTF }
- \setCJKmonofont { FZFSK.TTF }
- \setCJKfamilyfont { zhsong } [ BoldFont = FZXBSK.TTF ] { FZSSK.TTF }
- \setCJKfamilyfont { zhhei } { FZHTK.TTF }
- \setCJKfamilyfont { zhkai } { FZKTK.TTF }
- \setCJKfamilyfont { zhfs } { FZFSK.TTF }
- \setCJKfamilyfont { zhli } { FZLSK.TTF }
- \setCJKfamilyfont { zhyou } [ BoldFont = FZY3K.TTF ] { FZY1K.TTF }
- \ctex_punct_set:n { founder }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_family:nn { \CJKsfdefault } { zhheil }
- \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault , zhsong } { zhsongb }
- \ctex_punct_map_bfseries:nn { \CJKsfdefault } { zhhei }
- \ctex_punct_map_bfseries:nn { zhyou } { zhyoub }
+ \setCJKmainfont { :2:NotoSerifCJK-Regular.ttc }
+ [ BoldFont = :2:NotoSerifCJK-Bold.ttc, ItalicFont = gkai00mp.ttf ]
+ \setCJKsansfont { :2:NotoSansCJK-Regular.ttc }
+ [ BoldFont = :2:NotoSansCJK-Bold.ttc ]
+ \setCJKmonofont { :2:NotoSerifCJK-Regular.ttc }
+ [ BoldFont = :2:NotoSerifCJK-Bold.ttc ]
+ \setCJKfamilyfont { zhsong } { :2:NotoSerifCJK-Regular.ttc }
+ [ BoldFont = :2:NotoSerifCJK-Bold.ttc ]
+ \setCJKfamilyfont { zhhei } { :2:NotoSansCJK-Regular.ttc }
+ [ BoldFont = :2:NotoSansCJK-Bold.ttc ]
+ \setCJKfamilyfont { zhkai } { gkai00mp.ttf }
+ \ctex_punct_set:n { fandol }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_family:nn { \CJKsfdefault } { zhhei }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault, zhsong } { zhsongb }
+ \ctex_punct_map_bfseries:nn { \CJKsfdefault, zhhei } { zhheib }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
}
{
- \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhfounderfonts }
- \ctex_punct_set:n { founder }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ \ctex_load_zhmap:nnnn { rm } { zhhei } { zhsong } { zhubuntufonts }
+ \ctex_punct_set:n { ubuntu }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
}
- { \ctex_fontset_error:n { founder } }
+ { \ctex_fontset_error:n { ubuntu } }
}
{
- \sys_if_engine_uptex:TF
- {
- \ctex_set_upfonts:nnnnnn
- { FZSSK.TTF } { FZXBSK.TTF } { FZKTK.TTF }
- { FZXH1K.TTF } { FZHTK.TTF }
- { FZFSK.TTF }
- \ctex_set_upfamily:nnn { zhsong } { upzhserif } { upzhserifb }
- \ctex_set_upfamily:nnn { zhhei } { upzhsans } { upzhsansb }
- \ctex_set_upfamily:nnn { zhfs } { upzhmono} {}
- \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
- \ctex_set_upfamily:nnn { zhli } { upschrm } {}
- \ctex_set_upmap:nnn { upstsl } { FZLSK.TTF } {}
- \ctex_set_upfamily:nnn { zhyou } { upschgt } {}
- \ctex_set_upmap:nnn { upstht } { FZY1K.TTF } {}
- }
- {
- \setCJKmainfont
- [ BoldFont = FZXiaoBiaoSong-B05 , ItalicFont = FZKai-Z03 ] { FZShuSong-Z01 }
- \setCJKsansfont [ BoldFont = FZHei-B01 ] { FZXiHeiI-Z08 }
- \setCJKmonofont { FZFangSong-Z02 }
- \setCJKfamilyfont { zhsong } [ BoldFont = FZXiaoBiaoSong-B05 ] { FZShuSong-Z01 }
- \setCJKfamilyfont { zhhei } { FZHei-B01 }
- \setCJKfamilyfont { zhkai } { FZKai-Z03 }
- \setCJKfamilyfont { zhfs } { FZFangSong-Z02 }
- \setCJKfamilyfont { zhli } { FZLiShu-S01 }
- \setCJKfamilyfont { zhyou } [ BoldFont = FZZhunYuan-M02 ] { FZXiYuan-M01 }
- }
+ \ctex_set_upmap_unicode:nnn { upserif }
+ { :2:NotoSerifCJK-Regular.ttc } { :2:NotoSerifCJK-Bold.ttc }
+ \ctex_set_upmap_unicode:nnn { upsans }
+ { :2:NotoSansCJK-Regular.ttc } { :2:NotoSansCJK-Bold.ttc }
+ \ctex_set_upmap_unicode:nnn { upmono }
+ { :2:NotoSerifCJK-Regular.ttc } { }
+ \ctex_set_upmap:nnn { upserifit } { gkai00mp.ttf } { }
+ \ctex_set_upfamily:nnn { zhsong } { upzhserif } { upzhserifb }
+ \ctex_set_upfamily:nnn { zhhei } { upzhsans } { upzhsansb }
+ \ctex_set_upfamily:nnn { zhkai } { upzhserifit } { }
+ }
+ {
+ \setCJKmainfont { Noto~Serif~CJK~SC } [ ItalicFont = AR~PL~KaitiM~GB ]
+ \setCJKsansfont { Noto~Sans~CJK~SC }
+ \setCJKmonofont { Noto~Serif~CJK~SC }
+ \setCJKfamilyfont { zhsong } { Noto~Serif~CJK~SC }
+ \setCJKfamilyfont { zhhei } { Noto~Sans~CJK~SC }
+ \setCJKfamilyfont { zhkai } { AR~PL~KaitiM~GB }
}
+%</ubuntu>
% \end{macrocode}
%
+% \paragraph{\opt{windows}}
+%
+% \changes{v2.4.1}{2016/05/14}{使用 \file{bootfont.bin} 判断 Windows XP 以é¿å…
+% æƒé™é—®é¢˜ã€‚}
+% \changes{v2.5}{2019/11/04}{使用环境å˜é‡ä»£æ›¿ç»å¯¹è·¯å¾„查找字体。}
+% \changes{v2.5}{2019/11/05}{ä¸å†æ”¯æŒ Windows XP 系统,\opt{windowsold} å’Œ
+% \opt{windowsnew} æˆä¸ºè¿‡æ—¶å­—库选项。}
+%
+% \begin{variable}{ \c_@@_msyh_suffix_tl}
+% Windows 8 以åŽï¼Œå¾®è½¯é›…黑由原æ¥çš„ \file{.ttf} åŽç¼€æ”¹ä¸º \file{.ttc} åŽç¼€ï¼Œéœ€è¦
+% 加以区分。
% \begin{macrocode}
-%</founder>
-%<*ubuntu>
+%<*windows>
+\file_if_exist:nTF { \c_dollar_str WINDIR/Fonts/msyh.ttc }
+ { \tl_const:Nn \c_@@_msyh_suffix_tl { ttc } }
+ {
+ \file_if_exist:nTF { msyh.ttc }
+ { \tl_const:Nn \c_@@_msyh_suffix_tl { ttc } }
+ { \tl_const:Nn \c_@@_msyh_suffix_tl { ttf } }
+ }
% \end{macrocode}
+% \end{variable}
%
-% \subsubsection{\pkg{ctex-fontset-ubuntu.def}}
-%
-% ä»¥ä¸‹æ ¹æ® Ubuntu 12.04 的中文字体情况设置。CMap ä¸æ¸…楚应该是什么,指定为
-% UniGB-UTF16-H 还是有警告:
-% \begin{verbatim}
-% ** WARNING ** UCS-4 TrueType cmap table...
-% \end{verbatim}
-% 需è¦æ³¨æ„的是 \file{uming.ttc} å’Œ \file{ukai.ttc} 看起æ¥åƒæœ‰å››ç§å­—形的样å­ï¼Œä½†
-% 其实åªæœ‰â€œä»¤â€å’Œâ€œéª¨â€è¿™åŒºåŒºä¸¤ä¸ªå­—有新字形,其余都å–旧字形^^A
-% \footnote{\url{http://www.freedesktop.org/wiki/Software/CJKUnifonts/Download/}}。
% \begin{macrocode}
-\sys_if_engine_pdftex:TF
+\ctex_fontset_case:nnn
{
\ctex_zhmap_case:nnn
{
- \setCJKmainfont
- [ BoldFont = wqy-zenhei.ttc , ItalicFont = ukai.ttc ] { uming.ttc }
- \setCJKsansfont { wqy-zenhei.ttc }
- \setCJKmonofont { uming.ttc }
- \setCJKfamilyfont { zhsong } { uming.ttc }
- \setCJKfamilyfont { zhhei } { wqy-zenhei.ttc }
- \setCJKfamilyfont { zhkai } { ukai.ttc }
- \ctex_punct_set:n { ubuntu }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_family:nn { \CJKsfdefault } { zhhei }
- \ctex_punct_map_family:nn { \CJKttdefault } { zhsong }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- }
- {
- \ctex_load_zhmap:nnnn { rm } { zhhei } { zhsong } { zhubuntufonts }
- \ctex_punct_set:n { ubuntu }
- \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
- \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
- \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ \ctex_punct_set:n { windows }
+ \setCJKmainfont { simsun.ttc }
+ [ BoldFont = simhei.ttf, ItalicFont = simkai.ttf ]
+ \setCJKsansfont { msyh.\c_@@_msyh_suffix_tl }
+ [ BoldFont = msyhbd.\c_@@_msyh_suffix_tl ]
+ \setCJKmonofont { simfang.ttf }
+ \setCJKfamilyfont { zhsong } { simsun.ttc }
+ \setCJKfamilyfont { zhhei } { simhei.ttf }
+ \setCJKfamilyfont { zhfs } { simfang.ttf }
+ \setCJKfamilyfont { zhkai } { simkai.ttf }
+ \setCJKfamilyfont { zhyahei } { msyh.\c_@@_msyh_suffix_tl }
+ [ BoldFont = msyhbd.\c_@@_msyh_suffix_tl ]
+ \setCJKfamilyfont { zhli } { simli.ttf }
+ \setCJKfamilyfont { zhyou } { simyou.ttf }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
+ \ctex_punct_map_family:nn { \CJKsfdefault } { zhyahei }
+ \ctex_punct_map_bfseries:nn { \CJKsfdefault, zhyahei } { zhyaheib }
+ \ctex_punct_map_family:nn { \CJKttdefault } { zhfs }
}
- { \ctex_fontset_error:n { ubuntu } }
- }
- {
- \sys_if_engine_uptex:TF
{
- \ctex_set_upfonts:nnnnnn
- { uming.ttc } { wqy-zenhei.ttc } { ukai.ttc }
- { wqy-zenhei.ttc } { wqy-zenhei.ttc }
- { uming.ttc }
- \ctex_set_upfamily:nnn { zhsong } { upzhserif } {}
- \ctex_set_upfamily:nnn { zhhei } { upzhsans } {}
- \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
+ \ctex_load_zhmap:nnnn { rm } { zhhei } { zhfs } { zhwindowsfonts }
+ \ctex_punct_set:n { windows }
+ \ctex_punct_map_family:nn { \CJKrmdefault } { zhsong }
+ \ctex_punct_map_bfseries:nn { \CJKrmdefault } { zhhei }
+ \ctex_punct_map_itshape:nn { \CJKrmdefault } { zhkai }
}
{
- \setCJKmainfont
- [ BoldFont = WenQuanYi~Zen~Hei , ItalicFont = AR~PL~UKai~CN ] { AR~PL~UMing~CN }
- \setCJKsansfont { WenQuanYi~Zen~Hei }
- \setCJKmonofont { AR~PL~UMing~CN }
- \setCJKfamilyfont { zhsong } { AR~PL~UMing~CN }
- \setCJKfamilyfont { zhhei } { WenQuanYi~Zen~Hei }
- \setCJKfamilyfont { zhkai } { AR~PL~UKai~CN }
+ \tl_set:Nn \CJKrmdefault { rm }
+ \tl_set:Nn \CJKsfdefault { sf }
+ \tl_set:Nn \CJKttdefault { tt }
}
}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</ubuntu>
+ {
+ \ctex_set_upfonts:nnnnnn
+ { simsun.ttc }
+ { simhei.ttf }
+ { simkai.ttf }
+ { msyh.\c_@@_msyh_suffix_tl }
+ { msyhbd.\c_@@_msyh_suffix_tl }
+ { simfang.ttf }
+ \ctex_set_upfamily:nnn { zhsong } { upzhserif } {}
+ \ctex_set_upfamily:nnn { zhhei } { upzhserifb } {}
+ \ctex_set_upfamily:nnn { zhfs } { upzhmono } {}
+ \ctex_set_upfamily:nnn { zhkai } { upzhserifit } {}
+ \ctex_set_upfamily:nnn { zhyahei } { upzhsans } { upzhsansb }
+ \ctex_set_upfamily:nnn { zhli } { upschrm } {}
+ \ctex_set_upfamily:nnn { zhyou } { upschgt } {}
+ \ctex_set_upmap:nnn { upstsl } { simli.ttf } {}
+ \ctex_set_upmap:nnn { upstht } { simyou.ttf } {}
+ }
+ {
+ \setCJKmainfont { SimSun } [ BoldFont = SimHei , ItalicFont = KaiTi ]
+ \setCJKsansfont { Microsoft~YaHei } [ BoldFont = *~Bold ]
+ \setCJKmonofont { FangSong }
+ \setCJKfamilyfont { zhsong } { SimSun }
+ \setCJKfamilyfont { zhhei } { SimHei }
+ \setCJKfamilyfont { zhfs } { FangSong }
+ \setCJKfamilyfont { zhkai } { KaiTi }
+ \setCJKfamilyfont { zhyahei } { Microsoft~YaHei } [ BoldFont = *~Bold ]
+ \setCJKfamilyfont { zhli } { LiSu }
+ \setCJKfamilyfont { zhyou } { YouYuan }
+ }
+%</windows>
% \end{macrocode}
%
% \subsubsection{中文字体命令}
-% \changes{v2.4.14}{2018/05/01}{为 \texttt{macnew} é…置字体命令。}
-%
-% \begin{macrocode}
-%<*!windows&!mac>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\NewDocumentCommand \songti { } { \CJKfamily { zhsong } }
-\NewDocumentCommand \heiti { } { \CJKfamily { zhhei } }
-%<!ubuntu>\NewDocumentCommand \fangsong { } { \CJKfamily { zhfs } }
-\NewDocumentCommand \kaishu { } { \CJKfamily { zhkai } }
-%<*windowsnew|windowsold|founder>
-\NewDocumentCommand \lishu { } { \CJKfamily { zhli } }
-\NewDocumentCommand \youyuan { } { \CJKfamily { zhyou } }
-%</windowsnew|windowsold|founder>
-%<windowsnew>\NewDocumentCommand \yahei { } { \CJKfamily { zhyahei } }
+% \changes{v2.4.14}{2018/05/01}{为 \opt{macnew} é…置字体命令。}
+%
+% \begin{macro}{\songti,\heiti,\fangsong,\kaishu,\lishu,\youyuan,\yahei,\pingfang}
+% 使用 \upLaTeX{} 编译时,\opt{macnew} 字库中由于传统黑体(黑体-简)无法使用,
+% 我们用苹方æ¥ä»£æ›¿ã€‚åŒæ—¶ \tn{yahei}ã€\tn{pingfang} 命令被设置为与 \tn{heiti} 相åŒã€‚
+% \begin{macrocode}
+%<*!mac>
+\NewDocumentCommand \songti { } { \CJKfamily { zhsong } }
+\NewDocumentCommand \heiti { } { \CJKfamily { zhhei } }
+%<!ubuntu>\NewDocumentCommand \fangsong { } { \CJKfamily { zhfs } }
+\NewDocumentCommand \kaishu { } { \CJKfamily { zhkai } }
+%<*windows|founder|macnew>
+\NewDocumentCommand \lishu { } { \CJKfamily { zhli } }
+\NewDocumentCommand \youyuan { } { \CJKfamily { zhyou } }
+%</windows|founder|macnew>
+%<windows>\NewDocumentCommand \yahei { } { \CJKfamily { zhyahei } }
%<*macnew>
-\NewDocumentCommand \yahei { } { \CJKfamily { zhpf } }
-\NewDocumentCommand \pingfang { } { \CJKfamily { zhpf } }
+\bool_lazy_or:nnTF
+ { \sys_if_engine_pdftex_p: }
+ { \sys_if_engine_uptex_p: }
+ {
+ \cs_new_eq:NN \yahei \heiti
+ \cs_new_eq:NN \pingfang \heiti
+ }
+ {
+ \NewDocumentCommand \yahei { } { \CJKfamily { zhpf } }
+ \NewDocumentCommand \pingfang { } { \CJKfamily { zhpf } }
+ }
%</macnew>
+%</!mac>
% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
-%</!windows&!mac>
%</fontset>
-%<*zhmap>
% \end{macrocode}
%
% \subsubsection{\pkg{zhmetrics} 的字体映射}
%
% 确认 \tn{catcode},没有é‡å¤è½½å…¥æ£€æŸ¥ã€‚
% \begin{macrocode}
+%<*zhmap>
\begingroup\catcode61\catcode48\catcode32=10\relax%
\catcode 35=6 % #
\catcode123=1 % {
\catcode125=2 % }
\toks0{\endlinechar=\the\endlinechar\relax}%
- \toks2{\endlinechar=13 }%
+ \toks2{\endlinechar=-1 }%
\def\x#1 #2 {%
\toks0\expandafter{\the\toks0 \catcode#1=\the\catcode#1\relax}%
\toks2\expandafter{\the\toks2 \catcode#1=#2 }}%
@@ -10244,6 +10570,7 @@ Copyright and Licence
\expandafter\x\csname ctex@zhmap@endinput\endcsname
% \end{macrocode}
%
+% \begin{macro}[int]{\ifzhmappdf}
% \begin{macrocode}
\begingroup\expandafter\endgroup
\expandafter\let\csname ifzhmappdf\expandafter\endcsname\csname
@@ -10253,7 +10580,9 @@ Copyright and Licence
\else ifctexpdf\fi
\endcsname
% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}[int]{\ProvidesFile}
% æä¾›éž \LaTeX{} æ ¼å¼ä¸‹çš„ \tn{ProvidesFile}。
% \begin{macrocode}
\begingroup
@@ -10266,112 +10595,50 @@ Copyright and Licence
\fi
\endgroup
% \end{macrocode}
+% \end{macro}
%
-% \paragraph{\pkg{zhwindowsfonts.tex}}
-%
+% 文件标识信æ¯ã€‚
% \begin{macrocode}
-%<*windows>
-\ProvidesFile{zhwindowsfonts.tex}%
- [2019/05/29 v2.4.16 Windows font map loader for pdfTeX and DVIPDFMx (CTEX)]
-
-\ifzhmappdf
- \pdfmapline{=gbk@UGBK@ <simsun.ttc}
- \pdfmapline{=gbksong@UGBK@ <simsun.ttc}
- \pdfmapline{=gbkkai@UGBK@ <simkai.ttf}
- \pdfmapline{=gbkhei@UGBK@ <simhei.ttf}
- \pdfmapline{=gbkfs@UGBK@ <simfang.ttf}
- \pdfmapline{=gbkli@UGBK@ <simli.ttf}
- \pdfmapline{=gbkyou@UGBK@ <simyou.ttf}
-
- \pdfmapline{=cyberb@Unicode@ <simsun.ttc}
- \pdfmapline{=unisong@Unicode@ <simsun.ttc}
- \pdfmapline{=unikai@Unicode@ <simkai.ttf}
- \pdfmapline{=unihei@Unicode@ <simhei.ttf}
- \pdfmapline{=unifs@Unicode@ <simfang.ttf}
- \pdfmapline{=unili@Unicode@ <simli.ttf}
- \pdfmapline{=uniyou@Unicode@ <simyou.ttf}
-
- \pdfmapline{=gbksongsl@UGBK@ <simsun.ttc}
- \pdfmapline{=gbkkaisl@UGBK@ <simkai.ttf}
- \pdfmapline{=gbkheisl@UGBK@ <simhei.ttf}
- \pdfmapline{=gbkfssl@UGBK@ <simfang.ttf}
- \pdfmapline{=gbklisl@UGBK@ <simli.ttf}
- \pdfmapline{=gbkyousl@UGBK@ <simyou.ttf}
-
- \pdfmapline{=unisongsl@Unicode@ <simsun.ttc}
- \pdfmapline{=unikaisl@Unicode@ <simkai.ttf}
- \pdfmapline{=uniheisl@Unicode@ <simhei.ttf}
- \pdfmapline{=unifssl@Unicode@ <simfang.ttf}
- \pdfmapline{=unilisl@Unicode@ <simli.ttf}
- \pdfmapline{=uniyousl@Unicode@ <simyou.ttf}
-
-\else
- \special{pdf:mapline gbk@UGBK@ unicode :0:simsun.ttc -v 50}
- \special{pdf:mapline gbksong@UGBK@ unicode :0:simsun.ttc -v 50}
- \special{pdf:mapline gbkkai@UGBK@ unicode simkai.ttf -v 70}
- \special{pdf:mapline gbkhei@UGBK@ unicode simhei.ttf -v 150}
- \special{pdf:mapline gbkfs@UGBK@ unicode simfang.ttf -v 50}
- \special{pdf:mapline gbkli@UGBK@ unicode simli.ttf -v 150}
- \special{pdf:mapline gbkyou@UGBK@ unicode simyou.ttf -v 60}
-
- \special{pdf:mapline cyberb@Unicode@ unicode :0:simsun.ttc -v 50}
- \special{pdf:mapline unisong@Unicode@ unicode :0:simsun.ttc -v 50}
- \special{pdf:mapline unikai@Unicode@ unicode simkai.ttf -v 70}
- \special{pdf:mapline unihei@Unicode@ unicode simhei.ttf -v 150}
- \special{pdf:mapline unifs@Unicode@ unicode simfang.ttf -v 50}
- \special{pdf:mapline unili@Unicode@ unicode simli.ttf -v 150}
- \special{pdf:mapline uniyou@Unicode@ unicode simyou.ttf -v 60}
-
- \special{pdf:mapline gbksongsl@UGBK@ unicode :0:simsun.ttc -s .167 -v 50}
- \special{pdf:mapline gbkkaisl@UGBK@ unicode simkai.ttf -s .167 -v 70}
- \special{pdf:mapline gbkheisl@UGBK@ unicode simhei.ttf -s .167 -v 150}
- \special{pdf:mapline gbkfssl@UGBK@ unicode simfang.ttf -s .167 -v 50}
- \special{pdf:mapline gbklisl@UGBK@ unicode simli.ttf -s .167 -v 150}
- \special{pdf:mapline gbkyousl@UGBK@ unicode simyou.ttf -s .167 -v 60}
-
- \special{pdf:mapline unisongsl@Unicode@ unicode :0:simsun.ttc -s .167 -v 50}
- \special{pdf:mapline unikaisl@Unicode@ unicode simkai.ttf -s .167 -v 70}
- \special{pdf:mapline uniheisl@Unicode@ unicode simhei.ttf -s .167 -v 150}
- \special{pdf:mapline unifssl@Unicode@ unicode simfang.ttf -s .167 -v 50}
- \special{pdf:mapline unilisl@Unicode@ unicode simli.ttf -s .167 -v 150}
- \special{pdf:mapline uniyousl@Unicode@ unicode simyou.ttf -s .167 -v 60}
-
-%</windows>
+%<adobe>\ProvidesFile{zhadobefonts.tex}%
+%<adobe> [2020/05/01 v2.5 Adobe font map loader for DVIPDFMx (CTEX)]
+%<fandol>\ProvidesFile{zhfandolfonts.tex}%
+%<fandol> [2020/05/01 v2.5 Fandol font map loader for DVIPDFMx (CTEX)]
+%<founder>\ProvidesFile{zhfounderfonts.tex}%
+%<founder> [2020/05/01 v2.5 Founder font map loader for pdfTeX and DVIPDFMx (CTEX)]
+%<mac>\ProvidesFile{zhmacfonts.tex}%
+%<mac> [2020/05/01 v2.5 Mac font map loader for pdfTeX and DVIPDFMx (CTEX)]
+%<ubuntu>\ProvidesFile{zhubuntufonts.tex}%
+%<ubuntu> [2020/05/01 v2.5 Ubuntu font map loader for pdfTeX and DVIPDFMx (CTEX)]
+%<windows>\ProvidesFile{zhwindowsfonts.tex}%
+%<windows> [2020/05/01 v2.5 Windows font map loader for pdfTeX and DVIPDFMx (CTEX)]
% \end{macrocode}
%
% \paragraph{\pkg{zhadobefonts.tex}}
%
% \begin{macrocode}
%<*adobe>
-\ProvidesFile{zhadobefonts.tex}%
- [2019/05/29 v2.4.16 Adobe font map loader for DVIPDFMx (CTEX)]
-
\ifzhmappdf
%% pdfTeX does not support OTF fonts
-
\else
- \special{pdf:mapline gbk@UGBK@ UniGB-UTF16-H AdobeSongStd-Light.otf}
- \special{pdf:mapline gbksong@UGBK@ UniGB-UTF16-H AdobeSongStd-Light.otf}
- \special{pdf:mapline gbkkai@UGBK@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf}
- \special{pdf:mapline gbkhei@UGBK@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf}
- \special{pdf:mapline gbkfs@UGBK@ UniGB-UTF16-H AdobeFangsongStd-Regular.otf}
-
- \special{pdf:mapline cyberb@Unicode@ UniGB-UTF16-H AdobeSongStd-Light.otf}
- \special{pdf:mapline unisong@Unicode@ UniGB-UTF16-H AdobeSongStd-Light.otf}
- \special{pdf:mapline unikai@Unicode@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf}
- \special{pdf:mapline unihei@Unicode@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf}
- \special{pdf:mapline unifs@Unicode@ UniGB-UTF16-H AdobeFangsongStd-Regular.otf}
-
- \special{pdf:mapline gbksongsl@UGBK@ UniGB-UTF16-H AdobeSongStd-Light.otf -s .167}
- \special{pdf:mapline gbkkaisl@UGBK@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf -s .167}
- \special{pdf:mapline gbkheisl@UGBK@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf -s .167}
- \special{pdf:mapline gbkfssl@UGBK@ UniGB-UTF16-H AdobeFangsongStd-Regular.otf -s .167}
-
- \special{pdf:mapline unisongsl@Unicode@ UniGB-UTF16-H AdobeSongStd-Light.otf -s .167}
- \special{pdf:mapline unikaisl@Unicode@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf -s .167}
- \special{pdf:mapline uniheisl@Unicode@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf -s .167}
+ \special{pdf:mapline gbk@UGBK@ UniGB-UTF16-H AdobeSongStd-Light.otf}
+ \special{pdf:mapline gbksong@UGBK@ UniGB-UTF16-H AdobeSongStd-Light.otf}
+ \special{pdf:mapline gbkkai@UGBK@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf}
+ \special{pdf:mapline gbkhei@UGBK@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf}
+ \special{pdf:mapline gbkfs@UGBK@ UniGB-UTF16-H AdobeFangsongStd-Regular.otf}
+ \special{pdf:mapline cyberb@Unicode@ UniGB-UTF16-H AdobeSongStd-Light.otf}
+ \special{pdf:mapline unisong@Unicode@ UniGB-UTF16-H AdobeSongStd-Light.otf}
+ \special{pdf:mapline unikai@Unicode@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf}
+ \special{pdf:mapline unihei@Unicode@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf}
+ \special{pdf:mapline unifs@Unicode@ UniGB-UTF16-H AdobeFangsongStd-Regular.otf}
+ \special{pdf:mapline gbksongsl@UGBK@ UniGB-UTF16-H AdobeSongStd-Light.otf -s .167}
+ \special{pdf:mapline gbkkaisl@UGBK@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf -s .167}
+ \special{pdf:mapline gbkheisl@UGBK@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf -s .167}
+ \special{pdf:mapline gbkfssl@UGBK@ UniGB-UTF16-H AdobeFangsongStd-Regular.otf -s .167}
+ \special{pdf:mapline unisongsl@Unicode@ UniGB-UTF16-H AdobeSongStd-Light.otf -s .167}
+ \special{pdf:mapline unikaisl@Unicode@ UniGB-UTF16-H AdobeKaitiStd-Regular.otf -s .167}
+ \special{pdf:mapline uniheisl@Unicode@ UniGB-UTF16-H AdobeHeitiStd-Regular.otf -s .167}
\special{pdf:mapline unifssl@Unicode@ UniGB-UTF16-H AdobeFangsongStd-Regular.otf -s .167}
-
+\fi
%</adobe>
% \end{macrocode}
%
@@ -10379,35 +10646,28 @@ Copyright and Licence
%
% \begin{macrocode}
%<*fandol>
-\ProvidesFile{zhfandolfonts.tex}%
- [2019/05/29 v2.4.16 Fandol font map loader for DVIPDFMx (CTEX)]
-
\ifzhmappdf
%% pdfTeX does not support OTF fonts
-
\else
- \special{pdf:mapline gbk@UGBK@ UniGB-UTF16-H FandolSong-Regular.otf}
- \special{pdf:mapline gbksong@UGBK@ UniGB-UTF16-H FandolSong-Regular.otf}
- \special{pdf:mapline gbkkai@UGBK@ UniGB-UTF16-H FandolKai-Regular.otf}
- \special{pdf:mapline gbkhei@UGBK@ UniGB-UTF16-H FandolHei-Regular.otf}
- \special{pdf:mapline gbkfs@UGBK@ UniGB-UTF16-H FandolFang-Regular.otf}
-
- \special{pdf:mapline cyberb@Unicode@ UniGB-UTF16-H FandolSong-Regular.otf}
- \special{pdf:mapline unisong@Unicode@ UniGB-UTF16-H FandolSong-Regular.otf}
- \special{pdf:mapline unikai@Unicode@ UniGB-UTF16-H FandolKai-Regular.otf}
- \special{pdf:mapline unihei@Unicode@ UniGB-UTF16-H FandolHei-Regular.otf}
- \special{pdf:mapline unifs@Unicode@ UniGB-UTF16-H FandolFang-Regular.otf}
-
- \special{pdf:mapline gbksongsl@UGBK@ UniGB-UTF16-H FandolSong-Regular.otf -s .167}
- \special{pdf:mapline gbkkaisl@UGBK@ UniGB-UTF16-H FandolKai-Regular.otf -s .167}
- \special{pdf:mapline gbkheisl@UGBK@ UniGB-UTF16-H FandolHei-Regular.otf -s .167}
- \special{pdf:mapline gbkfssl@UGBK@ UniGB-UTF16-H FandolFang-Regular.otf -s .167}
-
+ \special{pdf:mapline gbk@UGBK@ UniGB-UTF16-H FandolSong-Regular.otf}
+ \special{pdf:mapline gbksong@UGBK@ UniGB-UTF16-H FandolSong-Regular.otf}
+ \special{pdf:mapline gbkkai@UGBK@ UniGB-UTF16-H FandolKai-Regular.otf}
+ \special{pdf:mapline gbkhei@UGBK@ UniGB-UTF16-H FandolHei-Regular.otf}
+ \special{pdf:mapline gbkfs@UGBK@ UniGB-UTF16-H FandolFang-Regular.otf}
+ \special{pdf:mapline cyberb@Unicode@ UniGB-UTF16-H FandolSong-Regular.otf}
+ \special{pdf:mapline unisong@Unicode@ UniGB-UTF16-H FandolSong-Regular.otf}
+ \special{pdf:mapline unikai@Unicode@ UniGB-UTF16-H FandolKai-Regular.otf}
+ \special{pdf:mapline unihei@Unicode@ UniGB-UTF16-H FandolHei-Regular.otf}
+ \special{pdf:mapline unifs@Unicode@ UniGB-UTF16-H FandolFang-Regular.otf}
+ \special{pdf:mapline gbksongsl@UGBK@ UniGB-UTF16-H FandolSong-Regular.otf -s .167}
+ \special{pdf:mapline gbkkaisl@UGBK@ UniGB-UTF16-H FandolKai-Regular.otf -s .167}
+ \special{pdf:mapline gbkheisl@UGBK@ UniGB-UTF16-H FandolHei-Regular.otf -s .167}
+ \special{pdf:mapline gbkfssl@UGBK@ UniGB-UTF16-H FandolFang-Regular.otf -s .167}
\special{pdf:mapline unisongsl@Unicode@ UniGB-UTF16-H FandolSong-Regular.otf -s .167}
- \special{pdf:mapline unikaisl@Unicode@ UniGB-UTF16-H FandolKai-Regular.otf -s .167}
- \special{pdf:mapline uniheisl@Unicode@ UniGB-UTF16-H FandolHei-Regular.otf -s .167}
+ \special{pdf:mapline unikaisl@Unicode@ UniGB-UTF16-H FandolKai-Regular.otf -s .167}
+ \special{pdf:mapline uniheisl@Unicode@ UniGB-UTF16-H FandolHei-Regular.otf -s .167}
\special{pdf:mapline unifssl@Unicode@ UniGB-UTF16-H FandolFang-Regular.otf -s .167}
-
+\fi
%</fandol>
% \end{macrocode}
%
@@ -10415,137 +10675,195 @@ Copyright and Licence
%
% \begin{macrocode}
%<*founder>
-\ProvidesFile{zhfounderfonts.tex}%
- [2019/05/29 v2.4.16 Founder font map loader for pdfTeX and DVIPDFMx (CTEX)]
-
\ifzhmappdf
- \pdfmapline{=gbk@UGBK@ <FZSSK.TTF}
- \pdfmapline{=gbksong@UGBK@ <FZSSK.TTF}
- \pdfmapline{=gbkkai@UGBK@ <FZKTK.TTF}
- \pdfmapline{=gbkhei@UGBK@ <FZHTK.TTF}
- \pdfmapline{=gbkfs@UGBK@ <FZFSK.TTF}
- \pdfmapline{=gbkli@UGBK@ <FZLSK.TTF}
- \pdfmapline{=gbkyou@UGBK@ <FZY1K.TTF}
-
- \pdfmapline{=cyberb@Unicode@ <FZSSK.TTF}
- \pdfmapline{=unisong@Unicode@ <FZSSK.TTF}
- \pdfmapline{=unikai@Unicode@ <FZKTK.TTF}
- \pdfmapline{=unihei@Unicode@ <FZHTK.TTF}
- \pdfmapline{=unifs@Unicode@ <FZFSK.TTF}
- \pdfmapline{=unili@Unicode@ <FZLSK.TTF}
- \pdfmapline{=uniyou@Unicode@ <FZY1K.TTF}
-
- \pdfmapline{=gbksongsl@UGBK@ <FZSSK.TTF}
- \pdfmapline{=gbkkaisl@UGBK@ <FZKTK.TTF}
- \pdfmapline{=gbkheisl@UGBK@ <FZHTK.TTF}
- \pdfmapline{=gbkfssl@UGBK@ <FZFSK.TTF}
- \pdfmapline{=gbklisl@UGBK@ <FZLSK.TTF}
- \pdfmapline{=gbkyousl@UGBK@ <FZY1K.TTF}
-
+ \pdfmapline{=gbk@UGBK@ <FZSSK.TTF}
+ \pdfmapline{=gbksong@UGBK@ <FZSSK.TTF}
+ \pdfmapline{=gbkkai@UGBK@ <FZKTK.TTF}
+ \pdfmapline{=gbkhei@UGBK@ <FZHTK.TTF}
+ \pdfmapline{=gbkfs@UGBK@ <FZFSK.TTF}
+ \pdfmapline{=gbkli@UGBK@ <FZLSK.TTF}
+ \pdfmapline{=gbkyou@UGBK@ <FZY1K.TTF}
+ \pdfmapline{=cyberb@Unicode@ <FZSSK.TTF}
+ \pdfmapline{=unisong@Unicode@ <FZSSK.TTF}
+ \pdfmapline{=unikai@Unicode@ <FZKTK.TTF}
+ \pdfmapline{=unihei@Unicode@ <FZHTK.TTF}
+ \pdfmapline{=unifs@Unicode@ <FZFSK.TTF}
+ \pdfmapline{=unili@Unicode@ <FZLSK.TTF}
+ \pdfmapline{=uniyou@Unicode@ <FZY1K.TTF}
+ \pdfmapline{=gbksongsl@UGBK@ <FZSSK.TTF}
+ \pdfmapline{=gbkkaisl@UGBK@ <FZKTK.TTF}
+ \pdfmapline{=gbkheisl@UGBK@ <FZHTK.TTF}
+ \pdfmapline{=gbkfssl@UGBK@ <FZFSK.TTF}
+ \pdfmapline{=gbklisl@UGBK@ <FZLSK.TTF}
+ \pdfmapline{=gbkyousl@UGBK@ <FZY1K.TTF}
\pdfmapline{=unisongsl@Unicode@ <FZSSK.TTF}
\pdfmapline{=unikaisl@Unicode@ <FZKTK.TTF}
\pdfmapline{=uniheisl@Unicode@ <FZHTK.TTF}
\pdfmapline{=unifssl@Unicode@ <FZFSK.TTF}
\pdfmapline{=unilisl@Unicode@ <FZLSK.TTF}
\pdfmapline{=uniyousl@Unicode@ <FZY1K.TTF}
-
\else
- \special{pdf:mapline gbk@UGBK@ unicode FZSSK.TTF}
- \special{pdf:mapline gbksong@UGBK@ unicode FZSSK.TTF}
- \special{pdf:mapline gbkkai@UGBK@ unicode FZKTK.TTF}
- \special{pdf:mapline gbkhei@UGBK@ unicode FZHTK.TTF}
- \special{pdf:mapline gbkfs@UGBK@ unicode FZFSK.TTF}
- \special{pdf:mapline gbkli@UGBK@ unicode FZLSK.TTF}
- \special{pdf:mapline gbkyou@UGBK@ unicode FZY1K.TTF}
-
- \special{pdf:mapline cyberb@Unicode@ unicode FZSSK.TTF}
- \special{pdf:mapline unisong@Unicode@ unicode FZSSK.TTF}
- \special{pdf:mapline unikai@Unicode@ unicode FZKTK.TTF}
- \special{pdf:mapline unihei@Unicode@ unicode FZHTK.TTF}
- \special{pdf:mapline unifs@Unicode@ unicode FZFSK.TTF}
- \special{pdf:mapline unili@Unicode@ unicode FZLSK.TTF}
- \special{pdf:mapline uniyou@Unicode@ unicode FZY1K.TTF}
-
- \special{pdf:mapline gbksongsl@UGBK@ unicode FZSSK.TTF -s .167}
- \special{pdf:mapline gbkkaisl@UGBK@ unicode FZKTK.TTF -s .167}
- \special{pdf:mapline gbkheisl@UGBK@ unicode FZHTK.TTF -s .167}
- \special{pdf:mapline gbkfssl@UGBK@ unicode FZFSK.TTF -s .167}
- \special{pdf:mapline gbklisl@UGBK@ unicode FZLSK.TTF -s .167}
- \special{pdf:mapline gbkyousl@UGBK@ unicode FZY1K.TTF -s .167}
-
+ \special{pdf:mapline gbk@UGBK@ unicode FZSSK.TTF}
+ \special{pdf:mapline gbksong@UGBK@ unicode FZSSK.TTF}
+ \special{pdf:mapline gbkkai@UGBK@ unicode FZKTK.TTF}
+ \special{pdf:mapline gbkhei@UGBK@ unicode FZHTK.TTF}
+ \special{pdf:mapline gbkfs@UGBK@ unicode FZFSK.TTF}
+ \special{pdf:mapline gbkli@UGBK@ unicode FZLSK.TTF}
+ \special{pdf:mapline gbkyou@UGBK@ unicode FZY1K.TTF}
+ \special{pdf:mapline cyberb@Unicode@ unicode FZSSK.TTF}
+ \special{pdf:mapline unisong@Unicode@ unicode FZSSK.TTF}
+ \special{pdf:mapline unikai@Unicode@ unicode FZKTK.TTF}
+ \special{pdf:mapline unihei@Unicode@ unicode FZHTK.TTF}
+ \special{pdf:mapline unifs@Unicode@ unicode FZFSK.TTF}
+ \special{pdf:mapline unili@Unicode@ unicode FZLSK.TTF}
+ \special{pdf:mapline uniyou@Unicode@ unicode FZY1K.TTF}
+ \special{pdf:mapline gbksongsl@UGBK@ unicode FZSSK.TTF -s .167}
+ \special{pdf:mapline gbkkaisl@UGBK@ unicode FZKTK.TTF -s .167}
+ \special{pdf:mapline gbkheisl@UGBK@ unicode FZHTK.TTF -s .167}
+ \special{pdf:mapline gbkfssl@UGBK@ unicode FZFSK.TTF -s .167}
+ \special{pdf:mapline gbklisl@UGBK@ unicode FZLSK.TTF -s .167}
+ \special{pdf:mapline gbkyousl@UGBK@ unicode FZY1K.TTF -s .167}
\special{pdf:mapline unisongsl@Unicode@ unicode FZSSK.TTF -s .167}
\special{pdf:mapline unikaisl@Unicode@ unicode FZKTK.TTF -s .167}
\special{pdf:mapline uniheisl@Unicode@ unicode FZHTK.TTF -s .167}
\special{pdf:mapline unifssl@Unicode@ unicode FZFSK.TTF -s .167}
\special{pdf:mapline unilisl@Unicode@ unicode FZLSK.TTF -s .167}
\special{pdf:mapline uniyousl@Unicode@ unicode FZY1K.TTF -s .167}
-
+\fi
%</founder>
% \end{macrocode}
%
+% \paragraph{\pkg{zhmacfonts.tex}}
+%
+% \changes{v2.5}{2020/01/15}{增加字体映射文件 \file{zhmacfonts.tex}。}
+%
+% \begin{macrocode}
+%<*mac>
+\ifzhmappdf
+%% pdfTeX does not support OTF fonts
+\else
+ \special{pdf:mapline gbk@UGBK@ UniGB-UTF16-H :3:Songti.ttc}
+ \special{pdf:mapline gbksong@UGBK@ UniGB-UTF16-H :3:Songti.ttc}
+ \special{pdf:mapline gbkkai@UGBK@ UniGB-UTF16-H :0:Kaiti.ttc}
+ \special{pdf:mapline gbkhei@UGBK@ unicode :2:PingFang.ttc}
+ \special{pdf:mapline gbkfs@UGBK@ unicode STFANGSO.ttf}
+ \special{pdf:mapline gbkli@UGBK@ UniGB-UTF16-H :0:Baoli.ttc}
+ \special{pdf:mapline gbkyou@UGBK@ UniGB-UTF16-H :4:Yuanti.ttc}
+ \special{pdf:mapline cyberb@Unicode@ UniGB-UTF16-H :3:Songti.ttc}
+ \special{pdf:mapline unisong@Unicode@ UniGB-UTF16-H :3:Songti.ttc}
+ \special{pdf:mapline unikai@Unicode@ UniGB-UTF16-H :0:Kaiti.ttc}
+ \special{pdf:mapline unihei@Unicode@ unicode :2:PingFang.ttc}
+ \special{pdf:mapline unifs@Unicode@ unicode STFANGSO.ttf}
+ \special{pdf:mapline unili@Unicode@ UniGB-UTF16-H :0:Baoli.ttc}
+ \special{pdf:mapline uniyou@Unicode@ UniGB-UTF16-H :4:Yuanti.ttc}
+ \special{pdf:mapline gbksongsl@UGBK@ UniGB-UTF16-H :3:Songti.ttc -s .167}
+ \special{pdf:mapline gbkkaisl@UGBK@ UniGB-UTF16-H :0:Kaiti.ttc -s .167}
+ \special{pdf:mapline gbkheisl@UGBK@ unicode :2:PingFang.ttc -s .167}
+ \special{pdf:mapline gbkfssl@UGBK@ unicode STFANGSO.ttf -s .167}
+ \special{pdf:mapline gbklisl@UGBK@ UniGB-UTF16-H :0:Baoli.ttc -s .167}
+ \special{pdf:mapline gbkyousl@UGBK@ UniGB-UTF16-H :4:Yuanti.ttc -s .167}
+ \special{pdf:mapline unisongsl@Unicode@ UniGB-UTF16-H :3:Songti.ttc -s .167}
+ \special{pdf:mapline unikaisl@Unicode@ UniGB-UTF16-H :0:Kaiti.ttc -s .167}
+ \special{pdf:mapline uniheisl@Unicode@ unicode :2:PingFang.ttc -s .167}
+ \special{pdf:mapline unifssl@Unicode@ unicode STFANGSO.ttf -s .167}
+ \special{pdf:mapline unilisl@Unicode@ UniGB-UTF16-H :0:Baoli.ttc -s .167}
+ \special{pdf:mapline uniyousl@Unicode@ UniGB-UTF16-H :4:Yuanti.ttc -s .167}
+\fi
+%</mac>
+% \end{macrocode}
+%
% \paragraph{\pkg{zhubuntufonts.tex}}
%
% \begin{macrocode}
%<*ubuntu>
-\ProvidesFile{zhubuntufonts.tex}%
- [2019/05/29 v2.4.16 Ubuntu font map loader for pdfTeX and DVIPDFMx (CTEX)]
-
\ifzhmappdf
- \pdfmapline{=gbk@UGBK@ <uming.ttc}
- \pdfmapline{=gbksong@UGBK@ <uming.ttc}
- \pdfmapline{=gbkkai@UGBK@ <ukai.ttc}
- \pdfmapline{=gbkhei@UGBK@ <wqy-zenhei.ttc}
- \pdfmapline{=gbkfs@UGBK@ <uming.ttc}
- \pdfmapline{=gbkyou@UGBK@ <wqy-zenhei.ttc}
-
- \pdfmapline{=cyberb@Unicode@ <uming.ttc}
- \pdfmapline{=unisong@Unicode@ <uming.ttc}
- \pdfmapline{=unikai@Unicode@ <ukai.ttc}
- \pdfmapline{=unihei@Unicode@ <wqy-zenhei.ttc}
- \pdfmapline{=unifs@Unicode@ <uming.ttc}
- \pdfmapline{=uniyou@Unicode@ <wqy-zenhei.ttc}
-
- \pdfmapline{=gbksongsl@UGBK@ <uming.ttc}
- \pdfmapline{=gbkkaisl@UGBK@ <ukai.ttc}
- \pdfmapline{=gbkheisl@UGBK@ <wqy-zenhei.ttc}
- \pdfmapline{=gbkfssl@UGBK@ <uming.ttc}
- \pdfmapline{=gbkyousl@UGBK@ <wqy-zenhei.ttc}
-
- \pdfmapline{=unisongsl@Unicode@ <uming.ttc}
- \pdfmapline{=unikaisl@Unicode@ <ukai.ttc}
- \pdfmapline{=uniheisl@Unicode@ <wqy-zenhei.ttc}
- \pdfmapline{=unifssl@Unicode@ <uming.ttc}
- \pdfmapline{=uniyousl@Unicode@ <wqy-zenhei.ttc}
-
+%% pdfTeX does not support OTF fonts
\else
- \special{pdf:mapline gbk@UGBK@ unicode :0:uming.ttc}
- \special{pdf:mapline gbksong@UGBK@ unicode :0:uming.ttc}
- \special{pdf:mapline gbkkai@UGBK@ unicode :0:ukai.ttc}
- \special{pdf:mapline gbkhei@UGBK@ unicode :0:wqy-zenhei.ttc}
- \special{pdf:mapline gbkfs@UGBK@ unicode :0:uming.ttc}
-
- \special{pdf:mapline cyberb@Unicode@ unicode :0:uming.ttc}
- \special{pdf:mapline unisong@Unicode@ unicode :0:uming.ttc}
- \special{pdf:mapline unikai@Unicode@ unicode :0:ukai.ttc}
- \special{pdf:mapline unihei@Unicode@ unicode :0:wqy-zenhei.ttc}
- \special{pdf:mapline unifs@Unicode@ unicode :0:uming.ttc}
-
- \special{pdf:mapline gbksongsl@UGBK@ unicode :0:uming.ttc -s .167}
- \special{pdf:mapline gbkkaisl@UGBK@ unicode :0:ukai.ttc -s .167}
- \special{pdf:mapline gbkheisl@UGBK@ unicode :0:wqy-zenhei.ttc -s .167}
- \special{pdf:mapline gbkfssl@UGBK@ unicode :0:uming.ttc -s .167}
-
- \special{pdf:mapline unisongsl@Unicode@ unicode :0:uming.ttc -s .167}
- \special{pdf:mapline unikaisl@Unicode@ unicode :0:ukai.ttc -s .167}
- \special{pdf:mapline uniheisl@Unicode@ unicode :0:wqy-zenhei.ttc -s .167}
- \special{pdf:mapline unifssl@Unicode@ unicode :0:uming.ttc -s .167}
-
+ \special{pdf:mapline gbk@UGBK@ unicode :2:NotoSerifCJK-Regular.ttc}
+ \special{pdf:mapline gbksong@UGBK@ unicode :2:NotoSerifCJK-Regular.ttc}
+ \special{pdf:mapline gbkkai@UGBK@ unicode gkai00mp.ttf}
+ \special{pdf:mapline gbkhei@UGBK@ unicode :2:NotoSansCJK-Regular.ttc}
+ \special{pdf:mapline gbkfs@UGBK@ unicode :2:NotoSerifCJK-Regular.ttc}
+ \special{pdf:mapline cyberb@Unicode@ unicode :2:NotoSerifCJK-Regular.ttc}
+ \special{pdf:mapline unisong@Unicode@ unicode :2:NotoSerifCJK-Regular.ttc}
+ \special{pdf:mapline unikai@Unicode@ unicode gkai00mp.ttf}
+ \special{pdf:mapline unihei@Unicode@ unicode :2:NotoSansCJK-Regular.ttc}
+ \special{pdf:mapline unifs@Unicode@ unicode :2:NotoSerifCJK-Regular.ttc}
+ \special{pdf:mapline gbksongsl@UGBK@ unicode :2:NotoSerifCJK-Regular.ttc -s .167}
+ \special{pdf:mapline gbkkaisl@UGBK@ unicode gkai00mp.ttf -s .167}
+ \special{pdf:mapline gbkheisl@UGBK@ unicode :2:NotoSansCJK-Regular.ttc -s .167}
+ \special{pdf:mapline gbkfssl@UGBK@ unicode :2:NotoSerifCJK-Regular.ttc -s .167}
+ \special{pdf:mapline unisongsl@Unicode@ unicode :2:NotoSerifCJK-Regular.ttc -s .167}
+ \special{pdf:mapline unikaisl@Unicode@ unicode gkai00mp.ttf -s .167}
+ \special{pdf:mapline uniheisl@Unicode@ unicode :2:NotoSansCJK-Regular.ttc -s .167}
+ \special{pdf:mapline unifssl@Unicode@ unicode :2:NotoSerifCJK-Regular.ttc -s .167}
+\fi
%</ubuntu>
% \end{macrocode}
%
+% \paragraph{\pkg{zhwindowsfonts.tex}}
+%
% \begin{macrocode}
+%<*windows>
+\ifzhmappdf
+ \pdfmapline{=gbk@UGBK@ <simsun.ttc}
+ \pdfmapline{=gbksong@UGBK@ <simsun.ttc}
+ \pdfmapline{=gbkkai@UGBK@ <simkai.ttf}
+ \pdfmapline{=gbkhei@UGBK@ <simhei.ttf}
+ \pdfmapline{=gbkfs@UGBK@ <simfang.ttf}
+ \pdfmapline{=gbkli@UGBK@ <simli.ttf}
+ \pdfmapline{=gbkyou@UGBK@ <simyou.ttf}
+ \pdfmapline{=cyberb@Unicode@ <simsun.ttc}
+ \pdfmapline{=unisong@Unicode@ <simsun.ttc}
+ \pdfmapline{=unikai@Unicode@ <simkai.ttf}
+ \pdfmapline{=unihei@Unicode@ <simhei.ttf}
+ \pdfmapline{=unifs@Unicode@ <simfang.ttf}
+ \pdfmapline{=unili@Unicode@ <simli.ttf}
+ \pdfmapline{=uniyou@Unicode@ <simyou.ttf}
+ \pdfmapline{=gbksongsl@UGBK@ <simsun.ttc}
+ \pdfmapline{=gbkkaisl@UGBK@ <simkai.ttf}
+ \pdfmapline{=gbkheisl@UGBK@ <simhei.ttf}
+ \pdfmapline{=gbkfssl@UGBK@ <simfang.ttf}
+ \pdfmapline{=gbklisl@UGBK@ <simli.ttf}
+ \pdfmapline{=gbkyousl@UGBK@ <simyou.ttf}
+ \pdfmapline{=unisongsl@Unicode@ <simsun.ttc}
+ \pdfmapline{=unikaisl@Unicode@ <simkai.ttf}
+ \pdfmapline{=uniheisl@Unicode@ <simhei.ttf}
+ \pdfmapline{=unifssl@Unicode@ <simfang.ttf}
+ \pdfmapline{=unilisl@Unicode@ <simli.ttf}
+ \pdfmapline{=uniyousl@Unicode@ <simyou.ttf}
+\else
+ \special{pdf:mapline gbk@UGBK@ unicode :0:simsun.ttc -v 50}
+ \special{pdf:mapline gbksong@UGBK@ unicode :0:simsun.ttc -v 50}
+ \special{pdf:mapline gbkkai@UGBK@ unicode simkai.ttf -v 70}
+ \special{pdf:mapline gbkhei@UGBK@ unicode simhei.ttf -v 150}
+ \special{pdf:mapline gbkfs@UGBK@ unicode simfang.ttf -v 50}
+ \special{pdf:mapline gbkli@UGBK@ unicode simli.ttf -v 150}
+ \special{pdf:mapline gbkyou@UGBK@ unicode simyou.ttf -v 60}
+ \special{pdf:mapline cyberb@Unicode@ unicode :0:simsun.ttc -v 50}
+ \special{pdf:mapline unisong@Unicode@ unicode :0:simsun.ttc -v 50}
+ \special{pdf:mapline unikai@Unicode@ unicode simkai.ttf -v 70}
+ \special{pdf:mapline unihei@Unicode@ unicode simhei.ttf -v 150}
+ \special{pdf:mapline unifs@Unicode@ unicode simfang.ttf -v 50}
+ \special{pdf:mapline unili@Unicode@ unicode simli.ttf -v 150}
+ \special{pdf:mapline uniyou@Unicode@ unicode simyou.ttf -v 60}
+ \special{pdf:mapline gbksongsl@UGBK@ unicode :0:simsun.ttc -v 50 -s .167}
+ \special{pdf:mapline gbkkaisl@UGBK@ unicode simkai.ttf -v 70 -s .167}
+ \special{pdf:mapline gbkheisl@UGBK@ unicode simhei.ttf -v 150 -s .167}
+ \special{pdf:mapline gbkfssl@UGBK@ unicode simfang.ttf -v 50 -s .167}
+ \special{pdf:mapline gbklisl@UGBK@ unicode simli.ttf -v 150 -s .167}
+ \special{pdf:mapline gbkyousl@UGBK@ unicode simyou.ttf -v 60 -s .167}
+ \special{pdf:mapline unisongsl@Unicode@ unicode :0:simsun.ttc -v 50 -s .167}
+ \special{pdf:mapline unikaisl@Unicode@ unicode simkai.ttf -v 70 -s .167}
+ \special{pdf:mapline uniheisl@Unicode@ unicode simhei.ttf -v 150 -s .167}
+ \special{pdf:mapline unifssl@Unicode@ unicode simfang.ttf -v 50 -s .167}
+ \special{pdf:mapline unilisl@Unicode@ unicode simli.ttf -v 150 -s .167}
+ \special{pdf:mapline uniyousl@Unicode@ unicode simyou.ttf -v 60 -s .167}
\fi
-
+%</windows>
+% \end{macrocode}
+%
+% \begin{macrocode}
\ctex@zhmap@endinput
%</zhmap>
% \end{macrocode}
@@ -10562,7 +10880,7 @@ Copyright and Licence
\ExplSyntaxOn
\sys_if_engine_xetex:F
{
- \msg_new:nn { ctex } { xetex }
+ \msg_new:nnn { ctex } { xetex }
{ XeTeX~is~required~to~compile~this~document! }
\msg_fatal:nn { ctex } { xetex }
}
@@ -10588,7 +10906,7 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_make_spa:nn}
% |#1| 是 \file{spa} 文件å,|#2| 是由 CJK æ—å与字体构æˆçš„逗å·åˆ—表。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_make_spa:nn #1#2
+\cs_new_protected:Npn \ctex_make_spa:nn #1#2
{
\iow_open:Nn \g_@@_spa_iow {#1}
\clist_map_inline:nn {#2}
@@ -10619,7 +10937,7 @@ Copyright and Licence
}
\group_end:
}
-\cs_new_protected_nopar:Npn \@@_save_bounds:n #1
+\cs_new_protected:Npn \@@_save_bounds:n #1
{
\clist_put_right:Nx \l_@@_punct_bounds_clist
{
@@ -10632,7 +10950,7 @@ Copyright and Licence
%
% \pkg{CJKpunct} è¦æ±‚çš„æ ¼å¼æ˜¯è¾¹ç•Œç©ºç™½å®½åº¦ä¸Ž 1\,em 的比值的一百å€ã€‚
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_calc_bounds:nn #1#2
+\cs_new:Npn \@@_calc_bounds:nn #1#2
{
\fp_eval:n
{
@@ -10652,19 +10970,20 @@ Copyright and Licence
% \begin{macrocode}
%<*make>
\input ctexspamacro %
-
\MAKESPA {ctexpunct.spa}
{
{adobezhsong} {AdobeSongStd-Light} ,
{adobezhhei} {AdobeHeitiStd-Regular} ,
{adobezhkai} {AdobeKaitiStd-Regular} ,
{adobezhfs} {AdobeFangsongStd-Regular} ,
+%
{fandolzhsong} {FandolSong} ,
{fandolzhsongb} {FandolSong-Bold} ,
{fandolzhhei} {FandolHei} ,
{fandolzhheib} {FandolHei-Bold} ,
{fandolzhkai} {FandolKai} ,
{fandolzhfs} {FandolFang} ,
+%
{founderzhsong} {FZShuSong-Z01} ,
{founderzhsongb} {FZXiaoBiaoSong-B05} ,
{founderzhhei} {FZHei-B01} ,
@@ -10674,9 +10993,26 @@ Copyright and Licence
{founderzhli} {FZLiShu-S01} ,
{founderzhyou} {FZXiYuan-M01} ,
{founderzhyoub} {FZZhunYuan-M02} ,
- {ubuntuzhsong} {AR PL UMing CN} ,
- {ubuntuzhhei} {WenQuanYi Zen Hei} ,
- {ubuntuzhkai} {AR PL UKai CN} ,
+%
+ {maczhsong} {Songti SC Light} ,
+ {maczhsongb} {Songti SC Bold} ,
+ {maczhhei} {Heiti SC Medium} ,
+ {maczhheil} {Heiti SC Light} ,
+ {maczhkai} {Kaiti SC} ,
+ {maczhkaib} {Kaiti SC Bold} ,
+ {maczhfs} {STFangsong} ,
+ {maczhli} {Baoli SC} ,
+ {maczhyou} {Yuanti SC Light} ,
+ {maczhyoub} {Yuanti SC Regular} ,
+ {maczhpf} {PingFang SC} ,
+ {maczhpfb} {PingFang SC Semibold} ,
+%
+ {ubuntuzhsong} {Noto Serif CJK SC} ,
+ {ubuntuzhsongb} {Noto Serif CJK SC Bold} ,
+ {ubuntuzhhei} {Noto Sans CJK SC} ,
+ {ubuntuzhheib} {Noto Sans CJK SC Bold} ,
+ {ubuntuzhkai} {AR PL KaitiM GB} ,
+%
{windowszhsong} {SimSun} ,
{windowszhhei} {SimHei} ,
{windowszhkai} {KaiTi} ,
@@ -10686,7 +11022,6 @@ Copyright and Licence
{windowszhyahei} {Microsoft YaHei} ,
{windowszhyaheib} {Microsoft YaHei Bold}
}
-
\primitive\end
%</make>
%</spa>
@@ -10827,6 +11162,7 @@ Copyright and Licence
% \subsection{\pkg{ctexhook} å®åŒ…}
%
% \changes{v2.2}{2015/06/26}{将文档开头和å®åŒ…末尾钩å­æå–到 \pkg{ctexhook} å®åŒ…中。}
+% \changes{v2.5}{2020/04/21}{增加å®åŒ…开头钩å­ã€‚}
%
% \begin{macrocode}
%<*ctexhook>
@@ -10835,13 +11171,13 @@ Copyright and Licence
% \begin{macro}[int]{\ctex_at_end_preamble:n,\ctex_after_end_preamble:n}
% 实现 \pkg{etoolbox} å®åŒ…çš„ \tn{AtEndPreamble} å’Œ \tn{AfterEndPreamble}。
% \begin{macrocode}
-\cs_new_protected:Npn \ctex_at_end_preamble:n #1
- { \tl_gput_right:Nn \g_@@_end_preamble_hook_tl {#1} }
-\cs_new_protected:Npn \ctex_after_end_preamble:n #1
- { \tl_gput_right:Nn \g_@@_after_end_preamble_hook_tl {#1} }
-\cs_new_protected_nopar:Npn \CTEX@document@left@hook
+\cs_new_protected:Npn \ctex_at_end_preamble:n
+ { \tl_gput_right:Nn \g_@@_end_preamble_hook_tl }
+\cs_new_protected:Npn \ctex_after_end_preamble:n
+ { \tl_gput_right:Nn \g_@@_after_end_preamble_hook_tl }
+\cs_new_protected:Npn \CTEX@document@left@hook
{ \group_end: \g_@@_end_preamble_hook_tl \group_begin: }
-\cs_new_protected_nopar:Npn \CTEX@document@right@hook
+\cs_new_protected:Npn \CTEX@document@right@hook
{ \scan_stop: \g_@@_after_end_preamble_hook_tl \tex_ignorespaces:D }
\cs_set_nopar:Npx \document
{
@@ -10854,51 +11190,93 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}[int]{\ctex_at_begin_package:nn}
+% 如果å®åŒ…å·²ç»è¢«è½½å…¥ï¼Œåˆ™é’©å­æ— æ•ˆï¼Œç»™å‡ºè­¦å‘Šã€‚
+% 在 \pkg{filehook} çš„é’©å­\emph{之å‰}起作用。
+% \begin{macrocode}
+\cs_new_protected:Npn \ctex_at_begin_package:nn #1
+ {
+ \@ifpackageloaded {#1}
+ { \@@_package_loaded_warning:nn {#1} }
+ { \ctex_gadd_package_hook:nnn { begin } {#1} }
+ }
+\cs_new_protected:Npn \@@_package_loaded_warning:nn #1#2
+ { \msg_warning:nnx { ctex } { invalid-hook } {#1} }
+\msg_new:nnn { ctex } { invalid-hook }
+ {
+ Package~`#1'~is~loaded. \\
+ \token_to_str:N \ctex_at_begin_package:nn \{#1\}\{...\}~is~invalid.
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[int]{\ctex_at_end_package:nn}
% 与 \pkg{filehook} çš„ \tn{AtEndOfPackageFile*} 类似,如果原æ¥æ²¡æœ‰åœ¨è½½å…¥å®åŒ…则
% 在å®åŒ…末尾执行语å¥ï¼Œå¦åˆ™ç«‹å³æ‰§è¡Œã€‚
+% 在 \pkg{filehook} çš„é’©å­\emph{之åŽ}起作用。
% \begin{macrocode}
-\cs_new_protected:Npn \ctex_at_end_package:nn #1#2
+\cs_new_protected:Npn \ctex_at_end_package:nn #1
{
\@ifpackageloaded {#1}
- {#2}
- { \ctex_gadd_hook:cn { g_@@_at_end_ #1 _hook_tl } {#2} }
+ { \use:n }
+ { \ctex_gadd_package_hook:nnn { end } {#1} }
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\ctex_gadd_hook:Nn, \ctex_gadd_hook:cn}
+% \begin{macro}[int]{\ctex_gadd_package_hook:nnn,
+% \ctex_gadd_hook:Nn, \ctex_gadd_hook:cn}
% 给钩å­é™„加内容。
% \begin{macrocode}
-\cs_new_protected:Npn \ctex_gadd_hook:Nn #1#2
+\cs_new_protected:Npn \ctex_gadd_package_hook:nnn #1#2
+ { \ctex_gadd_hook:cn { g_@@_at_ #1 _ #2 _hook_tl } }
+\cs_new_protected:Npn \ctex_gadd_hook:Nn #1
{
\tl_if_exist:NF #1 { \tl_new:N #1 }
- \tl_gput_right:Nn #1 {#2}
+ \tl_gput_right:Nn #1
}
\cs_generate_variant:Nn \ctex_gadd_hook:Nn { c }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]{\ctex_package_end_hook:n, \ctex_package_end_hook:o}
-% å®åŒ…末尾钩å­ï¼Œåªæ‰§è¡Œä¸€æ¬¡ï¼Œç”¨åŽæ¸…除。
+% \begin{macro}[int]{\ctex_use_package_hook:nn}
+% å®åŒ…é’©å­ï¼Œåªæ‰§è¡Œä¸€æ¬¡ï¼Œç”¨åŽæ¸…除。
+% \begin{macrocode}
+\cs_new_protected:Npn \ctex_use_package_hook:nn #1#2
+ {
+ \group_begin: \exp_args:NNc \group_end:
+ \@@_use_package_hook_aux:N { g_@@_at_ #1 _ #2 _hook_tl }
+ }
+\cs_new_protected:Npn \@@_use_package_hook_aux:N #1
+ { \cs_if_exist_use:NT #1 { \cs_undefine:N #1 } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[int]{\@reset@ptions,\CTEX@reset@ptions@hook}
+% \tn{@pushfilename} 内部的 \tn{@currname} å’Œ \tn{@currext} ä¿å­˜çš„是
+% å‰ä¸€ä¸ªå®åŒ…的状æ€ï¼Œä¸èƒ½ä½¿ç”¨ã€‚需è¦å¯¹å…¶åŽçš„ \tn{@reset@ptions} åšè¡¥ä¸æ¥å®žçŽ°
+% \cs{ctex_at_begin_package:nn} 的功能。
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \ctex_package_end_hook:n #1
+\tl_put_right:Nn \@reset@ptions { \CTEX@reset@ptions@hook }
+\cs_new_protected:Npn \CTEX@reset@ptions@hook
{
- \cs_if_exist_use:cT { g_@@_at_end_ #1 _hook_tl }
- { \cs_undefine:c { g_@@_at_end_ #1 _hook_tl } }
+ \cs_if_eq:NNT \@currext \@pkgextension
+ { \ctex_use_package_hook:nn { begin } { \@currname } }
}
-\cs_generate_variant:Nn \ctex_package_end_hook:n { o }
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}[int]{\@popfilename,\CTEX@popfilename@hook}
% 对 \tn{@popfilename} åšè¡¥ä¸æ¥å®žçŽ° \cs{ctex_at_end_package:nn} 的功能。
% \begin{macrocode}
-\tl_put_left:Nn \@popfilename
+\tl_put_left:Nn \@popfilename { \CTEX@popfilename@hook }
+\cs_new_protected:Npn \CTEX@popfilename@hook
{
\cs_if_eq:NNT \@currext \@pkgextension
- { \ctex_package_end_hook:o { \@currname } }
+ { \ctex_use_package_hook:nn { end } { \@currname } }
}
% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
%</ctexhook>
@@ -10913,10 +11291,6 @@ Copyright and Licence
%<*ctexpatch>
% \end{macrocode}
%
-% \begin{macrocode}
-\cs_if_exist:NF \str_new:N { \RequirePackage { l3str } }
-% \end{macrocode}
-%
% \begin{macro}[int]{\ctex_patch_cmd_once:NnnnTF}
% åªè¿›è¡Œç¬¬ä¸€æ¬¡åŒ¹é…进行替æ¢ã€‚å‚æ•° |#2| 是å®é‡å»ºæ—¶çš„ \tn{catcode} 设置。
% \begin{macrocode}
@@ -10988,14 +11362,14 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \ctex_patch_boot:NNnnTF #1#2#3#4#5#6
{
- \tl_set:Nn \@@_patch_true:w {#5}
- \tl_set:Nn \@@_patch_false:w {#6}
+ \cs_set_protected:Npx \@@_patch_true:w { \exp_not:n {#5} }
+ \cs_set_protected:Npx \@@_patch_false:w { \exp_not:n {#6} }
\group_begin:
\char_set_catcode_other:n { 35 }
\ctex_parse_name:NN #1 #2 {#3} {#4}
}
-\tl_new:N \@@_patch_true:w
-\tl_new:N \@@_patch_false:w
+\cs_new_eq:NN \@@_patch_true:w \use_i:nn
+\cs_new_eq:NN \@@_patch_false:w \use_ii:nn
% \end{macrocode}
% \end{macro}
%
@@ -11040,7 +11414,7 @@ Copyright and Licence
\exp_not:N ##2
\exp_not:c { ##3 ~ }
\exp_not:c { #1##3 }
- } {##3} ##1
+ } { ##3 } ##1
}
{ ##1##2 }
}
@@ -11057,8 +11431,8 @@ Copyright and Licence
\str_if_eq:eeTF
{ \exp_not:n { #1@protected@ ##3 #1##3 } }
{
- \exp_last_unbraced:Nf \@@_parse_name:w
- \cs_replacement_spec:N ##3 #3 ~ #2 \q_stop
+ \exp_last_unbraced:Ne \@@_parse_name:w
+ { \cs_replacement_spec:N ##3 } #3 ~ #2 \q_stop
}
{ #1##5 ~ } { ##5 ~ }
}
@@ -11270,903 +11644,4 @@ Copyright and Licence
%
% \Finale
%
-% \endinput
-%
-% \DisableImplementation
-%
-% \begin{implementation}
-%
-% \subsection{\cls{ctxdoc}}
-%
-% \begin{macrocode}
-%<*ctxdoc>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<@@=ctxdoc>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ExplSyntaxOff
-\let\pdfmdfivesum\mdfivesum
-\DeclareOption*{\PassOptionsToClass{\CurrentOption}{l3doc}}
-\PassOptionsToClass{a4paper,full}{l3doc}
-\ProcessOptions
-\@namedef{ver@thumbpdf.sty}{9999/99/99}
-\LoadClass{l3doc}
-\RequirePackage[UTF8, punct = kaiming, heading, fontset = none,
- linespread = 1.2, sub3section]{ctex}
-\ifxetex
- \xeCJKsetup{AutoFakeBold=false}
-\fi
-\ctexset{
- fontset,
- abstractname = 简介,
- indexname = 代ç ç´¢å¼•,
- section = {
- format = \Large\bfseries\raggedright,
- name = {第,节},
- },
-}
-\RequirePackage[toc]{multitoc}
-\RequirePackage{geometry}
-\RequirePackage{tabularx}
-\RequirePackage{makecell}
-\RequirePackage{threeparttable}
-\RequirePackage{siunitx}
-\RequirePackage{unicode-math}
-\RequirePackage{xcolor}
-\RequirePackage{caption}
-\RequirePackage{fancyvrb-ex}
-\RequirePackage{zref-base}
-\geometry{includemp,hmargin={0mm,15mm},vmargin={25mm,15mm},footskip=7mm}
-\hypersetup{pdfstartview=FitH,bookmarksdepth=subparagraph}
-\setcounter{secnumdepth}{4}
-\setcounter{tocdepth}{2}
-\newcommand*\email{\nolinkurl}
-\setmainfont{TeX Gyre Pagella}
-\setsansfont{TeX Gyre Heros}
-\setmonofont[
- HyphenChar = None ,
- UprightFont=* Light, BoldFont=* Bold,
- SlantedFont=* Light Oblique]{CMU Typewriter Text}
-\setmathfont{texgyrepagella-math.otf}
-\captionsetup{strut=off, labelsep=quad, labelfont+=bf}
-%% <--- http://tex.stackexchange.com/a/40896
-\patchcmd{\@addtocurcol}%
- {\vskip \intextsep}%
- {\edef\save@first@penalty{\the\lastpenalty}\unpenalty
- \ifnum \lastpenalty = \@M % hopefully the OR penalty
- \unpenalty
- \else
- \penalty \save@first@penalty \relax % put it back
- \fi
- \ifnum\outputpenalty <-\@Mii
- \addvspace\intextsep
- \vskip\parskip
- \else
- \addvspace\intextsep
- \fi}%
- {\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
-\patchcmd{\@addtocurcol}%
- {\vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi}%
- {\ifnum\outputpenalty <-\@Mii
- \aftergroup\vskip\aftergroup\intextsep
- \aftergroup\nointerlineskip
- \else
- \vskip\intextsep
- \fi}%
- {\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
-\patchcmd{\@getpen}{\@M}{\@Mi}
- {\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
-%% --->
-%% ä¸å¯¹ä»£ç å®žçŽ°çš„ \section 以下标题编目录。
-\AtBeginEnvironment{implementation}{%
- \ifnum\value{tocdepth}>\@ne
- \addtocontents{toc}{\protect\value{tocdepth}=1\relax}%
- \fi}
-\ifxetex
- \let\ctexdocverbaddon\xeCJKVerbAddon
- \def\ctexdisableecglue{\xeCJKsetup{CJKecglue}}
- \def\ctexplainps{\xeCJKsetup{PunctStyle=plain}}
- \appto\meta@font@select{\ifinner\ctexdisableecglue\fi}
-\else
- \let\ctexdocverbaddon\relax
- \let\ctexplainps\relax
- \def\ctexdisableecglue{\ltjsetparameter{autoxspacing=false}}
- \appto\meta@font@select{\ctexdisableecglue}
-\fi
-\setlist{noitemsep,topsep=\smallskipamount}
-\setlist[1]{labelindent=\parindent}
-\setlist[enumerate]{leftmargin=*}
-\setlist[itemize]{leftmargin=*}
-\newlist{optdesc}{description}{3}
-%% 设置间è·ä¸º \marginparsep,与 l3doc 一致
-\setlist[optdesc]{%
- font=\mdseries\small\ttfamily,align=right,listparindent=\parindent,
- labelsep=\marginparsep,labelindent=-\marginparsep,leftmargin=*}
-%% é‡æ–°å®šä¹‰ threeparttable 包的 tablenotes 环境
-\renewlist{tablenotes}{description}{1}
-\setlist[tablenotes]{%
- format=\normalfont\tnote@item,align=right,listparindent=\parindent,
- labelindent=\tabcolsep,leftmargin=*,rightmargin=\tabcolsep,
- after=\@noparlisttrue}
-\AtBeginEnvironment{tablenotes}{%
- \setlength\parindent{2\ccwd}%
- \normalfont\footnotesize}
-\AtBeginEnvironment{threeparttable}{%
- \stepcounter{tpt@id}%
- \edef\curr@tpt@id{tpt@\arabic{tpt@id}}}
-\newcounter{tpt@id}
-\def\tnote@item#1{%
- \Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}#1}
-\def\TPTtagStyle#1{\hyperlink{\curr@tpt@id-#1}{#1}}
-\fvset{
- fontsize=\small,baselinestretch=1,numbersep=5pt,
- formatcom=\ctexdocverbaddon,
- listparameters=\setlength\topsep{\MacrocodeTopsep}}
-\DefineVerbatimEnvironment{frameverb}{Verbatim}{%
- gobble=4,
- frame=single,framesep=8pt,
- listparameters=
- \setlength\topsep{\medskipamount}%
- \appto\FV@EndList{\nointerlineskip}}
-\DefineVerbatimEnvironment{ctexexam}{Verbatim}{%
- gobble=4,
- frame=single,framesep=10pt,
- label=\rule{0pt}{12pt}\textnormal{\bfseries 例 \arabic{ctexexam}},
- listparameters=
- \setlength\topsep{\bigskipamount}%
- \refstepcounter{ctexexam}\ctexexamlabelref
- \appto\FV@EndList{\nointerlineskip}}
-\define@key{FV}{labelref}{\def\ctexexamlabelref{\label{#1}}}
-\let\ctexexamlabelref\empty
-\newcounter{ctexexam}
-\BeforeBeginEnvironment{function}{\par\nointerlineskip}
-\AtEndEnvironment{function}{%
- \par\xdef\ctexfixprevdepth{\prevdepth=\the\prevdepth\space}}
-\AfterEndEnvironment{function}{\ctexfixprevdepth}
-\AtBeginEnvironment{syntax}{\linespread{1}\ctexplainps\ctexdisableecglue}
-\BeforeBeginEnvironment{SideBySideExample}{\par\addvspace{\medskipamount}}
-\newcommand*\exptarget{\Hy@raisedlink{\hypertarget{expstar}{}}}
-\newcommand*\rexptarget{\Hy@raisedlink{\hypertarget{rexpstar}{}}}
-\newcommand*\expstar{\hyperlink{expstar}{$\star$}}
-\newcommand*\rexpstar{\hyperlink{rexpstar}{\ding{73}}}
-\ExplSyntaxOn
-%% l3doc 会设置列表环境中 \listparindent=\z@,我们在这里æ¢å¤å®ƒã€‚
-\cs_set_eq:NN \list \__codedoc_oldlist:nn
-\cs_new_nopar:Npn \zihaopt #1
- {
- \exp_last_unbraced:Nf \tl_head:w
- { \prop_item:Nn \c__ctex_font_size_prop {#1} } { } \q_stop
- }
-%% 抑制首段的 \parskip
-\ctex_patch_cmd_once:NnnnTF \__codedoc_function_descr_start:w
- { }
- { \noindent }
- { \skip_vertical:n { -\parskip } \noindent }
- { \iow_term:n { *** ~ SUCCESS ~ *** } }
- { \iow_term:n { *** ~ FAIL ~ *** } }
-%% l3doc 会在 function 环境的 syntax å’Œ descr ç›’å­ä¸­é—´åŠ ä¸Š \medskipamount çš„è·ç¦»ã€‚
-%% 但是若 syntax ç›’å­ä¸ºç©ºï¼ˆæœªä½¿ç”¨ syntax 环境),就会显得ä¸å¥½çœ‹ã€‚
-%% 此时我们通过将 \medskipamount 设置为零æ¥ä¿®æ­£ã€‚若盒å­éžç©ºï¼Œåˆ™å°† \parskip 还回去。
-\ctex_preto_cmd:NnnTF \__codedoc_function_assemble:
- { }
- { \ctex_doc_fix_yoffset: }
- { \iow_term:n { *** ~ SUCCESS ~ *** } }
- { \iow_term:n { *** ~ FAIL ~ *** } }
-\cs_new_protected_nopar:Npn \ctex_doc_fix_yoffset:
- {
- \box_if_empty:NTF \g__codedoc_syntax_box
- { \skip_zero:N \medskipamount }
- { \skip_add:Nn \medskipamount { \parskip } }
- }
-%% 左侧边注的函数列表采用å•å€è¡Œè·
-\ctex_preto_cmd:NnnTF \__codedoc_typeset_functions:
- { }
- { \MacroFont }
- { \iow_term:n { *** ~ SUCCESS ~ *** } }
- { \iow_term:n { *** ~ FAIL ~ *** } }
-\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_init:
- { }
- { \hbox:n }
- { \MacroFont \hbox:n }
- { \iow_term:n { *** ~ SUCCESS ~ *** } }
- { \iow_term:n { *** ~ FAIL ~ *** } }
-\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_dump:
- { }
- { \hbox_unpack_drop:N }
- { \MacroFont \hbox_unpack_drop:N }
- { \iow_term:n { *** ~ SUCCESS ~ *** } }
- { \iow_term:n { *** ~ FAIL ~ *** } }
-\cs_set_eq:NN \__codedoc_macro_end_style:n \use_none:n
-\cs_set_protected:Npn \__codedoc_macro_typeset_one:nN #1#2
- {
- \vbox_set:Nn \l__codedoc_macro_box
- {
- \MacroFont
- \vbox_unpack_drop:N \l__codedoc_macro_box
- \hbox_set:Nn \l_tmpa_box
- { \__codedoc_print_macroname:nN {#1} #2 }
- \dim_set:Nn \l_tmpa_dim { \marginparwidth - \labelsep }
- \dim_compare:nNnT { \box_wd:N \l_tmpa_box } > \l_tmpa_dim
- {
- \box_resize_to_wd_and_ht:Nnn \l_tmpa_box
- { \l_tmpa_dim }
- { \box_ht:N \l_tmpa_box }
- }
- \hbox_overlap_left:n
- {
- \box_use:N \l_tmpa_box
- \skip_horizontal:n { \marginparsep - \labelsep }
- }
- }
- \int_incr:N \l__codedoc_macro_int
- }
-\cs_set_protected:Npn \__codedoc_print_macroname:nN #1#2
- {
- \strut
- \__codedoc_get_hyper_target:xN
- {
- \exp_not:n {#1}
- \bool_if:NT #2 { \tl_to_str:n {TF} }
- }
- \l__codedoc_tmpa_tl
- \cs_if_exist:cTF { r@ \l__codedoc_tmpa_tl }
- { \exp_args:NNo \label@hyperref [ \l__codedoc_tmpa_tl ] }
- { \use:n }
- {
- \tl_set:Nn \l__codedoc_tmpa_tl {#1}
- \tl_replace_all:Non \l__codedoc_tmpa_tl
- { \c_catcode_other_space_tl }
- { \fontspec_visible_space: }
- \__codedoc_macroname_prefix:o \l__codedoc_tmpa_tl
- \__codedoc_macroname_suffix:N #2
- }
- }
-\AtBeginEnvironment { syntax }
- {
- \char_set_catcode_active:N \|
- \char_set_active_eq:NN \| \orbar
- \char_set_catcode_active:N \(
- \char_set_active_eq:NN \( \defaultvalaux
- }
-%% ä¸å¯¹ç›®å½•ä¸­å‡ºçŽ°çš„ \cs å’Œ \tn 等编索引
-\DeclareDocumentCommand \StopSpecialIndexModule { }
- { \cs_set_eq:NN \__codedoc_special_index_module:nnnnN \use_none:nnnnn }
-\tl_map_inline:nn { \actualchar \encapchar \levelchar }
- { \exp_args:Nx \DoNotIndex { \bslash \tl_to_str:N #1 } }
-\DeclareDocumentCommand \package { o m }
- {
- \exp_args:Nx \href
- {
- http \c_colon_str //www.ctan.org/pkg/
- \IfNoValueTF {#1} { \str_fold_case:n {#2} } {#1}
- }
- { \pkg {#2} }
- }
-\DeclareDocumentCommand \GetFileId { m }
- {
- \GetFileInfo {#1}
- \file_get:nnNTF { \c_sys_jobname_str .id }
- { \int_set:Nn \tex_endlinechar:D { -1 } } \l_@@_tmp_tl
- { \exp_after:wN \GetIdInfo \l_@@_tmp_tl }
- { \GetIdInfo $Id$ }
- { \fileinfo }
- }
-\cs_new_eq:NN \@@_ltx_changes:nnn \changes@
-\cs_set_protected:Npn \changes@ #1#2
- {
- \@@_save_version_date:nn {#1} {#2}
- \tl_if_empty:nTF {#1}
- { \@@_ltx_changes:nnn }
- { \@@_version_zfill:wnnn #1 \q_stop }
- {#1} {#2}
- }
-\cs_new_protected:Npn \@@_version_zfill:wnnn #1#2 \q_stop
- {
- \str_if_eq:nnTF {#1} { v }
- { \@@_version_zfill:nnnn {#2} }
- { \@@_ltx_changes:nnn }
- }
-\cs_new_protected:Npn \@@_version_zfill:nnnn #1#2
- {
- \tl_clear:N \l_@@_tmp_tl
- \int_zero:N \l_tmpa_int
- \seq_set_split:Nnn \l_tmpa_seq { . } {#1}
- \seq_map_function:NN \l_tmpa_seq \@@_version_zfill:n
- \int_compare:nNnF \l_tmpa_int > 2
- {
- \tl_put_right:Nx \l_@@_tmp_tl
- { \prg_replicate:nn { 3 - \l_tmpa_int } { 00000 } }
- }
- \@@_ltx_changes:nnn { \l_@@_tmp_tl \actualchar #2 }
- }
-\tl_new:N \l_@@_tmp_tl
-\cs_new_protected:Npn \@@_version_zfill:n #1
- {
- \int_incr:N \l_tmpa_int
- \tl_put_right:Nx \l_@@_tmp_tl
- {
- \prg_replicate:nn
- { \int_max:nn { 0 } { 5 - \tl_count:n {#1} } } { 0 }
- \exp_not:n {#1}
- }
- }
-\cs_new_protected:Npn \@@_save_version_date:nn #1#2
- {
- \prop_get:NnNTF \g_@@_version_date_prop {#1} \l_@@_tmp_tl
- { \exp_after:wN \@@_save_version_date:nnnn \l_@@_tmp_tl {#2} {#1} }
- { \@@_save_version_date:nnn {#1} {#2} {#2} }
- }
-\cs_new_protected:Npn \@@_save_version_date:nnnn #1#2#3#4
- {
- \@@_if_date_later:nnTF {#1} {#3}
- { \@@_save_version_date:nnn {#4} {#3} {#2} }
- {
- \@@_if_date_later:nnT {#3} {#2}
- { \@@_save_version_date:nnn {#4} {#1} {#3} }
- }
- }
-\prg_new_conditional:Npnn \@@_if_date_later:nn #1#2 { TF , T }
- {
- \if_int_compare:w \@@_parse_date:w #1 / / / 0 \q_stop >
- \@@_parse_date:w #2 / / / 0 \q_stop \exp_stop_f:
- \prg_return_true: \else: \prg_return_false: \fi:
- }
-\cs_new:Npn \@@_parse_date:w #1/#2/#3/ #4 \q_stop
- { #1#2#3 }
-\cs_new_protected:Npn \@@_save_version_date:nnn #1#2#3
- { \prop_gput:Nnn \g_@@_version_date_prop {#1} { {#2} {#3} } }
-\cs_new_protected:Npn \CTEX@versionitem #1 \efill
- {
- \@idxitem
- \prop_get:NnNTF \g_@@_version_date_prop {#1} \l_@@_tmp_tl
- { \exp_after:wN \@@_version_item:nnn \l_@@_tmp_tl {#1} }
- { \BOOM }
- }
-\cs_new_protected:Npn \@@_version_item:nnn #1#2#3
- {
- \noindent
- \Hy@raisedlink { \belowpdfbookmark {#3} { HD.#3 } }
- \textbf {#3} \hfill
- \hbox:n
- {
- \footnotesize
- \str_if_eq:nnTF {#1} {#2}
- { ( #1 ) }
- { ( #1 ~ -- ~ #2 ) }
- }
- \par \nopagebreak
- }
-\prop_new:N \g_@@_version_date_prop
-\ctex_patch_cmd:Nnn \HDorg@theglossary
- { \let \item \@idxitem }
- { \let \item \CTEX@versionitem }
-\ctex_patch_cmd:Nnn \l@section { 2.5em } { 1.5em }
-\ctex_patch_cmd:Nnn \l@subsection { 2.5em } { 1.5em }
-\ctex_patch_cmd:Nnn \@wrglossary
- { hdpindex }
- {
- \ifnum \c@HD@hypercount = \z@
- hdpindex
- \else
- hdclindex { \the \c@HD@hypercount }
- \fi
- }
-%% é‡å®šä¹‰ macrocode 环境的实现,é€è¡Œå¤„ç†
-\cs_set_protected_nopar:Npn \xmacro@code
- { \@@_marco_code:w }
-\cs_set_protected_nopar:Npn \sxmacro@code
- {
- \fontspec_print_visible_spaces:
- \xmacro@code
- }
-\cs_new_protected_nopar:Npn \@@_marco_code:w
- {
- \ifcodeline@index
- \@@_marco_every_par:n { \@@_code_line_no: }
- \else:
- \@@_marco_every_par:n { }
- \fi:
- \exp_args:Nx \@@_make_finish_tag:n { \@currenvir }
- \@@_verbatim_start:w
- }
-\cs_new_protected:Npn \@@_marco_every_par:n #1
- {
- \everypar
- {
- \everypar {#1}
- \if@inlabel
- \global \@inlabelfalse
- \@noparlistfalse
- \llap { \box \@labels \hskip \leftskip }
- \fi
- #1
- }
- }
-\ctex_patch_cmd:Nnn \macro@code
- { \if@inlabel \leavevmode \fi }
- { \partopsep \z@skip }
-\group_begin:
- \int_set:Nn \tex_endlinechar:D { -1 }
- \use:n
- {
- \char_set_catcode_active:n { 32 }
- \tl_const:Nn \c_@@_active_space_tl
- }
- { }
-\group_end:
-\group_begin:
- \char_set_catcode_active:n { 13 }
- \cs_new_protected:Npx \@@_make_finish_tag:n #1
- {
- \tl_set:Nn \exp_not:N \l_@@_verbatim_finish_tl
- {
- \c_percent_str
- \prg_replicate:nn { 4 }
- { \exp_not:o { \c_@@_active_space_tl } }
- \exp_not:o { \active@escape@char } end
- \c_left_brace_str #1 \c_right_brace_str
- \exp_not:N ^^M
- }
- }
- \cs_new_protected:Npn \@@_verbatim_start:w #1
- {
- \str_if_eq:nnTF {#1} { ^^M }
- { \@@_verbatim_read_line:w }
- { \@@_verbatim_read_line:w #1 }
- }
- \cs_new_protected:Npn \@@_verbatim_read_line:w #1 ^^M
- {
- \tl_set:Nn \l_@@_verbatim_line_tl { #1 ^^M }
- \tl_if_eq:NNTF \l_@@_verbatim_line_tl \l_@@_verbatim_finish_tl
- { \exp_args:Nx \end { \@currenvir } }
- {
- \@@_verbatim_process_line:
- \@@_verbatim_read_line:w
- }
- }
- \cs_new_protected:Npn \@@_swap_cr:
- { \exp_after:wN \@@_swap_cr:w \l_@@_verbatim_line_tl }
- \cs_new_protected:Npn \@@_swap_cr:w #1 ^^M
- {
- \group_insert_after:N ^^M
- \tl_set:Nn \l_@@_verbatim_line_tl {#1}
- }
- \tl_const:Nn \c_@@_active_cr_tl { ^^M }
-\group_end:
-\tl_new:N \l_@@_verbatim_line_tl
-\tl_new:N \l_@@_verbatim_finish_tl
-\tl_new:N \g_@@_verbatim_verb_stop_tl
-\cs_new_protected_nopar:Npn \@@_process_normal_line:
- {
- \str_if_eq:eeTF
- { \str_head:N \l_@@_verbatim_line_tl } { \c_percent_str }
- { \@@_check_angle:x { \tl_tail:N \l_@@_verbatim_line_tl } }
- { \@@_output_line: }
- }
-\cs_new_protected_nopar:Npn \@@_process_verb_line:
- {
- \tl_if_eq:NNTF \l_@@_verbatim_line_tl \g_@@_verbatim_verb_stop_tl
- {
- \tl_gclear:N \g_@@_verbatim_verb_stop_tl
- \cs_gset_eq:NN \@@_verbatim_process_line: \@@_process_normal_line:
- \@@_output_module:nn
- { \color { verb@guard } }
- {
- \@@_swap_cr:
- \@@_module_pop:n { \l_@@_verbatim_line_tl }
- }
- }
- { \tl_use:N \l_@@_verbatim_line_tl }
- }
-\cs_new_eq:NN \@@_verbatim_process_line: \@@_process_normal_line:
-\DeclareDocumentCommand \CheckModules { }
- { \cs_set_eq:NN \@@_verbatim_process_line: \@@_process_normal_line: }
-\DeclareDocumentCommand \DontCheckModules { }
- { \cs_set_eq:NN \@@_verbatim_process_line: \@@_output_line: }
-\cs_new_protected:Npn \@@_check_angle:n #1
- {
- \str_if_eq:eeTF { \str_head:n {#1} } { < }
- { \@@_check_module:x { \tl_tail:n {#1} } }
- { \@@_output_percent_line: }
- }
-\cs_generate_variant:Nn \@@_check_angle:n { x }
-\cs_new_protected:Npn \@@_check_module:n #1
- {
- \exp_args:Nx \str_case:nnF { \str_head:n {#1} }
- {
- { * } { \@@_module_star:w }
- { / } { \@@_module_slash:w }
- { @ } { \@@_module_at:w }
- { < } { \@@_module_verb:w }
- }
- { \@@_module_pm:w }
- #1 \q_stop
- }
-\cs_generate_variant:Nn \@@_check_module:n { x }
-\group_begin:
- \char_set_catcode_active:N \>
- \cs_new_protected:Npn \@@_module_star:w #1 > #2 \q_stop
- {
- \@@_output_module:nn
- { \@@_star_color: }
- { \@@_module_push:n { \@@_module_angle:n {#1} } }
- \@@_output_line:n {#2}
- \@@_star_format:
- }
- \cs_new_protected:Npn \@@_module_slash:w #1 > #2 \q_stop
- {
- \@@_output_module:nn
- { \@@_slash_color: }
- { \@@_module_pop:n { \@@_module_angle:n {#1} } }
- \@@_output_line:n {#2}
- \@@_slash_format:
- }
- \cs_new_protected:Npn \@@_module_at:w @ @ = #1 > #2 \q_stop
- {
- \@@_output_module:nn
- { \color { at@guard } }
- { \@@_module_angle:n { @ @ = #1 } }
- \tl_gset:Nn \g__codedoc_module_name_tl {#1}
- \@@_output_line:n {#2}
- }
- \cs_new_protected:Npn \@@_module_pm:w #1 > #2 \q_stop
- {
- \tex_noindent:D
- \hbox_overlap_left:n
- {
- \@@_output_module:nn
- { \@@_pm_color: }
- { \@@_module_angle:n {#1} }
- \skip_horizontal:n { \leftskip + \smallskipamount }
- }
- \group_begin:
- \@@_pm_format:
- \@@_output_line:n {#2}
- \group_end:
- }
- \cs_new_protected:Npn \@@_module_verb:w #1 \q_stop
- {
- \cs_gset_eq:NN \@@_verbatim_process_line: \@@_process_verb_line:
- \tl_gset:Nx \g_@@_verbatim_verb_stop_tl
- { \c_percent_str \tl_tail:n {#1} }
- \@@_output_module:nn
- { \color { verb@guard } }
- {
- \@@_swap_cr:
- \@@_module_push:n { \l_@@_verbatim_line_tl }
- }
- }
-\group_end:
-\cs_new_protected_nopar:Npn \@@_output_line:
- {
- \tex_noindent:D
- \@@_replace_at_at:N \l_@@_verbatim_line_tl
- \tl_use:N \l_@@_verbatim_line_tl
- }
-\cs_new_protected:Npn \@@_replace_at_at:N #1
- {
- \tl_if_empty:NF \g__codedoc_module_name_tl
- {
- \exp_args:NNo \@@_replace_at_at_aux:Nn
- #1 \g__codedoc_module_name_tl
- }
- }
-\cs_new_protected:Npn \@@_replace_at_at_aux:Nn #1#2
- {
- \tl_replace_all:Nnn #1 { _ @ @ } { _ _ #2 }
- \tl_replace_all:Nnn #1 { @ @ } { _ _ #2 }
- }
-\cs_new_protected:Npn \@@_output_line:n #1
- {
- \tl_set:Nn \l_@@_verbatim_line_tl {#1}
- \tl_if_eq:NNTF \l_@@_verbatim_line_tl \c_@@_active_cr_tl
- { \tl_use:N \l_@@_verbatim_line_tl }
- {
- \str_if_eq:eeTF
- { \str_head:N \l_@@_verbatim_line_tl }
- { \c_percent_str }
- { \@@_output_percent_line: }
- { \@@_output_line: }
- }
- }
-\cs_new_protected:Npn \@@_output_percent_line:
- {
- \tex_noindent:D
- \group_begin:
- \color { code@gray }
- \@@_swap_cr:
- \str_if_eq:eeTF { \f@shape } { \updefault }
- { \slshape }
- { \upshape }
- \@@_output_line:
- \group_end:
- }
-\cs_new_protected_nopar:Npn \@@_module_push:n
- { \exp_args:No \@@_module_push_aux:nn { \int_use:N \c@HD@hypercount } }
-\cs_new_protected:Npn \@@_module_push_aux:nn #1
- {
- \seq_gpush:Nn \g_@@_module_dest_seq {#1}
- \hypersetup { hidelinks }
- \exp_args:Nx \hdclindex
- { \zref@extractdefault { HD.#1 } { guard@end } { 1 } } { }
- }
-\cs_new_protected_nopar:Npn \@@_module_pop:n
- {
- \seq_gpop:NNTF \g_@@_module_dest_seq \l_@@_tmp_tl
- { \exp_args:No \@@_module_pop_aux:nn { \l_@@_tmp_tl } }
- { \BOOM \use:n }
- }
-\cs_new_protected:Npn \@@_module_pop_aux:nn #1
- {
- \zref@labelbylist { HD.#1 } { ctxdoc }
- \hypersetup { hidelinks }
- \hdclindex {#1} { }
- }
-\seq_new:N \g_@@_module_dest_seq
-\zref@newlist { ctxdoc }
-\zref@newprop { guard@end } [ 1 ]
- { \int_eval:n { \c@HD@hypercount - 1 } }
-\zref@addprop { ctxdoc } { guard@end }
-\cs_new_protected_nopar:Npn \@@_star_format:
- {
- \seq_gpush:No \g_@@_slash_format_seq { \macro@font }
- \seq_gpop:NNF \g_@@_star_format_seq \l_@@_format_tl
- { \@@_pop_format: }
- \@@_select_format:
- }
-\cs_new_protected_nopar:Npn \@@_slash_format:
- {
- \seq_gpop:NNTF \g_@@_slash_format_seq \l_@@_format_tl
- {
- \seq_gpush:No \g_@@_star_format_seq { \macro@font }
- \@@_select_format:
- }
- { \BOOM }
- }
-\cs_new_protected_nopar:Npn \@@_pm_format:
- {
- \seq_get:NNF \g_@@_star_format_seq \l_@@_format_tl
- {
- \@@_pop_format:
- \seq_gpush:No \g_@@_star_format_seq { \l_@@_format_tl }
- }
- \cs_if_eq:NNF \macro@font \l_@@_format_tl
- { \l_@@_format_tl }
- }
-\cs_new_protected_nopar:Npn \@@_pop_format:
- {
- \seq_gpop_left:NN \g_@@_format_seq \l_@@_format_tl
- \seq_gput_right:No \g_@@_format_seq { \l_@@_format_tl }
- }
-\cs_new_protected_nopar:Npn \@@_select_format:
- {
- \cs_if_eq:NNF \macro@font \l_@@_format_tl
- {
- \cs_gset_eq:NN \macro@font \l_@@_format_tl
- \macro@font
- }
- }
-\tl_new:N \l_@@_format_tl
-\seq_new:N \g_@@_format_seq
-\seq_new:N \g_@@_star_format_seq
-\seq_new:N \g_@@_slash_format_seq
-\seq_gput_right:Nn \g_@@_format_seq { \MacroFont }
-\seq_gput_right:Nn \g_@@_format_seq { \AltMacroFont }
-\cs_set_protected:Npn \MacroFont
- {
- \linespread { 1 }
- \small
- \fontseries { \mddefault }
- \fontshape { \updefault }
- \ttfamily
- \ctexdocverbaddon
- }
-\cs_set_protected:Npn \AltMacroFont
- {
- \linespread { 1 }
- \small
- \fontseries { \mddefault }
- \fontshape { \sldefault }
- \ttfamily
- \ctexdocverbaddon
- }
-\AtBeginDocument
- {
- \tl_gset:Nx \macro@font
- { \seq_item:Nn \g_@@_format_seq { 1 } }
- }
-\cs_new_protected:Npn \@@_output_module:nn #1#2
- {
- \tex_noindent:D
- \group_begin:
- #1
- \footnotesize \normalfont \sffamily #2
- \group_end:
- }
-\cs_new_protected_nopar:Npn \@@_star_color:
- {
- \seq_gpop:NNTF \g_@@_star_color_seq \current@color
- { \set@color }
- { \@@_select_color: }
- \seq_gpush:No \g_@@_slash_color_seq { \current@color }
- }
-\cs_new_protected_nopar:Npn \@@_slash_color:
- {
- \seq_gpop:NNTF \g_@@_slash_color_seq \current@color
- {
- \set@color
- \seq_gpush:No \g_@@_star_color_seq { \current@color }
- }
- { \BOOM }
- }
-\cs_new_protected_nopar:Npn \@@_pm_color:
- {
- \seq_get:NNTF \g_@@_star_color_seq \current@color
- { \set@color }
- {
- \@@_select_color:
- \seq_gpush:No \g_@@_star_color_seq { \current@color }
- }
- }
-\seq_new:N \g_@@_star_color_seq
-\seq_new:N \g_@@_slash_color_seq
-\cs_new_protected_nopar:Npn \@@_select_color:
- { \color { guard@series!!+ } }
-\definecolorseries { guard@series }
- { cmyk } { last } { blue } { purple }
-\resetcolorseries [ 3 ] { guard@series }
-\definecolor { verb@guard } { rgb } { 0.5 , 0.5 , 0 }
-\definecolor { at@guard } { rgb } { 0.5 , 0 , 0.5 }
-\definecolor { code@gray } { gray } { 0.5 }
-\cs_new_protected:Npn \@@_module_angle:n #1
- { \textlangle #1 \textrangle }
-\cs_new_protected_nopar:Npn \@@_code_line_no:
- {
- \int_gincr:N \c@CodelineNo
- \hbox_overlap_left:n
- {
- \hbox_to_wd:nn
- { \MacroIndent }
- {
- \HD@target
- \tex_hss:D
- \@@_code_line_no_style:
- \theCodelineNo \enspace
- }
- \tex_kern:D \@totalleftmargin
- }
- }
-\tl_set:Nn \theCodelineNo
- { \arabic { CodelineNo } }
-\cs_new_protected_nopar:Npn \@@_code_line_no_style:
- { \color { code@gray } \normalfont \sffamily \tiny }
-\cs_set_protected:Npn \HD@SetMacroIndent #1
- {
- \group_begin:
- \settowidth \MacroIndent
- {
- \@@_code_line_no_style:
- \prg_replicate:nn { \tl_count:n {#1} } { 0 }
- \enspace
- }
- \dim_gset_eq:NN \MacroIndent \MacroIndent
- \group_end:
- }
-\ExplSyntaxOff
-\AtBeginDocument{\addtocontents{toc}{\StopSpecialIndexModule}}
-\pdfstringdefDisableCommands{%
- \let\path\meta
- \let\opt\@firstofone}
-\preto\@thehead{\cslet{MakeUppercase\space}{\@iden}}
-\def\orbar{\textup{\textbar}}
-\def\defaultval#1{\textbf{\textup{#1}}}
-\def\defaultvalaux#1){\defaultval{#1}}
-\def\TF{true\orbar false}
-\def\TTF{\defaultval{true}\orbar false}
-\def\TFF{true\orbar\defaultval{false}}
-\protected\def\opt{\texttt}
-\def\pdfTeX{\hologo{pdfTeX}}
-\def\XeTeX{\hologo{XeTeX}}
-\def\XeLaTeX{\hologo{XeLaTeX}}
-\def\LuaLaTeX{\hologo{LuaLaTeX}}
-\def\pdfLaTeX{\hologo{pdfLaTeX}}
-\def\LaTeX{\hologo{LaTeX}}
-\def\LaTeXe{\hologo{LaTeX2e}}
-\def\LaTeXiii{\hologo{LaTeX3}}
-\def\dvipdfmx{DVIPDFM\textit{x}}
-\def\TeX{\hologo{TeX}}
-\def\ApTeX{Ap\TeX}
-\def\ApLaTeX{Ap\LaTeX}
-\def\upTeX{up\TeX}
-\def\upLaTeX{up\LaTeX}
-\def\bashcmd{\texttt}
-\def\TeXLive{\TeX\ Live}
-\def\MiKTeX{\hologo{MiKTeX}}
-\def\BSTACK{\begin{tabular}[t]{@{}l@{}}}
-\def\ESTACK{\end{tabular}}
-\newenvironment{defaultcapconfig}{%
- \MakePercentComment
- \input{ctex-name-utf8.cfg}%
- \ExplSyntaxOff
- \MakePercentIgnore}{}
-\def\ctexkit{\href{https://github.com/CTeX-org/ctex-kit/}{\texttt{ctex-kit}}}
-\def\ctexkitrev#1{%
- \href{https://github.com/CTeX-org/ctex-kit/commit/#1}{\texttt{ctex-kit} rev. #1}}
-\appto\GlossaryParms{%
- \raggedcolumns
- \let\Hy@writebookmark\HDorg@writebookmark
- \def\@idxitem{\par\hangindent 2em }%
- \def\subitem{\@idxitem\hspace*{1em}}%
- \def\subsubitem{\@idxitem\hspace*{2em}}}
-\def\glossaryname{版本历å²}
-\GlossaryPrologue{\section{\glossaryname}}
-\IndexPrologue{%
- \section{\indexname}
- \textit{æ„大利体的数字表示æ述对应索引项的页ç ï¼›
- 带下划线的数字表示定义对应索引项的代ç è¡Œå·ï¼›
- 罗马字体的数字表示使用对应索引项的代ç è¡Œå·ã€‚}}
-\def\IndexLayout{%
- \newgeometry{hmargin=15mm,vmargin={25mm,15mm},footskip=7mm}%
- \setlength\IndexMin{.5\textheight}%
- \ctexset{section/numbering=false}%
- \StopSpecialIndexModule}
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</ctxdoc>
-% \end{macrocode}
-%
-% \subsection{\pkg{ctxdocstrip}}
-%
-% \begin{macrocode}
-%<*docstrip>
-\csname ctxdocstriploaded\endcsname
-\let\ctxdocstriploaded\endinput
-\input l3docstrip %
-\edef\ctxresetcatcode{%
- \catcode\number`\$=\the\catcode`\$\relax}
-\makeOther\$
-\def\plusOption+#1>#2$#3$\endLine{%
- \maybeMsg{<+#1 . >}%
- \Evaluate{#1}%
- \def\ctxCMD{#2}%
- \def\ctxID{$#3$}%
- \def\do##1##2##3{%
- \if1\Expr{##2}%
- \readIDFile
- \StreamPut##1{\inLine}%
- \fi
- }%
- \activefiles
-}
-\def\readIDFile{%
- \openin\inputcheck=\jobname.id\relax
- \ifeof\inputcheck\else
- \read \inputcheck to \inLine
- \closein\inputcheck
- \ifx\inLine\empty\else
- \let\ctxID\inLine
- \fi
- \fi
- \maybeMsg{^^J\ctxID^^J}%
- \def\inLine{\ctxCMD\ctxID}%
-}
-\keepsilent
-\askforoverwritefalse
-\declarepreamble\emptypreamble
-\endpreamble
-\declarepostamble\emptypostamble
-\endpostamble
-\ctxresetcatcode
-%</docstrip>
-% \end{macrocode}
-%
-% \end{implementation}
-%
\endinput
diff --git a/language/chinese/ctex/ctex.pdf b/language/chinese/ctex/ctex.pdf
index 88f89a1e10..7f13942d03 100644
--- a/language/chinese/ctex/ctex.pdf
+++ b/language/chinese/ctex/ctex.pdf
Binary files differ
diff --git a/language/chinese/ctex/ctexpunct.spa b/language/chinese/ctex/ctexpunct.spa
index 2c6e37c497..a535be5ed7 100644
--- a/language/chinese/ctex/ctexpunct.spa
+++ b/language/chinese/ctex/ctexpunct.spa
@@ -17,9 +17,23 @@
\ctexspadef{founderzhli}{69,19,58,9,48,21,45,27,48,25,47,32,48,27,48,39,48,21,43,17,47,33,47,33,0,0,11,11,11,61,13,63,17,66,7,80,20,70,19,68,20,70,3,54,9,9,25,48,32,47,27,48,40,48,21,48,17,43,33,47,33,47,19,69,9,58,21,48,27,45,,,}
\ctexspadef{founderzhyou}{67,16,61,11,48,11,45,14,48,20,48,17,48,16,48,39,48,12,42,16,48,30,48,30,0,0,12,11,11,61,9,59,17,67,11,83,20,70,18,69,21,70,4,54,12,12,20,48,17,48,16,48,39,48,12,48,16,41,30,48,29,48,16,67,11,61,11,48,14,45,,,}
\ctexspadef{founderzhyoub}{69,18,60,10,46,13,43,16,46,17,45,20,46,18,46,31,45,13,38,14,44,29,46,30,-3,0,10,9,9,61,9,59,19,69,7,82,18,68,18,67,20,69,2,52,17,17,17,46,20,45,18,46,32,46,13,45,14,38,29,44,30,46,19,69,10,60,14,46,17,43,,,}
-\ctexspadef{ubuntuzhsong}{66,21,58,7,58,8,55,11,59,18,71,7,71,2,40,38,58,13,52,4,64,6,58,14,7,7,11,10,38,38,38,38,17,73,21,70,13,78,13,75,27,63,4,52,4,5,18,59,7,71,2,71,38,40,13,58,4,51,6,64,14,58,16,70,8,56,10,58,11,54,,,}
-\ctexspadef{ubuntuzhhei}{6,6,4,4,60,10,61,11,62,12,65,15,67,15,62,15,63,13,57,6,19,52,63,13,-0,0,11,11,10,70,10,68,44,44,45,44,44,44,44,44,43,45,27,27,19,16,12,62,15,65,15,67,15,62,13,63,6,56,3,68,13,63,6,6,4,4,10,60,11,61,,,}
-\ctexspadef{ubuntuzhkai}{68,20,58,9,58,8,55,11,59,18,59,20,59,18,53,23,58,13,52,4,58,8,58,14,7,7,11,10,38,38,38,38,40,42,43,43,43,43,43,43,43,43,25,28,10,11,18,59,20,59,18,59,24,53,13,58,4,51,8,58,14,58,17,70,9,58,10,58,11,54,,,}
+\ctexspadef{maczhsong}{4,4,4,4,63,14,59,7,63,13,64,13,70,12,59,13,61,12,47,7,56,7,58,8,0,0,11,11,10,68,13,63,17,68,20,70,20,70,18,68,20,70,12,59,18,18,14,62,10,66,12,69,9,64,12,61,7,47,7,56,8,58,4,4,4,4,14,63,7,59,,,}
+\ctexspadef{maczhsongb}{4,4,4,4,62,13,49,13,62,10,65,10,59,13,62,14,61,12,43,9,56,4,56,14,0,0,11,10,7,67,13,62,15,66,18,67,18,69,16,66,18,69,10,60,14,10,10,62,10,64,12,60,14,62,12,61,9,43,4,56,14,56,4,4,4,4,12,62,12,50,,,}
+\ctexspadef{maczhhei}{68,15,58,4,62,13,56,6,61,11,65,12,66,16,63,12,59,14,51,5,55,5,60,10,0,0,8,11,13,60,13,62,20,70,20,70,20,70,20,70,20,70,3,54,9,10,10,62,12,65,16,65,9,66,14,60,7,48,5,55,10,60,14,68,4,58,13,62,6,56,,,}
+\ctexspadef{maczhheil}{71,17,65,7,60,11,56,6,59,9,67,10,66,15,64,13,58,14,51,6,53,6,60,8,0,0,9,10,10,61,12,62,20,70,20,70,20,70,20,70,21,71,4,55,9,9,9,59,10,67,15,66,13,64,14,58,6,51,6,53,8,60,17,71,7,65,11,60,6,56,,,}
+\ctexspadef{maczhkai}{5,5,6,3,63,14,59,7,63,13,62,12,60,11,61,15,61,12,47,7,56,7,58,8,0,0,12,11,10,68,13,63,18,67,20,69,19,69,17,67,19,70,14,57,15,10,14,62,10,65,10,60,13,63,12,61,7,47,7,56,8,58,4,4,4,5,14,63,7,59,,,}
+\ctexspadef{maczhkaib}{5,6,4,4,65,10,54,8,62,14,63,9,65,10,60,14,61,13,50,8,58,10,60,10,0,0,10,10,11,68,13,63,17,68,18,68,18,68,17,68,19,69,11,59,15,12,13,62,9,63,9,66,13,60,13,61,8,50,10,58,10,61,6,5,4,4,9,65,8,55,,,}
+\ctexspadef{maczhfs}{71,14,62,8,63,14,59,7,63,13,62,12,60,11,61,15,61,12,47,7,56,7,58,8,0,0,12,11,10,68,13,63,18,67,20,69,19,69,17,67,19,70,7,58,15,10,14,62,10,65,10,60,13,63,12,61,7,47,7,56,8,58,15,68,8,60,14,63,7,59,,,}
+\ctexspadef{maczhli}{4,2,7,4,69,2,61,4,65,6,62,6,48,2,46,1,67,5,52,4,61,3,65,3,0,-0,10,7,10,64,11,66,18,67,43,41,18,67,15,67,19,67,11,57,14,13,4,67,6,63,2,47,1,50,5,67,4,52,3,61,3,65,4,2,7,4,6,67,4,61,,,}
+\ctexspadef{maczhyou}{5,5,5,9,71,4,58,4,71,4,75,6,75,6,69,5,73,4,57,4,59,4,63,4,0,0,12,12,12,64,13,66,19,70,15,75,19,72,18,71,19,72,5,58,11,11,4,71,6,75,6,75,5,69,4,73,4,57,4,59,4,63,5,5,7,10,4,71,4,58,,,}
+\ctexspadef{maczhyoub}{3,3,4,7,69,2,57,2,70,2,74,4,74,6,67,3,71,2,55,2,58,4,63,4,0,0,10,10,9,62,12,62,17,68,13,72,17,68,16,68,18,68,4,56,10,10,2,70,4,74,6,74,3,67,2,71,2,55,4,58,4,63,3,4,5,7,2,69,2,57,,,}
+\ctexspadef{maczhpf}{12,8,12,8,65,3,62,3,67,3,70,8,72,4,67,4,65,8,51,6,63,3,66,5,0,0,11,11,13,63,12,62,12,74,12,76,19,69,18,68,19,69,3,53,8,8,3,67,8,70,4,72,4,67,8,65,6,51,3,63,5,66,8,12,8,12,3,65,3,62,,,}
+\ctexspadef{maczhpfb}{12,8,12,8,64,3,61,3,66,3,67,8,70,4,65,4,63,8,47,6,61,3,64,5,0,0,9,9,11,61,11,61,11,71,11,73,17,67,17,66,17,67,2,52,7,7,3,66,8,67,4,70,4,65,8,63,6,47,3,61,5,64,8,12,8,12,3,64,3,61,,,}
+\ctexspadef{ubuntuzhsong}{77,8,57,8,66,4,60,4,71,4,65,6,71,4,58,3,53,4,52,4,61,4,62,4,4,4,11,11,4,71,4,68,8,77,9,78,17,70,15,70,19,69,6,55,9,9,4,71,6,65,4,71,3,58,4,53,4,52,4,61,4,62,8,77,8,57,4,66,4,60,,,}
+\ctexspadef{ubuntuzhsongb}{75,8,53,8,65,3,62,3,72,3,64,6,72,3,57,3,53,3,53,3,62,3,63,3,4,4,11,11,3,69,4,68,5,77,6,77,18,65,18,65,17,67,4,54,7,7,3,72,6,64,3,72,3,57,3,53,3,53,3,62,3,63,8,75,8,53,3,65,3,62,,,}
+\ctexspadef{ubuntuzhhei}{81,5,62,4,65,3,60,3,71,4,70,5,71,3,70,4,59,5,53,4,62,3,67,3,5,5,10,10,5,66,4,65,14,67,16,68,18,67,15,66,19,69,3,54,8,8,4,71,5,70,3,71,4,70,5,59,4,53,3,62,3,67,5,81,4,62,3,65,3,60,,,}
+\ctexspadef{ubuntuzhheib}{80,4,60,2,64,3,60,3,69,2,66,4,71,3,68,3,56,5,52,3,63,3,66,3,5,5,9,9,4,64,3,64,16,61,18,62,16,66,13,64,16,66,3,53,5,5,2,69,4,66,3,71,3,68,5,56,3,52,3,63,3,66,4,80,2,60,3,64,3,60,,,}
+\ctexspadef{ubuntuzhkai}{53,33,53,19,58,8,59,9,61,11,60,10,62,12,60,10,56,6,54,4,58,8,58,8,7,7,15,15,26,53,29,53,19,67,22,68,30,60,27,59,26,63,7,57,25,23,11,61,10,60,12,62,10,60,6,56,3,54,8,58,8,58,32,54,19,53,8,58,9,59,,,}
\ctexspadef{windowszhsong}{67,13,46,13,62,14,61,14,65,17,57,14,55,14,53,18,64,11,54,10,47,11,49,14,3,3,10,10,11,64,14,64,11,71,13,73,12,73,12,73,23,63,14,52,15,13,16,66,14,57,14,55,19,52,11,66,9,54,11,48,14,51,14,68,13,48,14,62,14,61,,,}
\ctexspadef{windowszhhei}{78,9,56,9,50,20,50,20,50,23,61,11,54,14,50,26,50,16,50,7,47,11,49,14,0,0,9,11,14,64,13,63,14,72,14,73,19,68,18,68,25,64,15,48,12,12,22,50,11,60,14,55,25,50,16,50,7,50,11,48,14,51,8,79,8,56,18,50,18,50,,,}
\ctexspadef{windowszhkai}{67,13,46,13,50,20,50,20,50,23,61,11,54,14,50,26,50,16,50,7,47,11,49,14,0,0,10,10,11,64,13,63,11,71,13,73,17,68,17,68,23,63,15,48,12,12,22,50,11,60,14,55,25,50,16,50,7,50,11,48,14,51,14,68,13,48,18,50,18,50,,,}
diff --git a/language/chinese/ctex/ctxdoc.cls b/language/chinese/ctex/ctxdoc.cls
new file mode 100644
index 0000000000..4cd102e496
--- /dev/null
+++ b/language/chinese/ctex/ctxdoc.cls
@@ -0,0 +1,867 @@
+%%
+%% File ctxdoc.cls
+%%
+%% Copyright (C) 2016--2020
+%% CTEX.ORG and any individual authors listed in the documentation.
+%%---------------------------------------------------------------------
+%%
+%% 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".
+%%
+%%---------------------------------------------------------------------
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\GetIdInfo$Id: ctxdoc.cls 25394ad 2020-04-20 20:56:32 +0800 Qing Lee <sobenlee@gmail.com> $
+ {ctex documentation (CTEX)}
+\ProvidesExplClass{ctxdoc}{\ExplFileDate}{}{\ExplFileDescription}
+\ExplSyntaxOff
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{l3doc}}
+\PassOptionsToClass{a4paper,full}{l3doc}
+\ProcessOptions
+\LoadClass{l3doc}
+\RequirePackage[UTF8, punct=kaiming, heading, linespread=1.2, sub3section]{ctex}
+\ctexset{
+ abstractname = 简介,
+ indexname = 代ç ç´¢å¼•,
+ section/format = \Large\bfseries\raggedright,
+ section/name = {第,节},
+}
+\RequirePackage[toc]{multitoc}
+\RequirePackage{geometry}
+\RequirePackage{tabularx}
+\RequirePackage{makecell}
+\RequirePackage{threeparttable}
+\RequirePackage{siunitx}
+\RequirePackage{unicode-math}
+\RequirePackage{xcolor}
+\RequirePackage{caption}
+\RequirePackage{fancyvrb-ex}
+\RequirePackage{zref-base}
+\geometry{includemp, hmargin={0mm,15mm}, vmargin={25mm,15mm}, footskip=7mm}
+\hypersetup{pdfstartview=FitH, bookmarksdepth=subparagraph}
+\setcounter{secnumdepth}{4}
+\setcounter{tocdepth}{2}
+\newcommand*\email{\nolinkurl}
+\setmainfont{texgyrepagella}[
+ Extension = .otf,
+ UprightFont = *-regular,
+ BoldFont = *-bold,
+ ItalicFont = *-italic,
+ BoldItalicFont = *-bolditalic]
+\setsansfont{texgyreheros}[
+ Extension = .otf,
+ UprightFont = *-regular,
+ BoldFont = *-bold,
+ ItalicFont = *-italic,
+ BoldItalicFont = *-bolditalic]
+\setmonofont{cmun}[
+ Extension = .otf,
+ UprightFont = *btl,
+ BoldFont = *tb,
+ ItalicFont = *bto,
+ BoldItalicFont = *tx,
+ HyphenChar = None]
+\setmathfont{texgyrepagella-math.otf}
+\captionsetup{strut=off, labelsep=quad, labelfont+=bf}
+%% <--- http://tex.stackexchange.com/a/40896
+\patchcmd{\@addtocurcol}%
+ {\vskip \intextsep}%
+ {\edef\save@first@penalty{\the\lastpenalty}\unpenalty
+ \ifnum \lastpenalty = \@M % hopefully the OR penalty
+ \unpenalty
+ \else
+ \penalty \save@first@penalty \relax % put it back
+ \fi
+ \ifnum\outputpenalty <-\@Mii
+ \addvspace\intextsep
+ \vskip\parskip
+ \else
+ \addvspace\intextsep
+ \fi}%
+ {\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
+\patchcmd{\@addtocurcol}%
+ {\vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi}%
+ {\ifnum\outputpenalty <-\@Mii
+ \aftergroup\vskip\aftergroup\intextsep
+ \aftergroup\nointerlineskip
+ \else
+ \vskip\intextsep
+ \fi}%
+ {\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
+\patchcmd{\@getpen}{\@M}{\@Mi}
+ {\typeout{*** SUCCESS ***}}{\typeout{*** FAIL ***}}
+%% --->
+%% ä¸å¯¹ä»£ç å®žçŽ°çš„ \section 以下标题编目录。
+\AtBeginEnvironment{implementation}{%
+ \ifnum\value{tocdepth}>\@ne
+ \addtocontents{toc}{\protect\value{tocdepth}=1\relax}%
+ \fi}
+\ifxetex
+ \let\ctexdocverbaddon\xeCJKVerbAddon
+ \def\ctexdisableecglue{\xeCJKsetup{CJKecglue}}
+ \def\ctexplainps{\xeCJKsetup{PunctStyle=plain}}
+ \appto\meta@font@select{\ifinner\ctexdisableecglue\fi}
+\else
+ \let\ctexdocverbaddon\relax
+ \let\ctexplainps\relax
+ \def\ctexdisableecglue{\ltjsetparameter{autoxspacing=false}}
+ \appto\meta@font@select{\ctexdisableecglue}
+\fi
+\setlist{noitemsep,topsep=\smallskipamount}
+\setlist[1]{labelindent=\parindent}
+\setlist[enumerate]{leftmargin=*}
+\setlist[itemize]{leftmargin=*}
+\newlist{optdesc}{description}{3}
+%% 设置间è·ä¸º \marginparsep,与 l3doc 一致
+\setlist[optdesc]{%
+ font=\mdseries\small\ttfamily,align=right,listparindent=\parindent,
+ labelsep=\marginparsep,labelindent=-\marginparsep,leftmargin=0pt}
+%% é‡æ–°å®šä¹‰ threeparttable 包的 tablenotes 环境
+\renewlist{tablenotes}{description}{1}
+\setlist[tablenotes]{%
+ format=\normalfont\tnote@item,align=right,listparindent=\parindent,
+ labelindent=\tabcolsep,leftmargin=*,rightmargin=\tabcolsep,
+ after=\@noparlisttrue}
+\AtBeginEnvironment{tablenotes}{%
+ \setlength\parindent{2\ccwd}%
+ \normalfont\footnotesize}
+\AtBeginEnvironment{threeparttable}{%
+ \stepcounter{tpt@id}%
+ \edef\curr@tpt@id{tpt@\arabic{tpt@id}}}
+\newcounter{tpt@id}
+\def\tnote@item#1{%
+ \Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}#1}
+\def\TPTtagStyle#1{\hyperlink{\curr@tpt@id-#1}{#1}}
+\fvset{
+ fontsize=\small,baselinestretch=1,numbersep=5pt,
+ formatcom=\ctexdocverbaddon,
+ listparameters=\setlength\topsep{\MacrocodeTopsep}}
+\DefineVerbatimEnvironment{frameverb}{Verbatim}{%
+ gobble=4,
+ frame=single,framesep=8pt,
+ listparameters=
+ \setlength\topsep{\medskipamount}%
+ \appto\FV@EndList{\nointerlineskip}}
+\DefineVerbatimEnvironment{ctexexam}{Verbatim}{%
+ gobble=4,
+ frame=single,framesep=10pt,
+ label=\rule{0pt}{12pt}\textnormal{\bfseries 例 \arabic{ctexexam}},
+ listparameters=
+ \setlength\topsep{\bigskipamount}%
+ \refstepcounter{ctexexam}\ctexexamlabelref
+ \appto\FV@EndList{\nointerlineskip}}
+\define@key{FV}{labelref}{\def\ctexexamlabelref{\label{#1}}}
+\let\ctexexamlabelref\empty
+\newcounter{ctexexam}
+\BeforeBeginEnvironment{function}{\par\nointerlineskip}
+\AtEndEnvironment{function}{%
+ \par\xdef\ctexfixprevdepth{\prevdepth=\the\prevdepth\space}}
+\AfterEndEnvironment{function}{\ctexfixprevdepth}
+\AtBeginEnvironment{syntax}{\linespread{1}\ctexplainps\ctexdisableecglue}
+\BeforeBeginEnvironment{SideBySideExample}{\par\addvspace{\medskipamount}}
+\newcommand*\exptarget{\Hy@raisedlink{\hypertarget{expstar}{}}}
+\newcommand*\rexptarget{\Hy@raisedlink{\hypertarget{rexpstar}{}}}
+\newcommand*\expstar{\hyperlink{expstar}{$\star$}}
+\newcommand*\rexpstar{\hyperlink{rexpstar}{\ding{73}}}
+\ExplSyntaxOn
+%% l3doc 会设置列表环境中 \listparindent=\z@,我们在这里æ¢å¤å®ƒã€‚
+\cs_set_eq:NN \list \__codedoc_oldlist:nn
+\cs_new_nopar:Npn \zihaopt #1
+ {
+ \exp_last_unbraced:Nf \tl_head:w
+ { \prop_item:Nn \c__ctex_font_size_prop {#1} } { } \q_stop
+ }
+%% 抑制首段的 \parskip
+\ctex_patch_cmd_once:NnnnTF \__codedoc_function_descr_start:w
+ { }
+ { \noindent }
+ { \skip_vertical:n { -\parskip } \noindent }
+ { \iow_term:n { *** ~ SUCCESS ~ *** } }
+ { \iow_term:n { *** ~ FAIL ~ *** } }
+%% l3doc 会在 function 环境的 syntax å’Œ descr ç›’å­ä¸­é—´åŠ ä¸Š \medskipamount çš„è·ç¦»ã€‚
+%% 但是若 syntax ç›’å­ä¸ºç©ºï¼ˆæœªä½¿ç”¨ syntax 环境),就会显得ä¸å¥½çœ‹ã€‚
+%% 此时我们通过将 \medskipamount 设置为零æ¥ä¿®æ­£ã€‚若盒å­éžç©ºï¼Œåˆ™å°† \parskip 还回去。
+\ctex_preto_cmd:NnnTF \__codedoc_function_assemble:
+ { }
+ { \ctex_doc_fix_yoffset: }
+ { \iow_term:n { *** ~ SUCCESS ~ *** } }
+ { \iow_term:n { *** ~ FAIL ~ *** } }
+\cs_new_protected_nopar:Npn \ctex_doc_fix_yoffset:
+ {
+ \box_if_empty:NTF \g__codedoc_syntax_box
+ { \skip_zero:N \medskipamount }
+ { \skip_add:Nn \medskipamount { \parskip } }
+ }
+%% 左侧边注的函数列表采用å•å€è¡Œè·
+\ctex_preto_cmd:NnnTF \__codedoc_typeset_functions:
+ { }
+ { \MacroFont }
+ { \iow_term:n { *** ~ SUCCESS ~ *** } }
+ { \iow_term:n { *** ~ FAIL ~ *** } }
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_init:
+ { }
+ { \hbox:n }
+ { \MacroFont \hbox:n }
+ { \iow_term:n { *** ~ SUCCESS ~ *** } }
+ { \iow_term:n { *** ~ FAIL ~ *** } }
+\ctex_patch_cmd_once:NnnnTF \__codedoc_macro_dump:
+ { }
+ { \hbox_unpack_drop:N }
+ { \MacroFont \hbox_unpack_drop:N }
+ { \iow_term:n { *** ~ SUCCESS ~ *** } }
+ { \iow_term:n { *** ~ FAIL ~ *** } }
+\cs_set_eq:NN \__codedoc_macro_end_style:n \use_none:n
+\cs_set_protected:Npn \__codedoc_macro_typeset_one:nN #1#2
+ {
+ \vbox_set:Nn \l__codedoc_macro_box
+ {
+ \MacroFont
+ \vbox_unpack_drop:N \l__codedoc_macro_box
+ \hbox_set:Nn \l_tmpa_box
+ { \__codedoc_print_macroname:nN {#1} #2 }
+ \dim_set:Nn \l_tmpa_dim { \marginparwidth - \labelsep }
+ \dim_compare:nNnT { \box_wd:N \l_tmpa_box } > \l_tmpa_dim
+ {
+ \box_resize_to_wd_and_ht:Nnn \l_tmpa_box
+ { \l_tmpa_dim }
+ { \box_ht:N \l_tmpa_box }
+ }
+ \hbox_overlap_left:n
+ {
+ \box_use:N \l_tmpa_box
+ \skip_horizontal:n { \marginparsep - \labelsep }
+ }
+ }
+ \int_incr:N \l__codedoc_macro_int
+ }
+\cs_set_protected:Npn \__codedoc_print_macroname:nN #1#2
+ {
+ \strut
+ \__codedoc_get_hyper_target:xN
+ {
+ \exp_not:n {#1}
+ \bool_if:NT #2 { \tl_to_str:n {TF} }
+ }
+ \l__codedoc_tmpa_tl
+ \cs_if_exist:cTF { r@ \l__codedoc_tmpa_tl }
+ { \exp_args:NNo \label@hyperref [ \l__codedoc_tmpa_tl ] }
+ { \use:n }
+ {
+ \tl_set:Nn \l__codedoc_tmpa_tl {#1}
+ \tl_replace_all:Non \l__codedoc_tmpa_tl
+ { \c_catcode_other_space_tl }
+ { \fontspec_visible_space: }
+ \__codedoc_macroname_prefix:o \l__codedoc_tmpa_tl
+ \__codedoc_macroname_suffix:N #2
+ }
+ }
+\AtBeginEnvironment { syntax }
+ {
+ \char_set_catcode_active:N \|
+ \char_set_active_eq:NN \| \orbar
+ \char_set_catcode_active:N \(
+ \char_set_active_eq:NN \( \defaultvalaux
+ }
+%% ä¸å¯¹ç›®å½•ä¸­å‡ºçŽ°çš„ \cs å’Œ \tn 等编索引
+\DeclareDocumentCommand \StopSpecialIndexModule { }
+ { \cs_set_eq:NN \__codedoc_special_index_module:nnnnN \use_none:nnnnn }
+\tl_map_inline:nn { \actualchar \encapchar \levelchar }
+ { \exp_args:Nx \DoNotIndex { \bslash \tl_to_str:N #1 } }
+\DeclareDocumentCommand \package { o m }
+ {
+ \exp_args:Nx \href
+ {
+ http \c_colon_str //www.ctan.org/pkg/
+ \IfNoValueTF {#1} { \str_lowercase:n {#2} } {#1}
+ }
+ { \pkg {#2} }
+ }
+\DeclareDocumentCommand \GetFileId { m }
+ {
+ \GetFileInfo {#1}
+ \file_get:nnNTF { \c_sys_jobname_str .id }
+ { \int_set:Nn \tex_endlinechar:D { -1 } } \l__ctxdoc_tmp_tl
+ { \exp_after:wN \GetIdInfo \l__ctxdoc_tmp_tl }
+ { \GetIdInfo $Id$ }
+ { \fileinfo }
+ }
+\cs_new_eq:NN \__ctxdoc_ltx_changes:nnn \changes@
+\cs_set_protected:Npn \changes@ #1#2
+ {
+ \__ctxdoc_save_version_date:nn {#1} {#2}
+ \tl_if_empty:nTF {#1}
+ { \__ctxdoc_ltx_changes:nnn }
+ { \__ctxdoc_version_zfill:wnnn #1 \q_stop }
+ {#1} {#2}
+ }
+\cs_new_protected:Npn \__ctxdoc_version_zfill:wnnn #1#2 \q_stop
+ {
+ \str_if_eq:nnTF {#1} { v }
+ { \__ctxdoc_version_zfill:nnnn {#2} }
+ { \__ctxdoc_ltx_changes:nnn }
+ }
+\cs_new_protected:Npn \__ctxdoc_version_zfill:nnnn #1#2
+ {
+ \tl_clear:N \l__ctxdoc_tmp_tl
+ \int_zero:N \l_tmpa_int
+ \seq_set_split:Nnn \l_tmpa_seq { . } {#1}
+ \seq_map_function:NN \l_tmpa_seq \__ctxdoc_version_zfill:n
+ \int_compare:nNnF \l_tmpa_int > 2
+ {
+ \tl_put_right:Nx \l__ctxdoc_tmp_tl
+ { \prg_replicate:nn { 3 - \l_tmpa_int } { 00000 } }
+ }
+ \__ctxdoc_ltx_changes:nnn { \l__ctxdoc_tmp_tl \actualchar #2 }
+ }
+\tl_new:N \l__ctxdoc_tmp_tl
+\cs_new_protected:Npn \__ctxdoc_version_zfill:n #1
+ {
+ \int_incr:N \l_tmpa_int
+ \tl_put_right:Nx \l__ctxdoc_tmp_tl
+ {
+ \prg_replicate:nn
+ { \int_max:nn { 0 } { 5 - \tl_count:n {#1} } } { 0 }
+ \exp_not:n {#1}
+ }
+ }
+\cs_new_protected:Npn \__ctxdoc_save_version_date:nn #1#2
+ {
+ \prop_get:NnNTF \g__ctxdoc_version_date_prop {#1} \l__ctxdoc_tmp_tl
+ { \exp_after:wN \__ctxdoc_save_version_date:nnnn \l__ctxdoc_tmp_tl {#2} {#1} }
+ { \__ctxdoc_save_version_date:nnn {#1} {#2} {#2} }
+ }
+\cs_new_protected:Npn \__ctxdoc_save_version_date:nnnn #1#2#3#4
+ {
+ \__ctxdoc_if_date_later:nnTF {#1} {#3}
+ { \__ctxdoc_save_version_date:nnn {#4} {#3} {#2} }
+ {
+ \__ctxdoc_if_date_later:nnT {#3} {#2}
+ { \__ctxdoc_save_version_date:nnn {#4} {#1} {#3} }
+ }
+ }
+\prg_new_conditional:Npnn \__ctxdoc_if_date_later:nn #1#2 { TF , T }
+ {
+ \if_int_compare:w \__ctxdoc_parse_date:w #1 / / / 0 \q_stop >
+ \__ctxdoc_parse_date:w #2 / / / 0 \q_stop \exp_stop_f:
+ \prg_return_true: \else: \prg_return_false: \fi:
+ }
+\cs_new:Npn \__ctxdoc_parse_date:w #1/#2/#3/ #4 \q_stop
+ { #1#2#3 }
+\cs_new_protected:Npn \__ctxdoc_save_version_date:nnn #1#2#3
+ { \prop_gput:Nnn \g__ctxdoc_version_date_prop {#1} { {#2} {#3} } }
+\cs_new_protected:Npn \CTEX@versionitem #1 \efill
+ {
+ \@idxitem
+ \prop_get:NnNTF \g__ctxdoc_version_date_prop {#1} \l__ctxdoc_tmp_tl
+ { \exp_after:wN \__ctxdoc_version_item:nnn \l__ctxdoc_tmp_tl {#1} }
+ { \BOOM }
+ }
+\cs_new_protected:Npn \__ctxdoc_version_item:nnn #1#2#3
+ {
+ \noindent
+ \Hy@raisedlink { \belowpdfbookmark {#3} { HD.#3 } }
+ \textbf {#3} \hfill
+ \hbox:n
+ {
+ \footnotesize
+ \str_if_eq:nnTF {#1} {#2}
+ { ( #1 ) }
+ { ( #1 ~ -- ~ #2 ) }
+ }
+ \par \nopagebreak
+ }
+\prop_new:N \g__ctxdoc_version_date_prop
+\ctex_patch_cmd:Nnn \HDorg@theglossary
+ { \let \item \@idxitem }
+ { \let \item \CTEX@versionitem }
+\ctex_patch_cmd:Nnn \l@section { 2.5em } { 1.5em }
+\ctex_patch_cmd:Nnn \l@subsection { 2.5em } { 1.5em }
+\ctex_patch_cmd:Nnn \@wrglossary
+ { hdpindex }
+ {
+ \ifnum \c@HD@hypercount = \z@
+ hdpindex
+ \else
+ hdclindex { \the \c@HD@hypercount }
+ \fi
+ }
+%% é‡å®šä¹‰ macrocode 环境的实现,é€è¡Œå¤„ç†
+\cs_set_protected_nopar:Npn \xmacro@code
+ { \__ctxdoc_marco_code:w }
+\cs_set_protected_nopar:Npn \sxmacro@code
+ {
+ \fontspec_print_visible_spaces:
+ \xmacro@code
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_marco_code:w
+ {
+ \ifcodeline@index
+ \__ctxdoc_marco_every_par:n { \__ctxdoc_code_line_no: }
+ \else:
+ \__ctxdoc_marco_every_par:n { }
+ \fi:
+ \exp_args:Nx \__ctxdoc_make_finish_tag:n { \@currenvir }
+ \__ctxdoc_verbatim_start:w
+ }
+\cs_new_protected:Npn \__ctxdoc_marco_every_par:n #1
+ {
+ \everypar
+ {
+ \everypar {#1}
+ \if@inlabel
+ \global \@inlabelfalse
+ \@noparlistfalse
+ \llap { \box \@labels \hskip \leftskip }
+ \fi
+ #1
+ }
+ }
+\ctex_patch_cmd:Nnn \macro@code
+ { \if@inlabel \leavevmode \fi }
+ { \partopsep \z@skip }
+\group_begin:
+ \int_set:Nn \tex_endlinechar:D { -1 }
+ \use:n
+ {
+ \char_set_catcode_active:n { 32 }
+ \tl_const:Nn \c__ctxdoc_active_space_tl
+ }
+ { }
+\group_end:
+\group_begin:
+ \char_set_catcode_active:n { 13 }
+ \cs_new_protected:Npx \__ctxdoc_make_finish_tag:n #1
+ {
+ \tl_set:Nn \exp_not:N \l__ctxdoc_verbatim_finish_tl
+ {
+ \c_percent_str
+ \prg_replicate:nn { 4 }
+ { \exp_not:o { \c__ctxdoc_active_space_tl } }
+ \exp_not:o { \active@escape@char } end
+ \c_left_brace_str #1 \c_right_brace_str
+ \exp_not:N ^^M
+ }
+ }
+ \cs_new_protected:Npn \__ctxdoc_verbatim_start:w #1
+ {
+ \str_if_eq:nnTF {#1} { ^^M }
+ { \__ctxdoc_verbatim_read_line:w }
+ { \__ctxdoc_verbatim_read_line:w #1 }
+ }
+ \cs_new_protected:Npn \__ctxdoc_verbatim_read_line:w #1 ^^M
+ {
+ \tl_set:Nn \l__ctxdoc_verbatim_line_tl { #1 ^^M }
+ \tl_if_eq:NNTF \l__ctxdoc_verbatim_line_tl \l__ctxdoc_verbatim_finish_tl
+ { \exp_args:Nx \end { \@currenvir } }
+ {
+ \__ctxdoc_verbatim_process_line:
+ \__ctxdoc_verbatim_read_line:w
+ }
+ }
+ \cs_new_protected:Npn \__ctxdoc_swap_cr:
+ { \exp_after:wN \__ctxdoc_swap_cr:w \l__ctxdoc_verbatim_line_tl }
+ \cs_new_protected:Npn \__ctxdoc_swap_cr:w #1 ^^M
+ {
+ \group_insert_after:N ^^M
+ \tl_set:Nn \l__ctxdoc_verbatim_line_tl {#1}
+ }
+ \tl_const:Nn \c__ctxdoc_active_cr_tl { ^^M }
+\group_end:
+\tl_new:N \l__ctxdoc_verbatim_line_tl
+\tl_new:N \l__ctxdoc_verbatim_finish_tl
+\tl_new:N \g__ctxdoc_verbatim_verb_stop_tl
+\cs_new_protected_nopar:Npn \__ctxdoc_process_normal_line:
+ {
+ \str_if_eq:eeTF
+ { \str_head:N \l__ctxdoc_verbatim_line_tl } { \c_percent_str }
+ { \__ctxdoc_check_angle:x { \tl_tail:N \l__ctxdoc_verbatim_line_tl } }
+ { \__ctxdoc_output_line: }
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_process_verb_line:
+ {
+ \tl_if_eq:NNTF \l__ctxdoc_verbatim_line_tl \g__ctxdoc_verbatim_verb_stop_tl
+ {
+ \tl_gclear:N \g__ctxdoc_verbatim_verb_stop_tl
+ \cs_gset_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_normal_line:
+ \__ctxdoc_output_module:nn
+ { \color { verb@guard } }
+ {
+ \__ctxdoc_swap_cr:
+ \__ctxdoc_module_pop:n { \l__ctxdoc_verbatim_line_tl }
+ }
+ }
+ { \tl_use:N \l__ctxdoc_verbatim_line_tl }
+ }
+\cs_new_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_normal_line:
+\DeclareDocumentCommand \CheckModules { }
+ { \cs_set_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_normal_line: }
+\DeclareDocumentCommand \DontCheckModules { }
+ { \cs_set_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_output_line: }
+\cs_new_protected:Npn \__ctxdoc_check_angle:n #1
+ {
+ \str_if_eq:eeTF { \str_head:n {#1} } { < }
+ { \__ctxdoc_check_module:x { \tl_tail:n {#1} } }
+ { \__ctxdoc_output_percent_line: }
+ }
+\cs_generate_variant:Nn \__ctxdoc_check_angle:n { x }
+\cs_new_protected:Npn \__ctxdoc_check_module:n #1
+ {
+ \exp_args:Nx \str_case:nnF { \str_head:n {#1} }
+ {
+ { * } { \__ctxdoc_module_star:w }
+ { / } { \__ctxdoc_module_slash:w }
+ { @ } { \__ctxdoc_module_at:w }
+ { < } { \__ctxdoc_module_verb:w }
+ }
+ { \__ctxdoc_module_pm:w }
+ #1 \q_stop
+ }
+\cs_generate_variant:Nn \__ctxdoc_check_module:n { x }
+\group_begin:
+ \char_set_catcode_active:N \>
+ \cs_new_protected:Npn \__ctxdoc_module_star:w #1 > #2 \q_stop
+ {
+ \__ctxdoc_output_module:nn
+ { \__ctxdoc_star_color: }
+ { \__ctxdoc_module_push:n { \__ctxdoc_module_angle:n {#1} } }
+ \__ctxdoc_output_line:n {#2}
+ \__ctxdoc_star_format:
+ }
+ \cs_new_protected:Npn \__ctxdoc_module_slash:w #1 > #2 \q_stop
+ {
+ \__ctxdoc_output_module:nn
+ { \__ctxdoc_slash_color: }
+ { \__ctxdoc_module_pop:n { \__ctxdoc_module_angle:n {#1} } }
+ \__ctxdoc_output_line:n {#2}
+ \__ctxdoc_slash_format:
+ }
+ \cs_new_protected:Npn \__ctxdoc_module_at:w @ @ = #1 > #2 \q_stop
+ {
+ \__ctxdoc_output_module:nn
+ { \color { at@guard } }
+ { \__ctxdoc_module_angle:n { @ @ = #1 } }
+ \tl_gset:Nn \g__codedoc_module_name_tl {#1}
+ \__ctxdoc_output_line:n {#2}
+ }
+ \cs_new_protected:Npn \__ctxdoc_module_pm:w #1 > #2 \q_stop
+ {
+ \tex_noindent:D
+ \hbox_overlap_left:n
+ {
+ \__ctxdoc_output_module:nn
+ { \__ctxdoc_pm_color: }
+ { \__ctxdoc_module_angle:n {#1} }
+ \skip_horizontal:n { \leftskip + \smallskipamount }
+ }
+ \group_begin:
+ \__ctxdoc_pm_format:
+ \__ctxdoc_output_line:n {#2}
+ \group_end:
+ }
+ \cs_new_protected:Npn \__ctxdoc_module_verb:w #1 \q_stop
+ {
+ \cs_gset_eq:NN \__ctxdoc_verbatim_process_line: \__ctxdoc_process_verb_line:
+ \tl_gset:Nx \g__ctxdoc_verbatim_verb_stop_tl
+ { \c_percent_str \tl_tail:n {#1} }
+ \__ctxdoc_output_module:nn
+ { \color { verb@guard } }
+ {
+ \__ctxdoc_swap_cr:
+ \__ctxdoc_module_push:n { \l__ctxdoc_verbatim_line_tl }
+ }
+ }
+\group_end:
+\cs_new_protected_nopar:Npn \__ctxdoc_output_line:
+ {
+ \tex_noindent:D
+ \__ctxdoc_replace_at_at:N \l__ctxdoc_verbatim_line_tl
+ \tl_use:N \l__ctxdoc_verbatim_line_tl
+ }
+\cs_new_protected:Npn \__ctxdoc_replace_at_at:N #1
+ {
+ \tl_if_empty:NF \g__codedoc_module_name_tl
+ {
+ \exp_args:NNo \__ctxdoc_replace_at_at_aux:Nn
+ #1 \g__codedoc_module_name_tl
+ }
+ }
+\cs_new_protected:Npx \__ctxdoc_replace_at_at_aux:Nn #1#2
+ {
+ \tl_replace_all:Nnn #1 { \token_to_str:N @ } { @ }
+ \tl_replace_all:Nnn #1 { \token_to_str:N _ } { _ }
+ \tl_replace_all:Nnn #1 { @ @ @ @ } { \token_to_str:N a a }
+ \tl_replace_all:Nnn #1 { _ _ @ @ } { _ _ #2 }
+ \tl_replace_all:Nnn #1 { _ @ @ } { _ _ #2 }
+ \tl_replace_all:Nnn #1 { @ @ } { _ _ #2 }
+ \tl_replace_all:Nnn #1 { \token_to_str:N a a } { @ @ }
+ }
+\cs_new_protected:Npn \__ctxdoc_output_line:n #1
+ {
+ \tl_set:Nn \l__ctxdoc_verbatim_line_tl {#1}
+ \tl_if_eq:NNTF \l__ctxdoc_verbatim_line_tl \c__ctxdoc_active_cr_tl
+ { \tl_use:N \l__ctxdoc_verbatim_line_tl }
+ {
+ \str_if_eq:eeTF
+ { \str_head:N \l__ctxdoc_verbatim_line_tl }
+ { \c_percent_str }
+ { \__ctxdoc_output_percent_line: }
+ { \__ctxdoc_output_line: }
+ }
+ }
+\cs_new_protected:Npn \__ctxdoc_output_percent_line:
+ {
+ \tex_noindent:D
+ \group_begin:
+ \color { code@gray }
+ \__ctxdoc_swap_cr:
+ \str_if_eq:eeTF { \f@shape } { \updefault }
+ { \slshape }
+ { \upshape }
+ \__ctxdoc_output_line:
+ \group_end:
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_module_push:n
+ { \exp_args:No \__ctxdoc_module_push_aux:nn { \int_use:N \c@HD@hypercount } }
+\cs_new_protected:Npn \__ctxdoc_module_push_aux:nn #1
+ {
+ \seq_gpush:Nn \g__ctxdoc_module_dest_seq {#1}
+ \hypersetup { hidelinks }
+ \exp_args:Nx \hdclindex
+ { \zref@extractdefault { HD.#1 } { guard@end } { 1 } } { }
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_module_pop:n
+ {
+ \seq_gpop:NNTF \g__ctxdoc_module_dest_seq \l__ctxdoc_tmp_tl
+ { \exp_args:No \__ctxdoc_module_pop_aux:nn { \l__ctxdoc_tmp_tl } }
+ { \BOOM \use:n }
+ }
+\cs_new_protected:Npn \__ctxdoc_module_pop_aux:nn #1
+ {
+ \zref@labelbylist { HD.#1 } { ctxdoc }
+ \hypersetup { hidelinks }
+ \hdclindex {#1} { }
+ }
+\seq_new:N \g__ctxdoc_module_dest_seq
+\zref@newlist { ctxdoc }
+\zref@newprop { guard@end } [ 1 ]
+ { \int_eval:n { \c@HD@hypercount - 1 } }
+\zref@addprop { ctxdoc } { guard@end }
+\cs_new_protected_nopar:Npn \__ctxdoc_star_format:
+ {
+ \seq_gpush:No \g__ctxdoc_slash_format_seq { \macro@font }
+ \seq_gpop:NNF \g__ctxdoc_star_format_seq \l__ctxdoc_format_tl
+ { \__ctxdoc_pop_format: }
+ \__ctxdoc_select_format:
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_slash_format:
+ {
+ \seq_gpop:NNTF \g__ctxdoc_slash_format_seq \l__ctxdoc_format_tl
+ {
+ \seq_gpush:No \g__ctxdoc_star_format_seq { \macro@font }
+ \__ctxdoc_select_format:
+ }
+ { \BOOM }
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_pm_format:
+ {
+ \seq_get:NNF \g__ctxdoc_star_format_seq \l__ctxdoc_format_tl
+ {
+ \__ctxdoc_pop_format:
+ \seq_gpush:No \g__ctxdoc_star_format_seq { \l__ctxdoc_format_tl }
+ }
+ \cs_if_eq:NNF \macro@font \l__ctxdoc_format_tl
+ { \l__ctxdoc_format_tl }
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_pop_format:
+ {
+ \seq_gpop_left:NN \g__ctxdoc_format_seq \l__ctxdoc_format_tl
+ \seq_gput_right:No \g__ctxdoc_format_seq { \l__ctxdoc_format_tl }
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_select_format:
+ {
+ \cs_if_eq:NNF \macro@font \l__ctxdoc_format_tl
+ {
+ \cs_gset_eq:NN \macro@font \l__ctxdoc_format_tl
+ \macro@font
+ }
+ }
+\tl_new:N \l__ctxdoc_format_tl
+\seq_new:N \g__ctxdoc_format_seq
+\seq_new:N \g__ctxdoc_star_format_seq
+\seq_new:N \g__ctxdoc_slash_format_seq
+\seq_gput_right:Nn \g__ctxdoc_format_seq { \MacroFont }
+\seq_gput_right:Nn \g__ctxdoc_format_seq { \AltMacroFont }
+\cs_set_protected:Npn \MacroFont
+ {
+ \linespread { 1 }
+ \small
+ \fontseries { \mddefault }
+ \fontshape { \updefault }
+ \ttfamily
+ \ctexdocverbaddon
+ }
+\cs_set_protected:Npn \AltMacroFont
+ {
+ \linespread { 1 }
+ \small
+ \fontseries { \mddefault }
+ \fontshape { \sldefault }
+ \ttfamily
+ \ctexdocverbaddon
+ }
+\AtBeginDocument
+ {
+ \tl_gset:Nx \macro@font
+ { \seq_item:Nn \g__ctxdoc_format_seq { 1 } }
+ }
+\cs_new_protected:Npn \__ctxdoc_output_module:nn #1#2
+ {
+ \tex_noindent:D
+ \group_begin:
+ #1
+ \footnotesize \normalfont \sffamily #2
+ \group_end:
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_star_color:
+ {
+ \seq_gpop:NNTF \g__ctxdoc_star_color_seq \current@color
+ { \set@color }
+ { \__ctxdoc_select_color: }
+ \seq_gpush:No \g__ctxdoc_slash_color_seq { \current@color }
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_slash_color:
+ {
+ \seq_gpop:NNTF \g__ctxdoc_slash_color_seq \current@color
+ {
+ \set@color
+ \seq_gpush:No \g__ctxdoc_star_color_seq { \current@color }
+ }
+ { \BOOM }
+ }
+\cs_new_protected_nopar:Npn \__ctxdoc_pm_color:
+ {
+ \seq_get:NNTF \g__ctxdoc_star_color_seq \current@color
+ { \set@color }
+ {
+ \__ctxdoc_select_color:
+ \seq_gpush:No \g__ctxdoc_star_color_seq { \current@color }
+ }
+ }
+\seq_new:N \g__ctxdoc_star_color_seq
+\seq_new:N \g__ctxdoc_slash_color_seq
+\cs_new_protected_nopar:Npn \__ctxdoc_select_color:
+ { \color { guard@series!!+ } }
+\definecolorseries { guard@series }
+ { cmyk } { last } { blue } { purple }
+\resetcolorseries [ 3 ] { guard@series }
+\definecolor { verb@guard } { rgb } { 0.5 , 0.5 , 0 }
+\definecolor { at@guard } { rgb } { 0.5 , 0 , 0.5 }
+\definecolor { code@gray } { gray } { 0.5 }
+\cs_new_protected:Npn \__ctxdoc_module_angle:n #1
+ { \textlangle #1 \textrangle }
+\cs_new_protected_nopar:Npn \__ctxdoc_code_line_no:
+ {
+ \int_gincr:N \c@CodelineNo
+ \hbox_overlap_left:n
+ {
+ \hbox_to_wd:nn
+ { \MacroIndent }
+ {
+ \HD@target
+ \tex_hss:D
+ \__ctxdoc_code_line_no_style:
+ \theCodelineNo \enspace
+ }
+ \tex_kern:D \@totalleftmargin
+ }
+ }
+\tl_set:Nn \theCodelineNo
+ { \arabic { CodelineNo } }
+\cs_new_protected_nopar:Npn \__ctxdoc_code_line_no_style:
+ { \color { code@gray } \normalfont \sffamily \tiny }
+\cs_set_protected:Npn \HD@SetMacroIndent #1
+ {
+ \group_begin:
+ \settowidth \MacroIndent
+ {
+ \__ctxdoc_code_line_no_style:
+ \prg_replicate:nn { \tl_count:n {#1} } { 0 }
+ \enspace
+ }
+ \dim_gset_eq:NN \MacroIndent \MacroIndent
+ \group_end:
+ }
+\ExplSyntaxOff
+\AtBeginDocument{\addtocontents{toc}{\StopSpecialIndexModule}}
+\pdfstringdefDisableCommands{%
+ \let\path\meta
+ \let\opt\@firstofone}
+\preto\@thehead{\cslet{MakeUppercase\space}{\@iden}}
+\def\orbar{\textup{\textbar}}
+\def\defaultval#1{\textbf{\textup{#1}}}
+\def\defaultvalaux#1){\defaultval{#1}}
+\def\TF{true\orbar false}
+\def\TTF{\defaultval{true}\orbar false}
+\def\TFF{true\orbar\defaultval{false}}
+\protected\def\opt{\texttt}
+\def\pdfTeX{\hologo{pdfTeX}}
+\def\XeTeX{\hologo{XeTeX}}
+\def\XeLaTeX{\hologo{XeLaTeX}}
+\def\LuaLaTeX{\hologo{LuaLaTeX}}
+\def\pdfLaTeX{\hologo{pdfLaTeX}}
+\def\LaTeX{\hologo{LaTeX}}
+\def\LaTeXe{\hologo{LaTeX2e}}
+\def\LaTeXiii{\hologo{LaTeX3}}
+\def\dvipdfmx{DVIPDFM\textit{x}}
+\def\TeX{\hologo{TeX}}
+\def\ApTeX{Ap\TeX}
+\def\ApLaTeX{Ap\LaTeX}
+\def\upTeX{up\TeX}
+\def\upLaTeX{up\LaTeX}
+\def\bashcmd{\texttt}
+\def\TeXLive{\TeX\ Live}
+\def\MiKTeX{\hologo{MiKTeX}}
+\def\BSTACK{\begin{tabular}[t]{@{}l@{}}}
+\def\ESTACK{\end{tabular}}
+\newenvironment{defaultcapconfig}{%
+ \MakePercentComment
+ \input{ctex-name-utf8.cfg}%
+ \ExplSyntaxOff
+ \MakePercentIgnore}{}
+\def\ctexkit{\href{https://github.com/CTeX-org/ctex-kit/}{\texttt{ctex-kit}}}
+\def\ctexkitrev#1{%
+ \href{https://github.com/CTeX-org/ctex-kit/commit/#1}{\texttt{ctex-kit} rev. #1}}
+\appto\GlossaryParms{%
+ \raggedcolumns
+ \let\Hy@writebookmark\HDorg@writebookmark
+ \def\@idxitem{\par\hangindent 2em }%
+ \def\subitem{\@idxitem\hspace*{1em}}%
+ \def\subsubitem{\@idxitem\hspace*{2em}}}
+\def\glossaryname{版本历å²}
+\GlossaryPrologue{\section{\glossaryname}}
+\IndexPrologue{%
+ \section{\indexname}
+ \textit{æ„大利体的数字表示æ述对应索引项的页ç ï¼›
+ 带下划线的数字表示定义对应索引项的代ç è¡Œå·ï¼›
+ 罗马字体的数字表示使用对应索引项的代ç è¡Œå·ã€‚}}
+\def\IndexLayout{%
+ \newgeometry{hmargin=15mm,vmargin={25mm,15mm},footskip=7mm}%
+ \setlength\IndexMin{.5\textheight}%
+ \ctexset{section/numbering=false}%
+ \StopSpecialIndexModule}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+%%
+%%
+%% End of file ctxdoc.cls.
diff --git a/language/chinese/ctex/ctxdocstrip.tex b/language/chinese/ctex/ctxdocstrip.tex
new file mode 100644
index 0000000000..425496c0e5
--- /dev/null
+++ b/language/chinese/ctex/ctxdocstrip.tex
@@ -0,0 +1,110 @@
+%%
+%% File ctxdocstrip.tex
+%%
+%% Copyright (C) 2016--2020
+%% CTEX.ORG and any individual authors listed in the documentation.
+%%---------------------------------------------------------------------
+%%
+%% 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".
+%%
+%%---------------------------------------------------------------------
+%%
+\csname ctxDocstripLoaded\endcsname
+\let\ctxDocstripLoaded\endinput
+\input l3docstrip %
+\edef\ctxResetCatcode{%
+ \catcode\number`\$=\the\catcode`\$\relax
+ \catcode\number`\@=\the\catcode`\@\relax
+}
+\makeOther\$
+\catcode`\@=11\relax
+\def\plusOption+#1>#2$#3$\endLine{%
+ \maybeMsg{<+#1 . >}%
+ \Evaluate{#1}%
+ \def\ctxCMD{#2}%
+ \def\ctxID{$#3$}%
+ \def\do##1##2##3{%
+ \if1\Expr{##2}%
+ \ctxReadIDFile
+ \StreamPut##1{\inLine}%
+ \fi
+ }%
+ \activefiles
+}
+\def\ctxReadIDFile{%
+ \openin\inputcheck=\jobname.id\relax
+ \ifeof\inputcheck\else
+ \read \inputcheck to \inLine
+ \closein\inputcheck
+ \ifx\inLine\empty\else
+ \let\ctxID\inLine
+ \fi
+ \fi
+ \maybeMsg{^^J\ctxID^^J}%
+ \def\inLine{\ctxCMD\ctxID}%
+}
+\keepsilent
+\askforoverwritefalse
+\declarepreamble\emptypreamble
+\endpreamble
+\declarepostamble\emptypostamble
+\endpostamble
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname directlua\endcsname\relax
+ \expandafter\ctxResetCatcode\expandafter\endinput
+\fi
+\let\OriginalStreamClose\StreamClose
+\def\ctxStreamClose#1{%
+ \OriginalStreamClose{#1}%
+ \ctxConvFile{#1}%
+}
+\def\ctxConvFile#1{%
+ \ifcsname zhconv@\csstring#1\endcsname
+ \ctxConv{\lastnamedcs}%
+ {\begincsname pth@\csstring#1\endcsname}%
+ \fi
+}
+\def\ctxLuaFunc{%
+ \directlua{
+ local zhconv = require("zhconv").conv
+ local scan_string = token.scan_string
+ local t = lua.get_functions_table()
+ local id = 233
+ while t[id] do id = id + 1 end
+ t[id] = function ()
+ local enc = scan_string()
+ local file = scan_string()
+ return zhconv(enc, file, file)
+ end
+ token.set_lua("ctxConv", id, "global", "protected")
+ }%
+ \global\let\ctxLuaFunc\relax
+}
+\def\convfile{%
+ \ifx\@file\file
+ \expandafter\ctxfile\else
+ \expandafter\setconvfile\fi
+}
+\def\setconvfile#1#2{%
+ \ctxLuaFunc
+ \Name\def{zhconv@#2}{#1}%
+ \let\StreamClose\ctxStreamClose
+}
+\def\ctxfile#1#2{%
+ \setconvfile{#1}{#2}%
+ \file{#2}%
+}
+\ctxResetCatcode
+%%
+%%
+%% End of file ctxdocstrip.tex
diff --git a/language/chinese/ctex/zhconv-make.lua b/language/chinese/ctex/zhconv-make.lua
new file mode 100644
index 0000000000..fe6f00feaa
--- /dev/null
+++ b/language/chinese/ctex/zhconv-make.lua
@@ -0,0 +1,114 @@
+#!/usr/bin/env texlua
+--
+-- File zhconv-make.lua
+--
+-- Copyright (C) 2020 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.
+--
+-- This work consists of the files zhconv.lua, zhconv-make.lua
+-- and the derived files zhconv-index.lua, zhconv-index.luc.
+--
+--------------------------------------------------------------------------
+--
+
+local preamble = [[
+--
+-- File zhconv-index.lua
+--
+-- Copyright (C) 2020 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.
+--
+-- This work consists of the files zhconv.lua, zhconv-make.lua
+-- and the derived files zhconv-index.lua, zhconv-index.luc.
+--
+--------------------------------------------------------------------------
+--
+-- Do not edit this file!
+-- Generated from the WHATWG Encoding Standard:
+--
+-- https://encoding.spec.whatwg.org/index-big5.txt (Date: %s)
+-- https://encoding.spec.whatwg.org/index-gb18030.txt (Date: %s)
+-- https://encoding.spec.whatwg.org/index-gb18030-ranges.txt (Date: %s)
+--
+--
+]]
+
+local rep, format, dump = string.rep, string.format, string.dump
+local insert, unpack, concat = table.insert, table.unpack, table.concat
+local io_open, os_execute = io.open, os.execute
+
+local curlcmd = "curl --silent --output %s https://encoding.spec.whatwg.org/%s"
+local function prepare_index (file)
+ local file_path = file
+ local handle = io_open(file, "rb")
+ if handle then return handle end
+ local ret = os_execute(curlcmd:format(file, file))
+ assert(ret == 0, "the curl command failed with: ".. ret)
+ return assert(io_open(file, "rb"))
+end
+
+local index, date = { }, { }
+
+local indent = 2
+local begin_enc = "%s[%q] = {"
+local end_enc = "%s} ,"
+local num_item = "%s[%s] = %s ,"
+local tab_item = "%s{ %6d , %s } ,"
+local tab = rep(" ", indent)
+local tabtab = tab .. tab
+
+insert(index, "return {")
+for i, v in ipairs { { "index-big5.txt", "big5" },
+ { "index-gb18030.txt", "gb18030" },
+ { "index-gb18030-ranges.txt", "gb18030_ranges" } } do
+ local file, encode = unpack(v)
+ local handle = prepare_index(file)
+ insert(index, begin_enc:format(tab, encode))
+ for line in handle:lines() do
+ if not date[i] then
+ local s = line:match("Date: (.+)$")
+ if s then date[i] = s end
+ end
+ local pointer, code_point = line:match("^%s*(%d+)\t(0x%x+)")
+ if pointer and code_point then
+ insert(index, format(i == 3 and tab_item or num_item, tabtab, pointer, code_point))
+ end
+ end
+ insert(index, end_enc:format(tab))
+ handle:close()
+end
+insert(index, "}\n")
+
+local index = concat(index, "\n")
+
+local handle = io_open("zhconv-index.lua", "wb")
+handle:write(preamble:format(unpack(date)), index)
+handle:close()
diff --git a/language/chinese/ctex/zhconv.lua b/language/chinese/ctex/zhconv.lua
new file mode 100644
index 0000000000..8af2161e26
--- /dev/null
+++ b/language/chinese/ctex/zhconv.lua
@@ -0,0 +1,205 @@
+--
+-- File zhconv.lua
+--
+-- Copyright (C) 2020 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.
+--
+-- This work consists of the files zhconv.lua, zhconv-make.lua
+-- and the derived files zhconv-index.lua.
+--
+--------------------------------------------------------------------------
+--
+
+if status.kpse_used ~= 1 then
+ kpse.set_program_name("luatex")
+end
+
+zhconv = zhconv or { }
+local zhconv = zhconv
+zhconv.module = {
+ name = "zhconv",
+ version = "0.1",
+ date = "2020/05/01",
+ description = "GBK/GB18030/Big5 encoder",
+ author = "Qing Lee",
+ copyright = "Qing Lee",
+ license = "LPPL v1.3c"
+}
+
+local utf = require("unicode").utf8
+local ubyte, ugsub = utf.byte, utf.gsub
+
+local floor = math.floor
+local unpack, insert, sort = table.unpack, table.insert, table.sort
+local char, format = string.char, string.format
+
+zhconv.index = require("zhconv-index")
+local index = zhconv.index
+
+zhconv.mapping = { }
+local mapping = zhconv.mapping
+
+mapping.big5, mapping.gbk, mapping.gb18030 = { }, { }, { }
+local gbk, gb18030, big5 = mapping.gbk, mapping.gb18030, mapping.big5
+
+zhconv.bytes = { }
+local bytes = zhconv.bytes
+
+-- Let lead be pointer / 190 + 0x81.
+-- Let trail be pointer % 190.
+-- Let offset be 0x40 if trail is less than 0x3F and 0x41 otherwise.
+-- Return two bytes whose values are lead and trail + offset.
+function bytes.gbk (pointer)
+ local lead = floor(pointer / 190) + 0x81
+ local trail = pointer % 190
+ local offset = trail < 0x3F and 0x40 or 0x41
+ return format("%c%c", lead, trail + offset)
+end
+
+-- Let lead be pointer / 157 + 0x81.
+-- If lead is less than 0xA1, return error with code point.
+-- Let trail be pointer % 157.
+-- Let offset be 0x40 if trail is less than 0x3F and 0x62 otherwise.
+-- Return two bytes whose values are lead and trail + offset.
+function bytes.big5 (pointer)
+ local lead = floor(pointer / 157) + 0x81
+ local trail = pointer % 157
+ local offset = trail < 0x3F and 0x40 or 0x62
+ return format("%c%c", lead, trail + offset)
+end
+
+-- Let byte1 be pointer / 10 / 126 / 10.
+-- Set pointer to pointer - byte1 × 10 × 126 × 10.
+-- Let byte2 be pointer / 10 / 126.
+-- Set pointer to pointer - byte2 × 10 × 126.
+-- Let byte3 be pointer / 10.
+-- Let byte4 be pointer - byte3 × 10.
+-- Return four bytes whose values are byte1 + 0x81, byte2 + 0x30, byte3 + 0x81, byte4 + 0x30.
+function bytes.gb18030 (pointer)
+ local pointer = pointer
+ local byte1 = floor(pointer / 12600) + 0x81
+ pointer = pointer % 12600
+ local byte2 = floor(pointer / 1260) + 0x30
+ pointer = pointer % 1260
+ local byte3 = floor(pointer / 10) + 0x81
+ local byte4 = pointer % 10 + 0x30
+ return format("%c%c%c%c", byte1, byte2, byte3, byte4)
+end
+
+-- Let offset be the last code point in index gb18030 ranges that is equal to or
+-- less than code point and let pointer offset be its corresponding pointer.
+-- Return a pointer whose value is pointer offset + code point - offset.
+do
+ local metatable = { }
+ local bytes, ranges = bytes.gb18030, index["gb18030_ranges"]
+ function metatable.__index (t, key)
+ if type(key) == "number" then
+ local n = #ranges
+ if key < 0x10000 then
+ local s = gbk[key]
+ if s then return s end
+ repeat
+ n = n - 1
+ until ranges[n][2] <= key
+ end
+ local pointer, offset = unpack(ranges[n])
+ return bytes(pointer + key - offset)
+ end
+ end
+ gb18030 = setmetatable(gb18030, metatable)
+end
+
+-- The index Big5 pointer for code point is the return value of these steps:
+-- 1. Let index be index Big5 excluding all entries whose pointer
+-- is less than (0xA1 - 0x81) × 157.
+-- 2. If code point is U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345,
+-- return the last pointer corresponding to code point in index.
+local big5_last = {
+ [0x2550] = true ,
+ [0x255E] = true ,
+ [0x2561] = true ,
+ [0x256A] = true ,
+ [0x5341] = true ,
+ [0x5345] = true ,
+}
+
+do
+
+local function spairs (t)
+ local a = { }
+ for i, n in pairs(t) do insert(a, {i, n}) end
+ sort(a, function(b, c) return b[1] < c[1] end)
+ local i = 0
+ local iter = function ()
+ i = i + 1
+ if a[i] then
+ return a[i][1], a[i][2]
+ end
+ end
+ return iter
+end
+
+local chars = bytes.big5
+local m = (0xA1 - 0x81) * 157
+for i, v in spairs(index.big5) do
+ if i >= m then
+ if big5[v] then
+ if big5_last[v] then big5[v] = chars(i) end
+ else
+ big5[v] = chars(i)
+ end
+ end
+end
+
+local chars = bytes.gbk
+for i, v in pairs(index.gb18030) do
+ gbk[v] = chars(i)
+end
+
+end
+
+-- If the gbk flag is set and code point is U+20AC, return byte 0x80.
+gb18030[0x20AC] = gbk[0x20AC]
+gbk[0x20AC] = char(0x80)
+
+local io_open = io.open
+local encode_error = "Encoding %q not available!"
+local file_error = "Open file %q failed!"
+
+function zhconv.conv (encoding, input, output)
+ local encoding = encoding:lower()
+ local mapping = assert(mapping[encoding], encode_error:format(encoding))
+ local encoder = function (s)
+ local code_point = ubyte(s)
+ return code_point > 0x7F and mapping[code_point]
+ end
+ if output then
+ local handle = assert(io_open(input, "rb"), file_error:format(input))
+ local stream = handle:read("*all")
+ handle:close()
+ handle = assert(io_open(output, "wb"), file_error:format(output))
+ stream = stream:gsub("^\xEF\xBB\xBF", "")
+ stream = ugsub(stream, ".", encoder)
+ handle:write(stream)
+ handle:close()
+ else
+ local s = ugsub(input, ".", encoder)
+ return s
+ end
+end
+
+return zhconv
diff --git a/language/japanese/jlreq/Makefile b/language/japanese/jlreq/Makefile
index 139d68925f..2d7b528547 100644
--- a/language/japanese/jlreq/Makefile
+++ b/language/japanese/jlreq/Makefile
@@ -143,7 +143,7 @@ sty-install:
install: jfm-install cls-install sty-install
-tds: jfm jlreq.cls README.md README-ja.md LICENSE jlreq.html jlreq-ja.html jlreq-trimmarks.html jlreq-trimmarks-ja.html jlreq.pdf jlreq-ja.pdf jlreq-trimmarks.pdf jlreq-trimmarks-ja.pdf
+tds: jfm jlreq.cls README.md README-ja.md LICENSE jlreq.html jlreq-ja.html jlreq-trimmarks.html jlreq-trimmarks-ja.html jlreq.pdf jlreq-ja.pdf
mkdir -p ./tds/fonts/tfm/public/jlreq
cp -f *.tfm ./tds/fonts/tfm/public/jlreq
mkdir -p ./tds/fonts/vf/public/jlreq
diff --git a/language/japanese/jlreq/README-ja.md b/language/japanese/jlreq/README-ja.md
index a57b5d4f4b..544f1ce7cf 100644
--- a/language/japanese/jlreq/README-ja.md
+++ b/language/japanese/jlreq/README-ja.md
@@ -178,9 +178,13 @@ pLaTeX / upLaTeX / LuaLaTeX上ã§å‹•ãã¾ã™ï¼Žä»¥ä¸‹ã®ãƒ‘ッケージを内éƒ
### 定ç†ç’°å¢ƒ
`\jlreqsetup`ã§æŒ‡å®šã—ã¾ã™ï¼Ž
* `theorem_beforeafter_space=<寸法>`:定ç†ç’°å¢ƒã®å‰å¾Œã®ç©ºãを指定ã—ã¾ã™ï¼Ž
+* `theorem_label_font=<フォント設定コード>`:定ç†ç’°å¢ƒã®ãƒ©ãƒ™ãƒ«éƒ¨åˆ†ã®ãƒ•ã‚©ãƒ³ãƒˆã‚’設定ã—ã¾ã™ï¼Ž
+* `theorem_font=<フォント設定コード>`:定ç†ç’°å¢ƒæœ¬ä½“ã®ãƒ•ã‚©ãƒ³ãƒˆã‚’設定ã—ã¾ã™ï¼Ž
+
+`amsthm`パッケージãŒèª­ã¿è¾¼ã¾ã‚Œã‚‹ã¨ï¼Œæ–°ã—ã„定ç†ã‚¹ã‚¿ã‚¤ãƒ«`jlreq`ãŒå®šç¾©ã•ã‚Œï¼Œç¾åœ¨ã®ã‚¹ã‚¿ã‚¤ãƒ«ãŒ`jlreq`ã¸ã¨å¤‰æ›´ã•ã‚Œã¾ã™ï¼Žã“ã®ã¨ã,上記設定ã¯ã“ã®`jlreq`スタイルã¸ã®è¨­å®šã¨ã—ã¦æ©Ÿèƒ½ã—ã¾ã™ï¼Ž
### å‰ä»˜ããªã©
-`\fontmatter` / `\mainmatter` / `\backmatter` / `\appendix`ã§ã®å‡¦ç†ã‚’`\jlreqsetup`ã§æŒ‡å®šã§ãã¾ã™ï¼Ž
+`\frontmatter` / `\mainmatter` / `\backmatter` / `\appendix`ã§ã®å‡¦ç†ã‚’`\jlreqsetup`ã§æŒ‡å®šã§ãã¾ã™ï¼Ž
* `frontmatter_pagebreak=[cleardoublepage/clearpage/]`:`\frontmatter`実行時ã®æ”¹ãƒšãƒ¼ã‚¸ã‚’実行ã™ã‚‹å‘½ä»¤åを指定ã—ã¾ã™ï¼Žç©ºã«ã™ã‚‹ã¨ä½•ã‚‚ã—ã¾ã›ã‚“.
* `frontmatter_counter={<カウンタå>={value=<値>, the=<コード>, restore=[true/false]},...}`:`\frontmatter`時ã§ã®ã‚«ã‚¦ãƒ³ã‚¿ã®æ“作を指定ã—ã¾ã™ï¼Žä¾‹ãˆã°`chapter={value=0,the={[\arabic{chapter]}}`ã¨ã™ã‚‹ã¨ï¼Œ`chapter`カウンタã®å€¤ãŒ`0`ã«ãªã‚Šï¼Œ`\thechapter`ãŒ`[\arabic{chapter}]`ã¨ãªã‚Šã¾ã™ï¼Žãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯`\mainmatter`時ã«å€¤ã¨`\the<カウンタå>`ã®å®šç¾©ã‚’戻ã—ã¾ã™ãŒï¼Œ`restore=false`ã¨ã™ã‚‹ã¨ã“ã®å‹•ããŒæŠ‘制ã•ã‚Œã¾ã™ï¼Ž
* `frontmatter_heading={<見出ã—命令å>={<設定>},...}`:見出ã—命令ã®å‹•ãを変更ã—ã¾ã™ï¼Ž`\Delare***Heading`ã§æŒ‡å®šã§ãã‚‹é …ç›®ã®ä»–以下をå—ã‘付ã‘ã¾ã™ï¼Ž
@@ -472,6 +476,9 @@ JFMã®åå‰ã¯æ¬¡ã®é€šã‚Šã§ã™ï¼Ž`[]`ã§å›²ã¾ã‚Œã¦ã„る文字ã¯è¨­å®šã«ã
- `\rmfamily`ãªã©ã®å†å®šç¾©ã‚’ã‚„ã‚,`\@rmfamilyhook`ãªã©ã«ã‚³ãƒ¼ãƒ‰ã‚’挿入ã™ã‚‹ã“ã¨ã«ã—ãŸï¼Ž
- `\parskip`ã‚’`0pt`ã«å¤‰æ›´ï¼Ž
- ãƒã‚°ä¿®æ­£ï¼Ž
+* 2020-05-01
+ - `\jlreqsetup`ã«`theorem_label_font`ã¨`theorem_font`を追加.
+ - ãƒã‚°ä¿®æ­£ï¼Ž
--------------
Noriyuki Abe
diff --git a/language/japanese/jlreq/README.md b/language/japanese/jlreq/README.md
index fb5175fb94..c0ef2c541f 100644
--- a/language/japanese/jlreq/README.md
+++ b/language/japanese/jlreq/README.md
@@ -124,6 +124,9 @@ This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENS
- Removed the redefinitions `\rmfamily` etc and added a code to `\@rmfamilyhook`.
- Changed `\parskip` to `0pt`.
- Fixed bugs.
+* 2020-05-01
+ - Added `theorem_label_font` and `theorem_font` to `\jlreqsetup`.
+ - Fixed bugs.
--------------
Noriyuki Abe
diff --git a/language/japanese/jlreq/jlreq-helpers.sty b/language/japanese/jlreq/jlreq-helpers.sty
index 3594c7d1f8..46a619a84c 100644
--- a/language/japanese/jlreq/jlreq-helpers.sty
+++ b/language/japanese/jlreq/jlreq-helpers.sty
@@ -73,11 +73,21 @@
\expandafter\expandafter\expandafter\jlreq@ifmacro@noargument@\jlreq@getfirsttoken#1\jlreq@uniqtoken{}\jlreq@endmark@
}}}
\long\def\jlreq@ifmacro@noargument@#1{\expandafter\jlreq@ifmacro@noargument@@\expandafter{\meaning #1}}
-\edef\jlreq@do{%
- \unexpanded{\def\jlreq@ifmacro@noargument@@}##1{\noexpand\jlreq@ifmacro@noargument@@@##1\expandonce{\detokenize{macro:->}}\noexpand\jlreq@endmark}
- \unexpanded{\def\jlreq@ifmacro@noargument@@@}##1\expandonce{\detokenize{macro:->}}##2\noexpand\jlreq@endmark{\noexpand\jlreq@ifempty{##1}}
+\def\@tempa#1{%
+ \def\jlreq@ifmacro@noargument@@##1{\jlreq@ifmacro@noargument@@@##1#1\noexpand\jlreq@endmark}
+ \def\jlreq@ifmacro@noargument@@@##1#1##2\jlreq@endmark{\jlreq@ifempty{##1}}
}
+\edef\jlreq@do{\noexpand\@tempa{\detokenize{macro:->}}}
\jlreq@do
+% ã“ã¡ã‚‰ã¯å˜ã«ãƒžã‚¯ãƒ­ã‹
+\def\@tempa#1{%
+ \long\def\jlreq@ifmacro##1{\jlreq@ifempty{##1}{\@secondoftwo}{\expandafter\jlreq@ifmacro@i\meaning##1#1\jlreq@endmark}}
+ \long\def\jlreq@ifmacro@i##1#1##2\jlreq@endmark{\jlreq@ifempty{##1}}
+}
+\edef\jlreq@do{\noexpand\@tempa{\detokenize{macro:}}}
+\jlreq@do
+
+
% #1(skipレジスタ)ãŒ0ã‹ï¼ˆå±•é–‹ä¸å¯ï¼‰ï¼Ž
\newcommand*\jlreq@ifgluezero[1]{%
diff --git a/language/japanese/jlreq/jlreq-ja.pdf b/language/japanese/jlreq/jlreq-ja.pdf
index 76cb0ff374..3a0fb1c3f7 100644
--- a/language/japanese/jlreq/jlreq-ja.pdf
+++ b/language/japanese/jlreq/jlreq-ja.pdf
Binary files differ
diff --git a/language/japanese/jlreq/jlreq-trimmarks-ja.md b/language/japanese/jlreq/jlreq-trimmarks-ja.md
index 7531072932..e75a31512d 100644
--- a/language/japanese/jlreq/jlreq-trimmarks-ja.md
+++ b/language/japanese/jlreq/jlreq-trimmarks-ja.md
@@ -157,7 +157,10 @@ dviドライãƒã®æŒ‡å®šã§ã™ï¼Žã‚¨ãƒ³ã‚¸ãƒ³ã«`lualatex`を利用ã™ã‚‹å ´åˆã
* 2019-04-01
- `\jlreqtrimmarkssetup`内ã®`banner`ã‚’æ›´ã«æ‹¡å¼µï¼Ž
- `bleed_margin`を拡張.
-
+* 2020-05-01
+ - `\jlreqtrimmarkssetup`ã®`banner`を使ã‚ãªã„å ´åˆï¼Œ`\@bannertoken`ã®ä¸­èº«ã‚’å¶å¥‡ãƒšãƒ¼ã‚¸ä¸¡æ–¹ã«å‡ºåŠ›ã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž
+ - `\jlreqtrimmarkssetup`ã®`banner`を使ã†å ´åˆï¼Œ`\@bannertoken`ã®ä¸­èº«ã‚’無視ã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž
+ - `\jlreqtrimmarkssetup`ã®`banner_font`ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆï¼Œ`\@bannerfont`を無視ã™ã‚‹ã‚ˆã†ã«ã—ãŸï¼Ž
--------------
Noriyuki Abe
diff --git a/language/japanese/jlreq/jlreq-trimmarks.md b/language/japanese/jlreq/jlreq-trimmarks.md
index 3d66dd56ef..a8fb96bf48 100644
--- a/language/japanese/jlreq/jlreq-trimmarks.md
+++ b/language/japanese/jlreq/jlreq-trimmarks.md
@@ -46,7 +46,7 @@ Set the size of the paper including trim marks.
* If `<paper size>` is empty (e.g. `trimmarks_paper=+2cm`), the current paper size (which is specified usually by the option for the document class) is used.
### `landscape`
-Swap the width and the height. This swaps only the width and height which is specified with the option `trimmarks_paper`. For example, `landscape,trimmarks_paper=+{2cm,1cm}`, adds 1cm to the height and 2cm to the width. But the current paper size is not swapped.
+Swap the width and the height. This swaps only the width and height which is specified with the option `trimmarks_paper`. For example, `landscape,trimmarks_paper=+{1cm,2cm}`, adds 1cm to the height and 2cm to the width. But the current paper size is not swapped.
### `show`
Specify the types of trim marks which the package outputs. It is specified with the comma separated list like `show={trimmarks,banner,digital}`. If no argument is given, everything will be showed.
@@ -151,7 +151,10 @@ This package is distributed under the BSD 2-Clause License. See [LICENSE](LICENS
* 2019-04-01
- Extended `banner` in `\jlreqtrimmarkssetup`.
- Extended `bleed_margin`.
-
+- 2020-05-01
+ - `jlreq-trimmarks` outputs the contents in `\@bannertoken` when `banner` in `\jlreqtrimmarkssetup` is not used.
+ - `\@bannertoken` is ignored when `banner` in `\jlreqtrimmarkssetup` is used.
+ - `\@bannerfont` is ignored when `banner_font` in `\jlreqtrimmarkssetup` is used.
--------------
Noriyuki Abe
diff --git a/language/japanese/jlreq/jlreq-trimmarks.sty b/language/japanese/jlreq/jlreq-trimmarks.sty
index 6ba910a240..03c31e521a 100644
--- a/language/japanese/jlreq/jlreq-trimmarks.sty
+++ b/language/japanese/jlreq/jlreq-trimmarks.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-trimmarks}[2019/04/01 jlreq-trimmarks]
+\ProvidesPackage{jlreq-trimmarks}[2020/05/01 jlreq-trimmarks]
\RequirePackage{xkeyval,etoolbox}
\RequirePackage{jlreq-helpers}
@@ -33,16 +33,10 @@
\@ifclassloaded{jlreq}{\let\ifjlreq@trimmarks@jlreqloaded=\@firstoftwo}{\let\ifjlreq@trimmarks@jlreqloaded=\@secondoftwo}
-\def\ifjlreq@trimmarks@tate@{%
- \if@tate\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
-}
+\def\ifjlreq@trimmarks@tate@{\jlreq@if{\if@tate\fi}}%
% \@firstoftwo when \if@tate is defined and \if@tate=\iftrue
\def\ifjlreq@trimmarks@tate{%
- \ifnum0\ifx\if@tate\@undefined 1\fi\ifx\if@tate\relax 1\fi>0
- \expandafter\@secondoftwo
- \else
- \expandafter\ifjlreq@trimmarks@tate@
- \fi
+ \jlreq@if{\ifnum0\ifx\if@tate\@undefined 1\fi\ifx\if@tate\relax 1\fi>0 \fi}{\@secondoftwo}{\ifjlreq@trimmarks@tate@}%
}
@@ -256,9 +250,9 @@
}%
}%
}{#3}%
- \ifx\jlreq@do\@empty
+ \jlreq@if{\ifx\jlreq@do\@empty\fi}{%
\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{yoko@#2}{#3}}%
- \fi
+ }{}%
\expandafter\endgroup
\jlreq@do
}
@@ -277,9 +271,9 @@
}%
}%
}{#3}%
- \ifx\jlreq@do\@empty
+ \jlreq@if{\ifx\jlreq@do\@empty\fi}{
\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{before@#2}{#3}}%
- \fi
+ }{}%
\expandafter\endgroup
\jlreq@do
}
@@ -296,12 +290,12 @@
}%
}%
}{#3}%
- \ifx\jlreq@do\@empty
+ \jlreq@if{\ifx\jlreq@do\@empty\fi}{
\appto\jlreq@do{%
\expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{#3}}%
\expandafter\edef\csname jlreq@trimmarks@banner@even@#2\endcsname{\unexpanded{#3}}%
}%
- \fi
+ }{}%
\expandafter\endgroup
\jlreq@do
}
@@ -326,11 +320,9 @@
}%
}%
}%
- \@bannertoken{}%
\def\jlreq@do{}%
\jlreq@parsekeyval@nokey{%
\ifjlreq@parsekeyval@nokey@novalue{}{%
- \jlreq@tempafalse
\edef\jlreq@gutterodd{\ifjlreq@trimmarks@tate{right}{left}}%
\if@twoside
\edef\jlreq@guttereven{\ifjlreq@trimmarks@tate{left}{right}}%
@@ -338,8 +330,8 @@
\let\jlreq@guttereven\jlreq@gutterodd
\fi
\jlreq@switch*{####1}{
- {top-left}{\jlreq@tempatrue\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}}
- {left-top}{\jlreq@tempatrue\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}}
+ {top-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}}
+ {left-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}}
{top-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{####2}}}
{right-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{####2}}}
{top-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{####2}}}
@@ -367,17 +359,12 @@
{center-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{####2}}}
{fore-edge-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{####2}}}
}%
- \ifjlreq@tempa
- \appto\jlreq@do{\expandafter\@bannertoken\expandafter{\jlreq@trimmarks@banner@odd@yoko@top@left}}%
- \fi
}%
}{##1}%
- \ifx\jlreq@do\@empty
- \jlreq@trimmarks@setbanner{top@left}{##1}%
- \expandafter\@bannertoken\expandafter{\jlreq@trimmarks@banner@odd@yoko@top@left}%
- \else
- \jlreq@do
- \fi
+ \jlreq@if{\ifx\jlreq@do\@empty\fi}{
+ \appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##1}}%
+ }{}%
+ \jlreq@do
}
{banner_font}{\def\jlreq@trimmarks@bannerfont{##1}}
{trimmarks_width}{\setlength{\@tombowwidth}{##1}}
@@ -418,12 +405,13 @@
}{#1}%
}
\@onlypreamble\jlreqtrimmarkssetup
+\@bannertoken{%
+ \jobname\space(\number\year-\two@digits\month-\two@digits\day
+ \space\two@digits\hour:\two@digits\minute)%
+}
\jlreqtrimmarkssetup{
- banner={%
- \jobname\space(\number\year-\two@digits\month-\two@digits\day
- \space\two@digits\hour:\two@digits\minute)%
- },
- banner_font={},
+ banner={\the\@bannertoken},
+ banner_font={\@bannerfont},
color={}
}
@@ -461,14 +449,14 @@
}{
\def\@tombowreset@@paper{%
\@@topmargin\topmargin
- \iftombow
+ \jlreq@if{\iftombow\fi}{
\@@paperwidth\paperwidth
\advance\@@paperwidth 2\dimexpr\@tombowbleed\relax
\@@paperheight\paperheight \advance\@@paperheight 10mm\relax
\advance\@@paperheight 2\dimexpr\@tombowbleed\relax
% 1in -> 1truein
\advance\@@topmargin 1truein\relax \advance\@themargin 1truein\relax
- \fi
+ }{}%
}
}
\fi
@@ -484,21 +472,21 @@
\setlength{\stockheight}{\dimexpr\jlreq@trimmarks@paperheight\relax}
\def\jlreq@trimmarks@outputbanner#1#2{%
- \iftombowdate
+ \jlreq@if{\iftombowdate\fi}{%
\expandafter\let\expandafter\jlreq@tempa\csname jlreq@trimmarks@banner@\ifodd\c@page odd\else even\fi @#1\endcsname
- \ifx\jlreq@tempa\@empty\else
+ \jlreq@if{\ifx\jlreq@tempa\@empty\fi}{}{%
\def\@tempa##1{#2}%
\expandafter\@tempa\expandafter{\jlreq@tempa}%
- \fi
- \fi
+ }%
+ }{}%
}
\def\jlreq@trimmarks@bleed{3mm}
% left=gutter?
\def\ifjlreq@trimmarks@leftisgutter{%
\ifjlreq@trimmarks@tate{%
- \ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi
+ \jlreq@if{\ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \fi}{\@secondoftwo}{\@firstoftwo}%
}{%
- \ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ \jlreq@if{\ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \fi}{\@firstoftwo}{\@secondoftwo}%
}%
}
\def\jlreq@trimmarks@bleed@left{\ifjlreq@trimmarks@leftisgutter{\jlreq@trimmarks@bleed@gutter}{\expandafter\csname jlreq@trimmarks@bleed@fore-edge\endcsname}}
@@ -516,15 +504,13 @@
\yoko\hss
\vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@left\relax height\@tombowwidth depth\z@
\vrule height10mm width\@tombowwidth depth\z@
- \iftombowdate
- \setbox\jlreq@tempboxa=\hbox to\z@{\hskip5mm\@bannerfont\jlreq@trimmarks@bannerfont
- \ifodd\c@page\the\@bannertoken\else\jlreq@trimmarks@banner@even@yoko@top@left\fi
- \hss}%
+ \jlreq@trimmarks@outputbanner{yoko@top@left}{%
+ \setbox\jlreq@tempboxa=\hbox to\z@{\hskip5mm\jlreq@trimmarks@bannerfont##1\hss}%
\dp\jlreq@tempboxa=0pt
\raise 4pt\box\jlreq@tempboxa
- \fi
+ }%
\jlreq@trimmarks@outputbanner{inyoko@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@top\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
@@ -537,12 +523,12 @@
\yoko
\vrule width10mm height\@tombowwidth depth\z@
\jlreq@trimmarks@outputbanner{before@top@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\raise 4pt\box\jlreq@tempboxa
}%
\jlreq@trimmarks@outputbanner{in@top@center}{%
- \setbox\jlreq@tempboxa=\hbox{\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox{\jlreq@trimmarks@bannerfont##1}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@top\relax
\jlreq@tempdimb=0.5\wd\jlreq@tempboxa
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
@@ -550,7 +536,7 @@
}%
\vrule height10mm width\@tombowwidth depth\z@
\jlreq@trimmarks@outputbanner{after@top@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\raise 4pt\box\jlreq@tempboxa
}%
@@ -562,19 +548,19 @@
\setbox\jlreq@tempboxa=\hbox to\z@{% \@TR
\yoko
\jlreq@trimmarks@outputbanner{yoko@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise 4pt\box\jlreq@tempboxa
}%
\jlreq@trimmarks@outputbanner{inyoko@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1}%
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \ht\jlreq@tempboxa\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
}%
\vrule height10mm width\@tombowwidth depth\z@
\jlreq@trimmarks@outputbanner{corner@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip\dimexpr\jlreq@trimmarks@bleed@right + 4pt\relax\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip\dimexpr\jlreq@trimmarks@bleed@right + 4pt\relax\jlreq@trimmarks@bannerfont##1\hss}%
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise 4pt\box\jlreq@tempboxa
}%
@@ -590,13 +576,13 @@
\yoko\hss
\vrule width10mm height\@tombowwidth depth\z@
\jlreq@trimmarks@outputbanner{corner@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 4pt}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 4pt}%
\dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt
\raise\dimexpr \jlreq@trimmarks@bleed@top + 4pt\relax\box\jlreq@tempboxa
}%
\vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed@top\relax width\@tombowwidth depth\z@
\jlreq@trimmarks@outputbanner{tate@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
\else
@@ -606,7 +592,7 @@
\kern-\jlreq@tempdima\raise-5mm\box\jlreq@tempboxa\kern\jlreq@tempdima
}%
\jlreq@trimmarks@outputbanner{intate@top@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax
\wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
@@ -616,13 +602,13 @@
\hbox to\z@{% \@Tr
\yoko
\jlreq@trimmarks@outputbanner{tate@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern\jlreq@tempdima\raise -5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima
}%
\jlreq@trimmarks@outputbanner{intate@top@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \ht\jlreq@tempboxa\relax
\else
@@ -642,7 +628,7 @@
\yoko\hss
\vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
\jlreq@trimmarks@outputbanner{before@center@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
\else
@@ -652,7 +638,7 @@
\kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
}%
\jlreq@trimmarks@outputbanner{after@center@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
\else
@@ -663,7 +649,7 @@
}%
\vrule height10mm depth10mm width\@tombowwidth
\jlreq@trimmarks@outputbanner{in@center@left}{%
- \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left + \ht\jlreq@tempboxa\relax
\jlreq@tempdimb=.5\wd\jlreq@tempboxa
@@ -679,7 +665,7 @@
\hbox to\z@{% \@CR
\yoko
\jlreq@trimmarks@outputbanner{in@center@right}{%
- \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \ht\jlreq@tempboxa\relax
\jlreq@tempdimb=0.5\wd\jlreq@tempboxa
@@ -692,13 +678,13 @@
}%
\vrule height10mm depth10mm width\@tombowwidth
\jlreq@trimmarks@outputbanner{before@center@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
\dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
}%
\jlreq@trimmarks@outputbanner{after@center@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
\dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
@@ -713,7 +699,7 @@
\vrule width10mm depth\@tombowwidth height\z@
\vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed@bottom\relax width\@tombowwidth height\z@
\jlreq@trimmarks@outputbanner{tate@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
\else
@@ -723,7 +709,7 @@
\kern-\jlreq@tempdima\raise 5mm\box\jlreq@tempboxa\kern\jlreq@tempdima
}%
\jlreq@trimmarks@outputbanner{intate@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax
\wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
@@ -733,13 +719,13 @@
\hbox to\z@{% \@Br
\yoko
\jlreq@trimmarks@outputbanner{tate@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
\jlreq@tempdima=\dimexpr\ifx l\jlreq@trimmarks@engine\ht\jlreq@tempboxa + \fi 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern\jlreq@tempdima\raise5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima
}%
\jlreq@trimmarks@outputbanner{intate@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\jlreq@trimmarks@bannerfont##1}%
\ifx l\jlreq@trimmarks@engine
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \ht\jlreq@tempboxa\relax
\else
@@ -750,7 +736,7 @@
}%
\vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed@bottom\relax width\@tombowwidth height\z@
\jlreq@trimmarks@outputbanner{corner@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 4pt\relax\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 4pt\relax\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom + 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
@@ -765,20 +751,20 @@
\yoko\hss
\vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@left\relax depth\@tombowwidth height\z@
\jlreq@trimmarks@outputbanner{corner@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip\dimexpr\jlreq@trimmarks@bleed@left + 4pt\relax}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip\dimexpr\jlreq@trimmarks@bleed@left + 4pt\relax}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
}%
\vrule depth10mm width\@tombowwidth height\z@
\jlreq@trimmarks@outputbanner{yoko@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hskip 5mm\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
}%
\jlreq@trimmarks@outputbanner{inyoko@bottom@left}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@bottom + \dp\jlreq@tempboxa\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise\jlreq@tempdima\box\jlreq@tempboxa
@@ -791,13 +777,13 @@
\yoko
\vrule width10mm depth\@tombowwidth height\z@
\jlreq@trimmarks@outputbanner{before@bottom@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
}%
\jlreq@trimmarks@outputbanner{in@bottom@center}{%
- \setbox\jlreq@tempboxa=\hbox{\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox{\jlreq@trimmarks@bannerfont##1}%
\jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom\relax
\jlreq@tempdimb=.5\wd\jlreq@tempboxa
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
@@ -805,7 +791,7 @@
}%
\vrule depth10mm width\@tombowwidth height\z@
\jlreq@trimmarks@outputbanner{before@bottom@center}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
@@ -818,13 +804,13 @@
\setbox\jlreq@tempboxa=\hbox to 0pt{% \@BR
\yoko
\jlreq@trimmarks@outputbanner{yoko@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
}%
\jlreq@trimmarks@outputbanner{inyoko@bottom@right}{%
- \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\jlreq@trimmarks@bannerfont##1}%
\jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise\jlreq@tempdima\box\jlreq@tempboxa
diff --git a/language/japanese/jlreq/jlreq.cls b/language/japanese/jlreq/jlreq.cls
index 8f1ed6dfb1..913785b02d 100644
--- a/language/japanese/jlreq/jlreq.cls
+++ b/language/japanese/jlreq/jlreq.cls
@@ -5,7 +5,7 @@
%%
% (based on JLReq 20120403 https://www.w3.org/TR/2012/NOTE-jlreq-20120403/ja/)
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jlreq}[2020/02/07 jlreq]
+\ProvidesClass{jlreq}[2020/05/01 jlreq]
\RequirePackage{xkeyval,everyhook,filehook,etoolbox,ifthen}
\RequirePackage{jlreq-helpers}
@@ -3769,6 +3769,14 @@
{%
\begingroup
\jlreq@pagestyle@parse@position@#1-\jlreq@endmark
+ \ifthenelse{\equal{\jlreq@tempa}{fore}}{%
+ \expandafter\jlreq@pagestyle@parse@position@\jlreq@tempb-\jlreq@endmark
+ \ifthenelse{\equal{\jlreq@tempa}{edge}}{%
+ \def\jlreq@tempa{fore-edge}%
+ }{%
+ \ClassError{jlreq}{Invalid position: fore-\jlreq@tempa}{\@ehc}%
+ }%
+ }{}%
% \jlreq@tempcã«ç¸¦æ–¹å‘を,\jlreq@tempdã«æ¨ªæ–¹å‘を入れる
\def\jlreq@tempc{}\def\jlreq@tempd{}%
\jlreq@pagestyle@parse@position@@{\jlreq@tempa}%
@@ -3786,8 +3794,8 @@
\jlreq@ifempty{#2}{%
\ifx\jlreq@tempb\@empty\ClassError{jlreq}{Invalid position: #1}{\@ehc}\fi
}{%
- \def\@tempa##1-{\def\jlreq@tempb{##1}}%
- \@tempa#2\relax
+ \def\@tempa##1-\jlreq@endmark{\def\jlreq@tempb{##1}}%
+ \@tempa#2\jlreq@endmark\relax
}%
}
@@ -4230,9 +4238,8 @@
\jlreq@if{\ifjlreq@pstate\fi}{% tate
% headã®æ–¹ã«å‡¦ç†ã‚’入れる.footã¯ç©ºï¼Ž
\def\jlreq@oddfoot{}\def\jlreq@evenfoot{}%
- \jlreq@for@noexpand\jlreq@position:=\jlreq@nombre@i@position,\jlreq@running@head@i@position\do{%
- \expandafter\ifx\jlreq@position\@empty\expandafter\def\jlreq@position{0pt}\fi
- }%
+ \ifx\jlreq@nombre@i@position\@empty\def\jlreq@nombre@i@position{5\jlreq@zw}\fi
+ \ifx\jlreq@running@head@i@position\@empty\def\jlreq@running@head@i@position{4\jlreq@zw}\fi
\edef\jlreq@gapcs{\noexpand\hskip\noexpand\glueexpr\expandonce{\jlreq@nombre@gap}\noexpand\relax}%
\jlreq@pagestyle@addifempty{\jlreq@nombre@iii@position}{\jlreq@nombre@ii}{\jlreq@gapcs}{\jlreq@nombre@iii}%
\jlreq@pagestyle@addifempty{\jlreq@nombre@ii@position}{\jlreq@nombre@i}{\jlreq@gapcs}{\jlreq@nombre@ii}%
@@ -4246,15 +4253,16 @@
\expandafter\let\expandafter\jlreq@position\csname jlreq@nombre@\jlreq@i @position\endcsname
\expandafter\ifx\csname jlreq@nombre@\jlreq@i\endcsname\@empty\else
\jlreq@ifgluezero{\glueexpr\jlreq@position\relax}{\def\jlreq@position{}}{}%
+ \expandafter\let\expandafter\jlreq@tempa\expandafter=\csname jlreq@nombre@\jlreq@i\endcsname
+ \jlreq@pagestyle@addfont@tocs{jlreq@tempa}{jlreq@nombre@font}%
\eappto\jlreq@nombre@contents{%
\noexpand\hbox to 0pt{\noexpand\hss
+ \expandonce{\jlreq@tempa}%
\ifx\jlreq@position\@empty\else\unexpanded{\hskip \glueexpr}\expandonce{\jlreq@position}\noexpand\relax\fi
- \csexpandonce{jlreq@nombre@\jlreq@i}%
}%
}%
\fi
}%
- \jlreq@pagestyle@addfont@tocs{jlreq@nombre@contents}{jlreq@nombre@font}%
% \jlreq@(odd|even)@contentsã«æŸ±ã‚’入れる(上ã®æ–¹ã«å‡ºåŠ›ï¼‰
\@for\jlreq@parity:=odd,even\do{%
\expandafter\def\csname jlreq@\jlreq@parity @contents\endcsname{}%
@@ -4262,17 +4270,18 @@
\expandafter\let\expandafter\jlreq@position\csname jlreq@running@head@\jlreq@i @position\endcsname
\expandafter\ifx\csname jlreq@\jlreq@parity @running@head@\jlreq@i\endcsname\@empty\else
\jlreq@ifgluezero{\glueexpr\jlreq@position\relax}{\def\jlreq@position{}}{}%
+ \expandafter\let\expandafter\jlreq@tempa\expandafter=\csname jlreq@\jlreq@parity @running@head@\jlreq@i\endcsname
+ \jlreq@pagestyle@addfont@tocs{jlreq@tempa}{jlreq@running@head@font}%
\expandafter\eappto\csname jlreq@\jlreq@parity @contents\endcsname{%
\noexpand\hbox to 0pt{\unexpanded{\hskip\glueexpr\headsep + \headheight}%
\if@tate\else\unexpanded{+ \topskip - \Cht}\fi
\ifx\jlreq@position\@empty\else + \expandonce{\jlreq@position}\fi\noexpand\relax
- \csexpandonce{jlreq@\jlreq@parity @running@head@\jlreq@i}%
+ \expandonce{\jlreq@tempa}%
\noexpand\hss
}%
}%
\fi
}%
- \jlreq@pagestyle@addfont@tocs{jlreq@\jlreq@parity @contents}{jlreq@running@head@font}%
% \jlreq@(odd|even)headã®æ§‹ç¯‰
% 空ã指定ã«ã¯åŸºæœ¬ç‰ˆé¢ã®æ–‡å­—サイズを使ã†ï¼ˆ2.6.1.c)
\@ifundefined{jlreq@\jlreq@parity headformat}
@@ -4455,7 +4464,7 @@
\jlreq@pagestyle@setheadfoot{\jlreq@oddfoot}{jlreq@odd@bottom@left}{jlreq@odd@bottom@center}{jlreq@odd@bottom@right}%
\jlreq@pagestyle@setheadfoot{\jlreq@evenhead}{jlreq@even@top@left}{jlreq@even@top@center}{jlreq@even@top@right}%
\jlreq@pagestyle@setheadfoot{\jlreq@evenfoot}{jlreq@even@bottom@left}{jlreq@even@bottom@center}{jlreq@even@bottom@right}%
- \ifthenelse{\lengthtest{\marginparwidth>0pt} \AND \(\NOT\boolean{@tate}\)}{%
+ \ifthenelse{\lengthtest{\jlreq@sidenote@length >0pt} \AND \(\NOT\boolean{@tate}\)}{%
\def\jlreq@defaultformat{\hss\hbox to \jlreqyokoheadlength{####1}\hss}%
}{%
\def\jlreq@defaultformat{####1}%
@@ -4465,7 +4474,7 @@
\jlreq@pagestyle@applyformat{\jlreq@oddfoot}{\jlreq@oddfootformat}{\jlreq@defaultformat}%
\jlreq@pagestyle@applyformat{\jlreq@evenfoot}{\jlreq@evenfootformat}{\jlreq@defaultformat}%
% å‚注用調整
- \ifdim\marginparwidth>0pt
+ \ifdim\jlreq@sidenote@length>0pt
\if@tate\else
\if@twocolumn
\jlreq@pagestyle@addsidenotemargin@bothside{\jlreq@oddhead}%
@@ -4507,14 +4516,14 @@
\if@tate
\def\jlreqyokoheadlength{\textheight}
\else
- \ifdim\marginparwidth>0pt
+ \ifdim\jlreq@sidenote@length>0pt
\if@twocolumn
\def\jlreqyokoheadlength{\dimexpr\textwidth + 2\jlreq@sidenote@length + 2\jlreq@sidenote@sep\relax}
\else
\def\jlreqyokoheadlength{\dimexpr\textwidth + \jlreq@sidenote@length + \jlreq@sidenote@sep\relax}
\fi
\else
- \def\jlreqyokoheadlength{\textwidth}
+ \def\jlreqyokoheadlength{\dimexpr\textwidth\relax}
\fi
\fi
\edef\jlreqtateheadlength{\unexpanded{\dimexpr\headsep + \headheight + \textheight}\if@tate\else\unexpanded{- \topskip + 1\jlreq@zh}\fi\noexpand\relax}
@@ -5615,18 +5624,20 @@
\def\@begintheorem#1#2{\topsep=\dimexpr\jlreq@theorem@beforeafter@space\relax
\trivlist\labelsep=1\jlreq@zw
\itemindent=\dimexpr\jlreq@theorem@indent\relax
- \item[\hskip \labelsep{\sffamily\gtfamily\bfseries #1\ #2}]}
+ \jlreq@theorem@font
+ \item[\hskip \labelsep{\reset@font\jlreq@theorem@label@font #1\ #2}]}
\def\@opargbegintheorem#1#2#3{\topsep=\dimexpr\jlreq@theorem@beforeafter@space\relax
\trivlist\labelsep=1\jlreq@zw
\itemindent=\dimexpr\jlreq@theorem@indent\relax
- \item[\hskip \labelsep{\sffamily\gtfamily\bfseries #1\ #2(#3)}]}
+ \jlreq@theorem@font
+ \item[\hskip \labelsep{\reset@font\jlreq@theorem@label@font #1\ #2(#3)}]}
\AtEndOfPackageFile*{amsthm}{%
\jlreq@saveoriginalcs{\proof}%
\jlreq@saveoriginalcs{\endproof}%
\edef\jlreq@do{
\unexpanded{\def\jlreq@proof[#1]}{%
\unexpanded{\labelsep=1\jlreq@zw}%
- \expandonce{\proof[{\reset@font\sffamily\gtfamily\bfseries #1\inhibitglue}\nopunct]}%
+ \expandonce{\proof[{\reset@font\jlreq@proof@label@font #1\inhibitglue}\nopunct]}%
}
}
\jlreq@do
@@ -5636,17 +5647,29 @@
\theoremstyle{jlreq}
}
\def\jlreq@setupamsthm{
- \newtheoremstyle{jlreq}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\normalfont}{\dimexpr\jlreq@theorem@indent\relax}{\sffamily\gtfamily\bfseries}{}{1\jlreq@zw}{\thmname{##1}\thmnumber{\ ##2}\thmnote{(##3)}}
+ \newtheoremstyle{jlreq}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\dimexpr\jlreq@theorem@beforeafter@space\relax}{\jlreq@theorem@font}{\dimexpr\jlreq@theorem@indent\relax}{\jlreq@theorem@label@font}{}{1\jlreq@zw}{\thmname{##1}\thmnumber{\ ##2}\thmnote{(##3)}}
}
\jlreq@jlreqsetup@add{theorem_beforeafter_space}{
\def\jlreq@theorem@beforeafter@space{#1}
+ \begingroup\jlreq@tempdima=\dimexpr\jlreq@theorem@beforeafter@space\relax\endgroup
\@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{}
}
\jlreq@jlreqsetup@add{theorem_indent}{
\def\jlreq@theorem@indent{#1}
+ \begingroup\jlreq@tempdima=\dimexpr\jlreq@theorem@indent\relax\endgroup
\@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{}
}
-
+\jlreq@jlreqsetup@add{theorem_font}{
+ \def\jlreq@theorem@font{#1}
+ \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{}
+}
+\jlreq@jlreqsetup@add{theorem_label_font}{
+ \def\jlreq@theorem@label@font{#1}
+ \@ifpackageloaded{amsthm}{\jlreq@setupamsthm}{}
+}
+\jlreq@jlreqsetup@add{proof_label_font}{
+ \def\jlreq@proof@label@font{#1}
+}
%. デフォルト設定
%.. 見出ã—
@@ -5765,7 +5788,7 @@
\jlreqsetup{footnote_second_indent=1\jlreq@zw}
\jlreqsetup{endnote_second_indent=2\jlreq@zw}
\jlreqsetup{endnote_position=headings}
-\ifdim\marginparwidth>0pt
+\ifdim\jlreq@sidenote@length>0pt
\jlreqsetup{sidenote_type=number}
\jlreqsetup{sidenote_symbol=*,sidenote_keyword_font={}}
\fi
@@ -5930,7 +5953,13 @@
}
\jlreqsetup{theindex_pagestyle=plain}
\jlreqsetup{year_style=seireki}
-\jlreqsetup{theorem_beforeafter_space=1\baselineskip,theorem_indent=0pt}
+\jlreqsetup{
+ theorem_beforeafter_space=1\baselineskip,
+ theorem_indent=0pt,
+ theorem_label_font = {\bfseries\gtfamily\sffamily},
+ theorem_font = {\normalfont},
+ proof_label_font = {\bfseries\gtfamily\sffamily},
+}
\newcommand{\contentsname}{目次}
diff --git a/language/japanese/jlreq/jlreq.pdf b/language/japanese/jlreq/jlreq.pdf
index 6f92ea5c51..b770c64681 100644
--- a/language/japanese/jlreq/jlreq.pdf
+++ b/language/japanese/jlreq/jlreq.pdf
Binary files differ
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{Jürgen Spitzmüller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jürgen Spitzmüller}}
-\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{Jürgen Spitzmüller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jürgen Spitzmüller}}
-\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{Jürgen Spitzmüller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jürgen Spitzmüller}}
-\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{Jürgen Spitzmüller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jürgen Spitzmüller}}
-\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}{Eigentümer, 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 verfügbar.}
+ 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}{nächsten} Seite}%
-\renewcommand\reftextfaceafter{auf der \reftextvario{folgenden}{nächsten} 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
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index d6b2eca7a8..3f31f03b59 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -7,7 +7,6 @@ $mirrors = {
'https://mirror.marwan.ma/ctan/' => 1,
},
'South Africa' => {
- 'http://ftp.leg.uct.ac.za/pub/packages/ctan/' => 1,
'http://ftp.sun.ac.za/ftp/CTAN/' => 1,
'http://mirror.ufs.ac.za/ctan/' => 1,
},
@@ -17,7 +16,6 @@ $mirrors = {
'http://mirror.lzu.edu.cn/CTAN/' => 1,
'http://mirrors.cqu.edu.cn/CTAN/' => 1,
'http://mirrors.hit.edu.cn/CTAN/' => 1,
- 'http://mirrors.sjtug.sjtu.edu.cn/ctan/' => 1,
'http://mirrors.tuna.tsinghua.edu.cn/CTAN/' => 1,
'http://mirrors.ustc.edu.cn/CTAN/' => 1,
'https://mirror.bjtu.edu.cn/CTAN/' => 1,
@@ -39,7 +37,6 @@ $mirrors = {
'Japan' => {
'ftp://ftp.kddilabs.jp/CTAN/' => 1,
'http://ftp.jaist.ac.jp/pub/CTAN/' => 1,
- 'http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/' => 1,
},
'Korea' => {
'http://ftp.harukasan.org/CTAN/' => 1,
@@ -100,7 +97,6 @@ $mirrors = {
'http://mirror.physik-pool.tu-berlin.de/pub/CTAN/' => 1,
'http://packages.oth-regensburg.de/ctan/' => 1,
'http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/' => 1,
- 'https://ctan.kako-dev.de/' => 1,
'https://ctan.mc1.root.project-creative.net/' => 1,
'https://ctan.net/' => 1,
'https://ftp.agdsn.de/pub/mirrors/latex/dante/' => 1,
@@ -173,6 +169,7 @@ $mirrors = {
'http://ctan.math.utah.edu/ctan/tex-archive/' => 1,
'http://ctan.math.washington.edu/tex-archive/' => 1,
'http://ctan.mirrors.hoobly.com/' => 1,
+ 'http://mirror.las.iastate.edu/tex-archive/' => 1,
'http://mirror.utexas.edu/ctan/' => 1,
'http://mirrors.concertpass.com/tex-archive/' => 1,
'http://mirrors.ibiblio.org/pub/mirrors/CTAN/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 32aedf8eeb..ce1c1c863c 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2020
-depend revision/54951
+depend revision/54967
name 00texlive.image
category TLCore
-revision 54941
+revision 54965
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4192,7 +4192,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 54932
+revision 54954
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -146124,18 +146124,18 @@ catalogue-topics labels
name jlreq
category Package
-revision 53717
+revision 54964
shortdesc Japanese document class based on requirements for Japanese text layout
relocated 1
longdesc This package provides a Japanese document class based on
longdesc requirements for Japanese text layout. The class file and the
longdesc JFM (Japanese font metric) files for LuaTeX-ja / pLaTeX /
longdesc upLaTeX are provided.
-containersize 131012
-containerchecksum 0f51670a5cf6c7e7adb2c0c8b5c155d67574ddc5d1c73026bf18a5f6f4cad26bb529a98d32f82936a2740184bd6ef4dc04eeff1b194a2439af9da53f6c173c18
-doccontainersize 499480
-doccontainerchecksum 8bba85d024192315137fcbe494a2ef3c397242d34bf1278dfb6ae54115b8a6bdfe45206b5abb8af89ba39dc16e97d4546ab05d312d2d8a0fbf5cf26ba1ebfba4
-docfiles size=158
+containersize 131116
+containerchecksum 9bb2a316cebd99f3e6253be215eeb99e651a79d7f27791a3be366af49c58aa4e30f79e6e4fbb5424296b7d282367b0266d3f53935e0979524850dfba951b6da4
+doccontainersize 500264
+doccontainerchecksum 86d7814eef4f3bce15d30bc206547da39c0da0121d476dcc1950c384d5a3f4cd6103626aff7741b1a2625e8d3b363caf3c1a2717ff959e1d0f7dd7b965a434b3
+docfiles size=160
RELOC/doc/latex/jlreq/LICENSE
RELOC/doc/latex/jlreq/README-ja.md details="Readme" language="ja"
RELOC/doc/latex/jlreq/README.md details="Readme"
@@ -146147,15 +146147,15 @@ docfiles size=158
RELOC/doc/latex/jlreq/jlreq-trimmarks.md
RELOC/doc/latex/jlreq/jlreq.html
RELOC/doc/latex/jlreq/jlreq.pdf details="Package documentation"
-srccontainersize 7776
-srccontainerchecksum e8e1c0723a61c1e75718382af0648eed242de51256d16894f5bbb84bc0889703de83b0f3582905411ce3f5a8d94bc6e7c97752f4ab1708d0c944b59e57672101
+srccontainersize 7780
+srccontainerchecksum e3cd5ae08109d7adc8818ab79b6a60de5153705ece9f45a682c39d8548bbe9fcdd0735000bac2b45fdd7ce7c8fedf42713e2c280e83d722d5c6d94abb57ee395
srcfiles size=9
RELOC/source/latex/jlreq/Makefile
RELOC/source/latex/jlreq/README-template.html
RELOC/source/latex/jlreq/README-template.tex
RELOC/source/latex/jlreq/luajfm2pl.lua
RELOC/source/latex/jlreq/make_variant_jfm.lua
-runfiles size=6932
+runfiles size=6931
RELOC/fonts/tfm/public/jlreq/bjlreq-v.tfm
RELOC/fonts/tfm/public/jlreq/bjlreq.tfm
RELOC/fonts/tfm/public/jlreq/bjlreqg-v.tfm
@@ -179853,7 +179853,7 @@ catalogue-version 0.1l
name lwarp
category Package
-revision 54877
+revision 54965
shortdesc Converts LaTeX to HTML
longdesc This package converts LaTeX to HTML by using LaTeX to process
longdesc the user's document and generate HTML tags. External utility
@@ -179873,17 +179873,17 @@ longdesc utilities, and Perl. Detailed installation instructions are
longdesc included for each of the major operating systems and TeX
longdesc distributions. A quick-start tutorial is provided.
depend lwarp.ARCH
-containersize 172664
-containerchecksum 364aa10f3570203e336c1389ae70c5e17c76d25d6b7603f8188b45f894229463cec6c7eeaff81f9c6a8bf13a55b233dd09f8f2032777f13b2b507c64d46ce233
-doccontainersize 2590656
-doccontainerchecksum 9e9621c1d3c1c7d86ed16a071f8ecee87d6299aad7de9f26ee255070dcaaf8d76ce763113debd92bee89bc42e83eb9424dbb6e304bbef099f657a63853a9e7be
-docfiles size=662
+containersize 172796
+containerchecksum e9249e44c2102c2dbf125e95f69a701017526748aa90872a1042e65d1fbee719cd5fff9506bc66f83aa574c3827a7771b3dc3b6271c50aabd0442cfa0e93f2c7
+doccontainersize 2592452
+doccontainerchecksum d2b7bf6d700eaaea98c0cf9ad51d3d4bd44c50868265494ce3d3cdff686998fcea334a7d2db29f957aae1d8fb67f928ff62c9f373250e3cc433c60ad29fc90cf
+docfiles size=663
texmf-dist/doc/latex/lwarp/README.txt details="Readme"
texmf-dist/doc/latex/lwarp/lwarp.pdf details="Package documentation"
texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt details="Quick-start tutorial"
-srccontainersize 386516
-srccontainerchecksum bf8c5728c6ca50589633e6e11a1cc64f34af1dd3aeed62ea3121ab91f641ac4f681a35ccfad858005b11ee6feff051251b1f2c5ea2bdc61b76be852549f8f2d1
-srcfiles size=577
+srccontainersize 386908
+srccontainerchecksum ed29aaf3e5217e26eb7ad513aa8a06a65da7537a07ae298a0e1483b9e017fe22cd368520785debb7069af02b35b0b33e4d9368637738e2c2900b248da0a361a5
+srcfiles size=578
texmf-dist/source/latex/lwarp/lwarp.dtx
texmf-dist/source/latex/lwarp/lwarp.ins
runfiles size=666
@@ -180385,7 +180385,7 @@ catalogue-contact-home http://bdtechconcepts.com/
catalogue-ctan /macros/latex/contrib/lwarp
catalogue-license lppl1.3
catalogue-topics cvt-html
-catalogue-version 0.84
+catalogue-version 0.85
name lwarp.aarch64-linux
category Package
@@ -244311,18 +244311,18 @@ catalogue-version 2.82
name pst-ovl
category Package
-revision 45506
+revision 54963
shortdesc Create and manage graphical overlays
relocated 1
longdesc The package is useful when building an image from assorted
longdesc material, as in the slides of a projected presentation. The
longdesc package requires pstricks, and shares that package's
longdesc restrictions on usage when generating PDF output.
-containersize 1956
-containerchecksum 2777d0d3011ba4ba911dbed78bb3ab29eb54bf392a9aaf73707f17e5fd9ccded0198d0b42bbdbc6879b2f07ba84ccf9d121748e3f0d3f931a8fb6b6e2a904b8a
-doccontainersize 36548
-doccontainerchecksum 9b7057b4316adf9f0fa30561c658f309cfc1be757c0eebfb63bb5cb94dc9b8b6cff502f056f9e1d64b207cdd154c0ec64b13c51639ae46377c4d58d51aa00725
-docfiles size=17
+containersize 1932
+containerchecksum e3349edf9643e5d9e370b5dbf1c4dc3078ec82520c943a81ae353e1ccd0e2476105813b0cbbbeb707de5419035edcc39748c7e86a69cb90f8bc0d61d70f553c5
+doccontainersize 30000
+doccontainerchecksum 755c786cec204ad3dd41043d8dd1bebb33ebbd889580a0a85390ca8efc318076ec9300a8e38b99788bf348a49dbda8ba5f3c758ace788bd9de47c251dd4e0407
+docfiles size=14
RELOC/doc/generic/pst-ovl/Changes
RELOC/doc/generic/pst-ovl/README details="Readme"
RELOC/doc/generic/pst-ovl/pst-ovl-doc.bib
@@ -244335,7 +244335,7 @@ runfiles size=3
catalogue-ctan /graphics/pstricks/contrib/pst-ovl
catalogue-license lppl
catalogue-topics pstricks presentation graphics-supp
-catalogue-version 0.07a
+catalogue-version 0.07b
name pst-pad
category Package
@@ -288701,7 +288701,7 @@ docfiles size=368
name texlive-scripts
category TLCore
-revision 54932
+revision 54954
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -288709,10 +288709,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 132412
-containerchecksum 85a66965d9b2f9b7e97f66411b473760aa35c5fcf70f3d9975c734e8634338f37c6a1f831bf151fbae8bee863152f59975bf5ab0410607f9446a0c69be815e39
+containersize 132376
+containerchecksum ad47614c09e722cc92e63223dac8a909b1e205ef8999a8bccaff9d28e37c3367514db379ef78f25865e9efd0a56671d693f4d6f614d73ada740c18d3072bad02
doccontainersize 219376
-doccontainerchecksum be9974a79f8175a68b25d11b0848cd093e48df91f4b41b20641d84779032d37bed7f2c89f51917f1fde1d5eedb9f620114eb715cef7790338a17f6e65e6eb096
+doccontainerchecksum 6ee6c8783e9a390e2151491f43095b03f53cc2b07a5c3b405b9542134d2aeee20512a4d33ef4ebed88dbc5214b7544acb0d5bb28e8d91a3a97969097f600a8f9
docfiles size=141
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
@@ -310394,7 +310394,7 @@ catalogue-topics font font-otf font-type1 font-sans
name univie-ling
category Package
-revision 49785
+revision 54966
shortdesc Papers, theses and research proposals in (Applied) Linguistics at Vienna University
relocated 1
longdesc This bundle provides LaTeX2e classes suitable for student
@@ -310407,10 +310407,10 @@ longdesc are considered useful in this context. The classes can also be
longdesc used for General and Historical Linguistics as well as for
longdesc other fields of study at Vienna University. In this case,
longdesc however, some settings may have to be adjusted.
-containersize 131168
-containerchecksum 33cb5fbb0b8cf2a5a49bfab100c584155a965bd1304a8f16e78ea3c5e5007e43580f3839367cfed28e6f20e8e6f653e1fb9c7aa357e31e41e8f688d74a9f8800
-doccontainersize 2101932
-doccontainerchecksum 52889934cb166ecfc6d5dc4433a9e1c4df927007584b6513d5a254734fd9b82c77af4fa535ddad34494fb207a41167080828500cce02b34f2f88787b8ec783d5
+containersize 131232
+containerchecksum 98f34826cb9209b6d604697caab862ccbbc86b4133b7fe390aa0576a7d04837aca48694614c6590bb1e8634572a95be733536fad2cbde4d94f0983d7743d7928
+doccontainersize 2102124
+doccontainerchecksum 010f95aba026e6b87ad6dc8b70d61d98750f3f9e6336df7bf7e850af18d69b0b5ea5a5b9c491d069f168cd8e3238f19ea56bb03b9c6d68c8b63c1b6365250823
docfiles size=712
RELOC/doc/latex/univie-ling/README details="Readme"
RELOC/doc/latex/univie-ling/templates/template-expose-deutsch.pdf
@@ -310451,7 +310451,7 @@ catalogue-contact-repository https://github.com/jspitz/univie-ling
catalogue-ctan /macros/latex/contrib/univie-ling
catalogue-license lppl1.3
catalogue-topics linguistic class dissertation article-like misc-paper
-catalogue-version 1.9
+catalogue-version 1.10
name unizgklasa
category Package
@@ -319875,7 +319875,7 @@ catalogue-version 16383.99998
name xcjk2uni
category Package
-revision 50848
+revision 54958
shortdesc Convert CJK characters to Unicode, in pdfTeX
relocated 1
longdesc The package provides commands to convert CJK characters to
@@ -319884,19 +319884,19 @@ longdesc hyperref in producing correct bookmarks. The bundle also
longdesc provides /ToUnicode mapping file(s) for a CJK subfont; these
longdesc can be used with the cmap package, allowing searches of, and
longdesc cut-and-paste operations on a PDF file generated by pdfTeX.
-containersize 211772
-containerchecksum c1174c6abe555eee84d753f76608fb3fc3234c43c5666def063983653908a03b8eab3787dc9e061c0f6bf3bfae7bcda9a31ded49b039580fccb254ed33571e72
-doccontainersize 127476
-doccontainerchecksum 30f81325aefa49fd44031ddda4e1ff30c40ccc08645671e1439df38cc4efb2a5cf4d9d50e98e970e96e3b18046e16834710d6be8fd9e5fa18cf5271bd5ae339e
-docfiles size=33
+containersize 200052
+containerchecksum db0be3360dc3d6373866c9d27900f8dba9353bcf92d219f9f0b82532e2855210230a06b87d1ab6eef7e1f96c54e46884e6827395affb9375120b7cf8d2fbb99b
+doccontainersize 124084
+doccontainerchecksum 6a9958bc6ddf6d167b9d77a513d04f0077c9a8581109c51166410d60d5a243758da62b40bdf5cb1488a50b9ba76ca89261a2d31c3819d8b2738b4a7023ac3f90
+docfiles size=32
RELOC/doc/latex/xcjk2uni/README.md details="Readme"
RELOC/doc/latex/xcjk2uni/xCJK2uni.pdf details="Package documentation (Chinese)" language="zh"
-srccontainersize 7196
-srccontainerchecksum fa719c1936e76ac3d0bb7f212a53c64962ea2c7e00546c603da218fabea566c11591af056276f6edcc68e2cb0b13ded72cf37535c4a8fc5ce53243743d6f8e0a
+srccontainersize 7064
+srccontainerchecksum 8868210c53fb379e12b22472dd3575baa62743cc059b3215b634aa59e61af5b3bed8415b9b811a7949457dbee4a051e4926ecca02c293be775ccfb3467e0883a
srcfiles size=10
RELOC/source/latex/xcjk2uni/xCJK2uni.dtx
RELOC/source/latex/xcjk2uni/xCJK2uni.ins
-runfiles size=602
+runfiles size=545
RELOC/tex/latex/xcjk2uni/cmap/c0001.cmap
RELOC/tex/latex/xcjk2uni/cmap/c0002.cmap
RELOC/tex/latex/xcjk2uni/cmap/c0003.cmap
@@ -320258,7 +320258,7 @@ runfiles size=602
catalogue-ctan /macros/latex/contrib/xcjk2uni
catalogue-license lppl1.3c
catalogue-topics pdf-feat unicode
-catalogue-version 0.8
+catalogue-version 1.0
name xcntperchap
category Package
@@ -320833,17 +320833,17 @@ catalogue-version 1.0
name xecjk
category Package
-revision 53835
+revision 54961
shortdesc Support for CJK documents in XeLaTeX
relocated 1
longdesc A LaTeX package for typesetting CJK documents in the way users
longdesc have become used to, in the CJK package. The package requires a
longdesc current version of xtemplate (and hence of the current LaTeX3
longdesc development environment).
-containersize 128984
-containerchecksum 81a7fa804122c3093893f41110ed4fd0c1c43ae381b1070eef4dd4711dea7e6fa6ad7ff8b3dbaa78ef967790d2dafe5983b3fd7aeac4d7868e8c8af3ccf0319e
-doccontainersize 1535844
-doccontainerchecksum 93b16713f9e1d2c0e5ce7dcd0313e5bde13b21c80980b7d0b5447f8a0722e0dee656619a6890296a2f4cf96f386730c260191a7fa665ca4eb93044c60fda7c0d
+containersize 219632
+containerchecksum 07de297fbdbc203de2c0c66e3ca1064e02105128b24c622aaafd869eeca4d04139ddce705e6c01ef58959dc228cb35be126785c4ebe8c2cbfb079eaf75f1a186
+doccontainersize 1536496
+doccontainerchecksum be525fb33fc082969217a8150cf553249188de84c37e6cfb63a4094ea4b9af1fd50cf9c0e7214e8c3467372c724bca27c6bf1229408eca4ee45e819c92da072f
docfiles size=446
RELOC/doc/xelatex/xecjk/README.md details="Readme"
RELOC/doc/xelatex/xecjk/example/xeCJK-example-CJKecglue.tex
@@ -320862,11 +320862,12 @@ docfiles size=446
RELOC/doc/xelatex/xecjk/xunicode-commands.tex
RELOC/doc/xelatex/xecjk/xunicode-symbols.pdf
RELOC/doc/xelatex/xecjk/xunicode-symbols.tex
-srccontainersize 87684
-srccontainerchecksum 35164492b6045f6bcad0ec712825fec02b22dbf172755e0e4f0e6c16264113f87f78941885d7c0a80c70976e6c29ea20ba400273a38d580a916e6a31359bb0e7
-srcfiles size=125
+srccontainersize 88484
+srccontainerchecksum 38b4cc6aa94a837213d6475f4f411951cca472dfa9a63d69146a56c52aef35844eff5f8c2a59e32169db6a99827fd0fcddae3c4efa649de92f8a3aab7b13545b
+srcfiles size=127
RELOC/source/xelatex/xecjk/xeCJK.dtx
-runfiles size=130
+ RELOC/source/xelatex/xecjk/xeCJK.ins
+runfiles size=178
RELOC/fonts/misc/xetex/fontmapping/xecjk/full-stop.map
RELOC/fonts/misc/xetex/fontmapping/xecjk/full-stop.tec
RELOC/fonts/misc/xetex/fontmapping/xecjk/fullwidth-stop.map
@@ -320888,7 +320889,7 @@ catalogue-contact-support https://github.com/CTeX-org/ctex-kit/issues
catalogue-ctan /macros/xetex/latex/xecjk
catalogue-license lppl1.3c
catalogue-topics chinese japanese korean xetex expl3
-catalogue-version 3.8.2
+catalogue-version 3.8.3
name xecolor
category Package
@@ -321371,25 +321372,29 @@ catalogue-version 22.8
name xepersian-hm
category Package
-revision 54900
+revision 54962
shortdesc Fixes kashida feature in xepersian package
relocated 1
longdesc The kashida feature in xepersian has problems with some fonts
longdesc such as the HM Series fonts and the XB Series fonts. This
longdesc package fixes these problems. The package requires xepersian
longdesc and l3keys2e.
-containersize 4348
-containerchecksum 856ea3f1e563ae0dfe288e1b0193c83e897e8c123d08c5362ec9dbf5b153966b5f9c49dd83e709b2316e1d91e1a2425066437289e3bb003409302f845b8b8b32
-doccontainersize 151552
-doccontainerchecksum 2d3b3d87b47ed2d17abb4230947f8ef095eb174806fc4adc17a5143987099dd006f4bfc0d990bf6b05771fc606527dcc4f3fbac6394e275765065cebea3d6381
-docfiles size=41
+containersize 4344
+containerchecksum 75e7493dcc8db204f0985fc066aff357bdf00553655aac6eac99af1e6f718560725303c825ab078da832ddb9b1c1d96d3b56be3a829590e80a98bbba2c296dd5
+doccontainersize 201368
+doccontainerchecksum 7ed87b8eff1dd8582c2578f824f27546dacc1dfa2819e96d1bfeeba670a07a52f63d53c7115912887535c3df819966a3373cf52a7e226d6b17c4948e9dad9b32
+docfiles size=77
RELOC/doc/xelatex/xepersian-hm/README.txt details="Readme"
- RELOC/doc/xelatex/xepersian-hm/kashida-example.pdf details="Example of use" language="fa"
- RELOC/doc/xelatex/xepersian-hm/kashida-example.tex
- RELOC/doc/xelatex/xepersian-hm/xepersian-hm.pdf details="Package documentation"
-srccontainersize 6492
-srccontainerchecksum f586206ec9a38fc7571829878ec2b8aacc7e2e71a6717c3bb2ddec37d9978d26c73baa97bd54ce253180cda7e4b73f239bc46cb4df1ee45ff9a95f598f90313a
-srcfiles size=8
+ RELOC/doc/xelatex/xepersian-hm/kashida-glyph-example.pdf details="Example of use (1)" language="fa"
+ RELOC/doc/xelatex/xepersian-hm/kashida-glyph-example.tex
+ RELOC/doc/xelatex/xepersian-hm/kashida-hrule-example.pdf details="Example of use (2)" language="fa"
+ RELOC/doc/xelatex/xepersian-hm/kashida-hrule-example.tex
+ RELOC/doc/xelatex/xepersian-hm/xepersian-hm-doc.ltx
+ RELOC/doc/xelatex/xepersian-hm/xepersian-hm-doc.pdf details="User documentation"
+ RELOC/doc/xelatex/xepersian-hm/xepersian-hm.pdf details="Code documentation"
+srccontainersize 5328
+srccontainerchecksum d44bbd03cdd1932cdf68b46049f40e1840f14c244ff43f7f62b3afeec425d6dc7d6175dc9e547f59d77ac376592a8824400d8f851b2b04afc7843f26a2e6090b
+srcfiles size=7
RELOC/source/xelatex/xepersian-hm/xepersian-hm.dtx
RELOC/source/xelatex/xepersian-hm/xepersian-hm.ins
runfiles size=6
@@ -321398,7 +321403,7 @@ runfiles size=6
catalogue-ctan /macros/xetex/latex/xepersian-hm
catalogue-license lppl1.3c
catalogue-topics persian xetex expl3
-catalogue-version 0.5b
+catalogue-version 0.5c
name xesearch
category Package
@@ -323919,25 +323924,25 @@ catalogue-version 1.2a
name xpinyin
category Package
-revision 50849
+revision 54959
shortdesc Automatically add pinyin to Chinese characters
relocated 1
longdesc The package is written to simplify the input of Hanyu Pinyin.
longdesc Macros are provided that automatically add pinyin to Chinese
longdesc characters.
-containersize 199772
-containerchecksum 7235eeaf6b0218d4ee87a07b8b16034cbd40ccdf77c96baba14d4ab8a6bd5de78c5f5ab68891a6a91fe4bd0a77de146c357f4e4af4ed443ca8a38526f4f53240
-doccontainersize 204276
-doccontainerchecksum b20233a1ff1f2f1f1474e5bcf81fab3747c26a3312d91297c73d1e57ebafd9459727c91da025b5cb4c1875ba5876873eb8099ad4012d85a972dc4fd1ea90e7e8
+containersize 200328
+containerchecksum 7212843681fd11e08bd7474194348f78cb56cb74421fae5020a7cab8afd766718e9d5ed0672dec3272498b186f4f9b79a774d4de5026345df033ef5f1e68313c
+doccontainersize 204180
+doccontainerchecksum edecda1ff3c1ac3a1c6b563da9a36ee0ae41ac1b9952c994ece387cc0985e045efb80d50b8fd251fb8a6167fcfc6b154b1f08ad7aed1ce1c12a8907bd7d954e4
docfiles size=52
RELOC/doc/latex/xpinyin/README.md details="Readme"
RELOC/doc/latex/xpinyin/xpinyin.pdf details="Package documentation" language="zh"
-srccontainersize 10856
-srccontainerchecksum 47dc1053cdbb87ed09e2bdd6c6fe447c011c1c2af4cfc8a1108431aefc3f5dca069a8bc60b0e97c0775a1ad1cfb54999a69ceee7f85fb493c2e8b0f6d634486e
+srccontainersize 10836
+srccontainerchecksum 8bde3970eed2f31970218d7ba6a7ac74d47ae51d3d6ba70f9e66a80a061518ee8aac1e1914b32468f1aa11e7d7ac3b0c3b1d27907d17111776c2a4d97d0a4203
srcfiles size=12
RELOC/source/latex/xpinyin/xpinyin.dtx
RELOC/source/latex/xpinyin/xpinyin.ins
-runfiles size=302
+runfiles size=303
RELOC/tex/latex/xpinyin/xpinyin-database.def
RELOC/tex/latex/xpinyin/xpinyin.sty
catalogue-contact-bugs https://github.com/CTeX-org/ctex-kit/issues
@@ -323946,8 +323951,8 @@ catalogue-contact-repository https://github.com/CTeX-org/ctex-kit
catalogue-contact-support https://github.com/CTeX-org/ctex-kit/issues
catalogue-ctan /macros/latex/contrib/xpinyin
catalogue-license lppl1.3c
-catalogue-topics chinese
-catalogue-version 2.7
+catalogue-topics chinese expl3
+catalogue-version 2.8
name xprintlen
category Package
@@ -331017,22 +331022,22 @@ catalogue-version 1.0
name zhnumber
category Package
-revision 50850
+revision 54960
shortdesc Typeset Chinese representations of numbers
relocated 1
longdesc The package provides commands to typeset Chinese
longdesc representations of numbers. The main difference between this
longdesc package and CJKnumb is that the commands provided are
longdesc expandable in the 'proper' way.
-containersize 7888
-containerchecksum f5e0783636ca643463811293816c95f2e20345fc6b08f2bd22143ead830b102b7d5acb6dd587975ecae205ce8b79d75cff62bab153a6ada689958835c77298c5
-doccontainersize 266236
-doccontainerchecksum d58579fcb6b5464db3d1ec20942b61516eb481df88fa23ef24f890a937fa72b62c6fef7fd2772172c4faf1a616805bfe32bdf39e17d854b907dc61ec9f6b6f4e
+containersize 7872
+containerchecksum f9548c3e89e837f8967122de1b2ed45c083a741be3862824ef2bfb5b60bd0758e3f4360b2c1a1a886fb68da4947a77c6431c10339676db0b7518bc93db6c411f
+doccontainersize 267108
+doccontainerchecksum 36de5c397a5966d5da5b71ee1a05b0e3d597782122e86dd184e146699fd5ecf08b6c2ed014bcaa86db8c9b2146d3863d8aa46078b94b33fb3fcf4a7a5a14f271
docfiles size=68
RELOC/doc/latex/zhnumber/README.md details="Readme"
RELOC/doc/latex/zhnumber/zhnumber.pdf details="Package documentation" language="zh"
-srccontainersize 13348
-srccontainerchecksum c3ac546227494e59e44324c1f637e280982ba1a27644add9d1c8248b2cee0299154adef6d673eba91ef39124db16dafe0d30dc0ec09bfe9b2dc9f28b6b10bf61
+srccontainersize 13368
+srccontainerchecksum 043029751abb4630fd1486dabea05f01a97557682cd00c7640e2c1fdf053b0bc5a99ba52debbdc6a98232cb5d8aef49cb68f17c1376f802c900c49f18e07c1f4
srcfiles size=17
RELOC/source/latex/zhnumber/zhnumber.dtx
RELOC/source/latex/zhnumber/zhnumber.ins
@@ -331048,7 +331053,7 @@ catalogue-contact-support https://github.com/CTeX-org/ctex-kit/issues
catalogue-ctan /macros/latex/contrib/zhnumber
catalogue-license lppl1.3c
catalogue-topics chinese numbers
-catalogue-version 2.7
+catalogue-version 2.8
name zhspacing
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 8a97c6a705..075e091eb1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-cab117a092e5aa5ef76eaf5f3ba44990 texlive.tlpdb
+fc0e143808185e6a732bad543a483447 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 77328c2ac0..548061baf0 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-9ea1b509d90b18089721a2dc7fe6c6b70ede8a7fb3892f93d5a14bd63aefc60ceda6db2833f25f629fc969f24345c33aebb115c775a197acfb1ecf3430780880 texlive.tlpdb
+347daf61a12517f268100495a62404f760f1774f6253ef4478bf3fddeddd93983d325cff97e79638161d52cec459ef3782ceb3fcbf89c6055770fd83ff7cf992 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 5621ecfe71..84d5e798ab 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJeq2cCAAoJEEzhh34ZQ4xwSbUH+wUyJ6TpilkYKYt9JI/0ygbV
-034VsKDGfXus0h7utGzM8TlzpBJSZyKjUGAyaMwWg+s37gsAp3C50pLt4ZeX3PR7
-8iHQzNh/OyKSQVwa/Y0K3eutXNmMPPcvZ+62KQceTaqjjoNQ2s3fCHTAAqoDLvwx
-OlFhphINzircz93SpxcADg8VHD7EVhxQNXAQJ3p7LdYK3LABqmdF/CHDhSkYy8to
-BDOVYhYNsXZcEO4MwFhgGTneSo/JgdIGAZq0HaZZtrwYfIx89JgrnMx5rq6Skwj3
-9EwMF/4gWC/Rf0gc8WsHSNp8hzMu+n/qaoAWxmr/gElr7m3tfGUA3LoiI3YL15Q=
-=gZf2
+iQEcBAEBCgAGBQJerLeIAAoJEEzhh34ZQ4xwRTUIAJE8VZWs2rjseSKK4JPkxjmE
+AuNsoYkMgseIMfZjQB2BTkwUuRywrVenOolu9RVFpSxwR/9vnQFzRlrHjyBjcI79
+H4lXPgdHifAgJFb21WMJOck6N+X4eOn82/PuRRsO+uGAPQsYQXYqJfww9NKERxyq
+3Brk+AVnZ+TwhMUTcc2HFs8WbdkUZtGnFUCFBVrxQlePIyVBblfGXjLGjybOoizM
+044zc7mwPTiKFY8JN/6EE72zgbp6q0rZO6xBOWwPiJ1RCbMoA4ejW0TLpSRC96VS
+FZiN/OkOT2MEtB0IO6AhnjnXn+zAS/hvkKqE7ujDhql63hjbLW/tpkXBx3AjiPc=
+=C/VQ
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index a322aae02a..586d72724b 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index a3949533e3..d72aeb7a87 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -2,9 +2,9 @@
[repository]
-date=1588277666
+date=1588364084
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=8277d5b38561c2088db328b25cb6c56f
+lstdigest=9110c14b7f3592ea038342dab1ac82d0
numpkg=3898
relstate=next
-version=7425
+version=7426
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 5ab231e467..1d939600d3 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -2,9 +2,9 @@
[repository]
-date=1588277484
+date=1588363874
lastupd=changelog circuitikz embedfile garamond-libre pxjahyper willowtreebook arara emojicite epigraph-keys picture tpic2pdftex lacheck parsa tikzducks bearwear boxedminipage koma-script miktex-luatex-bin-2.9 miktex-luatex-bin-x64-2.9 miktex-runtime-bin-2.9
-lstdigest=b0c8b53f596a5fa8ca62b4a44e3daa54
+lstdigest=705eb09d4d3b562f852797ce8063e218
numpkg=3898
relstate=stable
-version=7425
+version=7426
diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index 6d49911a2e..7c584af25d 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -1,5 +1,39 @@
W32TeX (x86 & x64) ChangeLog
+[2020/05/01]
+(01) biblatex-biber.tar.xz
+ Update biblatex-software.
+(02) cweb-w32.tar.xz
+ Update cweb.
+(03) ltxpkgdocs.tar.xz
+ Update documents for packages.
+(04) luajittex-exp-w32.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(05) luatex-exp-w32.tar.xz
+ Update luatex.dll, and luahbtex.dll.
+(06) makeindex-w32.tar.xz
+ Update mendex.exe, and upmendex.exe.
+(07) pgfcontrib.tar.xz
+ Update dynkin-diagrams.
+(08) ptex-w32.tar.xz
+ Update dvispc.exe.
+(09) texinfo-w32.tar.xz
+ Update a document texinfo-w32.txt.
+(10) web2c-w32.tar.xz
+ Update chkdvifont.exe.
+(11) win64/cweb-w64.tar.xz
+ Update cweb.
+(12) win64/luajittex-exp-w64.tar.xz
+ Update luajittex.dll, and luajithbtex.dll.
+(13) win64/luatex-exp-w64.tar.xz
+ Update luatex.dll, and luahbtex.dll.
+(14) win64/makeindex-w64.tar.xz
+ Update mendex.exe, and upmendex.exe.
+(15) win64/ptex-w64.tar.xz
+ Update dvispc.exe.
+(16) win64/web2c-w64.tar.xz
+ Update chkdvifont.exe.
+
[2020/04/30]
(01) aleph-w32.tar.xz
Update format files.
diff --git a/timestamp b/timestamp
index a8a3a4ac19..0070ed17c0 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2020-05-01-02-02
+2020-05-02-02-02