summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/animate/ChangeLog3
-rw-r--r--macros/latex/contrib/animate/animate.pdf1657
-rw-r--r--macros/latex/contrib/animate/animate.sty7
-rw-r--r--macros/latex/contrib/animate/animate.tex1
-rw-r--r--macros/latex/contrib/biblatex-contrib/archaeologie/README.md7
-rw-r--r--macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.dtx495
-rw-r--r--macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.pdfbin1059841 -> 1062129 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-acs.pdfbin292087 -> 291825 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-angew.pdfbin276052 -> 275766 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-biochem.pdfbin276553 -> 276273 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-rsc.pdfbin273580 -> 273290 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.pdfbin382526 -> 382257 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.tex5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.bbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdfbin447183 -> 448675 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx18
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx2
-rw-r--r--macros/latex/contrib/bookmark/README.md12
-rw-r--r--macros/latex/contrib/bookmark/bookmark.dtx (renamed from macros/latex/contrib/oberdiek/bookmark.dtx)134
-rw-r--r--macros/latex/contrib/bookmark/bookmark.pdfbin0 -> 475757 bytes
-rw-r--r--macros/latex/contrib/embedfile/README.md7
-rw-r--r--macros/latex/contrib/embedfile/embedfile.dtx (renamed from macros/latex/contrib/oberdiek/embedfile.dtx)342
-rw-r--r--macros/latex/contrib/embedfile/embedfile.pdfbin0 -> 391565 bytes
-rw-r--r--macros/latex/contrib/knowledge/README.md4
-rw-r--r--macros/latex/contrib/knowledge/knowledge-code.dtx272
-rw-r--r--macros/latex/contrib/knowledge/knowledge-utils.dtx53
-rw-r--r--macros/latex/contrib/knowledge/knowledge.pdfbin697731 -> 702619 bytes
-rw-r--r--macros/latex/contrib/knowledge/knowledge.tex79
-rw-r--r--macros/latex/contrib/oberdiek/bookmark.pdfbin290659 -> 0 bytes
-rw-r--r--macros/latex/contrib/oberdiek/embedfile.pdfbin215002 -> 0 bytes
39 files changed, 1665 insertions, 1458 deletions
diff --git a/macros/latex/contrib/animate/ChangeLog b/macros/latex/contrib/animate/ChangeLog
index 11d3c6b893..c2965e0508 100644
--- a/macros/latex/contrib/animate/ChangeLog
+++ b/macros/latex/contrib/animate/ChangeLog
@@ -1,3 +1,6 @@
+2019-12-03
+ * fix: another occurrence of quotes issue, now fixed at a central place
+
2019-11-27
* fix: quotes around \@filef@und added by \IfFileExists removed for luatex
compatibility (fix provided by U Fischer); using JS API dirtifies PDF
diff --git a/macros/latex/contrib/animate/animate.pdf b/macros/latex/contrib/animate/animate.pdf
index f4861129f6..0ed8c00b69 100644
--- a/macros/latex/contrib/animate/animate.pdf
+++ b/macros/latex/contrib/animate/animate.pdf
@@ -1,7 +1,7 @@
%PDF-1.4
%
720 0 obj
-<< /Linearized 1 /L 3925895 /H [ 3293260 576 ] /O 2404 /E 3328494 /N 30 /T 3911375 >>
+<< /Linearized 1 /L 3925892 /H [ 3293260 576 ] /O 2404 /E 3328490 /N 30 /T 3911372 >>
endobj
xref
@@ -1693,75 +1693,75 @@ xref
0003293836 00000 n
0003294424 00000 n
0003294555 00000 n
-0003298458 00000 n
-0003298713 00000 n
-0003298902 00000 n
-0003299091 00000 n
-0003299238 00000 n
-0003299385 00000 n
-0003299532 00000 n
-0003299679 00000 n
-0003299826 00000 n
-0003299973 00000 n
-0003300120 00000 n
-0003300267 00000 n
-0003300414 00000 n
-0003300561 00000 n
-0003300708 00000 n
-0003300855 00000 n
-0003301007 00000 n
-0003301159 00000 n
-0003301311 00000 n
-0003301463 00000 n
-0003301610 00000 n
-0003301757 00000 n
-0003301904 00000 n
-0003302051 00000 n
-0003302203 00000 n
-0003302355 00000 n
-0003302507 00000 n
-0003302659 00000 n
-0003302806 00000 n
-0003302953 00000 n
-0003303129 00000 n
-0003303305 00000 n
-0003303487 00000 n
-0003303669 00000 n
-0003303707 00000 n
-0003303848 00000 n
-0003303899 00000 n
-0003304004 00000 n
-0003304128 00000 n
-0003304253 00000 n
-0003304301 00000 n
-0003304652 00000 n
-0003304953 00000 n
-0003305432 00000 n
-0003305831 00000 n
-0003306356 00000 n
-0003307000 00000 n
-0003313245 00000 n
-0003315506 00000 n
-0003325784 00000 n
-0003326341 00000 n
-0003326466 00000 n
-0003326583 00000 n
-0003326648 00000 n
-0003326746 00000 n
-0003326859 00000 n
-0003326972 00000 n
-0003327090 00000 n
-0003327209 00000 n
-0003327366 00000 n
-0003327472 00000 n
-0003327586 00000 n
-0003327708 00000 n
-0003327858 00000 n
-0003328005 00000 n
-0003328160 00000 n
-0003328283 00000 n
-0003328390 00000 n
-trailer << /Info 323 0 R /Root 721 0 R /Size 2475 /Prev 3911365 /ID [<abb116a25e96d228bb9069adc819e808><120cb9f2c4ad1913b9a491fe1f3825da>] >>
+0003298454 00000 n
+0003298709 00000 n
+0003298898 00000 n
+0003299087 00000 n
+0003299234 00000 n
+0003299381 00000 n
+0003299528 00000 n
+0003299675 00000 n
+0003299822 00000 n
+0003299969 00000 n
+0003300116 00000 n
+0003300263 00000 n
+0003300410 00000 n
+0003300557 00000 n
+0003300704 00000 n
+0003300851 00000 n
+0003301003 00000 n
+0003301155 00000 n
+0003301307 00000 n
+0003301459 00000 n
+0003301606 00000 n
+0003301753 00000 n
+0003301900 00000 n
+0003302047 00000 n
+0003302199 00000 n
+0003302351 00000 n
+0003302503 00000 n
+0003302655 00000 n
+0003302802 00000 n
+0003302949 00000 n
+0003303125 00000 n
+0003303301 00000 n
+0003303483 00000 n
+0003303665 00000 n
+0003303703 00000 n
+0003303844 00000 n
+0003303895 00000 n
+0003304000 00000 n
+0003304124 00000 n
+0003304249 00000 n
+0003304297 00000 n
+0003304648 00000 n
+0003304949 00000 n
+0003305428 00000 n
+0003305827 00000 n
+0003306352 00000 n
+0003306996 00000 n
+0003313241 00000 n
+0003315502 00000 n
+0003325780 00000 n
+0003326337 00000 n
+0003326462 00000 n
+0003326579 00000 n
+0003326644 00000 n
+0003326742 00000 n
+0003326855 00000 n
+0003326968 00000 n
+0003327086 00000 n
+0003327205 00000 n
+0003327362 00000 n
+0003327468 00000 n
+0003327582 00000 n
+0003327704 00000 n
+0003327854 00000 n
+0003328001 00000 n
+0003328156 00000 n
+0003328279 00000 n
+0003328386 00000 n
+trailer << /Info 323 0 R /Root 721 0 R /Size 2475 /Prev 3911362 /ID [<8f5d7594143fc0f39e284d12721c4b7d><41de6486a628b25d0e1363fe74092ccc>] >>
startxref
0
%%EOF
@@ -1906,7 +1906,7 @@ stream
xLH4/IK׬KS5JJS5k34b M["k4%jj NJHuqjj[Qbn5
endobj
741 0 obj
-<< /AA << /PC << /JS 740 0 R /S /JavaScript >> /PI << /JS 740 0 R /S /JavaScript >> /PO << /JS 739 0 R /S /JavaScript >> /PV << /JS 739 0 R /S /JavaScript >> >> /AP << /N 728 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/11/27]) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 728 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 333.72 629.38 347.04 638.62 ] /Subtype /Widget /T (anm0) /Type /Annot >>
+<< /AA << /PC << /JS 740 0 R /S /JavaScript >> /PI << /JS 740 0 R /S /JavaScript >> /PO << /JS 739 0 R /S /JavaScript >> /PV << /JS 739 0 R /S /JavaScript >> >> /AP << /N 728 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/12/03]) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 728 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 333.72 629.38 347.04 638.62 ] /Subtype /Widget /T (anm0) /Type /Annot >>
endobj
742 0 obj
<< /BaseFont /GULBTF+LinLibertineTI /Encoding 2396 0 R /FirstChar 27 /FontDescriptor 743 0 R /LastChar 246 /Subtype /Type1 /ToUnicode 2395 0 R /Type /Font /Widths [ 564 0 0 0 0 0 0 0 0 0 0 0 268 306 313 0 0 219 333 219 291 0 0 0 0 0 0 0 0 0 444 219 0 0 527 0 0 0 667 557 0 667 526 457 664 0 280 414 637 519 804 0 668 499 0 0 454 544 0 597 0 628 0 0 0 0 0 0 0 268 486 478 389 489 401 314 477 519 276 259 486 266 783 518 447 489 0 357 353 307 521 472 688 475 503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 447 ] >>
@@ -1953,7 +1953,7 @@ stream
xLH4/IK׬KS5JJS5k34b M["k4%jj NJHuqjj[Qbn5
endobj
752 0 obj
-<< /AA << /PC << /JS 751 0 R /S /JavaScript >> /PI << /JS 751 0 R /S /JavaScript >> /PO << /JS 750 0 R /S /JavaScript >> /PV << /JS 750 0 R /S /JavaScript >> >> /AP << /N 745 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/11/27]) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 745 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 124.8 594.94 166.8 606.94 ] /Subtype /Widget /T (anm1) /Type /Annot >>
+<< /AA << /PC << /JS 751 0 R /S /JavaScript >> /PI << /JS 751 0 R /S /JavaScript >> /PO << /JS 750 0 R /S /JavaScript >> /PV << /JS 750 0 R /S /JavaScript >> >> /AP << /N 745 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/12/03]) /F 4 /FT /Btn /Ff 65537 /H /N /MK << /I 745 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 124.8 594.94 166.8 606.94 ] /Subtype /Widget /T (anm1) /Type /Annot >>
endobj
753 0 obj
<< /BaseFont /DQEGUT+LibertinusT1Math /Encoding 2393 0 R /FirstChar 11 /FontDescriptor 754 0 R /LastChar 122 /Subtype /Type1 /ToUnicode 2392 0 R /Type /Font /Widths [ 522 472 458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 465 0 0 0 0 0 0 0 0 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 299 0 0 0 475 503 436 ] >>
@@ -2221,7 +2221,7 @@ stream
xLH4/IK׬KS5JJS5k34b M["k4%jj NJHuqjj[Qbn5
endobj
810 0 obj
-<< /AA << /D << /JS (try{if\(a2_playing\){a2_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 809 0 R /S /JavaScript >> /PI << /JS 809 0 R /S /JavaScript >> /PO << /JS 808 0 R /S /JavaScript >> /PV << /JS 808 0 R /S /JavaScript >> /U << /JS (try{if\(!a2_isPaused\)a2_stopFirst\(\);if\(event.shift\)a2_playsRight=!a2_playsRight;if\(a2_idx==8&&a2_playsRight\)a2_stopFirst\(\);if\(a2_idx==0&&!a2_playsRight\)a2_stopLast\(\);if\(a2_playsRight\){a2_playRight\(\);}else{a2_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 790 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/11/27]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 790 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 217.2 541.18 376.2 703.18 ] /Subtype /Widget /T (anm2) /Type /Annot >>
+<< /AA << /D << /JS (try{if\(a2_playing\){a2_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 809 0 R /S /JavaScript >> /PI << /JS 809 0 R /S /JavaScript >> /PO << /JS 808 0 R /S /JavaScript >> /PV << /JS 808 0 R /S /JavaScript >> /U << /JS (try{if\(!a2_isPaused\)a2_stopFirst\(\);if\(event.shift\)a2_playsRight=!a2_playsRight;if\(a2_idx==8&&a2_playsRight\)a2_stopFirst\(\);if\(a2_idx==0&&!a2_playsRight\)a2_stopLast\(\);if\(a2_playsRight\){a2_playRight\(\);}else{a2_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 790 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/12/03]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 790 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 217.2 541.18 376.2 703.18 ] /Subtype /Widget /T (anm2) /Type /Annot >>
endobj
811 0 obj
<< /BBox [ 0 8269 150 8419 ] /Filter /FlateDecode /FormType 1 /Matrix [ 0.833333 0 0 -0.833333 0 6890.83 ] /Resources << /ProcSet [ /PDF ] >> /Subtype /Form /Type /XObject /Length 167 >>
@@ -6276,7 +6276,7 @@ stream
xLH4/IK׬KS5JJS5k34b M["k4%jj NJHuqjj[Qbn5
endobj
1561 0 obj
-<< /AA << /D << /JS (try{if\(a3_playing\){a3_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1560 0 R /S /JavaScript >> /PI << /JS 1560 0 R /S /JavaScript >> /PO << /JS 1559 0 R /S /JavaScript >> /PV << /JS 1559 0 R /S /JavaScript >> /U << /JS (try{if\(!a3_isPaused\)a3_stopFirst\(\);if\(event.shift\)a3_playsRight=!a3_playsRight;if\(a3_idx==100&&a3_playsRight\)a3_stopFirst\(\);if\(a3_idx==0&&!a3_playsRight\)a3_stopLast\(\);if\(a3_playsRight\){a3_playRight\(\);}else{a3_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1357 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/11/27]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1357 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 159.12 450.7 434.16 715.06 ] /Subtype /Widget /T (anm3) /Type /Annot >>
+<< /AA << /D << /JS (try{if\(a3_playing\){a3_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1560 0 R /S /JavaScript >> /PI << /JS 1560 0 R /S /JavaScript >> /PO << /JS 1559 0 R /S /JavaScript >> /PV << /JS 1559 0 R /S /JavaScript >> /U << /JS (try{if\(!a3_isPaused\)a3_stopFirst\(\);if\(event.shift\)a3_playsRight=!a3_playsRight;if\(a3_idx==100&&a3_playsRight\)a3_stopFirst\(\);if\(a3_idx==0&&!a3_playsRight\)a3_stopLast\(\);if\(a3_playsRight\){a3_playRight\(\);}else{a3_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1357 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/12/03]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1357 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 159.12 450.7 434.16 715.06 ] /Subtype /Widget /T (anm3) /Type /Annot >>
endobj
1562 0 obj
<< /AA << /D << /JS (a3_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 811 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 811 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 434.98 244.32 449.26 ] /Subtype /Widget /T (3.EndLeft) /Type /Annot >>
@@ -9987,7 +9987,7 @@ stream
xLH4/IK׬KS5JJS5k34b M["k4%jj NJHyqjj[Qbno
endobj
1664 0 obj
-<< /AA << /D << /JS (try{if\(a4_playing\){a4_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1663 0 R /S /JavaScript >> /PI << /JS 1663 0 R /S /JavaScript >> /PO << /JS 1662 0 R /S /JavaScript >> /PV << /JS 1662 0 R /S /JavaScript >> /U << /JS (try{if\(!a4_isPaused\)a4_stopFirst\(\);if\(event.shift\)a4_playsRight=!a4_playsRight;if\(a4_idx==0\)a4_playsRight=true;if\(a4_idx==28\)a4_playsRight=false;if\(a4_playsRight\){a4_playRight\(\);}else{a4_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1660 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/11/27]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1660 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 174.6 583.18 418.68 715.06 ] /Subtype /Widget /T (anm4) /Type /Annot >>
+<< /AA << /D << /JS (try{if\(a4_playing\){a4_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 1663 0 R /S /JavaScript >> /PI << /JS 1663 0 R /S /JavaScript >> /PO << /JS 1662 0 R /S /JavaScript >> /PV << /JS 1662 0 R /S /JavaScript >> /U << /JS (try{if\(!a4_isPaused\)a4_stopFirst\(\);if\(event.shift\)a4_playsRight=!a4_playsRight;if\(a4_idx==0\)a4_playsRight=true;if\(a4_idx==28\)a4_playsRight=false;if\(a4_playsRight\){a4_playRight\(\);}else{a4_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 1660 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/12/03]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 1660 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 174.6 583.18 418.68 715.06 ] /Subtype /Widget /T (anm4) /Type /Annot >>
endobj
1665 0 obj
<< /AA << /D << /JS (a4_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 811 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 811 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 567.34 244.32 581.74 ] /Subtype /Widget /T (4.EndLeft) /Type /Annot >>
@@ -18825,7 +18825,7 @@ stream
xLH4/IK׬KS5JJS5k34b M["k4%jj NJH}qjj[QbnH
endobj
2253 0 obj
-<< /AA << /D << /JS (try{if\(a5_playing\){a5_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 2252 0 R /S /JavaScript >> /PI << /JS 2252 0 R /S /JavaScript >> /PO << /JS 2251 0 R /S /JavaScript >> /PV << /JS 2251 0 R /S /JavaScript >> /U << /JS (try{if\(!a5_isPaused\)a5_stopFirst\(\);if\(event.shift\)a5_playsRight=!a5_playsRight;if\(a5_idx==190&&a5_playsRight\)a5_stopFirst\(\);if\(a5_idx==0&&!a5_playsRight\)a5_stopLast\(\);if\(a5_playsRight\){a5_playRight\(\);}else{a5_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 2249 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/11/27]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 2249 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 125.28 394.42 468 715.06 ] /Subtype /Widget /T (anm5) /Type /Annot >>
+<< /AA << /D << /JS (try{if\(a5_playing\){a5_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 2252 0 R /S /JavaScript >> /PI << /JS 2252 0 R /S /JavaScript >> /PO << /JS 2251 0 R /S /JavaScript >> /PV << /JS 2251 0 R /S /JavaScript >> /U << /JS (try{if\(!a5_isPaused\)a5_stopFirst\(\);if\(event.shift\)a5_playsRight=!a5_playsRight;if\(a5_idx==190&&a5_playsRight\)a5_stopFirst\(\);if\(a5_idx==0&&!a5_playsRight\)a5_stopLast\(\);if\(a5_playsRight\){a5_playRight\(\);}else{a5_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 2249 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/12/03]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 2249 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 125.28 394.42 468 715.06 ] /Subtype /Widget /T (anm5) /Type /Annot >>
endobj
2254 0 obj
<< /AA << /D << /JS (a5_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 811 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 811 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 378.58 244.32 392.98 ] /Subtype /Widget /T (5.EndLeft) /Type /Annot >>
@@ -19318,7 +19318,7 @@ stream
xLH4/IK׬KS5JJS5k34b M["k4%jj NJHuqjj[Qbn5
endobj
2351 0 obj
-<< /AA << /D << /JS (try{if\(a6_playing\){a6_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 2350 0 R /S /JavaScript >> /PI << /JS 2350 0 R /S /JavaScript >> /PO << /JS 2349 0 R /S /JavaScript >> /PV << /JS 2349 0 R /S /JavaScript >> /U << /JS (try{if\(!a6_isPaused\)a6_stopFirst\(\);if\(event.shift\)a6_playsRight=!a6_playsRight;if\(a6_idx==0\)a6_playsRight=true;if\(a6_idx==25\)a6_playsRight=false;if\(a6_playsRight\){a6_playRight\(\);}else{a6_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 2297 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/11/27]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 2297 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 176.4 165.34 417 418.66 ] /Subtype /Widget /T (anm6) /Type /Annot >>
+<< /AA << /D << /JS (try{if\(a6_playing\){a6_pause\(\);}}catch\(e\){}) /S /JavaScript >> /PC << /JS 2350 0 R /S /JavaScript >> /PI << /JS 2350 0 R /S /JavaScript >> /PO << /JS 2349 0 R /S /JavaScript >> /PV << /JS 2349 0 R /S /JavaScript >> /U << /JS (try{if\(!a6_isPaused\)a6_stopFirst\(\);if\(event.shift\)a6_playsRight=!a6_playsRight;if\(a6_idx==0\)a6_playsRight=true;if\(a6_idx==25\)a6_playsRight=false;if\(a6_playsRight\){a6_playRight\(\);}else{a6_playLeft\(\);}}catch\(e\){}) /S /JavaScript >> >> /AP << /N 2297 0 R >> /BS << /W 0 >> /Contents (animation by animate[2019/12/03]) /F 4 /FT /Btn /Ff 65536 /H /N /MK << /I 2297 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 176.4 165.34 417 418.66 ] /Subtype /Widget /T (anm6) /Type /Annot >>
endobj
2352 0 obj
<< /AA << /D << /JS (a6_stopFirst\(\);) /S /JavaScript >> >> /AP << /N 811 0 R >> /BS << /W 0 >> /F 0 /FT /Btn /Ff 65536 /H /I /MK << /I 811 0 R /IF << /FB true /S /A >> /TP 1 >> /Rect [ 229.92 149.62 244.32 163.9 ] /Subtype /Widget /T (6.EndLeft) /Type /Annot >>
@@ -19676,9 +19676,9 @@ endobj
2403 0 obj
<< /Filter /FlateDecode /S 492 /O 665 /Length 487 >>
stream
-xc```c0ra`g`
-ՍI3θ -
-dF+k*;#Zcc7b8 r]@dO+`480L
+xc```c0ra`g`
+<& * )1ђEFzBsO/8dX H3|` t х@1Aڡ1%@qwQ
+a=$91!^
endstream
endobj
2404 0 obj
@@ -19688,28 +19688,21 @@ endobj
<< /FT /Btn /Ff 65537 /Rect [ 0.960007 837.94 3.96001 840.94 ] /Subtype /Widget /T (pbs@ARFix@1) /Type /Annot >>
endobj
2406 0 obj
-<< /Filter /FlateDecode /Length 3828 >>
-stream
-x[r3/Yw~dɡc'8ةLKR&K>̠gwHJJt}9}P=-{O~Q//?gG-(]xP$Bk]xo{8:;;Zto=%^,A؝,Ur)sf0CJC3Hxq֙Э"N)T
-/71@
-Np2z{
-}BQ1F^.MO$/~JHev1QlO
-Z>QJE'm^AB덵:te&$lsO>]`V:3hӸzO[ R)Z |uCBO.prN^Q;#30'5 LY͋B[]>.\ ;jtpW pp|8zBo^ OG=֛#[?NNF:^~b䋫^yO^ c
-\E\obFz
-/.;;gB@Ad 7
-d
-F;߲ DD=)-^9ߣDLШFB%Xyޣ%[jN&cR)4Qe֣Y}'8`Pt1٬IQEKer`yV~}_ s
-2E}5֔ݘb rr.eY1tbl7=mOs]d: 'LɚG47KFR8\U+PؿܒAB*&džC`I w(`H6@1PexܥjheI
-QAny 3Vpe1n#Ms@!DG&ijlr۸֨!3eΎ{H`|
-Էѷr0Z
-"s]Ӓ$KLֆ},iFyBs< 0 ?|h]<[Q,(]t2ނ:+
-bb\hQw>8,_йmF.!q~ m:WY_-\8%G&*sȆ]ل50N_%[R g+YrZ\r%1. X)xiOg0CMy  䭐cKPI)_j~w{x]NdFreĵ ~X΅"PnUyф
-k;Z2 PyW@Ea5N]s[Hm0T+T_
-b{mnM&̇Gg2B!׻g;96t˄҉Vcb'etiItJ2͇x֓|.>Q^$/wU1ZtZf_IQ LQCdr~b.1;U.cvg`xIf:<R@
-vI'h˨4WN>mȻ%בFJd/itS@>^@`EEl̼.5ʆ[8nL Y(᭕Z)Ek'ygK%P9P.溢dG#2'* %d:+}aPkZc^][*;D2 9fLR$>2ߤTS r|s?Z~a19@>1[9:[E?} 螷ˋYvqܞ]p={,"E% w]@ov<~`6Qu4v \p5oc8H|Lo*I\_[V/ѱ1/_Q y砠\?*'I˻6( F^m"NksVT¶??ޒpEv)z?%NZt0n-"yRD}+b\G|;m\|Ps~M3:7üSUG y瘌}6vI;@ܻ)ﺍ
-z6&r8&޲>"m+Q9hb_g1EF}uOsSLBO6ު4Gǿfّ<nr8u PiX70Q 6F!ҼqPϨh|@z6o$$f@R>2B}y0hp>fvBE PM9й7Ꮺ!l 2lN!@a6$o̪<~]SpG
->4\8ڄX5;S.S״6* Y',?'/Mz.2:/ (&ON4nn.кCCOѷfčc?ڎ Qн
-UfQeKt7clq91Q~rӋzہy
+<< /Filter /FlateDecode /Length 3824 >>
+stream
+x[ێ_-=~dɑ/,o#vHvdʗ}NflϮv4+F @jtWu9udT=--ޝ~y{_+%jl-~^P~yY9>[='hIELKWvl}wZzJԽXQV;Y>&R,Haz畆g+3۬4DS\D!tg5^ɣomc5GUd^$>!镣c(JE۽\I^ᕐbtQ0ֵ˵}O ߽h ku~ςMH>hͳI;"};Ǹug,FqS|SA?Z|}CBO.pvN^Q]❑SrғupOB[] >.5\ ;$(ppW pppq&&M1*<.zymG
+=O.x:U88z1a;ˋwr^vv"flh `Tu `<4ݧ ϰ&
+V9fc4Jf4/ *͠4&")wCU!OVWq0>BPC{W\Dѷ[p=Mح)A 'Q M.w˱^@ Ea
+ so2n,]4v2(
+^u-u Q 'tgmE41<6U=NgCŸ`DI*dEˏ.UCĖ|(LM:Uڊ7r3d#?N^>+5%uid/^^ q=$m_|d66!>`
+8CH^y(
+t4UMnq(5Zu ULak X|jd3[X`E Ԅ"<rq+;+.<1DcY4?s0]geB*h0lLׇD%'T _xVM`B怐>B2A0v"(l1<UځzH.VUO(ȍ(|혠A:91@9VFۜz_[
+o)L",\h3 RYM`:9rtl-'Y2Yr %$ǀ2d[d;!y.6FktѽFF.{T(1/XN.Id8I
+-T43j-xd
+KH5W2xx!\pa
+^9u{a<uyTAʗ[<Th{c2a 2ڥu_p3drwX7]W-Eϋ&H\.z\v|nu
+m8$СwwZ5mj#
+W\ ?;[*yd't1';]0>T8SQJ_c($ԫiZVXW=koE펾
endobj
2407 0 obj
<< /AA << /PC << /JS 740 0 R /S /JavaScript >> /PI << /JS 740 0 R /S /JavaScript >> /PO << /JS 739 0 R /S /JavaScript >> /PV << /JS 739 0 R /S /JavaScript >> >> /F 2 /Rect [ 333.72 629.38 338.76 634.54 ] /Subtype /Screen /Type /Annot >>
@@ -20353,7 +20346,7 @@ endobj
<< /FT /Btn /Ff 65537 /Rect [ 0.960007 837.94 3.96001 840.94 ] /Subtype /Widget /T (pbs@ARFix@9) /Type /Annot >>
endobj
64 0 obj
-<< /Filter /FlateDecode /Length 5845 >>
+<< /Filter /FlateDecode /Length 5846 >>
stream
x]kGq>Eo1~A&Rl
"8 2Hlvk;bc =U}g.g!wKwuuSOUffW>5O~qW*WW^uNj돞V_aWW k۫sg^_O'w\|[/~Y.^\Y7Lÿz+
@@ -20386,11 +20379,7 @@ J@Ga:͓8&!>|w58vvt7޷O{ϴ-#lj_.rt zi2RY
`mZyǤ1?GN-z%tBX@$LSc`7fm:3qc"֒-"chh4Cǩ/c) H2UEgv%{ Jxfu)@Ĺ5KC&y=EFY]Tb? 3; NjlJWZOi煶N3xnӭ\˪4<M{HscnѕTY\SLwxE
r6:ʣr =؈p|*_v=z a?vHRGCm#&xiGL劵_U7*RiF/>n%Y;rF*)x|
=Bܩ0kj;uUj A#ךmB`9iffY>9u,]7JXNkqN-)
-*@@,ߵ#3(QD>bn\frM-mW_0;yp>@ 4"t<B"iO;uՎڦf9c4|Z1h˘ႜªPku(8Ҿ-(v $ 'b/G$6
-$Un9 +rчĿG#8ǩ'j!N*h.HjMsUz˴ &RTcVBY2Pum
-o<@%Ugx c1|!0
->qU.tyO?npmkvՐ\
-Etrhl>R onendstream
+*@@,ߵ#3(QD>bn\frM-mW_0;yp>@ 4"t<B"iO;uՎڦf9c4|Z1h˘ႜªPku(8Ҿ-(v $ 'b/G$6
endobj
65 0 obj
<< /Border [ 0 0 0 ] /C [ 1 0 0 ] /Dest (section.7) /H /I /Rect [ 145.524 352.384 152.196 360.616 ] /Subtype /Link /Type /Annot >>
@@ -22928,7 +22917,7 @@ endobj
<< /Count 30 /Kids [ 2404 0 R 1 0 R 11 0 R 21 0 R 29 0 R 42 0 R 48 0 R 56 0 R 62 0 R 72 0 R 78 0 R 88 0 R 102 0 R 116 0 R 126 0 R 136 0 R 142 0 R 152 0 R 164 0 R 172 0 R 182 0 R 196 0 R 204 0 R 214 0 R 232 0 R 238 0 R 246 0 R 252 0 R 260 0 R 296 0 R ] /Type /Pages >>
endobj
323 0 obj
-<< /Author (Alexander Grahn) /CreationDate (D:20191127122219+01'00') /Creator (LaTeX with hyperref) /Keywords (include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader PDF-XChange Foxit Reader Firefox Chrome Chromium) /ModDate (D:20191127122219+01'00') /Producer (GPL Ghostscript 9.50) /Subject (Documentation) /Title (The animate Package) >>
+<< /Author (Alexander Grahn) /CreationDate (D:20191203080641+01'00') /Creator (LaTeX with hyperref) /Keywords (include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader PDF-XChange Foxit Reader Firefox Chrome Chromium) /ModDate (D:20191203080641+01'00') /Producer (GPL Ghostscript 9.50) /Subject (Documentation) /Title (The animate Package) >>
endobj
324 0 obj
<< /Limits [ (Doc-Start) (table.4) ] /Names [ (Doc-Start) 326 0 R (Hfootnote.1) 338 0 R (Item.1) 698 0 R (Item.2) 699 0 R (Item.3) 700 0 R (Item.4) 701 0 R (Item.5) 703 0 R (Item.6) 704 0 R (Item.7) 705 0 R (Item.8) 706 0 R (beginend) 347 0 R (cite.chupin) 709 0 R (cite.dvisvgm) 710 0 R (cite.gilg05) 711 0 R (cite.hol) 712 0 R (cite.luque12) 713 0 R (cite.media9) 714 0 R (cite.texsx) 716 0 R (dest:mem) 697 0 R (figure.1) 428 0 R (figure.2) 444 0 R (figure.3) 516 0 R (figure.4) 527 0 R (figure.5) 610 0 R (lstlisting.-1) 360 0 R (lstlisting.-2) 370 0 R (lstlisting.-3) 389 0 R (lstlisting.-4) 429 0 R (lstlisting.-5) 475 0 R (lstlisting.-6) 518 0 R (lstlisting.-7) 585 0 R (lstlisting.-8) 661 0 R (lstlisting.-9) 689 0 R (lstnumber.-1.1) 361 0 R (lstnumber.-1.2) 362 0 R (lstnumber.-1.3) 363 0 R (lstnumber.-1.4) 364 0 R (lstnumber.-1.5) 365 0 R (lstnumber.-1.6) 366 0 R (lstnumber.-1.7) 367 0 R (lstnumber.-2.1) 371 0 R (lstnumber.-2.10) 380 0 R (lstnumber.-2.11) 381 0 R (lstnumber.-2.12) 382 0 R (lstnumber.-2.2) 372 0 R (lstnumber.-2.3) 373 0 R (lstnumber.-2.4) 374 0 R (lstnumber.-2.5) 375 0 R (lstnumber.-2.6) 376 0 R (lstnumber.-2.7) 377 0 R (lstnumber.-2.8) 378 0 R (lstnumber.-2.9) 379 0 R (lstnumber.-3.1) 390 0 R (lstnumber.-3.10) 399 0 R (lstnumber.-3.11) 400 0 R (lstnumber.-3.12) 401 0 R (lstnumber.-3.13) 402 0 R (lstnumber.-3.14) 403 0 R (lstnumber.-3.15) 404 0 R (lstnumber.-3.16) 405 0 R (lstnumber.-3.17) 406 0 R (lstnumber.-3.18) 407 0 R (lstnumber.-3.19) 408 0 R (lstnumber.-3.2) 391 0 R (lstnumber.-3.20) 409 0 R (lstnumber.-3.21) 410 0 R (lstnumber.-3.22) 411 0 R (lstnumber.-3.23) 412 0 R (lstnumber.-3.24) 413 0 R (lstnumber.-3.25) 414 0 R (lstnumber.-3.26) 415 0 R (lstnumber.-3.27) 416 0 R (lstnumber.-3.28) 417 0 R (lstnumber.-3.29) 418 0 R (lstnumber.-3.3) 392 0 R (lstnumber.-3.30) 419 0 R (lstnumber.-3.31) 420 0 R (lstnumber.-3.32) 421 0 R (lstnumber.-3.33) 422 0 R (lstnumber.-3.34) 423 0 R (lstnumber.-3.35) 424 0 R (lstnumber.-3.36) 425 0 R (lstnumber.-3.37) 426 0 R (lstnumber.-3.4) 393 0 R (lstnumber.-3.5) 394 0 R (lstnumber.-3.6) 395 0 R (lstnumber.-3.7) 396 0 R (lstnumber.-3.8) 397 0 R (lstnumber.-3.9) 398 0 R (lstnumber.-4.1) 430 0 R (lstnumber.-4.10) 439 0 R (lstnumber.-4.11) 440 0 R (lstnumber.-4.12) 441 0 R (lstnumber.-4.13) 442 0 R (lstnumber.-4.14) 445 0 R (lstnumber.-4.15) 446 0 R (lstnumber.-4.16) 447 0 R (lstnumber.-4.17) 448 0 R (lstnumber.-4.18) 449 0 R (lstnumber.-4.19) 450 0 R (lstnumber.-4.2) 431 0 R (lstnumber.-4.20) 451 0 R (lstnumber.-4.21) 452 0 R (lstnumber.-4.22) 453 0 R (lstnumber.-4.23) 454 0 R (lstnumber.-4.24) 455 0 R (lstnumber.-4.25) 456 0 R (lstnumber.-4.26) 457 0 R (lstnumber.-4.27) 458 0 R (lstnumber.-4.28) 459 0 R (lstnumber.-4.29) 460 0 R (lstnumber.-4.3) 432 0 R (lstnumber.-4.30) 461 0 R (lstnumber.-4.31) 462 0 R (lstnumber.-4.32) 463 0 R (lstnumber.-4.33) 464 0 R (lstnumber.-4.34) 465 0 R (lstnumber.-4.35) 466 0 R (lstnumber.-4.36) 467 0 R (lstnumber.-4.37) 469 0 R (lstnumber.-4.38) 470 0 R (lstnumber.-4.39) 471 0 R (lstnumber.-4.4) 433 0 R (lstnumber.-4.40) 472 0 R (lstnumber.-4.41) 473 0 R (lstnumber.-4.5) 434 0 R (lstnumber.-4.6) 435 0 R (lstnumber.-4.7) 436 0 R (lstnumber.-4.8) 437 0 R (lstnumber.-4.9) 438 0 R (lstnumber.-5.1) 476 0 R (lstnumber.-5.10) 485 0 R (lstnumber.-5.11) 486 0 R (lstnumber.-5.12) 487 0 R (lstnumber.-5.13) 488 0 R (lstnumber.-5.14) 489 0 R (lstnumber.-5.15) 490 0 R (lstnumber.-5.16) 491 0 R (lstnumber.-5.17) 492 0 R (lstnumber.-5.18) 493 0 R (lstnumber.-5.19) 494 0 R (lstnumber.-5.2) 477 0 R (lstnumber.-5.20) 495 0 R (lstnumber.-5.21) 496 0 R (lstnumber.-5.22) 497 0 R (lstnumber.-5.23) 498 0 R (lstnumber.-5.24) 499 0 R (lstnumber.-5.25) 500 0 R (lstnumber.-5.26) 501 0 R (lstnumber.-5.27) 502 0 R (lstnumber.-5.28) 503 0 R (lstnumber.-5.29) 504 0 R (lstnumber.-5.3) 478 0 R (lstnumber.-5.30) 505 0 R (lstnumber.-5.31) 506 0 R (lstnumber.-5.32) 507 0 R (lstnumber.-5.33) 508 0 R (lstnumber.-5.34) 509 0 R (lstnumber.-5.35) 510 0 R (lstnumber.-5.36) 511 0 R (lstnumber.-5.37) 512 0 R (lstnumber.-5.38) 513 0 R (lstnumber.-5.39) 514 0 R (lstnumber.-5.4) 479 0 R (lstnumber.-5.40) 517 0 R (lstnumber.-5.5) 480 0 R (lstnumber.-5.6) 481 0 R (lstnumber.-5.7) 482 0 R (lstnumber.-5.8) 483 0 R (lstnumber.-5.9) 484 0 R (lstnumber.-6.1) 519 0 R (lstnumber.-6.10) 530 0 R (lstnumber.-6.11) 531 0 R (lstnumber.-6.12) 532 0 R (lstnumber.-6.13) 533 0 R (lstnumber.-6.14) 534 0 R (lstnumber.-6.15) 535 0 R (lstnumber.-6.16) 536 0 R (lstnumber.-6.17) 537 0 R (lstnumber.-6.18) 538 0 R (lstnumber.-6.19) 539 0 R (lstnumber.-6.2) 520 0 R (lstnumber.-6.20) 540 0 R (lstnumber.-6.21) 541 0 R (lstnumber.-6.22) 542 0 R (lstnumber.-6.23) 543 0 R (lstnumber.-6.24) 544 0 R (lstnumber.-6.25) 545 0 R (lstnumber.-6.26) 547 0 R (lstnumber.-6.27) 548 0 R (lstnumber.-6.28) 549 0 R (lstnumber.-6.29) 550 0 R (lstnumber.-6.3) 521 0 R (lstnumber.-6.30) 551 0 R (lstnumber.-6.31) 552 0 R (lstnumber.-6.32) 553 0 R (lstnumber.-6.33) 554 0 R (lstnumber.-6.34) 555 0 R (lstnumber.-6.35) 556 0 R (lstnumber.-6.36) 557 0 R (lstnumber.-6.37) 558 0 R (lstnumber.-6.38) 559 0 R (lstnumber.-6.39) 560 0 R (lstnumber.-6.4) 522 0 R (lstnumber.-6.40) 561 0 R (lstnumber.-6.41) 562 0 R (lstnumber.-6.42) 563 0 R (lstnumber.-6.43) 564 0 R (lstnumber.-6.44) 565 0 R (lstnumber.-6.45) 566 0 R (lstnumber.-6.46) 567 0 R (lstnumber.-6.47) 568 0 R (lstnumber.-6.48) 569 0 R (lstnumber.-6.49) 570 0 R (lstnumber.-6.5) 523 0 R (lstnumber.-6.50) 571 0 R (lstnumber.-6.51) 572 0 R (lstnumber.-6.52) 573 0 R (lstnumber.-6.53) 574 0 R (lstnumber.-6.54) 575 0 R (lstnumber.-6.55) 576 0 R (lstnumber.-6.56) 577 0 R (lstnumber.-6.57) 578 0 R (lstnumber.-6.58) 579 0 R (lstnumber.-6.59) 580 0 R (lstnumber.-6.6) 524 0 R (lstnumber.-6.60) 581 0 R (lstnumber.-6.61) 582 0 R (lstnumber.-6.62) 583 0 R (lstnumber.-6.63) 584 0 R (lstnumber.-6.7) 525 0 R (lstnumber.-6.8) 528 0 R (lstnumber.-6.9) 529 0 R (lstnumber.-7.1) 586 0 R (lstnumber.-7.10) 596 0 R (lstnumber.-7.11) 597 0 R (lstnumber.-7.12) 598 0 R (lstnumber.-7.13) 599 0 R (lstnumber.-7.14) 600 0 R (lstnumber.-7.15) 601 0 R (lstnumber.-7.16) 602 0 R (lstnumber.-7.17) 603 0 R (lstnumber.-7.18) 604 0 R (lstnumber.-7.19) 605 0 R (lstnumber.-7.2) 588 0 R (lstnumber.-7.20) 606 0 R (lstnumber.-7.21) 607 0 R (lstnumber.-7.22) 608 0 R (lstnumber.-7.23) 609 0 R (lstnumber.-7.24) 612 0 R (lstnumber.-7.25) 613 0 R (lstnumber.-7.26) 614 0 R (lstnumber.-7.27) 615 0 R (lstnumber.-7.28) 616 0 R (lstnumber.-7.29) 617 0 R (lstnumber.-7.3) 589 0 R (lstnumber.-7.30) 618 0 R (lstnumber.-7.31) 619 0 R (lstnumber.-7.32) 620 0 R (lstnumber.-7.33) 621 0 R (lstnumber.-7.34) 622 0 R (lstnumber.-7.35) 623 0 R (lstnumber.-7.36) 624 0 R (lstnumber.-7.37) 625 0 R (lstnumber.-7.38) 626 0 R (lstnumber.-7.39) 627 0 R (lstnumber.-7.4) 590 0 R (lstnumber.-7.40) 628 0 R (lstnumber.-7.41) 629 0 R (lstnumber.-7.42) 630 0 R (lstnumber.-7.43) 631 0 R (lstnumber.-7.44) 632 0 R (lstnumber.-7.45) 633 0 R (lstnumber.-7.46) 634 0 R (lstnumber.-7.47) 635 0 R (lstnumber.-7.48) 636 0 R (lstnumber.-7.49) 637 0 R (lstnumber.-7.5) 591 0 R (lstnumber.-7.50) 638 0 R (lstnumber.-7.51) 639 0 R (lstnumber.-7.52) 640 0 R (lstnumber.-7.53) 641 0 R (lstnumber.-7.54) 642 0 R (lstnumber.-7.55) 643 0 R (lstnumber.-7.56) 644 0 R (lstnumber.-7.57) 645 0 R (lstnumber.-7.58) 646 0 R (lstnumber.-7.59) 647 0 R (lstnumber.-7.6) 592 0 R (lstnumber.-7.60) 648 0 R (lstnumber.-7.61) 649 0 R (lstnumber.-7.62) 650 0 R (lstnumber.-7.63) 651 0 R (lstnumber.-7.64) 652 0 R (lstnumber.-7.65) 653 0 R (lstnumber.-7.66) 654 0 R (lstnumber.-7.67) 655 0 R (lstnumber.-7.68) 656 0 R (lstnumber.-7.69) 657 0 R (lstnumber.-7.7) 593 0 R (lstnumber.-7.70) 658 0 R (lstnumber.-7.8) 594 0 R (lstnumber.-7.9) 595 0 R (lstnumber.-8.1) 662 0 R (lstnumber.-8.10) 671 0 R (lstnumber.-8.11) 672 0 R (lstnumber.-8.12) 673 0 R (lstnumber.-8.13) 674 0 R (lstnumber.-8.14) 675 0 R (lstnumber.-8.15) 676 0 R (lstnumber.-8.16) 677 0 R (lstnumber.-8.17) 678 0 R (lstnumber.-8.18) 679 0 R (lstnumber.-8.19) 680 0 R (lstnumber.-8.2) 663 0 R (lstnumber.-8.20) 681 0 R (lstnumber.-8.21) 682 0 R (lstnumber.-8.22) 683 0 R (lstnumber.-8.23) 684 0 R (lstnumber.-8.24) 685 0 R (lstnumber.-8.25) 686 0 R (lstnumber.-8.26) 687 0 R (lstnumber.-8.3) 664 0 R (lstnumber.-8.4) 665 0 R (lstnumber.-8.5) 666 0 R (lstnumber.-8.6) 667 0 R (lstnumber.-8.7) 668 0 R (lstnumber.-8.8) 669 0 R (lstnumber.-8.9) 670 0 R (lstnumber.-9.1) 690 0 R (lstnumber.-9.2) 691 0 R (lstnumber.-9.3) 692 0 R (lstnumber.-9.4) 693 0 R (lstnumber.-9.5) 695 0 R (page.1) 325 0 R (page.10) 346 0 R (page.11) 349 0 R (page.12) 352 0 R (page.13) 355 0 R (page.14) 358 0 R (page.15) 369 0 R (page.16) 383 0 R (page.17) 386 0 R (page.18) 427 0 R (page.19) 443 0 R (page.2) 328 0 R (page.20) 468 0 R (page.21) 515 0 R (page.22) 526 0 R (page.23) 546 0 R (page.24) 587 0 R (page.25) 611 0 R (page.26) 659 0 R (page.27) 688 0 R (page.28) 694 0 R (page.29) 702 0 R (page.3) 331 0 R (page.30) 715 0 R (page.4) 334 0 R (page.5) 336 0 R (page.6) 339 0 R (page.7) 341 0 R (page.8) 344 0 R (page.9) 345 0 R (section*.1) 327 0 R (section*.2) 337 0 R (section*.3) 340 0 R (section*.4) 350 0 R (section*.5) 351 0 R (section*.6) 354 0 R (section*.7) 357 0 R (section*.8) 359 0 R (section*.9) 708 0 R (section.1) 329 0 R (section.10) 696 0 R (section.11) 707 0 R (section.2) 330 0 R (section.3) 332 0 R (section.4) 333 0 R (section.5) 335 0 R (section.6) 342 0 R (section.7) 368 0 R (section.8) 387 0 R (section.9) 660 0 R (subsection.6.1) 343 0 R (subsection.6.2) 348 0 R (subsection.8.1) 388 0 R (subsection.8.2) 474 0 R (table.1) 353 0 R (table.2) 356 0 R (table.3) 384 0 R (table.4) 385 0 R ] >>
@@ -24122,14 +24111,14 @@ stream
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
-<rdf:Description rdf:about='uuid:b922b539-4924-11f5-0000-3f648209093e' xmlns:pdf='http://ns.adobe.com/pdf/1.3/'><pdf:Producer>GPL Ghostscript 9.50</pdf:Producer>
+<rdf:Description rdf:about='uuid:017437e0-4db8-11f5-0000-cc2ca13f1956' xmlns:pdf='http://ns.adobe.com/pdf/1.3/'><pdf:Producer>GPL Ghostscript 9.50</pdf:Producer>
<pdf:Keywords>include portable PDF animation SVG animation animated PDF animated SVG dvisvgm html TeX4ht web animating embed animated graphics LaTeX pdfLaTeX LuaLaTeX PSTricks pgf TikZ LaTeX-picture MetaPost inline graphics vector graphics animated GIF LaTeX dvips ps2pdf dvipdfmx XeLaTeX JavaScript Acrobat Reader PDF-XChange Foxit Reader Firefox Chrome Chromium</pdf:Keywords>
</rdf:Description>
-<rdf:Description rdf:about='uuid:b922b539-4924-11f5-0000-3f648209093e' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2019-11-27T12:22:19+01:00</xmp:ModifyDate>
-<xmp:CreateDate>2019-11-27T12:22:19+01:00</xmp:CreateDate>
+<rdf:Description rdf:about='uuid:017437e0-4db8-11f5-0000-cc2ca13f1956' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2019-12-03T08:06:41+01:00</xmp:ModifyDate>
+<xmp:CreateDate>2019-12-03T08:06:41+01:00</xmp:CreateDate>
<xmp:CreatorTool>LaTeX with hyperref</xmp:CreatorTool></rdf:Description>
-<rdf:Description rdf:about='uuid:b922b539-4924-11f5-0000-3f648209093e' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:b922b539-4924-11f5-0000-3f648209093e'/>
-<rdf:Description rdf:about='uuid:b922b539-4924-11f5-0000-3f648209093e' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>The animate Package</rdf:li></rdf:Alt></dc:title><dc:creator><rdf:Seq><rdf:li>Alexander Grahn</rdf:li></rdf:Seq></dc:creator><dc:description><rdf:Alt><rdf:li xml:lang='x-default'>Documentation</rdf:li></rdf:Alt></dc:description></rdf:Description>
+<rdf:Description rdf:about='uuid:017437e0-4db8-11f5-0000-cc2ca13f1956' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:017437e0-4db8-11f5-0000-cc2ca13f1956'/>
+<rdf:Description rdf:about='uuid:017437e0-4db8-11f5-0000-cc2ca13f1956' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>The animate Package</rdf:li></rdf:Alt></dc:title><dc:creator><rdf:Seq><rdf:li>Alexander Grahn</rdf:li></rdf:Seq></dc:creator><dc:description><rdf:Alt><rdf:li xml:lang='x-default'>Documentation</rdf:li></rdf:Alt></dc:description></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
@@ -24139,726 +24128,726 @@ endobj
xref
0 720
0000000000 65535 f
-0003328494 00000 n
-0003328726 00000 n
-0003328854 00000 n
-0003334231 00000 n
-0003334376 00000 n
-0003334521 00000 n
-0003334666 00000 n
-0003334811 00000 n
-0003334846 00000 n
-0003334894 00000 n
-0003334971 00000 n
-0003335212 00000 n
-0003335341 00000 n
-0003338330 00000 n
-0003338552 00000 n
-0003338774 00000 n
-0003338922 00000 n
-0003339070 00000 n
-0003339106 00000 n
-0003339155 00000 n
-0003339218 00000 n
-0003339478 00000 n
-0003339607 00000 n
-0003344317 00000 n
-0003344569 00000 n
-0003344605 00000 n
-0003344683 00000 n
-0003344732 00000 n
-0003344808 00000 n
-0003345057 00000 n
-0003345186 00000 n
-0003352230 00000 n
-0003352378 00000 n
-0003352526 00000 n
-0003352678 00000 n
-0003352830 00000 n
-0003353065 00000 n
-0003353329 00000 n
-0003353365 00000 n
-0003353414 00000 n
-0003353489 00000 n
-0003354572 00000 n
-0003354793 00000 n
-0003354922 00000 n
-0003361541 00000 n
-0003361577 00000 n
-0003361626 00000 n
-0003361716 00000 n
-0003361943 00000 n
-0003362072 00000 n
-0003366317 00000 n
-0003366464 00000 n
-0003366611 00000 n
-0003366647 00000 n
-0003366696 00000 n
-0003366772 00000 n
-0003366985 00000 n
-0003367114 00000 n
-0003372605 00000 n
-0003372641 00000 n
-0003372690 00000 n
-0003372739 00000 n
-0003372980 00000 n
-0003373109 00000 n
-0003379027 00000 n
-0003379174 00000 n
-0003379321 00000 n
-0003379468 00000 n
-0003379615 00000 n
-0003379651 00000 n
-0003379700 00000 n
-0003379749 00000 n
-0003379962 00000 n
-0003380092 00000 n
-0003386360 00000 n
-0003386396 00000 n
-0003386445 00000 n
-0003386535 00000 n
-0003386776 00000 n
-0003386906 00000 n
-0003393643 00000 n
-0003393791 00000 n
-0003393939 00000 n
-0003394084 00000 n
-0003394229 00000 n
-0003394265 00000 n
-0003394314 00000 n
-0003394376 00000 n
-0003394655 00000 n
-0003394785 00000 n
-0003400221 00000 n
-0003400367 00000 n
-0003400513 00000 n
-0003400659 00000 n
-0003400805 00000 n
-0003400957 00000 n
-0003401109 00000 n
-0003401254 00000 n
-0003401399 00000 n
-0003401435 00000 n
-0003401485 00000 n
-0003401548 00000 n
-0003401839 00000 n
-0003401970 00000 n
-0003406005 00000 n
-0003406152 00000 n
-0003406299 00000 n
-0003406452 00000 n
-0003406605 00000 n
-0003406755 00000 n
-0003406905 00000 n
-0003407053 00000 n
-0003407201 00000 n
-0003407238 00000 n
-0003407288 00000 n
-0003407351 00000 n
-0003407602 00000 n
-0003407733 00000 n
-0003412539 00000 n
-0003412685 00000 n
-0003412831 00000 n
-0003412977 00000 n
-0003413123 00000 n
-0003413160 00000 n
-0003413210 00000 n
-0003413287 00000 n
-0003413538 00000 n
-0003413669 00000 n
-0003415671 00000 n
-0003415824 00000 n
-0003415977 00000 n
-0003416126 00000 n
-0003416275 00000 n
-0003416312 00000 n
-0003416362 00000 n
-0003416412 00000 n
-0003416639 00000 n
-0003416770 00000 n
-0003420432 00000 n
-0003420469 00000 n
-0003420519 00000 n
-0003420569 00000 n
-0003420820 00000 n
-0003420951 00000 n
-0003424348 00000 n
-0003424495 00000 n
-0003424642 00000 n
-0003424789 00000 n
-0003424936 00000 n
-0003424973 00000 n
-0003425023 00000 n
-0003425143 00000 n
-0003425611 00000 n
-0003425742 00000 n
-0003429272 00000 n
-0003429524 00000 n
-0003429671 00000 n
-0003429818 00000 n
-0003429968 00000 n
-0003430118 00000 n
-0003430155 00000 n
-0003430612 00000 n
-0003430662 00000 n
-0003430908 00000 n
-0003432187 00000 n
-0003432318 00000 n
-0003433568 00000 n
-0003433825 00000 n
-0003433862 00000 n
-0003442932 00000 n
-0003442982 00000 n
-0003443157 00000 n
-0003443408 00000 n
-0003443539 00000 n
-0003446220 00000 n
-0003446367 00000 n
-0003446514 00000 n
-0003446664 00000 n
-0003446814 00000 n
-0003446851 00000 n
-0003446901 00000 n
-0003446979 00000 n
-0003447634 00000 n
-0003447765 00000 n
-0003451705 00000 n
-0003451962 00000 n
-0003452109 00000 n
-0003452256 00000 n
-0003452429 00000 n
-0003452665 00000 n
-0003452702 00000 n
-0003453653 00000 n
-0003453703 00000 n
-0003453796 00000 n
-0003454461 00000 n
-0003454560 00000 n
-0003456649 00000 n
-0003456780 00000 n
-0003457913 00000 n
-0003458170 00000 n
-0003458207 00000 n
-0003464342 00000 n
-0003464392 00000 n
-0003464456 00000 n
-0003464707 00000 n
-0003464838 00000 n
-0003469404 00000 n
-0003469551 00000 n
-0003469698 00000 n
-0003469849 00000 n
-0003470000 00000 n
-0003470037 00000 n
-0003470087 00000 n
-0003470137 00000 n
-0003470758 00000 n
-0003470889 00000 n
-0003471741 00000 n
-0003471993 00000 n
-0003826453 00000 n
-0003826530 00000 n
-0003828819 00000 n
-0003828894 00000 n
-0003829051 00000 n
-0003829143 00000 n
-0003829285 00000 n
-0003829455 00000 n
-0003829718 00000 n
-0003829974 00000 n
-0003830011 00000 n
-0003830897 00000 n
-0003830947 00000 n
-0003831026 00000 n
-0003831245 00000 n
-0003831376 00000 n
-0003833124 00000 n
-0003833161 00000 n
-0003833211 00000 n
-0003833261 00000 n
-0003833496 00000 n
-0003833627 00000 n
-0003838191 00000 n
-0003838342 00000 n
-0003838493 00000 n
-0003838530 00000 n
-0003838580 00000 n
-0003838644 00000 n
-0003838863 00000 n
-0003838994 00000 n
-0003845194 00000 n
-0003845231 00000 n
-0003845281 00000 n
-0003845345 00000 n
-0003845580 00000 n
-0003845711 00000 n
-0003851496 00000 n
-0003851643 00000 n
-0003851790 00000 n
-0003851827 00000 n
-0003851877 00000 n
-0003851968 00000 n
-0003852427 00000 n
-0003852558 00000 n
-0003858398 00000 n
-0003858543 00000 n
-0003858688 00000 n
-0003858833 00000 n
-0003858978 00000 n
-0003859171 00000 n
-0003859364 00000 n
-0003859513 00000 n
-0003859662 00000 n
-0003859810 00000 n
-0003859958 00000 n
-0003860106 00000 n
-0003860254 00000 n
-0003860432 00000 n
-0003860610 00000 n
-0003860836 00000 n
-0003861014 00000 n
-0003861192 00000 n
-0003861418 00000 n
-0003861621 00000 n
-0003861824 00000 n
-0003862050 00000 n
-0003862253 00000 n
-0003862456 00000 n
-0003862682 00000 n
-0003862854 00000 n
-0003863026 00000 n
-0003863209 00000 n
-0003863392 00000 n
-0003863577 00000 n
-0003863762 00000 n
-0003863799 00000 n
-0003863849 00000 n
-0003863926 00000 n
-0003864241 00000 n
-0003864372 00000 n
-0003865008 00000 n
-0003865192 00000 n
-0003865376 00000 n
-0003865569 00000 n
-0003865753 00000 n
-0003865937 00000 n
-0003866130 00000 n
-0003866294 00000 n
-0003866458 00000 n
-0003866651 00000 n
-0003866815 00000 n
-0003866979 00000 n
-0003867172 00000 n
-0003867209 00000 n
-0003867259 00000 n
-0003867322 00000 n
-0003867804 00000 n
-0003868181 00000 n
-0003868401 00000 n
-0003868641 00000 n
-0003869615 00000 n
-0003871992 00000 n
-0003872337 00000 n
-0003872560 00000 n
-0003872845 00000 n
-0003873449 00000 n
-0003883061 00000 n
-0003883132 00000 n
-0003883200 00000 n
-0003883268 00000 n
-0003883333 00000 n
-0003883397 00000 n
-0003883462 00000 n
-0003883531 00000 n
-0003883597 00000 n
-0003883663 00000 n
-0003883729 00000 n
-0003883795 00000 n
-0003883864 00000 n
-0003883929 00000 n
-0003883995 00000 n
-0003884061 00000 n
-0003884126 00000 n
-0003884195 00000 n
-0003884261 00000 n
-0003884327 00000 n
-0003884393 00000 n
-0003884462 00000 n
-0003884528 00000 n
-0003884594 00000 n
-0003884660 00000 n
-0003884729 00000 n
-0003884795 00000 n
-0003884861 00000 n
-0003884927 00000 n
-0003884993 00000 n
-0003885059 00000 n
-0003885129 00000 n
-0003885196 00000 n
-0003885263 00000 n
-0003885330 00000 n
-0003885397 00000 n
-0003885464 00000 n
-0003885531 00000 n
-0003885598 00000 n
-0003885665 00000 n
-0003885732 00000 n
-0003885798 00000 n
-0003885865 00000 n
-0003885932 00000 n
-0003885999 00000 n
-0003886069 00000 n
-0003886136 00000 n
-0003886202 00000 n
-0003886268 00000 n
-0003886335 00000 n
-0003886402 00000 n
-0003886469 00000 n
-0003886535 00000 n
-0003886602 00000 n
-0003886669 00000 n
-0003886736 00000 n
-0003886803 00000 n
-0003886870 00000 n
-0003886937 00000 n
-0003887004 00000 n
-0003887071 00000 n
-0003887138 00000 n
-0003887208 00000 n
-0003887275 00000 n
-0003887342 00000 n
-0003887409 00000 n
-0003887476 00000 n
-0003887543 00000 n
-0003887609 00000 n
-0003887675 00000 n
-0003887742 00000 n
-0003887809 00000 n
-0003887876 00000 n
-0003887942 00000 n
-0003888008 00000 n
-0003888075 00000 n
-0003888142 00000 n
-0003888209 00000 n
-0003888275 00000 n
-0003888342 00000 n
-0003888409 00000 n
-0003888476 00000 n
-0003888542 00000 n
-0003888608 00000 n
-0003888675 00000 n
-0003888742 00000 n
-0003888809 00000 n
-0003888876 00000 n
-0003888943 00000 n
-0003889010 00000 n
-0003889077 00000 n
-0003889144 00000 n
-0003889211 00000 n
-0003889278 00000 n
-0003889345 00000 n
-0003889412 00000 n
-0003889479 00000 n
-0003889545 00000 n
-0003889612 00000 n
-0003889679 00000 n
-0003889746 00000 n
-0003889813 00000 n
-0003889880 00000 n
-0003889947 00000 n
-0003890013 00000 n
-0003890080 00000 n
-0003890147 00000 n
-0003890214 00000 n
-0003890281 00000 n
-0003890348 00000 n
-0003890415 00000 n
-0003890482 00000 n
-0003890549 00000 n
-0003890616 00000 n
-0003890683 00000 n
-0003890750 00000 n
-0003890817 00000 n
-0003890884 00000 n
-0003890951 00000 n
-0003891021 00000 n
-0003891088 00000 n
-0003891155 00000 n
-0003891222 00000 n
-0003891289 00000 n
-0003891353 00000 n
-0003891417 00000 n
-0003891481 00000 n
-0003891547 00000 n
-0003891614 00000 n
-0003891681 00000 n
-0003891748 00000 n
-0003891815 00000 n
-0003891882 00000 n
-0003891949 00000 n
-0003892016 00000 n
-0003892083 00000 n
-0003892150 00000 n
-0003892217 00000 n
-0003892284 00000 n
-0003892351 00000 n
-0003892418 00000 n
-0003892484 00000 n
-0003892551 00000 n
-0003892618 00000 n
-0003892685 00000 n
-0003892752 00000 n
-0003892819 00000 n
-0003892885 00000 n
-0003892951 00000 n
-0003893018 00000 n
-0003893085 00000 n
-0003893152 00000 n
-0003893219 00000 n
-0003893285 00000 n
-0003893352 00000 n
-0003893419 00000 n
-0003893486 00000 n
-0003893553 00000 n
-0003893620 00000 n
-0003893687 00000 n
-0003893754 00000 n
-0003893818 00000 n
-0003893885 00000 n
-0003893952 00000 n
-0003894019 00000 n
-0003894086 00000 n
-0003894153 00000 n
-0003894219 00000 n
-0003894286 00000 n
-0003894353 00000 n
-0003894420 00000 n
-0003894487 00000 n
-0003894554 00000 n
-0003894621 00000 n
-0003894688 00000 n
-0003894755 00000 n
-0003894822 00000 n
-0003894889 00000 n
-0003894956 00000 n
-0003895023 00000 n
-0003895090 00000 n
-0003895157 00000 n
-0003895224 00000 n
-0003895291 00000 n
-0003895358 00000 n
-0003895425 00000 n
-0003895492 00000 n
-0003895559 00000 n
-0003895626 00000 n
-0003895693 00000 n
-0003895760 00000 n
-0003895830 00000 n
-0003895897 00000 n
-0003895964 00000 n
-0003896031 00000 n
-0003896098 00000 n
-0003896165 00000 n
-0003896232 00000 n
-0003896299 00000 n
-0003896366 00000 n
-0003896433 00000 n
-0003896500 00000 n
-0003896567 00000 n
-0003896634 00000 n
-0003896701 00000 n
-0003896768 00000 n
-0003896835 00000 n
-0003896902 00000 n
-0003896969 00000 n
-0003897034 00000 n
-0003897100 00000 n
-0003897167 00000 n
-0003897234 00000 n
-0003897301 00000 n
-0003897366 00000 n
-0003897433 00000 n
-0003897500 00000 n
-0003897567 00000 n
-0003897634 00000 n
-0003897700 00000 n
-0003897767 00000 n
-0003897834 00000 n
-0003897904 00000 n
-0003897971 00000 n
-0003898038 00000 n
-0003898104 00000 n
-0003898170 00000 n
-0003898237 00000 n
-0003898304 00000 n
-0003898371 00000 n
-0003898437 00000 n
-0003898503 00000 n
-0003898570 00000 n
-0003898637 00000 n
-0003898704 00000 n
-0003898770 00000 n
-0003898837 00000 n
-0003898904 00000 n
-0003898971 00000 n
-0003899038 00000 n
-0003899105 00000 n
-0003899172 00000 n
-0003899239 00000 n
-0003899303 00000 n
-0003899370 00000 n
-0003899437 00000 n
-0003899504 00000 n
-0003899571 00000 n
-0003899638 00000 n
-0003899704 00000 n
-0003899771 00000 n
-0003899838 00000 n
-0003899905 00000 n
-0003899972 00000 n
-0003900039 00000 n
-0003900106 00000 n
-0003900173 00000 n
-0003900240 00000 n
-0003900307 00000 n
-0003900374 00000 n
-0003900441 00000 n
-0003900508 00000 n
-0003900575 00000 n
-0003900642 00000 n
-0003900709 00000 n
-0003900776 00000 n
-0003900842 00000 n
-0003900908 00000 n
-0003900975 00000 n
-0003901042 00000 n
-0003901109 00000 n
-0003901175 00000 n
-0003901241 00000 n
-0003901308 00000 n
-0003901375 00000 n
-0003901442 00000 n
-0003901508 00000 n
-0003901575 00000 n
-0003901642 00000 n
-0003901709 00000 n
-0003901776 00000 n
-0003901843 00000 n
-0003901910 00000 n
-0003901977 00000 n
-0003902041 00000 n
-0003902108 00000 n
-0003902175 00000 n
-0003902245 00000 n
-0003902312 00000 n
-0003902379 00000 n
-0003902445 00000 n
-0003902511 00000 n
-0003902578 00000 n
-0003902645 00000 n
-0003902712 00000 n
-0003902778 00000 n
-0003902844 00000 n
-0003902911 00000 n
-0003902978 00000 n
-0003903045 00000 n
-0003903111 00000 n
-0003903178 00000 n
-0003903245 00000 n
-0003903312 00000 n
-0003903379 00000 n
-0003903446 00000 n
-0003903513 00000 n
-0003903580 00000 n
-0003903644 00000 n
-0003903711 00000 n
-0003903778 00000 n
-0003903845 00000 n
-0003903912 00000 n
-0003903979 00000 n
-0003904045 00000 n
-0003904112 00000 n
-0003904179 00000 n
-0003904246 00000 n
-0003904313 00000 n
-0003904380 00000 n
-0003904447 00000 n
-0003904514 00000 n
-0003904581 00000 n
-0003904648 00000 n
-0003904715 00000 n
-0003904782 00000 n
-0003904849 00000 n
-0003904916 00000 n
-0003904983 00000 n
-0003905050 00000 n
-0003905117 00000 n
-0003905184 00000 n
-0003905251 00000 n
-0003905318 00000 n
-0003905385 00000 n
-0003905452 00000 n
-0003905519 00000 n
-0003905586 00000 n
-0003905653 00000 n
-0003905720 00000 n
-0003905787 00000 n
-0003905854 00000 n
-0003905921 00000 n
-0003905988 00000 n
-0003906055 00000 n
-0003906122 00000 n
-0003906189 00000 n
-0003906253 00000 n
-0003906317 00000 n
-0003906381 00000 n
-0003906448 00000 n
-0003906515 00000 n
-0003906582 00000 n
-0003906649 00000 n
-0003906716 00000 n
-0003906783 00000 n
-0003906850 00000 n
-0003906917 00000 n
-0003906984 00000 n
-0003907051 00000 n
-0003907118 00000 n
-0003907185 00000 n
-0003907251 00000 n
-0003907317 00000 n
-0003907387 00000 n
-0003907454 00000 n
-0003907521 00000 n
-0003907588 00000 n
-0003907655 00000 n
-0003907722 00000 n
-0003907789 00000 n
-0003907856 00000 n
-0003907923 00000 n
-0003907993 00000 n
-0003908060 00000 n
-0003908127 00000 n
-0003908194 00000 n
-0003908261 00000 n
-0003908331 00000 n
-0003908398 00000 n
-0003908465 00000 n
-0003908531 00000 n
-0003908598 00000 n
-0003908665 00000 n
-0003908732 00000 n
-0003908799 00000 n
-0003908866 00000 n
-0003908933 00000 n
-0003909000 00000 n
-0003909067 00000 n
-0003909134 00000 n
-0003909201 00000 n
-0003909268 00000 n
-0003909307 00000 n
-0003909337 00000 n
-trailer << /Size 720 /ID [<abb116a25e96d228bb9069adc819e808><120cb9f2c4ad1913b9a491fe1f3825da>] >>
+0003328490 00000 n
+0003328722 00000 n
+0003328850 00000 n
+0003334227 00000 n
+0003334372 00000 n
+0003334517 00000 n
+0003334662 00000 n
+0003334807 00000 n
+0003334842 00000 n
+0003334890 00000 n
+0003334967 00000 n
+0003335208 00000 n
+0003335337 00000 n
+0003338326 00000 n
+0003338548 00000 n
+0003338770 00000 n
+0003338918 00000 n
+0003339066 00000 n
+0003339102 00000 n
+0003339151 00000 n
+0003339214 00000 n
+0003339474 00000 n
+0003339603 00000 n
+0003344313 00000 n
+0003344565 00000 n
+0003344601 00000 n
+0003344679 00000 n
+0003344728 00000 n
+0003344804 00000 n
+0003345053 00000 n
+0003345182 00000 n
+0003352226 00000 n
+0003352374 00000 n
+0003352522 00000 n
+0003352674 00000 n
+0003352826 00000 n
+0003353061 00000 n
+0003353325 00000 n
+0003353361 00000 n
+0003353410 00000 n
+0003353485 00000 n
+0003354568 00000 n
+0003354789 00000 n
+0003354918 00000 n
+0003361537 00000 n
+0003361573 00000 n
+0003361622 00000 n
+0003361712 00000 n
+0003361939 00000 n
+0003362068 00000 n
+0003366313 00000 n
+0003366460 00000 n
+0003366607 00000 n
+0003366643 00000 n
+0003366692 00000 n
+0003366768 00000 n
+0003366981 00000 n
+0003367110 00000 n
+0003372601 00000 n
+0003372637 00000 n
+0003372686 00000 n
+0003372735 00000 n
+0003372976 00000 n
+0003373105 00000 n
+0003379024 00000 n
+0003379171 00000 n
+0003379318 00000 n
+0003379465 00000 n
+0003379612 00000 n
+0003379648 00000 n
+0003379697 00000 n
+0003379746 00000 n
+0003379959 00000 n
+0003380089 00000 n
+0003386357 00000 n
+0003386393 00000 n
+0003386442 00000 n
+0003386532 00000 n
+0003386773 00000 n
+0003386903 00000 n
+0003393640 00000 n
+0003393788 00000 n
+0003393936 00000 n
+0003394081 00000 n
+0003394226 00000 n
+0003394262 00000 n
+0003394311 00000 n
+0003394373 00000 n
+0003394652 00000 n
+0003394782 00000 n
+0003400218 00000 n
+0003400364 00000 n
+0003400510 00000 n
+0003400656 00000 n
+0003400802 00000 n
+0003400954 00000 n
+0003401106 00000 n
+0003401251 00000 n
+0003401396 00000 n
+0003401432 00000 n
+0003401482 00000 n
+0003401545 00000 n
+0003401836 00000 n
+0003401967 00000 n
+0003406002 00000 n
+0003406149 00000 n
+0003406296 00000 n
+0003406449 00000 n
+0003406602 00000 n
+0003406752 00000 n
+0003406902 00000 n
+0003407050 00000 n
+0003407198 00000 n
+0003407235 00000 n
+0003407285 00000 n
+0003407348 00000 n
+0003407599 00000 n
+0003407730 00000 n
+0003412536 00000 n
+0003412682 00000 n
+0003412828 00000 n
+0003412974 00000 n
+0003413120 00000 n
+0003413157 00000 n
+0003413207 00000 n
+0003413284 00000 n
+0003413535 00000 n
+0003413666 00000 n
+0003415668 00000 n
+0003415821 00000 n
+0003415974 00000 n
+0003416123 00000 n
+0003416272 00000 n
+0003416309 00000 n
+0003416359 00000 n
+0003416409 00000 n
+0003416636 00000 n
+0003416767 00000 n
+0003420429 00000 n
+0003420466 00000 n
+0003420516 00000 n
+0003420566 00000 n
+0003420817 00000 n
+0003420948 00000 n
+0003424345 00000 n
+0003424492 00000 n
+0003424639 00000 n
+0003424786 00000 n
+0003424933 00000 n
+0003424970 00000 n
+0003425020 00000 n
+0003425140 00000 n
+0003425608 00000 n
+0003425739 00000 n
+0003429269 00000 n
+0003429521 00000 n
+0003429668 00000 n
+0003429815 00000 n
+0003429965 00000 n
+0003430115 00000 n
+0003430152 00000 n
+0003430609 00000 n
+0003430659 00000 n
+0003430905 00000 n
+0003432184 00000 n
+0003432315 00000 n
+0003433565 00000 n
+0003433822 00000 n
+0003433859 00000 n
+0003442929 00000 n
+0003442979 00000 n
+0003443154 00000 n
+0003443405 00000 n
+0003443536 00000 n
+0003446217 00000 n
+0003446364 00000 n
+0003446511 00000 n
+0003446661 00000 n
+0003446811 00000 n
+0003446848 00000 n
+0003446898 00000 n
+0003446976 00000 n
+0003447631 00000 n
+0003447762 00000 n
+0003451702 00000 n
+0003451959 00000 n
+0003452106 00000 n
+0003452253 00000 n
+0003452426 00000 n
+0003452662 00000 n
+0003452699 00000 n
+0003453650 00000 n
+0003453700 00000 n
+0003453793 00000 n
+0003454458 00000 n
+0003454557 00000 n
+0003456646 00000 n
+0003456777 00000 n
+0003457910 00000 n
+0003458167 00000 n
+0003458204 00000 n
+0003464339 00000 n
+0003464389 00000 n
+0003464453 00000 n
+0003464704 00000 n
+0003464835 00000 n
+0003469401 00000 n
+0003469548 00000 n
+0003469695 00000 n
+0003469846 00000 n
+0003469997 00000 n
+0003470034 00000 n
+0003470084 00000 n
+0003470134 00000 n
+0003470755 00000 n
+0003470886 00000 n
+0003471738 00000 n
+0003471990 00000 n
+0003826450 00000 n
+0003826527 00000 n
+0003828816 00000 n
+0003828891 00000 n
+0003829048 00000 n
+0003829140 00000 n
+0003829282 00000 n
+0003829452 00000 n
+0003829715 00000 n
+0003829971 00000 n
+0003830008 00000 n
+0003830894 00000 n
+0003830944 00000 n
+0003831023 00000 n
+0003831242 00000 n
+0003831373 00000 n
+0003833121 00000 n
+0003833158 00000 n
+0003833208 00000 n
+0003833258 00000 n
+0003833493 00000 n
+0003833624 00000 n
+0003838188 00000 n
+0003838339 00000 n
+0003838490 00000 n
+0003838527 00000 n
+0003838577 00000 n
+0003838641 00000 n
+0003838860 00000 n
+0003838991 00000 n
+0003845191 00000 n
+0003845228 00000 n
+0003845278 00000 n
+0003845342 00000 n
+0003845577 00000 n
+0003845708 00000 n
+0003851493 00000 n
+0003851640 00000 n
+0003851787 00000 n
+0003851824 00000 n
+0003851874 00000 n
+0003851965 00000 n
+0003852424 00000 n
+0003852555 00000 n
+0003858395 00000 n
+0003858540 00000 n
+0003858685 00000 n
+0003858830 00000 n
+0003858975 00000 n
+0003859168 00000 n
+0003859361 00000 n
+0003859510 00000 n
+0003859659 00000 n
+0003859807 00000 n
+0003859955 00000 n
+0003860103 00000 n
+0003860251 00000 n
+0003860429 00000 n
+0003860607 00000 n
+0003860833 00000 n
+0003861011 00000 n
+0003861189 00000 n
+0003861415 00000 n
+0003861618 00000 n
+0003861821 00000 n
+0003862047 00000 n
+0003862250 00000 n
+0003862453 00000 n
+0003862679 00000 n
+0003862851 00000 n
+0003863023 00000 n
+0003863206 00000 n
+0003863389 00000 n
+0003863574 00000 n
+0003863759 00000 n
+0003863796 00000 n
+0003863846 00000 n
+0003863923 00000 n
+0003864238 00000 n
+0003864369 00000 n
+0003865005 00000 n
+0003865189 00000 n
+0003865373 00000 n
+0003865566 00000 n
+0003865750 00000 n
+0003865934 00000 n
+0003866127 00000 n
+0003866291 00000 n
+0003866455 00000 n
+0003866648 00000 n
+0003866812 00000 n
+0003866976 00000 n
+0003867169 00000 n
+0003867206 00000 n
+0003867256 00000 n
+0003867319 00000 n
+0003867801 00000 n
+0003868178 00000 n
+0003868398 00000 n
+0003868638 00000 n
+0003869612 00000 n
+0003871989 00000 n
+0003872334 00000 n
+0003872557 00000 n
+0003872842 00000 n
+0003873446 00000 n
+0003883058 00000 n
+0003883129 00000 n
+0003883197 00000 n
+0003883265 00000 n
+0003883330 00000 n
+0003883394 00000 n
+0003883459 00000 n
+0003883528 00000 n
+0003883594 00000 n
+0003883660 00000 n
+0003883726 00000 n
+0003883792 00000 n
+0003883861 00000 n
+0003883926 00000 n
+0003883992 00000 n
+0003884058 00000 n
+0003884123 00000 n
+0003884192 00000 n
+0003884258 00000 n
+0003884324 00000 n
+0003884390 00000 n
+0003884459 00000 n
+0003884525 00000 n
+0003884591 00000 n
+0003884657 00000 n
+0003884726 00000 n
+0003884792 00000 n
+0003884858 00000 n
+0003884924 00000 n
+0003884990 00000 n
+0003885056 00000 n
+0003885126 00000 n
+0003885193 00000 n
+0003885260 00000 n
+0003885327 00000 n
+0003885394 00000 n
+0003885461 00000 n
+0003885528 00000 n
+0003885595 00000 n
+0003885662 00000 n
+0003885729 00000 n
+0003885795 00000 n
+0003885862 00000 n
+0003885929 00000 n
+0003885996 00000 n
+0003886066 00000 n
+0003886133 00000 n
+0003886199 00000 n
+0003886265 00000 n
+0003886332 00000 n
+0003886399 00000 n
+0003886466 00000 n
+0003886532 00000 n
+0003886599 00000 n
+0003886666 00000 n
+0003886733 00000 n
+0003886800 00000 n
+0003886867 00000 n
+0003886934 00000 n
+0003887001 00000 n
+0003887068 00000 n
+0003887135 00000 n
+0003887205 00000 n
+0003887272 00000 n
+0003887339 00000 n
+0003887406 00000 n
+0003887473 00000 n
+0003887540 00000 n
+0003887606 00000 n
+0003887672 00000 n
+0003887739 00000 n
+0003887806 00000 n
+0003887873 00000 n
+0003887939 00000 n
+0003888005 00000 n
+0003888072 00000 n
+0003888139 00000 n
+0003888206 00000 n
+0003888272 00000 n
+0003888339 00000 n
+0003888406 00000 n
+0003888473 00000 n
+0003888539 00000 n
+0003888605 00000 n
+0003888672 00000 n
+0003888739 00000 n
+0003888806 00000 n
+0003888873 00000 n
+0003888940 00000 n
+0003889007 00000 n
+0003889074 00000 n
+0003889141 00000 n
+0003889208 00000 n
+0003889275 00000 n
+0003889342 00000 n
+0003889409 00000 n
+0003889476 00000 n
+0003889542 00000 n
+0003889609 00000 n
+0003889676 00000 n
+0003889743 00000 n
+0003889810 00000 n
+0003889877 00000 n
+0003889944 00000 n
+0003890010 00000 n
+0003890077 00000 n
+0003890144 00000 n
+0003890211 00000 n
+0003890278 00000 n
+0003890345 00000 n
+0003890412 00000 n
+0003890479 00000 n
+0003890546 00000 n
+0003890613 00000 n
+0003890680 00000 n
+0003890747 00000 n
+0003890814 00000 n
+0003890881 00000 n
+0003890948 00000 n
+0003891018 00000 n
+0003891085 00000 n
+0003891152 00000 n
+0003891219 00000 n
+0003891286 00000 n
+0003891350 00000 n
+0003891414 00000 n
+0003891478 00000 n
+0003891544 00000 n
+0003891611 00000 n
+0003891678 00000 n
+0003891745 00000 n
+0003891812 00000 n
+0003891879 00000 n
+0003891946 00000 n
+0003892013 00000 n
+0003892080 00000 n
+0003892147 00000 n
+0003892214 00000 n
+0003892281 00000 n
+0003892348 00000 n
+0003892415 00000 n
+0003892481 00000 n
+0003892548 00000 n
+0003892615 00000 n
+0003892682 00000 n
+0003892749 00000 n
+0003892816 00000 n
+0003892882 00000 n
+0003892948 00000 n
+0003893015 00000 n
+0003893082 00000 n
+0003893149 00000 n
+0003893216 00000 n
+0003893282 00000 n
+0003893349 00000 n
+0003893416 00000 n
+0003893483 00000 n
+0003893550 00000 n
+0003893617 00000 n
+0003893684 00000 n
+0003893751 00000 n
+0003893815 00000 n
+0003893882 00000 n
+0003893949 00000 n
+0003894016 00000 n
+0003894083 00000 n
+0003894150 00000 n
+0003894216 00000 n
+0003894283 00000 n
+0003894350 00000 n
+0003894417 00000 n
+0003894484 00000 n
+0003894551 00000 n
+0003894618 00000 n
+0003894685 00000 n
+0003894752 00000 n
+0003894819 00000 n
+0003894886 00000 n
+0003894953 00000 n
+0003895020 00000 n
+0003895087 00000 n
+0003895154 00000 n
+0003895221 00000 n
+0003895288 00000 n
+0003895355 00000 n
+0003895422 00000 n
+0003895489 00000 n
+0003895556 00000 n
+0003895623 00000 n
+0003895690 00000 n
+0003895757 00000 n
+0003895827 00000 n
+0003895894 00000 n
+0003895961 00000 n
+0003896028 00000 n
+0003896095 00000 n
+0003896162 00000 n
+0003896229 00000 n
+0003896296 00000 n
+0003896363 00000 n
+0003896430 00000 n
+0003896497 00000 n
+0003896564 00000 n
+0003896631 00000 n
+0003896698 00000 n
+0003896765 00000 n
+0003896832 00000 n
+0003896899 00000 n
+0003896966 00000 n
+0003897031 00000 n
+0003897097 00000 n
+0003897164 00000 n
+0003897231 00000 n
+0003897298 00000 n
+0003897363 00000 n
+0003897430 00000 n
+0003897497 00000 n
+0003897564 00000 n
+0003897631 00000 n
+0003897697 00000 n
+0003897764 00000 n
+0003897831 00000 n
+0003897901 00000 n
+0003897968 00000 n
+0003898035 00000 n
+0003898101 00000 n
+0003898167 00000 n
+0003898234 00000 n
+0003898301 00000 n
+0003898368 00000 n
+0003898434 00000 n
+0003898500 00000 n
+0003898567 00000 n
+0003898634 00000 n
+0003898701 00000 n
+0003898767 00000 n
+0003898834 00000 n
+0003898901 00000 n
+0003898968 00000 n
+0003899035 00000 n
+0003899102 00000 n
+0003899169 00000 n
+0003899236 00000 n
+0003899300 00000 n
+0003899367 00000 n
+0003899434 00000 n
+0003899501 00000 n
+0003899568 00000 n
+0003899635 00000 n
+0003899701 00000 n
+0003899768 00000 n
+0003899835 00000 n
+0003899902 00000 n
+0003899969 00000 n
+0003900036 00000 n
+0003900103 00000 n
+0003900170 00000 n
+0003900237 00000 n
+0003900304 00000 n
+0003900371 00000 n
+0003900438 00000 n
+0003900505 00000 n
+0003900572 00000 n
+0003900639 00000 n
+0003900706 00000 n
+0003900773 00000 n
+0003900839 00000 n
+0003900905 00000 n
+0003900972 00000 n
+0003901039 00000 n
+0003901106 00000 n
+0003901172 00000 n
+0003901238 00000 n
+0003901305 00000 n
+0003901372 00000 n
+0003901439 00000 n
+0003901505 00000 n
+0003901572 00000 n
+0003901639 00000 n
+0003901706 00000 n
+0003901773 00000 n
+0003901840 00000 n
+0003901907 00000 n
+0003901974 00000 n
+0003902038 00000 n
+0003902105 00000 n
+0003902172 00000 n
+0003902242 00000 n
+0003902309 00000 n
+0003902376 00000 n
+0003902442 00000 n
+0003902508 00000 n
+0003902575 00000 n
+0003902642 00000 n
+0003902709 00000 n
+0003902775 00000 n
+0003902841 00000 n
+0003902908 00000 n
+0003902975 00000 n
+0003903042 00000 n
+0003903108 00000 n
+0003903175 00000 n
+0003903242 00000 n
+0003903309 00000 n
+0003903376 00000 n
+0003903443 00000 n
+0003903510 00000 n
+0003903577 00000 n
+0003903641 00000 n
+0003903708 00000 n
+0003903775 00000 n
+0003903842 00000 n
+0003903909 00000 n
+0003903976 00000 n
+0003904042 00000 n
+0003904109 00000 n
+0003904176 00000 n
+0003904243 00000 n
+0003904310 00000 n
+0003904377 00000 n
+0003904444 00000 n
+0003904511 00000 n
+0003904578 00000 n
+0003904645 00000 n
+0003904712 00000 n
+0003904779 00000 n
+0003904846 00000 n
+0003904913 00000 n
+0003904980 00000 n
+0003905047 00000 n
+0003905114 00000 n
+0003905181 00000 n
+0003905248 00000 n
+0003905315 00000 n
+0003905382 00000 n
+0003905449 00000 n
+0003905516 00000 n
+0003905583 00000 n
+0003905650 00000 n
+0003905717 00000 n
+0003905784 00000 n
+0003905851 00000 n
+0003905918 00000 n
+0003905985 00000 n
+0003906052 00000 n
+0003906119 00000 n
+0003906186 00000 n
+0003906250 00000 n
+0003906314 00000 n
+0003906378 00000 n
+0003906445 00000 n
+0003906512 00000 n
+0003906579 00000 n
+0003906646 00000 n
+0003906713 00000 n
+0003906780 00000 n
+0003906847 00000 n
+0003906914 00000 n
+0003906981 00000 n
+0003907048 00000 n
+0003907115 00000 n
+0003907182 00000 n
+0003907248 00000 n
+0003907314 00000 n
+0003907384 00000 n
+0003907451 00000 n
+0003907518 00000 n
+0003907585 00000 n
+0003907652 00000 n
+0003907719 00000 n
+0003907786 00000 n
+0003907853 00000 n
+0003907920 00000 n
+0003907990 00000 n
+0003908057 00000 n
+0003908124 00000 n
+0003908191 00000 n
+0003908258 00000 n
+0003908328 00000 n
+0003908395 00000 n
+0003908462 00000 n
+0003908528 00000 n
+0003908595 00000 n
+0003908662 00000 n
+0003908729 00000 n
+0003908796 00000 n
+0003908863 00000 n
+0003908930 00000 n
+0003908997 00000 n
+0003909064 00000 n
+0003909131 00000 n
+0003909198 00000 n
+0003909265 00000 n
+0003909304 00000 n
+0003909334 00000 n
+trailer << /Size 720 /ID [<8f5d7594143fc0f39e284d12721c4b7d><41de6486a628b25d0e1363fe74092ccc>] >>
startxref
216
%%EOF
diff --git a/macros/latex/contrib/animate/animate.sty b/macros/latex/contrib/animate/animate.sty
index c43aa7ef75..47c4d19d6f 100644
--- a/macros/latex/contrib/animate/animate.sty
+++ b/macros/latex/contrib/animate/animate.sty
@@ -13,7 +13,7 @@
\NeedsTeXFormat{LaTeX2e}
-\def\@anim@version{2019/11/27}
+\def\@anim@version{2019/12/03}
\ProvidesPackage{animate}
[\@anim@version\space PDF & SVG animations from files and inline graphics]
@@ -84,8 +84,7 @@
% store result into macro given as #3
\ifpdf %pdflatex/lualatex
\def\@anim@getpagecount#1#2#3{%
- \edef\@anim@tempfilename{\noexpand\unquote@name{#1.#2}}%
- \pdfximage page 1 {\@anim@tempfilename}\xdef#3{\the\pdflastximagepages}%
+ \pdfximage page 1 {#1.#2}\xdef#3{\the\pdflastximagepages}%
}
\else
\if@anim@xetex
@@ -1374,7 +1373,7 @@
\fi
%determines file type of the sequence
-\def\zap@finalspace#1 \@nil{#1}
+\def\zap@finalspace#1 \@nil{\unquote@name{#1}}
\ifpdf
\def\@anim@getpath#1#2{% #2: empty | user provided file extension
\ifx\@empty#2\@empty%
diff --git a/macros/latex/contrib/animate/animate.tex b/macros/latex/contrib/animate/animate.tex
index 532272fbd9..0a178a58f4 100644
--- a/macros/latex/contrib/animate/animate.tex
+++ b/macros/latex/contrib/animate/animate.tex
@@ -6,7 +6,6 @@
% http://mirrors.ctan.org/macros/latex/base/lppl.txt
% for the details of that license.
%
-\listfiles
\documentclass[a4paper]{article}
\frenchspacing
\usepackage[buttonbg=0.9]{animate}
diff --git a/macros/latex/contrib/biblatex-contrib/archaeologie/README.md b/macros/latex/contrib/biblatex-contrib/archaeologie/README.md
index 406a03a246..a2c6723228 100644
--- a/macros/latex/contrib/biblatex-contrib/archaeologie/README.md
+++ b/macros/latex/contrib/biblatex-contrib/archaeologie/README.md
@@ -4,7 +4,7 @@ bibLaTeX-__archaeologie__ Bundle
bibLaTeX-style for archaeologists, historians and philologists.
---
-Copyright (c) 2016-2019 Lukas C. Bossert
+Copyright (c) 2015-2019 Lukas C. Bossert
Copyright (c) 2015 Lukas C. Bossert | Johannes Friedl
@@ -95,6 +95,11 @@ This bundle is constantly updated. For hints, errors or suggestions use the GitH
All notable changes to this project will be documented in the [README.md](https://github.com/LukasCBossert/biblatex-archaeologie/blob/master/README.md).
This project **does not** adhere to [Semantic Versioning](http://semver.org/).
The markdown syntax is inspired by the conventions proposed by [keepachangelog.com](http://keepachangelog.com/).
+## v2.4.3 (2019-12-03)
+### *Fixed*
+* Spelling error in Italian language for Dresden and München. Thanks to Matteo Turri. (Feedback always welcome!)
+* Some code refactoring for better literate programming.
+
## v2.4.2 (2019-05-01)
### *Fixed*
diff --git a/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.dtx b/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.dtx
index c75a565e3e..bf0085f0e0 100644
--- a/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.dtx
+++ b/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.dtx
@@ -1,7 +1,7 @@
%\iffalse
%<*internal|bbx|cbx|dbx|lbx>
-\def\archDate{2019/05/01}
-\def\archVersion{2.4.2}
+\def\archDate{2019/12/03}
+\def\archVersion{2.4.3}
%</internal|bbx|cbx|dbx|lbx>
%<*internal>
\iffalse
@@ -64,7 +64,7 @@ bibLaTeX-__archaeologie__ Bundle
bibLaTeX-style for archaeologists, historians and philologists.
---
-Copyright (c) 2016-2019 Lukas C. Bossert
+Copyright (c) 2015-2019 Lukas C. Bossert
Copyright (c) 2015 Lukas C. Bossert | Johannes Friedl
@@ -1295,8 +1295,8 @@ enhanced,
colframe=yellow!20!black,
sharp corners,rounded corners=southeast,arc is angular,arc=3mm,
underlay={%
- \path[fill=tcbcol@back!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
- \path[draw=tcbcol@frame,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+ \path[fill=white!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+ \path[draw=black,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
\path[fill=red!50!black,draw=none] (interior.south west) rectangle node[white]{\Huge\bfseries !} ([xshift=4mm]interior.north west);
},
drop fuzzy shadow,#1
@@ -4811,7 +4811,7 @@ Lexikon-der-Technik,Bergmann2015,LTUR}
\item[Brussels] <-- English\newline German: Brüssel\newline Italian: Bruxelles\newline Spanish: Bruselas\newline French: Bruxelles
\item[Cologne] <-- English\newline German: Köln\newline Italian: Colonia\newline Spanish: Colonia\newline French: Cologne
\item[Copenhagen] <-- English\newline German: Kopenhagen\newline Italian: Copenaghen\newline Spanish: Copenhague\newline French: Copenhague
-\item[Dresden] <-- English\newline German: Dresden\newline Italian: Desda\newline Spanish: Dresde\newline French: Dresde
+\item[Dresden] <-- English\newline German: Dresden\newline Italian: Dresda\newline Spanish: Dresde\newline French: Dresde
\item[Florence] <-- English\newline German: Florenz\newline Italian: Firenze\newline Spanish: Firenze\newline French: Florence
\item[Frankfurt] <-- English\newline German: Frankfurt am Main\newline Italian: Francoforte sul Meno\newline Spanish: Francfort del Meno\newline French: Francfort-sur-le-Main
\item[Freiburg] <-- English\newline German: Freiburg \parentext{i. Breisgau}\newline Italian: Friburgo in Brisgovia\newline Spanish: Friburgo de Brisgovia\newline French: Fribourg-en-Brisgau
@@ -4822,7 +4822,7 @@ Lexikon-der-Technik,Bergmann2015,LTUR}
\item[Louvain] <-- English\newline German: Löwen\newline Italian: Lovanio\newline Spanish: Lovaina\newline French: Louvain
\item[Mainz] <-- English\newline German: Mainz am Rhein\newline Italian: Magonza\newline Spanish: Maguncia\newline French: Mayence
\item[Milano] <-- English\newline German: Mailand\newline Italian: Milano\newline Spanish: Milán\newline French: Milan
-\item[Munich] <-- English\newline German: München\newline Italian: Monaco \parentext{di Bavaria}\newline Spanish: Múnich\newline French: Munich
+\item[Munich] <-- English\newline German: München\newline Italian: Monaco di Baviera\newline Spanish: Múnich\newline French: Munich
\item[Naples] <-- English\newline German: Neapel\newline Italian: Napoli\newline Spanish: Napoli\newline French: Naples
\item[Paris] <-- English\newline German: Paris\newline Italian: Parigi\newline Spanish: París\newline French: Paris
\item[Regensburg] <-- English\newline German: Regensburg\newline Italian: Ratisbona\newline Spanish: Ratisbona\newline French: Ratisbonne
@@ -8106,6 +8106,12 @@ To see the long forms of journal titles or series you have to switch on the opti
% ██ ██████ ██████ ██████ ██████ ██ ██ ███████ ██ ████ ██
% */
%<*readme>
+## v2.4.3 (2019-12-03)
+### *Fixed*
+* Spelling error in Italian language for Dresden and München. Thanks to Matteo Turri. (Feedback always welcome!)
+* Some code refactoring for better literate programming.
+
+
## v2.4.2 (2019-05-01)
### *Fixed*
@@ -8287,7 +8293,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
useprefix=true,%
mincrossrefs=1,%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbool{bbx:edby}
\newbool{bbx:width}
\newbool{bbx:yearseries}
@@ -8316,7 +8324,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\newtoggle{bbx:arachne}
\setlength{\biblabelsep}{0em}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyOption{lstabbrv}[true]{%
\csuse{bool#1}{bib:lstabbrv}%
\addbibresource{archaeologie-lstabbrv.bib}}
@@ -8349,7 +8359,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
lstlocations,%
lstpublishers,%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyOption[string]{biblabel}{%
\ifcsundef{archblx@biblabel@#1}
{\PackageError{biblatex-archaeologie}
@@ -8392,11 +8404,15 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\ifstrequal{#1}{true}%
{\AtEveryCite{\renewcommand*{\mkbibnamefamily}[1]{\textsc{##1}}}}%
{}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\ExecuteBibliographyOptions{%
autolang=hyphen,%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareEntryOption{ancient}[true]{\csuse{bool#1}{cbx:ancient}}
\DeclareEntryOption{frgancient}[true]{%
\ifstrequal{#1}{true}%
@@ -8449,7 +8465,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{Weitere Informationen unter \url{http://biblatex-archaeologie.de}}
{For further information see \url{http://biblatex-archaeologie.de}}
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareFieldFormat*{title}{#1\isdot}
\DeclareFieldFormat{subtitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
@@ -8509,12 +8527,16 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\ifhyperref%
{\href{https://arachne.dainst.org/entity/#1}{\nolinkurl{#1}}}%
{\nolinkurl{#1}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareFieldAlias{zenon}{eprint:zenon}
\DeclareFieldAlias{jstor}{eprint:jstor}
\DeclareFieldAlias{urn}{eprint:urn}
\DeclareFieldAlias{arachne}{eprint:arachne}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareRedundantLanguages{german}{german,ngerman,austrian,naustrian}
\DeclareRedundantLanguages{english,american}{english,american,british,%
canadian,australian,newzealand,USenglish,UKenglish}
@@ -8524,7 +8546,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\DeclareLanguageMapping{italian}{italian-archaeologie}
\DeclareLanguageMapping{spanish}{spanish-archaeologie}
%\DeclareLanguageMappingSuffix{-archaeologie}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\NewBibliographyString{origtitle}
\NewBibliographyString{firstprint}
\NewBibliographyString{reviewof}
@@ -8541,7 +8565,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\NewBibliographyString{subvoce}
\NewBibliographyString{owntranslation}
\NewBibliographyString{magthesis}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewcommand*{\sqspace}{\addnbthinspace}
\renewcommand*{\subtitlepunct}{\addperiod\addspace}
\renewcommand*{\intitlepunct}{\addcolon\addspace}
@@ -8785,7 +8811,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\enddateuncertainprint
\dateeraprint{#1endyear}}}}}%
\endgroup}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyAlias{collection}{book}
\DeclareBibliographyAlias{reference}{book}
\DeclareBibliographyAlias{institution}{school}
@@ -8793,8 +8821,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\DeclareBibliographyAlias{incollection}{inbook}
\DeclareBibliographyAlias{manual}{book}
\DeclareBibliographyAlias{mathesis}{thesis}
-%-----------------------
-
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareSortingTemplate{ndymdt}{
\sort{
\field{presort}
@@ -8835,10 +8864,14 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\literal{9999}
}
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareSortingTemplate{shortseries}{\sort{\field{shortseries}}}
\DeclareSortingTemplate{shortjournal}{\sort{\field{shortjournal}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\defbibcheck{shortseries}{%
\iffieldundef{shortseries}%
{\skipentry}%
@@ -8859,7 +8892,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\skipentry}%
{\savefieldcs{journaltitle}{\strfield{journaltitle}}}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareNameAlias{name:initials}{default}
\DeclareNameAlias{author}{name:initials}
\DeclareNameAlias{editor}{author}
@@ -8869,13 +8904,17 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\DeclareNameAlias{bycommentator}{author}
\DeclareNameAlias{bookauthor}{author}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareListFormat{location}{%
#1\ifthenelse{\value{listcount}<\value{liststop}}%
{\locationdelim}%
{}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\AtEveryBibitem{%
\iffieldequalstr{relatedtype}{translationof}%
{\savename{translator}{\savedrelatedtranslator}%
@@ -8887,10 +8926,12 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
{\clearname{translator}%
\clearfield{origtitle}}}
-%-----------------------
+% \end{macrocode}
+%
%% provide macros to deal with intranslator, withincommentator, withinannotator, withinintroduction, withinforeword, withinafterword
%% that is fields referring to the title work and not the booktitle work in inbook etc. works
% these macros are essentially the same as the standard macros without the "in"
+% \begin{macrocode}
\newbibmacro*{byineditor+others}{%
\ifnameundef{ineditor}
{}
@@ -8900,7 +8941,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\clearname{ineditor}%
\newunit}%
\usebibmacro{byintranslator+others}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{byintranslator+others}{%
\ifnameundef{intranslator}
{}
@@ -8910,42 +8953,54 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\clearname{intranslator}%
\newunit}%
\usebibmacro{withinothers}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{withincommentator}{%
\ifnameundef{incommentator}
{}
{\bibstring{withcommentator}%
\setunit{\addspace}%
\printnames[author]{incommentator}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{withinannotator}{%
\ifnameundef{inannotator}
{}
{\bibstring{withannotator}%
\setunit{\addspace}%
\printnames[author]{inannotator}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{withinintroduction}{%
\ifnameundef{inintroduction}
{}
{\bibstring{withintroduction}%
\setunit{\addspace}%
\printnames[author]{inintroduction}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{withinforeword}{%
\ifnameundef{inforeword}
{}
{\bibstring{withforeword}%
\setunit{\addspace}%
\printnames[author]{inforeword}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{withinafterword}{%
\ifnameundef{inafterword}
{}
{\bibstring{withafterword}%
\setunit{\addspace}%
\printnames[author]{inafterword}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{withinothers}{%
\usebibmacro{withincommentator}%
\clearname{incommentator}%
@@ -8961,7 +9016,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\newunit
\usebibmacro{withinafterword}%
\clearname{inafterword}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{labelwidthbib}{%
\begingroup
\DeclareFieldFormat{bibhyperref}{##1}%
@@ -8971,14 +9028,18 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\printtext[bibcitelabel]{\usebibmacro{cite}}%
\endgroup
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{kicklabel}{%
\sbox\arch@labelbox{\usebibmacro{labelwidthbib}}%
\global\togglefalse{blx@insert}%
\ifdim1.1\wd\arch@labelbox>%
\labwidthsameline\leavevmode\newline
\fi}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{labelwidthfield}[1]{%
\begingroup
\DeclareFieldFormat{bibhyperref}{##1}%
@@ -8987,14 +9048,18 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\defcounter{maxnames}{\blx@maxcitenames}%
\printfield{#1}%
\endgroup}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{kicklabelfield}[1]{%
\sbox\arch@labelbox{\usebibmacro{labelwidthfield}{#1}}%
\global\togglefalse{blx@insert}%
\ifdim.9\wd\arch@labelbox>%
\labwidthsameline\leavevmode\newline
\fi}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{pageref}{%
\iflistundef{pageref}
{}
@@ -9004,7 +9069,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\bibstring{backrefpages}\ppspace}
{\bibstring{backrefpage}\ppspace}%
\printlist[pageref][-\value{listtotal}]{pageref}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{bbx:parunit}{%
\ifbibliography{%
\setunit{\bibpagerefpunct}\newblock
@@ -9013,38 +9080,50 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\setunit{\addcomma\newline\nobreak}}%
{\newunit}%
}
- %-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{eprint}{%
\usebibmacro{bbx:parunit}%
\iffieldundef{eprinttype}%
{\printfield{eprint}}%
{\printfield[eprint:\strfield{eprinttype}]{eprint}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{zenon}{%
\iffieldundef{zenon}
{}%
{\usebibmacro{bbx:parunit}%
\printfield{zenon}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{jstor}{%
\iffieldundef{jstor}
{}
{\usebibmacro{bbx:parunit}%
\printfield{jstor}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{arachne}{%
\iffieldundef{arachne}
{}
{\usebibmacro{bbx:parunit}%
\printfield{arachne}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{urn}{%
\iffieldundef{urn}
{}
{\usebibmacro{bbx:parunit}%
\printfield{urn}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{url+urldate}{%
\usebibmacro{bbx:parunit}%
\iffieldundef{url}
@@ -9052,7 +9131,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\printfield{url}%
\setunit*{\addspace}%
\printtext{\printurldate}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{doi+eprint+url}{%
\usebibmacro{bbx:parunit}%
\iftoggle{bbx:doi}{\printfield{doi}}{}%
@@ -9063,7 +9144,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\iftoggle{bbx:zenon}{\usebibmacro{zenon}}{}%
\iftoggle{bbx:url}{\usebibmacro{url+urldate}}{}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{editor}{%
\ifboolexpr{%
test \ifuseeditor %
@@ -9074,11 +9157,15 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\printtext[editortype]{\bibstring{editor}}%
\clearname{editor}}%
{}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{bookauthor}{%
\printnames{bookauthor}%
\newunit}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareLabeldate{%
\field{date}
\field{year}
@@ -9088,14 +9175,18 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\field{eventdate}
\literal{nodate}
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{series}{%
\ifboolexpr{test {\iffieldundef{shortseries}} %
or bool {bbx:noabbrv}}%
{\printtext[seriestitle]{\printfield[titlecase]{series}}}%
{\printfield{shortseries}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{series+number}{%
\iffieldundef{series}%
{}%
@@ -9105,7 +9196,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\ifbool{bbx:yearseries}%
{\newunit}%
{\setunit{\addspace}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{journal}{%
\ifboolexpr{test {\iffieldundef{shortjournal}}%
or bool {bbx:noabbrv}}%
@@ -9114,7 +9207,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\setunit{\subtitlepunct}%
\printfield[titlecase]{journalsubtitle}}}%
{\printfield{shortjournal}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{journal+number+year}{%
\usebibmacro{journal}%
\setunit{\jourvoldelim}%
@@ -9127,29 +9222,41 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\printfield{number}}%
\newunit}%
\usebibmacro{pubstate+year}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{pubstate+year}{%
\iffieldundef{pubstate}%
{\usebibmacro{date}}%
{\printfield{pubstate}}}
- %-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{pages}{%
\printfield{pages}%
\isdot}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{translation}{%
\printfield{origtitle}%
\setunit{\addcomma\space}%
\usebibmacro{byeditor+others}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{intranslation}{%
\printfield{origtitle}%
\setunit{\addcomma\space}%
\usebibmacro{byineditor+others}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{related:reviewof}[1]{%
\usebibmacro*{related:default}{#1}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{related:translationof}[1]{%
\entrydata*{#1}{%
\restorename{savedtranslator}{\savedrelatedtranslator}%
@@ -9161,7 +9268,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\bibstring{bytranslator}%keine Sprache ausgegeben?
\setunit{\addspace}%
\printnames{savedtranslator}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{inreference:title+author}{%
\iffieldundef{title}%
{}%
@@ -9178,7 +9287,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\ifbool{bbx:bibfullname}
{\printnames[author]{labelname}}
{\printnames[name:initials]{labelname}}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{maintitle+title+volumes}{%
\iffieldsequal{maintitle}{title}%
{\clearfield{maintitle}%
@@ -9197,14 +9308,17 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\usebibmacro{translation}}%
{\usebibmacro{volume}}}%
\newunit}
-%-----------------------
-%https://tex.stackexchange.com/a/15014/35864
+% \end{macrocode}
+% \url{https://tex.stackexchange.com/a/15014/35864}
+% \begin{macrocode}
\newenvironment{fullexpotherlanguage}[1]{%
\begingroup
\edef\temp{\endgroup\noexpand\otherlanguage{#1}}%
\temp
}{\endotherlanguage}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro{event+venue+date}{%
\setunit{\adddot\addspace}%
\printfield{eventtitle}%
@@ -9222,7 +9336,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\printeventdate}
\newunit%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{title}{%
\ifboolexpr{%
test {\iffieldundef{title}}%
@@ -9238,7 +9354,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\setunit*{\subtitlepunct}%
\printfield{titleaddon}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{booktitle}{%
\ifboolexpr{%
test {\iffieldundef{booktitle}}%
@@ -9252,7 +9370,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\setunit{\subtitlepunct}}%
\printfield{booktitleaddon}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{maintitle}{%
\ifboolexpr{%
test {\iffieldundef{maintitle}}%
@@ -9266,7 +9386,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\setunit{\subtitlepunct}}%
\printfield{maintitleaddon}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{edition}{%
\iffieldint{edition}%
{\setunit*{\addspace}%
@@ -9274,7 +9396,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\newunit
\printfield{edition}%
\setunit{\addspace}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{location+edition+year}{%
\ifboolexpr{%
test {\iflistundef{location}}%
@@ -9324,17 +9448,23 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\printlist{location}%
\setunit*{\addspace}%
\usebibmacro{pubstate+year}}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{institution+location+date}{%
\printlist{location}%
\setunit*{\addspace}%
\printlist{institution}%
\setunit*{\addspace}%
\usebibmacro{pubstate+year}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{signatur}{%
\printfield{note}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{volume}{%
\iffieldundef{volume}%
{\iffieldundef{volumes}%
@@ -9352,7 +9482,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\setunit{\addspace}%
\printfield{part}}}%
\newunit}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{maintitle+booktitle}{%
\iffieldundef{maintitle}%
{}%
@@ -9363,7 +9495,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\usebibmacro{volume}%
\newunit
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{booktitle+volume+editor}{%
\ifnameundef{editor}%
{\usebibmacro{bookauthor}%
@@ -9380,7 +9514,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\usebibmacro{maintitle+booktitle}%
\newunit}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{reftitle}{%
\iffieldundef{title}%
{}%
@@ -9393,30 +9529,40 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
{\printfield[brackets]{number}}}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{shortjournal}{%
\printtext[journaltitle]{%
\printfield[titlecase]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{journalsubtitle}}%
\blx@initunit}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{shortseries}{%
\printtext[seriestitle]{%
\printfield[titlecase]{series}}%
\blx@initunit}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareDataInheritance{reference}{inreference}{%
\inherit{shorthand}{booktitle}%
\noinherit{volumes}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{shorthand}{%
\iffieldundef{title}%
{\printfield{booktitle}}%
{\printfield{title}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9441,7 +9587,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9472,7 +9620,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{thesis}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9494,7 +9644,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{proceedings}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9524,7 +9676,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9560,7 +9714,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{talk}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9587,7 +9743,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9624,7 +9782,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{}%
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{inreference}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9643,7 +9803,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\newunit\newblock
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyDriver{review}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -9665,7 +9827,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\newunit\newblock
\usebibmacro{finentry}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\defbibenvironment{bibliography}%
{\list%
{\usebibmacro{labelwidthbib}}%
@@ -9678,7 +9842,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\renewcommand*{\makelabel}[1]{##1\hss}}}%
{\endlist}%
{\item\usebibmacro{kicklabel}}
- %-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\def\do#1{%
\defbibenvironment{#1}
{\list%
@@ -9694,9 +9860,10 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\item\usebibmacro{kicklabelfield}{#1}}%
}
\docsvlist{shortjournal,shortseries}
-
+% \end{macrocode}
% this will not be needed in future versions of biblatex, see
-% https://github.com/plk/biblatex/commit/9a1f550222e294af5490488093a5e33e10493c63
+% \url{https://github.com/plk/biblatex/commit/9a1f550222e294af5490488093a5e33e10493c63}
+% \begin{macrocode}
\providecommand*{\ifdateyearsequal}[2]{%
\ifboolexpr{ test {\iffieldsequal{#1year}{#2year}}
and test {\iffieldsequal{#1dateera}{#2dateera}}}}
@@ -9722,12 +9889,13 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
% \fi
%\section{Citation (.cbx)}
% \begin{macrocode}
-
\newbool{cbx:yearinparens}
\newbool{cbx:seenote}
\newbool{cbx:uniqueme}
\newbool{cbx:yearinparensoption}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
%\renewcommand*{\multicitedelim}{\addsemicolon\addspace}
\newcommand*{\labelyeardelim}{\addspace}
%\renewcommand{\textcitedelim}{\addcomma\space}
@@ -9791,8 +9959,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\InitializeCitationStyle{%
\global\cslet{cbx@bseen@names@\the\c@refsection}\@empty
\global\cslet{cbx@fseen@names@\the\c@refsection}\@empty}
-
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareBibliographyOption{yearinparens}[true]{%
\ifstrequal{#1}{true}%
{\DeclareFieldFormat{citeyear}{\mkbibparens{##1}}%
@@ -9810,7 +9979,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
Use one of the values 'initials', 'full', 'family', 'firstfulltheninitials' or 'firstfullthenfamily'.}{}}%
\def\citeauthorformatVALUE{#1}}
\DeclareEntryOption{uniqueme}[true]{\csuse{bool#1}{cbx:uniqueme}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareFieldFormat{citeyear}{#1}
\DeclareFieldFormat{prenote}{#1\isdot}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
@@ -10020,9 +10191,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
Value 'firstfull' for 'citeauthorformat' is deprecated,\MessageBreak
use 'firstfulltheninitials' instead.}%
\cbx@arch@citeauthorformat@firstfulltheninitials}
-
-
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\ExecuteBibliographyOptions{%
citetracker=true,
idemtracker=true,
@@ -10036,7 +10207,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
uniquename=minfull,
autocite=footnote,
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{uniqueshorthand}{%
\printtext[brackets]{%
\ifnameundef{translator}
@@ -10046,7 +10219,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\usebibmacro{series}}}%
{\printnames[name:family]{intranslator}}}%
{\printnames[name:family]{translator}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{citeindex}{%
\ifciteindex%
{\ifboolexpr{%
@@ -10057,7 +10232,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\indexnames{labelname}}}%
{}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\renewbibmacro*{postnote}{%
\ifboolexpr{
bool{bbx:inreferencesasfullcite}
@@ -10073,13 +10250,17 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\setunit{\addspace}%
\usebibmacro{cite:frgname}}%
{}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:frgname}{%
\ifnameundef{shorteditor}%
{\printnames[name:family]{editor}}%
{\printnames{shorteditor}}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{seenote}{%
\ifnameundef{labelname}%
{\usebibmacro{cite:label}}%
@@ -10091,19 +10272,27 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\addspace%
\ref{footref:\thefield{entrykey}}}%
\renewcommand{\postnotedelim}{\addspace}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:title}{\printfield{labeltitle}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:origtitle}{%
\iffieldundef{origtitle}
{\usebibmacro{cite:title}}
{\printfield{origtitle}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:year}{%
\iffieldundef{labelyear}
{}
{\printtext[citeyear]{\usebibmacro{cite:labeldate+extradate}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:lexikon}{%
\printfield{booktitle}%
\setunit{\addspace}%
@@ -10116,7 +10305,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\printfield{postnote}}%
\usebibmacro{inreference:title+author}%
}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{cite:seenote}{%
\ifboolexpr{bool{cbx:ancient}%
or bool{cbx:frgancient}%
@@ -10130,7 +10321,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\DeclareNameAlias{sortname}{default}}%
{\thefield{entrytype}}%
\iffootnote{\label{footref:\thefield{entrykey}}}}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro{cite}{%
\ifboolexpr{
bool{bbx:inreferencesasfullcite}
@@ -10149,14 +10342,18 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\setunit{\nameyeardelim}}%
\usebibmacro{cite:year}}%
{\usebibmacro{cite:shorthand}}}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{citeyear}{%
\iffieldundef{shorthand}%
{\iffieldundef{labelyear}%
{\usebibmacro{cite:label}}%
{\usebibmacro{cite:labeldate+extradate}}}%
{\usebibmacro{cite}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{textcite}{%
\ifnameundef{labelname}%
{\iffieldundef{shorthand}%
@@ -10174,7 +10371,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\global\booltrue{cbx:yearinparens}%
\nameyeardelim\bibopenparen}%
\usebibmacro{citeyear}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:shorthand}{%
\ifbool{cbx:seenote}%
{\printtext{\printfield{shorthand}}}%
@@ -10184,17 +10383,23 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\setunit*{\addspace}%
\usebibmacro*{uniqueshorthand}}%
{}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:label}{%
\iffieldundef{label}%
{\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}%
{\printtext[bibhyperref]{\printfield{label}}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{cite:labeldate+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{\printlabeldateextra}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\newbibmacro*{textcite:postnote}{%
\iffieldundef{postnote}%
{\ifbool{cbx:yearinparens}%
@@ -10209,21 +10414,27 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\usebibmacro{cite:frgname}%
\bibcloseparen}%
\bibcloseparen}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\cite}%
{\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}%
{\multicitedelim}%
{\usebibmacro{postnote}}
- %-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\footcite}[\mkbibfootnote]
{\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\textcite}%
{\boolfalse{cbx:yearinparens}%
\renewcommand*{\multinamedelim}{\addcomma\space}%
@@ -10245,14 +10456,18 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\ifbool{cbx:seenote}
{\usebibmacro{postnote}}%
{\usebibmacro{textcite:postnote}}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\parencite}[\mkbibparens]%
{\usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\smartcite}[\iffootnote\textnormal\mkbibfootnote]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
@@ -10264,7 +10479,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
test{\ifentrytype{inreference}}}
{}
{\usebibmacro{postnote}}}%
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\usedriver
@@ -10272,7 +10489,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\footfullcite}[\mkbibfootnote]
{\usebibmacro{prenote}}
{\usedriver
@@ -10280,12 +10499,16 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}
\DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}{\multicitedelim}
\DeclareMultiCiteCommand{\textcites}{\textcite}{}
\DeclareMultiCiteCommand{\smartcites}[\iffootnote\textnormal\mkbibfootnote]{\smartcite}{\multicitedelim}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\citeauthor}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
@@ -10304,7 +10527,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\printnames[citeauthor]{labelname}}}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\citetranslator}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
@@ -10333,7 +10558,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\printtext[bibhyperref]{\printnames[citeauthor]{translator}}}}}}
{\multicitedelim}%
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand*{\citetranslator}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
@@ -10363,7 +10590,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
{\usebibmacro{bytranslator+others}}}}}%
{\multicitedelim}%
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand*{\citeauthor}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
@@ -10372,7 +10601,9 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
\printnames[][1-1]{labelname}}
{\multicitedelim}
{\usebibmacro{postnote}}
-%-----------------------
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareCiteCommand{\citetitle}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
@@ -10840,7 +11071,7 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
@String{Brussels= {\iflanguage{english}{Brussels}{\iflanguage{italian}{Bruxelles}{\iflanguage{french}{Bruxelles}{\iflanguage{spanish}{Bruselas}{\iflanguage{ngerman}{Brüssel}{\iflanguage{german}{Brüssel}{}}}}}}}}
@String{Cologne= {\iflanguage{english}{Cologne}{\iflanguage{italian}{Colonia}{\iflanguage{french}{Cologne}{\iflanguage{spanish}{Colonia}{\iflanguage{ngerman}{Köln}{\iflanguage{german}{Köln}{}}}}}}}}
@String{Copenhagen= {\iflanguage{english}{Copenhagen}{\iflanguage{italian}{Copenaghen}{\iflanguage{french}{Copenhague}{\iflanguage{spanish}{Copenhague}{\iflanguage{ngerman}{Kopenhagen}{\iflanguage{german}{Kopenhagen}{}}}}}}}}
-@String{Dresden= {\iflanguage{english}{Dresden}{\iflanguage{italian}{Desda}{\iflanguage{french}{Dresde}{\iflanguage{spanish}{Dresde}{\iflanguage{ngerman}{Dresden}{\iflanguage{german}{Dresden}{}}}}}}}}
+@String{Dresden= {\iflanguage{english}{Dresden}{\iflanguage{italian}{Dresda}{\iflanguage{french}{Dresde}{\iflanguage{spanish}{Dresde}{\iflanguage{ngerman}{Dresden}{\iflanguage{german}{Dresden}{}}}}}}}}
@String{Florence= {\iflanguage{english}{Florence}{\iflanguage{italian}{Firenze}{\iflanguage{french}{Florence}{\iflanguage{spanish}{Firenze}{\iflanguage{ngerman}{Florenz}{\iflanguage{german}{Florenz}{}}}}}}}}
@String{Frankfurt= {\iflanguage{english}{Frankfurt}{\iflanguage{italian}{Francoforte sul Meno}{\iflanguage{french}{Francfort-sur-le-Main}{\iflanguage{spanish}{Francfort del Meno}{\iflanguage{ngerman}{Frankfurt am Main}{\iflanguage{german}{Frankfurt am Main}{}}}}}}}}
@String{Freiburg= {\iflanguage{english}{Freiburg}{\iflanguage{italian}{Friburgo in Brisgovia}{\iflanguage{french}{Fribourg-en-Brisgau}{\iflanguage{spanish}{Friburgo de Brisgovia}{\iflanguage{ngerman}{Freiburg \parentext{i. Breisgau}}{\iflanguage{german}{Freiburg \parentext{i. Breisgau}}{}}}}}}}}
@@ -10851,7 +11082,7 @@ This update is also due to compatibility with `biblatex 3.8a`/`biber 2.8`.
@String{Louvain= {\iflanguage{english}{Louvain}{\iflanguage{italian}{Lovanio}{\iflanguage{french}{Louvain}{\iflanguage{spanish}{Lovaina}{\iflanguage{ngerman}{Löwen}{\iflanguage{german}{Löwen}{}}}}}}}}
@String{Mainz= {\iflanguage{english}{Mainz}{\iflanguage{italian}{Magonza}{\iflanguage{french}{Mayence}{\iflanguage{spanish}{Maguncia}{\iflanguage{ngerman}{Mainz am Rhein}{\iflanguage{german}{Mainz am Rhein}{}}}}}}}}
@String{Milano= {\iflanguage{english}{Milano}{\iflanguage{italian}{Milano}{\iflanguage{french}{Milan}{\iflanguage{spanish}{Milán}{\iflanguage{ngerman}{Mailand}{\iflanguage{german}{Mailand}{}}}}}}}}
-@String{Munich= {\iflanguage{english}{Munich}{\iflanguage{italian}{Monaco \parentext{di Bavaria}}{\iflanguage{french}{Munich}{\iflanguage{spanish}{Múnich}{\iflanguage{ngerman}{München}{\iflanguage{german}{München}{}}}}}}}}
+@String{Munich= {\iflanguage{english}{Munich}{\iflanguage{italian}{Monaco di Baviera}{\iflanguage{french}{Munich}{\iflanguage{spanish}{Múnich}{\iflanguage{ngerman}{München}{\iflanguage{german}{München}{}}}}}}}}
@String{Naples= {\iflanguage{english}{Naples}{\iflanguage{italian}{Napoli}{\iflanguage{french}{Naples}{\iflanguage{spanish}{Napoli}{\iflanguage{ngerman}{Neapel}{\iflanguage{german}{Neapel}{}}}}}}}}
@String{Paris= {\iflanguage{english}{Paris}{\iflanguage{italian}{Parigi}{\iflanguage{french}{Paris}{\iflanguage{spanish}{París}{\iflanguage{ngerman}{Paris}{\iflanguage{german}{Paris}{}}}}}}}}
@String{Regensburg= {\iflanguage{english}{Regensburg}{\iflanguage{italian}{Ratisbona}{\iflanguage{french}{Ratisbonne}{\iflanguage{spanish}{Ratisbona}{\iflanguage{ngerman}{Regensburg}{\iflanguage{german}{Regensburg}{}}}}}}}}
diff --git a/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.pdf b/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.pdf
index f67d70e087..2f58e1ab8a 100644
--- a/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.pdf
+++ b/macros/latex/contrib/biblatex-contrib/archaeologie/archaeologie.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-acs.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-acs.pdf
index 891df569dc..5ecab29373 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-acs.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-acs.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-angew.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-angew.pdf
index 795e8c44c3..b97d33fe73 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-angew.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-angew.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-biochem.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-biochem.pdf
index b7b990ff4b..3f8f25a6de 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-biochem.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-biochem.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-rsc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-rsc.pdf
index fbb7150642..284a115e8f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-rsc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem-rsc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.pdf
index c5316fb35c..c36dc44779 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.tex
index 8c9690f39a..5d91e6c829 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/biblatex-chem.tex
@@ -21,8 +21,8 @@
{\texttt{joseph.wright@morningstar2.co.uk}}}}
\title{\pkg{biblatex-chem} -- A set of \pkg{biblatex} implementations of
chemistry-related bibliography styles%
- \footnote{This file describes v1.1x, last revised 2019/08/24.}}
-\date{Released 2019/08/24}
+ \footnote{This file describes v1.1y, last revised 2019/12/03.}}
+\date{Released 2019/12/03}
\providecommand*{\opt}[1]{\texttt{#1}}
\providecommand*{\pkg}[1]{\textsf{#1}}
@@ -230,6 +230,7 @@ be sent by e-mail to
\changes{v1.1w}{2018/10/18}{Bring \texttt{related} support in line with
\pkg{biblatex} core}
\changes{v1.1x}{2019-08-24}{Better formatting when article titles are included}
+\changes{v1.1y}{2019-12-03}{Add a missing space}
\PrintChanges
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.bbx
index 3d33792c48..47dfebd4b2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.bbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-acs.bbx}[2019/08/24 v1.1x biblatex bibliography style]
+\ProvidesFile{chem-acs.bbx}[2019/12/03 v1.1y biblatex bibliography style]
% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}
@@ -286,7 +286,7 @@
\iftoggle{bbx:articletitle}
{%
\usebibmacro{title}%
- \printunit{\adddot}%
+ \printunit{\adddot\addspace}%
}
{}%
\usebibmacro{byauthor}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.cbx
index 353cc55721..cc1625b50e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-acs.cbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-acs.cbx}[2019/08/24 v1.1x biblatex citation style]
+\ProvidesFile{chem-acs.cbx}[2019/12/03 v1.1y biblatex citation style]
\RequireCitationStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.bbx
index 4de530d3c0..666d420a07 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.bbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-angew.bbx}[2019/08/24 v1.1x biblatex bibliography style]
+\ProvidesFile{chem-angew.bbx}[2019/12/03 v1.1y biblatex bibliography style]
% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.cbx
index cba9538058..1a93d1c099 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-angew.cbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-angew.cbx}[2019/08/24 v1.1x biblatex citation style]
+\ProvidesFile{chem-angew.cbx}[2019/12/03 v1.1y biblatex citation style]
\RequireCitationStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.bbx
index 0b072056d4..f729e852b4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.bbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-biochem.bbx}[2019/08/24 v1.1x biblatex bibliography style]
+\ProvidesFile{chem-biochem.bbx}[2019/12/03 v1.1y biblatex bibliography style]
% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.cbx
index fd272ea7e5..05d832300c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-biochem.cbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-biochem.cbx}[2019/08/24 v1.1x biblatex citation style]
+\ProvidesFile{chem-biochem.cbx}[2019/12/03 v1.1y biblatex citation style]
\RequireCitationStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx
index 48815b4f73..6d0983da08 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.bbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-rsc.bbx}[2019/08/24 v1.1x biblatex bibliography style]
+\ProvidesFile{chem-rsc.bbx}[2019/12/03 v1.1y biblatex bibliography style]
% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.cbx
index 1e00013dfd..202b6110fb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.cbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{chem-rsc.cbx}[2019/08/24 v1.1x biblatex citation style]
+\ProvidesFile{chem-rsc.cbx}[2019/12/03 v1.1y biblatex citation style]
\RequireCitationStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf
index 0de0fe144e..16758e75a7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex
index 984b04402f..89550aed25 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/biblatex-phys.tex
@@ -25,8 +25,8 @@
{\texttt{joseph.wright@morningstar2.co.uk}}}}
\title{\pkg{biblatex-phys} -- A \pkg{biblatex} implementation of the
\textsc{aip} and \textsc{aps} bibliography style%
- \footnote{This file describes v1.1a, last revised 2019/09/21.}}
-\date{Released 2019/09/21}
+ \footnote{This file describes v1.1b, last revised 2019/12/03.}}
+\date{Released 2019/12/03}
\providecommand*{\opt}[1]{\texttt{#1}}
\providecommand*{\pkg}[1]{\textsf{#1}}
@@ -201,6 +201,7 @@ be sent by e-mail to
style changes}
\changes{v1.1}{2018/10/19}{Support for \texttt{collaboration} field}
\changes{v1.1a}{2019-09-20}{Biber support for \texttt{collaboration} field}
+\changes{v1.1b}{2019-12-03}{Fix printing of DOI when pages are missing}
\PrintChanges
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx
index 439bdd6bcf..442f4feae5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.bbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{phys.bbx}[2019/09/21 v1.1a biblatex bibliography style]
+\ProvidesFile{phys.bbx}[2019/12/03 v1.1b biblatex bibliography style]
% Load the standard style to avoid copy-pasting unnecessary material
\RequireBibliographyStyle{numeric-comp}
@@ -458,6 +458,22 @@
}%
}
+\renewbibmacro*{note+pages}{%
+ \printfield{note}%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}%
+ \iffieldundef{pages}
+ {%
+ \printfield{doi}%
+ \clearfield{doi}%
+ }%
+ {%
+ \iftoggle{bbx:doi}
+ {}
+ {\clearfield{doi}}%
+ }%
+}
+
\newbibmacro*{related:translatedas}[1]{%
\entrydata{#1}{%
\usebibmacro{journal+issuetitle}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx
index 946b36614c..7758bc0a2b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.cbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{phys.cbx}[2019/09/21 v1.1a biblatex citation style]
+\ProvidesFile{phys.cbx}[2019/12/03 v1.1b biblatex citation style]
\RequireCitationStyle{numeric-comp}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx
index d7ed7e17dc..c47ca1e2d9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-phys/phys.dbx
@@ -8,7 +8,7 @@
%% ---------------------------------------------------------------
%%
-\ProvidesFile{phys.dbx}[2019/09/21 v1.1a biblatex database model extension]
+\ProvidesFile{phys.dbx}[2019/12/03 v1.1b biblatex database model extension]
\DeclareDatamodelFields[type=field, datatype=literal]{collaboration}
diff --git a/macros/latex/contrib/bookmark/README.md b/macros/latex/contrib/bookmark/README.md
new file mode 100644
index 0000000000..d4437f18fc
--- /dev/null
+++ b/macros/latex/contrib/bookmark/README.md
@@ -0,0 +1,12 @@
+# bookmarks
+
+bookmarks package for LaTeX
+
+
+This package implements a new bookmark (outline) organization for
+package hyperref. Bookmark properties such
+as style and color can now be set. Other action types
+are available (URI, GoToR, Named). The bookmarks are
+generated in the first compile run.
+
+Package hyperref uses two runs.
diff --git a/macros/latex/contrib/oberdiek/bookmark.dtx b/macros/latex/contrib/bookmark/bookmark.dtx
index 7d9c9c1eec..49ed2e897d 100644
--- a/macros/latex/contrib/oberdiek/bookmark.dtx
+++ b/macros/latex/contrib/bookmark/bookmark.dtx
@@ -1,13 +1,13 @@
% \iffalse meta-comment
%
% File: bookmark.dtx
-% Version: 2019/06/04 v1.27
+% Version: 2019/12/03 v1.28
% Info: PDF bookmarks
%
% Copyright (C)
% 2007-2011 Heiko Oberdiek
% 2016-2019 Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/bookmark/issues
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -23,7 +23,7 @@
%
% The Current Maintainers of this work are
% Heiko Oberdiek and the Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/bookmark/issues
%
% This work consists of the main source file bookmark.dtx
% and the derived files
@@ -33,8 +33,8 @@
% bookmark-example.tex.
%
% Distribution:
-% CTAN:macros/latex/contrib/oberdiek/bookmark.dtx
-% CTAN:macros/latex/contrib/oberdiek/bookmark.pdf
+% CTAN:macros/latex/contrib/bookmark/bookmark.dtx
+% CTAN:macros/latex/contrib/bookmark/bookmark.pdf
%
% Unpacking:
% (a) If bookmark.ins is present:
@@ -63,16 +63,16 @@
% pdflatex bookmark.dtx
%
% Installation:
-% TDS:tex/latex/oberdiek/bookmark.sty
-% TDS:tex/latex/oberdiek/bkm-dvipdfm.def
-% TDS:tex/latex/oberdiek/bkm-dvips.def
-% TDS:tex/latex/oberdiek/bkm-dvipsone.def
-% TDS:tex/latex/oberdiek/bkm-textures.def
-% TDS:tex/latex/oberdiek/bkm-pdftex.def
-% TDS:tex/latex/oberdiek/bkm-vtex.def
-% TDS:doc/latex/oberdiek/bookmark.pdf
-% TDS:doc/latex/oberdiek/bookmark-example.tex
-% TDS:source/latex/oberdiek/bookmark.dtx
+% TDS:tex/latex/bookmark/bookmark.sty
+% TDS:tex/latex/bookmark/bkm-dvipdfm.def
+% TDS:tex/latex/bookmark/bkm-dvips.def
+% TDS:tex/latex/bookmark/bkm-dvipsone.def
+% TDS:tex/latex/bookmark/bkm-textures.def
+% TDS:tex/latex/bookmark/bkm-pdftex.def
+% TDS:tex/latex/bookmark/bkm-vtex.def
+% TDS:doc/latex/bookmark/bookmark.pdf
+% TDS:doc/latex/bookmark/bookmark-example.tex
+% TDS:source/latex/bookmark/bookmark.dtx
%
%<*ignore>
\begingroup
@@ -89,7 +89,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: bookmark 2019/06/04 v1.27 PDF bookmarks (HO)}
+\Msg{* Package: bookmark 2019/12/03 v1.28 PDF bookmarks (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -101,7 +101,7 @@
This is a generated file.
Project: bookmark
-Version: 2019/06/04 v1.27
+Version: 2019/12/03 v1.28
Copyright (C)
2007-2011 Heiko Oberdiek
@@ -121,7 +121,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are
Heiko Oberdiek and the Oberdiek Package Support Group
-https://github.com/ho-tex/oberdiek/issues
+https://github.com/ho-tex/bookmark/issues
This work consists of the main source file bookmark.dtx
@@ -137,7 +137,7 @@ and the derived files
\generate{%
\file{bookmark.ins}{\from{bookmark.dtx}{install}}%
\file{bookmark.drv}{\from{bookmark.dtx}{driver}}%
- \usedir{tex/latex/oberdiek}%
+ \usedir{tex/latex/bookmark}%
\file{bookmark.sty}{\from{bookmark.dtx}{package}}%
\file{bkm-dvipdfm.def}{\from{bookmark.dtx}{dvipdfm}}%
\file{bkm-dvips.def}{\from{bookmark.dtx}{dvips,pdfmark}}%
@@ -145,12 +145,8 @@ and the derived files
\file{bkm-textures.def}{\from{bookmark.dtx}{textures,pdfmark}}%
\file{bkm-pdftex.def}{\from{bookmark.dtx}{pdftex}}%
\file{bkm-vtex.def}{\from{bookmark.dtx}{vtex}}%
- \usedir{doc/latex/oberdiek}%
+ \usedir{doc/latex/bookmark}%
\file{bookmark-example.tex}{\from{bookmark.dtx}{example}}%
- \nopreamble
- \nopostamble
-% \usedir{source/latex/oberdiek/catalogue}%
-% \file{bookmark.xml}{\from{bookmark.dtx}{catalogue}}%
}
\catcode32=13\relax% active space
@@ -179,7 +175,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bookmark.drv}%
- [2019/06/04 v1.27 PDF bookmarks (HO)]%
+ [2019/12/03 v1.28 PDF bookmarks (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -189,28 +185,13 @@ and the derived files
% \fi
%
%
-% \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
-% Lower-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
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
%
% \GetFileInfo{bookmark.drv}
%
% \title{The \xpackage{bookmark} package}
-% \date{2019/06/04 v1.27}
+% \date{2019/12/03 v1.28}
% \author{Heiko Oberdiek\thanks
-% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}}
+% {Please report any issues at \url{https://github.com/ho-tex/bookmark/issues}}}
%
% \maketitle
%
@@ -668,7 +649,7 @@ and the derived files
open,
openlevel=2,
atend
-]{bookmark}[2019/06/04]
+]{bookmark}[2019/12/03]
\bookmarksetup{color=blue}
@@ -771,7 +752,7 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{bookmark}%
- [2019/06/04 v1.27 PDF bookmarks (HO)]%
+ [2019/12/03 v1.28 PDF bookmarks (HO)]%
% \end{macrocode}
%
% \subsubsection{Requirements}
@@ -803,9 +784,6 @@ and the derived files
%
% \paragraph{Escape features of \hologo{pdfTeX}.}
%
-% \begin{macrocode}
-\RequirePackage{pdfescape}[2007/03/20]
-% \end{macrocode}
% \begin{macro}{\BKM@EscapeName}
% \begin{macrocode}
\def\BKM@EscapeName#1{%
@@ -846,19 +824,9 @@ and the derived files
%
% \paragraph{Packages.}
%
+% Don't load packages loaded by xpackage{hyperref}
% \begin{macrocode}
-\RequirePackage{ifpdf}[2009/04/10]
-\RequirePackage{ifxetex}
-\RequirePackage{ifvtex}[2008/11/04]
-\RequirePackage{ifluatex}[2010/03/01]
-\RequirePackage{pdftexcmds}[2010/11/04]
\RequirePackage{hyperref}[2010/06/18]
-\RequirePackage{auxhook}[2007/04/06]
-\RequirePackage{kvsetkeys}[2010/03/01]
-\RequirePackage{kvoptions}[2009/08/13]
-\RequirePackage{hycolor}[2008/09/08]
-\RequirePackage{bitset}[2011/01/30]
-\RequirePackage{ltxcmds}[2011/04/14]
% \end{macrocode}
%
% \subsubsection{Package options}
@@ -1899,7 +1867,7 @@ and the derived files
%<*dvipdfm>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-dvipdfm.def}%
- [2019/06/04 v1.27 bookmark driver for dvipdfm (HO)]%
+ [2019/12/03 v1.28 bookmark driver for dvipdfm (HO)]%
% \end{macrocode}
%
% \begin{macro}{\BKM@id}
@@ -2074,7 +2042,7 @@ and the derived files
%<*vtex>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-vtex.def}%
- [2019/06/04 v1.27 bookmark driver for VTeX (HO)]%
+ [2019/12/03 v1.28 bookmark driver for VTeX (HO)]%
% \end{macrocode}
%
% \begin{macrocode}
@@ -2405,7 +2373,7 @@ and the derived files
%<*pdftex>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-pdftex.def}%
- [2019/06/04 v1.27 bookmark driver for pdfTeX (HO)]%
+ [2019/12/03 v1.28 bookmark driver for pdfTeX (HO)]%
% \end{macrocode}
%
% \begin{macro}{\BKM@DO@entry}
@@ -2561,7 +2529,7 @@ and the derived files
%<*dvips>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-dvips.def}%
- [2019/06/04 v1.27 bookmark driver for dvips (HO)]%
+ [2019/12/03 v1.28 bookmark driver for dvips (HO)]%
% \end{macrocode}
% \begin{macro}{\BKM@PSHeaderFile}
% \begin{macrocode}
@@ -2580,7 +2548,7 @@ and the derived files
%<*dvipsone>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-dvipsone.def}%
- [2019/06/04 v1.27 bookmark driver for dvipsone (HO)]%
+ [2019/12/03 v1.28 bookmark driver for dvipsone (HO)]%
% \end{macrocode}
% \begin{macro}{\BKM@PSHeaderFile}
% \begin{macrocode}
@@ -2599,7 +2567,7 @@ and the derived files
%<*textures>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{bkm-textures.def}%
- [2019/06/04 v1.27 bookmark driver for textures (HO)]%
+ [2019/12/03 v1.28 bookmark driver for textures (HO)]%
% \end{macrocode}
% \begin{macro}{\BKM@PSHeaderFile}
% \begin{macrocode}
@@ -3086,17 +3054,17 @@ and the derived files
% \paragraph{Package.} This package is available on
% CTAN\footnote{\CTANpkg{bookmark}}:
% \begin{description}
-% \item[\CTAN{macros/latex/contrib/oberdiek/bookmark.dtx}] The source file.
-% \item[\CTAN{macros/latex/contrib/oberdiek/bookmark.pdf}] Documentation.
+% \item[\CTAN{macros/latex/contrib/bookmark/bookmark.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/bookmark/bookmark.pdf}] Documentation.
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `oberdiek'
+% \paragraph{Bundle.} All the packages of the bundle `bookmark'
% are also available in a TDS compliant ZIP archive. There
% the packages are already unpacked and the documentation files
% are generated. The files and directories obey the TDS standard.
% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}]
+% \item[\CTANinstall{install/macros/latex/contrib/bookmark.tds.zip}]
% \end{description}
% \emph{TDS} refers to the standard ``A Directory Structure
% for \TeX\ Files'' (\CTANpkg{tds}). Directories
@@ -3104,11 +3072,11 @@ and the derived files
%
% \subsection{Bundle installation}
%
-% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the
+% \paragraph{Unpacking.} Unpack the \xfile{bookmark.tds.zip} in the
% TDS tree (also known as \xfile{texmf} tree) of your choice.
% Example (linux):
% \begin{quote}
-% |unzip oberdiek.tds.zip -d ~/texmf|
+% |unzip bookmark.tds.zip -d ~/texmf|
% \end{quote}
%
% \subsection{Package installation}
@@ -3126,16 +3094,16 @@ and the derived files
% \begin{quote}
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
-% bookmark.sty & tex/latex/oberdiek/bookmark.sty\\
-% bkm-dvipdfm.def & tex/latex/oberdiek/bkm-dvipdfm.def\\
-% bkm-dvips.def & tex/latex/oberdiek/bkm-dvips.def\\
-% bkm-dvipsone.def & tex/latex/oberdiek/bkm-dvipsone.def\\
-% bkm-textures.def & tex/latex/oberdiek/bkm-textures.def\\
-% bkm-pdftex.def & tex/latex/oberdiek/bkm-pdftex.def\\
-% bkm-vtex.def & tex/latex/oberdiek/bkm-vtex.def\\
-% bookmark.pdf & doc/latex/oberdiek/bookmark.pdf\\
-% bookmark-example.tex & doc/latex/oberdiek/bookmark-example.tex\\
-% bookmark.dtx & source/latex/oberdiek/bookmark.dtx\\
+% bookmark.sty & tex/latex/bookmark/bookmark.sty\\
+% bkm-dvipdfm.def & tex/latex/bookmark/bkm-dvipdfm.def\\
+% bkm-dvips.def & tex/latex/bookmark/bkm-dvips.def\\
+% bkm-dvipsone.def & tex/latex/bookmark/bkm-dvipsone.def\\
+% bkm-textures.def & tex/latex/bookmark/bkm-textures.def\\
+% bkm-pdftex.def & tex/latex/bookmark/bkm-pdftex.def\\
+% bkm-vtex.def & tex/latex/bookmark/bkm-vtex.def\\
+% bookmark.pdf & doc/latex/bookmark/bookmark.pdf\\
+% bookmark-example.tex & doc/latex/bookmark/bookmark-example.tex\\
+% bookmark.dtx & source/latex/bookmark/bookmark.dtx\\
% \end{tabular}^^A
% }^^A
% \sbox0{\t}^^A
@@ -3463,6 +3431,12 @@ and the derived files
% unknown style options are ignored (issue 67)
% \end{Version}
+% \begin{Version}{2019/12/03 v1.28}
+% \item
+% Documentation updates.
+% \item adjust package loading (all required packages already loade
+% by \xpackage{hyperref}).
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/bookmark/bookmark.pdf b/macros/latex/contrib/bookmark/bookmark.pdf
new file mode 100644
index 0000000000..e4fbe0984c
--- /dev/null
+++ b/macros/latex/contrib/bookmark/bookmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/embedfile/README.md b/macros/latex/contrib/embedfile/README.md
new file mode 100644
index 0000000000..d410d5f8c1
--- /dev/null
+++ b/macros/latex/contrib/embedfile/README.md
@@ -0,0 +1,7 @@
+# embedfile
+
+embedfile package for LaTeX
+
+
+This package embeds files to a PDF document.
+Currently the only supported drivers are pdfTeX and LuaTeX.
diff --git a/macros/latex/contrib/oberdiek/embedfile.dtx b/macros/latex/contrib/embedfile/embedfile.dtx
index f88e4bf2ae..1fb0ed84b6 100644
--- a/macros/latex/contrib/oberdiek/embedfile.dtx
+++ b/macros/latex/contrib/embedfile/embedfile.dtx
@@ -1,13 +1,13 @@
% \iffalse meta-comment
%
% File: embedfile.dtx
-% Version: 2018/11/01 v2.8
+% Version: 2019/12/03 v2.9
% Info: Embed files into PDF
%
% Copyright (C)
% 2006-2011 Heiko Oberdiek
% 2016-2019 Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/embedfile/issues
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -23,7 +23,7 @@
%
% The Current Maintainers of this work are
% Heiko Oberdiek and the Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/embedfile/issues
%
% The Base Interpreter refers to any `TeX-Format',
% because some files are installed in TDS:tex/generic//.
@@ -37,8 +37,8 @@
% embedfile-test4.tex.
%
% Distribution:
-% CTAN:macros/latex/contrib/oberdiek/embedfile.dtx
-% CTAN:macros/latex/contrib/oberdiek/embedfile.pdf
+% CTAN:macros/latex/contrib/embedfile/embedfile.dtx
+% CTAN:macros/latex/contrib/embedfile/embedfile.pdf
%
% Unpacking:
% (a) If embedfile.ins is present:
@@ -67,16 +67,12 @@
% pdflatex embedfile.dtx
%
% Installation:
-% TDS:tex/generic/oberdiek/embedfile.sty
-% TDS:tex/generic/oberdiek/dtx-attach.sty
-% TDS:doc/latex/oberdiek/embedfile.pdf
-% TDS:doc/latex/oberdiek/embedfile-example-plain.tex
-% TDS:doc/latex/oberdiek/embedfile-example-collection.tex
-% TDS:doc/latex/oberdiek/test/embedfile-test1.tex
-% TDS:doc/latex/oberdiek/test/embedfile-test2.tex
-% TDS:doc/latex/oberdiek/test/embedfile-test3.tex
-% TDS:doc/latex/oberdiek/test/embedfile-test4.tex
-% TDS:source/latex/oberdiek/embedfile.dtx
+% TDS:tex/generic/embedfile/embedfile.sty
+% TDS:tex/generic/embedfile/dtx-attach.sty
+% TDS:doc/latex/embedfile/embedfile.pdf
+% TDS:doc/latex/embedfile/embedfile-example-plain.tex
+% TDS:doc/latex/embedfile/embedfile-example-collection.tex
+% TDS:source/latex/embedfile/embedfile.dtx
%
%<*ignore>
\begingroup
@@ -93,7 +89,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: embedfile 2018/11/01 v2.8 Embed files into PDF (HO)}
+\Msg{* Package: embedfile 2019/12/03 v2.9 Embed files into PDF (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -105,7 +101,7 @@
This is a generated file.
Project: embedfile
-Version: 2018/11/01 v2.8
+Version: 2019/12/03 v2.9
Copyright (C)
2006-2011 Heiko Oberdiek
@@ -125,7 +121,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are
Heiko Oberdiek and the Oberdiek Package Support Group
-https://github.com/ho-tex/oberdiek/issues
+https://github.com/ho-tex/embedfile/issues
The Base Interpreter refers to any `TeX-Format',
@@ -145,22 +141,18 @@ and the derived files
\generate{%
\file{embedfile.ins}{\from{embedfile.dtx}{install}}%
\file{embedfile.drv}{\from{embedfile.dtx}{driver}}%
- \usedir{tex/generic/oberdiek}%
+ \usedir{tex/generic/embedfile}%
\file{embedfile.sty}{\from{embedfile.dtx}{package}}%
- \usedir{tex/latex/oberdiek}%
+ \usedir{tex/latex/embedfile}%
\file{dtx-attach.sty}{\from{embedfile.dtx}{dtxattach}}%
- \usedir{doc/latex/oberdiek}%
+ \usedir{doc/latex/embedfile}%
\file{embedfile-example-plain.tex}{\from{embedfile.dtx}{exampleplain}}%
\file{embedfile-example-collection.tex}{\from{embedfile.dtx}{examplecollection}}%
-% \usedir{doc/latex/oberdiek/test}%
+% \usedir{doc/latex/embedfile/test}%
% \file{embedfile-test1.tex}{\from{embedfile.dtx}{test1}}%
% \file{embedfile-test2.tex}{\from{embedfile.dtx}{test2}}%
% \file{embedfile-test3.tex}{\from{embedfile.dtx}{test3}}%
% \file{embedfile-test4.tex}{\from{embedfile.dtx}{test4}}%
- \nopreamble
- \nopostamble
-% \usedir{source/latex/oberdiek/catalogue}%
-% \file{embedfile.xml}{\from{embedfile.dtx}{catalogue}}%
}
\catcode32=13\relax% active space
@@ -187,7 +179,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{embedfile.drv}%
- [2018/11/01 v2.8 Embed files into PDF (HO)]%
+ [2019/12/03 v2.9 Embed files into PDF (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -197,28 +189,13 @@ and the derived files
% \fi
%
%
-% \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
-% Lower-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
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
%
% \GetFileInfo{embedfile.drv}
%
% \title{The \xpackage{embedfile} package}
-% \date{2018/11/01 v2.8}
+% \date{2019/12/03 v2.9}
% \author{Heiko Oberdiek\thanks
-% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}}
+% {Please report any issues at \url{https://github.com/ho-tex/embedfile/issues}}}
%
% \maketitle
%
@@ -575,7 +552,7 @@ This example document contains three embedded files.
\usepackage[bookmarks=false]{hyperref}
% provides \pdfstringdef that is then used by `title' and
% other keys.
-\usepackage{embedfile}[2018/11/01]
+\usepackage{embedfile}[2019/12/03]
\embedfilesetup{
view=details,
initialfile=embedfile.pdf
@@ -643,8 +620,8 @@ You need Acrobat Reader 8 or higher.
%<*dtxattach>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dtx-attach}
- [2018/11/01 v2.8 Embed \string\jobname.dtx (HO)]%
-\RequirePackage{embedfile}[2018/11/01]
+ [2019/12/03 v2.9 Embed \string\jobname.dtx (HO)]%
+\RequirePackage{embedfile}[2019/12/03]
\embedfile[%
stringmethod=escape,%
mimetype=plain/text,%
@@ -734,7 +711,7 @@ You need Acrobat Reader 8 or higher.
\fi
\expandafter\x\csname ver@embedfile.sty\endcsname
\ProvidesPackage{embedfile}%
- [2018/11/01 v2.8 Embed files into PDF (HO)]%
+ [2019/12/03 v2.9 Embed files into PDF (HO)]%
% \end{macrocode}
%
% \subsection{Catcodes}
@@ -817,15 +794,16 @@ You need Acrobat Reader 8 or higher.
\protected\def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
\protected\def\pdfnames {\pdfextension names }
\protected\def\pdfobj {\pdfextension obj }
+ \protected\def\pdfcatalog {\pdfextension catalog }
\let\pdfoutput \outputmode
\fi
% \end{macrocode}
%
% \subsection{Check for recent \pdfTeX\ in PDF mode}
%
-% Load package \xpackage{ifpdf} and check mode.
+% Load package \xpackage{iftex} and check mode.
% \begin{macrocode}
-\EmFi@RequirePackage{ifpdf}[2007/09/09]
+\EmFi@RequirePackage{iftex}[2019/11/07]
\ifpdf
\else
\EmFi@Error{%
@@ -909,6 +887,11 @@ You need Acrobat Reader 8 or higher.
\EmFi@temp{desc}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\EmFi@S@afrelationship}
+% \begin{macrocode}
+\EmFi@temp{afrelationship}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\EmFi@S@moddate}
% \begin{macrocode}
\EmFi@temp{moddate}
@@ -1034,6 +1017,10 @@ You need Acrobat Reader 8 or higher.
% \begin{macrocode}
\EmFi@DefineKey{desc}{}
% \end{macrocode}
+% AFRelationship (mandatory for PDF/A-3 compliance).
+% \begin{macrocode}
+\EmFi@DefineKey{afrelationship}{}
+% \end{macrocode}
% Method for converting text to PDF strings.
% \begin{macrocode}
\EmFi@DefineKey{stringmethod}{%
@@ -1195,6 +1182,7 @@ You need Acrobat Reader 8 or higher.
\else\ifx\EmFi@type\EmFi@S@number N%
\else\ifx\EmFi@type\EmFi@S@file F%
\else\ifx\EmFi@type\EmFi@S@desc Desc%
+ \else\ifx\EmFi@type\EmFi@S@afrelationship AFRelationship%
\else\ifx\EmFi@type\EmFi@S@moddate ModDate%
\else\ifx\EmFi@type\EmFi@S@creationdate CreationDate%
\else\ifx\EmFi@type\EmFi@S@size Size%
@@ -1307,6 +1295,8 @@ You need Acrobat Reader 8 or higher.
\let\EmFi@type\EmFi@temp
\else\ifx\EmFi@temp\EmFi@S@desc
\let\EmFi@type\EmFi@temp
+ \else\ifx\EmFi@temp\EmFi@S@afrelationship
+ \let\EmFi@type\EmFi@temp
\else\ifx\EmFi@temp\EmFi@S@moddate
\let\EmFi@type\EmFi@temp
\else\ifx\EmFi@temp\EmFi@S@creationdate
@@ -1317,9 +1307,9 @@ You need Acrobat Reader 8 or higher.
\EmFi@Error{%
Unknown type `\EmFi@temp'.\MessageBreak
Supported types: `text', `date', `number', `file',\MessageBreak
- `desc', `moddate', `creationdate', `size'%
+ `desc', `afrelationship', `moddate', `creationdate', `size'%
}%
- \fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi
}
% \end{macrocode}
% \begin{macrocode}
@@ -1419,6 +1409,11 @@ You need Acrobat Reader 8 or higher.
\else
\EmFi@convert\EmFi@desc\EmFi@@desc
\fi
+ \ifx\EmFi@afrelationship\ltx@empty
+ \let\EmFi@@afrelationship\ltx@empty
+ \else
+ \EmFi@convert\EmFi@afrelationship\EmFi@@afrelationship
+ \fi
\ifEmFi@item
\let\do\EmFi@do
\immediate\pdfobj{%
@@ -1457,6 +1452,10 @@ You need Acrobat Reader 8 or higher.
\else
/Desc(\EmFi@@desc)%
\fi
+ \ifx\EmFi@@afrelationship\ltx@empty
+ \else
+ /AFRelationship\EmFi@@afrelationship%
+ \fi
/EF<<%
/F \the\pdflastobj\ltx@space 0 R%
>>%
@@ -1581,6 +1580,17 @@ You need Acrobat Reader 8 or higher.
/EmbeddedFiles \the\pdflastobj\ltx@space 0 R%
}%
\endgroup
+ \begingroup
+ \def\do##1##2{%
+ \ltx@space##2%
+ }%
+ \immediate\pdfobj{%
+ [\EmFi@list]%
+ }%
+ \pdfcatalog{%
+ /AF \the\pdflastobj\ltx@space 0 R%
+ }%
+ \endgroup
% \end{macrocode}
% Write collection objects.
% \begin{macrocode}
@@ -1680,196 +1690,6 @@ You need Acrobat Reader 8 or higher.
\EmFi@AtEnd%
%</package>
% \end{macrocode}
-%
-% \section{Test}
-%
-% \subsection{Catcode checks for loading}
-%
-% \begin{macrocode}
-%<*test1>
-% \end{macrocode}
-% \begin{macrocode}
-\catcode`\{=1 %
-\catcode`\}=2 %
-\catcode`\#=6 %
-\catcode`\@=11 %
-\expandafter\ifx\csname count@\endcsname\relax
- \countdef\count@=255 %
-\fi
-\expandafter\ifx\csname @gobble\endcsname\relax
- \long\def\@gobble#1{}%
-\fi
-\expandafter\ifx\csname @firstofone\endcsname\relax
- \long\def\@firstofone#1{#1}%
-\fi
-\expandafter\ifx\csname loop\endcsname\relax
- \expandafter\@firstofone
-\else
- \expandafter\@gobble
-\fi
-{%
- \def\loop#1\repeat{%
- \def\body{#1}%
- \iterate
- }%
- \def\iterate{%
- \body
- \let\next\iterate
- \else
- \let\next\relax
- \fi
- \next
- }%
- \let\repeat=\fi
-}%
-\def\RestoreCatcodes{}
-\count@=0 %
-\loop
- \edef\RestoreCatcodes{%
- \RestoreCatcodes
- \catcode\the\count@=\the\catcode\count@\relax
- }%
-\ifnum\count@<255 %
- \advance\count@ 1 %
-\repeat
-
-\def\RangeCatcodeInvalid#1#2{%
- \count@=#1\relax
- \loop
- \catcode\count@=15 %
- \ifnum\count@<#2\relax
- \advance\count@ 1 %
- \repeat
-}
-\def\RangeCatcodeCheck#1#2#3{%
- \count@=#1\relax
- \loop
- \ifnum#3=\catcode\count@
- \else
- \errmessage{%
- Character \the\count@\space
- with wrong catcode \the\catcode\count@\space
- instead of \number#3%
- }%
- \fi
- \ifnum\count@<#2\relax
- \advance\count@ 1 %
- \repeat
-}
-\def\space{ }
-\expandafter\ifx\csname LoadCommand\endcsname\relax
- \def\LoadCommand{\input embedfile.sty\relax}%
-\fi
-\def\Test{%
- \RangeCatcodeInvalid{0}{47}%
- \RangeCatcodeInvalid{58}{64}%
- \RangeCatcodeInvalid{91}{96}%
- \RangeCatcodeInvalid{123}{255}%
- \catcode`\@=12 %
- \catcode`\\=0 %
- \catcode`\%=14 %
- \LoadCommand
- \RangeCatcodeCheck{0}{36}{15}%
- \RangeCatcodeCheck{37}{37}{14}%
- \RangeCatcodeCheck{38}{47}{15}%
- \RangeCatcodeCheck{48}{57}{12}%
- \RangeCatcodeCheck{58}{63}{15}%
- \RangeCatcodeCheck{64}{64}{12}%
- \RangeCatcodeCheck{65}{90}{11}%
- \RangeCatcodeCheck{91}{91}{15}%
- \RangeCatcodeCheck{92}{92}{0}%
- \RangeCatcodeCheck{93}{96}{15}%
- \RangeCatcodeCheck{97}{122}{11}%
- \RangeCatcodeCheck{123}{255}{15}%
- \RestoreCatcodes
-}
-\Test
-\csname @@end\endcsname
-\end
-% \end{macrocode}
-% \begin{macrocode}
-%</test1>
-% \end{macrocode}
-%
-% \subsection{Simple test}
-%
-% \begin{macrocode}
-%<*test2>
-\input embedfile.sty\relax
-\embedfile[%
- stringmethod=escape,%
- mimetype=plain/text,%
- desc={LaTeX docstrip source archive for package `embedfile'},%
- id={embedfile.dtx}%
-]{embedfile.dtx}
-\nopagenumbers
-Test (plain-\TeX): {\tt embedfile.dtx} should be embedded.%
-
-\def\Test#1{%
- \par
- \embedfileifobjectexists{embedfile.dtx}{#1}{%
- Object #1 (embedfile.dtx): %
- \embedfilegetobject{embedfile.dtx}{#1}%
- }{%
- \errmessage{Missing object #1 (embedfile.dtx)}%
- }%
-}
-\Test{EmbeddedFile}
-\Test{Filespec}
-\embedfilefinish
-\bye
-%</test2>
-% \end{macrocode}
-% \begin{macrocode}
-%<*test3>
-\NeedsTeXFormat{LaTeX2e}
-\let\SavedJobname\jobname
-\def\jobname{embedfile}
-\RequirePackage{dtx-attach}[2018/11/01]
-\let\jobname\SavedJobname
-\documentclass{minimal}
-\begin{document}
- Test (\LaTeX): \texttt{embedfile.dtx} should be embedded.%
-\end{document}
-%</test3>
-% \end{macrocode}
-%
-% \subsection{Test for \iniTeX}
-%
-% \begin{macrocode}
-%<*test4>
-\catcode`\{=1 %
-\catcode`\}=2 %
-\input ifluatex.sty %
-\ifluatex
- \directlua{%
- tex.enableprimitives('', {%
- 'pdflastobj',%
- 'pdfnames',%
- 'pdfobj',%
- 'pdfoutput'%
- })%
- }%
- \ifx\pdfextension\undefined\else
- \protected\def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
- \protected\def\pdfnames {\pdfextension names }
- \protected\def\pdfobj {\pdfextension obj }
- \let\pdfoutput \outputmode
- \fi
-\fi
-\pdfoutput=1 %
-\input embedfile.sty %
-\shipout\hbox{}
-\embedfile[%
- stringmethod=escape,%
- mimetype=plain/text,%
- desc={iniTeX source},%
-]{\jobname.tex}
-\embedfilefinish
-\end
-%</test4>
-% \end{macrocode}
-%
% \section{Installation}
%
% \subsection{Download}
@@ -1877,17 +1697,17 @@ Test (plain-\TeX): {\tt embedfile.dtx} should be embedded.%
% \paragraph{Package.} This package is available on
% CTAN\footnote{\CTANpkg{embedfile}}:
% \begin{description}
-% \item[\CTAN{macros/latex/contrib/oberdiek/embedfile.dtx}] The source file.
-% \item[\CTAN{macros/latex/contrib/oberdiek/embedfile.pdf}] Documentation.
+% \item[\CTAN{macros/latex/contrib/embedfile/embedfile.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/embedfile/embedfile.pdf}] Documentation.
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `oberdiek'
+% \paragraph{Bundle.} All the packages of the bundle `embedfile'
% are also available in a TDS compliant ZIP archive. There
% the packages are already unpacked and the documentation files
% are generated. The files and directories obey the TDS standard.
% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}]
+% \item[\CTANinstall{install/macros/latex/contrib/embedfile.tds.zip}]
% \end{description}
% \emph{TDS} refers to the standard ``A Directory Structure
% for \TeX\ Files'' (\CTANpkg{tds}). Directories
@@ -1895,11 +1715,11 @@ Test (plain-\TeX): {\tt embedfile.dtx} should be embedded.%
%
% \subsection{Bundle installation}
%
-% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the
+% \paragraph{Unpacking.} Unpack the \xfile{embedfile.tds.zip} in the
% TDS tree (also known as \xfile{texmf} tree) of your choice.
% Example (linux):
% \begin{quote}
-% |unzip oberdiek.tds.zip -d ~/texmf|
+% |unzip embedfile.tds.zip -d ~/texmf|
% \end{quote}
%
% \subsection{Package installation}
@@ -1917,16 +1737,12 @@ Test (plain-\TeX): {\tt embedfile.dtx} should be embedded.%
% \begin{quote}
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
-% embedfile.sty & tex/generic/oberdiek/embedfile.sty\\
-% dtx-attach.sty & tex/generic/oberdiek/dtx-attach.sty\\
-% embedfile.pdf & doc/latex/oberdiek/embedfile.pdf\\
-% embedfile-example-plain.tex & doc/latex/oberdiek/embedfile-example-plain.tex\\
-% embedfile-example-collection.tex & doc/latex/oberdiek/embedfile-example-collection.tex\\
-% test/embedfile-test1.tex & doc/latex/oberdiek/test/embedfile-test1.tex\\
-% test/embedfile-test2.tex & doc/latex/oberdiek/test/embedfile-test2.tex\\
-% test/embedfile-test3.tex & doc/latex/oberdiek/test/embedfile-test3.tex\\
-% test/embedfile-test4.tex & doc/latex/oberdiek/test/embedfile-test4.tex\\
-% embedfile.dtx & source/latex/oberdiek/embedfile.dtx\\
+% embedfile.sty & tex/generic/embedfile/embedfile.sty\\
+% dtx-attach.sty & tex/generic/embedfile/dtx-attach.sty\\
+% embedfile.pdf & doc/latex/embedfile/embedfile.pdf\\
+% embedfile-example-plain.tex & doc/latex/embedfile/embedfile-example-plain.tex\\
+% embedfile-example-collection.tex & doc/latex/embedfile/embedfile-example-collection.tex\\
+% embedfile.dtx & source/latex/embedfile/embedfile.dtx\\
% \end{tabular}^^A
% }^^A
% \sbox0{\t}^^A
@@ -2045,7 +1861,7 @@ Test (plain-\TeX): {\tt embedfile.dtx} should be embedded.%
% \bibitem{attachfile2}
% Heiko Oberdiek: \textit{The \xpackage{attachfile2} package};
% 2006/08/16 v2.2;
-% \CTAN{macros/latex/contrib/attachfile2/attachfile2.pdf}.
+% \CTANpkg{attachfile2}.
%
% \bibitem{pdfspec}
% Adobe Systems Incorporated:
@@ -2133,6 +1949,14 @@ Test (plain-\TeX): {\tt embedfile.dtx} should be embedded.%
% \item
% Remove luatex85 package depenency.
% \end{Version}
+% \begin{Version}{2019/12/03 v2.9}
+% \item
+% add \verb|/AF| and \verb|/AFrelationship| keys (Andreas Karrenbauer)
+% \item
+% add \verb|\pdfcatalog| emulation for Lua\TeX.
+% \item
+% update to use \xpackage{iftex}
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/embedfile/embedfile.pdf b/macros/latex/contrib/embedfile/embedfile.pdf
new file mode 100644
index 0000000000..a91594eaf5
--- /dev/null
+++ b/macros/latex/contrib/embedfile/embedfile.pdf
Binary files differ
diff --git a/macros/latex/contrib/knowledge/README.md b/macros/latex/contrib/knowledge/README.md
index a5bc16beaa..81a9ddf7f8 100644
--- a/macros/latex/contrib/knowledge/README.md
+++ b/macros/latex/contrib/knowledge/README.md
@@ -3,8 +3,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.19
- date: 2019/11/19
+ version: v1.20
+ date: 2019/12/03
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://www.irif.fr/~colcombe/knowledge_en.html
diff --git a/macros/latex/contrib/knowledge/knowledge-code.dtx b/macros/latex/contrib/knowledge/knowledge-code.dtx
index 40ea1c6aa0..d97ed2143a 100644
--- a/macros/latex/contrib/knowledge/knowledge-code.dtx
+++ b/macros/latex/contrib/knowledge/knowledge-code.dtx
@@ -23,7 +23,7 @@
%
% \iffalse
%<head>\usepackage{expl3}
-%<head>\ProvidesExplPackage{knowledge}{2019/11/19}{1.19}{}
+%<head>\ProvidesExplPackage{knowledge}{2019/12/03}{1.20}{}
%<*driver>
\def\knowledgecode{active}
\input{knowledge.tex}
@@ -52,6 +52,7 @@
% \changes{1.17}{2019/10/03}{improvements} %
% \changes{1.18}{2019/10/03}{bug fix/improvement} %
% \changes{1.19}{2019/11/19}{bug fix} %
+% \changes{1.20}{2019/12/03}{bug fix} %
% \GetFileInfo{knowledge.sty} %
% \DoNotIndex{}
%
@@ -71,8 +72,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.19
- date: 2019/11/19
+ version: v1.20
+ date: 2019/12/03
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://www.irif.fr/~colcombe/knowledge_en.html
@@ -171,6 +172,16 @@ Content of the file knowledge-sources.zip:
{\expandafter\tl_head:n\expandafter{\string\escape}}
% \end{macrocode}
%
+% \begin{macrocode}
+\cs_new:Nn\debug_vars:nn{
+ \iow_term:n{---~{#1}}
+ \tl_map_inline:nn{#2}
+ {\iow_term:x{\space\space\exp_not:N##1=\space\tl_if_exist:NTF##1
+ {{\exp_not:V##1}}
+ {undefined}}}
+}
+% \end{macrocode}
+%
% \subsection{Messages of the package}
%
%\AP First, some generic messages that are produced using \csintro{\knowledge_info:n},
@@ -204,20 +215,20 @@ Content of the file knowledge-sources.zip:
% \csintro{knowledge~unknown~in~scope}, \csintro{knowledge~unknown~label}, \csintro{package~required} and \csintro{knowledge~exists}.
% \begin{macrocode}
\msg_new:nnn{ knowledge }{ knowledge~recursion }
- { The~knowledges~are~probably~cyclic,~starting~from~'#1'~(namespace~'#2'),~
+ { The~knowledges~are~probably~cyclic,~starting~from\\<#1>~(namespace~'#2'),~
currently~at~'#3'.}
% \end{macrocode}
% \begin{macrocode}
\msg_new:nnn{ knowledge }{ knowledge~unknown }
- {The~knowledge~'#1'~could~not~be~found~in~scopes~<~#3~>~(namespace~'#2').}
+ {The~knowledge~'#1'~could~not~be~found~in~scopes\\<#3>~(namespace~'#2').}
% \end{macrocode}
% \begin{macrocode}
\msg_new:nnn{ knowledge }{ knowledge~unknown~in~scope }
- {The~knowledge~'#1'~could~not~be~found~in~scope~'#3'~(namespace~'#2').}
+ {The~knowledge~'#1'~could~not~be~found~in~scope\\<#3>~(namespace~'#2').}
% \end{macrocode}
% \begin{macrocode}
\msg_new:nnn{ knowledge }{ knowledge~unknown~label }
- {The~label~'#2'~could~not~be~found~while~searching~for~'#1'.~Possibly~rerun~latex.}
+ {The~label~'#2'~could~not~be~found~while~searching~for:\\<#1>\\Possibly~rerun~latex.}
% \end{macrocode}
% \begin{macrocode}
\msg_new:nnn{ knowledge }{ package~required }
@@ -254,12 +265,12 @@ Content of the file knowledge-sources.zip:
% \end{macrocode}
%\AP We define new the final messages, that are thrown at the end of the compilation as a recap that some problems occured. These are: \csintro{recap~unknown~knowledge}, \csintro{recap~autoref~introduced~twice} and \csintro{recap~autoref~not~introduced}.
% \begin{macrocode}
-\msg_new:nnn{knowledge}{recap~unknown~knowledge}
- {Some~knowledge~are~not~defined.~See~the~'.diagnose'~file~for~more~information.}
-\msg_new:nnn{knowledge}{recap~autoref~introduced~twice}
- {Some~knowledge~is~introduced~twice.~See~the~'.diagnose'~file~for~more~information.}
-\msg_new:nnn{knowledge}{recap~autoref~not~introduced}
- {Some~knowledge~is~used~but~not~introduced.~See~the~'.diagnose'~file~for~more~information.}
+\exp_args:Nnnx\msg_new:nnn{knowledge}{recap~unknown~knowledge}
+ {Some~knowledge~are~not~defined.~See~the~'\c_sys_jobname_str.diagnose'~file~for~more~information.}
+\exp_args:Nnnx\msg_new:nnn{knowledge}{recap~autoref~introduced~twice}
+ {Some~knowledge~is~introduced~twice.~See~the~'\c_sys_jobname_str.diagnose'~file~for~more~information.}
+\exp_args:Nnnx\msg_new:nnn{knowledge}{recap~autoref~not~introduced}
+ {Some~knowledge~is~used~but~not~introduced.~See~the~'\c_sys_jobname_str.diagnose'~file~for~more~information.}
% \end{macrocode}
%
%
@@ -431,11 +442,18 @@ Content of the file knowledge-sources.zip:
\bool_set_false:N\knowledge_configuration_diagnoseline_bool
\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnoseline_bool]{diagnose~line}
% \end{macrocode}
+% Activates or deactivates the help in the "diagnose file".
+% \begin{macrocode}
+\bool_new:N\knowledge_configuration_diagnosehelp_bool
+\bool_set_true:N\knowledge_configuration_diagnosehelp_bool
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnosehelp_bool]{diagnose~help}
+% \end{macrocode}
%
% \begin{macrocode}
-\bool_new:N\knowledge_configuration_barsuggestion_bool
-\bool_gset_false:N\knowledge_configuration_barsuggestion_bool
-\KnowledgeConfigureBooleanOption[\knowledge_configuration_barsuggestion_bool]{bar~suggestion}
+\bool_new:N\knowledge_configuration_diagnosebar_bool
+\bool_gset_true:N\knowledge_configuration_diagnosebar_bool
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnosebar_bool]{bar~suggestion}%backward compatibility
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_diagnosebar_bool]{diagnose~bar}
% \end{macrocode}
%
% \begin{macrocode}
@@ -1189,7 +1207,7 @@ Content of the file knowledge-sources.zip:
{}
}
% \end{macrocode}
-% The command \cs{\knowledge_scope_track_scope:n}
+% \AP The command \cs{\knowledge_scope_track_scope:n}
% is used to set the variable \cs{\knowledge_knowledge_instance_tl}.
% If the argument is a scope name, then it is searched for in the context, and the corresponding "instance" is used.
% Otherwise it is used as a "scopetag"; this "scopetag" being potentially
@@ -1231,14 +1249,14 @@ Content of the file knowledge-sources.zip:
%
% \subsubsection{Scope tags}
%
-% A ""scopetag"" is a name that can be used to identify a family of "instances" that correspond to it.
+% \AP A ""scopetag"" is a name that can be used to identify a family of "instances" that correspond to it.
% It gets to have two variables attached to it:
% \begin{description}
% \itemAP[\cs{\knowledge_scopetag_tl}\texttt{{[TAG]}\_bool}] which tells whether it
% has been officially declared (it is false if it has been used but not declared by a \cs{\knowledgescope}
% or a \cs{\label} command).
% \itemAP[\cs{\knowledge_scopetag_tl}\texttt{{[TAG]}\_seq}] is a sequence of
-% "instances" that are attached to it. It always contains (as soon as created)
+% "instances" that are attached to it. It always contains (as soon as created) \textbf{explicit-scope:}\texttt{TAG}.
% \end{description}
%
% In order to identify scopes, the command~\cs{\knowledgescope} (or \cs{\label} which is overloaded for this purpose).
@@ -1280,7 +1298,7 @@ Content of the file knowledge-sources.zip:
% \AP The command \csintro{\knowledgescope} associates an "instance" to one or more "scopetags":
% \begin{macrocode}
\NewDocumentCommand\knowledgescope{ >{\SplitList{,}}m }{
- \kl_hide_begin:\group_begin:
+ \kl_hide_begin:\group_begin:
\ProcessList{#1}\knowledge_knowledgescope_one:n
\group_end:\kl_hide_end:
}
@@ -1290,8 +1308,7 @@ Content of the file knowledge-sources.zip:
\cs_new:Nn\knowledge_knowledgescope_one:n{
\knowledge_scopetag_declares:n{#1}
\scope_get_labelizable_instance:N\l_tmpb_tl
- \KAuxWriteX*{\exp_not:n{\KAuxNewLinkScopetagInstance}%{\exp_not:n{#1}}% old version
- {#1}{\l_tmpb_tl}}
+ \KAuxWriteX*{\exp_not:N\KAuxNewLinkScopetagInstance{#1}{\l_tmpb_tl}}
}
% \end{macrocode}
%
@@ -1302,10 +1319,11 @@ Content of the file knowledge-sources.zip:
\bool_new:N\knowledge_configuration_label_autoscope_bool
\bool_gset_true:N\knowledge_configuration_label_autoscope_bool
\KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{patch~label}
+\KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{label~scope}
% \end{macrocode}
-% \noindent\AP\csintro{\scopeLabel} implicitly adds a call to \cs{\knowledgescope} (if \cs{\knowledge_configuration_label_autoscope_bool} is set to true), and then calls the original \cs{\label} code.
+% \noindent\AP\csintro{\knowledgelabel} implicitly adds a call to \cs{\knowledgescope} (if \cs{\knowledge_configuration_label_autoscope_bool} is set to true), and then calls the original \cs{\label} code.
% \begin{macrocode}
-\NewDocumentCommand\scopeLabel{m}{
+\NewDocumentCommand\knowledgelabel{m}{
\kl_hide_begin:
\bool_if:NTF
\knowledge_configuration_label_autoscope_bool
@@ -1315,7 +1333,8 @@ Content of the file knowledge-sources.zip:
\kl_hide_end:
\cs_if_exist:NTF\LaTeXlabel\LaTeXlabel\use_none:n{#1}
}
-\let\label\scopeLabel
+\let\scopeLabel\knowledgelabel%for backward compatibility
+\let\label\knowledgelabel
% \end{macrocode}
% \AP In order to cicumvent this overloading, the normal \cs{\label} command
% can be used using \csintro{\knowledge_latex_label:n}:
@@ -1340,8 +1359,8 @@ Content of the file knowledge-sources.zip:
\NewKAuxCommand\KAuxNewLinkScopetagInstance{mm}
{Package~scope:~Declares~that~a~label~is~declared~in~an~instance~of~a~scope.}
\DeclareKAuxPhaseCommand\KAuxNewLinkScopetagInstance{init}{
- \knowledge_scopetag_ensure:n{#1}
- \seq_gput_right:cn{\knowledge_scopetag_tl[#1]_seq}{#2}
+ \knowledge_scopetag_ensure:n{#1}
+ \seq_gput_right:cn{\knowledge_scopetag_tl[#1]_seq}{#2}
}
% \end{macrocode}
%
@@ -1425,7 +1444,7 @@ Content of the file knowledge-sources.zip:
{\scope_area_pop:n{##1}}
{}}
\kutils_secure_latex_command:N\label
- \let\label\scopeLabel
+ \let\label\knowledgelabel
}
% \end{macrocode}
%
@@ -1497,7 +1516,7 @@ Content of the file knowledge-sources.zip:
{\scope_area_pop:n{knowledge~import~internal}}
\NewDocumentEnvironment{knowledge~context}{m}
{\ScopeActivate\scope_area_push:n{knowledge~context~internal}
- \scopeLabel{#1}}
+ \knowledgelabel{#1}}
{\scope_area_pop:n{knowledge~context~internal}}
% \end{macrocode}
% \subsection{Files}
@@ -1506,8 +1525,9 @@ Content of the file knowledge-sources.zip:
% \subsubsection{KAux file}
%
% Code to be executed before, at initialization and after the writing of the \kl{kaux file}.
+% It tests before is the file was properly written during the last compilation using |\IfKAuxReadyTF|.
% \begin{macrocode}
-\KAuxBefore{\KAuxProcess{init}}
+\KAuxBefore{\IfKAuxReadyTF{\KAuxProcess{init}}{}}
\KAuxInit{}
\KAuxAfter{\KnowledgeDiagnoseOutput}
% \end{macrocode}
@@ -1558,6 +1578,21 @@ Content of the file knowledge-sources.zip:
\knowledge_diagnose:n{}
\knowledge_diagnose:n{}
%
+ \bool_if:NTF\knowledge_configuration_diagnosehelp_bool
+ {
+ \knowledge_diagnose:n{********}
+ \knowledge_diagnose:n{*~Help~*}
+ \knowledge_diagnose:n{********}
+ \knowledge_diagnose:n{}
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~bar=false}~deactivate~`|'-notation~in~diagnose~file.}
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~help=false}~deactivate~long~help~in~the~diagnose~file.}
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~line=true}~add~line~numbers~to~diagnose~file.}
+ \knowledge_diagnose:n{}
+ }{
+ \knowledge_diagnose:x{\use:c{@backslashchar}\cs_to_str:N\knowledgeconfigure{diagnose~help=true}~to~activate~help~in~the~diagnose~file.}
+ \knowledge_diagnose:n{}
+ }
+ %
\int_compare:nNnT\kl_digest_unknownknowledge_int>0{
\knowledge_diagnose:n{************************}
\knowledge_diagnose:n{*~Undefined~knowledges~*}
@@ -1565,6 +1600,8 @@ Content of the file knowledge-sources.zip:
\knowledge_diagnose:n{}
%
\knowledge_diagnose_reset_line:
+ \bool_if:NT\knowledge_configuration_diagnosebar_bool
+ {\knowledge_diagnose:x{\use:c{@backslashchar}knowledge{ignore}}}
\KAuxProcess{diagnose-unknown-suggest}
%
\knowledge_diagnose:n{}
@@ -1952,17 +1989,13 @@ Content of the file knowledge-sources.zip:
export / false .code:n = {\bool_set_false:N\knowledge_knowledge_export_bool},
export / true .code:n = {\bool_set_true:N\knowledge_knowledge_export_bool},
export .default:n = false,
-% instance .code:n =
-% { \tl_set:Nn\knowledge_knowledge_instance_tl{#1} },
- link~instance .code:n =
- { \tl_set:Nn\knowledge_knowledge_instance_tl{#1} },
scope .code:n =
- { \knowledge_scope_track_scope:n{#1}
+ { \knowledge_scope_track_scope:n{#1}
\tl_gput_right:Nn\knowledge_knowledge_immediate_synonym_directives_tl{,scope = {#1}}},
synonym .code:n =
{ \bool_set_true:N\knowledge_knowledge_is_synonym_bool
\exp_args:Nnx\keys_set:nn { knowledge~directives }
- {link={\exp_not:o\knowledge_knowledge_synonymlink_tl},
+ {link={\exp_not:V\knowledge_knowledge_synonymlink_tl},
link~instance={\exp_not:V\knowledge_knowledge_synonyminstance_tl}}},
}
% \end{macrocode}
@@ -2049,7 +2082,7 @@ Content of the file knowledge-sources.zip:
\bool_gset_false:N\knowledge_knowledge_is_synonym_bool
%
\tl_if_eq:nnTF{#4}{|}
- {\__knowledge_knowledge_cont_newsyntax:nw{#3}|}
+ {\__knowledge_knowledge_cont_barnotation:nw{#3}|}
{\tl_if_eq:nnTF{#4}{[}
{\__knowledge_knowledge_cont_classical:nw{#3}[}
{\__knowledge_knowledge_cont_classical:nw{#3}{#4}}}
@@ -2071,6 +2104,7 @@ Content of the file knowledge-sources.zip:
% \end{macrocode}
% \begin{macrocode}
\NewDocumentCommand\__knowledge_knowledge_cont_classical:nw{m >{\SplitList{|}}o m }{
+ %\iow_term:n{\__knowledge_knowledge_cont_classical~{#1}{#3}}
\knowledge_knowledge_setparseat:NNn\l_tmpa_tl\l_tmpb_tl{#1}
%
\use:x{
@@ -2081,6 +2115,9 @@ Content of the file knowledge-sources.zip:
\tl_if_empty:NTF\l_tmpb_tl{}{,scope={\exp_not:V\l_tmpb_tl}}}}
%
\exp_args:NV\__knowledge_knowledge_recallsynonym:n\l_tmpa_tl
+ %\tl_show:N\l_tmpa_tl
+ %\tl_show:N\knowledge_knowledge_instance_tl
+ %\tl_show:N\knowledge_knowledge_immediate_synonym_directives_tl
%
\IfNoValueTF{#2}{}{
\cs_set:Nn\l_tmpa_cs:n
@@ -2092,53 +2129,79 @@ Content of the file knowledge-sources.zip:
\__knowledge_knowledge_end:
}
% \end{macrocode}
+% \AP The code for the "`\vbar'-notation".
+% \csintro{\knowledge_knowledge_barnotation_firstline:n} and \csintro{\knowledge_knowledge_barnotation_nextlines:n}
+% contain the code to be executed when the first line is read, then the following ones. This is defined during parsing.
+% \csintro{\knowledge_knowledge_barnotation_exec_line:n} changes from one value to the other during the parsing.
% \begin{macrocode}
-\cs_new:Npn\knowledge_knowledge_newsyntax_firstline:n{}
+\cs_new:Npn\knowledge_knowledge_barnotation_firstline:n{}
% \end{macrocode}
% \begin{macrocode}
-\cs_new:Npn\knowledge_knowledge_newsyntax_nextlines:n{}
+\cs_new:Npn\knowledge_knowledge_barnotation_nextlines:n{}
% \end{macrocode}
+% \AP\csintro{\__knowledge_knowledge_cont_barnotation:nw} takes as first as argument the directives to be used for the
+% defining the first "knowledge" (first argument in the "`\vbar'-notation"), and then it absorbs the content of the following line,
+% from the first~`\vbar' to the line return.
% \begin{macrocode}
-\cs_new:Npn\__knowledge_knowledge_cont_newsyntax:nw#1{
- \cs_set:Nn\knowledge_knowledge_newsyntax_firstline:n
- {\knowledge{##1}{#1}
- \cs_set_eq:NN
- \knowledge_knowledge_newsyntax_exec_line:n
- \knowledge_knowledge_newsyntax_nextlines:n}
- \cs_set:Nn\knowledge_knowledge_newsyntax_nextlines:n
- {\exp_args:Nnx\knowledge{##1}
- {\exp_not:V\knowledge_knowledge_immediate_synonym_directives_tl}}
- \cs_set_eq:NN
- \knowledge_knowledge_newsyntax_exec_line:n
- \knowledge_knowledge_newsyntax_firstline:n
- \kl_newknowledge_parse:w
+\cs_new:Npn\__knowledge_knowledge_cont_barnotation:nw#1{
+ \cs_set:Nn\knowledge_knowledge_barnotation_firstline:n{
+ %\knowledge_knowledge_setparseat\g_tmpa_tl\g_tmpb_tl{#1}
+ %\iow_term:n{\knowledge{##1}{#1}~(first)}
+ \knowledge{##1}{#1}
+ \cs_set_eq:NN
+ \knowledge_knowledge_barnotation_exec_line:n
+ \knowledge_knowledge_barnotation_nextlines:n}
+ \cs_set:Nn\knowledge_knowledge_barnotation_nextlines:n
+ {%\iow_term:n{\exp_not:n{\knowledge{##1}}{synonym}}
+ \knowledge{##1}{synonym}}
+ \cs_set_eq:NN
+ \knowledge_knowledge_barnotation_exec_line:n
+ \knowledge_knowledge_barnotation_firstline:n
+ \kl_newknowledge_parse:w
}
% \end{macrocode}
+% \AP Now the core of the parsing works by calling \csintro{\kl_newknowledge_parse:w}.
+% It tests the existence of a starting `\vbar', and in this case absorb the line
+% using \cs{\knowledge_knowledge_barnotation_exec_line:w}
+% and calls \cs{\knowledge_knowledge_barnotation_exec_line:n} to
+% execute it. This operation is repeated
+% until there are no more starting `\vbar', and in this case \cs{\__knowledge_knowledge_end:}
+% is used.
% \begin{macrocode}
\cs_new:Npn\kl_newknowledge_parse:w{
- \peek_charcode_remove_ignore_spaces:NTF|
- {\kl_insert_klendline:w\knowledge_knowledge_newsyntax_exec_line:w}
- {\__knowledge_knowledge_end:}
+ \peek_charcode_remove_ignore_spaces:NTF|
+ {\kl_insert_klendline:w\knowledge_knowledge_barnotation_exec_line:w}
+ {\__knowledge_knowledge_end:}
}
% \end{macrocode}
% \begin{macrocode}
-\cs_new:Npn\knowledge_knowledge_newsyntax_exec_line:w#1\kl_end_line:{
- \knowledge_knowledge_newsyntax_exec_line:n{#1}
- \kl_newknowledge_parse:w
+\cs_new:Npn\knowledge_knowledge_barnotation_exec_line:w#1\kl_end_line:{
+ \knowledge_knowledge_barnotation_exec_line:n{#1}
+ \kl_newknowledge_parse:w
}
% \end{macrocode}
+% The catcode modifications for parsing a single line in "`\vbar'-notation":
+% \AP The macro \csintro{\kl_insert_klendline:w} replaces the next occurrence of
+% a line return by the control sequence \csintro{\kl_end_line:}.
+% This temporarily changes the catcode. However, as soon as it is done, a normal command
+% (meaning using the standard catcode regime) can then absorb the line.
% \begin{macrocode}
\char_set_catcode_active:N\^^M
\cs_gset:Npn\kl_insert_klendline:w{\group_begin:\catcode`\^^M=\active\kl_insert_klendline_:w}
\cs_gset:Npn\kl_insert_klendline_:w#1^^M{\group_end:#1\kl_end_line:}
\char_set_catcode_end_line:N\^^M
% \end{macrocode}
+% \AP How to break a line from the "`\vbar'-notation" in pieces.
+% The \csintro{\knowledge_knowledge_setparseat:NNn}\
+% takes two tl-variables and the line content.
+% The result is that the part before the first `@' is put inside the first variable,
+% and what is after and before the next `@' (possibly empty) in the second one.
% \begin{macrocode}
\cs_new:Nn\knowledge_knowledge_setparseat:NNn
- {\knowledge_knowledge_setparseat_:NNw#1#2#3@@\kl_end:}
+ {\knowledge_knowledge_setparseat_:NNw#1#2#3@@\kl_end:}
\cs_new:Npn\knowledge_knowledge_setparseat_:NNw#1#2#3@#4@#5\kl_end:
- {\tl_set:Nx#1{\tl_trim_spaces:n{#3}}
- \tl_set:Nx#2{\tl_trim_spaces:n{#4}}}
+ {\tl_set:Nx#1{\tl_trim_spaces:n{#3}}
+ \tl_set:Nx#2{\tl_trim_spaces:n{#4}}}
% \end{macrocode}
%
%\AP The boolean \cs{\knowledge_knowledgestyle_bool}
@@ -2229,9 +2292,9 @@ Content of the file knowledge-sources.zip:
{}
%
\bool_if:NT\knowledge_knowledge_clear_bool
- {\tl_put_left:Nn\knowledge_knowledge_directives_tl{clear,}}
+ {\tl_put_left:Nn\knowledge_knowledge_directives_tl{clear,}}
\bool_if:NT\knowledge_knowledge_append_bool
- {\tl_put_left:Nn\knowledge_knowledge_directives_tl{force,}}
+ {\tl_put_left:Nn\knowledge_knowledge_directives_tl{force,}}
%
\bool_if:nTF{\knowledge_knowledge_now_bool}
{\use:x{
@@ -2348,8 +2411,9 @@ Content of the file knowledge-sources.zip:
}
% \end{macrocode}
%
-% \AP The following macro, \csintro{\knowledge_klTKS:nnn} is an internal version of \cs{\kl}-like commands. it takes explicitely the text to be displayed,
-% followed by the \kl{knowledge name} to be used, and a \kl{label} pointing to the \kl[instance]{instance of scope}
+% \AP The following macro, \csintro{\knowledge_klTKS:nnn} is an internal version of \cs{\kl}-like commands.
+% It takes explicitly (1) the text to be displayed,
+% (2) the \kl{knowledge name} to be used for the search, and (3) a \kl{label} pointing to the \kl[instance]{instance of scope}
% in which the \kl{knowledge name} has to be searched for. This \kl{label} can be empty, and in this case, this means that
% the stack of instances that are visible in the context of the call of the command should be inspected for searching for
% the knowledge.
@@ -2372,14 +2436,18 @@ Content of the file knowledge-sources.zip:
% \end{macrocode}
% \begin{macrocode}
\cs_new:Nn\knowledge_klTKS:nnn{
+ %\iow_term:n{\knowledge_klTKS:nnn{#1}{#2}{#3}}
\group_begin:
%
\tl_set:Nx\knowledge_kl_linkscope_tl{\tl_to_str:n{#3}}
- \tl_set:Nn\knowledge_kl_instance_tl{}
+ \tl_set:Nn\knowledge_kl_linkinstance_tl{}
\tl_set:Nn\knowledge_kl_text_tl{#1}
\tl_set:Nx\knowledge_kl_base_key_tl{\tl_to_str:n{#2}}
\tl_set_eq:NN\knowledge_kl_key_tl\knowledge_kl_base_key_tl
\int_set_eq:NN\knowledge_kl_recursion_int\knowledge_kl_max_recursion_int
+ %\debug_vars:nn{klTKS:nnn}
+ % {\knowledge_kl_linkscope_tl\knowledge_kl_linkinstance_tl
+ % \knowledge_kl_text_tl\knowledge_kl_base_key_tl}
%
\tl_if_exist:cTF
{knowledge_kl_\tl_to_str:V\knowledge_kl_modifiers_tl _init_tl}
@@ -2420,7 +2488,9 @@ Content of the file knowledge-sources.zip:
\knowledge_kl_find_recursion_exceeded:TF
\knowledge_kl_error_recursion:
{\tl_if_empty:NTF\knowledge_kl_linkscope_tl
- \knowledge_kl_find_withoutscope:
+ {\tl_if_empty:NTF\knowledge_kl_linkinstance_tl
+ {\knowledge_kl_find_withoutscope:}
+ {\knowledge_kl_find_withinstance:}}
\knowledge_kl_find_withscopetag:}
}
% \end{macrocode}
@@ -2435,23 +2505,25 @@ Content of the file knowledge-sources.zip:
\cs_new:Nn\knowledge_kl_find_withinstance:{
\knowledge_knowledge_if_exist:VVVTF
\knowledge_kl_namespace_tl
- \knowledge_kl_instance_tl
+ \knowledge_kl_linkinstance_tl
\knowledge_kl_key_tl
{\knowledge_kl_exec:nnV
\knowledge_kl_namespace_tl
- \knowledge_kl_instance_tl
+ \knowledge_kl_linkinstance_tl
\knowledge_kl_key_tl}
{ \knowledge_kl_error_unknown_in_scope_firsttime: }
}
% \end{macrocode}
-% \csintro{\knowledge_kl_find_withscopetag:} searches for the knowledge, with a given scopetag
+% \AP \csintro{\knowledge_kl_find_withscopetag:} searches for the knowledge, with a given "scopetag".
% \begin{macrocode}
\cs_new:Nn\knowledge_kl_find_withscopetag:{
+ %\debug_vars:nn{\knowledge_kl_find_withscopetag:}{\knowledge_kl_linkscope_tl}
\exp_args:NV\knowledge_scopetag_warn_if_unknown:n\knowledge_kl_linkscope_tl
\tl_clear:N\l_tmpa_tl
\exp_args:Nc\seq_map_function:NN
{\knowledge_scopetag_tl[\knowledge_kl_linkscope_tl]_seq}
\knowledge_kl_find_scopetag_tmpa:n
+ % tests whether the search was successful
\tl_if_empty:NTF\l_tmpa_tl
{\knowledge_kl_error_unknown_in_scope_firsttime:}
{\knowledge_kl_exec:VVV
@@ -2460,10 +2532,14 @@ Content of the file knowledge-sources.zip:
\knowledge_kl_key_tl}
}
% \end{macrocode}
-% \csintro{\knowledge_kl_find_scopetag:Nn} takes a token list for the result, and
-% a scopetag as argument. If the tl is empty, and a knowledge using scopetag as instance is found,
-% then the scopetag is transfered to the token list.
+% \AP \csintro{\knowledge_kl_find_scopetag:Nn} takes a tl variable for the result, and
+% a "scopetag" as argument. If the tl is empty, and a knowledge using "scopetag" as instance is found,
+% then the "scopetag" is transferred to the token list. \csintro{\knowledge_kl_find_scopetag_tmpa:n}
+% uses as variable \cs{\l_tmpa_tl}
% \begin{macrocode}
+\cs_new:Npn\knowledge_kl_find_scopetag_tmpa:n{
+ \knowledge_kl_find_scopetag:Nn\l_tmpa_tl
+}
\cs_new:Nn\knowledge_kl_find_scopetag:Nn{
\tl_if_empty:NTF#1
{\knowledge_knowledge_if_exist:VnVTF
@@ -2474,23 +2550,25 @@ Content of the file knowledge-sources.zip:
{}}
{}
}
-\cs_new:Npn\knowledge_kl_find_scopetag_tmpa:n{
- \knowledge_kl_find_scopetag:Nn\l_tmpa_tl
-}
% \end{macrocode}
% \begin{macrocode}
\cs_new:Nn\knowledge_kl_find_withoutscope:{
+ %\debug_vars:nn{\knowledge_kl_find_withoutscope:}
+ % {\knowledge_kl_key_tl\knowledge_kl_linkinstance_tl}
+ %\exp_args:NVVV\knowledge_knowledge_if_exist:nnnTF
+ % \knowledge_kl_namespace_tl\knowledge_kl_linkinstance_tl\knowledge_kl_key_tl
+ % {\tl_show:n{found}}{\tl_show:n{not~found}}
\knowledge_kl_find_in_scope:VNTF
\knowledge_kl_key_tl
- \knowledge_kl_instance_tl
- {\knowledge_kl_exec:nnV
+ \knowledge_kl_linkinstance_tl
+ {\knowledge_kl_exec:VVV
\knowledge_kl_namespace_tl
- \knowledge_kl_instance_tl
+ \knowledge_kl_linkinstance_tl
\knowledge_kl_key_tl}
{\knowledge_kl_error_unknown_firsttime:}
}
% \end{macrocode}
-% \cs{\knowledge_kl_find_in_scope:nNTF} introduces the namespace as
+% \AP \csintro{\knowledge_kl_find_in_scope:nNTF} introduces the "namespace" as
% first argument in a call to \cs{\knowledge_kl_find_in_scope:nnNTF}
% \begin{macrocode}
\cs_new:Npn\knowledge_kl_find_in_scope:nNTF{
@@ -2498,12 +2576,13 @@ Content of the file knowledge-sources.zip:
\knowledge_kl_namespace_tl
}
% \end{macrocode}
-% We now code the macro \cs{\knowledge_kl_find_in_scope:nnNTF}, that
+% \AP We now code the macro \csintro{\knowledge_kl_find_in_scope:nnNTF}, that
% takes the \kl{namespace}, and the \kl{knowledge}, and answers the \kl{instance} (if it exists),
% and sets the tl-token (third argument) to contain the scope in which it has been found.
% \begin{macrocode}
\cs_new:Nn\knowledge_kl_find_in_scope:nnNTF{
\group_begin:
+ %\tl_show:n{\knowledge_kl_find_in_scope:~#1/#2/#3}
\tl_set:Nn\l_tmpa_tl{#1}
\tl_set:Nn\l_tmpb_tl{#2}
\bool_gset_false:N\g_tmpa_bool
@@ -2518,17 +2597,17 @@ Content of the file knowledge-sources.zip:
% \end{macrocode}
% \cs{\knowledge_kl_find_in_scope_test:n} tests the existence of a "knowledge"
% in the "scopetag" given as argument. For this it searches through all the instances associated to the
-% scopetag, and sets \cs{\g_tmpa_bool} when found.
+% "scopetag", and sets \cs{\g_tmpa_bool} when found.
% One has to check that the visible instance is not the mark.
% \begin{macrocode}
\cs_new:Nn\knowledge_kl_find_in_scope_test:n{
- \tl_if_eq:nnTF{#1}{|}{}{
- \knowledge_kl_find_in_scope_test_:n{#1}
- \seq_if_exist:cTF{\knowledge_scopetag_tl[#1]_seq}
- {\exp_args:Nc\seq_map_function:NN
- {\knowledge_scopetag_tl[#1]_seq}
- \knowledge_kl_find_in_scope_test_:n
- }{}}
+ \tl_if_eq:nnTF{#1}{|}{}{
+ \knowledge_kl_find_in_scope_test_:n{#1}
+ \seq_if_exist:cTF{\knowledge_scopetag_tl[#1]_seq}
+ {\exp_args:Nc\seq_map_function:NN
+ {\knowledge_scopetag_tl[#1]_seq}
+ \knowledge_kl_find_in_scope_test_:n
+ }{}}
}
% \end{macrocode}
% \begin{macrocode}
@@ -2557,13 +2636,14 @@ Content of the file knowledge-sources.zip:
\cs_new:Nn\knowledge_kl_exec:nnn{
\tl_set:Nx\knowledge_kl_resourcearguments_tl
{{#1}{#2}{\exp_not:n{#3}}}
+ %\debug_vars:nn{\knowledge_kl_exec:nnn}{\knowledge_kl_resourcearguments_tl}
\exp_args:NNc\tl_set:Nn\knowledge_kl_resourcetoken_tl
{\knowledge_id:nnn{#1}{#2}{#3}}
\expandafter\ktuple_countuse_gincr:N\knowledge_kl_resourcetoken_tl
%
\tl_clear:N\knowledge_kl_link_tl
\tl_clear:N\knowledge_kl_linkscope_tl
- \tl_clear:N\knowledge_kl_instance_tl
+ \tl_clear:N\knowledge_kl_linkinstance_tl
\tl_map_function:NN
\knowledge_kl_styledirectives_tl
\tl_clear:N
@@ -2662,7 +2742,7 @@ Content of the file knowledge-sources.zip:
{\tl_if_empty:NTF\l_tmpa_tl{}{\tl_put_right:Nn\l_tmpa_tl{,}
\tl_put_right:Nn\l_tmpa_tl{namespace={#1}}}}
- \bool_if:NTF\knowledge_configuration_barsuggestion_bool{
+ \bool_if:NTF\knowledge_configuration_diagnosebar_bool{
%\knowledge_diagnose:x{\char_escape_tl knowledge{\exp_not:V\l_tmpa_tl}}
\tl_set:Nn\l_tmpa_tl{~~~|~~#3}
\tl_if_empty:nTF{#2}{}
@@ -3045,7 +3125,7 @@ Content of the file knowledge-sources.zip:
% \begin{macrocode}
\NewKnowledgeParamTl*{link}
\NewKnowledgeParamTl*[\knowledge_kl_linkscope_tl]{link~scope}
-\NewKnowledgeParamTl*[\knowledge_kl_instance_tl]{link~instance}
+\NewKnowledgeParamTl*[\knowledge_kl_linkinstance_tl]{link~instance}
\NewKnowledgeParamTl*[\knowledge_kl_forcedtext_tl]{text}
\NewKnowledgeParamTl*{wrap}
% \end{macrocode}
@@ -3848,7 +3928,13 @@ Content of the file knowledge-sources.zip:
\expandafter{\tl_to_str:n{#1}}}
\newcommand\robustdisplaybracket[1]
{[\robustdisplay{#1}]}
-
+% \end{macrocode}
+% The ignore directive does nothing...
+% \begin{macrocode}
+\knowledgedirective{ignore}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
\ExplSyntaxOff
% in paper mode, nothing is displayed
\IfKnowledgePaperModeTF{
diff --git a/macros/latex/contrib/knowledge/knowledge-utils.dtx b/macros/latex/contrib/knowledge/knowledge-utils.dtx
index dc0f0deed7..477d57c188 100644
--- a/macros/latex/contrib/knowledge/knowledge-utils.dtx
+++ b/macros/latex/contrib/knowledge/knowledge-utils.dtx
@@ -323,11 +323,46 @@
\KAuxWrite*{}}
\NewDocumentCommand\KAuxClose{}
- {\iow_close:N\knowledge_kaux_iow
+ {\KAuxWrite*{\KAuxEOF {}}
+ \iow_close:N\knowledge_kaux_iow
\bool_gset_true:N\kaux_can_be_used_bool
\kaux_posttreatment_tl
}
% \end{macrocode}
+% Testing if the KAux file is complete.
+% |\kaux_if_exist_containline:nnTF| tests if a line of a file is equal to the argument.
+% This has to be used with care: the searched line is transformed into a str, thus introducing
+% potential extra spaces after the control sequences.
+% Also, when lines are read from the files, the trailing spaces are lost.
+% Anyway, |IfKAuxReadyTF| tests for the presence of |\KAuxEOF {}| in a proper way.
+% \begin{macrocode}
+\cs_new:Npn\kaux_if_exist_containline:nnTF#1#2{
+ \file_if_exist:nTF{#1}{
+ \ior_open:Nn\klg_tmpa_ior{#1}
+ \bool_gset_false:N\g_tmpa_bool
+ \bool_gset_false:N\g_tmpb_bool
+ \str_gset:Nn\g_tmpb_str{#2}
+ \bool_do_until:Nn\g_tmpa_bool{
+ \ior_if_eof:NTF\klg_tmpa_ior
+ {\bool_set_true:N\g_tmpa_bool}
+ {
+ \ior_str_get:NN\klg_tmpa_ior\g_tmpa_str
+ %\iow_term:x{(\exp_not:V\g_tmpa_str)=?(\exp_not:V\g_tmpb_str)}
+ \str_if_eq:NNTF\g_tmpa_str\g_tmpb_str
+ {\bool_gset_true:N\g_tmpa_bool
+ \bool_gset_true:N\g_tmpb_bool}
+ {}
+ }}
+ \ior_close:N\klg_tmpa_ior
+ %\bool_show:N\g_tmpb_bool
+ \bool_if:NTF\g_tmpb_bool
+ }
+ {\use_ii:nn}
+}
+
+\NewDocumentCommand\IfKAuxReadyTF{}
+ {\exp_args:Nx\kaux_if_exist_containline:nnTF{\c_sys_jobname_str.kaux}{\KAuxEOF {}}}
+% \end{macrocode}
%
%
%
@@ -386,6 +421,14 @@
\tl_gset:cn{kaux_\cs_to_str:N#1-args_tl}{#2}
\tl_gput_right:Nn\kaux_command_list_tl{#1}
}
+% \end{macrocode}
+% As an example, |\KAuxEOF| describes is used at the end of the Kaux file.
+% \begin{macrocode}
+\NewKAuxCommand\KAuxEOF{m}
+ {Does~nothing,~useless~empty~argument
+ ,~and~is~searched~for~knowing~if~the~kaux~file~was~written~till~the~end.}
+% \end{macrocode}
+% \begin{macrocode}
\NewDocumentCommand\KAuxCommand{mmm}
{ \cs_if_exist:NTF #1
{}
@@ -524,7 +567,7 @@
% \subsection{References}
%
% This is an old part of the code which is difficult to read.
-% It should probably be cleaned.
+% It should be cleaned. But this is a lot of work.
%
% When using \cs{\cell_new_type:nnn}, a new name space is created,
% in which can be stored information. The first parameter is the name space. The second
@@ -1010,7 +1053,8 @@
\ior_close:N\klg_tmpa_ior
\iow_close:N\klg_tmpa_iow
\group_end:}}
-
+% \end{macrocode}
+% \begin{macrocode}
\cs_new_protected_with_variants:Nnn\kl_compare_files:Nnn{NnV,NVn,NVV}
{\group_begin:
\bool_set_false:N\l_tmpa_bool% set when finished
@@ -1052,7 +1096,8 @@
{\group_end:\bool_set_true:N#1}
{\group_end:\bool_set_false:N#1}
}
-
+% \end{macrocode}
+% \begin{macrocode}
\cs_new_protected:Nn\kl_tl_to_file:nn
{\iow_open:Nn\klg_tmpa_iow{#1}
\iow_now:Nn\klg_tmpa_iow{#2}
diff --git a/macros/latex/contrib/knowledge/knowledge.pdf b/macros/latex/contrib/knowledge/knowledge.pdf
index 7412086a72..b2e551fbb9 100644
--- a/macros/latex/contrib/knowledge/knowledge.pdf
+++ b/macros/latex/contrib/knowledge/knowledge.pdf
Binary files differ
diff --git a/macros/latex/contrib/knowledge/knowledge.tex b/macros/latex/contrib/knowledge/knowledge.tex
index d567aa3604..d65b26a459 100644
--- a/macros/latex/contrib/knowledge/knowledge.tex
+++ b/macros/latex/contrib/knowledge/knowledge.tex
@@ -188,7 +188,10 @@
\knowledgeconfigure{quotation=false}
-\knowledge{LaTeX}[latex|LATEX|Latex]{text=\LaTeX, color=black}
+\knowledge{LaTeX}[latex|LATEX|Latex]{text=\LaTeX}
+\knowledge{tex}[TeX|TEX]{text=\TeX}
+\knowledge{pdflatex}{typewriter}
+
\knowledge"{text=\quotesymbol}
\knowledge{""}{text=\quotesymbol\quotesymbol}
\knowledgeconfigure{quotation=true}
@@ -220,7 +223,6 @@
\knowledge{{@}}{kcommand,text=\arobas}
-\knowledge{tex}{text=\TeX}
\knowledgedirective{people}{emphasize,color=DarkGray}
\knowledge{stackexchange}{people}
@@ -317,8 +319,7 @@
\knowledge{index key=}{directive}
\knowledge{index parent key=}{directive}
\knowledge{index style=}{directive}
-\knowledge{bar suggestion=}{directive}
-\knowledge{patch label}[patch label=]{option}
+\knowledge{label scope}[label scope=]{option}
\knowledge{color=}{directive}
\knowledge{cyclic color}{directive}
\knowledge{colorbox=}{directive}
@@ -357,8 +358,9 @@
\knowledge{unprotect link co}{option,text=unprotect link}
\knowledge{hyperlinks=}{option}
\knowledge{fix hyperref twocolumn}{option}
+\knowledge{diagnose help=}[diagnose help]{option}
\knowledge{diagnose line=}[diagnose line]{option}
-\knowledge{bar suggestion=}[bar suggestion]{option}
+\knowledge{diagnose bar=}[diagnose bar]{option}
\knowledge{active}{option}
@@ -470,10 +472,6 @@
| scopes
| Scopes
\knowledge{doc notion}
- | explicit scope
- | Explicit scopes
- | explicit scopes
-\knowledge{doc notion}
| scopetag
| scopetags
\knowledge{namespace}[namespaces|Namespaces]{doc notion}
@@ -521,9 +519,6 @@
\knowledge {scope.sty}{link=scope option}
-\knowledge{latex}{text=\LaTeX}
-\knowledge{tex}{}
-\knowledge{pdflatex}{}
\knowledgedefault{}
@@ -741,9 +736,12 @@ This involves testing the counter |beamer@coveringdepth| which if higher than o
"Explicit scopes" are introduced. Updating of the documentation. "up" directive in math mode now silently does nothing, and \cs{\knowledgedirective} now forbids redefinitions by default (thanks to Léo Stefanesco).
\item[2019-07-02] Removing the `\texttt{kl}' and `\texttt{intro}' styles that prevented a proper configuration of "intro notion@@style" (thanks to Léo Stefanesco).
\item[2019-10-03] Update of the documentation, and V1.17.
-\item[2019-10-27] Bug correction and added the `\kl{patch label}' configuration directive (thanks to \href{https://becca.ooo/}{Rebecca Turner}). V1.18.
+\item[2019-10-27] Bug correction and added the `\textbf{patch label}' configuration directive (thanks to \href{https://becca.ooo/}{Rebecca Turner}). V1.18.
\item[2019-11-19] Now the labels are evaluated before being written to the "kaux file" in a \cs\KAuxNewLinkScopetagInstance\ command (bug fix). V1.19.
- \end{compactdesc}
+\item[2019-11-29] Help added in the "diagnose file". \textbf{bar suggestion} (still working) renamed to "diagnose bar", and activated by default. \textbf{patch label} is renamed into "label scope".
+\item[2019-12-02] The "kaux file" is now checked for completeness befre being used. This should avoid errors when the previous compilation failed.
+\item[2019-12-03] Corrected bug in the scope access. V1.20
+\end{compactdesc}
\normalsize
%\restoregeometry
@@ -1229,8 +1227,11 @@ be used in the optional parameter of \cs{\usepackage} when loading the "knowledg
""Configuration directives"" consists of a comma separated list of elements that can take the following values:
\begin{description}
-\itemAP["diagnose line="] can be set to true or false. It activates or deactivates the line numbering in the "diagnose file". False is the default.
+\itemAP["diagnose bar="] (de)activates the "`\vbar'-notation" in the "diagnose file". True by default.
+\itemAP["diagnose help="] can be set to true or false. It activates or deactivates the help in the "diagnose file". True by default.
+\itemAP["diagnose line="] can be set to true or false. It activates or deactivates the line numbering in the "diagnose file". False by default.
\itemAP[\kl{fix hyperref twocolumn}] triggers a hack that solves a known problem that may occur when "hyperref@@package" is used in two-columns mode.
+\itemAP[\kl{label scope}] enables or disables the redefined \cs{\label} command, which helps automatically define scopes (default is~\textmd{true}).
\itemAP["notion@@option"] configures the "notion" "directive" which is a refined version of "autoref".
\itemAP["protect quotation="] is followed by a comma separated list of environments in which the "quotation notation" will be automatically deactivated (surrounded by braces if more than one item in the list).
\itemAP[\intro{protect link co} and \intro{unprotect link co}] starts and ends respectively a zone in which the "knowledge@@package" package do not create hyperlinks. These can be nested.
@@ -1879,13 +1880,27 @@ The following code (that requires the "scope option" for being functional) shoul
It is often the case in a text, that one has to locally break the nesting structure of a document, and refer to a object local in an environment. For instance, a comment may refer to a variables/concept that has been locally used in the proof. The "knowledge@@package" provides suitable mechanisms for complex referencing of scopes. Let us explain this through an example:
\begin{code}
-\cs\begin{definition}\cs\label{}
-\indent~~\cs\knowledge{}
-\cs\end{definition}
+\textcolor{gray}{\% We declare first in the preamble the environments that use knowledge.}\\
+\cs\knowledgeconfigureenvironment\{definition\}\{knowledge=attracts\}\par\indent
+{[...]}\\
+\indent
+\cs\begin\{definition\}\cs\label\{somewhere\}\\
+\indent~~\cs\knowledge\{something\}\{notion\}\\
+\indent~~Here, \cs\intro\{something\} is a notion internal to the definition.
+\cs\end\{definition\}
\end{code}
+Note here that what is important is the location of the \cs\knowledge\ command, irrespective of the location ofthe \cs\intro\ command.
+\AP The \cs\label\ command is used to name the "scope". In fact, the real command is
+\begin{center}
+ \smallcode{\csintro\knowledgescope\{scope name\}}
+\end{center}\noindent
+which associates a scope name to the surrounding environment (providing it has been declared possible to do it using
+\cs\knowledgeconfigureenvironment).
+\AP
+The standard \LaTeX\ command \cs\label\ is overloaded and performs implicitly a call to \cs\knowledgescope\ (this behavior can be deactivated/reactivated using the ""label scope=""\texttt{\{true,false\}} directive). The result is that the same string of characters can be used in order to name the scope, and at the same time is used as a standard \LaTeX\ label.
-Something important is missing so far: one rapidly wants to access to \kl{knowledges} that do not exist in the current \kl{scope}. For instance, a notion is used in a section of a document, and one would like to refer to it in the introduction. Another case is that of a notion or a mathematic variable that is introduced in the statement of a theorem, and should be accessible inside the proof. There are essentially two ways to access such distance \kl{knowledges}: either use the \smallcode{\cs\kl(label)\{text\}} command (or the equivalent \smallcode{\kl{"...@...@..."}} notation), or use the \cs{\knowledgeimport} command. We describe the second possibility now. The syntax is:
+\AP Something important is missing so far: one rapidly wants to access to \kl{knowledges} that do not exist in the current \kl{scope}. For instance, a notion is used in a section of a document, and one would like to refer to it in the introduction. Another case is that of a notion or a mathematic variable that is introduced in the statement of a theorem, and should be accessible inside the proof. There are essentially two ways to access such distant \kl{knowledges}: either use the \smallcode{\cs\kl(label)\{text\}} command (or the equivalent \smallcode{\kl{"...@...@..."}} notation), or use the \cs{\knowledgeimport} command. We describe the second possibility now. The syntax is:
\begin{center}
\smallcode{\csintro\knowledgeimport\{label\}}
\end{center}
@@ -1967,18 +1982,19 @@ The detail of the problems are then gathered in the \kl{diagnose file}.
\label{subsection:diagnose file}
The \intro{diagnose file} is a file that is created when the "knowledge@@package" package is used
-(note that another file, ""jobname.kaux"" is also created by the "knowledge@@package" package, for internal use). It enormously eases the use of the package, and it is a good habit to sometimes check it. It gathers a certain number of informations, that can be warning, code to be used, or simply information. This file has the name of the tex document with the extension \kl{.diagnose}. Its content is divided into clearly identified parts. Depending on the used options, some of these parts may appear or disappear.
+(note that another file, ""jobname.kaux"" is also created by the "knowledge@@package" package, for internal use). It enormously eases the use of the package, and it is important to look into it when finalizing a document. It gathers a certain number of informations, that can be warning, code to be used, or simply information. This file has the name of the tex document with the extension \kl{.diagnose}. Its content is divided into clearly identified parts. Depending on the used options, some of these parts may appear or disappear.
\begin{description}
\itemAP[\intro{Undefined knowledges}] in this section are listed all the knowledges that have been unsuccessfully searched for. These are given in lines either of the form
- \begin{quote}
- \texttt{\cs{\knowledge}\{undefined knowledge\}\{\textit{suggested directives}\}}
- \end{quote}
- or of the form
\begin{quote}
\texttt{\cs{\knowledge}\{\textit{suggested directives}\}\\
- \indent~~~\klbn|~~undefined knowledge}\textit{[\klbn@scope]}
+ \indent~~~\klbn|~~undefined knowledge}\textit{[\klbn@scope]}\\
+ \indent~~~~~~~~~~~~~~\vdots
\end{quote}
- \AP Switching from one mode to another is obtained using the "configuration directive" ""bar suggestion=""\{true,false\} (default is true).
+ or of the form
+ \begin{quote}
+ \texttt{\cs{\knowledge}\{undefined knowledge\}\{\textit{suggested directives}\}}
+ \end{quote}
+ \AP Switching from one mode to another is obtained using the "configuration directive" "diagnose bar="\{true,false\} (default is true).
The intent is that copying the content of this section to the document itself will solve all problems of \kl{undefined knowledges}. It is an efficient way,
when one has written a document without caring so much about knowledges to copy the content of this section, and then modify it/reorganize it, in order to suit ones purposes. By default, no suggestion is offered, or "notion" is suggested if the "notion@@option" directive has been used. Suggestion can be automatically configured using the "suggestion=@@variant" "directive@@variant" of the macros \cs{\knowledgenewvariant} and \cs{\knowledgesetvariant}.
@@ -2001,9 +2017,8 @@ This can be activated using the "diagnose line" boolean option:
\end{center}
\AP By default, the "diagnose file" gives suggestions to be used with the normal \cs\knowledge\ syntax.
A "`\vbar'-notation" suggestion can be activated using:
-This can be activated using the "diagnose line" boolean option:
\begin{center}
-\smallcode{\cs\knowledgeconfigure\{""bar suggestion=""true\}}
+\smallcode{\cs\knowledgeconfigure\{""diagnose bar=""true\}}
\end{center}
\iffalse
@@ -2369,9 +2384,9 @@ I do not know to which extend it is compatible with various classes...
\subsubsection{The "notion@@option" directive}
-The configuration option~\intro(option){notion} is activated using:
+\AP The configuration option~\intro(option){notion} is activated using:
\begin{center}
-\smallcode{\cs\knowledgeconfigure\{\intro(option){notion}\}}
+\smallcode{\cs\knowledgeconfigure\{\kl(option){notion}\}}
\end{center}\noindent
\AP It automatically configures a \kl[\knowledge directives]{directive} \intro{notion}
which is an \kl{autoref} displayed properly:
@@ -2710,7 +2725,7 @@ If other kind of problems occur, report them to \texttt{thomas.colcombet@irif.fr
\label{subsection:configuration directive list}
\begin{compactdesc}
-\item["bar suggestion="\textmd{\{true,false\}}] activates the \kl{`\vbar'-notation} in the "diagnose file" (default is false)
+\item["diagnose bar="\textmd{\{true,false\}}] activates the \kl{`\vbar'-notation} in the "diagnose file" (default is false)
\item["composition"] switches to "composition mode",
\item["cyclic colors=@@option"] fixes the cyclic list of colors used by the "directive" "cyclic color".
\item["diagnose line="\textmd{\{true,false\}}] activates or deactivates the line numbering in the "diagnose file".
@@ -2720,7 +2735,7 @@ If other kind of problems occur, report them to \texttt{thomas.colcombet@irif.fr
\item[\kl{hyperlinks=}\textmd{\{true,false\}}] activates or deactivates the hyperlinks.
\item[{{\kl(option){notion}}}] activates the "notion" directive
\item["paper"] switches to "paper mode",
-\itemAP[\kl{patch label}] enables or disables the redefined \cs{\label} command, which helps automatically define scopes (default is~\textmd{true}).
+\itemAP[\kl{label scope=}\textmd{\{true,false\}}] enables or disables the redefined \cs{\label} command, which helps automatically define scopes (default is~\textmd{true}).
\item[\kl{protect link co} and \kl{unprotect link co}] starts and ends respectively a zone in which the "knowledge@@package" package does not create hyperlinks.
\item[\kl{protect quotation=}\textmd{\{environment list\}}] declares a list of environment in which the "quotation notation" should be deactivated
\item[{{\kl(option)[quotation]{quotation=}\textmd{\{true,false\}}}}] activates or deactivates the "quotation notation".
diff --git a/macros/latex/contrib/oberdiek/bookmark.pdf b/macros/latex/contrib/oberdiek/bookmark.pdf
deleted file mode 100644
index d465c8285b..0000000000
--- a/macros/latex/contrib/oberdiek/bookmark.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/embedfile.pdf b/macros/latex/contrib/oberdiek/embedfile.pdf
deleted file mode 100644
index d7ccbeb198..0000000000
--- a/macros/latex/contrib/oberdiek/embedfile.pdf
+++ /dev/null
Binary files differ