summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-03-28 03:00:55 +0000
committerNorbert Preining <norbert@preining.info>2021-03-28 03:00:55 +0000
commitddd501183c3e68b7a98bdeb023d0b98ef84dae22 (patch)
treec36e981b83bb2591db85285af29b4d468ac671cb
parent178fc96a7be703f91ea55832bd42b07eaf9f1ac5 (diff)
CTAN sync 202103280300
-rw-r--r--FILES.byname573
-rw-r--r--FILES.byname.gzbin2302041 -> 2302225 bytes
-rw-r--r--FILES.last07days537
-rw-r--r--graphics/pgf/contrib/yquant/doc/yquant-doc.pdfbin606568 -> 679110 bytes
-rw-r--r--graphics/pgf/contrib/yquant/doc/yquant-doc.tex1883
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-circuit.tex248
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-config.tex395
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-draw.tex1016
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-env.tex449
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-lang.tex859
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex89
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-prepare.tex883
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-registers.tex356
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-shapes.tex356
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant-tools.tex100
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquant.sty19
-rw-r--r--graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty151
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/README35
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE115
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdfbin1502449 -> 1245499 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex5539
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdfbin720818 -> 253453 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex81
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdfbin568790 -> 186501 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex41
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdfbin452532 -> 86325 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex37
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdfbin532733 -> 109279 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex34
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdfbin665217 -> 286299 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex52
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdfbin510427 -> 160475 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex57
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdfbin496770 -> 87271 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex43
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdfbin561465 -> 180206 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex38
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib32
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib38
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty75
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx155
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx85
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx441
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx154
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx86
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx711
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx42
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx427
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx1126
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx10
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx130
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-romanian.lbx758
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty4
-rw-r--r--macros/latex/contrib/physconst/CHANGELOG.md3
-rw-r--r--macros/latex/contrib/physconst/physconst.dtx151
-rw-r--r--macros/latex/contrib/physconst/physconst.pdfbin213667 -> 215721 bytes
-rw-r--r--macros/latex/contrib/physunits/CHANGELOG.md9
-rw-r--r--macros/latex/contrib/physunits/physunits.dtx29
-rw-r--r--macros/latex/contrib/physunits/physunits.pdfbin105018 -> 105873 bytes
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md1192
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx74
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin640454 -> 641384 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--systems/win32/w32tex/ChangeLog16
-rw-r--r--timestamp2
81 files changed, 12993 insertions, 6809 deletions
diff --git a/FILES.byname b/FILES.byname
index 450c2b1bd0..9b392fbf97 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5087,7 +5087,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2021/03/26 | 137406 | FILES.last07days
+2021/03/27 | 115607 | FILES.last07days
2020/08/14 | 104065 | fonts/academicons/academicons.pdf
2020/08/14 | 17247 | fonts/academicons/academicons.sty
2020/08/14 | 6546 | fonts/academicons/academicons.tex
@@ -145396,21 +145396,22 @@
2020/06/11 | 268 | graphics/pgf/contrib/yquant/doc/qasm/test7.qasm
2020/06/11 | 302 | graphics/pgf/contrib/yquant/doc/qasm/test8.qasm
2020/06/11 | 309 | graphics/pgf/contrib/yquant/doc/qasm/test9.qasm
-2020/10/27 | 606568 | graphics/pgf/contrib/yquant/doc/yquant-doc.pdf
-2020/10/27 | 170551 | graphics/pgf/contrib/yquant/doc/yquant-doc.tex
+2021/03/27 | 679110 | graphics/pgf/contrib/yquant/doc/yquant-doc.pdf
+2021/03/27 | 197364 | graphics/pgf/contrib/yquant/doc/yquant-doc.tex
2020/06/13 | 3884 | graphics/pgf/contrib/yquant/README.md
-2020/06/02 | 16847 | graphics/pgf/contrib/yquant/tex/yquant-circuit.tex
-2020/06/07 | 13304 | graphics/pgf/contrib/yquant/tex/yquant-config.tex
-2020/08/24 | 42150 | graphics/pgf/contrib/yquant/tex/yquant-draw.tex
-2020/07/11 | 20822 | graphics/pgf/contrib/yquant/tex/yquant-env.tex
-2020/05/24 | 12213 | graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex
-2020/06/07 | 27045 | graphics/pgf/contrib/yquant/tex/yquant-lang.tex
-2020/06/13 | 23080 | graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty
-2020/06/11 | 34368 | graphics/pgf/contrib/yquant/tex/yquant-registers.tex
-2020/10/27 | 24960 | graphics/pgf/contrib/yquant/tex/yquant-shapes.tex
-2020/10/27 | 1537 | graphics/pgf/contrib/yquant/tex/yquant.sty
-2020/06/07 | 21485 | graphics/pgf/contrib/yquant/tex/yquant-tools.tex
-2020/11/01 | 552950 | graphics/pgf/contrib/yquant.zip
+2021/03/27 | 14467 | graphics/pgf/contrib/yquant/tex/yquant-circuit.tex
+2021/03/27 | 9420 | graphics/pgf/contrib/yquant/tex/yquant-config.tex
+2021/03/27 | 35406 | graphics/pgf/contrib/yquant/tex/yquant-draw.tex
+2021/03/27 | 32388 | graphics/pgf/contrib/yquant/tex/yquant-env.tex
+2021/03/27 | 14132 | graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex
+2021/03/27 | 24770 | graphics/pgf/contrib/yquant/tex/yquant-lang.tex
+2021/03/27 | 24830 | graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty
+2021/03/27 | 34380 | graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
+2021/03/27 | 38516 | graphics/pgf/contrib/yquant/tex/yquant-registers.tex
+2021/03/27 | 39348 | graphics/pgf/contrib/yquant/tex/yquant-shapes.tex
+2021/03/27 | 2042 | graphics/pgf/contrib/yquant/tex/yquant.sty
+2021/03/27 | 24561 | graphics/pgf/contrib/yquant/tex/yquant-tools.tex
+2021/03/27 | 623618 | graphics/pgf/contrib/yquant.zip
2007/12/11 | 654 | graphics/pgf/README
1994/04/20 | 473 | graphics/pictex/addon/00index
2008/08/12 | 1048 | graphics/pictex/addon/autoarea/ANNOUNCE.txt
@@ -172446,7 +172447,7 @@
2012/09/24 | 130991 | install/macros/latex/contrib/scrjrnl.tds.zip
2020/02/15 | 1097592 | install/macros/latex/contrib/sdaps.tds.zip
2019/12/10 | 544332 | install/macros/latex/contrib/selinput.tds.zip
-2020/02/25 | 797721 | install/macros/latex/contrib/siunitx.tds.zip
+2021/03/27 | 806500 | install/macros/latex/contrib/siunitx.tds.zip
2019/10/15 | 315856 | install/macros/latex/contrib/skmath.tds.zip
2019/10/16 | 345652 | install/macros/latex/contrib/skrapport.tds.zip
2019/12/15 | 357584 | install/macros/latex/contrib/soulutf8.tds.zip
@@ -191782,60 +191783,61 @@
2021/02/24 | 2226 | macros/latex/contrib/biblatex-contrib/biblatex-chem/chem-rsc.cbx
2021/02/24 | 737 | macros/latex/contrib/biblatex-contrib/biblatex-chem/README.md
2021/02/24 | 1515975 | macros/latex/contrib/biblatex-contrib/biblatex-chem.zip
-2020/04/20 | 1502449 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf
-2020/04/20 | 1025398 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex
-2020/04/20 | 720818 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdf
-2020/04/20 | 58647 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex
-2020/04/20 | 568790 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdf
-2020/04/20 | 25315 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex
-2020/04/20 | 452532 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdf
-2020/04/20 | 5276 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex
-2020/04/20 | 532733 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdf
-2020/04/20 | 12428 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex
-2020/04/20 | 665217 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdf
-2020/04/20 | 37998 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex
-2020/04/20 | 510427 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdf
-2020/04/20 | 12898 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex
-2020/04/20 | 496770 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdf
-2020/04/20 | 3807 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex
-2020/04/20 | 561465 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdf
-2020/04/20 | 24747 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex
-2020/04/20 | 180698 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib
-2020/04/20 | 7419 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/legal-test.bib
-2020/04/20 | 151405 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib
-2020/04/20 | 9986 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty
-2020/04/20 | 141609 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx
-2020/04/20 | 9368 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx
-2020/04/20 | 157775 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx
-2020/04/20 | 10410 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx
-2020/04/20 | 105 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.bbx
-2020/04/20 | 11050 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx
-2020/04/20 | 101 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.bbx
-2020/04/20 | 12445 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx
-2020/04/20 | 109838 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx
-2020/04/20 | 121167 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx
-2020/04/20 | 109999 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx
-2020/04/20 | 207501 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx
-2020/04/20 | 146987 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx
-2020/04/20 | 304669 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx
-2020/04/20 | 46214 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx
-2020/04/20 | 29312 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx
-2020/04/20 | 4463 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx
-2020/04/20 | 12069 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty
-2020/04/20 | 40103 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx
-2020/04/20 | 16131 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty
-2020/04/20 | 33955 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx
-2020/04/20 | 32701 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx
-2020/04/20 | 39801 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx
-2020/04/20 | 28390 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx
-2020/04/20 | 39804 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx
-2020/04/20 | 30010 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx
-2020/04/20 | 30022 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx
-2020/04/20 | 30099 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx
-2020/04/20 | 32715 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx
-2020/04/20 | 6615 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/README
-2020/04/20 | 107511 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE
-2020/04/20 | 6721960 | macros/latex/contrib/biblatex-contrib/biblatex-chicago.zip
+2021/03/27 | 1245499 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf
+2021/03/27 | 1078737 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex
+2021/03/27 | 253453 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdf
+2021/03/27 | 59063 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex
+2021/03/27 | 186501 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdf
+2021/03/27 | 25743 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex
+2021/03/27 | 86325 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdf
+2021/03/27 | 5681 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex
+2021/03/27 | 109279 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdf
+2021/03/27 | 12838 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex
+2021/03/27 | 286299 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdf
+2021/03/27 | 38482 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex
+2021/03/27 | 160475 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdf
+2021/03/27 | 13359 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex
+2021/03/27 | 87271 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdf
+2021/03/27 | 4218 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex
+2021/03/27 | 180206 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdf
+2021/03/27 | 25174 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex
+2021/03/27 | 180778 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib
+2021/03/27 | 7419 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/legal-test.bib
+2021/03/27 | 151501 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib
+2021/03/27 | 10523 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty
+2021/03/27 | 141682 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx
+2021/03/27 | 8543 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx
+2021/03/27 | 163402 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx
+2021/03/27 | 11014 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx
+2021/03/27 | 105 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.bbx
+2021/03/27 | 9916 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx
+2021/03/27 | 101 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.bbx
+2021/03/27 | 12764 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx
+2021/03/27 | 109756 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx
+2021/03/27 | 135021 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx
+2021/03/27 | 110072 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx
+2021/03/27 | 206646 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx
+2021/03/27 | 152060 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx
+2021/03/27 | 323986 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx
+2021/03/27 | 46353 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx
+2021/03/27 | 29312 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx
+2021/03/27 | 4463 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx
+2021/03/27 | 12081 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty
+2021/03/27 | 40103 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx
+2021/03/27 | 16136 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty
+2021/03/27 | 33955 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx
+2021/03/27 | 32732 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx
+2021/03/27 | 39801 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx
+2021/03/27 | 28390 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx
+2021/03/27 | 39804 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx
+2021/03/27 | 30006 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx
+2021/03/27 | 30018 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx
+2021/03/27 | 30099 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx
+2021/03/27 | 35922 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-romanian.lbx
+2021/03/27 | 32715 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx
+2021/03/27 | 6740 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/README
+2021/03/27 | 113687 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE
+2021/03/27 | 3324474 | macros/latex/contrib/biblatex-contrib/biblatex-chicago.zip
2017/04/09 | 3318 | macros/latex/contrib/biblatex-contrib/biblatex-claves/claves.bbx
2017/04/09 | 763 | macros/latex/contrib/biblatex-contrib/biblatex-claves/claves.dbx
2016/09/11 | 349 | macros/latex/contrib/biblatex-contrib/biblatex-claves/documentation/biblatex-claves.bib
@@ -207933,25 +207935,25 @@
2004/07/15 | 161773 | macros/latex/contrib/photo/photo.pdf
2001/09/14 | 3184 | macros/latex/contrib/photo/photo_test.tex
2005/04/30 | 152794 | macros/latex/contrib/photo.zip
-2020/03/26 | 3133 | macros/latex/contrib/physconst/CHANGELOG.md
-2020/03/26 | 3711 | macros/latex/contrib/physconst/makefile
-2020/03/26 | 371664 | macros/latex/contrib/physconst/physconst.dtx
-2020/03/26 | 2056 | macros/latex/contrib/physconst/physconst.ins
-2020/03/26 | 213667 | macros/latex/contrib/physconst/physconst.pdf
-2020/03/26 | 3534 | macros/latex/contrib/physconst/README.md
-2020/03/26 | 230341 | macros/latex/contrib/physconst.zip
+2021/03/27 | 3232 | macros/latex/contrib/physconst/CHANGELOG.md
+2021/03/27 | 3711 | macros/latex/contrib/physconst/makefile
+2021/03/27 | 371824 | macros/latex/contrib/physconst/physconst.dtx
+2021/03/27 | 2056 | macros/latex/contrib/physconst/physconst.ins
+2021/03/27 | 215721 | macros/latex/contrib/physconst/physconst.pdf
+2021/03/27 | 3534 | macros/latex/contrib/physconst/README.md
+2021/03/27 | 232403 | macros/latex/contrib/physconst.zip
2012/12/13 | 249731 | macros/latex/contrib/physics/physics.pdf
2012/12/20 | 29610 | macros/latex/contrib/physics/physics.sty
2012/12/13 | 26241 | macros/latex/contrib/physics/physics.tex
2012/12/17 | 924 | macros/latex/contrib/physics/README
2012/12/20 | 241016 | macros/latex/contrib/physics.zip
-2020/03/26 | 2442 | macros/latex/contrib/physunits/CHANGELOG.md
-2020/03/26 | 3711 | macros/latex/contrib/physunits/makefile
-2020/03/26 | 45723 | macros/latex/contrib/physunits/physunits.dtx
-2020/03/26 | 2056 | macros/latex/contrib/physunits/physunits.ins
-2020/03/26 | 105018 | macros/latex/contrib/physunits/physunits.pdf
-2020/03/26 | 3307 | macros/latex/contrib/physunits/README.md
-2020/03/26 | 110619 | macros/latex/contrib/physunits.zip
+2021/03/27 | 2691 | macros/latex/contrib/physunits/CHANGELOG.md
+2021/03/27 | 3711 | macros/latex/contrib/physunits/makefile
+2021/03/27 | 46219 | macros/latex/contrib/physunits/physunits.dtx
+2021/03/27 | 2056 | macros/latex/contrib/physunits/physunits.ins
+2021/03/27 | 105873 | macros/latex/contrib/physunits/physunits.pdf
+2021/03/27 | 3307 | macros/latex/contrib/physunits/README.md
+2021/03/27 | 111791 | macros/latex/contrib/physunits.zip
2011/03/01 | 14290 | macros/latex/contrib/piano/piano.sty
2011/03/01 | 429 | macros/latex/contrib/piano/README
2011/03/01 | 2309 | macros/latex/contrib/piano.zip
@@ -210915,10 +210917,11 @@
2007/12/02 | 2971 | macros/latex/contrib/SIunits/SIunits.ins
2007/12/02 | 328621 | macros/latex/contrib/SIunits/SIunits.pdf
2007/12/02 | 296391 | macros/latex/contrib/SIunits.zip
-2020/02/21 | 2215 | macros/latex/contrib/siunitx/README.md
-2020/02/25 | 614826 | macros/latex/contrib/siunitx/siunitx.dtx
-2020/02/25 | 640454 | macros/latex/contrib/siunitx/siunitx.pdf
-2020/02/25 | 752620 | macros/latex/contrib/siunitx.zip
+2021/03/27 | 32200 | macros/latex/contrib/siunitx/CHANGELOG.md
+2021/03/27 | 2215 | macros/latex/contrib/siunitx/README.md
+2021/03/27 | 614563 | macros/latex/contrib/siunitx/siunitx.dtx
+2021/03/27 | 641384 | macros/latex/contrib/siunitx/siunitx.pdf
+2021/03/27 | 761807 | macros/latex/contrib/siunitx.zip
2011/06/03 | 662398 | macros/latex/contrib/skb/doc/skb.pdf
2011/03/15 | 1485 | macros/latex/contrib/skb/doc/user-guide/database/acronyms.tex
2011/03/15 | 722 | macros/latex/contrib/skb/doc/user-guide/database/bibliography.tex
@@ -281579,7 +281582,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2021/03/26 | 574351 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/03/27 | 574351 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -282775,9 +282778,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2021/03/15 | 39247 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2021/03/15 | 43386 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/03/26 | 208477 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/03/26 | 1264529 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/03/26 | 1180932 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/03/27 | 208442 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/03/27 | 1264890 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/03/27 | 1181213 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/03/15 | 13447 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2021/03/15 | 14320 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -282938,190 +282941,190 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2021/03/26 | 574491 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/03/26 | 50845 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/03/26 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/03/26 | 968696 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/03/26 | 1078875 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/03/26 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/03/26 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/03/26 | 29870 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/03/26 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/03/26 | 49972 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2021/03/26 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/03/26 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/03/26 | 94738 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/03/26 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/03/26 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/03/26 | 27181 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/03/26 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2021/03/26 | 330232 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2021/03/26 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/03/26 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/03/26 | 36679 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2021/03/26 | 51432 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/03/26 | 56717 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/03/26 | 4706 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2021/03/26 | 239478 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/03/26 | 261964 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/03/26 | 179378 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/03/26 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/03/26 | 52476 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2021/03/26 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/03/26 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/03/26 | 23291 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/03/26 | 461399 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/03/26 | 45648 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/03/26 | 51158 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/03/26 | 282104 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/03/26 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2021/03/26 | 41102 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/03/26 | 45277 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/03/26 | 116930 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2021/03/26 | 131488 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/03/26 | 1281102 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/03/26 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/03/26 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2021/03/26 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/03/26 | 43056 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2021/03/26 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/03/26 | 25153 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/03/26 | 28008 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/03/26 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/03/26 | 62801 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/03/26 | 135002 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/03/26 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/03/26 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/03/26 | 77860 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/03/26 | 71568 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/03/26 | 80659 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/03/26 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/03/26 | 295552 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/03/26 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/03/26 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/03/26 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/03/26 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2021/03/26 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/03/26 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/03/26 | 96144 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/03/26 | 115470 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/03/26 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/03/26 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/03/26 | 484053 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/03/26 | 567626 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/03/26 | 147138 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/03/26 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2021/03/26 | 94801 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/03/26 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/03/26 | 16326 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2021/03/26 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/03/26 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/03/26 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/03/26 | 625281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/03/26 | 680050 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/03/26 | 532039 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/03/26 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/03/26 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/03/26 | 511633 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/03/26 | 94267 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2021/03/26 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/03/26 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/03/26 | 2009488 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/03/26 | 67649 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/03/26 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/03/26 | 27361 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/03/26 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/03/26 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/03/26 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/03/26 | 195564 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/03/26 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/03/26 | 250212 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/03/26 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/03/26 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/03/26 | 101763 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2021/03/26 | 60551 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/03/26 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/03/26 | 124971 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/03/26 | 136428 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/03/26 | 147150 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/03/26 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/03/26 | 199699 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/03/26 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/03/26 | 67450 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/03/26 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/03/26 | 31190 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/03/26 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/03/26 | 38064 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/03/26 | 42573 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/03/26 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/03/26 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/03/26 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/03/26 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/03/26 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2021/03/26 | 211053 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/03/26 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2021/03/26 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/03/26 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/03/26 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2021/03/26 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2021/03/26 | 202555 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/03/26 | 208180 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/03/26 | 243480 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/03/26 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/03/26 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/03/26 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/03/26 | 1307721 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/03/26 | 20120 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/03/26 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/03/26 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/03/26 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2021/03/26 | 64016 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2021/03/26 | 72149 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/03/26 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/03/26 | 51978 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/03/26 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/03/26 | 1424813 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/03/26 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2021/03/26 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/03/26 | 56221 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/03/26 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/03/26 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/03/26 | 27272 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/03/26 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/03/26 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/03/26 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/03/26 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2021/03/26 | 153888 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/03/26 | 167905 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2021/03/26 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/03/26 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2021/03/26 | 98518 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2021/03/26 | 104626 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2021/03/26 | 2499401 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2021/03/26 | 2616928 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/03/26 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2021/03/26 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/03/26 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/03/26 | 37292 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/03/26 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/03/26 | 33151 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/03/26 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2021/03/26 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/03/26 | 311189 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2021/03/26 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/03/26 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/03/26 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/03/26 | 583629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/03/26 | 618761 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/03/26 | 39562 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/03/26 | 43391 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/03/26 | 208383 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/03/26 | 1264753 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/03/26 | 1181012 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/03/26 | 13469 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/03/26 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/03/27 | 574491 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/03/27 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/03/27 | 56458 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/03/27 | 968697 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/03/27 | 1078874 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/03/27 | 29054 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/03/27 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/03/27 | 29867 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/03/27 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/03/27 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/03/27 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/03/27 | 84772 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/03/27 | 94737 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/03/27 | 67678 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/03/27 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/03/27 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/03/27 | 30884 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/03/27 | 330234 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/03/27 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/03/27 | 32743 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/03/27 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/03/27 | 51430 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/03/27 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/03/27 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2021/03/27 | 239477 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/03/27 | 261964 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/03/27 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/03/27 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/03/27 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/03/27 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/03/27 | 21128 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/03/27 | 23288 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/03/27 | 461397 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/03/27 | 45647 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/03/27 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/03/27 | 282105 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/03/27 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/03/27 | 41102 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/03/27 | 45277 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/03/27 | 116929 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/03/27 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/03/27 | 1281100 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/03/27 | 1425979 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/03/27 | 87636 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/03/27 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/03/27 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/03/27 | 47876 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/03/27 | 25156 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/03/27 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/03/27 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/03/27 | 62800 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/03/27 | 135002 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/03/27 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/03/27 | 73180 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/03/27 | 77858 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/03/27 | 71568 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/03/27 | 80660 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/03/27 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/03/27 | 295553 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/03/27 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/03/27 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/03/27 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/03/27 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/03/27 | 63834 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/03/27 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/03/27 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/03/27 | 115467 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/03/27 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/03/27 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/03/27 | 484055 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/03/27 | 567626 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/03/27 | 147137 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/03/27 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/03/27 | 94801 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/03/27 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/03/27 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/03/27 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/03/27 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/03/27 | 30036 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/03/27 | 625281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/03/27 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/03/27 | 532036 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/03/27 | 594867 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/03/27 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/03/27 | 511633 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/03/27 | 94267 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/03/27 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/03/27 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/03/27 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/03/27 | 67649 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/03/27 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/03/27 | 27359 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/03/27 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/03/27 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/03/27 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/03/27 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/03/27 | 214103 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/03/27 | 250211 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/03/27 | 283977 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/03/27 | 97133 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/03/27 | 101762 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/03/27 | 60551 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/03/27 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/03/27 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/03/27 | 136427 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/03/27 | 147150 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/03/27 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/03/27 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/03/27 | 180045 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/03/27 | 67450 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/03/27 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/03/27 | 31189 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/03/27 | 35063 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/03/27 | 38064 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/03/27 | 42573 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/03/27 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/03/27 | 47007 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/03/27 | 45935 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/03/27 | 52453 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/03/27 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/03/27 | 211054 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/03/27 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/03/27 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/03/27 | 748362 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/03/27 | 816071 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/03/27 | 198128 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/03/27 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/03/27 | 208180 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/03/27 | 243478 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/03/27 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/03/27 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/03/27 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/03/27 | 1307721 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/03/27 | 20122 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/03/27 | 23883 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/03/27 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/03/27 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/03/27 | 64016 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/03/27 | 72149 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/03/27 | 43676 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/03/27 | 51977 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/03/27 | 1295412 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/03/27 | 1424809 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/03/27 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/03/27 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/03/27 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/03/27 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/03/27 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/03/27 | 27273 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/03/27 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/03/27 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/03/27 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/03/27 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/03/27 | 153888 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/03/27 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/03/27 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/03/27 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/03/27 | 98517 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/03/27 | 104623 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/03/27 | 2499400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/03/27 | 2616927 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/03/27 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/03/27 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/03/27 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/03/27 | 37291 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/03/27 | 27195 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/03/27 | 33151 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/03/27 | 65730 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/03/27 | 70323 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/03/27 | 311190 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/03/27 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/03/27 | 55562 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/03/27 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/03/27 | 583630 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/03/27 | 618761 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/03/27 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/03/27 | 43390 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/03/27 | 208378 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/03/27 | 1264366 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/03/27 | 1181307 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/03/27 | 13469 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/03/27 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2021/03/26 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/03/27 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -283454,7 +283457,7 @@
2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/03/03 | 372362 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2021/03/26 | 846 | systems/win32/miktex/tm/packages/pr.ini
+2021/03/27 | 846 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -284634,9 +284637,9 @@
2019/08/12 | 14654 | systems/win32/w32tex/00FILES.euc
2019/08/12 | 14654 | systems/win32/w32tex/00FILES.sjis
2021/03/25 | 5524928 | systems/win32/w32tex/aleph-w32.tar.xz
-2021/03/17 | 66956396 | systems/win32/w32tex/biblatex-biber.tar.xz
+2021/03/26 | 66982856 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2021/03/25 | 806238 | systems/win32/w32tex/ChangeLog
+2021/03/26 | 806651 | systems/win32/w32tex/ChangeLog
2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0
2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1
2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2
@@ -284644,7 +284647,7 @@
2017/06/24 | 644754 | systems/win32/w32tex/ChangeLog.4
2021/03/22 | 23474308 | systems/win32/w32tex/cjkzr.tar.xz
2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz
-2021/03/22 | 146161064 | systems/win32/w32tex/context.tar.xz
+2021/03/26 | 146160268 | systems/win32/w32tex/context.tar.xz
2021/02/25 | 911360 | systems/win32/w32tex/cweb-w32.tar.xz
2021/03/22 | 6433932 | systems/win32/w32tex/datetime2.tar.xz
2021/02/19 | 845892 | systems/win32/w32tex/dvi2ps-w32.tar.xz
@@ -284660,11 +284663,11 @@
2021/03/21 | 34776716 | systems/win32/w32tex/latex.tar.xz
2021/02/19 | 1007832 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz
2021/02/10 | 404777228 | systems/win32/w32tex/ltxpkgdocs.tar.xz
-2021/03/24 | 34044900 | systems/win32/w32tex/ltxpkgs.tar.xz
+2021/03/26 | 34050456 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/03/17 | 3847148 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
2021/03/17 | 3833196 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
2021/03/17 | 3848396 | systems/win32/w32tex/luajittex-w32.tar.xz
-2021/02/17 | 837644 | systems/win32/w32tex/luasec-w32.tar.xz
+2021/03/26 | 838276 | systems/win32/w32tex/luasec-w32.tar.xz
2021/03/25 | 18861736 | systems/win32/w32tex/luatex-dev-w32.tar.xz
2021/03/25 | 18870720 | systems/win32/w32tex/luatex-exp-w32.tar.xz
2021/03/21 | 69078272 | systems/win32/w32tex/luatexja.tar.xz
@@ -284675,7 +284678,7 @@
2021/02/19 | 524780 | systems/win32/w32tex/mftrace-w32.tar.xz
2018/07/14 | 6364952 | systems/win32/w32tex/minitoc.tar.xz
2020/01/19 | 882832 | systems/win32/w32tex/m-tx.tar.xz
-2020/12/22 | 9801176 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
+2021/03/26 | 9811516 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
2021/02/19 | 1235524 | systems/win32/w32tex/omegaj-w32.tar.xz
2020/11/16 | 324540 | systems/win32/w32tex/otfbeta.tar.xz
2021/03/25 | 22231512 | systems/win32/w32tex/pdftex-w32.tar.xz
@@ -284711,7 +284714,7 @@
2020/01/19 | 5856 | systems/win32/w32tex/txtutil.tar.xz
2013/04/08 | 71588 | systems/win32/w32tex/ums.tar.xz
2012/05/28 | 233472 | systems/win32/w32tex/unzip.exe
-2021/03/25 | 8543640 | systems/win32/w32tex/uptex-w32.tar.xz
+2021/03/26 | 8598052 | systems/win32/w32tex/uptex-w32.tar.xz
2013/04/08 | 722652 | systems/win32/w32tex/utf.tar.xz
2013/04/08 | 13748 | systems/win32/w32tex/vf-n2bk.tar.xz
2021/03/24 | 53260516 | systems/win32/w32tex/w32tex-src.tar.xz
@@ -284734,7 +284737,7 @@
2021/03/17 | 3449860 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
2021/03/17 | 3447096 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
2021/03/17 | 3448244 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
-2021/02/17 | 935248 | systems/win32/w32tex/win64/luasec-w64.tar.xz
+2021/03/26 | 936184 | systems/win32/w32tex/win64/luasec-w64.tar.xz
2021/03/17 | 3110008 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
2021/03/17 | 3119116 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
2021/03/17 | 3116336 | systems/win32/w32tex/win64/luatex-w64.tar.xz
@@ -284857,7 +284860,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2021/03/27 | 186 | timestamp
+2021/03/28 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 17d02fbe72..43ce0c943a 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 9eea1ab623..c8c05e36a4 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,197 +1,295 @@
-2021/03/26 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/03/26 | 98518 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2021/03/26 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/03/26 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/03/26 | 968696 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/03/26 | 96144 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/03/26 | 94801 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/03/26 | 94738 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/03/26 | 94267 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2021/03/26 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/03/26 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/03/26 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2021/03/26 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/03/26 | 846 | systems/win32/miktex/tm/packages/pr.ini
-2021/03/26 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2021/03/26 | 80659 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/03/26 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/03/26 | 77860 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/03/26 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/03/26 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/03/26 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/03/26 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/03/26 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/03/26 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/03/26 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/03/26 | 72149 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/03/26 | 71568 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/03/26 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/03/26 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/03/27 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/03/27 | 9916 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx
+2021/03/27 | 98517 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/03/27 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/03/27 | 97133 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/03/27 | 968697 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/03/27 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/03/27 | 94801 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/03/27 | 94737 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/03/27 | 94267 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/03/27 | 9420 | graphics/pgf/contrib/yquant/tex/yquant-config.tex
+2021/03/27 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/03/27 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/03/27 | 87636 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/03/27 | 87271 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdf
+2021/03/27 | 86325 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdf
+2021/03/27 | 8543 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx
+2021/03/27 | 84772 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/03/27 | 846 | systems/win32/miktex/tm/packages/pr.ini
+2021/03/27 | 816071 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/03/27 | 80660 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/03/27 | 806500 | install/macros/latex/contrib/siunitx.tds.zip
+2021/03/27 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/03/27 | 77858 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/03/27 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/03/27 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/03/27 | 761807 | macros/latex/contrib/siunitx.zip
+2021/03/27 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/03/27 | 748362 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/03/27 | 7419 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/legal-test.bib
+2021/03/27 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/03/27 | 73180 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/03/27 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/03/27 | 72149 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/03/27 | 71568 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/03/27 | 70323 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/03/27 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/03/27 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/03/27 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/03/27 | 679110 | graphics/pgf/contrib/yquant/doc/yquant-doc.pdf
+2021/03/27 | 67678 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/03/27 | 67649 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/03/27 | 67450 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/03/27 | 6740 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/README
+2021/03/27 | 65730 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/03/27 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/03/27 | 641384 | macros/latex/contrib/siunitx/siunitx.pdf
+2021/03/27 | 64016 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/03/27 | 63834 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/03/27 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/03/27 | 62800 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/03/27 | 625281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/03/27 | 623618 | graphics/pgf/contrib/yquant.zip
+2021/03/27 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/03/27 | 618761 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/03/27 | 614563 | macros/latex/contrib/siunitx/siunitx.dtx
+2021/03/27 | 60551 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/03/27 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/03/27 | 594867 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/03/27 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/03/27 | 59063 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex
+2021/03/27 | 583630 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/03/27 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/03/27 | 574491 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/03/27 | 574351 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/03/27 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/03/27 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/03/27 | 5681 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex
+2021/03/27 | 567626 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/03/27 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/03/27 | 56458 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/03/27 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/03/27 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/03/27 | 55562 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/03/27 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/03/27 | 532036 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/03/27 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/03/27 | 52453 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/03/27 | 51977 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/03/27 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/03/27 | 51430 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/03/27 | 511633 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/03/27 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/03/27 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/03/27 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/03/27 | 484055 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/03/27 | 47876 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/03/27 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/03/27 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2021/03/27 | 47007 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/03/27 | 46353 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx
+2021/03/27 | 46219 | macros/latex/contrib/physunits/physunits.dtx
+2021/03/27 | 461397 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/03/27 | 45935 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/03/27 | 45647 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/03/27 | 45277 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/03/27 | 4463 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx
+2021/03/27 | 43676 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/03/27 | 43390 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/03/27 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/03/27 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/03/27 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/03/27 | 42573 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/03/27 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/03/27 | 4218 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex
+2021/03/27 | 41102 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/03/27 | 40103 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx
+2021/03/27 | 39804 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx
+2021/03/27 | 39801 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx
+2021/03/27 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/03/27 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/03/27 | 39348 | graphics/pgf/contrib/yquant/tex/yquant-shapes.tex
+2021/03/27 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/03/27 | 38516 | graphics/pgf/contrib/yquant/tex/yquant-registers.tex
+2021/03/27 | 38482 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex
+2021/03/27 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/03/27 | 38064 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/03/27 | 37291 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/03/27 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/03/27 | 371824 | macros/latex/contrib/physconst/physconst.dtx
+2021/03/27 | 3711 | macros/latex/contrib/physunits/makefile
+2021/03/27 | 3711 | macros/latex/contrib/physconst/makefile
+2021/03/27 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/03/27 | 35922 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-romanian.lbx
+2021/03/27 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/03/27 | 35406 | graphics/pgf/contrib/yquant/tex/yquant-draw.tex
+2021/03/27 | 3534 | macros/latex/contrib/physconst/README.md
+2021/03/27 | 35063 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/03/27 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/03/27 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/03/27 | 34380 | graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
+2021/03/27 | 33955 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx
+2021/03/27 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/03/27 | 3324474 | macros/latex/contrib/biblatex-contrib/biblatex-chicago.zip
+2021/03/27 | 33151 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/03/27 | 3307 | macros/latex/contrib/physunits/README.md
+2021/03/27 | 330234 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/03/27 | 32743 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/03/27 | 32732 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx
+2021/03/27 | 32715 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx
+2021/03/27 | 323986 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx
+2021/03/27 | 32388 | graphics/pgf/contrib/yquant/tex/yquant-env.tex
+2021/03/27 | 3232 | macros/latex/contrib/physconst/CHANGELOG.md
+2021/03/27 | 32200 | macros/latex/contrib/siunitx/CHANGELOG.md
+2021/03/27 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/03/27 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/03/27 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/03/27 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/03/27 | 31189 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/03/27 | 311190 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/03/27 | 30884 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/03/27 | 30099 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx
+2021/03/27 | 30036 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/03/27 | 30018 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx
+2021/03/27 | 30006 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx
+2021/03/27 | 29867 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/03/27 | 295553 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/03/27 | 29312 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx
+2021/03/27 | 29054 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/03/27 | 286299 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdf
+2021/03/27 | 283977 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/03/27 | 28390 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx
+2021/03/27 | 282105 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/03/27 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/03/27 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/03/27 | 27359 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/03/27 | 27273 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/03/27 | 27195 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/03/27 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/03/27 | 2691 | macros/latex/contrib/physunits/CHANGELOG.md
+2021/03/27 | 261964 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/03/27 | 2616927 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/03/27 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/03/27 | 25743 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex
+2021/03/27 | 253453 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdf
+2021/03/27 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/03/27 | 25174 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex
+2021/03/27 | 25156 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/03/27 | 250211 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/03/27 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/03/27 | 2499400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/03/27 | 24830 | graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty
+2021/03/27 | 24770 | graphics/pgf/contrib/yquant/tex/yquant-lang.tex
+2021/03/27 | 24561 | graphics/pgf/contrib/yquant/tex/yquant-tools.tex
+2021/03/27 | 243478 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/03/27 | 239477 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/03/27 | 23883 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/03/27 | 23288 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/03/27 | 232403 | macros/latex/contrib/physconst.zip
+2021/03/27 | 2215 | macros/latex/contrib/siunitx/README.md
+2021/03/27 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/03/27 | 215721 | macros/latex/contrib/physconst/physconst.pdf
+2021/03/27 | 214103 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/03/27 | 21128 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/03/27 | 211054 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/03/27 | 208442 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/03/27 | 208378 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/03/27 | 208180 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/03/27 | 206646 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx
+2021/03/27 | 2056 | macros/latex/contrib/physunits/physunits.ins
+2021/03/27 | 2056 | macros/latex/contrib/physconst/physconst.ins
+2021/03/27 | 2042 | graphics/pgf/contrib/yquant/tex/yquant.sty
+2021/03/27 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/03/27 | 20122 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/03/27 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/03/27 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/03/27 | 198128 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/03/27 | 197364 | graphics/pgf/contrib/yquant/doc/yquant-doc.tex
+2021/03/27 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/03/27 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/03/27 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/03/27 | 186501 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdf
+2021/03/27 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/03/27 | 180778 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib
+2021/03/27 | 180206 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdf
+2021/03/27 | 180045 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/03/27 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/03/27 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/03/27 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/03/27 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/03/27 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/03/27 | 163402 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx
+2021/03/27 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/03/27 | 16136 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty
+2021/03/27 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/03/27 | 160475 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdf
+2021/03/27 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/03/27 | 153888 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/03/27 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/03/27 | 152060 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx
+2021/03/27 | 151501 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib
+2021/03/27 | 147150 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/03/27 | 147137 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/03/27 | 14467 | graphics/pgf/contrib/yquant/tex/yquant-circuit.tex
+2021/03/27 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/03/27 | 1425979 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/03/27 | 1424809 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/03/27 | 141682 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx
+2021/03/27 | 14132 | graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex
+2021/03/27 | 136427 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/03/27 | 135021 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx
+2021/03/27 | 135002 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/03/27 | 13469 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/03/27 | 13359 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex
+2021/03/27 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/03/27 | 1307721 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/03/27 | 1295412 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/03/27 | 12838 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex
+2021/03/27 | 1281100 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/03/27 | 12764 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx
+2021/03/27 | 1264890 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/03/27 | 1264366 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/03/27 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/03/27 | 1245499 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf
+2021/03/27 | 12081 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty
+2021/03/27 | 1181307 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/03/27 | 1181213 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/03/27 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/03/27 | 116929 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/03/27 | 115467 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/03/27 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/03/27 | 113687 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE
+2021/03/27 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/03/27 | 111791 | macros/latex/contrib/physunits.zip
+2021/03/27 | 11014 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx
+2021/03/27 | 110072 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx
+2021/03/27 | 109756 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx
+2021/03/27 | 109279 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdf
+2021/03/27 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/03/27 | 1078874 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/03/27 | 1078737 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex
+2021/03/27 | 105 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.bbx
+2021/03/27 | 105873 | macros/latex/contrib/physunits/physunits.pdf
+2021/03/27 | 10523 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty
+2021/03/27 | 104623 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/03/27 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/03/27 | 101 | macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.bbx
+2021/03/27 | 101762 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/03/26 | 9811516 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz
+2021/03/26 | 936184 | systems/win32/w32tex/win64/luasec-w64.tar.xz
+2021/03/26 | 8598052 | systems/win32/w32tex/uptex-w32.tar.xz
+2021/03/26 | 838276 | systems/win32/w32tex/luasec-w32.tar.xz
+2021/03/26 | 806651 | systems/win32/w32tex/ChangeLog
2021/03/26 | 684842 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon.zip
-2021/03/26 | 680050 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/03/26 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/03/26 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/03/26 | 67649 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/03/26 | 67450 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/03/26 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2021/03/26 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2021/03/26 | 64016 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2021/03/26 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/03/26 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/03/26 | 62801 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/03/26 | 625281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/03/26 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/03/26 | 618761 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/03/26 | 60551 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/03/26 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/03/26 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/03/26 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/03/26 | 583629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/03/26 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/03/26 | 574491 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/03/26 | 574351 | systems/win32/miktex/tm/packages/files.csv.lzma
-2021/03/26 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/03/26 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/03/26 | 567626 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/03/26 | 56717 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/03/26 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/03/26 | 56221 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/03/26 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/03/26 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/03/26 | 66982856 | systems/win32/w32tex/biblatex-biber.tar.xz
2021/03/26 | 552 | macros/latex/contrib/suppose/README.md
-2021/03/26 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2021/03/26 | 5442 | macros/latex/contrib/suppose/suppose.sty
-2021/03/26 | 532039 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/03/26 | 52476 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2021/03/26 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/03/26 | 51978 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/03/26 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/03/26 | 51432 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/03/26 | 511633 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/03/26 | 51158 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/03/26 | 50845 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/03/26 | 49972 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2021/03/26 | 484053 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/03/26 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/03/26 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/03/26 | 4706 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2021/03/26 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/03/26 | 461399 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/03/26 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/03/26 | 45648 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/03/26 | 45277 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/03/26 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/03/26 | 43391 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/03/26 | 43056 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2021/03/26 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/03/26 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/03/26 | 42573 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/03/26 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2021/03/26 | 41102 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/03/26 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/03/26 | 39562 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/03/26 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/03/26 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/03/26 | 38064 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/03/26 | 37292 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/03/26 | 37242 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2021/03/26 | 36679 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2021/03/26 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2021/03/26 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/03/26 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/03/26 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/03/26 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/03/26 | 33151 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/03/26 | 330232 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2021/03/26 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/03/26 | 34050456 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/03/26 | 3269 | macros/latex/contrib/suppose/suppose-doc.tex
-2021/03/26 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2021/03/26 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/03/26 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/03/26 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/03/26 | 31190 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/03/26 | 311189 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2021/03/26 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2021/03/26 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/03/26 | 29870 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/03/26 | 295552 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/03/26 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/03/26 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/03/26 | 282104 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/03/26 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/03/26 | 28008 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/03/26 | 27361 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/03/26 | 27272 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/03/26 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/03/26 | 27181 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/03/26 | 261964 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/03/26 | 2616928 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/03/26 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/03/26 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/03/26 | 25153 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/03/26 | 250212 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/03/26 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/03/26 | 2499401 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2021/03/26 | 243480 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/03/26 | 239478 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/03/26 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/03/26 | 23291 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/03/26 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/03/26 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/03/26 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/03/26 | 211053 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/03/26 | 208477 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/03/26 | 208383 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/03/26 | 208180 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
2021/03/26 | 203977 | macros/latex/contrib/suppose/suppose-doc.pdf
-2021/03/26 | 202555 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/03/26 | 20120 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/03/26 | 2009488 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/03/26 | 199699 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/03/26 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2021/03/26 | 196109 | macros/latex/contrib/suppose.zip
-2021/03/26 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/03/26 | 195564 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/03/26 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2021/03/26 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/03/26 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/03/26 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/03/26 | 179378 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/03/26 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/03/26 | 167905 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2021/03/26 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/03/26 | 16326 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2021/03/26 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/03/26 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2021/03/26 | 153888 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/03/26 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/03/26 | 147150 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/03/26 | 147138 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/03/26 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2021/03/26 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/03/26 | 1424813 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/03/26 | 136428 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/03/26 | 135002 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/03/26 | 13469 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/03/26 | 131488 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/03/26 | 1307721 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/03/26 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/03/26 | 1281102 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/03/26 | 1264753 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/03/26 | 1264529 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/03/26 | 124971 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/03/26 | 1181012 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/03/26 | 1180932 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2021/03/26 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/03/26 | 116930 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2021/03/26 | 115470 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/03/26 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2021/03/26 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2021/03/26 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/03/26 | 1078875 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/03/26 | 104626 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2021/03/26 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/03/26 | 101763 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/03/26 | 146160268 | systems/win32/w32tex/context.tar.xz
2021/03/25 | 959 | macros/latex/contrib/foliono/MANIFEST-Foliono.txt
2021/03/25 | 943450 | systems/win32/miktex/tm/packages/mcf2graph.tar.lzma
2021/03/25 | 92 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Release
@@ -201,14 +299,12 @@
2021/03/25 | 89 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Release
2021/03/25 | 88353 | macros/latex/contrib/easybook/easybook.dtx
2021/03/25 | 86 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Release
-2021/03/25 | 8543640 | systems/win32/w32tex/uptex-w32.tar.xz
2021/03/25 | 853348 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
2021/03/25 | 8383 | systems/win32/miktex/setup/rpm/fedora/33/repodata/ebacaa90c760f06fa677e9d295c608824ce97a9fe89f962076ad1c2cd72a0c1d-filelists.sqlite.bz2
2021/03/25 | 8336 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/9d3d5a528fbe473afe3d2efc65229da980ee81310f685aae7da6740f5f643fab-filelists.sqlite.bz2
2021/03/25 | 8304022 | fonts/newtx.zip
2021/03/25 | 808 | systems/win32/miktex/setup/rpm/fedora/28/repodata/907c541e6ab8ada4d19dc30e0362404f31afb5c0de4249d9f0dc064a70f34c37-other.xml.gz
2021/03/25 | 807 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/01f9a8490062b3eb49a52f3ec061d59709a0f895f4b97c34c177de3919cd17e7-other.xml.gz
-2021/03/25 | 806238 | systems/win32/w32tex/ChangeLog
2021/03/25 | 793 | fonts/notomath/README.txt
2021/03/25 | 783955 | fonts/xcharter/doc/xcharter-doc.pdf
2021/03/25 | 7816211 | systems/win32/miktex/tm/packages/uantwerpendocs.tar.lzma
@@ -447,7 +543,6 @@
2021/03/24 | 3680 | systems/texlive/tlnet/archive/regexpatch.r58674.tar.xz
2021/03/24 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
2021/03/24 | 351655 | systems/knuth/dist/errata.zip
-2021/03/24 | 34044900 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/03/24 | 33436 | macros/latex/contrib/yathesis/exemples/specimen/tiger.pdf
2021/03/24 | 3108044 | systems/texlive/tlnet/archive/memoir.doc.r58672.tar.xz
2021/03/24 | 30580 | macros/latex/contrib/yathesis/exemples/specimen/these.tex
@@ -942,7 +1037,6 @@
2021/03/22 | 1479 | language/hyph-utf8/tex/generic/hyph-utf8/loadhyph/loadhyph-el-monoton.tex
2021/03/22 | 146 | macros/latex/contrib/matapli/doc/auto/bibliomatapli.el
2021/03/22 | 1467 | language/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/hyph-sq.pat.txt
-2021/03/22 | 146161064 | systems/win32/w32tex/context.tar.xz
2021/03/22 | 14610 | language/hyph-utf8/source/generic/hyph-utf8/languages/es/eshyph.src
2021/03/22 | 1448 | language/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/hyph-oc.pat.txt
2021/03/22 | 1445 | language/hyph-utf8/tex/generic/hyph-utf8/patterns/txt/hyph-pt.pat.txt
@@ -1181,9 +1275,7 @@
2021/03/21 | 28789 | macros/latex/contrib/datetime2/samples/datetime2-sample-calc.pdf
2021/03/21 | 285 | macros/latex/contrib/thuthesis/data/comments.tex
2021/03/21 | 2755 | graphics/mcf2graph/mcf_example.tex
-2021/03/21 | 2656 | fonts/newtx/tfm/ntxbmia.tfm
2021/03/21 | 2646 | support/latexindent/latexindent.pl
-2021/03/21 | 2640 | fonts/newtx/tfm/ntxmia.tfm
2021/03/21 | 2607448 | systems/win32/w32tex/tex4htk-w32.tar.xz
2021/03/21 | 2552 | macros/latex/contrib/datetime2/samples/datetime2-sample-journal.tex
2021/03/21 | 2539 | support/latexindent/documentation/sec-conclusions-know-limitations.tex
@@ -1201,8 +1293,6 @@
2021/03/21 | 2220 | fonts/newpx/tfm/zplmia.tfm
2021/03/21 | 2213844 | systems/win32/w32tex/win64/context-w64.tar.xz
2021/03/21 | 21671 | support/latexindent/documentation/sec-replacements.tex
-2021/03/21 | 2140 | fonts/newtx/vf/ntxmia.vf
-2021/03/21 | 2140 | fonts/newtx/vf/ntxbmia.vf
2021/03/21 | 2118 | support/latexindent/documentation/sec-demonstration.tex
2021/03/21 | 21098 | support/latexindent/LatexIndent/Verbatim.pm
2021/03/21 | 20764 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
@@ -1293,58 +1383,3 @@
2021/03/21 | 10135 | support/latexindent/documentation/sec-indent-config-and-settings.tex
2021/03/21 | 10129 | fonts/newpx/afm/pxbmiaX.afm
2021/03/21 | 100628 | macros/latex/contrib/datetime2/samples/datetime2-sample-journal.pdf
-2021/03/20 | 99430 | graphics/mcf2graph/mcf2graph.mf
-2021/03/20 | 9039 | macros/latex/contrib/turabian-formatting/turabian-researchpaper.cls
-2021/03/20 | 883139 | graphics/pgf/contrib/tzplot.zip
-2021/03/20 | 83368 | systems/texlive/tlnet/archive/luatexja.source.r58545.tar.xz
-2021/03/20 | 827727 | graphics/pgf/contrib/tzplot/tzplot-doc.pdf
-2021/03/20 | 7850988 | macros/latex/contrib/koma-script.zip
-2021/03/20 | 769550 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-02.jpg
-2021/03/20 | 708971 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-01.jpg
-2021/03/20 | 69448 | systems/texlive/tlnet/archive/profcollege.r58547.tar.xz
-2021/03/20 | 69356 | language/polish/pl-mf.zip
-2021/03/20 | 679962 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-10.jpg
-2021/03/20 | 652 | systems/texlive/tlnet/archive/collection-xetex.r58544.tar.xz
-2021/03/20 | 613224 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-09.jpg
-2021/03/20 | 6086 | macros/latex/contrib/addfont/addfont.tex
-2021/03/20 | 59624 | graphics/pgf/contrib/tzplot/tzplot-doc-B-v1.0.1.tex
-2021/03/20 | 582 | macros/latex/contrib/addfont/README
-2021/03/20 | 56253 | macros/latex/contrib/addfont/addfont.pdf
-2021/03/20 | 55168 | macros/latex/contrib/addfont.zip
-2021/03/20 | 54201 | graphics/pgf/contrib/tzplot/tzplot-doc-D-v1.0.1.tex
-2021/03/20 | 508131 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-06.jpg
-2021/03/20 | 4688 | macros/latex/contrib/uantwerpendocs/uantwerpendocs.ins
-2021/03/20 | 464497 | fonts/cc-pl.zip
-2021/03/20 | 46028 | graphics/mcf2graph/mcf_exa_soc.mf
-2021/03/20 | 4377 | graphics/mcf2graph/README
-2021/03/20 | 42576 | systems/texlive/tlnet/archive/tuda-ci.r58546.tar.xz
-2021/03/20 | 384269 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-08.jpg
-2021/03/20 | 3718176 | systems/texlive/tlnet/archive/profcollege.doc.r58547.tar.xz
-2021/03/20 | 359434 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-04.jpg
-2021/03/20 | 349086 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-11.jpg
-2021/03/20 | 34066 | macros/latex/contrib/turabian-formatting/turabian-formatting-doc.tex
-2021/03/20 | 327581 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-05.jpg
-2021/03/20 | 3199528 | systems/texlive/tlnet/archive/luatexja.doc.r58545.tar.xz
-2021/03/20 | 3040 | info/biblio/font.ltx
-2021/03/20 | 2909484 | systems/texlive/tlnet/archive/beamer.doc.r58550.tar.xz
-2021/03/20 | 285906 | language/polish/mex105a.zip
-2021/03/20 | 251458 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-03.jpg
-2021/03/20 | 2450 | macros/latex/contrib/addfont/addfont.sty
-2021/03/20 | 235343 | macros/latex/contrib/gridpapers.zip
-2021/03/20 | 222877 | macros/latex/contrib/gridpapers/gridpapers.pdf
-2021/03/20 | 2067 | macros/latex/contrib/turabian-formatting/README
-2021/03/20 | 189344 | systems/texlive/tlnet/archive/luatexja.r58545.tar.xz
-2021/03/20 | 184672 | systems/texlive/tlnet/archive/zbmath-review-template.doc.r58544.tar.xz
-2021/03/20 | 184560 | macros/latex/contrib/uantwerpendocs/Images/uantwerpen-07.jpg
-2021/03/20 | 165660 | systems/texlive/tlnet/archive/beamer.r58550.tar.xz
-2021/03/20 | 14561508 | install/macros/latex/contrib/koma-script.tds.zip
-2021/03/20 | 13980 | macros/latex/contrib/turabian-formatting/turabian-thesis.cls
-2021/03/20 | 13365 | macros/latex/contrib/turabian-formatting/turabian-formatting.sty
-2021/03/20 | 131692 | macros/latex/contrib/turabian-formatting.zip
-2021/03/20 | 1300 | systems/texlive/tlnet/archive/zbmath-review-template.r58544.tar.xz
-2021/03/20 | 123599 | graphics/pgf/contrib/tzplot/tzplot-doc-C-v1.0.1.tex
-2021/03/20 | 12222 | graphics/pgf/contrib/tzplot/tzplot-doc.tex
-2021/03/20 | 114043 | macros/latex/contrib/turabian-formatting/turabian-formatting-doc.pdf
-2021/03/20 | 1116292 | systems/texlive/tlnet/archive/tuda-ci.doc.r58546.tar.xz
-2021/03/20 | 111422 | graphics/pgf/contrib/tzplot/tzplot.sty
-2021/03/20 | 1030369 | info/biblio/font.bib
diff --git a/graphics/pgf/contrib/yquant/doc/yquant-doc.pdf b/graphics/pgf/contrib/yquant/doc/yquant-doc.pdf
index b7233fbebc..203ef161c9 100644
--- a/graphics/pgf/contrib/yquant/doc/yquant-doc.pdf
+++ b/graphics/pgf/contrib/yquant/doc/yquant-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/yquant/doc/yquant-doc.tex b/graphics/pgf/contrib/yquant/doc/yquant-doc.tex
index 735f98eb57..8a9ebc886d 100644
--- a/graphics/pgf/contrib/yquant/doc/yquant-doc.tex
+++ b/graphics/pgf/contrib/yquant/doc/yquant-doc.tex
@@ -14,7 +14,8 @@
\definecolor{darkblue}{RGB}{5, 10, 122}
\usepackage[english]{babel}
\usepackage[colorlinks, linkcolor=darkblue, bookmarksdepth=paragraph]{hyperref}
-\usepackage{yquant,braket,hyphenat,microtype,hologo,minted,import}
+\usepackage[compat=newest]{yquant}
+\usepackage{braket,hyphenat,microtype,hologo,minted,import,ragged2e}
\usetikzlibrary{quotes,fit,shapes.symbols,backgrounds,quantikz}
\useyquantlanguage{qasm}
\usepackage{amsmath,adjustbox,cleveref}
@@ -23,6 +24,8 @@
\makeatletter
+\long\def\compat#1{\texorpdfstring{\leavevmode\makenote{#1}\penalty10000 }{}}
+
% BEGIN_FOLD Minted configuration
\begingroup
\catcode`\&=11
@@ -53,17 +56,17 @@
\endgroup\vskip-\parskip%
\noindent\ignorespaces%
}
-\newenvironment{option*}[2]{\vskip5mm%
+\newenvironment{option*}[3][]{\vskip5mm%
\noindent\begin{minipage}[t]{\linewidth}%
\begingroup%
\let\minted@inline@iii=\patched@minted@inline@iii%
\raggedleft%
\hspace*{-1cm}%
- \phantomsection\label{style:/#1/#2}%
- \texttt{\textcolor{gray}{/#1/}\textcolor{mintgreen}{#2}}\hfill default: %
+ \phantomsection\label{style:/#2/#3}%
+ \texttt{\ifstrempty{#1}\relax{\compat{#1}}\textcolor{gray}{/#2/}\textcolor{mintgreen}{#3}}\hfill default: %
\tex}{%
\end{minipage}}
-\newenvironment{option}{\csname option*\endcsname{yquant}}{\csname endoption*\endcsname}
+\newenvironment{option}[1][]{\csname option*\endcsname[{#1}]{yquant}}{\csname endoption*\endcsname}
\newsavebox\codeexamplebox
\newenvironment{codeexample}{%
@@ -112,21 +115,26 @@
}
\def\bd@boxextra#1{%
- \node[anchor=north west] at (current bounding box.north east) {\hskip7pt#1};%
+ \node[anchor=north east, overlay] at (current bounding box.north west) {#1\hskip7pt};%
}
\newcommand*\bd@boxintro[5]{%
\begingroup%
\setlength{\parskip}{0pt}%
\setlength{\parindent}{0pt}%
- \ifstrempty{#5}{%
+ \edef\tmp{#5}%
+ \ifx\tmp\empty%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi{%
\begin{mdframed}[style=bdBox, backgroundcolor=#4, linecolor=#2,
firstextra=\bd@boxextra{#1}, singleextra=\bd@boxextra{#1}]%
}{%
\begin{mdframed}[style=bdBox, backgroundcolor=#4,
frametitlefont=\bfseries\sffamily\color{#3},
frametitlebackgroundcolor=#2,
- frametitle={\strut#5}, linecolor=#2,
+ frametitle={\strut\tmp}, linecolor=#2,
firstextra=\bd@boxextra{#1}, singleextra=\bd@boxextra{#1}]%
}%
\ignorespaces%
@@ -154,18 +162,22 @@
}
\newenvironment*{warning}[1][]{%
\bd@boxintro{\raisebox{\baselineskip-\height-6.5pt}{\includegraphics[width=1cm]{Warning.pdf}}}%
- {boxRedHead}{white}{boxRedBody}{#1}%
+ {boxRedHead}{white}{boxRedBody}{\unexpanded{#1}}%
\ignorespaces%
}{%
\bd@boxoutro%
}
-\newenvironment*{example}[1][]{%
- \bd@boxintro{\raisebox{\baselineskip-\height-6.5pt}{\includegraphics[width=1cm]{Bulb.png}}}%
- {boxBlueHead}{white}{boxBlueBody}{#1}%
+\def\example{\@ifnextchar<\example@i{\example@i<>}}
+\def\example@i<#1>{\@ifnextchar[{\example@ii<{#1}>}{\example@ii<{#1}>[]}}
+\long\def\example@ii<#1>[#2]{%
+ \bd@boxintro{\ifstrempty{#1}{}{\ifstrempty{#2}{\compat{#1}}{}}%
+ \raisebox{\baselineskip-\height-6.5pt}{%
+ \includegraphics[width=1cm]{Bulb.png}%
+ }}{boxBlueHead}{white}{boxBlueBody}%
+ {\ifstrempty{#1}{}{\ifstrempty{#2}{}{\unexpanded{\compat{#1}}}}\unexpanded{#2}}%
\ignorespaces%
-}{%
- \bd@boxoutro%
}
+\let\endexample=\bd@boxoutro
% END_FOLD
\def\TikZ{\textcolor{brown}{Ti\textit kZ}}
@@ -178,10 +190,16 @@
\def\ketbra#1#2{\ket{#1}\!\bra{#2}}
\frenchspacing
-\RequirePackage{scrlayer-scrpage}
+\RequirePackage{scrlayer-scrpage,scrlayer-notecolumn}
\setcounter{tocdepth}{\subsectiontocdepth}
\KOMAoptions{DIV=8}
-\addtokomafont{section}{\clearpage}
+\newcommand*{\the@orig@section}{}
+\let\the@orig@section=\section
+\renewcommand*{\section}{%
+ \clearpage%
+ \the@orig@section%
+}
+\addtokomafont{notecolumn.marginpar}{\footnotesize\RaggedRight}
\recalctypearea
\begin{document}
@@ -190,18 +208,18 @@
\noindent This manual introduces \Yquant, a \LaTeX\hyp only package that outputs quantum circuits.
They are entered using a human\hyp readable language that, even from the source code, allows for a fluent understanding of the logic that underlies the circuit.
\Yquant{} internally builds on \TikZ{} and can be easily combined with arbitrary \LaTeX{} code.
- More than forty pages of examples complement the formal manual.
+ More than fifty pages of examples complement the formal manual.
\end{abstract}
\tableofcontents
-
- \clearpage
+
\section{Introduction}
This document outlines the scope and usage of the \Yquant{} package.
It contains both a reference and a huge number of examples.
\Yquant{} is a package that makes typesetting quantum circuits easy; the package is available on CTAN.
- This alpha version~0.3.3 \emph{should} be stable and interfaces are not very likely to change in an incompatible way in the future.
- Please do report all issues and desirable additions.
-
+ This beta version~0.4 \emph{should} be stable and interfaces are not very likely to change in an incompatible way in the future.
+ \compat{New in 0.4}Sometimes, backwards\hyp incompatible changes are required or advisable, in which case a compatibility setting will allow to revert back to the old behavior (rather, to maximize compatibility, this is an opt\hyp in setting: unless you choose the new behavior, you will get the old one).
+ Please do report all issues and desirable additions on \href{https://github.com/projekter/yquant/issues}{GitHub}.
+
\subsection{How to read the manual}
The probably fastest way to start using \Yquant{} is by just scanning through the examples in \cref{sec:examples}.
A more formal description of the \Yquant{} grammar and its fundamental concepts can be found in \cref{sec:grammar}.
@@ -209,13 +227,16 @@
The full list of all available gates is provided in \cref{sec:gates}.
Finally, you may find that \Yquant{} \emph{almost} does what you want, but there is some final tweak that you cannot achieve\dots.
Then, have a look at \cref{sec:tikz} (or \cref{sec:alt}).
-
+
\subsection{Installation}
The recommended way of installation is through CTAN.
- A direct installation from this Git repository to obtain the latest additions and features is be possible by just cloning it to a path visible to your \TeX{} compiler.
+ A direct installation from the Git repository to obtain the latest additions and features is be possible by just cloning it to a path visible to your \TeX{} compiler.
+ For example, you may put the source files in the same directory as your document (if you just want to give a try), or you may extract them to \texttt{tex/latex/yquant} in your local \texttt{texmf} (followed by an update of the file name database).
While the repository may contain new additions, they are not thoroughly tested until they end up on CTAN; features that are not documented in this manual are entirely unreliable.
- For example, you may put them in the same directory as your document (if you just want to give a try), or you may extract them to \texttt{tex/latex/yquant} in your local \texttt{texmf} (followed by an update of the file name database).
-
+
+ \compat{New in 0.4}The CTAN repository reflects the most current version tag on Git; the \href{https://github.com/projekter/yquant/releases}{Releases} section on GitHub additionally provides a single\hyp file version of the main package, which can for example conveniently be included in arXiv submissions.
+ Note that the arXiv currently provides \Yquant{}~0.3.2 out\hyp of\hyp the\hyp box.
+
\subsection{Purpose of \Yquant, alternatives}\label{sec:alt}
\Yquant{} is the acronym for ``yet another quantum circuit package.''
This highlights the fact that nothing that this package provides cannot be achieved by other means.
@@ -232,9 +253,9 @@
Consequently, the user is restricted to the set of features that \pkg{qasm} directly offers (which is small).
Changes to the output, while possible, will be overwritten if \texttt{qasm2circ} is run again.
\pkg{qasm} output often looks sub\hyp optimal do to the fact that, e.g., rectangles are made up of four lines that do not properly connect and give a crumbly general feeling.
-
+
Note that since version~0.3, \Yquant{} understands \pkg{qasm} syntax, see \cref{sec:foreign:qasm}.
-
+
Maintenance status: last update of \pkg{qasm} in 2005. Also, \pkg{xy} was last updated in 2013, and the script is not compatible out\hyp of\hyp the\hyp box with Python~3, though an automatic conversion should work.
\item \pkg{qcircuit} is probably the most\hyp widely used package.
It provides commands that make it much easier to create quantum circuits using the \pkg{xy} package.
@@ -242,13 +263,13 @@
This is particularly true for multi\hyp qubit gates.
Additionally, the \tex!\xymatrix! syntax is also somewhat cryptic.
\pkg{qcircuit} provides some flexibility within the limits of \pkg{xy} as to configuring the output.
-
+
Maintenance status: last update in 2018; and remember this is \pkg{xy} based, with last update in 2013.
\item \pkg{quantikz} is a relatively recent package that, following the same grid\hyp based approach as \pkg{qcircuit}, instead builds on \TikZ{} as a backend.
As a consequence, it provides the full flexibility of customization that \TikZ{} offers, where hardly anything cannot be done.
It also reduces burdens of the \pkg{xy} syntax.
However, the disadvantages of the grid\hyp based syntax still remain.
-
+
Maintenance status: last update in 2020; the underlying \TikZ{} is actively maintained again by now.
\item \pkg{qpic} follows the approach of \pkg{qasm}: It makes use of an external Python program that reads the quantum circuits in an own language and converts them into \TikZ{} commands.
The language \pkg{qpic} follows is much more powerful than \pkg{qasm}'s.
@@ -256,11 +277,11 @@
Being an external program, \pkg{qpic}'s intrinsic set of features (including, e.g., vertically set circuits) are huge.
However, the language \pkg{qpic} uses cannot be understood without a detailed study of the manual, it appears to have been designed with the aim to minimize the length of command names.
A disadvantage of external programs is that the amount of space gates need is not accessible by the script; hence, manual intervention may be required.
-
- Maintenance status: last update in 2016; the underlying \TikZ{} is actively maintained, and the script is compatible with Python~3.
+
+ Maintenance status: last update in 2020; the underlying \TikZ{} is actively maintained, and the script is compatible with Python~3.
\end{itemize}
\end{itemize}
-
+
\subsection{License}
This work may be distributed and/or modified under the conditions of the \LaTeX{} Project Public License, either version~1.3c of this license or (at your option) any later version.
The latest version of this license is in
@@ -268,20 +289,20 @@
\url{http://www.latex-project.org/lppl.txt}
\end{center}
and version~1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later.
-
+
\section{Basic elements of \Yquant}\label{sec:grammar}
\Yquant, as some of the aforementioned packages, builds on \TikZ.
Its basic syntax is similar to \pkg{pgfplots}: Start a \tex!tikzpicture! environment (perhaps passing some options); inside, start a \tex!yquant! environment.
-
+
Inside the \tex!yquant! environment, \TeX{} will now understand the \Yquant{} language---so \Yquant{} falls into the same category as \pkg{qasm} and \pkg{qpic}, providing a human\hyp readable language for the specification of the circuit that is not fixed to the actual layout.
-
+
However, \Yquant{} is a \TeX\hyp only package (actually, \hologo{LaTeX2e}, but not \hologo{LaTeX3}) that requires no external script to run---so it also falls into the same category as \pkg{qcircuit} and \pkg{quantikz}.
-
+
Since it runs entirely within \TeX, you can at any time interject \Yquant{} code with arbitrary \TeX{} or \TikZ{} code (though if it is ``too arbitrary,'' you may need to restart the \Yquant{} interpreter).
-
+
\subsection{General usage}
- \begin{minted}{tex}
-% preamble: \usepackage{yquant}
+ \begin{minted}[escapeinside=||]{tex}
+% preamble: |\compat{Changed in 0.4}|\usepackage[compat=<version>]{yquant}
\begin{tikzpicture}% tikz options possible
% tikz commands go here
\begin{yquant}% yquant options possible. Watch the newlines!
@@ -290,10 +311,10 @@
% tikz commands go here
\end{tikzpicture}
\end{minted}
-
- Note that \Yquant{} depends on \pkg{etoolbox}, \TikZ, and \pkg{trimspaces}.
- Additionally, it requires a moderately recent version of \hologo{LaTeX2e}, using either \hologo{LuaLaTeX}, or (untested), \hologo{pdfLaTeX} or \hologo{XeLaTeX}.
-
+
+ Note that \Yquant{} depends on \pkg{etoolbox}, \TikZ, \pkg{trimspaces}, and \compat{Changed in 0.4}\pkg{xkeyval}.
+ Additionally, it requires a moderately recent version of \hologo{LaTeX2e}, using either \hologo{LuaLaTeX}; or (untested) \hologo{pdfLaTeX} or \hologo{XeLaTeX}.
+
\begin{warning}[Optional arguments]
The optional arguments for the \tex!yquant! environment have to appear \emph{on the same line} as the environment itself.
If you want to put the arguments into a new line, it is crucial to mask the line break by putting a comment symbol after the environment: \tex!\begin{yquant}%!.
@@ -301,23 +322,46 @@
Finally note that in (non\hyp fragile) \pkg{beamer} frames, this discrimination between spaces and new lines does not work; the optional arguments will always be counted for the environment, not for the gate.
In this case, you can either declare the frame as fragile or (recommended) introduce a blank line between the environment and the options for the first gate.
\end{warning}
-
+
+ \begin{warning}[\compat{New in 0.4}Compatibility mode]
+ Sometimes, continued development shows that certain choices of interfaces, configuration, or behavior are less ideal than originally thought.
+ In other cases, bugs are detected and fixed.
+ Both may lead to a change in the look of circuits developed with a previous version of \Yquant{} or even---though this should rarely, if ever, happen, and should be filed as a bug---prevent compilation in the new version.
+
+ For this reason, \Yquant{} offers a compatibility key that is highly recommended to be specified as a package option.
+ This allows certain features that are expected to break old layout or functionality to revert to their previous behavior.
+ Every feature affected by the \texttt{compat} key is documented in this manual.
+ Once a compatibility version is selected in a document, it cannot be changed any more.
+ Compatibility versions will include the major and minor, but not the patch level version number.
+ Bugs that clearly violated behavior described in this manual will be fixed without a possibility to revert back.
+ Changes that are not supposed to result in a (more than marginally) different result will not be included in the compatibility layer.
+ If you find this to be wrong in a particular case, please file a bug report.
+
+ When starting a new document, it is recommended to leave out the compatibility key at first compilation.
+ \Yquant{} will then issue a warning from which you can infer the recommended setting, corresponding to the current version.
+ You should then pass the appropriate version to the \tex!\usepackage! command.
+ For example, this manual corresponds to \tex!\usepackage[compat=0.4]{yquant}!.
+
+ Allowed values for \texttt{compat} are \texttt{newest} (discouraged), which equals \texttt{0.4}, and \texttt{0.3} (default).
+ \end{warning}
+
\subsection{Starred vs. unstarred environment}
You may choose to use either the \tex!yquant! or the \tex!yquant*! environment.
The former one requires you to define all your registers before you use them (though you may decide to define a register after some operations on \emph{different} registers, but before its first usage).
-
+
The starred form additionally supports the use of undeclared registers: it basically declares a registers upon its first usage.
- This will always be a \texttt{qubit} register; but if you use the corresponding option and the first usage is an \gate{init} command, you may overwrite this.
- Subcircuits always use the unstarred form.
-
- Additionally, if you refer to the index $i$ of a vector register of length $L < i$, this register will automatically be enlarged to $i \coloneq L$.
+ This will always be a \texttt{qubit} register; but if you use the corresponding attribute and the first usage is an \gate{init} command, you may overwrite this.
+
+ \compat{New in 0.2}Subcircuits always use the unstarred form.
+
+ \compat{New in 0.1.1}Additionally, if you refer to the index $i$ of a vector register of length $L < i$, this register will automatically be enlarged to $i \coloneq L$.
It is also possible to convert a scalar register into a vector register in this manner.
To enlarge a register in the unstarred environment, you must precede the number of registers to be added in the second declaration by a plus sign.
Note that in this manner, you may even create discontiguous vectors.
-
+
\emph{This might be a good point to proceed to the examples \cref{sec:examples}.}
-
- \subsection{Formal syntax}
+
+ \subsection[Formal syntax]{\compat{Enhanced in 0.1.2, 0.1.1}Formal syntax}
Every \Yquant{} command has the same structure (described here in EBNF syntax):
\begin{minted}{ebnf}
Command = { Arguments }, ?command?, [ Value ], [ RegisterList ], Controls, ";";
@@ -345,7 +389,7 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
Virtually every comma in the EBNF notation may consist of an arbitrary (including zero) number of whitespaces.
Not all combinations that can be constructed by this grammar are actually allowed semantically; but it would make the grammar too verbose to spell this out in detail.
Deviations are noted in this manual.
-
+
Valid values for
\begin{BVerbatim}[commandchars=\\\{\}]
\PYG{n+ni}{?command?}
@@ -370,7 +414,7 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
\PYG{l+s+s2}{\PYGZdq{}+\PYGZdq{}}
\end{BVerbatim}
).
-
+
\subsection{Registers}\label{sec:registers}
Every quantum circuit is structured by means of \emph{registers}.
A register has a \emph{type} that specifies how its wire is drawn, and that may even change during its lifetime.
@@ -389,62 +433,63 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
However, it can also be directly declared, which on rare occasions might be necessary (its type can then be changed by means of an \gate{init} or \gate{setwire} pseudo\hyp gate).
If you want to declare a register only at a certain horizontal position in the circuit, consider using the \texttt{after} argument instead.
\end{enumerate}
-
+
Registers must be declared before they can be used (though in the \tex!yquant*! environment, this declaration may be implicit, creating a \gate{qubit} register).
-
+
Registers can have a vector character, i.e., not only a \emph{name}, but also an \emph{index} (or, in the declaration, a \emph{length}).
The index (zero\hyp based) or length is specified in square brackets following the name, which closely mimics the OpenQASM language.
-
- Since version 0.1.1, vector registers may be non\hyp contiguous: Whenever you create a bunch of registers, it is put at the bottom of the circuit.
+
+ \compat{New in 0.1.1}Vector registers may be non\hyp contiguous: Whenever you create a bunch of registers, it is put at the bottom of the circuit.
If you later on again create registers of the same name---either implicitly in the \tex!yquant*! environment, or explicitly by preceding the length of the vectors entries to be added by a plus, as in \yquant!qubit a[+3];!---they will be put to what is \emph{now} the bottom of the circuit, even if some other registers are interspersed.
-
+
Registers are referenced---i.e., used in operations---by their name and index.
If the latter is omitted, all indices of the register are targeted.
Multiple registers can be referenced by joining their names in a comma\hyp separated list, or by means of a range specifier: give the name of the first (topmost), a dash, and the last (bottom\hyp most) register.
Both are inclusive.
In a range specifier, omitting the start name means that the range begins at the first known register; omitting the end name means that the range ends at the last known (at the moment of its use) register.
Omitting both indicates a range over all known registers.
-
- Since version 0.1.1, it is also possible to use comma\hyp separated lists and ranges within the indices themselves, so that, e.g., \yquant!a[0, 2, 5-], b[-2]! will target the zeroth and second index of \yquant!a!; the remaining indices of \yquant!a! starting from five; and the first three indices of \yquant!b!.
+
+ \compat{New in 0.1.1}It is also possible to use comma\hyp separated lists and ranges within the indices themselves, so that, e.g., \yquant!a[0, 2, 5-], b[-2]! will target the zeroth and second index of \yquant!a!; the remaining indices of \yquant!a! starting from five; and the first three indices of \yquant!b!.
However, if you use an \emph{outer} range (i.e., a range between indices of registers with different names), the initial and final register of the range must be unique, i.e., either you omit the index (targeting the first or last register with the given name) or specify a single one.
-
+
\begin{warning}[Ranges and discontiguous registers]
Assume a configuration in which the vector register \yquant!a! begins with one qubit, then the single register \yquant!b! follows, and after that \yquant!a! is continued with another qubit.
-
+
The range \yquant!a-b! will target \yquant!a[0]! and \yquant!b[0]!, but not \yquant!a[1]!.
As \yquant!a! is used as the initial register in the range without an explicit index specification, \Yquant{} automatically translates this into \yquant!a[0]!, while \yquant!b!, being used as the final register, is automatically translated into the last register of name \yquant!b! (which here happens to be \yquant!b[0]!).
Ranges between different register names (outer ranges) are \emph{visual} ranges, i.e., they refer to the top\hyp to\hyp bottom order that is visible.
Consequently, the register \yquant!a[1]! is left out since it is visually below the others.
-
+
Likewise, the range \yquant!b-a! will target \yquant!b[0]! and \yquant!a[1]!.
-
+
Ranges within indices are \emph{logical} ranges.
Hence, \yquant!a!, \yquant!a[-]!, \yquant!a[0-]!, \yquant!a[-1]!, and \yquant!a[0-1]! are all equivalent: they all refer to the registers \yquant!a[0]! and \yquant!a[1]!, but never to \yquant!b!, regardless of any visual position.
\end{warning}
-
+
All that was said so far refers to the operation being carried out on each of the registers \emph{individually}, i.e., producing several copies of the operation.
- This is different from using the operation multiple times on the individual single registers only with regard to the vertical positioning: if specified as a register list with one operation, all copies of the operation will be aligned at the same vertical position (as if an \gate{align} command had been carried out before).
+ This is different from using the operation multiple times on the individual single registers only with regard to the horizontal positioning: if specified as a register list with one operation, all copies of the operation will be aligned at the same horizontal middle axis (for gates with the same width on each register, this is the same as issuing an \gate{align} command before performing the operations individually).
\begin{warning}
- It is forbidden (in the sense of ``not useful,'' but \Yquant{} does not check for this) to list the same register multiple times (explicitly or via ranges) in one operation.
+ It is forbidden (in the sense of ``not useful and giving unexpected output,'' but \Yquant{} does not check for this) to list the same register multiple times (explicitly or via ranges) in one operation.
\end{warning}
-
+
Instead of copies of single\hyp register operations, one might want to carry out a multi\hyp register operation.
In this case, the desired list of registers (comma separated, range, or both) must be surrounded by parentheses.
It is possible to mix single- and multi\hyp register operations arbitrarily.
In an index list, you may also choose to surround only certain indices with parenthesis, provided the whole register is not already a multi\hyp register.
\begin{warning}
Note that some gates, such as the \gate{swap} gate, always require (semantically, not grammatically) multi\hyp register operations.
- Since version 0.1.2, the number of constituents is no longer fixed; while a \gate{swap} gate with more than two targets is no longer well\hyp defined, other registers such as \gate{zz} may still be useful.
+ \compat{Changed in 0.1.2}The number of constituents is not stipulated; while a \gate{swap} gate with more than two targets is no longer well\hyp defined, other registers such as \gate{zz} may still be useful.
\Yquant{} will prevent you from using a gate in a multi\hyp qubit setting when it may only be used for single registers.
\end{warning}
Typically, multi\hyp register operations should only be carried out on adjacent registers---but sometimes, one might want to carry out a multi\hyp qubit operation on a visually discontiguous set of registers (which, due to a particular quantum computer topology, might even be physically feasible).
- Since version 0.1.2, \Yquant{} supports these discontiguous operations explicitly (before, a single gate was drawn with all intermediate non\hyp affected register lines laying on top).
+ \compat{New in 0.1.2}\Yquant{} supports these discontiguous operations explicitly.
It will draw a \emph{main} part of the gate at the first contiguous slice of registers in the target list---you may select another register for this part by preceding the name or index with a star (which, contrary to the simplified grammar, may only occur \emph{once} in a target specification).
All other contiguous slices of target registers will be drawn in a \emph{subordinate style} for this gate.
Finally, all slices will be connected by a single vertical line with the style \style{/yquant/every multi line}.
- Subcircuits, supported as of version~0.2, will always span the full region from the first to the last register specified in a multi\hyp qubit gate.
- This is due to the fact that they may contain arbitrary ancilla registers which may be positioned somewhere in between the parts that actually constitute the subcircuit---so this whole region must not have wires of other registers crossing.
- \begin{warning}[Discontiguous targets and control lines]
+ \compat{New in 0.2}Subcircuits will always span the full region from the first to the last register specified in a multi\hyp qubit gate.
+ This is due to the fact that they may contain arbitrary ancilla registers which may be positioned somewhere in between the parts that actually constitute the subcircuit---surrounding this with a scattered set of connected boxes would look quite unpleasant.
+ \clearpage
+ \begin{warning}[\compat{Improved in 0.1.2}Discontiguous targets and control lines]
A control line extends from the very first to the very last affected register in an operation.
A sub\hyp gate line that is used for discontiguous registers will only span the range of a multi\hyp register.
This distinction becomes crucial if you want to carry out a \emph{controlled} operation on more than one multi\hyp register, where at least one is discontiguous.
@@ -456,44 +501,43 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
\begin{warning}
There is no established style for discontiguous gates.
Note that at the moment, main and subordinate style coincide for all gates except for the \gate{measure} gate with a value.
- In order to still make it possible to visually distinguish discontiguous multi\hyp register gates operating on slices of a single register from just a bunch of single\hyp register gates that are executed in a parallel manner, if controls are present, \Yquant's default vertical line style for the former case is a wavy line instead of a straight one.
+ In order to still make it possible to visually distinguish discontiguous multi\hyp register gates operating on slices of a single register from just a bunch of single\hyp register gates that are executed in a parallel manner if controls are present, \Yquant's default vertical line style for the former case is a wavy line instead of a straight one.
Still, the meaning of this should probably be explained.
Please feel free to submit issues or pull requests with propositions of how default styles or alternative subordinate gate shapes may additionally help to mitigate the problem.
\end{warning}
-
+
\subsection{Arguments}
Every command may take one or multiple arguments.
Those are specified in square brackets that precede the command itself.
The content of those square brackets is essentially fed to a \tex!\pgfkeys!-like macro.
- The default path is set appropriately such that the arguments of the command can be accessed without and path specifiers.
+ The default path is set appropriately such that the arguments of the command can be accessed without path specifiers.
If the key is not a valid argument for the command or a global argument and it is not given by an absolute path, it is searched for in the \texttt{/yquant} namespace.
If it cannot be found there, it is passed to \style{/yquant/operator style}.
-
+
Note that commands may have required arguments.
If a required argument is missing, an error will be issued.
-
+
The \texttt{value} attribute can alternatively be given inside curly brackets after the command name and before the register specification.
This has the advantage that special characters such as a closing square bracket need not be escaped.
If both alternatives are present, the value inside curly brackets takes precedence and a warning is issued.
-
+
\subsection{Controls}
Lots of gates may have controls, i.e., they are only to be executed if some other gate is set or unset.
The former case is called a \emph{positive control}, the latter one a \emph{negative control}.
Those are indicated by filled and empty circles on the control registers and a vertical line that joins the registers that belong together.
-
+
The gate specification is followed by the list of target registers.
By then writing a pipe (``\yquant!|!''), the list of positive controls is introduced; this mimics the mathematical syntax ``conditioned on'' for probabilities or ``given'' for sets.
If there are no positive controls, the list may be empty or, together with the pipe, omitted.
Preceded by a tilde (``\yquant!~!''), the list of negative controls then follows; this mimics the syntax of many programming languages that denote logical negation by a tilde.
- If there are no negative controls, the list may be empty or, together with the pipe, omitted.
-
- \clearpage
- \subsection{Importing circuits from files}\label{sec:import}
- Since version~0.2, \Yquant{} provides a simple way to import circuits that are stored in external files.
+ If there are no negative controls, the list may be empty or, together with the tilde, omitted.
+
+ \subsection[Importing circuit from files]{\compat{New in 0.2}Importing circuits from files}\label{sec:import}
+ \Yquant{} provides a simple way to import circuits that are stored in external files.
The macro \tex!\yquantimport! can be used in three different contexts:
\begin{itemize}
\item Outside of a \TikZ{} picture environment. \\
- In this case, \tex!\yquantimport[<options>]{<filename>}! will be equivalent to
+ Here, \tex!\yquantimport[<options>]{<filename>}! will be equivalent to
\begin{minted}{tex}
\begin{tikzpicture}
\begin{yquant}[<options>]
@@ -513,30 +557,31 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
\end{itemize}
Note that \Yquant{} internally uses plain \TeX's \tex!\import! command (i.e., \tex!\@@import! in \LaTeX).
However, when the \pkg{import} package is loaded, it uses \\ \tex!\subimport{\yquantimportpath}{<filename>}!, where \tex!\yquantimportpath! defaults to \texttt{./}---so by changing this, files from other folders may be imported which by themselves again include other files, and the relative path resolution will work.
-
+
Note that you may in particular import the content of a \gate{subcircuit}.
-
+
\subsection{Defining own gates}
\begin{warning}[Scope]
All gate declarations are always global.
\end{warning}
-
- Since version~0.2.1, if you want to define a gate that corresponds to a single \gate{box} gate with a certain pre\hyp defined content, you may use the macro\\
+
+ \compat{New in 0.2.1}If you want to define a gate that corresponds to a single \gate{box} gate with a certain pre\hyp defined content, you may use the macro\\
\tex!\yquantdefinebox{<name>}[<style>]{<content>}!, which is far more efficient than the much more general \tex!\yquantdefinegate! introduced below.
- It works in the following way:
+ It only allows for single\hyp register usage; use \compat{New in 0.4}\tex!\yquantdefinemultibox! with the same arguments if you want to allow the gate to be used in a multi\hyp register gate fashion.
+ The macros work in the following way:
\begin{itemize}
- \item It creates a new gate with name \texttt{<name>} that can be accessed as all the other build\hyp in gates.
+ \item They create a new gate with name \texttt{<name>} that can be accessed as all the other build\hyp in gates.
Note that \texttt{<name>} is case\hyp insensitive and may not contain spaces.
Special characters are allowed if \TeX{} can cope with them (i.e., no comment signs, no unbalanced braces, no backslashes...).
- \item It creates a style \style{/yquant/operators/every <name>} and assigns the optional \texttt{<style>} to it.
+ \item They create a style \style{/yquant/operators/every <name>} and assign the optional \texttt{<style>} to it.
If no style is provided, the default style will inherit from \style{/yquant/operators/every box}.
- \item It defines \texttt{<content>} to be the value that is written into the box.
+ \item They define \texttt{<content>} to be the value that is written into the box.
This \texttt{<content>} is expanded in a protected manner at the time of gate declaration.
You may need to prefix fragile macros by \tex!\protect!.
\end{itemize}
-
- Sometimes, you may wish to define gates that are more than just a single box---perhaps a succession of multiple gates or even multi\hyp register gates with individual operations on the input registers. \\
- Since version~0.2, \Yquant{} provides a simple macro that allows this.
+
+ \compat{New in 0.2}Sometimes, you may wish to define gates that are more than just a single box---perhaps a succession of multiple gates or even multi\hyp register gates with individual operations on the input registers.
+ \Yquant{} provides a simple macro that allows this.
The macro \tex!\yquantdefinegate{<name>}[<style>]{<content>}! works in the following way:
\begin{itemize}
\item It creates a new gate with name \texttt{<name>} that can be accessed as all the other built\hyp in gates.
@@ -558,310 +603,394 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
\end{enumerate}
Gates defined in this way can only make use of the default gates or other custom gates.
They do not accept custom arguments, and it is not possible to declare own, custom shapes in this way (though other predefined shapes may be used).
- If they are used in a multi\hyp qubit manner, they will never be split into contiguous slices (but their content will be, so if you use the default style that turns off the box, the only way to notice this is that intermediate unaffected gates will not be allowed to place gates within the custom gate).
-
+ If they are used in a multi\hyp qubit manner, they will never be split into contiguous slices (but their content will be, so if you use the default style that turns off the box, the only way to notice this is that intermediate unaffected registers will not be allowed to have gates visually within the rectangle that would bound the custom gate).
+
\begin{warning}[Redefining existing gates]
The above macros will issue an error if the gate already exists.
- You can use \tex!\yquantredefinebox! or \tex!\yquantredefinegate! to overwrite existing gate definitions.
+ You can use \tex!\yquantredefinebox!, \tex!\yquantredefinemultibox! (use the appropriate command for the \emph{new} definition), or \tex!\yquantredefinegate! to overwrite existing gate definitions.
Note that this will overwrite \emph{any} gate, even the built\hyp in ones.
-
+
Generally, it is discouraged to make use of this possibility.
For custom gates, if you redefine a gate as a box which was previously a general subcircuit\hyp based gate, the macro that contains the subcircuit will still be held in memory.
Overwriting built\hyp in gates will not clear the attributes associated to this gate (though required attributes will no longer be required afterwards).
Again, this is not a problem but prevents \Yquant{} from issuing potentially helpful error message if such a---now meaningless---attribute is used.
-
+
Finally, once a built\hyp in gate is overwritten, it cannot be restored.
In particular, the register creation pseudo\hyp gates \gate{qubit}, \gate{cbit}, \gate{qubits}, and \gate{nobit} perform some magic that cannot be mimicked with custom gates.
\end{warning}
-
+
More advanced declaration of custom gates requires the use of backend macros.
Refer to \texttt{yquant-lang.tex} for this.
+ Note that the backend interface changed in version~0.4.
For the declaration of custom shapes, see \texttt{yquant-shapes.tex} for examples.
-
+
\section{Configuration}\label{sec:config}
\Yquant{} uses \pkg{pgfkeys} to control its options, which are located in the path \texttt{/yquant}.
The following list contains all options and styles that are recognized, apart from gate arguments.
Those are listed together with their operations.
-
+
\subsection{Circuit layout}\unskipOpt
- \begin{option}{register/minimum height}!3mm!
- \Yquant{} automatically determines the total height of a register as the height of the largest operation.
+ \begin{option}[Changed in 0.4]{register/minimum height}!1.5mm!
+ \Yquant{} automatically determines the height (extent from wire to top boundary) of a register as the height of the largest operation.
This might be too small for two reasons:
\begin{itemize}
\item if the register is used only with small gates (e.g., only as a control, or as a swap), and it does not have a label (or one containing only x\hyp height letters).
- \item if the register is used only with multi\hyp qubit gates.
- For those, \Yquant{} cannot decide where to put the height---and it is easy to see that an equal distribution over all affected registers is not necessarily a good solution.
- Hence, multi\hyp qubit gates are ignored in the height calculation.
- Usually, this is not a problem since those operations are large enough as they take the height of all involved registers and separations.
+ \item if you manually turned off height calculation or multi\hyp extent calculation for a large gate.
+ \Yquant{} will then not consider the vertical extent of this gate, which might consequently lead to undesirable overlaps.
\end{itemize}
This key provides an easy alleviation of the problem by requiring a minimal height for every register.
+ As the value of this key is relevant at the time of register declaration, it can also be changed for each register individually.
+
+ Note that this key is affected by the \texttt{compat} setting.
+ Before version \texttt{0.4}, there was no \style{/yquant/register/minimum depth} key.
+ In this compatibility setting, passing the value $x$ to this key will set both height and depth to $\frac x2$.
+ The default for $x$ is then \texttt{3mm}.
\end{option}
-
+
+ \begin{option}[New in 0.4]{register/minimum depth}!1.5mm!
+ \emph{see} \style{/yquant/register/minimum height}
+
+ This key allows to specify a minimum depth (extent from wire to bottom boundary) for a register.
+
+ Note that this key is affected by the \texttt{compat} setting.
+ Before version \texttt{0.4}, this key will not be available.
+ \end{option}
+
\begin{option}{register/separation}!1mm!
This key controls the amount of vertical space that is inserted between two successive registers.
Half of this value is also the length that multi\hyp\gate{init} or multi\hyp\gate{output} braces extend beyond the mid position of the register.
\end{option}
-
+
\begin{option}{operator/minimum width}!3mm!
\Yquant{} automatically determines the width of an operator according to its content.
However, single\hyp letter boxes are among the most common operators, and giving them slightly different widths would result in a very uneven spacing, as \Yquant{} does not use a grid layout but stacks the operators horizontally one after each other.
Hence, this key provides a minimum width that will be set for every operator.
This does not imply that the \emph{visual} appearance (i.e., the \texttt{x radius} key) is enlarged, but that operators of a smaller actual width will be centered in a virtual box of the minimum width.
\end{option}
-
+
\begin{option}{operator/separation}!1mm!
- This key controls the amount of horizontal space that is inserted between two successive operators.
+ This key controls the amount of horizontal space that is inserted between two successive operators and at the beginning and end of a circuit.
\end{option}
-
- \begin{option}{operator/multi warning}!true!
- If this key is \texttt{true}, a warning is displayed whenever more than a single multi\hyp register gate, where at least one is discontiguous, are employed together with controls.
+
+ \begin{option}[New in 0.1.2]{operator/multi warning}!true!
+ If this key is \texttt{true}, a warning is displayed whenever more than a single multi\hyp register gate, where at least one is discontiguous, is employed together with controls.
Even if a visual distinction between control and multi\hyp qubit line may be possible (depending on the style in use), they will overlap and produce unaesthetic output.
You may disable this warning globally, on a per\hyp circuit, or even on a per\hyp gate basis.
\end{option}
-
+
\subsection{Register creation}\unskipOpt
\begin{option}{register/default name}!\regidx!
The printed name that is used by default if a new register is created explicitly (\gate{qubit}, \gate{cbit}, \gate{qubits}; not used for \gate{nobit} or for implicit declarations) and no value is specified.
The following macros are available:
\begin{itemize}
- \item \tex!\reg! contains the internal name that is used to identify this register.
+ \item \tex!\reg! contains your name to identify this register.
\item \tex!\idx! contains the index (zero\hyp based) of the current register within a vector register.
\item \tex!\regidx! expands to \tex!\reg! if the register is of length one, and to \tex!\reg[\idx]! else.
\item \tex!\len! contains the length of the current register vector.
\end{itemize}
\end{option}
-
- \begin{option}{every label}!shape=yquant-text, anchor=center, align=right!
+
+ \begin{option}[Changed in 0.4]{every label}!shape=yquant-init, anchor=center, align=right, outer xsep=2pt, /yquant/operator/if multi={draw, decoration={gapped brace, mirror, raise=2pt}, decorate}!
This style is installed for every single register name label (i.e., upon creation and when used with the \gate{init} gate).
The default style allows to use line breaks in the labels.
+ The node shape, \texttt{yquant-init}, will generate a path at its right side, which is replaced by the \texttt{gapped brace} decoration if the gate is used in a multi\hyp register fashion.
+ The decoration is similar to \TikZ's \texttt{brace} decoration, but additionally allows specify the regions in which a line should be drawn by using the \texttt{/tikz/decoration/from to} key, which expects a comma\hyp separated list of dimension ranges, and which is automatically populated by \Yquant.
+
+ Note that if the \texttt{compat} key is below \texttt{0.3}, the multi options are instead read from \style{/yquant/every multi label}.
\end{option}
-
+
\begin{option}{every initial label}!anchor=east!
This style is installed for every single register name label at the left border of the circuit.
- Hence, it is only used for the \gate{init} gate if in the \tex!yquant*! environment, the gate occurs for a new register (which allows to override the default register type).
+ \compat{Changed in 0.4}It is therefore used if a label is specified upon declaration and also for the \gate{init} gate if it happens to be the first gate on an unlabelled register (use a zero\hyp width \gate{hspace} gate before if you want to suppress this).
\end{option}
-
+
\begin{option}{every qubit label}!!
This style is installed for every single register name label of a register of type \gate{qubit}.
\end{option}
-
+
\begin{option}{every cbit label}!!
This style is installed for every single register name label of a register of type \gate{cbit}.
\end{option}
-
+
\begin{option}{every qubits label}!!
This style is installed for every single register name label of a register of type \gate{qubits}.
\end{option}
-
- \begin{option}{every multi label}!shift={(-.075, 0)}, draw, decoration={gapped brace, mirror}, decorate, /yquant/gapped brace/apply shift, every node/.append style={shape=yquant-text, anchor=east, align=right, shift={(-.05, 0)}, pos=-1}!
+
+ \begin{option}[Removed in 0.4\\Changed in 0.1.2]{every multi label}!draw, decoration={gapped brace, mirror, raise=2pt}, decorate!
This style is installed for every register name label that is attached to a multi\hyp qubit register by means of the \gate{init} gate.
- \Yquant{} additionally inserts a straight line that connects the topmost and the bottom\hyp most register at their left ends.
- The default style turns this line into a brace and places the description at the appropriate position.
- The decoration \texttt{gapped brace} allows to additionally specify the regions in which a line should be drawn by using the \texttt{/tikz/decoration/from to} key, which expects a comma\hyp separated list of dimension ranges, and which is automatically populated by \Yquant.
- Since it may happen that the arch of the brace needs to be shifted from the value specified in \texttt{/tikz/decoration/aspect} (else, it would be drawn into a gap), the special key \texttt{/yquant/gapped brace/apply shift} is installed, which transforms the \texttt{pos=-1} specification into a position that corresponds to the actual \texttt{aspect} value.
+
+ Note that this key is only available if the \texttt{compat} setting is smaller than \texttt{0.4}.
+ In newer versions, this is incorporated in \style{/yquant/every label}.
\end{option}
-
- \begin{option}{every input label}!!
+
+ \begin{option}[Removed in 0.4\\New in 0.2]{every input label}!!
This style is installed for every register name label in a \gate{subcircuit} when the register is an input (or input and output) register.
+
+ Note that this key is only available if the \texttt{compat} setting is smaller than \texttt{0.4}; and in this case, it behaves inconsistently, as it is only applied for labels directly specified during creation, but not for initial \gate{init} gates.
\end{option}
-
+
\subsection{Register outputs}\unskipOpt
- \begin{option}{every output}!shape=yquant-text, anchor=west, align=left!
+ \begin{option}[Changed in 0.4]{every output}!shape=yquant-output, anchor=west, align=left, outer xsep=2pt, /yquant/operator/if multi={draw, decoration={gapped brace, raise=2pt}, decorate}!
This style is installed for every \gate{output} label at the end of the circuit.
The default style allows to use line breaks in the labels.
+
+ The node shape, \texttt{yquant-output}, will generate a path at its left side, which is replaced by the \texttt{gapped brace} decoration in the case of multi\hyp register usage.
+ See \style{/yquant/every label} for a more detailed explanation.
\end{option}
-
+
\begin{option}{every qubit output}!!
This style is installed for every \gate{output} label of a register of type \gate{qubit}.
\end{option}
-
+
\begin{option}{every cbit output}!!
This style is installed for every \gate{output} label of a register of type \gate{cbit}.
\end{option}
-
+
\begin{option}{every qubits output}!!
This style is installed for every \gate{output} label of a register of type \gate{qubits}.
\end{option}
-
- \begin{option}{every multi output}!shift={(.075, 0)}, draw, decoration={gapped brace}, decorate, /yquant/gapped brace/apply shift, every node/.append style={shape=yquant-text, anchor=west, align=left, shift={(.05, 0)}, pos=-1}!
+
+ \begin{option}[Removed in 0.4\\Changed in 0.1.2]{every multi output}!draw, decoration={gapped brace, raise=2pt}, decorate!
This style is installed for every \gate{output} label that is attached to a multi\hyp qubit register.
- \Yquant{} additionally inserts a straight line that connects the topmost and the bottom\hyp most register at their right ends.
- The default style turns this line into a brace and places the description at the appropriate position.
- See \style{/yquant/every multi label} for a more detailed explanation.
+
+ Note that this key is only available if the \texttt{compat} setting is smaller than \texttt{0.4}.
+ In newer versions, this is incorporated into \style{/yquant/every output}.
\end{option}
-
+
\subsection{General styling}\unskipOpt
- \begin{option}{every circuit}!every node/.prefix style={transform shape}, every label/.prefix style={transform shape=false}!
+ \begin{option}[Changed in 0.4, 0.1.2]{every circuit}!every node/.prefix style={transform shape}!
Style that is installed for every \tex!yquant! and \tex!yquant*! environment, as if it had been given as an option.
- Since version 0.1.2, the style's default path is, as with all other styles, \texttt{/tikz}.
+ The style's default path is, as with all other styles, \texttt{/tikz}.
+ The style is re\hyp applied for every subcircuit.
The default style will make all nodes (which in particular means, all gates) respect outer canvas transformations.
- Due to \TikZ{} bug \href{https://github.com/pgf-tikz/pgf/issues/843}{\#843}, this must be undone for \texttt{label}s.
- % TODO Note that unless you use a very recent version of \TikZ{} in which bug \href{https://github.com/pgf-tikz/pgf/issues/843}{\#843} was fixed, you might need to add \tex!every label/.prefix style={transform shape=false}! to this style, which undoes the effect for \texttt{label}s.
+
+ If your \TikZ{} version is before 3.1.6a, this style will additionally contain \tex!every label/.prefix style={transform shape=false}!, which undoes the effect for \texttt{label}s (see \TikZ{} bug \href{https://github.com/pgf-tikz/pgf/issues/843}{\#843}).
+ An update is recommended.
\end{option}
-
+
\begin{option}{every wire}!draw!
This style is installed whenever a wire is drawn.
\end{option}
-
+
\begin{option}{every qubit wire}!!
This style is installed whenever a wire for a register of type \gate{qubit} is drawn.
\end{option}
-
+
\begin{option}{every cbit wire}!!
This style is installed whenever a wire for a register of type \gate{cbit} is drawn.
\end{option}
-
+
\begin{option}{every qubits wire}!!
This style is installed whenever a wire for a register of type \gate{qubits} is drawn.
\end{option}
-
+
\begin{option}{every control line}!draw!
This style is used to draw the vertical control line that connects controlled operations and their controls.
\end{option}
-
+
\begin{option}{every control}!shape=yquant-circle, anchor=center, radius=.5mm!
This style is used to draw the node for a control, both positive and negative.
\end{option}
-
+
\begin{option}{every positive control}!fill=black!
This style is installed for every positive control (i.e., one that conditions on the register being in state $\ket1$ or $1$).
\end{option}
-
+
\begin{option}{every negative control}!draw!
This style is installed for every negative control (i.e., one that conditions on the register being in state $\ket0$ or $0$).
\end{option}
-
+
\begin{option}{every operator}!anchor=center!
This style is installed for every gate (and also pseudo\hyp gates such as the \gate{slash} operator) that acts on one or multiple registers.
\end{option}
-
- \begin{option}{every multi line}!draw, decoration={snake, amplitude=.25mm, segment length=5pt}, decorate!
+
+ \begin{option}[New in 0.1.2]{every multi line}!draw, decoration={snake, amplitude=.25mm, segment length=5pt}, decorate!
This style is used to draw the vertical line that connects discontiguous slices of sub\hyp gates.
\end{option}
-
+
\begin{option}{this operator}!!
This style is appended to the current style installed for an operator; it should be used only locally to overwrite any global configuration effect.
\end{option}
-
+
\begin{option}{this control}!!
This style is appended to the current style installed for a control; it should be used only locally to overwrite any global configuration effect.
\end{option}
-
+
\begin{option}{operator style}!/yquant/this operator/.append style={#1}!
This is a shorthand that can be used to modify the appearance of the current operator.
\end{option}
-
+
\begin{option}{control style}!/yquant/every control line/.append style={#1}, /yquant/this control/.append style={#1}!
This is a shorthand that can be used to modify the appearance of the current control and its associated line.
\end{option}
-
+
\begin{option}{style}!/yquant/operator style={#1}, /yquant/control style={#1}!
This is a shorthand that modifies the appearance of both the current operator and any controls or control lines.
\end{option}
-
- \begin{option}{operator/multi as single}!/yquant/every multi line/.style=/yquant/every control line!
- This option is automatically set for certain gates such as the \gate{swap} or the \gate{zz} gate.
+
+ \begin{option}[New in 0.1.2]{operator/multi as single}!/yquant/every multi line/.style=/yquant/every control line!
+ This style is automatically set for certain gates such as the \gate{swap} or the \gate{zz} gate.
For those gates, neighboring registers will be treated as discontiguous; and this style will enforce their connecting line to have the style used by control lines.
-
+
The default \style{/yquant/every multi line} is a wavy line; this allows to distinguish discontiguous multi\hyp qubit gates from multiple single\hyp qubit gates when using controls.
Still, some gates have such an established appearance that---despite being logically misleading---we rather use the same style as for a control line.
\end{option}
-
+
+ \begin{option}[New in 0.4]{operator/if multi}!!
+ This style can be invoked by other styles with an arguments that contains styles to be executed only if the current gate is used in a multi\hyp register fashion.
+ See \style{/yquant/every label} for an example.
+ \end{option}
+
+ \begin{option}[New in 0.4]{circuit/seamless}!false!
+ The value of this setting determines whether circuits drawn in a \Yquant{} environment in the current group will be drawn in a ``seamless'' state (hence, this style must be set \emph{before} the \Yquant{} environment is started).
+ The key \style{/yquant/operator/separation} will control the amount of padding with which a wire starts or ends before the first or after the last gate.
+ By turning on the seamless state, this padding is suppressed.
+ Using outputs or giving an initial value at the register declaration brings the corresponding padding back.
+ Usually, this setting is intended only for subcircuits.
+ Direct access is discouraged, as it will persist in subcircuits.
+ Only access it via \style{/yquant/operators/subcircuit/seamless}.
+ \end{option}
+
+ \begin{option}[New in 0.4]{every post measurement control}!indirect!
+ This style determines the default arrangement of measurements that are followed by positive controls.
+
+ The default option \texttt{indirect} will draw the measurement at the position where it is specified.
+ Any later use of a control will be at the position of the controlled gate.
+
+ The option \texttt{direct} will defer the measurement.
+ If later on, a controlled operation is used where the positive controls contain all of the targets of this measurement \emph{and} no other gate was executed meanwhile on any of the targets of this measurement, then the measurement gate will replace the corresponding positive control knobs (and might inherit \TikZ{} options of the embedding gate); otherwise, it will behave as if the \texttt{indirect} option had been specified.
+
+ Some care must be taken when gates are named that are affected by this option.
+ If the embedding gate is named, the positive controls that will be replaced by measurements are no longer available with the ``\texttt{p}''~suffix (but other positive controls will still be numbered as if all were).
+ Attach the name to the measurement in order to access it as if it were an ordinary gate; however, note that the name only becomes available after the later embedding gate was called.
+
+ Note that this setting affects all measurements that have a compatible shape; currently, this is only \gate{measure}.
+ While there is no technical difficulty in implementing the same behavior for \gate{dmeter}, its particular shape does not really suggest this use.
+ However, if you desire to do so, please file a feature request.
+ \end{option}
+
\subsection{Styles for operators}\unskipOpt
- \begin{option}{operators/every barrier}!shape=yquant-line, dashed, draw!
+ \begin{option}[Changed in 0.4]{operators/every barrier}!shape=yquant-line, dashed, draw, shorten <= -1mm, shorten >= -1mm!
This style is installed for every \gate{barrier} pseudo\hyp gate, i.e., the one that is used to explicitly denote a separation between ``before'' and ``after'' within the circuit.
+
+ Note that the \texttt{shorten} keys are only present in the default style if you specify at least the compatibility version \texttt{0.4}.
\end{option}
-
+
\begin{option}{operators/every box}!shape=yquant-rectangle, draw, align=center, inner xsep=1mm, x radius=2mm, y radius=2.47mm!
This style is installed for every \gate{box} operator.
\end{option}
-
- \begin{option}{operators/every custom gate}!/yquant/operators/this subcircuit box/.append style={draw=none, inner sep=0pt}, /yquant/register/default name=!
- This style is by default installed for every user\hyp defined gate (since version~0.2).
+
+ \begin{option}[Changed in 0.4\\New in 0.2]{operators/every custom gate}!/yquant/operators/subcircuit/seamless!
+ This style is by default installed for every user\hyp defined gate.
User\hyp defined gates are implemented via subcircuits; this style suppresses the box that surrounds the subcircuit and by default suppresses all register names.
This allows a seamless integration of the gate/subcircuit into the main circuit, without putting particular emphasis to the fact that what was defined as the custom gate indeed belongs together.
+ Note that with the \texttt{compat} key set before \texttt{0.4}, this style instead defaults to \tex!/yquant/operators/subcircuit/frameless, /yquant/register/default name=!.
\end{option}
-
+
\begin{option}{operators/every dmeter}!shape=yquant-dmeter, x radius=2mm, y radius=2mm, fill=white, draw!
This style is installed for every \gate{dmeter} gate.
The \texttt{yquant-dmeter} shape consists of a rectangle whose right side is replaced by a circle, resembling the letter ``D.''
\end{option}
-
+
\begin{option}{operators/every h}!/yquant/operators/every box!
This style is installed for every \gate{h} (Hadamard) operator.
\end{option}
-
+
+ \begin{option}{operators/every inspect}!shape=yquant-output, align=left, outer xsep=.3333em, y radius=2.47mm, /yquant/operator/if multi={draw, decoration={gapped brace, raise=2pt}, decorate}!
+ This style is installed for every \gate{inspect} gate.
+ It does not have any shape on its own, apart from multi\hyp register uses, in which it will contain a brace on its left.
+ \end{option}
+
\begin{option}{operators/every measure}!shape=yquant-measure, x radius=4mm, y radius=2.5mm, draw!
This style is installed for every \gate{measure} gate.
The \texttt{yquant-measure} shape is a rectangle that contains a ``meter'' symbol.
It allows for a text to be put inside (e.g., a basis), which then shifts the meter symbol accordingly.
\end{option}
-
+
\begin{option}{operators/every measure meter}!draw, -{Latex[length=2.5pt]}!
This style is applied to the path that resembles the ``meter'' symbol that is drawn by the \texttt{yquant-measure} shape.
Due to the default style, the \TikZ{} library \pkg{arrows.meta} is automatically loaded with \Yquant.
\end{option}
-
+
\begin{option}{operators/every not}!shape=yquant-oplus, radius=1.3mm, draw!
This style is installed for every \gate{not} or \gate{cnot} gate (which are synonyms, and actually do the same as the Pauli~$\sigma_x$ gate).
The \texttt{yquant-oplus} shape resembles the addition\hyp modulo\hyp two symbol $\oplus$.
\end{option}
-
+
\begin{option}{operators/every pauli}!/yquant/operators/every box!
This style is installed for every Pauli operator, i.e., \gate{x}, \gate{y}, and \gate{z}.
\end{option}
-
+
\begin{option}{operators/every phase}!shape=yquant-circle, radius=.5mm, fill!
This style is installed for every \gate{phase} gate $\ketbra00 + \ee^{\ii\phi} \ketbra11$.
\end{option}
-
+
\begin{option}{operators/every slash}!shape=yquant-slash, x radius=.5mm, y radius=.7mm, draw!
This style is installed for every \gate{slash} pseudo\hyp gate, i.e., the one that is used to indicate that a single register line actually denotes multiple registers.
\end{option}
-
- \begin{option}{operators/every subcircuit}!!
+
+ \begin{option}[New in 0.2]{operators/every subcircuit}!!
This style is installed for every \gate{subcircuit}.
+ Note that all styles given here will also apply to every element in the subcircuit; in a way, this is an addition to \style{/yquant/every circuit} (which is also again put into effect at the beginning of a subcircuit).
\end{option}
-
- \begin{option}{operators/every subcircuit box}!/yquant/operators/every box!
+
+ \begin{option}[New in 0.2]{operators/every subcircuit box}!/yquant/operators/every box!
This style is installed for every \gate{subcircuit}.
Note that in contrast to all other styles such as \style{/yquant/operators/every subcircuit} or \style{/yquant/this operator}, this style is only applied to the ``container'' node of the subcircuit, but not to the elements in the subcircuit themselves.
+ Also note that the box style by default contains an \texttt{inner xsep} that will be added as an inside padding.
+ This makes sense if your wires have labels so that these labels don't move too closely to the border of the box.
+ However, if you do not labelled wires but still want to have a box around the subcircuit, you should consider removing the separation---as it will be added to the initial wire padding given by \style{/yquant/operator/separation}.
\end{option}
-
- \begin{option}{subcircuit box style}!/yquant/operators/every subcircuit box/.append style={#1}!
- This is a shorthand to apply styles to the subcircuit box only.
+
+ \begin{option}[New in 0.2]{subcircuit box style}!/yquant/operators/every subcircuit box/.append style={#1}!
+ This is a shorthand to append styles to the subcircuit box only.
\end{option}
-
- \begin{option}{operators/this subcircuit box}!!
+
+ \begin{option}[New in 0.2]{operators/this subcircuit box}!!
This style is appended to the current style installed for the \gate{subcircuit}, but will not apply to its contents.
Additionally, this style will be reset to an empty style at the beginning of each subcircuit, so that it really only applies to exactly the subcircuit box it is explicitly specified on, not to nested subcircuit boxes.
\end{option}
-
- \begin{option}{this subcircuit box style}!/yquant/operators/this subcircuit box/.append style={#1}!
- This is a shorthand to apply styles to the current subcircuit box only.
+
+ \begin{option}[New in 0.2]{this subcircuit box style}!/yquant/operators/this subcircuit box/.append style={#1}!
+ This is a shorthand to append styles to the current subcircuit box only.
+ \end{option}
+
+ \begin{option}[New in 0.4]{operators/subcircuit/frameless}!/yquant/operators/this subcircuit box/.append style={draw=none, inner sep=0pt}!
+ This is a shorthand style that removes the frame and additional inner separation for the current subcircuit.
+ Note that still, the wire padding given by \style{/yquant/operator/separation} is present within the---now invisible---outer box that contains the subcircuit (use \style{/yquant/operators/subcircuit/seamless} to suppress it).
+ Hence, the most prominent application of this key is if the wires before and after the subcircuit are \gate{nobit}s, which provides a clean way to build up circuit equations with perfectly aligned wires (examples can be found in \cref{sec:examples}).
+ \end{option}
+
+ \begin{option}[New in 0.4]{operators/subcircuit/seamless}!/yquant/operators/subcircuit/frameless, /yquant/register/default name=, /yquant/circuit/seamless!
+ This option carries out multiple actions that are responsible to let the current subcircuit appear in a ``seamless'' state:
+ \begin{itemize}
+ \item It calls \style{/yquant/operators/subcircuit/frameless}.
+ \item It sets \style{/yquant/circuit/seamless} to \texttt{true}.
+ \item It ensures that \style{/yquant/circuit/seamless} is reset within the subcircuit, so that it does not propagate to nested subcircuits.
+ \end{itemize}
\end{option}
-
+
\begin{option}{operators/every swap}!shape=yquant-swap, radius=.75mm, draw!
This style is installed for every \gate{swap} gate that interchanges two qubits.
The \texttt{yquant-swap} shape consists of a single cross.
\end{option}
-
- \begin{option}{operators/every wave}!shape=yquant-circle, radius=.5mm, fill!
+
+ \begin{option}[New in 0.1.2]{operators/every wave}!shape=yquant-circle, radius=.5mm, fill!
This style is installed for every \gate{correlate} gate.
\end{option}
-
+
\begin{option}{operators/every x}!/yquant/operators/every pauli!
This style is installed for every Pauli operator $\sigma_x$, i.e., \gate{x}.
\end{option}
-
+
\begin{option}{operators/every xx}!shape=yquant-rectangle, radius=.75mm, draw!
This style is installed for every \gate{xx} gate in symmetrized notation ($\ketbra{++}{++} + \ketbra{+-}{+-} + \ketbra{-+}{-+} - \ketbra{--}{--}$).
\end{option}
-
+
\begin{option}{operators/every y}!/yquant/operators/every pauli!
This style is installed for every Pauli operator $\sigma_y$, i.e., \gate{y}.
\end{option}
-
+
\begin{option}{operators/every z}!/yquant/operators/every pauli!
This style is installed for every Pauli operator $\sigma_z$, i.e., \gate{z}.
\end{option}
@@ -869,139 +998,183 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
\begin{option}{operators/every zz}!shape=yquant-circle, radius=.5mm, fill!
This style is installed for every \gate{zz} gate (aka \textsc{CPhase}) in symmetrized notation ($\ketbra{00}{00} + \ketbra{01}{01} + \ketbra{10}{10} - \ketbra{11}{11}$).
\end{option}
-
+
\section{Doing the impossible}\label{sec:tikz}
\Yquant{} will almost certainly never be able to do everything an author has in mind.
Sometimes, there is the need to draw something non\hyp standard, and this cannot be implemented in the \Yquant{} language.
However, since \Yquant{} is a layer on top of \TikZ, it should be very hard to find something (meaningful) that cannot be done by combining the power of both packages.
-
- Before or after any gate, you may interrupt the \Yquant{} instructions to perform arbitrary \TikZ{} path operations.
- After every such operation, \Yquant{} will automatically restart its parser so that you can fluently jump between \Yquant{} and \TikZ{} code.
- You can even interject arbitrary \TeX{} code (or, say, low\hyp level \pkg{pgf} commands); however, then, \Yquant{} is not able to restart its parser.
- For this reason, after the last command in a block of \TeX{} commands, you must issue \tex!\yquant!, which then re\hyp enables the \Yquant{} language.
-
- The feature to perform arbitrary \TikZ{} operations is powerful in itself, but would be of limited use were there no way to access the elements in the quantum circuit.
- \Yquant{} provides a global attribute \texttt{name} that can be assigned to every gate.
- All quantum operations are in fact \TikZ{} nodes, and the name you give to them then becomes a \TikZ{} name, which you can easily reference to get the coordinates of a particular operator.
- Note that the name you specify is only available if a single register is targeted.
- The name is suffixed by \tex!-\idx!, where \tex!\idx! refers to the (zero\hyp based) index of the operation ordered from top to bottom (i.e., if an operator acts on two qubits and should be named \texttt{op}, the topmost operator will be available as \texttt{op-0} and the second as \texttt{op-1}).
- Multiple slices in a discontiguous multi\hyp register are additionally suffixed by \texttt{-s\textit{<slice index>}}.
- All controls are also named, suffixed by \tex!-p\idx! or \tex!-n\idx! for positive and negative controls (i.e., the topmost positive control of the previous operator will be available as \texttt{op-p0}).
- Counters for target registers, positive, and negative controls are all independent.
- Finally, you can even access names within a subcircuit, provided you give a name to the subcircuit.
- All nodes in the subcircuit will then have the name \texttt{\textit{<subcircuit name>}-\textit{<name specified in the subcircuits>}}.
- For nested subcircuits, you will get multiple prefixes.
-
- All \Yquant{} shapes have the anchors available you would typically expect from a \TikZ{} shape of the given outline.
- Before version~0.1.2, \Yquant{} shapes needed to provide a \texttt{circuit} anchor and projection anchors.
- These were removed in version~0.1.2 in favor of the common \texttt{center} anchor and clipping paths.
- The latter is a \Yquant{} extension to \TikZ{} shapes: it is an additional path that must be declared for a given shape.
- This path has to provide the ``clipping outline,'' i.e., anything that should not contain register or control lines.
- There may be a difference between horizontal and vertical clipping outlines.
- To understand clipping paths, \Yquant's drawing pipeline needs to be explained.
- \begin{itemize}
- \item In a first run---this is what happens directly at the position where you type the gate command---\Yquant{} will ``virtually'' draw the gates in order to determine their dimensions and calculate register heights.
- The actual drawing commands are written to a macro (this is the cause that some macros must be preceded by \tex!\protect! if used in a gate \texttt{value}).
- \item When \tex!\end{yquant}! is encountered, the actual drawing commands are executed.
- \item Unless the operation changes the wire type or style, do the following (first two items for every register at which an operator node has to be created).
- \begin{itemize}
- \item Create the operator node at the appropriate position.
- \item Call \tex!\pgfshapeclippath! on the newly created node.
- This will first determine whether the node was stroked; if not, \tex!\pgflinewidth! is set to zero.
- Then, it will call the horizontal clipping path, which is supposed to create some soft path commands.
- Those soft path commands are collected in a macro on a per\hyp register basis and the soft path is cleared.
- The same happens for the vertical clipping path, which is collected in a macro on a per\hyp operation basis.
- \item If control lines or multi lines are to be drawn, the vertical clipping path commands are now executed and installed as an inverted\footnote{Inverting the clipping has two consequences: First, the region of inversion in vertical direction is given by the width of the operators. The line cannot be wider than the operator. Second, if you specify a register multiple times, whether as target, control, or mixed, funny effects can be expected, as the clipping region is inverted multiple times. Note that using a register more than once is always an error, but \Yquant{} does not check for it due to the high overhead.} clipping path.
- \item Control lines and multi lines are drawn (in this order) from one to the next \texttt{center} anchor.
- Due to the clipping commands, this will create a perfect connection with the shape of the gate, but even transparent gates are possible without the lines being visible.
- \end{itemize}
- \item If the operation changes the wire type or style, or if there is no operation left on this register, the following is done.
- \begin{itemize}
- \item Load the clipping paths accumulated for all the gates acting on this register and install the inverted clipping.
- \item Draw the wire as one continuous line from where the last wire ended (or the beginning of the circuit) to the center of the last gate, or to the common end position for all wires of the circuit.
- \item Remove the clipping paths stored so far on this register, apart from the clipping on the last gate (which will be needed again if this was not the end of the circuit).
- \end{itemize}
- \end{itemize}
-
+
+ \subsection{Mixing \texorpdfstring{\Yquant}{yquant} and \texorpdfstring{\TikZ}{TikZ} code}
+ Before or after any gate, you may interrupt the \Yquant{} instructions to perform arbitrary \TikZ{} path operations.
+ After every such operation, \Yquant{} will automatically restart its parser so that you can fluently jump between \Yquant{} and \TikZ{} code.
+ You can even interject arbitrary \TeX{} code (or, say, low\hyp level \pkg{pgf} commands); however, then, \Yquant{} is not able to restart its parser.
+ For this reason, after the last command in a block of \TeX{} commands, you must issue \tex!\yquant!, which then re\hyp enables the \Yquant{} language.
+
+ \subsection{Accessing gates in \texorpdfstring{\TikZ}{TikZ}}
+ The feature to perform arbitrary \TikZ{} operations is powerful in itself, but would be of limited use were there no way to access the elements in the quantum circuit.
+ \Yquant{} provides a global attribute \texttt{name} that can be assigned to every gate.
+ All quantum operations are in fact \TikZ{} nodes, and the name you give to them then becomes a \TikZ{} name, which you can easily reference to get the coordinates of a particular operator.
+ Note that the name you specify is only available if a single register is targeted.
+ The name is suffixed by \tex!-\idx!, where \tex!\idx! refers to the (zero\hyp based) index of the operation ordered from top to bottom (i.e., if an operator acts on two qubits and should be named \texttt{op}, the topmost operator will be available as \texttt{op-0} and the second as \texttt{op-1}).
+ Multiple slices in a discontiguous multi\hyp register are additionally suffixed by \texttt{-s\textit{<slice index>}}.
+ All controls are also named, suffixed by \tex!-p\idx! or \tex!-n\idx! for positive and negative controls (i.e., the topmost positive control of the previous operator will be available as \texttt{op-p0}).
+ Counters for target registers, positive, and negative controls are all independent.
+ Finally, you can even access names within a subcircuit, provided you give a name to the subcircuit.
+ All nodes in the subcircuit will then have the name \texttt{\textit{<subcircuit name>}-\textit{<name specified in the subcircuits>}}.
+ For nested subcircuits, you will get multiple prefixes.
+
+ \subsection{Shapes and the drawing pipeline}
+ All \Yquant{} shapes have the anchors available you would typically expect from a \TikZ{} shape of the given outline.
+ The \texttt{center} anchor will be aligned to the wire.
+ \compat{Changed in 0.1.2}In addition to the normal paths implemented by \TikZ{} shapes, those fit for \Yquant{} must additionally implement clipping paths, a \Yquant{} addition to \TikZ{} shapes.
+ Such a path has to provide the ``clipping outline,'' i.e., anything that should not contain register or control lines.
+ There may be a difference between horizontal and vertical clipping outlines.
+ To understand clipping paths, \Yquant's drawing pipeline needs to be explained.
+ \begin{itemize}
+ \item In a first run---this is what happens directly at the position where you type the gate command---\Yquant{} will ``virtually'' draw the gates in order to determine their dimensions and calculate register heights.
+ The actual drawing commands are written to a macro (this is the cause that some macros must be preceded by \tex!\protect! if used in a gate \texttt{value}---in fact, if multiple registers are targeted in one gate, the style and values required for this gate are only stored once, so that for example \tex!\idx! is a \tex!\protected! macro until the very end).
+ \item \compat{New in 0.4}Deferred gates (measurements that may replace future control knobs) are stored temporarily and queried when the next gate is executed or at the end of the circuit.
+ The corresponding commands---either re\hyp inserting if they must appear at their original position or substituting the controls---are inserted appropriately.
+ \item When \tex!\end{yquant}! is encountered, the vertical positions are determined and the actual drawing commands are executed.
+ \item Unless the operation changes the wire type or style, do the following (first two items for every register at which an operator node has to be created).
+ \begin{itemize}
+ \item Create the operator node at the appropriate position.
+ \item Call \tex!\pgfshapeclippath! on the newly created node.
+ This will first determine whether the node was stroked; if not, \tex!\pgflinewidth! is set to zero.
+ Then, it will call the horizontal clipping path, which is supposed to create some soft path commands.
+ Those soft path commands are collected in a macro on a per\hyp register basis and the soft path is cleared.
+ The same happens for the vertical clipping path, which is collected in a macro on a per\hyp operation basis.
+ \item If control lines or multi lines are to be drawn, the vertical clipping path commands are now executed and installed as an inverted\footnote{Inverting the clipping means that instead of drawing only \emph{within} the clipping path (which corresponds to the gates), we only draw \emph{outside}. However, as there is no direct support for this, we invert by exploiting the even\hyp odd rule. If you specify a register multiple times, whether as target, control, or mixed, funny effects can be expected, as the clipping region is inverted multiple times. Note that using a register more than once is always an error, but \Yquant{} does not check for it due to the high overhead.} clipping.
+ \item Control lines and multi lines are drawn (in this order) from one to the next \texttt{center} anchor.
+ Due to the clipping commands, this will create a perfect connection with the shape of the gate, but even transparent gates are possible without the lines being visible.
+ \end{itemize}
+ \item If the operation changes the wire type or style, or if there is no operation left on this register, the following is done.
+ \begin{itemize}
+ \item Load the clipping paths accumulated for all the gates acting on this register and install the inverted clipping.
+ \item Draw the wire as one continuous line from where the last wire ended (or the beginning of the circuit) to the center of the last gate, or to the common end position for all wires of the circuit.
+ \item Remove the clipping paths stored so far on this register, apart from the clipping on the last gate (which will be needed again if this was not the end of the circuit).
+ \end{itemize}
+ \end{itemize}
+
+ \subsection{Overwriting the height and depth calculation}
+ \Yquant{} automatically takes care of calculating the height and depth of all registers, so that their final vertical positions are chosen without overlap.
+ This is almost always advisable, but it has some weaknesses:
+ \begin{itemize}
+ \item If you specify a multi\hyp register gate, say, extending for three registers and this requires a certain height and depth, where should this be accounted for?
+ \compat{New in 0.4}\Yquant{} is able to handle these situations by first determining all heights and depths that can safely be attributed to individual registers.
+ After that, it checks for all multi\hyp register gates: Is the space from the top of the first to the bottom of the last register enough to hold the multi\hyp qubit gate?
+ If not, it evenly distributes the additional required space to all registers that are visually within the range of this multi\hyp register.
+
+ This will fail to produce good results (hopefully) only in two cases:
+ \begin{itemize}
+ \item If you place \texttt{label}s on the gate, those are outside of the gate---and typically, either below or above.
+ Hence, the additional extent stemming from them should \emph{not} be equally distributed among all registers, but either to the height of the first or the depth of the last one.
+ Currently, \Yquant{} is unable to detect this (and, considering the fact that you can place \texttt{label}s at any angle, this is not an easy problem to solve except for special cases).
+ \item If you make use of a discontiguous \gate{init} gate with a large vertical extent, \Yquant{} will correctly allocate space as if the gate's content were placed in the vertical center.
+ However, if there is no way to put the arch of the brace at the middle, as the register at this position is excluded from the gate, the content will be shifted---but only after calculating the extent.
+ Hence, the automatically calculated vertical positions will be unsuitable.
+ \end{itemize}
+ \item Sometimes, there is more space available than \Yquant{} thinks because you already discarded some wire.
+ \Yquant{} does not keep track of whether the wires below or above a gate are actually visible at this position---which is not even be known at the time the gate command is issued, as horizontal positions are determined only in the drawing stage.
+ Hence, you may choose to draw ``within'' the other, invisible wire.
+ \end{itemize}
+
+ \compat{New in 0.4}In these certain special cases, you may want to turn off the automatic calculation for one particular gate.
+ Note that you may then, depending on the situation, obtain results with overlapping gates.
+ You can use the keys \style{/yquant/register/minimum height} and \style{/yquant/register/minimum depth} when declaring the relevant register to manually specify a larger desired value, but you have to experiment with regard to what this value is.
+
+ The global attribute \texttt{overlay} (conveniently overshadowing \TikZ's \texttt{overlay} key, which should not be used for gates) can take the values
+ \begin{itemize}
+ \item \texttt{true} (default if no value given, combines \texttt{multi}, \texttt{height}, and \texttt{depth}),
+ \item \texttt{multi} (short \texttt{m}),
+ \item \texttt{height} (short \texttt{ht}, \texttt{h}),
+ \item \texttt{depth} (short \texttt{dp}, \texttt{d}),
+ \item \texttt{single} (short \texttt{s}, combines \texttt{height} and \texttt{depth}), and
+ \item \texttt{false} (useless, default if attribute not given).
+ \end{itemize}
+ It disables the calculation of the selected vertical extent for this particular gate.
+ (In fact, \texttt{multi}, \texttt{height}, \texttt{depth}, and \texttt{single} are subkeys that accept boolean values.)
+
\section{Reference: Gates and operations}\label{sec:gates}
This section lists all operations \Yquant{} currently understands.
- It also details all arguments that can be given to customize the operation, apart from \texttt{name}, which is always available.
+ It also details all arguments that can be given to customize the operation, apart from \texttt{name} and \compat{New in 0.4}\texttt{overlay}, which are always available.
Note that the \tex![value=<value>]! attribute can (and should) alternatively be given as a braced expression that follows the name of the register.
-
- \subsection{\texorpdfstring{\yquant!addstyle!}{addstyle}}\label{gate:addstyle}
+
+ \subsection[\texorpdfstring{\yquant!addstyle!}{addstyle}]{\compat{New in 0.1.2}\yquant!addstyle!}\label{gate:addstyle}
Syntax: \yquant!setstyle <target>;! \\
This is an invisible pseudo\hyp gate that immediately changes the \TikZ{} style with which the register lines of all target registers are drawn.
It adds to the styles that are already installed.
Use \gate{setstyle} to replace styles.
It may not span multiple registers and does not allow for controls.
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![value=<styles>]! (required) \\
Denotes the new styles; this should be a string that could be passed to \tex!\tikzset!.
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!align!}{align}}\label{gate:align}
Syntax: \yquant!align <target>;! \\
This is an invisible pseudo\hyp gate that enforces all affected registers to share a common horizontal position for their next gate, which is determined by the largest position of all gates involved.
It may not span multiple registers and does not allow for controls.
-
+ \compat{Changed in 0.4}The gate now always aligns the wires, i.e., if they are discarded directly after this gate, they will still discarded all at the same position.
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!barrier!}{barrier}}\label{gate:barrier}
Syntax: \yquant!barrier <target>;! \\
This is a pseudo\hyp gate that denotes some physical barrier that ensures execution with a specific timing; it is basically a visible version of the \hyperref[gate:align]{\yquant!align!} gate, denoted by a vertical line.
It may span multiple registers, but does not allow for controls.
The style \style{/yquant/operators/every barrier} is installed.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!box!}{box}}\label{gate:box}
Syntax: \yquant!box <target> | <pcontrol> ~ <ncontrol>;! \\
This is a generic register of a rectangular shape that can be filled with arbitrary content.
It may span multiple registers and allows for controls.
The style \style{/yquant/operators/every box} is installed.
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![value=<value>]! \\
Denotes the content of the box.
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!cbit!}{cbit}}\label{gate:cbit}
Syntax: \yquant!cbit <name>[<len>];! \\
Declares a register of type \texttt{cbit}.
-
+
\emph{see \hyperref[gate:qubit]{\yquant!qubit!}}
-
- \subsection{\texorpdfstring{\yquant!correlate!}{correlate}}\label{gate:correlate}
+
+ \subsection[\texorpdfstring{\yquant!correlate!}{correlate}]{\compat{New in 0.1.2}\yquant!correlate!}\label{gate:correlate}
Syntax: \yquant!correlate <target>;! \\
This is a pseudo\hyp gate that indicates a correlation (usually a Bell\hyp state) present between the multi\hyp registers involved.
This gate should span multiple registers and does not allow for controls.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!cnot!}{cnot}}\label{gate:cnot}
Syntax: \yquant!cnot <target> | <pcontrol> ~ <ncontrol>;! \\
This is a synonym for the \gate{not} gate.
Note that despite its name, controls are not mandatory and also here, the style \style{/yquant/operators/every not} is installed.
-
+
\subsection{\texorpdfstring{\yquant!discard!}{discard}}\label{gate:discard}
Syntax: \yquant!discard <target>;! \\
This is an invisible pseudo\hyp gate that changes the type of all target registers to \gate{nobit}, i.e., no line will be drawn for them.
- This has effect already for the outgoing line of the last visible gate on the target registers.
+ This has effect already for the outgoing line of the last gate on the target registers.
The gate may not span multiple registers and does not allow for controls.
- To change into a register type on\hyp the\hyp fly into something different from \gate{nobit}, use the \gate{settype} pseudo\hyp gate.
-
+ To change a register type on\hyp the\hyp fly into something different from \gate{nobit}, use the \compat{Changed in 0.1.2}\gate{settype} pseudo\hyp gate.
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!dmeter!}{dmeter}}\label{gate:dmeter}
Syntax: \yquant!dmeter <target>;! \\
This is a measurement gate, denoted by a ``D'' shape.
It changes the type of all targets involved.
It may span multiple registers, but does not allow for controls.
The style \style{/yquant/operators/every dmeter} is installed.
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![value=<value>]! \\
@@ -1011,35 +1184,35 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
Allows to specify the type into which the affected targets are converted.
Default is \gate{cbit}.
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!h!}{h}}\label{gate:h}
Syntax: \yquant!h <target> | <pcontrol> ~ <ncontrol>;! \\
- This is a Hadamard gate, $\frac{1}{\sqrt2} \bigl( \ketbra00 + \ketbra01 + \ketbra10 - \ketbra11 \bigr)$, denoted by a rectangle that contains the letter $H$.
+ This is a Hadamard gate, $\bigl( \ketbra00 + \ketbra01 + \ketbra10 - \ketbra11 \bigr) \fracslash \sqrt2$, denoted by a rectangle that contains the letter $H$.
It may not span multiple registers, but allows for controls. \\
The style \style{/yquant/operators/every h} is installed.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!hspace!}{hspace}}\label{gate:hspace}
Syntax: \yquant!hspace <target>;! \\
This is an invisible pseudo\hyp gate that inserts a certain amount of white space into all target registers.
It may not span multiple registers and does not allow for controls.
-
+ \compat{Changed in 0.4}The gate now always has an effect, e.g., if the wire is discarded after this gate, it will still be extended by the given amount first.
+
\emph{Possible attributes}:
\begin{itemize}
\item \yquant![value=<dim>]! (required) \\
- Gives the amount of white space that is to be inserted. Must be a valid \TeX{} dimension.
+ Gives the amount of white space that is to be inserted. Must be a valid (nonnegative) \TeX{} dimension.
\end{itemize}
-
- \subsection{\texorpdfstring{\yquant!init!}{init}}\label{gate:init}
+
+ \subsection[\texorpdfstring{\yquant!init!}{init}]{\compat{Changed in 0.4}\yquant!init!}\label{gate:init}
Syntax: \yquant!init <target>;! \\
This is a pseudo\hyp gate that (re)initializes a registers to a given state.
It may span multiple registers, but does not allow for controls.
The style \style{/yquant/every label} is installed.
- Note that this pseudo\hyp gate, unlike all others, behaves differently if it the first operation acting on a register: in this case, it does not increment the horizontal position, but uses the space available to the left.
- If it is the first operation, the style \style{/yquant/every initial label} is installed additionally.
- For multiple registers, the style \style{/yquant/every multi label} is installed at the end, and a path is constructed that extends from the left end of the first to the left end of the last register in the multi\hyp register compound.
-
+ Note that this pseudo\hyp gate, unlike all others, behaves differently if it is the first operation acting on a register: in this case, it does not increment the horizontal position, but uses the space available to the left; and the style \style{/yquant/every initial label} is installed additionally.
+ Internally, creating a new register with some printed name is translated into the creation of an unnamed register, followed by application of this gate with the desired text.
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![type=<qubit|cbit|qubits>]! \\
@@ -1048,17 +1221,32 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
The style \texttt{/yquant/every <type> label} is installed additionally.
\item \yquant![value=<value>]! (required) \\
Denotes the label that is printed to the left of the wire.
-
+
+ Inside the value, \tex!\idx! expands to the current index within the register list.
+ \end{itemize}
+
+ \subsection[\texorpdfstring{\yquant!inspect!}{inspect}]{\compat{New in 0.4}\yquant!inspect!}\label{gate:inspect}
+ Syntax: \yquant!inspect <target>;! \\
+ This is a pseudo\hyp gate that allows to print the current state of one or multiple registers within a circuit.
+ It may span multiple registers, but does not allow for controls.
+ The style \style{/yquant/every inspect} is installed.
+ Essentially, it is the same as an \gate{output} gate that will be drawn immediately at the current position and not deferred until the end.
+
+ \emph{Possible attributes:}
+ \begin{itemize}
+ \item \yquant![value=<value>]! (required) \\
+ Denotes the text that is to be printed.
Inside the value, \tex!\idx! expands to the current index within the register list.
\end{itemize}
-
- \subsection{\texorpdfstring{\yquant!measure!}{measure}}\label{gate:measure}
+
+ \subsection[\texorpdfstring{\yquant!measure!}{measure}]{\compat{Changed in 0.4}\yquant!measure!}\label{gate:measure}
Syntax: \yquant!measure <target>;! \\
This is a measurement gate, denoted by a rectangle with a meter symbol.
It changes the type of all targets involved.
It may span multiple registers, but does not allow for controls.
The style \style{/yquant/operators/every measure} is installed.
-
+ It may be deferred to be used instead of a control knob for a later gate using the \style{/yquant/every post measurement control} style or the suitable attributes; see the documentation for this style.
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![type=<qubit|cbit|qubits>]! \\
@@ -1067,52 +1255,54 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
\item \yquant![value=<value>]! \\
Allows to specify a text that will be included at the bottom of the rectangle (which will shift the meter symbol upwards accordingly).
For outside texts, use \TikZ{} \texttt{label}s instead.
+ \item \yquant![direct control]! \\
+ Temporarily sets \style{/yquant/every post measurement control}\tex!=direct! for this particular gate.
+ \item \yquant![indirect control]! \\
+ Temporarily sets \style{/yquant/every post measurement control}\tex!=indirect! for this particular gate.
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!nobit!}{nobit}}\label{gate:nobit}
Syntax: \yquant!nobit <name>[<len>];! \\
Declares a register of type \gate{nobit}.
- The \texttt{<name>} must be a self\hyp chosen name for the register which was not previously used as a register name in this \tex!yquant! environment.
+ The \texttt{<name>} must be a self\hyp chosen name for the register which was not previously used as a register name in this circuit (but names can be re\hyp used in subcircuits).
Names are case\hyp insensitive.
The register can be made into a vector register by specifying \texttt{<len>} (default \tex!1!).
-
- \clearpage
+
\emph{Possible attributes:}
\begin{itemize}
- \item \yquant![out]! or \yquant![ancilla]! (required in subcircuits) \\
+ \item \compat{New in 0.2}\yquant![out]! or \yquant![ancilla]! (required in subcircuits) \\
\emph{see \gate{qubit}}
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!not!}{not}}\label{gate:not}
Syntax: \yquant!not <target> | <pcontrol> ~ <ncontrol>;! \\
This is a \textsc{not} gate, $\ketbra01 + \ketbra10$, denoted by the $\oplus$ symbol.
It may not span multiple registers, but allows for controls.
Due to its common usage, the synonymous gate \hyperref[gate:cnot]{\yquant!cnot!} is provided.
The style \style{/yquant/operators/every not} is installed.
-
+
\emph{Possible attributes:} none
-
- \subsection{\texorpdfstring{\yquant!output!}{output}}\label{gate:output}
+
+ \subsection[\texorpdfstring{\yquant!output!}{output}]{\compat{Changed in 0.4}\yquant!output!}\label{gate:output}
Syntax: \yquant!output <target>;! \\
This is a pseudo\hyp gate that allows to write some text at the very end of the register line.
It may only be specified once per register.
It may span multiple registers, but does not allow for controls.
The style \style{/yquant/every output} is installed, and also the style \texttt{/yquant/every <type> output}, where \texttt{<type>} is the type of the affected register (at the time of printout).
- For outputs on multiple registers, the style \style{/yquant/every multi output} is installed instead of the two previously mentioned ones; and additionally, a path is constructed that extends from the first to the last register in the multi\hyp register compound.
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![value=<value>]! (required) \\
Denotes the text that is to be printed.
Inside the value, \tex!\idx! expands to the current index within the register list.
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!phase!}{phase}}\label{gate:phase}
Syntax: \yquant!phase <name> | <pcontrol> ~ <ncontrol>;! \\
This is a phase gate, $\ketbra00 + \ee^{\ii\phi} \ketbra11$, denoted by a filled circle.
- It may not span multiple registers, but allows for controls (and should have them, to make any sense).
+ It may not span multiple registers, but allows for controls.
The style \style{/yquant/operators/every phase} is installed.
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![value=<value>]! (required) \\
@@ -1120,98 +1310,104 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
Position and appearance can be influenced by setting the position of \TikZ{} labels, as this is internally used.
Note that at the moment, it is not possible to change any label options on a gate\hyp type basis, only locally or fully globally (\TikZ{} feature request \href{https://github.com/pgf-tikz/pgf/issues/811}{\#811}).
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!qubit!}{qubit}}\label{gate:qubit}
Syntax: \yquant!qubit <name>[<len>];! \\
Declares a register of type \texttt{qubit}.
- The \texttt{<name>} must be a self\hyp chosen name for the register which was not previously used as a register name in this \tex!yquant! environment.
+ The \texttt{<name>} must be a self\hyp chosen name for the register which was not previously used as a register name in this circuit (but names can be re\hyp used in subcircuits).
Names are case\hyp insensitive.
The register can be made into a vector register by specifying \texttt{<len>} (default \tex!1!).
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![after=<regname>]! \\
If given, the register will start not at the left of the circuit but instead at the position at which the last gate in the register \texttt{<regname>} ended.
-
+
This attribute may not be given in combination with \yquant![in]! or \yquant![inout]!.
- \item \yquant![in]!, \yquant![out]!, \yquant![inout]!, or \yquant![ancilla]! \\
+ \item \compat{New in 0.2}\yquant![in]!, \yquant![out]!, \yquant![inout]!, or \yquant![ancilla]! \\
Default: \yquant![ancilla]! for top\hyp level circuits (do not change there); \yquant![inout]! for subcircuits.
-
+
Determines how a subcircuit interacts with its parent circuit.
-
+
Registers declared with the \yquant![ancilla]! attribute are available only to the subcircuit; they cannot be connected to an outside wire.
-
+
Registers declared with the \yquant![in]! or \yquant![inout]! attribute will expect an outer wire of the same type to be present and will then be identical with this outer wire.
Any changes applied to the wire within the subcircuit automatically also happen on the associated outer wire.
If the attribute is \yquant![in]!, the wire will automatically be discarded at the end of the subcircuit (and hence also in the outer circuit, where it may be re\hyp initialized).
This is different from applying the \gate{discard} gate in that the wire will still extend until the end of the subcircuit and may thus receive proper \gate{output}s.
-
+
Registers declared with the \yquant![out]! attribute will expect a discarded outer wire to be present, which will be initialized to a \texttt{qubit} at the beginning of the subcircuit, and from then on be identical with the outer wire.
\item \yquant![value=<value>]! \\
Denotes the label that is printed to the left of the wire.
If the value is omitted, the default is used (\style{/yquant/register/default name}, preinitialized to \tex!\regidx!).
-
+
Inside the value, \tex!\reg! expands to \texttt{<name>}, \tex!\len! expands to \texttt{<len>}, \tex!\idx! expands to the current index within the vector register ($0 \leq \text{\tex!\idx!} < \text{\texttt{<len>}}$), and \tex!\regidx! expands to \tex!\reg! if \texttt{<len>} is one, or to \tex!\reg[\idx]! else.
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!qubits!}{qubits}}\label{gate:qubits}
Syntax: \yquant!qubits <name>[<len>];! \\
Declares a register of type \texttt{qubits}.
-
+
\emph{see \hyperref[gate:qubit]{\yquant!qubit!}}
-
- \subsection{\texorpdfstring{\yquant!setstyle!}{setstyle}}\label{gate:setstyle}
+
+ \subsection[\texorpdfstring{\yquant!setstyle!}{setstyle}]{\compat{New in 0.1.2}\yquant!setstyle!}\label{gate:setstyle}
Syntax: \yquant!setstyle <target>;! \\
This is an invisible pseudo\hyp gate that immediately changes the \TikZ{} style with which the register lines of all target registers are drawn.
It replaces all previous styles.
Use \gate{addstyle} to accumulate styles.
It may not span multiple registers and does not allow for controls.
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![value=<styles>]! (required) \\
Denotes the new styles; this should be a string that could be passed to \tex!\tikzset!.
\end{itemize}
-
- \subsection{\texorpdfstring{\yquant!settype!}{settype}}\label{gate:settype}
+
+ \subsection[\texorpdfstring{\yquant!settype!}{settype}]{\compat{New in 0.1.2}\yquant!settype!}\label{gate:settype}
Syntax: \yquant!settype <target>;! \\
This is an invisible pseudo\hyp gate that immediately changes the type of the targets registers, taking effect with the output line extending from the last drawn gate.
It may not span multiple registers and does not allow for controls.
-
+
\emph{Possible attributes:}
\begin{itemize}
\item \yquant![value=<qubit|cbit|qubits>]! (required) \\
Denotes the new type that is assigned to all registers.
To change the type to \gate{nobit}, use the \hyperref[gate:discard]{\yquant!discard!} pseudo\hyp gate instead.
\end{itemize}
-
- \subsection{\texorpdfstring{\yquant!setwire!}{setwire}}\label{gate:setwire}
- \emph{Deprecated as of version~0.1.2. Use \gate{settype} instead.}
-
+
+ \subsection[\texorpdfstring{\yquant!setwire!}{setwire}]{\compat{Removed in 0.4\\Deprecated in 0.1.2}\yquant!setwire!}\label{gate:setwire}
+ \emph{Use \gate{settype} instead.}
+
+ This gate is only available if a compatibility version before \texttt{0.4} is chosen.
+
\subsection{\texorpdfstring{\yquant!slash!}{slash}}\label{gate:slash}
Syntax: \yquant!slash <target>;! \\
This is a pseudo\hyp gate used to denote that a single line actually represents multiple registers.
It is drawn as a short slash through the line of the register.
Note that this gate, in contrast to all others, is positioned on the line extending from the last gate or the initialization line of the registers and does not advance the register's horizontal position.
The style \style{/yquant/operators/every slash} is installed.
-
+
\emph{Possible attributes:} none
-
- \subsection{\texorpdfstring{\yquant!subcircuit!}{subcircuit}}\label{gate:subcircuit}
+
+ \subsection[\texorpdfstring{\yquant!subcircuit!}{subcircuit}]{\compat{New in 0.2}\yquant!subcircuit!}\label{gate:subcircuit}
Syntax: \yquant!subcircuit <target>;! \\
This is a subcircuit gate which inserts independent quantum circuits at the current position within the circuit.
It may span multiple registers, but is never split into contiguous slices.
It allows for controls and may change the type of any target involved, depending on the particular subcircuit.
The style \style{/yquant/operators/every subcircuit} is installed.
-
+
\emph{Possible attributes:}
\begin{itemize}
+ \item \compat{New in 0.4}\yquant!frameless! \\
+ This \style{/yquant/operators/subcircuit/frameless} style is activated with this shorthand.
+ \item \compat{New in 0.4}\yquant!seamless! \\
+ The \style{/yquant/operators/subcircuit/seamless} style is activated with this shorthand (implies \yquant!frameless!).
\item \yquant!value=<subcircuit>! (required) \\
Denotes the content of the subcircuit.
It is specified in the usual syntax of \Yquant.
Note that, regardless of the outer environment, a subcircuit always implicitly uses the unstarred form, i.e., you must declare every register explicitly before its first usage.
This is to make sure that the interface of the circuit, i.e., which registers are taken as input and/or output parameters and in which order, is not accidentally mistaken.
-
+
The mapping between input and output registers is trivial for single\hyp qubit uses.
For multi\hyp qubit uses, it works in the following way---in short, it matches in visual order.
You declare input and output registers by using the appropriate attributes on the \gate{qubit}, \gate{cbit}, \gate{qubits} (or even \gate{nobit}) gates.
@@ -1220,13 +1416,13 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
Also within the multi\hyp qubit target, we sort all registers from the topmost to the bottom\hyp most (in the order as they visually appear, not the order in which they are entered).
Those two lists of equal length are then mapped $1:1$ to each other.
Intermixing with ancillas is possible at every position and will lead to a vertical shift of the wires, until all registers, inner and outer, can be displayed flawlessly.
-
+
As subcircuits follow the same rules as ordinary circuits, it is possible to mix them with arbitrary \TeX{} code, and also to access named gates within the subcircuit---but note that named gates in the outer circuit cannot be accessed (at least unless you play with the \texttt{name prefix} key in \TikZ).
In order to access inner nodes from the outer circuit, the subcircuit itself must be named; the inner nodes are then prefixed by the name of the subcircuit and a dash.
-
+
It is possible to nest subcircuits arbitrarily.
\end{itemize}
-
+
\subsection{\texorpdfstring{\yquant!swap!}{swap}}\label{gate:swap}
Syntax: \yquant!swap <targets> | <pcontrol> ~ <ncontrol>;! \\
This is the two\hyp qubit \textsc{swap} gate $\ketbra{00}{00} + \ketbra{01}{10} + \ketbra{10}{01} + \ketbra{11}{11}$ that exchanges two qubits.
@@ -1236,59 +1432,59 @@ IndexSingle = ?number? | ( [ ?number? ], "-", [ ?number? ] );
The control line will extend from the first to the last of all registers involved in the operation, so that it is impossible to discern visually which registers should actually be swapped.
Using multiple swaps without controls in one operation is fine, as well as a single controlled swap.
The style \style{/yquant/operators/every swap} is installed.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!x!}{x}}\label{gate:x}
Syntax: \yquant!x <target> | <pcontrol> ~ <ncontrol>;! \\
This is a Pauli $\sigma_{\symup x}$ gate $\ketbra01 + \ketbra10$, denoted by a rectangle that contains the letter $X$.
It may not span multiple registers, but allows for controls. \\
The style \style{/yquant/operators/every x} is installed.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!xx!}{xx}}\label{gate:xx}
Syntax: \yquant!xx <targets>;! \\
This is a symmetric flip gate, denoted by joined open squares.
It should span multiple registers and it allows for controls.
The same warnings as for the \gate{swap} gate apply.
The style \style{/yquant/operators/every xx} is installed.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!y!}{y}}\label{gate:y}
Syntax: \yquant!y <target> | <pcontrol> ~ <ncontrol>;! \\
This is a Pauli $\sigma_{\symup y}$ gate $-\ii\ketbra01 + \ii\ketbra10$, denoted by a rectangle that contains the letter $Y$.
It may not span multiple registers, but allows for controls. \\
The style \style{/yquant/operators/every y} is installed.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!z!}{z}}\label{gate:z}
Syntax: \yquant!z <target> | <pcontrol> ~ <ncontrol>;! \\
This is a Pauli $\sigma_{\symup z}$ gate $\ketbra00 - \ketbra11$, denoted by a rectangle that contains the letter $Z$.
It may not span multiple registers, but allows for controls. \\
The style \style{/yquant/operators/every z} is installed.
-
+
\emph{Possible attributes:} none
-
+
\subsection{\texorpdfstring{\yquant!zz!}{zz}}\label{gate:zz}
Syntax: \yquant!zz <targets>;! \\
This is a symmetric phase gate, denoted by joined filled circles.
It should span multiple registers, but does not allow for controls.
The same warnings as for the \gate{swap} gate apply.
The style \style{/yquant/operators/every zz} is installed.
-
+
\emph{Possible attributes:} none
-
-
+
+
\section{Examples}\label{sec:examples}
This section will contain lots of examples.
On the left\hyp hand side, the output is given, while the code to construct the example is on the right.
All examples that are provided originate from the examples supplied with \pkg{qasm}, \pkg{qcircuit}, and \pkg{quantikz}.
We will essentially follow their manuals example\hyp by\hyp example, which gives a nice comparison in how to achieve the given feature using these packages and \Yquant{} instead.
- All examples of course require inclusion of the \Yquant{} package in the preamble, and some also require \pkg{braket}.
-
+ All examples of course require inclusion of the \Yquant{} package with newest compatibility in the preamble, and some also require \pkg{braket}.
+
\subsection{\pkg{qasm} documentation}
\begingroup%
\yquantset{register/default name=$\ket{\reg_{\idx}}$}%
@@ -1302,48 +1498,48 @@ qubit {$\ket{<name>_{\idx}}$} <name>[<len>];
\yquantset{register/default name=$\ket{\reg_{\idx}}$}
\end{minted}
in the preamble, as is done here.
-
- Note that since version~0.3, \Yquant{} supports the \pkg{qasm} syntax, see \cref{sec:foreign:qasm}
-
+
+ \compat{New in 0.3}Note that \Yquant{} also directly supports the \pkg{qasm} syntax, see \cref{sec:foreign:qasm}.
+
\begin{example}[test1 (create an EPR pair)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit q[2];
-
+
h q[0];
cnot q[1] | q[0];
\end{yquant}
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\clearpage
- \begin{example}[test2 (simple teleportation circuit)]
+ \begin{example}<Updated in 0.1.1>[test2 (simple teleportation circuit)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit q[3];
-
+
h q[1];
cnot q[2] | q[1];
cnot q[1] | q[0];
h q[0];
measure q[0-1];
-
+
z q[2] | q[1];
x q[2] | q[0];
\end{yquant}
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\begin{example}[test3 (swap circuit)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit q[2];
-
+
cnot q[1] | q[0];
cnot q[0] | q[1];
cnot q[1] | q[0];
@@ -1351,14 +1547,14 @@ qubit {$\ket{<name>_{\idx}}$} <name>[<len>];
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\clearpage
- \begin{example}[test4 (quantum fourier transform on three qubits)]
+ \begin{example}<Updated in 0.1.1>[test4 (quantum fourier transform on three qubits)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit j[3];
-
+
h j[0];
box {$S$} j[0] | j[1];
box {$T$} j[0] | j[2];
@@ -1370,14 +1566,14 @@ qubit {$\ket{<name>_{\idx}}$} <name>[<len>];
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\begin{example}[test5 (demonstrate arbitrary qubit matrix ops)]
\begin{codeexample}
% \usepackage{amsmath}
\begin{tikzpicture}
\begin{yquant}
qubit j[2];
-
+
box {$\begin{bmatrix}
e^{i \alpha} & 0 \\
0 & e^{-i \alpha}
@@ -1390,14 +1586,14 @@ qubit {$\ket{<name>_{\idx}}$} <name>[<len>];
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\clearpage
- \begin{example}[test6 (demonstrate multiple-qubit controlled single-q-gates)]
+ \begin{example}<Updated in 0.1.1>[test6 (demonstrate multiple-qubit controlled single-q-gates)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit j[4];
-
+
cnot j[2] | j[0, 1];
x j[0];
box {$U$} j[1] | j[0, 2-3];
@@ -1407,13 +1603,13 @@ qubit {$\ket{<name>_{\idx}}$} <name>[<len>];
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}[test7 (measurement of operator with correction)]
+
+ \begin{example}<Updated in 0.1.1>[test7 (measurement of operator with correction)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit q[2];
-
+
h q[0];
box {$U$} q[1] | q[0];
h q[0];
@@ -1423,15 +1619,15 @@ qubit {$\ket{<name>_{\idx}}$} <name>[<len>];
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\clearpage
- \begin{example}[test8 (stage in simplification of quantum teleportation)]
+ \begin{example}<Updated in 0.4>[test8 (stage in simplification of quantum teleportation)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket{q_0} = \ket\psi$} q[1];
qubit {$\ket{q_{\idx}} = \ket0$} q[+2];
-
+
h q[1];
cnot q[1] | q[0];
cnot q[2] | q[1];
@@ -1443,19 +1639,24 @@ qubit {$\ket{<name>_{\idx}}$} <name>[<len>];
\end{tikzpicture}
\end{codeexample}
Note that we left out two Hadamards at the end.
-
- Before version 0.1.1, the recommended approach (which of course still works) to define a vector qubit register with various texts was to use case discrimination on \tex!\idx!, for example in the following manner:
+
+ Another way to provide various initial values in a single command is by performing case discrimination on \tex!\idx!, for example in the following manner:
+
\begin{minted}{tex}
-qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
+qubit {$\ket{q_{\idx}} = \Ifcase\idx\relax \ket\psi \Else \ket0 \Fi$} q[3];
\end{minted}
+ In principle, all \TeX{} conditionals that check against \tex!\idx! need to be prefixed by \tex!\protect!.
+ If the \texttt{compat} key is at least \texttt{0.4}, \Yquant{} will make the commands \tex!\Ifnum!, \tex!\Ifcase!, \tex!\Or!, \tex!\Else!, \tex!\Fi!, \tex!\Unless! and \tex!\The! available for use within gates; they correspond in a certain way to auto\hyp\tex!\protect!ed versions of the corresponding \TeX{} primitives.
+ Most likely, you will never need them inside values if not in the exact combination with \tex!\idx!.
\end{example}
-
+
+ \clearpage
\begin{example}[test9 (two-qubit gate circuit implementation of Toffoli)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit q[3];
-
+
box {$\sqrt X$} q[2] | q[1];
cnot q[1] | q[0];
box {$\sqrt X^\dagger$} q[2] | q[1];
@@ -1465,16 +1666,15 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \clearpage
- \begin{example}[test10 (multi-qubit gates also demonstrates use of classical bits)]
+
+ \begin{example}<Alternative in 0.1.2\\Updated in 0.1.1>[test10 (multi-qubit gates also demonstrates use of classical bits)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket{q_0}$} q;
cbit {$c_1$} c;
qubit {$\ket{q_2}$} q[+1];
-
+
h q[0];
box {$U$} (q[0], c);
box {$S$} q[1];
@@ -1482,17 +1682,18 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
\end{yquant}
\end{tikzpicture}
\end{codeexample}
- Instead of a discontigous vector register, we could also have used three scalar registers.
+ Instead of a discontiguous vector register, we could also have used three scalar registers.
The labels chosen for \pkg{qasm} do not fit well to the indices \Yquant{} assigns.
We might also have used a three\hyp register vector and used the \gate{settype} pseudo\hyp gate to immediately change the second register into a classical one, which would give indices matching the labels---but still, the registers would have a common name, which would make this a very unnatural approach.
\end{example}
-
- \begin{example}[test11 (user-defined multi-qubit ops)]
+
+ \clearpage
+ \begin{example}<Updated in 0.1.1>[test11 (user-defined multi-qubit ops)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit q[3];
-
+
h q[0];
box {$U_{f(x)}$} (q[0, 1]);
h q[1];
@@ -1503,14 +1704,13 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
Here we used the fact that a vector register can also be addressed as a whole.
Instead of \tex!(q)!, we could have also written, e.g., \tex!(q[0]-q[2])! or \tex!(q[0-2])!, or enumerated all sub\hyp registers in a comma\hyp separated list.
\end{example}
-
- \clearpage
- \begin{example}[test12 (multi-qubit controlled multi-qubit operations)]
+
+ \begin{example}<Updated in 0.1.1>[test12 (multi-qubit controlled multi-qubit operations)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit q[3];
-
+
h q[0];
box {$U$} (q[1-2]) | q[0];
h q[0];
@@ -1519,14 +1719,15 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
+ \clearpage
\begin{example}[test13 (three-qubit phase estimation circuit with QFT and controlled-U)]
\begin{codeexample*}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket{j_{\idx}} = \ket0$} j[3];
qubit s[2];
-
+
h j;
box {$U^4$} (s) | j[0];
box {$U^2$} (s) | j[1];
@@ -1542,7 +1743,7 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
\end{tikzpicture}
\end{codeexample*}
\end{example}
-
+
\begingroup%
\mdfapptodefinestyle{bdBox}{%
leftmargin=-.12\linewidth,
@@ -1555,7 +1756,7 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
qubit q[3];
qubit {$\ket{s_{\idx}} = \ket0$} s[2];
cbit {$c_{\idx} = 0$} c[2];
-
+
h s[0];
cnot s[1] | s[0];
cnot s[0] | q[0];
@@ -1566,7 +1767,7 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
cnot c[0] | s[0];
cnot c[1] | s[1];
discard s; % to suppress wires extending until re-initialization
-
+
init {$\ket0$} s;
h s[0];
cnot s[1] | s[0];
@@ -1575,7 +1776,7 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
cnot s[1] | s[0];
h s[0];
measure s;
-
+
box {Process\\Syndrome} (s, c);
box {$\symcal R$} (q) | s, c;
\end{yquant}
@@ -1583,35 +1784,38 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
\end{codeexample*}
\end{example}
\endgroup%
-
+
\clearpage
- \begin{example}[test15 (``D-type'' measurement)]
+ \begin{example}<Updated in 0.1.1>[test15 (``D-type'' measurement)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket{q_0} = \ket\psi$} q;
qubit {$\ket{q_1} = \ket+$} q[+1];
-
+
zz (q);
dmeter {$H Z_\theta$} q[0];
\end{yquant}
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}[test16 (example from Nielsen paper on cluster states)]
+
+ \begin{example}<Updated in 0.4, 0.1.2, 0.1.1>[test16 (example from Nielsen paper on cluster states)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket{q_{\idx}} = \ket\psi$} q[2];
qubit {$\ket{q_2} = \ket\phi$} q[+1];
qubit {$\ket{q_3} = \ket0$} q[+1];
-
+
zz (q[1], q[2]);
align q;
cnot q[3] | q[2];
slash q[0];
dmeter q[3];
+ align q;
+ [solid]
+ barrier q[2];
discard q[2];
\end{yquant}
\end{tikzpicture}
@@ -1620,18 +1824,17 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
Usually, this would be sufficient to put the \gate{cnot} and the \gate{slash} gate directly under each other, as it is in the \pkg{qasm} example.
However, the \gate{slash} gate is special in that it does not need horizontal space and is put with only half of the usual operator separation into the circuit (for this reason, it can be put at the beginning of a wire without creating weird shifts with respect to the ``unslashed'' registers---it is put in the initial line that every wire even without an operation has).
Hence, you should normally only use the \gate{slash} gate as the very first gate in a circuit.
- It is not possible to construct the exact same appearance as in the \pkg{qasm} example.
- Note that \gate{discard} currently just drops the wire directly after the last operation.
+ To get the vertical stopper mark, we abuse a \gate{barrier} on just a single wire and turn it from dashed to solid before \gate{discard}ing.
\end{example}
-
- \begin{example}[test17 (example from Nielsen paper on cluster states)]
+
+ \begin{example}<Updated in 0.1.1>[test17 (example from Nielsen paper on cluster states)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket{q_0} = \ket\psi$} q;
qubit {$\ket{q_{\idx}} = \ket+$} q[+2];
qubit {$\ket{q_3} = \ket\phi$} q[+1];
-
+
zz q[(0-1), (2-3)];
zz (q[1-2]);
dmeter {$H$} q[1-2];
@@ -1640,86 +1843,147 @@ qubit {$\ket{q_{\idx}} = \ifcase\idx\relax \ket\psi \else \ket0 \fi$} q[3];
\end{codeexample}
This example shows how the multi\hyp qubit delimiter (the parenthesis) can even be used within indices.
\end{example}
-
- \begin{example}[test18 (multiple-control bullet op)]
+
+ \begin{example}<Updated in 0.1.2>[test18 (multiple-control bullet op)]
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
- qubit {$\ket{q_{\idx}} = \ket{\ifcase\idx\relax \psi \or + \or + \or \phi \fi}$} q[4];
-
+ qubit {$\ket{q_{\idx}} = \ket{\Ifcase\idx\relax \psi \Or + \Or + \Or \phi \Fi}$} q[4];
+
zz (q);
dmeter {$H$} q[1, 2];
\end{yquant}
\end{tikzpicture}
\end{codeexample}
This gate is probably a generalization of \gate{zz}, $\symbb1 - 2 \ketbra{1\dotsm1}{1\dotsm1}$, and indeed since version~0.1.2, we can use \gate{zz} for this purpose.
- This time, we also used the common way to initialize a gate with various identifiers as was done before version~0.1.1, using case distinctions.
+ This time, we used the case distinction method in the initialization, as already alluded to before.
\end{example}
\endgroup
-
+
\clearpage
\subsection{\pkg{qcircuit} documentation}
\begingroup%
- \yquantset{operator/separation=3mm}
+ \yquantset{operator/separation=2mm}
For a better orientation, we use the same section headings as the \pkg{qcircuit} manual.
The manual uses unnamed registers a lot; often, we will use the \tex!yquant*! environment to make things more concise.
- As \pkg{qcircuit} uses a much large separation between the operators than \Yquant's default, we globally say\\*\tex!\yquantset{operator/separation=3mm}!.
-
+ As the \pkg{qcircuit} manual uses a bit larger separation between the operators than \Yquant's default, we globally say\\*\tex!\yquantset{operator/separation=1em}!.
+
\subsubsection{I. Introduction}
- \begin{example}
+ \begin{example}<Updated in 0.4, 0.1.1>%
\begin{codeexample*}
-\begin{tikzpicture}[baseline=(current bounding box.center)]
- \begin{yquant*}
- box {$U$} q[2] | q[0, 1];
- \end{yquant*}
-\end{tikzpicture}
-$=$
-\begin{tikzpicture}[baseline=(current bounding box.center)]
- \begin{yquant*}
- box {$V$} q[2] | q[1];
- cnot q[1] | q[0];
- box {$V^\dagger$} q[2] | q[1];
- cnot q[1] | q[0];
- box {$V$} q[2] | q[0];
- \end{yquant*}
+\begin{tikzpicture}
+ \begin{yquant}[operators/subcircuit/frameless]
+ nobit q[3];
+
+ subcircuit {
+ [out]
+ qubit {} q[3];
+ box {$U$} q[2] | q[0, 1];
+ } (q);
+ discard -;
+
+ [draw=none]
+ box {$=$} (-);
+
+ subcircuit {
+ [out]
+ qubit {} q[3];
+ box {$V$} q[2] | q[1];
+ cnot q[1] | q[0];
+ box {$V^\dagger$} q[2] | q[1];
+ cnot q[1] | q[0];
+ box {$V$} q[2] | q[0];
+ } (q);
+ discard -;
+ \end{yquant}
\end{tikzpicture}
\end{codeexample*}
- Here, we chose to realize the equality using two \tex!tikzpicture!s with appropriately set baselines.
-
- If mangling with the baselines becomes problematic, a different approach would be to use an outer \tex!tikzpicture! with three nodes (left circuit, equals, right circuit); but the circuits themselves are \tex!tikzpictures! again, and nesting those is dangerous (but may work).
- Instead they could have been put into \tex!\savebox!es and just used.
-
- Finally, using nested \tex!tikzpictures! for the outer nodes is not really necessary.
- Not using nodes but putting the two \tex!yquant*! environments in a \TikZ{} \tex!scope! with \texttt{shift} transformation would have also worked.
+ The best way to realize circuit equalities is with the help of \texttt{frameless} subcircuits.
+ The \texttt{[frameless]} attribute can either be specified on each subcircuit individually or, as done here, globally via the corresponding style.
+ In this way, we can specify all subcircuits individually.
+ All wires that are identical in the circuits must be outer wires; but in fact, we do not want them to be visible outside of the subcircuits.
+ Consequently, we initialize them in the outer circuit as \gate{nobit}s, declare them with the \texttt{[out]} attribute, and discard them right after the subcircuit.
+ It is important not to discard them within the subcircuit, as the wires would then not extend to the same horizontal final position.
+ The equality sign is realized very easily by means of a \gate{box} gate that spans all registers and from which we remove the border.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket\psi$} a;
qubit {$\ket0$} b[2];
-
+
h b[1];
cnot b[0] | b[1];
- cnot b[1] | a;
+ cnot b[0] | a;
h a;
align a, b;
measure a;
+ [direct control]
measure b[0];
-
+
x b[1] | b[0];
z b[1] | a;
-
+
discard a;
discard b[0];
output {$\ket\psi$} b[1];
\end{yquant}
\end{tikzpicture}
\end{codeexample*}
+ Here, we see how to use a measurement as a direct output for the next controlled operation.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4>
+ \begin{codeexample*}
+% \usetikzlibrary{quotes}
+\begin{tikzpicture}
+ \begin{yquant}
+ qubit {} msg[3];
+ nobit syndrome[3];
+
+ [this subcircuit box style={dashed, "Syndrome Measurement"}]
+ subcircuit {
+ qubit {} msg[3];
+ [out]
+ qubit {$\ket0$} syndrome[3];
+
+ cnot syndrome[0] | msg[0];
+ cnot syndrome[0] | msg[1];
+ cnot syndrome[1] | msg[1];
+ cnot syndrome[1] | msg[2];
+ cnot syndrome[2] | msg[0];
+ cnot syndrome[2] | msg[2];
+
+ dmeter {$M_{\symbol{\numexpr`a+\idx}}$} syndrome;
+ } (msg[-2], syndrome[-2]);
+
+ ["Recovery"]
+ box {$\mathcal R$} (msg) | syndrome;
+ discard syndrome;
+ \end{yquant}
+\end{tikzpicture}
+ \end{codeexample*}
+ The example demonstrates how to put a description next to a gate.
+ In general, those descriptions should be realized using the \TikZ{} feature \texttt{label}.
+ Using the \TikZ{} library \texttt{quotes}, the label is most easily specified.
+ Since the label is not part of the valid arguments and also cannot be found in the \texttt{/yquant} path, it is automatically passed to \style{/yquant/operator style}.
+
+ To enclose a part of the circuit by a rectangle, we use a subcircuit.
+ We define the incoming \gate{qubit}s in the outer circuit, they will have the default attribute \texttt{[inout]}; the syndrome registers, which are created only in the subcircuit enter as \gate{nobit}s and consequently have the \texttt{[out]} attribute.
+ It is important to note that both the \texttt{dashed} style as well as the \texttt{label} (here with quoted syntax) are specified only inside \style{/yquant/this subcircuit box style}.
+ This ensures that they are not also attached to every single gate in the subcircuit.
+
+ Then we see how to apply an operation to multiple registers in parallel while using the \tex!\idx! macro to still give them a different text.
+ Since \tex!\idx! gives a numerical index (zero\hyp based), we exploit the ASCII code (actually, this document is compiled in Unicode mode...) to turn this into a letter.
+
+ Note that it could have become necessary to pass the \texttt{overlay} attribute to the recovery gate, as it is a multi\hyp register gate with a \texttt{label}, meaning that \Yquant{} cannot reliably distribute its total vertical extent over its constituent registers.
+ However, as the $\symcal R$ together with the label in total were not higher than the three\hyp qubit gate would have been anyway, this was not necessary here.
+ In generally, don't use \texttt{overlay} unless necessary; maybe a future version will even be able to handle the more difficult cases better.
+
+ Finally, we will give a similar circuit by using the \TikZ{} interface instead of subcircuits, this time also showing how we can change the shape of the measurement gate to one as in the \pkg{qcircuit} manual:
+
\begin{codeexample*}
% \usetikzlibrary{fit, quotes}
\begin{tikzpicture}
@@ -1727,7 +1991,7 @@ $=$
qubit {} msg[3];
[name=inits]
qubit {$\ket0$} syndrome[3];
-
+
[name=scnot0]
cnot syndrome[0] | msg[0];
cnot syndrome[0] | msg[1];
@@ -1735,7 +1999,7 @@ $=$
cnot syndrome[1] | msg[2];
cnot syndrome[2] | msg[0];
cnot syndrome[2] | msg[2];
- [name=smeas]
+ [name=smeas, shape=yquant-rectangle, rounded corners=.45em]
dmeter {$M_{\symbol{\numexpr`a+\idx}}$} syndrome;
["Recovery"]
box {$\symcal R$} (msg) | syndrome;
@@ -1744,22 +2008,10 @@ $=$
\node[draw, dashed, fit=(inits-2) (scnot0-p0) (smeas-2), "Syndrome Measurement"] {};
\end{tikzpicture}
\end{codeexample*}
- In this case, an implicit register declaration would not have worked: we would have needed to define the first part of the syndrome register \emph{before} the second part of the message register.
- But this would then have mixed data with syndrome registers in the vertical ordering.
-
- This also is a first demonstration of how to access \Yquant{} objects from within \TikZ.
We name several elements that visually form the enclosing rectangle; then, we use the \TikZ{} library \texttt{fit} to put a node around them all.
-
- Then we see how to apply an operation to multiple registers in parallel while using the \tex!\idx! macro to still give them a different text.
- Since \tex!\idx! gives a numerical index (zero\hyp based), we exploit the ASCII code (actually, this document is compiled in Unicode mode...) to turn this into a letter.
-
- The example also demonstrates how to put a description next to a gate.
- In general, those descriptions should be realized using the \TikZ{} feature \texttt{label}.
- Using the \TikZ{} library \texttt{quotes}, the label is most easily specified.
- Since the label is not part of the valid arguments and also cannot be found in the \texttt{/yquant} path, it is automatically passed to \style{/yquant/operator style}.
+ Any gate can be given a custom shape; here, we use a \texttt{yquant-rectangle}, which is the analogue to \TikZ's \texttt{rectangle} and thus supports the standard \texttt{rounded corners} style.
\end{example}
-
- \clearpage
+
\subsubsection{IV. Simple Quantum Circuits}
\begin{example}
\begin{codeexample}
@@ -1770,7 +2022,8 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
+ \clearpage
\paragraph{A. Wires and gates}\leavevmode
\begin{example}
\begin{codeexample}
@@ -1785,8 +2038,8 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.1.2>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -1796,12 +2049,12 @@ $=$
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
- Since version~0.1.2, \Yquant{} allows to change wire styles by means of the \gate{setstyle} and \gate{addstyle} pseudo\hyp gates.
+ \Yquant{} allows to change wire styles by means of the \gate{setstyle} and \gate{addstyle} pseudo\hyp gates.
Here, we use the gate on all wires in order to set an arrow style.
Note that arrowheads are actually very special in two respects:
\begin{itemize}
\item \Yquant{} draws continuous wires for as long as possible.
- In this example, the wire path extends from the very left to the end of the circuit; since version 0.1.2, \Yquant{} does not draw a wire \emph{to} the gate and then a separate one \emph{from} the gate to the next or the end.
+ In this example, the wire path extends from the very left to the end of the circuit; \compat{Changed in 0.1.2}\Yquant{} does not draw a wire \emph{to} the gate and then a separate one \emph{from} the gate to the next or the end.
The only way to force \Yquant{} to draw multiple wires is to change the wire style or type mid\hyp circuit.
For example, by saying \yquant!addstyle {} -;!, all wire paths will be separated at the current position, which \emph{in theory} allows to draw arrowsheads on intermediate wires.
\item \emph{In practice}, this will not work due to the clipping commands that \Yquant{} installs.
@@ -1812,7 +2065,7 @@ $=$
If you really need to do this (say, for only a single gate), you may experiment with the \TikZ{} \texttt{shorten} keys, which allow you to manually reduce the length of the wire, but the amount of reduction must be hand\hyp computed for every gate.
If you need this more often, consider filing a feature request.
\end{example}
-
+
\paragraph{B. CNOT and other controlled single qubits gates}\leavevmode
\begin{example}
\begin{codeexample}
@@ -1824,8 +2077,8 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -1836,14 +2089,13 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \clearpage
+
\paragraph{C. Vertical wires}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.4, 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
- box {$U_{\protect\the\numexpr\idx+1}$} q[0, 2] | q[1];
+ box {$U_{\The\numexpr\idx+1}$} q[0, 2] | q[1];
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
@@ -1851,12 +2103,10 @@ $=$
This macro follows the same rules as the name suffix, i.e., it assigns indices (zero\hyp based) to the target registers in top\hyp to\hyp bottom order, regardless of which order was specified in the target list.
Since we instead want a one\hyp based subscript, we need to add one.
Note that if you want to output \tex!\idx! directly or within an unexpandable expression, you don't need to take any action.
- However, here, \tex!\the! is expandable; and since \Yquant{} needs to process all its output twice (first in order to determine the vertical spacing, second to actually typeset), you must manually take care that the command is \emph{not} expanded prematurely by inserting \tex!\protect!.
- Had you not done this, the subscript would have been ``$1$'' for both operators.
- Note this is not the case if this macro is used upon creation of a register (as is evident by the fact that the previous examples that used \tex!\ifcase! within the value did not need to say \tex!\protect\ifcase ... \protect\or ... \protect\fi!).
- Probably we can avoid the need for protection in a future release\dots.
+ However, here, \tex!\the! is expandable; and since \Yquant{} needs to process all its output twice (first in order to determine the vertical spacing, second to actually typeset), you must manually take care that the command is \emph{not} expanded prematurely by saying \tex!\protect\the! instead, for which \Yquant{}, with a \texttt{compat} setting of at least \texttt{0.4}, provides the shorthand \tex!\The!.
+ Had we used the plain \TeX{} \tex!\the! instead, the subscript would have been ``$1$'' for both operators.
\end{example}
-
+
\paragraph{D. Labeling input and output states}\leavevmode
\begin{example}
\begin{codeexample}
@@ -1869,19 +2119,20 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4, 0.1.1>
\begin{codeexample}
+% \usetikzlibrary{calc}
\begin{tikzpicture}
\begin{yquant*}
{
- \yquantset{every multi label/.append style={decorate=false, draw=none}}
+ \yquantset{every multi label/.style={every node/.style={anchor=east, midway}}}
init {$\ket{0^k}$} (a[-1]);
}
init {$\ket\psi$} (b[-1]);
- qubit {\ifcase\idx\relax$A$\or$B$\fi} c[2];
- [every multi label/.append style={decorate=false, draw=none, every node/.append style={shift={(-.3, 0)}}}]
- init {$\ket\psi$} (c);
+ [name=cinit]
+ qubit {\Ifcase\idx\relax$A$\Or$B$\Fi} c[2];
+ \node[anchor=east] at ($(cinit-0.west)!.5!(cinit-1.west)$) {$\ket\psi$};
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
@@ -1889,13 +2140,12 @@ $=$
The second one (using a curly brace) corresponds to the default.
It is overwritten for the first qubit, and to make this modification local, this is done in a group.
The third qubit pair uses an overall label and additionally individual labels on the lines.
- This is achieved by some trickery: the individual labels are given as initialization labels on the register; the global label is given as an \gate{init} multi\hyp qubit gate.
+ The recommended way to do this starting from version~0.4 is to add the ``special'' label by means of a \TikZ{} command.
\end{example}
-
- \clearpage
+
\subsubsection{V. More Complicated Circuits: Multiple Qubit gates and Beyond}
\paragraph{A. Multiple qubit gates}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -1904,30 +2154,32 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4, 0.1.1>
\begin{codeexample}
+\yquantdefinebox{dots}[inner sep=0pt]{$\dots$}
\begin{tikzpicture}
\begin{yquant}
qubit {} a;
cbit {} b;
+ [register/minimum height=0pt, register/minimum depth=0pt]
nobit ellipsis;
qubit {} c;
-
- [draw=none]
- box {$\dots$} ellipsis;
+
+ dots ellipsis;
box {$U$} (a, b, ellipsis, c);
- [draw=none]
- box {$\dots$} ellipsis;
+ dots ellipsis;
\end{yquant}
\end{tikzpicture}
\end{codeexample}
- This demonstrates how a register of type \gate{nobit} might even be useful if the register is never used.
- We use \gate{box} registers with disabled border to put the ellipsis dots in place.
+ This demonstrates how a register of type \gate{nobit} might even be useful if the register is never used and no subcircuits are involved.
+ Note how we overwrite the default minimum height and depth setting for this register only.
+ Additionally, we for the first time define our own gate, which we call \texttt{dots}.
+ As we define our own style, it does not inherit from \style{/yquant/operators/every box}; hence, we only need to overwrite the \texttt{inner sep} coming from \TikZ's defaults.
\end{example}
-
+
\clearpage
- \begin{example}
+ \begin{example}<Updated in 0.1.2, 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -1936,10 +2188,10 @@ $=$
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
- This demonstrates \Yquant's capabilities of discontiguous multi\hyp qubit gates that was added in version~0.1.2.
+ This demonstrates \Yquant's capabilities of discontiguous multi\hyp qubit gates.
\Yquant{} automatically splits multi\hyp qubit gates into slices of directly adjacent wires (which, for the $\symcal G$ case, are the single wires \yquant!a[0]! and as second slice \yquant!a[2]!).
\end{example}
-
+
\paragraph{B. Measurements and classical bits}\leavevmode
\begin{example}
\begin{codeexample}
@@ -1955,13 +2207,13 @@ $=$
Extracting a meter symbol on its own will not be supported.
If you are interested in the code, have a look at \texttt{yquant-shapes.tex} and search for the \texttt{yquant-measure} shape.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4, 0.1.2>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
- [rounded corners]
- box {Codebit} a;
+ [shape=yquant-rectangle, rounded corners=.45em, direct control]
+ measure {Codebit} a;
box {$\chi$} b | a;
discard a;
measure b;
@@ -1970,21 +2222,21 @@ $=$
\end{codeexample}
Rectangles with rounded corners are not a specific style, but since the \texttt{yquant-rectangle} shape internally uses \tex!\pgfpathrectangle!, the ordinary \TikZ{} option can be used (also, an inset specification can control how much the corner is rounded).
\end{example}
-
+
\clearpage
\begin{example}
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
qubit {$\ket\psi$} q;
-
+
measure {$\ket{\xi_\pm}$} q;
\end{yquant}
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -1994,8 +2246,8 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.1.2, 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2003,11 +2255,11 @@ $=$
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
- Multi\hyp qubit gates (including measurements) on non\hyp adjacent registers are properly supported since version~0.1.2.
- As explained in \cref{sec:registers}, there is one main and multiple subordinate gate in such a discontiguous multi\hyp qubit operation (though at the moment, the \gate{measure} gate with text is the only gate that makes this distinction).
+ Multi\hyp qubit gates (including measurements) on non\hyp adjacent registers are properly supported.
+ As explained in \cref{sec:registers}, there is one main and multiple subordinate gate in such a discontiguous multi\hyp qubit operation (though at the moment, the \gate{measure} gates with text is the only gate that makes this distinction).
In our case, the main part contains the measurement symbol and the text, while the subordinate gates only contain the text.
By default, \Yquant{} uses the first slice as main part, but you may influence this by preceding what you want to be ``main'' by a star:
-
+
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2016,10 +2268,10 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\clearpage
\paragraph{C. Non-gate inserts, forcing space, and swap}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2036,7 +2288,7 @@ $=$
Here, the intermediate text was inserted by using a \gate{box} without drawing.
Another way would be to use an \gate{init} command, although this is semantically wrong (probably).
\end{example}
-
+
\begin{example}
\begin{codeexample}
\begin{tikzpicture}
@@ -2044,7 +2296,7 @@ $=$
qubit {} a;
[name=ypos]
qubit {} b[3];
-
+
cnot a | b[0];
[name=left]
cnot a | b[1];
@@ -2058,10 +2310,10 @@ $=$
Note how the register range \texttt{-} was used to denote all registers.
We positioned the dots by first naming the relevant registers, so that the vertical position is at the coordinates \texttt{ypos-0} and \texttt{ypos-1}; and then, we also named the \gate{cnot} gates, so that we are able to discern the horizontal position.
\end{example}
-
+
\clearpage
\paragraph{D. Barriers}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2072,10 +2324,10 @@ $=$
\end{codeexample}
\end{example}
Now the \pkg{qcircuit} manual lists three circuits with barriers at different positions.
- They cannot be drawn with \Yquant; however, since neither of them is a valid circuit, this is of no concern.
-
+ They cannot be drawn with \Yquant; however, since neither of them is a valid circuit (no indication whether the control is positive or negative), this is of no concern.
+
\paragraph{E. How to control anything}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2094,13 +2346,12 @@ $=$
If there is need for this, please file a feature request.
But note the relatively common (though unsupported by \Yquant{} at the moment) use of control lines that directly go from the measurement operator to the controlled operation; in this case, the opposite direction would be meant by using the same notation.
\end{example}
-
+
\subsubsection{VI. Bells and Whistles: Tweaking Your Diagram to Perfection}
For options how to configure the circuits, refer to \cref{sec:config}.
-
- \clearpage
+
\paragraph{A. Spacing}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2111,31 +2362,38 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
\paragraph{B. Labeling}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.4>
\begin{codeexample}
\begin{tikzpicture}
- \begin{yquant}[every initial label/.style={anchor=south east}]
+ \begin{yquant}[every initial label/.style={anchor=south east, yshift=1mm}, every post measurement control=direct, operators/every box/.append style={draw=none}]
qubit {\rlap{\hskip2mm $a$}} a;
qubit {\rlap{\hskip2mm $b$}} b;
+ nobit out;
hspace {5mm} -;
-
+
measure b;
- align -;
+ box {$B$} out | b;
measure a;
- output {$A$} a;
- output {$B$} b;
+ box {$A$} out | a;
+ discard -;
\end{yquant}
\end{tikzpicture}
\end{codeexample}
- Measurement with vertical output are not supported (yet).
+ We support measurements with vertical outputs, but only if they replace the positive control of some action.
+ Here, we fake this behavior by introducing an invisible register at the bottom, which will contain the outputs.
+ In order to disable the line around the \gate{box}es, we used the \style{/yquant/operators/every box} style, which here was most convenient, as the only \gate{box}es in use are those without an outline.
+ However, if we instead want to say \texttt{[draw=none]} as an attribute to the \gate{box}es, this will also remove the outline of the measurements.
+ The reason for this is that giving this as an attribute will in fact populate \style{/yquant/operator style}; and internally, the measurement will be nested within the same scope that draws the \gate{box}---so the options given to the \gate{box} will be inherited by the \gate{measure}ment.
+ As an operator style overwrites default styles, this will also apply to the measurements.
+ Hence, to circumvent this, we would have to additionally say \texttt{[draw]} as an attribute to the \gate{measure}ments, although this is already included in their native style.
+
Repositioning the initial labels needs some care and manual fine\hyp tuning.
\end{example}
-
- \clearpage
+
\paragraph{C. Grouping}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.4, 0.1.1>
\begin{codeexample*}
% \usetikzlibrary{fit}
\begin{tikzpicture}
@@ -2150,36 +2408,37 @@ $=$
h a[0];
[name=rightbot]
h a[1] | a[2];
-
+
hspace {2mm} -;
\end{yquant*}
\node[draw, dashed, fit=(left-0) (left-1) (righttop) (rightbot-0)] {};
\end{tikzpicture}
\end{codeexample*}
Note that \tex!\begin{yquant*}! must not be followed by a line break (unless masked by \tex!%!) if options follow.
+ Also note that here, we cannot make use of a subcircuit due to the very last control, which would then control an inner gate of said subcircuit---but they are not exposed.
\end{example}
\endgroup
-
+
\clearpage
\subsection{\pkg{quantikz} documentation}
\begingroup
\yquantset{operator/separation=4mm}%
Again, our section headings will be the same as in the \pkg{quantikz} manual.
And since \pkg{quantikz} also has even more space between the gates, we globally say \tex!\yquantset{operator/separation=4mm}!.
-
+
\subsubsection{II. A single wire}
\begin{example}
\begin{codeexample*}
\begin{tikzpicture}[label position=north east, every label/.style={inner sep=1pt}]
\begin{yquant}
qubit {$\ket0$} a;
-
+
phase {$\alpha$} a;
h a;
phase {$\beta$} a;
h a;
phase {$\gamma$} a;
-
+
[every output/.append style={align=center}]
output {Arbitrary\\pure state} a;
\end{yquant}
@@ -2188,7 +2447,7 @@ $=$
The captions of \gate{phase} commands are internally implemented using \TikZ{} \texttt{label}s.
At the moment, it is not possible to change any label options on a gate-type basis, only locally or fully globally (\TikZ{} feature request \href{https://github.com/pgf-tikz/pgf/issues/811}{\#811}).
\end{example}
-
+
\clearpage
\paragraph{A. Measurements}\leavevmode
\begin{example}
@@ -2199,7 +2458,7 @@ $=$
["$0$"]
measure a;
discard a;
-
+
init {} a;
dmeter {$1$} a;
discard a;
@@ -2208,21 +2467,21 @@ $=$
\end{codeexample}
Other measurement shapes are not supported at the moment.
\end{example}
-
+
\paragraph{B. Wires and arrows}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.1.2>
\begin{codeexample*}
% \usetikzlibrary{quotes}
\begin{tikzpicture}
\begin{yquant}[operator/separation=1cm, every label/.append style={align=center}]
qubit {$\ket0$\\initial state} a;
-
+
[draw=none]
box {$X$} a;
-
+
["$0$/$1$", type=qubit]
measure a;
-
+
addstyle {->} a;
output {$\ket1$} a;
\yquantset{operator/separation=5mm}
@@ -2230,16 +2489,32 @@ $=$
\end{tikzpicture}
\end{codeexample*}
This example demonstrates how to instruct the \gate{measure} gate to use a different output type than the standard \gate{cbit}.
-
+
In general, any macros that are used within a \TikZ{} path or a \Yquant{} operation must not be fragile, or must be preceded with \tex!\protect!.
In this example, \tex!\\! is a robust command (at least in newer kernels), so protection is not required.
Since it may occur quite frequently that \Yquant{} is used within a \tex!center! environment or in \tex!\centering! mode (in which \tex!\\! is still fragile), \Yquant{} takes care of this (it actually robustifies \tex!\@centercr!, which is the meaning of \tex!\\! in these surroundings).
-
- In order to change the style of an individual wire, we use \gate{addstyle} as of version~0.1.2.
- To make the final line smaller, we change the operator separation by issuing \tex!\yquantset! at the end.
+
+ In order to change the style of an individual wire, we use \gate{addstyle}.
+ To make the final line shorter, we change the operator separation by issuing \tex!\yquantset! at the end.
\end{example}
-
- \begin{example}
+
+ \begin{example}<New in 0.4>
+ \begin{codeexample}
+\begin{tikzpicture}
+ \begin{yquant}
+ qubit {$\ket0$} q;
+ [name=h]
+ h q;
+ discard q;
+ \path[/yquant/every wire, /yquant/every qubit wire, -Stealth] (h) -| ++(1cm, -.5cm) node[below] {trash};
+ \end{yquant}
+\end{tikzpicture}
+ \end{codeexample}
+ Here, we use an ordinary \tex!\path! command to reproduce the ``trash'' line.
+ This time, we chose to use the appropriate styles as \Yquant{} itself would do it instead of just saying \tex!\draw! without the options, which would also have worked.
+ \end{example}
+
+ \begin{example}<Updated in 0.4>
\begin{codeexample}
% \usetikzlibrary{quotes}
\begin{tikzpicture}
@@ -2247,14 +2522,13 @@ $=$
qubit {$\ket0^{\otimes n}$} a;
["north east:3" {font=\protect\footnotesize, inner sep=0pt}]
slash a;
- hspace {2mm} a;
h a;
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
Again, you see an example of how some commands need to be \tex!\protect!ed when used in \Yquant{} options, and that you can indeed exploit all features of the \texttt{quotes} library.
\end{example}
-
+
\begin{example}
\begin{codeexample}
\begin{tikzpicture}
@@ -2265,8 +2539,7 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \clearpage
+
\subsubsection{III. Multiple Qubits}
\begin{example}
\begin{codeexample*}
@@ -2274,47 +2547,46 @@ $=$
\begin{yquant}
qubit {$\ket0$} a;
qubit {$\ket0$} b;
-
+
h a, b;
cnot b | a;
box {$U$} a ~ b;
zz (a, b);
-
+
[after=a]
qubit {} c;
-
+
swap (a, c);
box {$U$} c | a ~ b;
\end{yquant}
\end{tikzpicture}
\end{codeexample*}
This example demonstrates the use of the \texttt{after} argument that instructs the register creation to begin the register only after the current position of another register that already exists.
+ Note that this argument will always make the wire begin \emph{at the right end} of the last gate of the referenced register; however, if---as is the case here---this gate is shorter than \style{/yquant/operator/minimum width}, this might not coincide with the visual right end.
\end{example}
-
+
\clearpage
- \begin{example}
+ \begin{example}<Updated in 0.4, 0.1.2, 0.1.1>
\begin{codeexample*}
\begin{tikzpicture}
\begin{yquant*}
[name=c]
cnot a[0, 2] | a[1];
- [name=m]
+ [name=m, direct control]
measure a[1];
discard a[2];
- \path[/yquant/every wire, /yquant/every qubit wire] (c-1) -- (m.center |- c-1);
box {$U$} a[0] | a[1];
+ \path[/yquant/every wire, /yquant/every qubit wire] (c-1) -- (m.center |- c-1);
discard a[1];
\end{yquant*}
\end{tikzpicture}
\end{codeexample*}
- It is not possible for the double control line to directly exit the measurement gate.
- Also, if you discard a gate, this will prevent it from exiting from its last gate.
- \Yquant{} will not allow you (apart from manual drawing) to extend the wire to some arbitrary position, then drop it.
- But of course, as done here, you can always resort to the full power of \TikZ.
- Still, this is inferior to a wire drawn by \Yquant, as it does not use clippings: the connection with the \gate{cnot} gate may not be accurate; in particular, if the wire is of a different color or if you need to draw classical or bundle wires, the connection will become unpleasant.
+ Here, we manually extended the wire on the last register.
+ We could instead have performed an \gate{align} gate before the discarding process, then, the wire line would have been extended by \Yquant{}; but since \gate{align} aligns at the \emph{right end} as opposed to the center of the gate, the wire line would have been a bit longer.
+ Still, this \TikZ{} wire is inferior to a wire drawn by \Yquant, as it does not use clippings: the connection with the \gate{cnot} gate may not be accurate; in particular, if the wire is of a different color or if you need to draw classical or bundle wires, the connection will become unpleasant.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2327,15 +2599,17 @@ $=$
\end{tikzpicture}
\end{codeexample}
\end{example}
-
+
+ \Yquant{} doesn't offer anything comparable to the new \tex!\ctrlbundle! command; and as the bundle lines are spaced much more tightly in \Yquant, this would not really make sense.
+
\clearpage
\subsubsection{IV. Operating on many Qubits}
- \begin{example}
+ \begin{example}<Updated in 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
init {$\ket0^{\otimes3}$} (a[-2]);
-
+
box {$U$} (a[1-2]) | a[0];
measure a[0];
discard a[0];
@@ -2346,11 +2620,11 @@ $=$
Multi\hyp qubits inputs are possible using the \gate{init} command.
The text assigned to a register declaration is always for an individual register.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4>
\begin{codeexample}
\begin{tikzpicture}
- \begin{yquant*}
+ \begin{yquant*}[register/minimum height=6mm, register/minimum depth=6mm]
hspace {7.5mm} a;
h a;
hspace {7.5mm} a;
@@ -2366,34 +2640,49 @@ $=$
Therefore, there is no automatic centering of a column, though it could be emulated using hand-crafted \gate{hspace} commands, as was done here (the Hadamard gate uses the \style{/yquant/operator/minimum width}, which is \tex!5mm!, while the large box has a width of \tex!2cm!, so that we need two \tex!7.5mm! spacings at the end, as the \gate{hspace} pseudo\hyp gate only inserts exactly the space you give, but not additional [twice] \style{/yquant/operator/separation}, as would be the case for a hypothetical zero\hyp width gate).
In fact, we don't even need the second \gate{hspace}, since the two\hyp qubit \gate{cnot} will automatically enforce correct alignment.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
-\begin{tikzpicture}[braced/.style={decoration={brace, #1, pre=moveto, pre length=-1pt, post=moveto, post length=-1mm}, decorate}, inner/.style={font=\footnotesize}]
- \begin{yquant}[register/separation=3mm]
- [name=a]
+\begin{tikzpicture}
+ \begin{yquant}[register/separation=3mm, every nobit output/.style={}]
qubit {} a[4];
- [x radius=1cm, name=u]
- box {$U$} (a[1-3]) | a[0];
+ [every inspect/.append style={outer xsep=0pt}, operator/minimum width=0pt, font=\footnotesize, name=sub]
+ subcircuit {
+ \yquantset{operator/separation=0pt}
+ qubit {} x[2];
+ qubit {} y;
+ discard -;
+
+ inspect {$x$} (x);
+ [inner xsep=0pt]
+ inspect {$y\vphantom f$} y;
+
+ [shape=yquant-init, decoration={mirror}]
+ inspect {\hskip4mm $x$} (x);
+ [shape=yquant-init, inner xsep=0pt]
+ inspect {$y \oplus f(x)$} y;
+ } (a[1-3]) | a[0];
+ \node at (sub) {$U$};
+ settype {qubit} a;
\end{yquant}
- \draw[braced]
- ([xshift=2pt] a-1 -| u.west) -- ([xshift=2pt] a-2 -| u.west)
- node[inner, anchor=west, xshift=1pt, pos=.55] {$x$};
- \draw[braced=mirror]
- ([xshift=-2pt] a-1 -| u.east) -- ([xshift=-2pt] a-2 -| u.east)
- node[inner, anchor=east, xshift=-1pt, pos=.55] {$x$};
- \node[inner, anchor=west] at (a-3 -| u.west) {\smash{$y$}};
- \node[inner, anchor=east] at (a-3 -| u.east) {\smash{$y \oplus f(x)$}};
\end{tikzpicture}
\end{codeexample*}
- There is no simple way to draw \emph{within} a gate, unless this gate is a proper quantum circuit itself.
- Instead, here the intricate parts were reproduced using \TikZ: first, we make sure we assign a name to every relevant coordinate.
- Then we use some \TikZ{} styles to draw the braces and nodes at the intersection of these coordinates.
- Here, we also make use of the \texttt{moveto} decoration transformation that comes with \Yquant{} and that allows to enlarge the braces slightly for a good overall appearance.
- Finally, as $y$ has a much smaller height than $y \oplus f(x)$, we make sure this does not affect the vertical positioning; and also, as $x$ has no ascender, we need to slightly position it off\hyp mid for a good look.
+ We use quite some tricks to achieve such a layout.
+ We use a subcircuit as a container and \gate{inspect} gates to indicate the inputs and output states accurately.
+ As those are ordinary gates, we reset \style{/yquant/operator/minimum width}, so that the ``$y$'' indication is not too long.
+ Additionally, they are usually meant to be used within a circuit, i.e., they have an additional margin denoted by the \texttt{outer xsep}, which we also remove.
+ Then, within the subcircuit, we reset the \style{/yquant/operator/separation}, which would insert additional whitespace at the beginning.
+ It is important to do this within the subcircuit and not as an attribute; else, we would also remove the outer lines going into the subcircuit.
+
+ Initial or final \gate{inspect} gates without a brace do not really need the separation between brace tip and text (\texttt{inner xsep}), so we also remove it.
+ The output gates should have their braces and separations at the other side, which corresponds to changing their shape from \texttt{yquant-output} to \texttt{yquant-init} and mirroring the decoration (as in \style{/yquant/every label}).
+ To get the desired right\hyp alignment, we hand\hyp tailor an \tex!\hskip! that enlarges the upper output label---automatic alignments would not work here: putting the two \gate{inspect}s together with a case distinction on \tex!\idx! would center them; using \gate{output}s would left\hyp align them.
+
+ Finally, we have to deal with the caption of the gate, which should be absolutely centered with respect to the subcircuit and not have any influence on the spacing---so we just insert it retrospectively as an ordinary \TikZ{} node.
+
+ Also note the use of \gate{discard} and \gate{settype} since we needed wires before and after the subcircuit, which must match the inner wires in type, but we actually do not want to have inner wires.
\end{example}
-
- \clearpage
+
\begin{example}
\begin{codeexample}
\begin{tikzpicture}
@@ -2407,8 +2696,8 @@ $=$
\end{codeexample}
This time, we did not artificially discard the lines.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4, 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}
@@ -2418,8 +2707,13 @@ $=$
\end{yquant}
\end{tikzpicture}
\end{codeexample}
+ Notice here that the vertical spacing is uneven.
+ \Yquant{} realizes that the minimal vertical spacing will not be enough to account for the multi\hyp qubit boxes.
+ However, when it tries to adjust positions accordingly so that the last gate fits, this will of course not change anything for the first wire, which is not contained in the gate.
+ After having increased the spacing, \Yquant{} realizes that this already was enough to accomodate for the first gate, so no further action is taken.
+ In order to get a more even spacing, just increase \style{/yquant/register/minimum height} and \style{/yquant/register/minimum depth}.
\end{example}
-
+
\paragraph{A. Different connections}\leavevmode
\begin{example}
\begin{codeexample}
@@ -2435,10 +2729,9 @@ $=$
\end{yquant}
\end{tikzpicture}
\end{codeexample}
- This example for the first time demonstrates the declaration of a non\hyp existing register and the \gate{settype} pseudo\hyp gate that acts as a zero\hyp width, no\hyp content \gate{init} gate.
+ This example demonstrates the declaration of a non\hyp existing register and the \gate{settype} pseudo\hyp gate that acts as a zero\hyp width, no\hyp content \gate{init} gate.
\end{example}
-
- \clearpage
+
\subsubsection{V. Slicing}
\begin{example}
\begin{codeexample}
@@ -2460,7 +2753,7 @@ $=$
Changing the style of slice captions simply means providing label options.
This time, we used the \texttt{label} key instead of the shorter syntax provided by the \texttt{quotes} library, which is of course also possible.
\end{example}
-
+
\begin{example}
\begin{codeexample*}
% \usetikzlibrary{quotes}
@@ -2483,23 +2776,23 @@ $=$
\end{tikzpicture}
\end{codeexample*}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
% \usetikzlibrary{quotes}
\begin{tikzpicture}[label distance=4mm]
- \begin{yquant}[operators/every barrier/.append style={red, thick, shorten <= -2mm, shorten >= -2mm}]
+ \begin{yquant}[operators/every barrier/.append style={red, thick, shorten <= -4mm, shorten >= -4mm}]
qubit {$\ket0$} a;
h a;
["1"]
- barrier (a);
+ barrier a;
phase {[label distance=0pt]$\varphi$} a;
["2"]
- barrier (a);
+ barrier a;
h a;
["3"]
- barrier (a);
- output {$\cos\frac\varphi2 \ket0 - i\sin\frac\varphi2 \ket1$};
+ barrier a;
+ output {$\cos\frac\varphi2 \ket0 - i\sin\frac\varphi2 \ket1$} a;
\end{yquant}
\end{tikzpicture}
\end{codeexample*}
@@ -2526,21 +2819,21 @@ $=$
Only \tex!\yquantset! will be properly captured and re\hyp issued at the correct position when the content is actually typeset.
Had we written \tex!\tikzset{label distance=0pt} \yquant!, no effect at all would have been visible, since this command would only have taken effect in the first (invisible) round when \Yquant{} determines heights.
\end{example}
-
+
\Yquant{} does not provide a mechanism for vertical labels, but you may of course just insert line breaks at appropriate positions (and set the \texttt{align} property of the labels).
-
+
\clearpage
\subsubsection{VI. Spacing}
\paragraph{A. Local adjustment}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.4>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant}[register/default name=]
- [register/minimum height=2cm]
+ [register/minimum depth=2cm]
qubit a;
- qubit {\vbox to 1cm{}} b;
+ qubit b;
qubit c;
-
+
h a;
x b-;
hspace {2cm} -;
@@ -2551,13 +2844,12 @@ $=$
\end{yquant}
\end{tikzpicture}
\end{codeexample}
- At the moment, the distance between registers is calculated by \Yquant{} automatically.
- We show various possibilities to intervene in this example.
- The first is to locally, upon creation of the register, reset \style{/yquant/register/minimum height} to a different value.
- The second is to artificially enlarge the label that the qubit initializer takes.
- However, both approaches enlarge the \emph{height} of the registers, i.e., add half of the specified amount to the top and the bottom.
+ The vertical distance between registers is calculated by \Yquant{} automatically based on the height and depth that \Yquant{} find for this particular register---i.e., how much space is required above and below the wire line for all the gates.
+ In order to enlarge these values, reset \style{/yquant/register/minimum height} or \style{/yquant/register/minimum depth} to a different value.
+ It is not possible to artificially \emph{reduce} the calculated heights and depths, as this would result in overlapping gates.
+ However, sometimes it might be required to exclude a certain gate from the calculation; then, use the \texttt{overlay} attribute.
\end{example}
-
+
\begin{example}
\begin{codeexample*}
\begin{tikzpicture}
@@ -2577,7 +2869,7 @@ $=$
Note that in the first case, the \emph{radius} is specified, i.e., the half\hyp width, while in the second case, it is the \emph{total} width (both times modulo the inner separation).
Also note that the \style{/yquant/operator/minimum width} style is unsuitable for the given task: it would not change the visual width, only what \Yquant{} assumes its width to be.
\end{example}
-
+
\paragraph{B. Global Adjustment}\leavevmode
\begin{example}
\begin{codeexample*}
@@ -2590,11 +2882,11 @@ $=$
\end{tikzpicture}
\end{codeexample*}
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.4, 0.1.1>
\begin{codeexample}
\begin{tikzpicture}
- \begin{yquant*}[register/minimum height=0pt]
+ \begin{yquant*}[register/minimum height=0pt, register/minimum depth=0pt]
x a[0, 2];
zz (a[0, 1]);
x a[0];
@@ -2602,13 +2894,13 @@ $=$
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
- By default, \Yquant{} will use the height that is required by the individual gates, but at least \style{/yquant/register/minimum height} (which defaults to \tex!3mm!).
+ By default, \Yquant{} will use the height and depth that is required by the individual gates, but at least \style{/yquant/register/minimum height} or, respectively, \style{/yquant/register/minimum depth} (which default to \tex!1.5mm!).
Only manually reducing the default height will produce the cramped spacing displayed here.
\end{example}
-
+
\clearpage
\paragraph{C. Alignment}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.4>
\begin{codeexample}
\begin{tikzpicture}
\begin{yquant*}
@@ -2625,80 +2917,128 @@ $=$
\end{tikzpicture}
\end{codeexample}
Not specifying anything for the vertical alignment will lead to the common \TikZ{} problem: the baseline will be at the bottom, which is particularly bad in this case due to the missing $X$ gate.
- The \style{/yquant/register/minimum height} key does not help here, since it only affects \Yquant's internal handling, but not the bounding box calculated by \TikZ.
- In the first example of the \pkg{qcircuit} documentation, we demonstrated how the desired task can easily be achieved in terms of \texttt{baseline}s.
- We will now do the same with scopes instead.\vskip2mm
- \begin{codeexample*}
-\begin{tikzpicture}[/yquant/register/minimum height=5mm]
- \begin{yquant*}
- x a[0];
- cnot a[1] | a[0];
- \end{yquant*}
- \path (current bounding box.east |- 0, 0) ++(1, 0) coordinate (shift);
- \begin{scope}[shift=(shift)]
- \begin{yquant*}
- cnot a[1] | a[0];
- x a;
- \end{yquant*}
- \end{scope}
- \node at (current bounding box) {$=$};
-\end{tikzpicture}
- \end{codeexample*}
- Here, we increased the minimum height so that in the left circuit despite the absence of the $X$ gate, the second register has the same separation.
- We used the meta\hyp node \texttt{current bounding box} to avoid the need to manually specify hard\hyp coded positions.
- \end{example}
-
- \subparagraph{1. Perfecting Vertical Alignment}\leavevmode
- \begin{example}
- \begin{codeexample*}
-\begin{tikzpicture}[baseline=(W)]
+ The keys for minimal register sizes do not help here, since they only affect \Yquant's internal handling, but not the bounding box calculated by \TikZ.
+ The recommended way to draw circuit equations is always with \texttt{frameless} \gate{subcircuit}s; only this will guarantee perfect wire alignment in all cases.
+
+ \begin{codeexample}
+\begin{tikzpicture}
\begin{yquant}
- qubit {$\ket0$} anc;
- [name=W]
- qubit {} x;
- h x;
- cnot x | anc;
+ nobit q[2];
+
+ [frameless]
+ subcircuit {
+ [out]
+ qubit {} q[2];
+ x q[0];
+ cnot q[1] | q[0];
+ } (q);
+ discard -;
+
+ [draw=none]
+ box {$=$} (q);
+
+ [frameless]
+ subcircuit {
+ [out]
+ qubit {} q[2];
+ cnot q[1] | q[0];
+ x q;
+ } (q);
+ discard -;
\end{yquant}
-\end{tikzpicture} $\equiv$ \begin{tikzpicture}[baseline=(W)]
+\end{tikzpicture}
+ \end{codeexample}
+ \end{example}
+
+ \begin{example}<New in 0.4>
+ \begin{codeexample*}
+\begin{tikzpicture}
\begin{yquant}
- [name=W]
- qubit {} x;
- h x;
- x x;
+ qubit {$\ket x$} q;
+ qubit {$\ket y$} q[+1];
+
+ [seamless]
+ subcircuit {
+ [in]
+ qubit {} q[2];
+
+ h q[0];
+ cnot q[1] | q[0];
+ output {\quad$\mapsto$} (-);
+ } (q);
+
+ [draw=none, inner sep=0pt]
+ box {$\ket{\psi_{x, y}}$} (q);
+
+ [seamless]
+ subcircuit {
+ [out]
+ qubit {} q[2];
+
+ init {$\mapsto$\quad} (q);
+ cnot q[1] | q[0];
+ h q[0];
+ } (q);
+
+ output {$\ket x$} q[0];
+ output {$\ket y$} q[1];
\end{yquant}
\end{tikzpicture}
- \end{codeexample*}
- While here, we opted for the most logical choice to name the declaration of the register, a name put to any operation on the desired register would also serve the purpose (as long as this operation is vertically symmetrical, which subcircuits may not be).
- \end{example}
-
- \clearpage
- \begin{example}
+ \end{codeexample*}
+ Here, we do not have a circuit equation (i.e., logical statements involving multiple rather independent circuits), but a circuit progression.
+ We start with some ``outer'' states (note we could again have used the \tex!\symbol! trick to make the declaration a bit shorter), let them enter into the first subcircuit and define an output of this.
+ In the opposite way, we proceed after giving the state.
+ Where to put the actual labels (e.g., the \gate{box} could also have contained $\mapsto \ket{\psi_{x, y}} \mapsto$ and the \gate{output} and \gate{init} gates could have been empty) is up to the user.
+
+ Note that we used \texttt{seamless} instead of \texttt{frameless}, which gives a tighter spacing that is more suitable if initializers or outputs are present.
+ \end{example}
+
+ \clearpage
+ \subparagraph{1. Perfecting Vertical Alignment}\leavevmode
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
-\begin{tikzpicture}[baseline={([yshift=.2cm]W)}]
- \begin{yquant}
- qubit {$\ket0$} anc;
- [name=W]
- qubit {} x;
- h x;
- cnot x | anc;
- \end{yquant}
-\end{tikzpicture} $\equiv$
-\begin{tikzpicture}[baseline={([yshift=.2cm]new)}]
+\begin{tikzpicture}
\begin{yquant}
- [name=new]
- qubit {} x;
- h x;
- x x;
+ nobit q[2];
+
+ [frameless]
+ subcircuit {
+ [out]
+ qubit {} q;
+ [out]
+ qubit {$\ket0$} q[+1];
+
+ cnot q[0] | q[1];
+ cnot q[1] | q[0];
+ cnot q[0] | q[1];
+ } (q);
+ discard -;
+
+ [draw=none]
+ box {$=$} (q);
+
+ [frameless]
+ subcircuit {
+ [out]
+ qubit {} q;
+ [out]
+ qubit {$\ket0$} q[+1];
+
+ cnot q[1] | q[0];
+ cnot q[0] | q[1];
+ } (q);
+ discard -;
\end{yquant}
\end{tikzpicture}
\end{codeexample*}
- Of course, you may also use the features of the \TikZ{} library \texttt{calc} to achieve the same shift.
+ Using \gate{subcircuit}s here looks like an overkill, but it is the best way both for logical consistency and also to achieve perfect horizontal alignment.
\end{example}
-
+
+ \clearpage
\paragraph{D. Scaling}\leavevmode
\begin{example}
\begin{codeexample*}
-\begin{tikzpicture}[scale=1.5, every label/.append style={scale=1.5}]
+\begin{tikzpicture}[scale=1.5]
\begin{yquant*}
h a;
phase {$\beta$} a;
@@ -2708,10 +3048,10 @@ $=$
\end{codeexample*}
Here, we first scaled the circuit itself.
The default style for \style{/yquant/every circuit} sets the \texttt{transform shape} key for every node (which means any gate), so that those are also scaled.
- This is explicitly undone for \texttt{label}s due to \TikZ{} bug \href{https://github.com/pgf-tikz/pgf/issues/843}{\#843}, so the scaling must be specified explicitly for the \texttt{label}s.
- % TODO Note that unless you use a very recent version of \TikZ{} in which bug \href{https://github.com/pgf-tikz/pgf/issues/843}{\#843} was fixed, you might need to add \tex!every label/.prefix style={transform shape=false}! to this style, which undoes the effect for \texttt{label}s.
+ If your \TikZ{} version is at least 3.1.6a, this is all that needs to be done.
+ In earlier versions, there was a bug that required \Yquant{} to reset the \texttt{transform shape} key for \texttt{label}s, which would then require you to scale those manually.
\end{example}
-
+
\subsubsection{VII. Typesetting}
\paragraph{A. Global Styling}\leavevmode
\begin{example}
@@ -2731,7 +3071,7 @@ $=$
Had we used \style{/yquant/every operator}, then the measurement would also have changed.
Again, due to a \TikZ{} limitation, it is not possible to change the position of labels on a per\hyp style basis, only by using \texttt{label} options or a global setting.
\end{example}
-
+
\begin{example}
\begin{codeexample*}
\begin{tikzpicture}[thick]
@@ -2749,8 +3089,8 @@ $=$
Contrary to \pkg{quantikz}, this also fills the \gate{cnot}s.
If you only want to fill certain operators, you have to selectively target them using their styles.
\end{example}
-
- \begin{example}
+
+ \begin{example}<Updated in 0.1.2, 0.1.1>
\begin{codeexample*}
\begin{tikzpicture}
\begin{yquant}[operators/every box/.append style={fill=white}]
@@ -2761,11 +3101,12 @@ $=$
\end{yquant}
\end{tikzpicture}
\end{codeexample*}
- \Yquant{} properly splits discontiguous multi\hyp qubit operations as of version~0.1.2.
+ \Yquant{} properly splits discontiguous multi\hyp qubit operations.
\end{example}
-
+
+ \clearpage
\paragraph{B. Per-Gate Styling}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.4>
\begin{codeexample}
% \usetikzlibrary{quotes}
\begin{tikzpicture}
@@ -2774,23 +3115,22 @@ $=$
h a;
[green]
phase {[green]$\beta$} a;
- ["$\ket\pm$"]
+ ["$\ket\pm$", blue]
measure a;
discard a;
\end{yquant*}
\end{tikzpicture}
\end{codeexample}
\end{example}
-
- \clearpage
- \begin{example}
+
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
% \usetikzlibrary{shapes.symbols, fit}
\begin{tikzpicture}
\begin{yquant}
qubit {} data;
qubit {$\ket0$} anc1[2];
-
+
h data;
cnot anc1 | data;
[after=data]
@@ -2800,10 +3140,11 @@ $=$
cnot anc2[0] | data;
cnot anc2 | anc1[0];
cnot anc2[1] | anc1[1];
- measure anc2;
+ measure anc2[0];
+ [blue] measure anc2[1];
\end{yquant}
- \node[starburst, cyan, fill=yellow, draw=red,
- line width=2pt, inner xsep=-4pt, inner ysep=-5pt, fit=(box)] {noise};
+ \node[starburst, cyan, fill=yellow, draw=red, line width=2pt,
+ inner xsep=-4pt, inner ysep=-5pt, fit=(box)] {noise};
\end{tikzpicture}
\end{codeexample*}
\TikZ{} shapes cannot simply be used with \Yquant.
@@ -2813,11 +3154,11 @@ $=$
\Yquant{} draws its elements sequentially; hence, a wire that comes into an operator will be hidden by anything the operator draws on top of it; but outgoing wires will in turn draw on the operator (modulo clipping).
To avoid the issues, we construct an invisible box operator and name it; \emph{outside} of the \tex!yquant! environment, we \texttt{fit} the special \TikZ{} shape on top of it.
\end{example}
-
+
\paragraph{C. Boxing/Highlighting Parts of a Circuit}\leavevmode
- \begin{example}
+ \begin{example}<Updated in 0.2>
\begin{codeexample*}
-% \usetikzlibrary{quotes}
+% \usetikzlibrary{quotes, fit}
\begin{tikzpicture}
\begin{yquant*}
h a;
@@ -2834,14 +3175,14 @@ $=$
draw, inner sep=6pt, "reversed c-\textsc{not}"] {};
\end{tikzpicture}
\end{codeexample*}
- In this case, since version~0.2, a subcircuit may provide a similar experience:
+ As usual, subcircuits provide a similar experience, but respect the separation:
\begin{codeexample*}
% \usetikzlibrary{quotes}
\begin{tikzpicture}
\begin{yquant*}
h a;
cnot b | a;
- [this subcircuit box style={inner sep=6pt, "reversed c-\textsc{not}"}]
+ [this subcircuit box style={inner ysep=6pt, "reversed c-\textsc{not}"}]
subcircuit {
qubit {} x;
qubit {} y;
@@ -2856,15 +3197,15 @@ $=$
\end{codeexample*}
Here, we used the key \style{/yquant/this subcircuit box style} to influence only the style of the subcircuit box itself instead of providing global options that apply to every object in the subcircuit (you wouldn't want the label be assigned to every single gate).
\end{example}
-
+
\clearpage
- \begin{example}
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
% \usetikzlibrary{quotes}
\begin{tikzpicture}
\begin{yquant*}
h a;
- [this subcircuit box style={draw, dashed, rounded corners, fill=blue!20, inner xsep=6pt, inner ysep=10pt, "\textsc{swap}" below}, register/default name=]
+ [this subcircuit box style={draw, dashed, rounded corners, fill=blue!20, inner ysep=10pt, "\textsc{swap}" below}, register/default name=]
subcircuit {
qubit a;
qubit b;
@@ -2880,24 +3221,24 @@ $=$
Before, this had to be done using named operations and layers.
Note that here we used the style \style{/yquant/this subcircuit box style} to assign a styling that only applies to the box containing the subcircuit, but not to the inner gates---which would have happened had we just given the arguments to the subcircuit directly.
\end{example}
-
+
\Yquant{} does not support the fancy nearest\hyp neighbor swap gate that \pkg{quantikz} has.
It would however not be very difficult to implement this particular shape and make it available.
Maybe even a multi\hyp swap gate using the \texttt{knots} library would be possible.
-
+
\clearpage
\subsubsection{VIII. Otherwise undocumented features}
- \begin{example}
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
-% \usetikzlibrary{quantikz}
+% \usetikzlibrary{quantikz,fit}
\begin{tikzpicture}
\begin{yquant}[register/default name=]
qubit a;
- [name=wave, register/minimum height=1cm]
+ [name=wave, register/minimum height=5mm, register/minimum depth=5mm]
nobit wave;
qubit b;
qubit c;
-
+
h a, b;
box {$U$} c | a;
[draw=none]
@@ -2913,10 +3254,12 @@ $=$
Since the name assigned to a register without any text actually is of a \texttt{coordinate} shape, we need to enlarge the height of the wave by providing a slightly increased \texttt{inner ysep}.
Additionally, \pkg{quantikz} sets a negative \texttt{inner xsep}, which is probably required for its grid layout; but \Yquant{} positions exactly, so we also need to reset this.
\end{example}
-
+
+ \Yquant{} does not provide a shape corresponding to the ``creating an ebit'' gate.
+
\clearpage
\subsubsection{X. Troubleshooting}
- \begin{example}
+ \begin{example}<Updated in 0.4>
\begin{codeexample*}
\begin{tikzpicture}
\begin{yquant}
@@ -2926,21 +3269,21 @@ $=$
\beta & -\alpha
\end{pmatrix}$} a[0];
cnot a[1] | a[0];
- box {$U_{\protect\the\numexpr\idx+1}$} a;
+ box {$U_{\The\numexpr\idx+1}$} a;
\end{yquant}
\end{tikzpicture}
\end{codeexample*}
\end{example}
\endgroup
-
+
\section{Foreign language support}\label{sec:foreign}
\Yquant{} is built in various modules, so that it is not hard to use the quantum circuit rendering backend, but expose a different language frontend.
- Since version~0.3, \Yquant{} not only understands its own language, but also others.
-
+ \compat{New in 0.3}\Yquant{} not only understands its own language, but also others.
+
\subsection{qasm}\label{sec:foreign:qasm}
By saying \tex!\useyquantlanguage{qasm}! in the preamble after loading \Yquant{} itself, the parser for \pkg{qasm} (not OpenQASM) is loaded.
It provides the environment \tex!qasm! as well as the macro \tex!\qasmimport!, which works similarly to \tex!\yquantimport! (but does not accept additional options).
-
+
\subsubsection{Language specification}
The \pkg{qasm} language is not formally defined, but an overview is provided at \href{https://web.archive.org/web/20050410022847/https://www.media.mit.edu/quanta/qasm2circ/#spec}{the archived website of \texttt{qasm2circ}}.
The \Yquant{} implementation is designed to be compatible with the original parser, with the following exceptions:
@@ -2953,47 +3296,47 @@ $=$
\item The \texttt{space} gate is supposed to produce a horizontal whitespace without a gate.
In \Yquant's implementation, you have to discard the wire if you want to reproduce this behavior; \texttt{space} and \texttt{nop} are equivalent.
\end{itemize}
-
+
The default \pkg{qasm} style defines several macros that can be used in gates.
\Yquant{} makes \tex!\m! (matrix; requires \pkg{amsmath}) and \tex!\txt! (switch to text mode) available within the \pkg{qasm} environment.
-
+
Do not expect \Yquant's output to match the one of \pkg{qasm} exactly.
\Yquant{} is not grid based, so that commands such as \texttt{nop} don't even make sense.
They are implemented for compatibility reasons and will produce a fixed horizontal space of the operator minimum width plus one separation, which might or might not be accurate.
-
+
Note that whatever you write between \tex!\begin{qasm}! and \tex!\end{qasm}! is essentially treated as verbatim; only where the specification says so (in the definition of a new gate and in the optional third command to the register definition), it is interpreted as \TeX{} markup.
- Consequently, in \pkg{beamer}, any frame containing these environments must be given the \texttt{verbatim} option.
-
+ Consequently, in \pkg{beamer}, any frame containing these environments must be given the \texttt{fragile} option.
+
\subsubsection{Configuration}
Loading the \pkg{qasm} language interpreter will define several new configuration keys.
For all the gates, it will use the keys defined in \cref{sec:config}, and it additionally provides the following:
-
+
\begin{option}{operators/every s}!/yquant/operators/every box!
This style is installed for every \texttt{s} operator.
\end{option}
-
+
\begin{option}{operators/every t}!/yquant/operators/every box!
This style is installed for every \texttt{t} operator.
\end{option}
-
+
\begin{option}{operators/every utwo}!/yquant/operators/every box!
This style is installed for every \texttt{Utwo} operator.
\end{option}
-
+
\begin{option*}{qasm}{zero}!\qasm@ket0!
The content of this macro is used as the initialization content whenever the \texttt{zero} gate is invoked.
\end{option*}
-
+
\begin{option*}{qasm}{register/default qubit name}!\qasm@ket{#1}!
This macro is invoked with a single parameter (the name of a qubit register) and gives back what is printed as the name of the register (will be in math mode automatically).
\end{option*}
-
+
\begin{option*}{qasm}{register/default qubit name value}!\qasm@ket{#1} = \qasm@ket{#2}!
This macro is invoked with two parameters (the name of a qubit register and its initial value) and gives back what is printed as the name of the register (will be in math mode automatically).
\end{option*}
-
+
\subsubsection{Examples}
- The unaltered\footnote{Only in \texttt{test14.qasm}, \tex!\cal! was replaced by \tex!\symcal!---and this is only necessary as this manual was set with \pkg{unicode-math}. In traditional mode, even this would not be necessary.} \texttt{.qasm} files provided from \href{https://www.media.mit.edu/quanta/qasm2circ/}{the \texttt{qasm2circ} page} were stored in the subfolder \texttt{qasm} relative to this manual's \TeX{} file.
+ The unaltered \texttt{.qasm} files provided from \href{https://www.media.mit.edu/quanta/qasm2circ/}{the \texttt{qasm2circ} page} were stored in the subfolder \texttt{qasm} relative to this manual's \TeX{} file.
The following command is then used to print all of them:
\begin{minted}{tex}
% preamble:
@@ -3007,7 +3350,7 @@ $=$
\end{center}
}
\end{minted}
-
+
\def\yquantimportpath{qasm/}
\foreach \circuitno in {1, ..., 18} {
\paragraph{Circuit \#\circuitno}\leavevmode\nopagebreak\par\nopagebreak
@@ -3015,7 +3358,7 @@ $=$
\qasmimport{test\circuitno.qasm}
\end{adjustbox}
}
-
+
\section{Wishlist}
This section contains some thoughts on future improvements and features.
\begin{itemize}
@@ -3030,16 +3373,16 @@ $=$
In principle, \Yquant's approach could allow for a simple key switch that changes horizontal to vertical.
Currently, this is largely unsupported by all quantum circuit packages except for \pkg{qpic}.
\end{itemize}
-
+
\section{Changelog}
\subsection*{2020-03-15: Version 0.1}
Initial release
-
+
\subsection*{2020-03-22: Version 0.1.1}
Complete rewrite of the register name parser.
\Yquant{} now understands comma\hyp separated lists and ranges in indices, and also is far more tolerant with respect to whitespaces. \\
\Yquant{} now also supports non\hyp contiguous vector registers and allows to add new registers into an already existing vector that is not the last register, and also in the unstarred mode.
-
+
\subsection*{2020-04-11: Version 0.1.2}
Introduce \gate{setstyle} and \gate{addstyle} pseudo\hyp gates that allow to style individual wires; rename \gate{setwire} to \gate{settype} (the old name is still available and shows a deprecation warning). \\
Complete rewrite of the way \Yquant{} draws wires; projection anchors are removed in favor of clipping paths.
@@ -3047,24 +3390,42 @@ $=$
\Yquant{} now also properly draws non\hyp contiguous multi\hyp qubit operations. \\
New gate: \gate{correlate}.
Various bug fixes.
-
+
\subsection*{2020-06-02: Version 0.2}
Introduce \gate{subcircuit}; required rewriting how \Yquant{} internally positions vertically.
Provide simple macros to load circuits (or parts) from a file and to declare own custom gates.
-
+
\subsection*{2020-06-07: Version 0.2.1}
Introduce a macro to declare a lightweight custom gate, which is only a single box with custom content.
-
+
\subsection*{2020-06-13: Version 0.3}
Introduce support for the \pkg{qasm} language.
-
+
\subsection*{2020-07-11: Version 0.3.1}
Add legacy support for very old \TikZ{} versions such as the one used on the arXiv.
-
+
\subsection*{2020-08-24: Version 0.3.2}
Fix \href{https://github.com/projekter/yquant/issues/5}{\#5}: Can't draw circuits with more than 9 qubits.
-
+
\subsection*{2020-10-27: Version 0.3.3}
Fix \href{https://github.com/projekter/yquant/issues/6}{\#6}: shorten doesn't work for 2-qubit barriers. This fixes a bug in how the \texttt{shorten} keyword worked on \gate{barrier}s, which may require re\hyp assessing your chosen values.
+
+ \subsection*{2021-02-21: Version 0.4a}
+ Lots of internal fixes, most notably vertical alignment with subcircuits. \\
+ Introduce capability to perform vertical alignment with multi\hyp register gates. \\
+ Dramatic changes under the hood regarding horizontal positioning, which is now only determined in the drawing stage; this paves the way for delayed gates, which are planned for 0.4.
+ Also changes in the gate declaration interface. \\
+ Introduce compatibility layer, so that layout\hyp breaking changes will not become effective unless explicitly requested. \\
+ Separate register height into a height and depth key. \\
+ Introduce \texttt{overlay} key to disable height caluclation selectively. \\
+ Change register style declaration, so that this is now always equivalent to creating an unnamed register followed by an \gate{init} gate with the given text.
+ Note: This may be a \textbf{breaking change} that cannot be compatibility\hyp protected---if you used \TeX{} conditionals involving \tex!\idx! for creation labels of registers, you will now need to either \tex!\protect! them all or just capitalize their first letter (which corresponds to auto\hyp\tex!protect!ed versions for \texttt{compat} at least \texttt{0.4}). \\
+ Now use nodes for \gate{init} and \gate{output} gates. \\
+ Change behavior of \gate{hspace} and \gate{align}: Now also extend if the wire is discarded afterwards. \\
+ Introduce the commands \tex!\Ifnum!, \tex!\Ifcase!, \tex!\Or!, \tex!\Else!, \tex!\Fi!, \tex!\Unless! and \tex!\The! available for use within gates that behave like auto\hyp\tex!\protect!ed versions of their plain \TeX{} equivalents.
+
+ \subsection*{2021-03-27: Version 0.4}
+ New gate: \gate{inspect}. Various bug fixes. \\
+ Introduce the \texttt{direct control} feature: \gate{measure} gates can now substitute positive controls of future gates.
%END_FOLD
\end{document} \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-circuit.tex b/graphics/pgf/contrib/yquant/tex/yquant-circuit.tex
index 2c9e114bdc..52cb435b2f 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-circuit.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-circuit.tex
@@ -8,35 +8,45 @@
\pgfpointanchor{yquantbox}{#2}%
\edef\wirexpos{\the\pgf@x}%
\fi%
- \yquant@register@get@typeywire{#1}\wiretype\wireypos\wirelast%
- \edef\wirexprevpos{\expandafter\@firstoffour\wirelast}%
- \ifnum\wiretype=\yquant@register@type@none%
- % the clippings of the previous operator will for sure not be needed, but the type might be turned into an active one, so we need the last clipping.
- \yquant@register@set@lastwire{#1}{%
- {\wirexprevpos}{\wirexpos}{}%
- {\unexpanded\expandafter{\pgfshapeclippathhorzresult}}%
- }%
- \else%
- % append the previous `last' clipping to the old list and insert the new one
- \yquant@register@set@lastwire{#1}{%
- {\wirexprevpos}{\wirexpos}%
- {\unexpanded\expandafter\expandafter\expandafter{%
- \expandafter\@thirdandfourthoffour\wirelast%
- }%
+ \ifdim\wirexpos>0pt % may be negative for init gates
+ \yquant@register@get@typeywire{#1}\wiretype\wireypos\wirelast%
+ \edef\wirexprevpos{\expandafter\@firstoffour\wirelast}%
+ \ifnum\wiretype=\yquant@register@type@none%
+ % the clippings of the previous operator will for sure not be needed, but the type might be turned into an active one, so we need the last clipping.
+ \yquant@register@set@lastwire{#1}{%
+ {\wirexprevpos}{\wirexpos}{}%
+ {\unexpanded\expandafter{\pgfshapeclippathhorzresult}}%
}%
- {\unexpanded\expandafter{\pgfshapeclippathhorzresult}}%
- }%
+ \else%
+ % append the previous `last' clipping to the old list and insert the new one
+ \yquant@register@set@lastwire{#1}{%
+ {\wirexprevpos}{\wirexpos}%
+ {\unexpanded\expandafter\expandafter\expandafter{%
+ \expandafter\@thirdandfourthoffour\wirelast%
+ }%
+ }%
+ {\unexpanded\expandafter{\pgfshapeclippathhorzresult}}%
+ }%
+ \fi%
\fi%
\endgroup%
}
-% finishes the wires of all registers until x position #1
-\protected\def\yquant@circuit@endwires#1{%
- \ifcsname\yquant@prefix xshift\endcsname%
- \dimdef\yquant@env@end@xpos{#1+\csname\yquant@prefix xshift\endcsname}%
- \else%
- \def\yquant@env@end@xpos{#1}%
- \fi%
+% finishes the wires of all registers
+\protected\def\yquant@circuit@endwires{%
+ \expandafter\expandafter\expandafter\yquant@register@get@maxxrange%
+ \expandafter\expandafter\expandafter\yquant@circuit@endwires@x%
+ \expandafter\expandafter\expandafter1%
+ \expandafter\expandafter\expandafter{\csname\yquant@prefix registers\endcsname}%
+ % to have a symmetric situation, we extend again one separation at the end, unless this is supposed to be seamless and we don't have outputs (for seamless circuits with outputs, extend - since this extension will be between last register and output)
+ \ifyquant@env@seamless{%
+ \expandafter\unless\expandafter\ifx\csname\yquant@prefix outputs\endcsname\relax%
+ \dimdef\yquant@circuit@endwires@x{\yquant@circuit@endwires@x+\yquant@config@operator@sep}%
+ \fi%
+ }{%
+ \dimdef\yquant@circuit@endwires@x{\yquant@circuit@endwires@x+\yquant@config@operator@sep}%
+ }%
+ \let\yquant@circuit@endwires@finalize=\relax%
\yquant@for \yquant@circuit@endwires@i := 1 to \csname\yquant@prefix registers\endcsname {%
% we only extend the wire if it does not come from the outer circuit - this one would be responsible for the extension.
\ifcsname\yquant@prefix registermap@\yquant@circuit@endwires@i\endcsname%
@@ -45,7 +55,10 @@
\edef\storedleft{\the\pgf@picminx}%
\yquant@draw@wire\yquant@circuit@endwires@i1%
\global\pgf@picminx=\storedleft%
- \yquant@register@set@type\yquant@circuit@endwires@i\yquant@register@type@none%
+ \eappto\yquant@circuit@endwires@finalize{%
+ \yquant@register@set@type%
+ \yquant@circuit@endwires@i\noexpand\yquant@register@type@none%
+ }%
}\relax%
\else%
\yquant@draw@wire\yquant@circuit@endwires@i1%
@@ -55,14 +68,7 @@
% outputs the wire according to its previous instructions and prepares for a change in the wire style
\protected\def\yquant@circuit@flushwire#1{%
- \ifcsname\yquant@prefix registermap@#1\endcsname%
- % make sure drawing the wire does not affect our left bounding box position
- \edef\storedleft{\the\pgf@picminx}%
- \yquant@draw@wire{#1}0%
- \global\pgf@picminx=\storedleft%
- \else%
- \yquant@draw@wire{#1}0%
- \fi%
+ \yquant@draw@wire{#1}0%
\begingroup%
\yquant@register@get@lastwire{#1}\wirelast%
\yquant@register@set@lastwire{#1}{%
@@ -78,13 +84,13 @@
% BEGIN_FOLD Drawing control lines
% populates a drawing macro with the current control line with style #1 at position #2. Assumes a node called yquantbox is set up, and the \pgfshapeclippathvertresult was set up appropriately for this node. At the first call, \yquant@circuit@extendcontrolline@cmd must be \let to \empty and \yquant@circuit@extendcontrolline@prev to \relax.
\protected\def\yquant@circuit@extendcontrolline#1#2{%
+ \eappto\yquant@circuit@extendcontrolline@clip{%
+ \unexpanded\expandafter{\pgfshapeclippathvertresult}%
+ }%
\begingroup%
\tikzset{/yquant/every control line}%
\expandafter%
\endgroup%
- \eappto\yquant@circuit@extendcontrolline@clip{%
- \unexpanded\expandafter{\pgfshapeclippathvertresult}%
- }%
\expandafter\@tempdima\the\pgflinewidth%
\ifcase#1%
% no control (or to a discarded target, which we don't do)
@@ -207,17 +213,35 @@
\yquant@circuit@operator@maxpctrl%
\yquant@circuit@operator@maxnctrl%
\relax%
- % obtain the required minimal x position
- \yquant@register@get@maxxrange%
- \yquant@circuit@operator@x%
- \yquant@circuit@operator@minctrl%
- \yquant@circuit@operator@maxctrl%
- \dimdef\yquant@circuit@operator@x{%
- \yquant@circuit@operator@x+\yquant@config@operator@sep%
- }%
+}
+
+% restores the data captured for an uncontrolled operator and starts preparation
+% #1: \yquant@attrs@remaining
+% #2: \yquant@circuit@operator@targets
+% #3: \yquant@circuit@operator@mintarget
+% #4: \yquant@circuit@operator@maxtarget
+% #5: \yquant@circuit@operator@numtarget
+\protected\def\yquant@circuit@restore#1#2#3#4#5{%
+ \def\yquant@attrs@remaining{#1}%
+ \def\yquant@circuit@operator@targets{#2}%
+ \def\yquant@circuit@operator@mintarget{#3}%
+ \def\yquant@circuit@operator@maxtarget{#4}%
+ \def\yquant@circuit@operator@numtarget{#5}%
+ \yquant@circuit@operator@hasControlsfalse%
+ \let\yquant@circuit@operator@pctrls=\empty%
+ \def\yquant@circuit@operator@minpctrl{2147483647}%
+ \def\yquant@circuit@operator@maxpctrl{0}%
+ \let\yquant@circuit@operator@numpctrl=\yquant@circuit@operator@maxpctrl%
+ \let\yquant@circuit@operator@nctrls=\empty%
+ \let\yquant@circuit@operator@minnctrl=\yquant@circuit@operator@minpctrl%
+ \let\yquant@circuit@operator@maxnctrl=\yquant@circuit@operator@maxpctrl%
+ \let\yquant@circuit@operator@numnctrl=\yquant@circuit@operator@numpctrl%
+ \let\yquant@circuit@operator@minctrl=\yquant@circuit@operator@mintarget%
+ \let\yquant@circuit@operator@maxctrl=\yquant@circuit@operator@maxtarget%
}
% creates a subcircuit. Parameter registers must be filled in \yquant@circuit@subcircuit@params.
+% #1: style
\protected\def\yquant@circuit@subcircuit#1{%
\numdef\yquant@circuit@subcircuit@id{\yquant@env+1}%
\listcsxadd{\yquant@prefix subcircuits}{\yquant@circuit@subcircuit@id}%
@@ -232,46 +256,6 @@
\PackageError{yquant.sty}{Invalid subcircuit parameters count}%
{Too many parameters given.}%
\fi%
- \global\cslet{\yquant@prefix parameters}\yquant@circuit@subcircuit@param%
- \dimen0=\yquant@config@register@sep%
- % the first input must count all its height plus everything that is above it in the subcircuit as the height of the outer wire it is attached to
- \edef\firstinput{%
- \expandafter\expandafter\expandafter%
- \@firstoftwo\csname\yquant@prefix firstinput\endcsname%
- }%
- \edef\outerfirst{%
- \expandafter\expandafter\expandafter%
- \@secondoftwo\csname\yquant@prefix firstinput\endcsname%
- }%
- \dimen2=\yquant@register@get@height\firstinput\relax%
- \ifnum\firstinput>1 %
- \yquant@fordown \i := \the\numexpr\firstinput-1\relax downto 1 {%
- \advance\dimen2 by \dimexpr\yquant@register@get@height\i+%
- \yquant@register@get@depth\i+\dimen0\relax%
- }%
- \fi%
- % the last input must count all its depth plus everything that is below it in the subcircuit as the depth of the outer wire it is attached to
- \edef\lastinput{%
- \expandafter\expandafter\expandafter%
- \@firstoftwo\csname\yquant@prefix lastinput\endcsname%
- }%
- \edef\outerlast{%
- \expandafter\expandafter\expandafter%
- \@secondoftwo\csname\yquant@prefix lastinput\endcsname%
- }%
- \dimen4=\yquant@register@get@depth\lastinput\relax%
- \ifnum\lastinput<\csname\yquant@prefix registers\endcsname%
- \yquant@for \i := \the\numexpr\lastinput+1\relax to \csname\yquant@prefix registers\endcsname {%
- \advance\dimen4 by \dimexpr\yquant@register@get@height\i+%
- \yquant@register@get@depth\i+\dimen0\relax%
- }%
- \fi%
- \begingroup%
- \let\yquant@prefix=\yquant@parent%
- \yquant@register@update@height\outerfirst{\the\dimen2}%
- \yquant@register@update@depth\outerlast{\the\dimen4}%
- \endgroup%
- % we cannot make more precise statements about the inputs in between - for example, if input 1 is mapped to outer wire 1 and input 2 to outer wire 5, how to split the heights/depth appropriately between the outer wires 1-5?
\yquant@env@end%
\endgroup%
}
@@ -279,7 +263,13 @@
% BEGIN_FOLD Helpers for operator callbacks
% turn a wire into a different type
\def\yquant@circuit@settype#1{%
- \yquant@circuit@flushwire{#1}%
+ \unless\if\yquant@register@get@type{#1}\yquant@circuit@settype@to %
+ \yquant@circuit@flushwire{#1}%
+ \yquant@register@set@type{#1}{\yquant@circuit@settype@to}%
+ \fi%
+}
+
+\protected\def\yquant@circuit@settype@prepare#1{%
\yquant@register@set@type{#1}{\yquant@circuit@settype@to}%
}
@@ -296,95 +286,51 @@
% performs an alignment of all registers specified in the argument; that is, the next operation on any of the listed registers will be after the maximum position of all of them
% #1: arbitrary register list
\protected\def\yquant@circuit@align#1{%
- \begingroup%
- \yquant@register@get@maxxlist\x{#1}%
- \def\do##1{%
- \yquant@register@set@x{##1}\x%
- }%
- \dolistloop{#1}%
- \endgroup%
+ \csxappto{\yquant@prefix draw}{%
+ \yquant@draw@hspace{#1}{0pt}%
+ }%
}
% introduces a horizontal skip (= invisible operator of given width) among the registers; that is, those registers are first aligned, then skipped by the given amount.
% #1: arbitrary register list
% #2: skip width
\protected\def\yquant@circuit@hspace#1#2{%
- \begingroup%
- \yquant@register@get@maxxlist\x{#1}%
- \dimdef\x{\x+#2}%
- \def\do##1{%
- \yquant@register@set@x{##1}\x%
- }%
- \dolistloop{#1}%
- \endgroup%
+ \csxappto{\yquant@prefix draw}{%
+ \yquant@draw@hspace{#1}{#2}%
+ }%
}
% applies an action to wires a list of registers and causes them to be redrawn
-% #1: action
-% #2: arbitrary register list
-% #3: parameter(s)
-\protected\def\yquant@circuit@actonwires#1#2#3{%
+% #1: action for prepare
+% #2: action for draw
+% #3: arbitrary register list
+% #4: parameter(s)
+\protected\def\yquant@circuit@actonwires#1#2#3#4{%
\begingroup%
\let\tmp=\empty%
\def\do##1{%
% We do not extend the wire: a register that is discarded somewhere does not make
% sense, only right after some application (which is supposed to already have
% extended the wire appropriately).
- \appto\tmp{#1{##1}#3}%
+ \eappto\tmp{#2{##1}#4}%
+ #1{##1}#4%
}%
- \dolistloop{#2}%
+ \dolistloop{#3}%
\csxappto{\yquant@prefix draw}{\tmp}%
\endgroup%
}
% sets the output of wires
% #1: arbitrary register list
-\protected\def\yquant@circuit@output#1{%
- \csxappto{\yquant@prefix outputs}%
- {\noexpand\yquant@circuit@output@do%
- {\noexpand#1}% there is nothing to expand - except the first token, which might be \yquant@register@multi, and we need to preserve this.
+\protected\def\yquant@circuit@output{%
+ \protected\def\idx{}%
+ \protected@csxappto{\yquant@prefix outputs}%
+ {\yquant@circuit@restore%
{\yquant@attrs@remaining}%
- {\unexpanded\expandafter{\yquant@lang@attr@value}}%
+ {\unexpanded\expandafter{\yquant@circuit@operator@targets}}%
+ {\yquant@circuit@operator@mintarget}{\yquant@circuit@operator@maxtarget}%
+ {\yquant@circuit@operator@numtarget}%
+ \yquant@prepare{\yquant@lang@attr@value}{}%
}%
}
-
-\protected\long\def\yquant@circuit@output@do#1#2#3{%
- % this must only be called at the end of an environment, where \yquant@env@end@xpos is set up properly! It not only has to provide the appropriate drawing commands for later, but also has to measure the actual width of the outputs, which is required for proper subcircuit positioning.
- \def\do##1{%
- \pgfinterruptboundingbox%
- \yquant@env@virtualize@path%
- \ifyquant@firsttoken\yquant@register@multi{##1}{%
- \csxappto{\yquant@prefix draw}%
- {\yquant@draw@output@multi%
- \yquant@circuit@output@do@multi@@extract##1{\unexpanded{#3}}}%
- \yquant@draw@@output@multi{#3}%
- }{%
- \csgappto{\yquant@prefix draw}%
- {\yquant@draw@output@single{##1}{#3}}%
- \yquant@draw@@output@single{##1}{#3}%
- \yquant@register@update@height{##1}{\the\pgf@picmaxy}%
- \yquant@register@update@depth{##1}{\the\dimexpr-\pgf@picminy\relax}%
- }%
- \ifdim\pgf@picmaxx>\csname\yquant@prefix xmax\endcsname%
- \csxdef{\yquant@prefix xmax}{\the\pgf@picmaxx}%
- \fi%
- \endpgfinterruptboundingbox%
- }%
- \yquant@draw@output@group{#2}%
- \csgappto{\yquant@prefix draw}{%
- \yquant@draw@output@group{#2}%
- }%
- % \dolistloop will carry out one \expandafter on the argument; but this expansion step
- % is already done. If #1 starts with \yquant@register@multi, this will be expanded once
- % despite \protected, so insert some expand-to-nothing token first.
- \dolistloop{\empty#1}%
- \csgappto{\yquant@prefix draw}{%
- \yquant@draw@output@endgroup%
- }%
- \yquant@draw@output@endgroup%
-}
-
-\def\yquant@circuit@output@do@multi@@extract#1#2#3#4#5{%
- {#2}{#3}{#5}%
-}
% END_FOLD \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-config.tex b/graphics/pgf/contrib/yquant/tex/yquant-config.tex
index a6765d1485..d5844480ee 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-config.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-config.tex
@@ -13,21 +13,53 @@
\decoration{\pgfkeysvalueof{/pgf/decoration/post}}%
}%
}
+
+% BEGIN_FOLD Circuit layout
+\ifnum\yquant@compat<2 %
+ \pgfqkeys{/yquant}{%
+ register/minimum height/.code=%
+ {\dimdef\yquant@config@register@minimum@height{.5\dimexpr#1\relax}%
+ \let\yquant@config@register@minimum@depth=\yquant@config@register@minimum@height}%
+ }
+\else%
+ \pgfqkeys{/yquant}{%
+ register/minimum height/.code=%
+ {\dimdef\yquant@config@register@minimum@height{#1}},%
+ register/minimum depth/.code=%
+ {\dimdef\yquant@config@register@minimum@depth{#1}}%
+ }
+\fi
\pgfqkeys{/yquant}{%
- every circuit/.style={%
- every node/.prefix style={transform shape},%
- every label/.prefix style={transform shape=false}% TODO: no, we don't really want this, but pgf bug #843 requires this if we still want to have `label position` available
- },%
- % register settings
- register/default name/.store in=%
- \yquant@config@register@default@name,%
- register/minimum height/.code=%
- {\dimdef\yquant@config@register@minimum@height{#1}},%
register/separation/.code=%
{\dimdef\yquant@config@register@sep{#1}},%
- % register label style
- every label/.style=%
- {shape=yquant-text, anchor=center, align=right},%
+ operator/minimum width/.code=%
+ {\dimdef\yquant@config@operator@minimum@width{#1}},%
+ operator/separation/.code=%
+ {\dimdef\yquant@config@operator@sep{#1}},%
+ operator/multi warning/.is if=%
+ yquant@config@operator@multi@warn%
+}%
+% END_FOLD
+% BEGIN_FOLD Register creation
+\pgfqkeys{/yquant}{%
+ register/default name/.store in=%
+ \yquant@config@register@default@name%
+}
+\ifnum\yquant@compat<2 %
+ \pgfqkeys{/yquant}{%
+ every label/.style=%
+ {shape=yquant-init, anchor=center, align=right, outer xsep=2pt},%
+ every multi label/.style=%
+ {draw, decoration={gapped brace, mirror, raise=2pt}, decorate}%
+ }
+\else
+ \pgfqkeys{/yquant}{%
+ every label/.style=%
+ {shape=yquant-init, anchor=center, align=right, outer xsep=2pt,%
+ /yquant/operator/if multi={draw, decoration={gapped brace, mirror, raise=2pt}, decorate}}%
+ }
+\fi
+\pgfqkeys{/yquant}{
every initial label/.style=%
{anchor=east},%
every qubit label/.style=%
@@ -35,25 +67,51 @@
every cbit label/.style=%
{},%
every qubits label/.style=%
- {},%
- every multi label/.style=%
- {shift={(-.075, 0)}, draw, decoration={gapped brace, mirror}, decorate, /yquant/gapped brace/apply shift,%
- every node/.append style={shape=yquant-text, anchor=east, align=right, shift={(-.05, 0)}, pos=-1}},%
- every input label/.style=%
- {},%
- % output label styles
- every output/.style=%
- {shape=yquant-text, anchor=west, align=left},%
+ {}%
+}
+\ifnum\yquant@compat<2 %
+ \pgfqkeys{/yquant}{%
+ every input label/.style=%
+ {}%
+ }%
+\fi%
+% END_FOLD
+% BEGIN_FOLD Register outputs
+\ifnum\yquant@compat<2 %
+ \pgfqkeys{/yquant}{%
+ every output/.style=%
+ {shape=yquant-output, anchor=west, align=left, outer xsep=2pt},%
+ every multi output/.style=%
+ {draw, decoration={gapped brace, raise=2pt}, decorate}%
+ }
+\else
+ \pgfqkeys{/yquant}{%
+ every output/.style=%
+ {shape=yquant-output, anchor=west, align=left, outer xsep=2pt,%
+ /yquant/operator/if multi={draw, decoration={gapped brace, raise=2pt}, decorate}}%
+ }
+\fi
+\pgfqkeys{/yquant}{%
every qubit output/.style=%
{},%
every cbit output/.style=%
{},%
every qubits output/.style=%
- {},%
- every multi output/.style=%
- {shift={(.075, 0)}, draw, decoration={gapped brace}, decorate, /yquant/gapped brace/apply shift,%
- every node/.append style={shape=yquant-text, anchor=west, align=left, shift={(.05, 0)}, pos=-1}},%
- % wire style
+ {}%
+}
+% END_FOLD
+% BEGIN_FOLD General styling
+\pgfqkeys{/yquant}{%
+ every circuit/.style={%
+ every node/.prefix style={transform shape}
+ }%
+}
+\@ifpackagelater{pgf}{2020/09/31}\relax{
+ \pgfkeys{/yquant/every circuit/.append style={%
+ every label/.prefix style={transform shape=false}%
+ }}
+}
+\pgfqkeys{/yquant}{%
every wire/.style=%
{draw},%
every qubit wire/.style=%
@@ -62,14 +120,6 @@
{},%
every qubits wire/.style=%
{},%
- % operator settings
- operator/separation/.code=%
- {\dimdef\yquant@config@operator@sep{#1}},%
- operator/minimum width/.code=%
- {\dimdef\yquant@config@operator@minimum@width{#1}},%
- operator/multi warning/.is if=%
- yquant@config@operator@multi@warn,%
- % operator style: control
every control line/.style=%
{draw},%
every control/.style=%
@@ -78,16 +128,10 @@
{fill=black},%
every negative control/.style=%
{draw},%
- % operator style: main part
every operator/.style=%
{anchor=center},%
- operator/multi main/.is if=%
- yquant@config@operator@multi@main,%
- operator/multi as single/.style=%
- {/yquant/every multi line/.style=/yquant/every control line},%
every multi line/.style=%
{draw, decoration={snake, amplitude=.25mm, segment length=5pt}, decorate},%
- % overwriting all styles
this operator/.style=%
{},%
this control/.style=%
@@ -101,9 +145,66 @@
{/yquant/this operator/.append style={#1},%
/yquant/every control line/.append style={#1},%
/yquant/this control/.append style={#1}},%
- % different operator appearances
+ operator/multi as single/.style=%
+ {/yquant/every multi line/.style=/yquant/every control line},%
+ operator/if multi/.code=%
+ {\ifyquant@config@operator@multi\pgfkeysalso{#1}\fi},%
+ circuit/seamless/.is if=yquant@config@circuit@seamless,%
+ every post measurement control/.is choice,
+ every post measurement control/indirect/.code={%
+ \undef\yquant@lang@attr@directcontrol%
+ },%
+ every post measurement control/direct/.code={%
+ \let\yquant@lang@attr@directcontrol=\relax%
+ }%
+}
+% END_FOLD
+% BEGIN_FOLD Styles for operators
+\ifnum\yquant@compat<2 %
+ \pgfqkeys{/yquant}{%
+ operators/every barrier/.style=%
+ {shape=yquant-line, dashed, draw}%
+ }
+\else
+ \pgfqkeys{/yquant}{%
+ operators/every barrier/.style=%
+ {shape=yquant-line, dashed, draw, shorten <= -1mm, shorten >= -1mm}
+ }
+\fi
+\pgfqkeys{/yquant}{%
operators/every box/.style=%
{shape=yquant-rectangle, draw, align=center, inner xsep=1mm, x radius=2mm, y radius=2.47mm},%
+}
+\ifnum\yquant@compat<2 %
+ \pgfqkeys{/yquant}{%
+ operators/every custom gate/.style=%
+ {/yquant/operators/subcircuit/frameless, /yquant/register/default name=}%
+ }
+\else
+ \pgfqkeys{/yquant}{%
+ operators/every custom gate/.style=%
+ {/yquant/operators/subcircuit/seamless}%
+ }
+\fi
+\pgfqkeys{/yquant}{%
+ operators/every dmeter/.style=%
+ {shape=yquant-dmeter, x radius=2mm, y radius=2mm, draw},
+ % every h is implicitly defined during gate declaration
+ operators/every inspect/.style=%
+ {shape=yquant-output, align=left, outer xsep=.3333em, y radius=2.47mm,%
+ /yquant/operator/if multi={draw, decoration={gapped brace, raise=2pt}, decorate}},%
+ operators/every measure/.style=%
+ {shape=yquant-measure, x radius=4mm, y radius=2.5mm, draw},%
+ operators/every measure meter/.style=%
+ {draw, -{Latex[length=2.5pt]}},%
+ operators/every not/.style=%
+ {shape=yquant-oplus, radius=1.3mm, draw},%
+ operators/every pauli/.style=%
+ {/yquant/operators/every box},%
+ operators/every phase/.style=%
+ {shape=yquant-circle, radius=.5mm, fill},%
+ operators/every slash/.style=%
+ {shape=yquant-slash, x radius=.5mm, y radius=.7mm, draw},%
operators/every subcircuit/.style=%
{},%
operators/every subcircuit box/.style=%
@@ -114,181 +215,61 @@
{},%
this subcircuit box style/.style=%
{/yquant/operators/this subcircuit box/.append style={#1}},%
- operators/every custom gate/.style=%
- {/yquant/operators/this subcircuit box/.append style={draw=none, inner sep=0pt},%
- /yquant/register/default name=},
- % every h, every x, every y, every z are implicitly defined during gate declaration
- operators/every pauli/.style=%
- {/yquant/operators/every box},%
- operators/every phase/.style=%
- {shape=yquant-circle, radius=.5mm, fill},%
- operators/every zz/.style=%
- {shape=yquant-circle, radius=.5mm, fill},%
- operators/every xx/.style=%
- {shape=yquant-rectangle, radius=.75mm, draw},%
- operators/every slash/.style=%
- {shape=yquant-slash, x radius=.5mm, y radius=.7mm, draw},%
+ operators/subcircuit/frameless/.style=
+ {/yquant/operators/this subcircuit box/.append style={draw=none, inner sep=0pt}},%
+ operators/subcircuit/seamless/.code=%
+ {\pgfkeysalso{/yquant/operators/subcircuit/frameless, /yquant/register/default name=}%
+ \letcs\yquant@prevseamless{\yquant@prefix seamless}%
+ \yquant@config@circuit@seamlesstrue},
operators/every swap/.style=%
{shape=yquant-swap, radius=.75mm, draw},%
- operators/every not/.style=%
- {shape=yquant-oplus, radius=1.3mm, draw},%
- operators/every measure/.style=%
- {shape=yquant-measure, x radius=4mm, y radius=2.5mm, draw},%
- operators/every measure meter/.style=%
- {draw, -{Latex[length=2.5pt]}},%
- operators/every dmeter/.style=%
- {shape=yquant-dmeter, x radius=2mm, y radius=2mm, draw},%
- operators/every barrier/.style=%
- {shape=yquant-line, dashed, draw},%
operators/every wave/.style=%
+ {shape=yquant-circle, radius=.5mm, fill}%
+ % every x is implicitly defined during gate declaration
+ operators/every xx/.style=%
+ {shape=yquant-rectangle, radius=.75mm, draw},%
+ % every y is implicitly defined during gate declaration
+ % every z is implicitly defined during gate declaration
+ operators/every zz/.style=%
{shape=yquant-circle, radius=.5mm, fill},%
- /pgf/decoration/from to/.store in=\pgfdecorationsegmentfromto,%
- gapped brace/apply shift/.code={%
- \let\tikz@timer@line=\yquant@gappedbrace@timer%
- },%
}
+% END_FOLD
+% BEGIN_FOLD Internal styles (undocument, do not use!)
+\pgfqkeys{/yquant}{%
+ internal/move label/.code=%
+ {\yquant@config@operator@position@rightaligntrue},
+ internal/no advance/.code=%
+ {\unless\ifyquantmeasuring% We don't draw subcircuits during measuring time, but we need their advancement
+ \yquant@config@operator@position@advancefalse%
+ \fi},
+ internal/multi main/.is if=%
+ yquant@config@internal@multi@main,%
+}
+\ifnum\yquant@compat<2 %
+ \pgfqkeys{/yquant}{%
+ internal/squeeze slash/.code=%
+ {\dimdef\yquant@config@operator@sep{.5\dimexpr\yquant@config@operator@sep-\pgflinewidth\relax}%
+ \yquant@config@operator@position@advancefalse},%
+ }
+\else%
+ \pgfqkeys{/yquant}{%
+ internal/squeeze slash/.code={}%
+ }
+\fi
+% END_FOLD
\def\yquant@config@register@default@name{\regidx}
-\def\yquant@config@register@minimum@height{3mm}
+\def\yquant@config@register@minimum@height{1.5mm}
+\def\yquant@config@register@minimum@depth{1.5mm}
\def\yquant@config@register@sep{1mm}
\def\yquant@config@operator@sep{1mm}
\def\yquant@config@operator@minimum@width{5mm}
-\newif\ifyquant@config@operator@multi@main%
-\yquant@config@operator@multi@maintrue
+\newif\ifyquant@config@internal@multi@main%
+\yquant@config@internal@multi@maintrue
\newif\ifyquant@config@operator@multi@warn
\yquant@config@operator@multi@warntrue
-\def\pgfdecorationsegmentfromto{0-1}%
-
-\protected\def\yquant@gappedbrace@extract#1-#2\yquant@sep{%
- \dimdef\from{#1\pgfdecoratedremainingdistance}%
- \dimdef\to{#2\pgfdecoratedremainingdistance}%
-}
-% This function is set to replace the transformation that changes the fraction value specified in the node property pos by a computation of the correct value for the gappedbrace decoration. It thus requires \pgfdecorationsegmentfromto to be already set up properly. Only if the special position -1 is given, these transformations are applied; else, the default behavior is reproduced (\tikz@timer@line).
-\protected\def\yquant@gappedbrace@timer{%
- \ifdim\tikz@time pt=-1pt %
- % first set \pgfdecoratedremainingdistance appropriately
- \pgfpointdiff\tikz@timer@start\tikz@timer@end%
- \pgfmathsqrt@{\dimexpr\pgf@x*\pgf@x/65536+\pgf@y*\pgf@y/65536\relax\@gobbletwo}%
- \pgfdecoratedremainingdistance=\pgfmathresult pt %
- % now perform the transformation
- \pgf@xc=\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance%
- \expandafter\forcsvlist\expandafter\yquant@gappedbrace@shiftloop%
- \expandafter{\pgfdecorationsegmentfromto}%
- % and finally let us return the desired position, just ignoring \tikz@time...
- \pgftransformlineattime{\pgfdecorationsegmentaspect}{\tikz@timer@start}{\tikz@timer@end}%
- \else%
- \pgftransformlineattime{\tikz@time}{\tikz@timer@start}{\tikz@timer@end}%
- \fi%
-}
-\def\yquant@gappedbrace@shiftloop#1{%
- \yquant@gappedbrace@extract#1\yquant@sep%
- \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance<\from %
- \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance>\to %
- % be careful about arch positions at the border
- \ifdim\dimexpr\to-\from\relax<2\pgfdecorationsegmentamplitude %
- % The arch is larger than the segment. We do not draw a line to it or an end line and place it in the mid of the segment, even if it is too short (this issues one extra \pgfpathmoveto command, but catching this rare case is not worth the effort).
- \edef\pgfdecorationsegmentaspect{\pgfmath@tonumber{\dimexpr%
- .5\dimexpr\from+\to\relax*65536/\pgfdecoratedremainingdistance%
- \relax}}%
- \else%
- % The segment is large enough to cover the whole arch. But maybe we are too close at the border?
- \ifdim\dimexpr\pgf@xc-\pgfdecorationsegmentamplitude\relax<\from %
- \pgf@xc=\dimexpr\from+\pgfdecorationsegmentamplitude\relax%
- \fi%
- \ifdim\dimexpr\pgf@xc+\pgfdecorationsegmentamplitude\relax>\to %
- \pgf@xc=\dimexpr\to-\pgfdecorationsegmentamplitude\relax%
- \fi%
- \edef\pgfdecorationsegmentaspect{\pgfmath@tonumber{\dimexpr%
- \dimexpr\pgf@xc*65536/\pgfdecoratedremainingdistance%
- \relax}}%
- \fi%
- \expandafter\expandafter\expandafter\listbreak%
- \fi%
- \fi%
-}
-\def\yquant@gappedbrace@loop#1{%
- \yquant@gappedbrace@extract#1\yquant@sep%
- \unless\ifdim\from=0pt %
- \pgfpathmoveto{%
- \pgfqpoint{\from}{.5\pgfdecorationsegmentamplitude}%
- }%
- \fi%
- \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance<\from %
- \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance>\to %
- % be careful about arch positions at the border
- \ifdim\dimexpr\to-\from\relax<2\pgfdecorationsegmentamplitude %
- % The arch is larger than the segment. We do not draw a line to it or an end line and place it in the mid of the segment, even if it is too short (this issues one extra \pgfpathmoveto command, but catching this rare case is not worth the effort).
- \pgfpathmoveto{%
- \pgfqpoint{\dimexpr.5\dimexpr\from+\to\relax-\pgfdecorationsegmentamplitude\relax}%
- {.5\pgfdecorationsegmentamplitude}%
- }%
- \edef\to{\the\pgfdecoratedremainingdistance}% to prevent the final line, we do not need "to" any more
- \else%
- % The segment is large enough to cover the whole arch. But maybe we are too close at the border?
- \ifdim\dimexpr\pgf@xc-\pgfdecorationsegmentamplitude\relax<\from %
- \pgf@xc=\dimexpr\from+\pgfdecorationsegmentamplitude\relax%
- \fi%
- \ifdim\dimexpr\pgf@xc+\pgfdecorationsegmentamplitude\relax>\to %
- \pgf@xc=\dimexpr\to-\pgfdecorationsegmentamplitude\relax%
- \fi%
- % Both cases can't occur at the same time in this \else clause.
- \pgfpathlineto{%
- \pgfqpoint{\dimexpr\pgf@xc-\pgfdecorationsegmentamplitude\relax}%
- {.5\pgfdecorationsegmentamplitude}%
- }%
- \fi%
- \pgfpathcurveto{%
- \pgfqpoint{\dimexpr\pgf@xc-.5\pgfdecorationsegmentamplitude\relax}%
- {.5\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{\dimexpr\pgf@xc-.15\pgfdecorationsegmentamplitude\relax}%
- {.7\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{\pgf@xc}{\pgfdecorationsegmentamplitude}%
- }%
- \pgfpathcurveto{%
- \pgfqpoint{\dimexpr\pgf@xc+.15\pgfdecorationsegmentamplitude\relax}%
- {.7\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{\dimexpr\pgf@xc+.5\pgfdecorationsegmentamplitude\relax}%
- {.5\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{\dimexpr\pgf@xc+\pgfdecorationsegmentamplitude\relax}%
- {.5\pgfdecorationsegmentamplitude}%
- }%
- \fi%
- \fi%
- \unless\ifdim\to=\pgfdecoratedremainingdistance %
- \pgfpathlineto{%
- \pgfqpoint{\to}{.5\pgfdecorationsegmentamplitude}%
- }%
- \fi%
-}
-% This is a variant of the brace in pathreplacing that allows for holes
-\pgfdeclaredecoration{gapped brace}{final}{%
- \state{final}{%
- \pgf@xc=\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance%
- \pgfpathcurveto{%
- \pgfqpoint{.15\pgfdecorationsegmentamplitude}{.3\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{.5\pgfdecorationsegmentamplitude}{.5\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{\pgfdecorationsegmentamplitude}{.5\pgfdecorationsegmentamplitude}%
- }%
- \expandafter\forcsvlist\expandafter\yquant@gappedbrace@loop%
- \expandafter{\pgfdecorationsegmentfromto}%
- \pgfpathlineto{%
- \pgfqpoint{\dimexpr\pgfdecoratedremainingdistance-\pgfdecorationsegmentamplitude\relax}%
- {.5\pgfdecorationsegmentamplitude}%
- }%
- \pgfpathcurveto{%
- \pgfqpoint{\dimexpr\pgfdecoratedremainingdistance-.5\pgfdecorationsegmentamplitude\relax}%
- {.5\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{\dimexpr\pgfdecoratedremainingdistance-.15\pgfdecorationsegmentamplitude\relax}%
- {.3\pgfdecorationsegmentamplitude}%
- }{%
- \pgfqpoint{\pgfdecoratedremainingdistance}{0pt}%
- }%
- }%
-}% \ No newline at end of file
+\newif\ifyquant@config@operator@position@rightalign
+\newif\ifyquant@config@operator@position@advance
+\yquant@config@operator@position@advancetrue
+\newif\ifyquant@config@circuit@seamless
+\newif\ifyquant@config@operator@multi \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-draw.tex b/graphics/pgf/contrib/yquant/tex/yquant-draw.tex
index a74197192c..1bf8d3fb19 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-draw.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-draw.tex
@@ -1,31 +1,96 @@
-% BEGIN_FOLD Actual drawing at shipout
\newcount\yquant@draw@@currentcontroltype%
-\protected\def\yquant@draw@group#1#2#3#4#5{%
- \begingroup%
- \ifcsname\yquant@prefix xshift\endcsname%
- \dimdef\yquant@draw@@x{#1+\csname\yquant@prefix xshift\endcsname}%
- \else%
- \def\yquant@draw@@x{#1}%
+\protected\def\yquant@draw@init#1#2{%
+ \ifcsname\yquant@prefix registermap@#1\endcsname%
+ % for connected subcircuit wires, check if this actually changes the type [happens for formerly discarded output wires] and flush the wire if necessary
+ \edef\yquant@draw@init@type{\yquant@register@get@type{#1}}%
+ \unless\if\yquant@draw@init@type#2\relax%
+ \yquant@circuit@flushwire{#1}%
+ \ifx\yquant@draw@init@type\yquant@register@type@none%
+ % in case the wire was discarded before, forget about the lastx position, it should always start with the others
+ \yquant@register@get@lastwire{#1}\wirelast%
+ \expandafter\expandafter\expandafter\ifstrempty\expandafter\expandafter\expandafter{%
+ \expandafter\@thirdoffour\wirelast%
+ }{%
+ \yquant@register@set@lastwire{#1}{%
+ {\yquant@draw@subcircuit@wirestart}{\yquant@draw@subcircuit@wirestart}{}%
+ {\unexpanded\expandafter\expandafter\expandafter{%
+ \expandafter\@fourthoffour\wirelast%
+ }}%
+ }%
+ }\relax
+ \fi%
+ \yquant@register@set@type{#1}{#2}%
\fi%
+ \else%
+ % for new wires, reset the type, and if this a subcircuit, put the appropriate x position in place. It might have changed from its initial value during preparation stage
+ \yquant@register@set@type{#1}{#2}%
+ \ifdefined\yquant@draw@subcircuit@wirestart%
+ \yquant@register@set@x{#1}{\yquant@draw@subcircuit@wirestart}%
+ \yquant@register@set@lastwire{#1}{%
+ {\yquant@draw@subcircuit@wirestart}{\yquant@draw@subcircuit@wirestart}{}{}%
+ }%
+ \fi%
+ \fi%
+}
+
+\def\yquant@draw@subcircuit@leftpos{0pt}% outermost circuit: 0pt
+\protected\long\def\yquant@draw@group#1#2#3#4#5#6{%
+ \begingroup%
+ \yquant@register@get@maxxlist\yquant@draw@@x{#6}%
\ifx F#2%
\yquant@draw@@currentcontroltype=0 %
\else%
- \yquant@draw@@currentcontroltype=\yquant@register@get@type{#2}\relax%
+ \yquant@draw@@currentcontroltype=#2 %
\fi%
\let\yquant@circuit@extendcontrolline@cmd=\empty%
\let\yquant@circuit@extendcontrolline@prev=\relax%
\let\yquant@circuit@extendcontrolline@clip=\empty%
\let\yquant@circuit@extendmultiline@total=\empty%
- \yquant@langhelper@list@attrs%
- % If the quotes library is loaded, activate it. (else, this is by default \relax)
- \tikz@enable@node@quotes%
- \yquant@set{#3}%
+ \def\yquant@draw@@width{#1}%
\def\yquant@draw@@style{#4}%
\def\yquant@draw@@content{#5}%
\def\yquant@draw@@idx@content{0}%
\def\yquant@draw@@idx@pcontrol{0}%
\def\yquant@draw@@idx@ncontrol{0}%
+ % If the quotes library is loaded, activate it. (else, this is by default \relax)
+ \tikz@enable@node@quotes%
+ \yquant@config@operator@position@rightalignfalse%
+ \yquant@config@operator@position@advancetrue%
+ \yquant@set{#3}%
+ % if the operator is right-aligned, we will not advance, as we must assume that the x position is already chosen appropriately
+ \ifyquant@config@operator@position@rightalign%
+ % for rightalign, we instead overwrite the lastx configurations, so that the outgoing wire starts after the operator.
+ \forlistloop\yquant@draw@group@rightadvance{#6}%
+ \else%
+ \ifyquant@env@seamless{%
+ \unless\ifdim\yquant@draw@@x=\yquant@draw@subcircuit@leftpos%
+ \dimdef\yquant@draw@@x{%
+ \yquant@draw@@x+\yquant@config@operator@sep%
+ }%
+ \fi%
+ }{%
+ \dimdef\yquant@draw@@x{%
+ \yquant@draw@@x+\yquant@config@operator@sep%
+ }%
+ }%
+ \ifyquant@config@operator@position@advance%
+ \dimdef\newx{\yquant@draw@@x+#1}%
+ \forlistloop\yquant@draw@group@advance{#6}%
+ \fi%
+ \dimdef\yquant@draw@@x{\yquant@draw@@x+.5\dimexpr#1\relax}%
+ \fi%
+}
+
+\protected\def\yquant@draw@group@advance#1{%
+ \yquant@register@set@x{#1}\newx%
+}
+
+\protected\def\yquant@draw@group@rightadvance#1{%
+ \ifcsname\yquant@prefix registermap@#1\endcsname%
+ % for connected subcircuit wires, make sure to flush the wire until the beginning.
+ \yquant@circuit@flushwire{#1}%
+ \fi%
}
\protected\def\yquant@draw@endgroup#1#2#3{%
@@ -57,8 +122,83 @@
\endgroup%
}
-\protected\long\def\yquant@draw@single#1#2{%
+\protected\def\yquant@draw@injectiongroup#1#2\yquant@draw@endinjectiongroup#3#4#5{%
+ \csdef{yquant@draw@@injection@#1}{%
+ \yquant@draw@begininjection#2\yquant@draw@stopinjection{#3}{#4}{#5}%
+ }%
+}
+
+\protected\long\def\yquant@draw@begininjection#1#2#3#4#5#6{%
+ % this is called within another draw group, so lots of things are already set up
+ \begingroup%
+ \def\yquant@draw@@style{#4}%
+ \def\yquant@draw@@content{#5}%
+ \let\yquant@draw@@idx@content=\yquant@draw@@idx@pcontrol%
+ \yquant@set{#3}% this will accumulate with outer styles from the enclosing draw group, but there is nothing we can do about it
+}
+
+\protected\def\yquant@draw@stopinjection#1#2#3{%
+ \ifcase#3\relax%
+ \or%
+ \yquant@draw@alias@ctrl{#2}n%
+ \or%
+ \yquant@draw@alias@ctrl{#2}p%
+ \or%
+ \yquant@draw@alias@ctrl{#2}p%
+ \yquant@draw@alias@ctrl{#2}n%
+ \or%
+ \yquant@draw@alias{#2}%
+ \or%
+ \yquant@draw@alias{#2}%
+ \yquant@draw@alias@ctrl{#2}n%
+ \or%
+ \yquant@draw@alias{#2}%
+ \yquant@draw@alias@ctrl{#2}p%
+ \or%
+ \yquant@draw@alias{#2}%
+ \yquant@draw@alias@ctrl{#2}p%
+ \yquant@draw@alias@ctrl{#2}n%
+ \fi%
+ \edef\process{%
+ \endgroup%
+ \def\noexpand\yquant@circuit@extendcontrolline@clip{%
+ \unexpanded\expandafter{\yquant@circuit@extendcontrolline@clip}%
+ }%
+ \def\noexpand\yquant@circuit@extendcontrolline@prev{%
+ \unexpanded\expandafter{\yquant@circuit@extendcontrolline@prev}%
+ }%
+ \def\noexpand\yquant@circuit@extendcontrolline@cmd{%
+ \unexpanded\expandafter{\yquant@circuit@extendcontrolline@cmd}%
+ }%
+ \def\noexpand\yquant@circuit@extendmultiline@total{%
+ \unexpanded\expandafter{\yquant@circuit@extendmultiline@total}%
+ }%
+ \def\noexpand\yquant@draw@@idx@pcontrol{\yquant@draw@@idx@content}%
+ }%
+ \process%
+}
+
+\protected\def\yquant@draw@inject#1{%
+ \csname yquant@draw@@injection@#1\endcsname%
+ \csgundef{yquant@draw@@injection@#1}%
+}
+
+\protected\def\yquant@draw@inject@outer#1{%
+ % we thought we wanted to inject #1, however, this was not valid; so now insert it directly.
+ \expandafter\expandafter\expandafter\yquant@draw@inject@outer@helper%
+ \csname yquant@draw@@injection@#1\endcsname%
+ \csgundef{yquant@draw@@injection@#1}%
+}
+
+\def\yquant@draw@inject@outer@helper\yquant@draw@begininjection#1\yquant@draw@stopinjection{%
+ \yquant@draw@group%
+ #1%
+ \yquant@draw@endgroup%
+}
+
+\protected\def\yquant@draw@single#1#2{%
\let\idx=\yquant@draw@@idx@content%
+ \yquant@config@operator@multifalse%
\edef\cmd{%
\noexpand\path (\yquant@draw@@x, \yquant@register@get@y{#1})%
node[/yquant/every operator, \yquant@draw@@style, /yquant/this operator,%
@@ -80,6 +220,7 @@
}
\protected\def\yquant@draw@multi#1#2#3#4#5{%
+ \yquant@config@operator@multitrue%
\let\idx=\yquant@draw@@idx@content%
\edef\yquant@draw@multi@@name{#5}%
\def\yquant@draw@@idx@multipart{0}%
@@ -106,7 +247,7 @@
\yquant@register@get@y{#1}+\yquant@register@get@y{#2}\relax%
\relax)%
node[/yquant/every operator, \yquant@draw@@style, /yquant/this operator,%
- /yquant/operator/multi main=\ifnum#3=1 true\else false\fi\unless\ifnum#1=#2 ,%
+ /yquant/internal/multi main=\ifnum#3=1 true\else false\fi\unless\ifnum#1=#2 ,%
y radius/.expanded=\the\dimexpr.5\dimexpr\yquant@register@get@ydist{#1}{#2}\relax\relax+%
.5*\noexpand\pgfkeysvalueof{/tikz/y radius}\fi,%
name prefix=, name suffix=, name=yquantbox]%
@@ -145,17 +286,28 @@
\let\pgfdecorationsegmentfromto=\empty%
#4%
\edef\pgfdecorationsegmentfromto{\expandafter\@gobble\pgfdecorationsegmentfromto}%
+ \yquant@config@operator@multitrue%
% We need to somehow extract the y radius
\edef\cmd{%
- \noexpand\path[/yquant/every operator, \yquant@draw@@style,%
- /yquant/every multi label, /yquant/this operator]%
- (\yquant@draw@@x, \yquant@draw@multiinit@@min) --%
- (\yquant@draw@@x, \yquant@draw@multiinit@@max)%
- node[name prefix=, name suffix=, name=yquantbox]%
+ \noexpand\path (\yquant@draw@@x, \the\dimexpr.5\dimexpr%
+ \yquant@draw@multiinit@@min+\yquant@draw@multiinit@@max\relax%
+ \relax)%
+ node[/yquant/every operator, \yquant@draw@@style,
+ \ifnum\yquant@compat<2 /yquant/every multi label,\fi%
+ /yquant/this operator,%
+ y radius=\yquant@abs{\the\dimexpr.5\dimexpr\yquant@draw@multiinit@@total\relax\relax},%
+ name prefix=, name suffix=, name=yquantbox]%
{\unexpanded\expandafter{\yquant@draw@@content}};%
+ \pgfshapeclippath{yquantbox}%
+ {/yquant/every operator, \yquant@draw@@style,%
+ \ifnum\yquant@compat<2 /yquant/every multi label,\fi%
+ /yquant/this operator}%
}%
\cmd%
- % no wire extension (we are still at the initial position), no control line (init doesn't allow for those, so just save the no-op), no multi line
+ \yquant@for \i := #1 to #2 {%
+ \yquant@circuit@extendwire\i{center}%
+ }%
+ % no control line (init doesn't allow for those, so just save the no-op), no multi line
% check for empty name parameter
\ifstrempty{#5}\relax{%
\pgfnodealias{\tikz@pp@name{#5}}{yquantbox}%
@@ -201,7 +353,85 @@
\fi%
}
-\newbox\yquant@draw@subcircuit@box
+\protected\long\def\yquant@draw@output@single#1#2{%
+ \let\idx=\yquant@draw@@idx@content%
+ \yquant@config@operator@multifalse%
+ \edef\cmd{%
+ \noexpand\path (\yquant@circuit@endwires@x, \yquant@register@get@y{#1})%
+ node[\ifnum\yquant@compat>1 /yquant/every operator,\fi%
+ /yquant/every output,%
+ /yquant/every \yquant@register@type@tostring{\yquant@register@get@type{#1}} output,%
+ \yquant@draw@@style, /yquant/this operator,%
+ name prefix=, name suffix=, name=yquantbox]%
+ {\unexpanded\expandafter{\yquant@draw@@content}};%
+ \ifdefined\yquant@parent%
+ \pgfshapeclippath{yquantbox}%
+ {\ifnum\yquant@compat>1 /yquant/every operator,\fi%
+ /yquant/every output,%
+ /yquant/every \yquant@register@type@tostring{\yquant@register@get@type{#1}} output,%
+ \yquant@draw@@style,%
+ /yquant/this operator}%
+ \fi%
+ }%
+ \cmd%
+ % only extend for subcircuits
+ \ifdefined\yquant@parent%
+ \yquant@circuit@extendwire{#1}{center}%
+ \fi%
+ % check for empty name parameter
+ \ifstrempty{#2}\relax{%
+ \pgfnodealias{\tikz@pp@name{#2}}{yquantbox}%
+ }%
+ \numdef\yquant@draw@@idx@content{\yquant@draw@@idx@content+1}%
+}
+
+\protected\long\def\yquant@draw@output@multi#1#2#3#4#5{%
+ \let\idx=\yquant@draw@@idx@content%
+ \@tempdima=-.5\dimexpr\yquant@config@register@sep\relax%
+ \dimdef\yquant@draw@multiinit@@min{\yquant@register@get@y{#1}-\@tempdima}%
+ \dimdef\yquant@draw@multiinit@@max{\yquant@register@get@y{#2}+\@tempdima}%
+ \dimdef\yquant@draw@multiinit@@total{%
+ \yquant@draw@multiinit@@max-\yquant@draw@multiinit@@min%
+ }%
+ \def\pgfdecorationsegmentaspect{0}%
+ \let\yquant@register@multi@contiguous=\yquant@draw@multiinit@contiguous%
+ \let\pgfdecorationsegmentfromto=\empty%
+ #4%
+ \edef\pgfdecorationsegmentfromto{\expandafter\@gobble\pgfdecorationsegmentfromto}%
+ \yquant@config@operator@multitrue%
+ % We need to somehow extract the y radius
+ \edef\cmd{%
+ \noexpand\path (\yquant@circuit@endwires@x, \the\dimexpr.5\dimexpr%
+ \yquant@draw@multiinit@@min+\yquant@draw@multiinit@@max\relax%
+ \relax)%
+ node[\ifnum\yquant@compat>1 /yquant/every operator, /yquant/every output,\fi%
+ \yquant@draw@@style,%
+ \ifnum\yquant@compat<2 /yquant/every multi output,\fi%
+ /yquant/this operator,%
+ y radius=\yquant@abs{\the\dimexpr.5\dimexpr\yquant@draw@multiinit@@total\relax\relax},%
+ name prefix=, name suffix=, name=yquantbox]%
+ {\unexpanded\expandafter{\yquant@draw@@content}};%
+ \ifdefined\yquant@parent%
+ \pgfshapeclippath{yquantbox}%
+ {\ifnum\yquant@compat>1 /yquant/every operator, /yquant/every output,\fi%
+ \yquant@draw@@style,
+ \ifnum\yquant@compat<2 /yquant/every multi output,\fi%
+ /yquant/this operator}%
+ \fi%
+ }%
+ \cmd%
+ % only extend for subcircuits
+ \ifdefined\yquant@parent%
+ \yquant@for \i := #1 to #2 {%
+ \yquant@circuit@extendwire\i{center}%
+ }%
+ \fi%
+ % check for empty name parameter
+ \ifstrempty{#5}\relax{%
+ \pgfnodealias{\tikz@pp@name{#5}}{yquantbox}%
+ }%
+ \numdef\yquant@draw@@idx@content{\yquant@draw@@idx@content+1}%
+}
\protected\def\yquant@draw@subcircuit@nodecallback#1{%
\ifstrequal{#1}{yquantbox}\relax{%
@@ -209,65 +439,87 @@
}%
}
-\protected\long\def\yquant@draw@subcircuit@prepare#1#2{%
+% #1: id of subcircuit
+% #2: name
+% #3: {width of subcircuit (excluding outer box)}{including outer box}{left margin}
+% #4: affected wires
+\protected\long\def\yquant@draw@subcircuit@prepare#1#2#3#4{%
\let\idx=\yquant@draw@@idx@content%
- % In order to wrap the inner circuit in a proper box operator and clip outer paths appropriately (which was not possible yet, as we didn't know the exact vertical positions), we first place it within a box. During the setup time, we assumed that the subcircuit be placed at position #3; however, now, this has changed due to the additional box.
+ % In order to wrap the inner circuit in a proper box operator and clip outer paths appropriately (which was not possible yet, as we didn't know the exact vertical positions), we first place it within a box.
% First, we anticipate the macro that is used by our subcircuit to store the node
% names.
\edef\yquant@draw@subcircuit@nodelist{yquant@env#1@draw@subcircuit@nodelist}%
\global\cslet\yquant@draw@subcircuit@nodelist\empty%
- \pgfinterruptboundingbox%
- \let\yquant@parent=\yquant@prefix%
- \def\yquant@prefix{yquant@env#1@}%
- \ifstrempty{#2}{%
- % we make sure there are no conflicts by prefixing any named nodes in any case.
- \pgfkeys{/tikz/name prefix/.expanded={sub\yquant@prefix-}}%
- \let\pgf@nodecallback=\yquant@draw@subcircuit@nodecallback%
- }{%
- \pgfkeys{/tikz/name prefix/.expanded={\pgfkeysvalueof{/tikz/name prefix}#2-}}%
+ % \pgfinterruptboundingbox, but just for y
+ \begingroup%
+ \edef\pgf@interrupt@savemaxy{\the\pgf@picmaxy}%
+ \edef\pgf@interrupt@saveminy{\the\pgf@picminy}%
+ \pgf@picmaxy=-16000pt %
+ \pgf@picminy=16000pt %
+ \pgf@size@hookedfalse%
+ \let\pgf@path@size@hook=\pgfutil@empty%
+ % now we must take care of extending all the wires appropriately until the beginning of the box. #3 contains width of this box, #4 contains registers affected by this box. Note that for subcircuits, x extension by the group is disabled.
+ \dimdef\newx{%
+ \yquant@draw@@x-.5\dimexpr\@secondofthree#3\relax%
}%
- \letcs\xmin{\yquant@prefix xmin}%
- \letcs\xmax{\yquant@prefix xmax}%
- \global\setbox\yquant@draw@subcircuit@box=\hbox to 0pt {{%
- % bypass 'overlay' option
- \pgf@relevantforpicturesizetrue%
- \pgfsys@beginpicture%
- % reset all styles to the expected defaults (similar, but extended to \pgfpicture, see pgf issue #870)
- \pgfsetcolor{.}%
- \pgfsetlinewidth{0.4pt}%
- \pgfsetbuttcap%
- \pgfsetmiterjoin%
- \pgfsetmiterlimit{10}%
- \pgfsetdash{}{0pt}%
- % The left outer position of our box will be \yquant@draw@@x-.5(xmax-xmin).
- % To compensate for, we perform a left shift of all commands that take explicit coordinates from the subcircuit.
- % The y positions, on the other hand, are exactly the ones as they should be integrated in the picture.
- \csdimdef{\yquant@prefix xshift}{\yquant@draw@@x-.5\dimexpr\xmax+\xmin\relax}%
- \csname\yquant@prefix draw\endcsname%
- \ifdim\pgf@picmaxx=-16000pt %
- \global\pgf@picmaxx=0pt %
- \global\pgf@picminx=0pt %
- \global\pgf@picmaxy=0pt %
- \global\pgf@picminy=0pt %
- \fi%
- \ifyquantdebug%
- \pgf@relevantforpicturesizefalse%
- \draw[green] (current bounding box.north east) rectangle (current bounding box.south west);%
- \fi%
- \pgfsys@endpicture%
+ \dimen0=\newx%
+ \let\yquant@draw@subcircuit@leftpos=\newx% seamless subcircuits: do not add another separation if we are there
+ \let\pgfshapeclippathhorzresult=\empty%
+ \forlistloop\yquant@draw@move@loop{#4}%
+ % but the new positions are not at the beginning of the box, but inside (with possible margin)
+ \dimdef\newx{%
+ \yquant@draw@@x-.5\dimexpr\@firstofthree#3\relax-\@thirdofthree#3%
+ }%
+ \forlistloop\yquant@draw@group@advance{#4}%
+ \setbox\yquant@prepare@subcircuit@box=\hbox{{%
+ \let\yquant@draw@subcircuit@wirestart=\newx%
+ \let\yquant@parent=\yquant@prefix%
+ \def\yquant@prefix{yquant@env#1@}%
+ \ifstrempty{#2}{%
+ % we make sure there are no conflicts by prefixing any named nodes in any case.
+ \pgfkeys{/tikz/name prefix/.expanded={sub\yquant@prefix-}}%
+ \let\pgf@nodecallback=\yquant@draw@subcircuit@nodecallback%
+ }{%
+ \pgfkeys{/tikz/name prefix/.expanded={\pgfkeysvalueof{/tikz/name prefix}#2-}}%
+ }%
+ \pgfkeys{/yquant/operators/this subcircuit box/.style={}}%
+ \edef\yquant@draw@subcircuit@style{%
+ /yquant/every operator, \yquant@draw@@style,%
+ /yquant/this operator, /yquant/internal/multi main=true,%
+ }
+ \expandafter\tikzset\expandafter{\yquant@draw@subcircuit@style}%
+ \csname\yquant@prefix draw\endcsname%
+ \dimen0=\yquant@register@get@y1\relax%
+ \ifdim\dimen0>\pgf@picmaxy %
+ \global\pgf@picmaxy=\dimen0 %
+ \fi%
+ \dimen0=\dimexpr\yquant@register@get@y{\csname\yquant@prefix registers\endcsname}\relax%
+ \ifdim\dimen0<\pgf@picminy %
+ \global\pgf@picminy=\dimen0 %
+ \fi%
}}%
- \global\setbox\yquant@draw@subcircuit@box=\hbox to \dimexpr\xmax-\xmin\relax {%
- \hskip-\dimexpr\yquant@draw@@x-.5\dimexpr\xmax-\xmin\relax\relax%
- \lower\pgf@picmaxy%
- \box\yquant@draw@subcircuit@box%
+ \edef\cmd{%
+ \noexpand\path (\yquant@draw@@x, \the\dimexpr.5\pgf@picminy+.5\pgf@picmaxy\relax)%
+ node[/yquant/every operator, \yquant@draw@@style,%
+ /yquant/operators/every subcircuit box, /yquant/this operator,%
+ /yquant/operators/this subcircuit box,%
+ /yquant/internal/multi main=true,%
+ name prefix=, name suffix=, name=yquantbox]%
+ {\vbox to \the\dimexpr\pgf@picmaxy-\pgf@picminy\relax {\hbox to \@firstofthree#3 {}}};%
}%
- \ht\yquant@draw@subcircuit@box=0pt%
- \dp\yquant@draw@subcircuit@box=\dimexpr\pgf@picmaxy-\pgf@picminy\relax%
- \expandafter%
- \endpgfinterruptboundingbox%
- \expandafter\edef\expandafter\yquant@draw@subcircuit@y\expandafter{%
- \the\dimexpr.5\pgf@picminy+.5\pgf@picmaxy\relax%
- }%
+ \cmd%
+ \unhbox\yquant@prepare@subcircuit@box
+ % \endpgfinterruptboundingbox + increase
+ \ifdim\pgf@interrupt@savemaxy>\pgf@picmaxy%
+ \global\pgf@picmaxy=\pgf@interrupt@savemaxy%
+ \fi%
+ \ifdim\pgf@interrupt@saveminy<\pgf@picminy%
+ \global\pgf@picminy=\pgf@interrupt@saveminy%
+ \fi%
+ \endgroup%
+ % Now that the subcircuit is finished, we need advance all the wires
+ \dimdef\newx{\yquant@draw@@x+.5\dimexpr\yquant@draw@@width\relax}%
+ \forlistloop\yquant@draw@group@advance{#4}%
\ifstrempty{#2}{%
% However, if the outer node was not named, no access to the inner nodes is desired, so we delete all nodes again.
\def\do##1{%
@@ -287,25 +539,21 @@
}%
}
-\protected\long\def\yquant@draw@subcircuit@single#1#2#3{%
- \yquant@draw@subcircuit@prepare{#2}{#3}%
+\protected\long\def\yquant@draw@subcircuit@single#1#2#3#4{%
+ \yquant@config@operator@multifalse%
+ \yquant@draw@subcircuit@prepare{#2}{#3}{#4}{#1}%
\edef\cmd{%
- \noexpand\path (\yquant@draw@@x, \yquant@draw@subcircuit@y)%
- node[/yquant/every operator, \yquant@draw@@style,%
- /yquant/operators/every subcircuit box, /yquant/this operator,%
- /yquant/operators/this subcircuit box,%
- name prefix=, name suffix=, name=yquantbox]%
- {\box\yquant@draw@subcircuit@box};%
- \pgfshapeclippath{yquantbox}%
- {/yquant/every operator, \yquant@draw@@style,%
- /yquant/operators/every subcircuit box, /yquant/this operator,%
- /yquant/operators/this subcircuit box}%
+ \pgfshapeclippath{yquantbox}{%
+ /yquant/every operator, \yquant@draw@@style,%
+ /yquant/operators/every subcircuit box, /yquant/this operator,%
+ /yquant/operators/this subcircuit box,%
+ }%
}%
\cmd%
% see comment in draw@subcircuit@multi
\yquant@softpath@extractmaxxat\pgfshapeclippathhorzresult{\yquant@register@get@y{#1}}%
\let\pgfshapeclippathhorzresult=\empty%
- \yquant@circuit@extendwire{#1}{*}%
+ \yquant@circuit@extendwire{#1}*%
\expandafter\yquant@circuit@extendcontrolline\expandafter%
{\the\yquant@draw@@currentcontroltype}\yquant@draw@@x%
% check for empty name parameter
@@ -315,31 +563,25 @@
\numdef\yquant@draw@@idx@content{\yquant@draw@@idx@content+1}%
}
-\protected\long\def\yquant@draw@subcircuit@multi#1#2#3#4#5#6{%
+\protected\long\def\yquant@draw@subcircuit@multi#1#2#3#4#5#6#7{%
+ \yquant@config@operator@multitrue%
% there is no contiguous slicing for subcircuits, as they may have all kinds of wire operations that can extend beyond the individual slices, let alone ancillas
- \yquant@draw@subcircuit@prepare{#5}{#6}%
- % We need to somehow extract the y radius
+ \yquant@draw@subcircuit@prepare{#5}{#6}{#7}{#4}%
\edef\cmd{%
- \noexpand\path (\yquant@draw@@x, \yquant@draw@subcircuit@y)%
- node[/yquant/every operator, \yquant@draw@@style,%
- /yquant/operators/every subcircuit box, /yquant/this operator,%
- /yquant/operators/this subcircuit box,
- /yquant/operator/multi main=true,%
- name prefix=, name suffix=, name=yquantbox]%
- {\box\yquant@draw@subcircuit@box};%
- \pgfshapeclippath{yquantbox}%
- {/yquant/every operator, \yquant@draw@@style,%
- /yquant/operators/every subcircuit box, /yquant/this operator,%
- /yquant/operators/this subcircuit box,%
- /yquant/operator/multi main=true}%
+ \pgfshapeclippath{yquantbox}{%
+ /yquant/every operator, \yquant@draw@@style,%
+ /yquant/operators/every subcircuit box, /yquant/this operator,%
+ /yquant/operators/this subcircuit box,%
+ /yquant/internal/multi main=true,%
+ }%
}%
\cmd%
% install the clippings - but only on wires that are visually between the first and list while not being part of the circuit.
\let\nonaffectedpgfshapeclippathhorzresult=\pgfshapeclippathhorzresult%
\yquant@for \i := #1 to #2 {%
\xifinlist{\i}{#4}{%
- % Usually, we always begin with a wire from the center of the operator shape and clip the inner parts away. This can't be done here, as the wire needs to be drawn _inside_ of the outer box operator here. Instead of clipping against the clip path, we extract its maximum x position at the position of the wire (which is an overkill for simple shapes, but the allows to specify even more complicated ones) and place the wire at this position without clipping.
- % Note: this works very well for lines joining at perpendicular angles; but if the shape of the box is more fancy, while the position will be calculated correctly, the wire has a rectangular (or rounded, depending on the line cap) shape that is drawn on top of thw operator. While \yquant@softpath@extractmaxxat could without much effort determine exactly the segment of the path that corresponds to the rightmost line, we would then have to convert this single line into a closed path that fills the linewidth and clip against it to get proper joiners. Since most likely, no-one will ever need this, we don't do it. But file a feature request if desired.
+ % Usually, we always begin with a wire from the center of the operator shape and clip the inner parts away. This can't be done here, as the wire needs to be drawn _inside_ of the outer box operator here. Instead of clipping against the clip path, we extract its maximum x position at the position of the wire (which is an overkill for simple shapes, but allows to specify even more complicated ones) and place the wire at this position without clipping.
+ % Note: this works very well for lines joining at perpendicular angles; but if the shape of the box is more fancy, while the position will be calculated correctly, the wire has a rectangular (or rounded, depending on the line cap) shape that is drawn on top of the operator. While \yquant@softpath@extractmaxxat could without much effort determine exactly the segment of the path that corresponds to the rightmost line, we would then have to convert this single line into a closed path that fills the linewidth and clip against it to get proper joiners. Since most likely, no-one will ever need this, we don't do it. But file a feature request if desired.
\yquant@softpath@extractmaxxat\nonaffectedpgfshapeclippathhorzresult%
{\yquant@register@get@y\i}%
\let\pgfshapeclippathhorzresult=\empty%
@@ -465,7 +707,7 @@
\ifx0#2%
\edef\wirexpos{\expandafter\@secondoffour\wirelast}%
\else%
- \let\wirexpos=\yquant@env@end@xpos%
+ \let\wirexpos=\yquant@circuit@endwires@x%
\fi%
\ifdim\wirexpos>\wirexprevpos %
\edef\wirestyle{\noexpand\tikzset{%
@@ -483,41 +725,52 @@
}%
}%
\pgfscope%
- % install the clipping
- \pgfsyssoftpath@setcurrentpath\wireclipping%
- % invert the clipping
- \ifyquantdebug%
- \pgfsetfillcolor{orange}%
- \pgfsetfillopacity{.3}%
- \pgfusepathqfill%
- \else%
- % We need to access the current bounding box as well as other positions in the local coordinate frame. For this, transform the bounding box to the current frame (though this is expensive). Does this capture rotations correctly?
- \begingroup%
- \pgftransforminvert%
- \pgfpointtransformednonlinear{\pgfqpoint{\pgf@picminx}{\pgf@picminy}}%
- \global\@tempdima=\pgf@y%
- \pgfpointtransformednonlinear{\pgfqpoint{\pgf@picmaxx}{\pgf@picmaxy}}%
- \global\@tempdimb=\pgf@y%
- \endgroup%
- % To avoid rendering artifacts at all zoom levels with all renderers, we need to make the clipping region large. Let's try the current bounding box first.
- % This may be insufficient if there no or a tiny wire label and only registers of a small height. In this case, take ten times the line width or at least 1cm, but don't let it affect the bounding box.
- \ifdim\dimexpr\@tempdimb-\@tempdima\relax<10\pgflinewidth %
- \@tempdima=\dimexpr\wireypos-5\pgflinewidth\relax%
- \@tempdimb=\dimexpr\wireypos+5\pgflinewidth\relax%
- \fi%
- \ifdim\dimexpr\@tempdimb-\@tempdima\relax<1cm %
- \@tempdima=\dimexpr\wireypos-5mm\relax%
- \@tempdimb=\dimexpr\wireypos+5mm\relax%
+ \unless\ifx\wireclipping\empty% may happen if the style is altered to be invisible, though the type is not none
+ % install the clipping
+ \pgfsyssoftpath@setcurrentpath\wireclipping%
+ % invert the clipping
+ \ifyquantdebug%
+ \pgfsetfillcolor{orange}%
+ \pgfsetfillopacity{.3}%
+ \pgfusepathqfill%
+ \else%
+ % We need to access the current bounding box as well as other positions in the local coordinate frame. For this, transform the bounding box to the current frame (though this is expensive). Does this capture rotations correctly?
+ \begingroup%
+ \ifdim\pgf@picminx>\pgf@picmaxx%
+ % nothing drawn yet (or bounding box reset)
+ \pgf@picminx=0pt %
+ \pgf@picmaxx=0pt %
+ \fi%
+ \ifdim\pgf@picminy>\pgf@picmaxy%
+ \pgf@picminy=0pt %
+ \pgf@picmaxy=0pt %
+ \fi%
+ \pgftransforminvert%
+ \pgfpointtransformednonlinear{\pgfqpoint{\pgf@picminx}{\pgf@picminy}}%
+ \global\@tempdima=\pgf@y%
+ \pgfpointtransformednonlinear{\pgfqpoint{\pgf@picmaxx}{\pgf@picmaxy}}%
+ \global\@tempdimb=\pgf@y%
+ \endgroup%
+ % To avoid rendering artifacts at all zoom levels with all renderers, we need to make the clipping region large. Let's try the current bounding box first.
+ % This may be insufficient if there no or a tiny wire label and only registers of a small height. In this case, take ten times the line width or at least 1cm, but don't let it affect the bounding box.
+ \ifdim\dimexpr\@tempdimb-\@tempdima\relax<10\pgflinewidth %
+ \@tempdima=\dimexpr\wireypos-5\pgflinewidth\relax%
+ \@tempdimb=\dimexpr\wireypos+5\pgflinewidth\relax%
+ \fi%
+ \ifdim\dimexpr\@tempdimb-\@tempdima\relax<1cm %
+ \@tempdima=\dimexpr\wireypos-5mm\relax%
+ \@tempdimb=\dimexpr\wireypos+5mm\relax%
+ \fi%
+ \pgf@relevantforpicturesizefalse%
+ \pgfpathrectanglecorners%
+ {\pgfqpoint{\dimexpr\wirexprevpos-2\pgflinewidth\relax}%
+ {\@tempdima}}%
+ {\pgfqpoint{\dimexpr\wirexpos+2\pgflinewidth\relax}%
+ {\@tempdimb}}%
+ \pgf@relevantforpicturesizetrue%
+ \pgfseteorule% even-odd to properly invert the clipping
+ \pgfusepathqclip%
\fi%
- \pgfinterruptboundingbox%
- \pgfpathrectanglecorners%
- {\pgfqpoint{\dimexpr\wirexprevpos-2\pgflinewidth\relax}%
- {\@tempdima}}%
- {\pgfqpoint{\dimexpr\wirexpos+2\pgflinewidth\relax}%
- {\@tempdimb}}%
- \endpgfinterruptboundingbox%
- \pgfseteorule% even-odd to properly invert the clipping
- \pgfusepathqclip%
\fi%
% the clip inversion is left to the drawing commands (clip two \pgflinewidth more to avoid renderer artifacts)
\csname yquant@draw@wire@\wiretype\endcsname{#1}%
@@ -557,486 +810,17 @@
\cmd%
}
-\protected\long\def\yquant@draw@output@group#1{%
- \begingroup%
- \def\idx{0}%
- \yquant@set{#1}%
-}
-
-\let\yquant@draw@output@endgroup=\endgroup%
-
-\protected\long\def\yquant@draw@output@single#1#2{%
- \path%
- (\yquant@env@end@xpos, \yquant@register@get@y{#1})%
- node[/yquant/every output,%
- /yquant/every \yquant@register@type@tostring{\yquant@register@get@type{#1}} output] {#2};
- \numdef\idx{\idx+1}%
-}
-
-\protected\long\def\yquant@draw@output@multi#1#2#3#4{%
- % extremely similar to \yquant@draw@multiinit
- \@tempdima=-.5\dimexpr\yquant@config@register@sep\relax%
- \dimdef\yquant@draw@multiinit@@min{\yquant@register@get@y{#1}-\@tempdima}%
- \dimdef\yquant@draw@multiinit@@max{\yquant@register@get@y{#2}+\@tempdima}%
- \dimdef\yquant@draw@multiinit@@total{%
- \yquant@draw@multiinit@@max-\yquant@draw@multiinit@@min%
- }%
- \def\pgfdecorationsegmentaspect{0}%
- \let\yquant@register@multi@contiguous=\yquant@draw@multiinit@contiguous%
- \let\pgfdecorationsegmentfromto=\empty%
- #3%
- \edef\pgfdecorationsegmentfromto{\expandafter\@gobble\pgfdecorationsegmentfromto}%
- \path[/yquant/every multi output]%
- (\yquant@env@end@xpos, \yquant@draw@multiinit@@min) --%
- (\yquant@env@end@xpos, \yquant@draw@multiinit@@max)%
- node {#4};%
- \numdef\idx{\idx+1}%
-}
-% END_FOLD
-
-% BEGIN_FOLD Preparation of drawing a generic shape
-% Most drawing operations will be realized through nodes
-\let\yquant@draw@callback@box=\@gobble
-\let\yquant@draw@callback@wire=\@gobble
-
-\def\yquant@draw@sort#1#2{%
- \yquant@draw@sort@aux#1\relax#2\relax%
- \expandafter\@firstoftwo%
- \else%
- \expandafter\@secondoftwo%
- \fi%
-}
-
-\def\yquant@draw@sort@aux#1#2#3\relax#4#5#6\relax{%
- \unless\ifnum#2>#5\relax%
-}
-
-% generic shape of an operator
-% #1: value
-% #2: tikz options that select the correct shape
-% #3: positive controls
-% #4: negative controls
-% #5: targets
-\protected\long\def\yquant@draw#1#2#3#4#5{%
- % setup the required macros
- \yquant@circuit@operator{#3}{#4}{#5}%
- \yquant@draw@{#1}{#2}%
-}
-
-\protected\long\def\yquant@draw@#1#2{%
- \yquant@sort@clear%
- \def\idx{0}%
- \dimen2=\yquant@config@operator@minimum@width%
- % BEGIN_FOLD register
- \def\do##1{%
- \ifx\yquant@lang@attr@name\empty%
- \let\nodename=\empty%
- \else%
- \edef\nodename{\yquant@lang@attr@name-\idx}%
- \fi%
- \ifyquant@firsttoken\yquant@register@multi{##1}{%
- \yquant@draw@@multi{#1}{#2}{##1}%
- }{%
- \yquant@draw@@single{#1}{#2}{##1}%
- }%
- \ifx\yquant@draw@@multi\yquant@draw@@multiinit%
- % if we draw an initialization (whether multi or single), this possibly affects the minimal x position. All other gates will be shifted so that they cannot extend beyond the minimal position.
- \ifdim\pgf@picminx<\csname\yquant@prefix xmin\endcsname%
- \csxdef{\yquant@prefix xmin}{\the\pgf@picminx}%
- \fi%
- \fi%
- \expandafter%
- \endpgfinterruptboundingbox%
- \expandafter\dimen\expandafter0\expandafter=%
- \the\dimexpr\pgf@picmaxx-\pgf@picminx\relax\relax%
- \ifdim\dimen0>\dimen2 %
- \dimen2=\dimen0 %
- \fi%
- \numdef\idx{\idx+1}%
- }%
- \dolistloop\yquant@circuit@operator@targets%
- % END_FOLD
- \yquant@draw@@controls%
- \yquant@draw@@finalize{#1}{#2}%
-}
-
-\protected\def\yquant@draw@@controls@loop#1#2{%
- \ifx\yquant@lang@attr@name\empty%
- \let\nodename=\empty%
- \else%
- \edef\nodename{\yquant@lang@attr@name-#1\idx}%
- \fi%
- \yquant@sort@eadd{%
- \expandafter\noexpand\csname yquant@draw@#1control\endcsname%
- {#2}% register index
- {\nodename}%
- }%
- \unless\ifdefined\yquant@draw@controltype%
- \edef\yquant@draw@controltype{#2}%
- \fi%
- \numdef\idx{\idx+1}%
-}
-
-\protected\def\yquant@draw@@controls{%
- \ifyquant@circuit@operator@hasControls%
- \def\idx{0}%
- \forlistloop{\yquant@draw@@controls@loop p}\yquant@circuit@operator@pctrls%
- \def\idx{0}%
- \forlistloop{\yquant@draw@@controls@loop n}\yquant@circuit@operator@nctrls%
- \unless\ifdefined\yquant@draw@controltype%
- \PackageError{yquant.sty}{Assertion failure}%
- {Internal inconsistency in yquant: Controlled action detected, but no controls were found.}%
- \fi%
- \fi%
-}
-
-\protected\long\def\yquant@draw@@finalize#1#2{%
- % We now know the dimensions of all the registers (though we didn't bother with the height of the control knobs [if present], we just assume they are too small to change this).
- \protected\def\idx{}%
- \protected@edef\yquant@draw@append{%
- \noexpand\yquant@draw@group%
- {\the\dimexpr\yquant@circuit@operator@x+.5\dimen2\relax}% mid x position
- \ifyquant@circuit@operator@hasControls%
- \yquant@draw@controltype%
- \else%
- F%
- \fi% if-switch whether controls are present
- {\yquant@attrs@remaining}% custom style
- {#2}% operator style
- {#1}%
- }%
- \yquant@sort\yquant@draw@sort%
- \advance \dimen2 by \yquant@circuit@operator@x\relax%
- \ifyquant@circuit@operator@hasControls%
- % If we draw a control line, all intermediate registers are affected in their position so that the line is never crossed. If the vertical line is instead caused by a multi register, \yquant@draw@@finalize@ctrl will be responsible for advancing only the affected positions.
- \yquant@for \yquant@i := \yquant@circuit@operator@minctrl to \yquant@circuit@operator@maxctrl {%
- \yquant@register@set@x\yquant@i{\the\dimen2}%
- }%
- \fi%
- \def\do##1{%
- \appto\yquant@draw@append{##1}%
- \yquant@draw@@finalize@ctrl##1%
- }%
- \yquant@sort@dolistloop%
- \csxappto{\yquant@prefix draw}{%
- \unexpanded\expandafter{\yquant@draw@append}%
- \noexpand\yquant@draw@endgroup%
- \ifyquant@circuit@operator@hasControls%
- T%
- \else%
- F%
- \fi%
- \ifx\yquant@lang@attr@name\empty%
- {}0%
- \else%
- {\yquant@lang@attr@name}%
- \ifnum\yquant@circuit@operator@numtarget=1 %
- \ifnum\yquant@circuit@operator@numpctrl=1 %
- \ifnum\yquant@circuit@operator@numnctrl=1 %
- 7%
- \else%
- 6%
- \fi%
- \else%
- \ifnum\yquant@circuit@operator@numnctrl=1 %
- 5%
- \else%
- 4%
- \fi%
- \fi%
- \else%
- \ifnum\yquant@circuit@operator@numpctrl=1 %
- \ifnum\yquant@circuit@operator@numnctrl=1 %
- 3%
- \else%
- 2%
- \fi%
- \else%
- \ifnum\yquant@circuit@operator@numnctrl=1 %
- 1%
- \else%
- 0%
- \fi%
- \fi%
- \fi%
- \fi%
- }%
-}
-
-\protected\def\yquant@draw@@single#1#2#3{%
- \yquant@sort@eadd{%
- \yquant@draw@single%
- {#3}% register index
- {\nodename}%
- }%
- % determine the actual dimensions by a virtual draw command
- \pgfinterruptboundingbox%
- \yquant@env@virtualize@path%
- \path%
- (0pt, 0pt)%
- node[/yquant/every operator, #2, /yquant/this operator,%
- name prefix=, name suffix=, name=] {#1};%
- \yquant@register@update@height{#3}{\the\pgf@picmaxy}%
- \yquant@register@update@depth{#3}{\the\dimexpr-\pgf@picminy\relax}%
-}
-
-\protected\def\yquant@draw@@multi#1#2#3{%
- \yquant@sort@eadd{%
- \yquant@draw@multi%
- #3%
- {\nodename}%
- }%
- % Determining the actual height is a problem - where to store its value? If there are single-register parts, we update the height accordingly; else we just assume that there is always enough space for such a control, since it anyways already spans multiple registers. (TODO?)
- \pgfinterruptboundingbox%
- \yquant@env@virtualize@path%
- \def\yquant@draw@@content{#1}%
- \def\yquant@draw@@style{#2}%
- \let\yquant@register@multi@contiguous=\yquant@draw@@multi@contiguous%
- \@fifthoffive#3%
- \ifdim\pgf@picmaxy=-16000pt %
- % if there was no single contiguous part before, determine the width now
- \path%
- (0pt, 0pt)%
- node[/yquant/every operator, #2, /yquant/this operator,%
- name prefix=, name suffix=, name=] {#1};%
- \fi%
-}
-
-\protected\def\yquant@draw@@multi@contiguous#1#2#3{%
- \ifnum#1=#2 %
- % we only care about single-register parts
- \global\pgf@picmaxy=-16000pt %
- \global\pgf@picminy=16000pt %
- \edef\cmd{%
- \noexpand\path (0pt, 0pt)%
- node[/yquant/every operator, \yquant@draw@@style, /yquant/this operator,%
- /yquant/operator/multi main=\ifnum#3=1 true\else false\fi,%
- name prefix=, name suffix=, name=]%
- {\unexpanded\expandafter{\yquant@draw@@content}};%
- }%
- \cmd%
- \yquant@register@update@height{#1}{\the\pgf@picmaxy}%
- \yquant@register@update@depth{#1}{\the\dimexpr-\pgf@picminy\relax}%
- \fi%
-}
-
-\protected\def\yquant@draw@@multiinit#1#2#3{%
- \yquant@sort@eadd{%
- \yquant@draw@multiinit%
- #3%
- {\nodename}%
- }%
- % Determining the actual height is a problem - where to store its value? We just assume that there is always enough space for such a control, since it anyway already spans multiple registers. (TODO?)
- \pgfinterruptboundingbox%
- \yquant@env@virtualize@path%
- \path%
- (0pt, 0pt)%
- node[/yquant/every operator, #2, /yquant/every multi label,%
- name prefix=, name suffix=, name=] {#1};%
-}
-
-\protected\long\def\yquant@draw@@subcircuit#1{%
- \yquant@sort@clear%
- \def\idx{0}%
- \dimen2=\yquant@config@operator@minimum@width%
- % BEGIN_FOLD register
- \def\do##1{%
- \ifx\yquant@lang@attr@name\empty%
- \let\nodename=\empty%
- \else%
- \edef\nodename{\yquant@lang@attr@name-\idx}%
- \fi%
- \ifyquant@firsttoken\yquant@register@multi{##1}{%
- \yquant@draw@@subcircuit@multi{#1}{##1}%
- }{%
- \yquant@draw@@subcircuit@single{#1}{##1}%
- }%
- \dimen0=\dimexpr%
- \csname yquant@env\yquant@circuit@subcircuit@id @xmax\endcsname-%
- \csname yquant@env\yquant@circuit@subcircuit@id @xmin\endcsname%
- \relax\relax%
- \pgfinterruptboundingbox%
- % There will still be some extra width taken by separations or other things related to the box itself.
- \yquant@env@virtualize@path%
- \path%
- (0pt, 0pt)%
- node[/yquant/every operator, #1,%
- /yquant/operators/every subcircuit box, /yquant/this operator,%
- /yquant/operators/this subcircuit box,%
- name prefix=, name suffix=, name=]%
- {\hbox to \dimen0{}};%
- % We also don't update the height here, as the height of the subcircuit is undetermined as long as we did not match inner and outer wires.
- \expandafter%
- \endpgfinterruptboundingbox%
- \expandafter\dimen\expandafter0\expandafter=%
- \the\dimexpr\pgf@picmaxx-\pgf@picminx\relax\relax%
- \ifdim\dimen0>\dimen2 %
- \dimen2=\dimen0 %
- \fi%
- \numdef\idx{\idx+1}%
- }%
- \dolistloop\yquant@circuit@operator@targets%
- % END_FOLD
- \yquant@draw@@controls%
- \yquant@draw@@finalize{}{#1}%
-}
-
-\protected\def\yquant@draw@@subcircuit@single#1#2{%
- \edef\yquant@circuit@subcircuit@param{#2\yquant@list@delim}%
- \yquant@circuit@subcircuit{#1}%
- \yquant@sort@eadd{%
- \yquant@draw@subcircuit@single%
- {#2}% register index
- {\yquant@circuit@subcircuit@id}%
- {\nodename}%
- }%
-}
-
-\protected\def\yquant@draw@@subcircuit@multi#1#2{%
- \edef\yquant@circuit@subcircuit@param{\@fifthoffive#2}%
- \yquant@sort@list\yquant@circuit@subcircuit@param\yquant@sort@ascending%
- \yquant@circuit@subcircuit{#1}%
- \yquant@sort@eadd{%
- \yquant@draw@subcircuit@multi%
- #2%
- {\yquant@circuit@subcircuit@id}%
- {\nodename}%
- }
-}
-
-\protected\long\def\yquant@draw@@output@single#1#2{%
- \path
- (\yquant@env@end@xpos, 0pt)%
- node[/yquant/every output,%
- /yquant/every \yquant@register@type@tostring{\yquant@register@get@type{#1}} output] {#2};%
- \numdef\idx{\idx+1}%
-}
-
-\protected\long\def\yquant@draw@@output@multi#1{%
- \path[/yquant/every multi output]%
- (\yquant@env@end@xpos, 0pt) -- (\yquant@env@end@xpos, 1cm)%
- node {#1};%
- \numdef\idx{\idx+1}%
-}
-
-\def\yquant@draw@@finalize@ctrl#1{%
- \let\next=\yquant@draw@@finalize@ctrl@single%
- \ifx\yquant@draw@multi#1%
- \let\next=\yquant@draw@@finalize@ctrl@multi%
- \else%
- \ifx\yquant@draw@multiinit#1%
- \let\next=\yquant@draw@@finalize@ctrl@multi%
- \else%
- \ifx\yquant@draw@subcircuit@multi#1%
- \let\next=\yquant@draw@@finalize@ctrl@subcircuit@multi%
- \else%
- \ifx\yquant@draw@subcircuit@single#1%
- \let\next=\yquant@draw@@finalize@ctrl@subcircuit@single%
- \fi%
- \fi%
- \fi%
- \fi%
- \next%
-}
-
-\protected\def\yquant@draw@@finalize@ctrl@single#1#2{%
- \unless\ifyquant@circuit@operator@hasControls%
- \yquant@register@set@x{#1}{\the\dimen2}%
- \fi%
- \eappto\yquant@draw@append{%
- \yquant@draw@callback@wire{#1}%
- }%
-}
-
-\def\yquant@draw@@finalize@ctrl@subcircuit@single#1#2#3{%
- \yquant@draw@@finalize@ctrl@single{#1}{#3}%
-}
-
-\protected\def\yquant@draw@@finalize@ctrl@singleinit#1#2{%
- \eappto\yquant@draw@append{%
- \yquant@draw@callback@wire{#1}%
- }%
-}
-
-\protected\def\yquant@draw@@finalize@ctrl@multi#1#2#3#4#5{%
- \unless\ifyquant@circuit@operator@hasControls{%
- % \yquant@for uses \loop...\repeat and hence redefines \body, which would destroy an outer loop.
- % if we did not draw a control line, the x position has not yet been set. A multi-qubit register might visually extend over multiple registers that are not even part, hence we update them all.
- \yquant@for \yquant@i := #1 to #2 {%
- \yquant@register@set@x\yquant@i{\the\dimen2}%
- }%
- }\fi%
- \let\yquant@register@multi@contiguous=\yquant@draw@@finalize@ctrl@multi@contiguous%
- \ifyquant@circuit@operator@hasControls%
- \ifyquant@config@operator@multi@warn%
- \def\yquant@draw@@finalize@ctrl@multi@contiguous@warn{0}%
- \else%
- \def\yquant@draw@@finalize@ctrl@multi@contiguous@warn{2}%
- \fi%
- \else%
- \def\yquant@draw@@finalize@ctrl@multi@contiguous@warn{2}%
- \fi%
- \cslet{\yquant@prefix finalize@ctrl@draw@appto}\empty%
- #4%
- \eappto\yquant@draw@append{\csname\yquant@prefix finalize@ctrl@draw@appto\endcsname}%
- \csgundef{\yquant@prefix finalize@ctrl@draw@appto}%
-}
-
-\protected\def\yquant@draw@@finalize@ctrl@subcircuit@multi@loop#1{%
+\protected\def\yquant@draw@hspace#1#2{%
\begingroup%
- \edef\tmp{\yquant@draw@callback@wire{#1}}%
- \expandafter%
+ \yquant@register@get@maxxlist\newx{#1}%
+ \dimdef\newx{\newx+#2}%
+ \dimen0=\newx%
+ \let\pgfshapeclippathhorzresult=\empty%
+ \forlistloop\yquant@draw@move@loop{#1}%
\endgroup%
- \expandafter\appto\expandafter\yquant@draw@append\expandafter{\tmp}%
}
-\protected\def\yquant@draw@@finalize@ctrl@subcircuit@multi#1#2#3#4#5#6{%
- % there are no contiguous parts here, don't call the normal @multi
- \unless\ifyquant@circuit@operator@hasControls{%
- % \yquant@for uses \loop...\repeat and hence redefines \body, which would destroy an outer loop.
- % if we did not draw a control line, the x position has not yet been set. A multi-qubit register might visually extend over multiple registers that are not even part, hence we update them all.
- \yquant@for \yquant@i := #1 to #2 {%
- \yquant@register@set@x\yquant@i{\the\dimen2}%
- }%
- }\fi%
- \forlistloop\yquant@draw@@finalize@ctrl@subcircuit@multi@loop{#4}%
-}
-
-\protected\def\yquant@draw@@finalize@ctrl@multiinit#1#2#3#4#5{%
- % this is called from a do loop itself, so preserve \do (but do not enter grouping)
- \let\yquant@register@multi@contiguous=\yquant@draw@@finalize@ctrl@multi@contiguous%
- \ifyquant@circuit@operator@hasControls%
- \ifyquant@config@operator@multi@warn%
- \def\yquant@draw@@finalize@ctrl@multi@contiguous@warn{0}%
- \else%
- \def\yquant@draw@@finalize@ctrl@multi@contiguous@warn{2}%
- \fi%
- \else%
- \def\yquant@draw@@finalize@ctrl@multi@contiguous@warn{2}%
- \fi%
- \cslet{\yquant@prefix finalize@ctrl@draw@appto}\empty%
- #4%
- \eappto\yquant@draw@append{\csname\yquant@prefix finalize@ctrl@draw@appto\endcsname}%
- \csgundef{\yquant@prefix finalize@ctrl@draw@appto}%
-}
-
-\protected\def\yquant@draw@@finalize@ctrl@multi@contiguous#1#2#3{%
- \ifnum\yquant@draw@@finalize@ctrl@multi@contiguous@warn=1 %
- \PackageWarning{yquant.sty}{Ambiguous operation: multiple discontiguous multi-register operations in combination with controls make it hard to visually determine on which registers the gates act on.}%
- % switch the warning off for this group (which is a single operation)
- \yquant@config@operator@multi@warnfalse%
- \def\yquant@draw@@finalize@ctrl@multi@contiguous@warn{2}%
- \else%
- \numdef\yquant@draw@@finalize@ctrl@multi@contiguous@warn{%
- \yquant@draw@@finalize@ctrl@multi@contiguous@warn+1%
- }%
- \fi%
- {% save \body
- \yquant@for \yquant@i := #1 to #2 {{% let inner loop mess up with macros
- \csxappto{\yquant@prefix finalize@ctrl@draw@appto}{%
- \expandafter\yquant@draw@callback@wire\expandafter{\yquant@i}%
- }%
- }}%
- }%
-}
-% END_FOLD \ No newline at end of file
+\protected\def\yquant@draw@move@loop#1{%
+ \yquant@register@set@x{#1}\newx%
+ \yquant@circuit@extendwire{#1}*%
+} \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-env.tex b/graphics/pgf/contrib/yquant/tex/yquant-env.tex
index a9262b957d..96ea7bbac3 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-env.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-env.tex
@@ -1,4 +1,5 @@
\newif\ifyquant@env@lazy
+\newif\ifyquantmeasuring
\protected\def\yquant@envunstar{%
\yquant@env@lazyfalse%
@@ -47,18 +48,17 @@
\yquant@env@begin@generic\yquant%
}
-\long\protected\def\yquant@env@begin@generic#1[#2]{
+\long\protected\def\yquant@env@begin@generic#1[#2]{%
\begingroup%
\let\yquant@parent=\yquant@prefix%
\global\advance\yquant@env by 1 %
\edef\yquant@prefix{yquant@env\the\yquant@env @}%
\ifnum\yquant@env=1 %
+ \yquantmeasuringtrue%
\yquant@env@substikz#1%
- \def\yquant@env@create@x{0pt}%
\global\cslet{\yquant@prefix parameters}\empty%
\else%
\let\yquant@lang@reset@attrs@inputoutput=\yquant@lang@reset@attrs@inputoutput@subcircuit%
- \let\yquant@env@create@x=\yquant@circuit@operator@x%
\global\cslet{\yquant@prefix parameters}\yquant@circuit@subcircuit@param%
\yquant@env@lazyfalse% forbid lazy register creation in subcircuits. We need a proper and in-order declaration of the subcircuit's interface.
\fi%
@@ -67,42 +67,45 @@
\csgdef{\yquant@prefix registers}{0}%
\global\cslet{\yquant@prefix draw}\relax%
\global\cslet{\yquant@prefix outputs}\relax%
- \csdimgdef{\yquant@prefix xmin}{\yquant@env@create@x+\yquant@config@operator@sep}%
\global\cslet{\yquant@prefix subcircuits}\empty%
\global\cslet{\yquant@prefix inonly}\empty%
+ \global\csletcs{\yquant@prefix seamless}{ifyquant@config@circuit@seamless}%
+ \ifdefined\yquant@prevseamless%
+ \cslet{ifyquant@config@circuit@seamless}\yquant@prevseamless%
+ \undef\yquant@prevseamless%
+ \fi%
\csxdef{\yquant@prefix cleanup}{%
\expandafter\noexpand\csname\yquant@prefix registers\endcsname%
\expandafter\noexpand\csname\yquant@prefix draw\endcsname%
\expandafter\noexpand\csname\yquant@prefix outputs\endcsname%
\expandafter\noexpand\csname\yquant@prefix parameters\endcsname%
- \expandafter\noexpand\csname\yquant@prefix xmin\endcsname%
\expandafter\noexpand\csname\yquant@prefix subcircuits\endcsname%
\expandafter\noexpand\csname\yquant@prefix inonly\endcsname%
+ \expandafter\noexpand\csname\yquant@prefix seamless\endcsname%
\expandafter\noexpand\csname\yquant@prefix cleanup\endcsname%
}%
\scope[{/yquant/.cd, #2, /tikz/.cd, /yquant/every circuit}]%
}
\protected\def\yquant@env@end{%
- \letcs\yquant@env@end@registers{\yquant@prefix registers}%
- \ifnum\yquant@env@end@registers>0 %
- % draw all wires
- \yquant@register@get@maxxrange\yquant@env@end@xpos{1}{\yquant@env@end@registers}%
- \ifdim\csname\yquant@prefix xmin\endcsname<%
- \dimexpr\yquant@env@create@x+\yquant@config@operator@sep\relax%
- % to have a symmetric situation, we extend again one separation at the end
- \dimdef\yquant@env@end@xpos{\yquant@env@end@xpos+\yquant@config@operator@sep}%
- \global\cslet{\yquant@prefix xmax}\yquant@env@end@xpos%
- \else%
- % while the outputs need this, the subcircuit doesn't if there are no outputs.
- \global\cslet{\yquant@prefix xmax}\yquant@env@end@xpos%
- \dimdef\yquant@env@end@xpos{\yquant@env@end@xpos+\yquant@config@operator@sep}%
+ \ifnum\csname\yquant@prefix registers\endcsname>0 %
+ \yquant@for \i := 1 to \csname\yquant@prefix registers\endcsname {%
+ \yquant@register@execclear@lastgate{\i}{@end}%
+ }%
+ \csgappto{\yquant@prefix draw}{%
+ \yquant@circuit@endwires%
+ }%
+ \expandafter\unless\expandafter\ifx\csname\yquant@prefix outputs\endcsname\relax%
+ \begingroup%
+ \def\yquant@config@operator@minimum@width{0pt}%
+ \let\yquant@prepare@single=\yquant@prepare@output@single%
+ \let\yquant@prepare@multi=\yquant@prepare@output@multi%
+ \csname\yquant@prefix outputs\endcsname%
+ \endgroup%
\fi%
- \yquant@cleanup@csadd{xmax}%
- \csxappto{\yquant@prefix draw}{%
- \yquant@circuit@endwires{\yquant@env@end@xpos}%
+ \csgappto{\yquant@prefix draw}{%
+ \yquant@circuit@endwires@finalize%
}%
- \csname\yquant@prefix outputs\endcsname%
% also calculate the true y positions
\unless\ifdefined\yquant@parent%
\yquant@env@end@calcypositions%
@@ -139,6 +142,7 @@
\ifyquantdebug%
\csshow{\yquant@prefix draw}%
\fi%
+ \yquantmeasuringfalse%
\csname\yquant@prefix draw\endcsname%
\expandafter\expandafter\expandafter\yquant@cleanup\csname\yquant@prefix cleanup\endcsname|%
\global\yquant@env=0 %
@@ -146,128 +150,342 @@
\endgroup%
}
+\protected\def\ifyquant@env@seamless{%
+ \csname\yquant@prefix seamless\endcsname%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}
+
+\newif\ifyquant@env@end@calcypositions@godeep
\protected\def\yquant@env@end@calcypositions{%
\begingroup%
\dimen4=\yquant@config@register@sep %
- % We know the heights of most gates, but subcircuits are tricky. Since the position of their inner wires depends on the heights of the outer wires, we could not make any assumption about their heights yet. So we now need multiple iterations: First, we fix the positions of our own wires preliminarily. Then, we iterate through all subcircuits at the first level, place their wires appropriately and try to align input and output. In doing so, we recognize when there's not enough space at an outer wire. If this is the case, we enlarge the outer wire's height appropriately and restart alignment from the outmost level. If everything is proper, we start aligning at the next level.
- \yquant@env@end@calcypositions@toplevel1%
+ \yquant@sort@clear%
+ % Setup...
+ \yquant@env@end@calcypositions@setup1%
+ % and go!
+ \let\redolist=\empty%
+ \yquant@env@end@calcypositions@godeeptrue%
+ \yquant@env@end@calcypositions@run1%
+ \yquant@env@end@calcypositions@godeepfalse%
+ \yquant@env@end@calcypositions@redo%
+% % The macros now set up performed all the proper and unambiguous justification. After that, we will also need to take care of the multi gates. We expect that for most of all multi gates, we already have enough space. But sometimes, this may not be the case, so we need to increase overall spacing and re-evaluate all spacing. In order to get a proper balanced layout, we start with the largest enlargement that is required. Every enlargement step will equally distribute the registers in between. Starting with the largest one, this is likely to also solve issues with smaller ones.
+ \yquant@env@end@calcypositions@multi%
% Turn the preliminary positions into true ones at every level.
\yquant@env@end@setypositions1%
\endgroup%
}
-\protected\def\yquant@env@end@calcypositions@loop#1{%
- % \yquant@parent has to be set already
+\protected\def\yquant@env@end@calcypositions@setup#1{%
\def\yquant@prefix{yquant@env#1@}%
- % #1 now holds the id of the subcircuit. Find the first input.
- \edef\firstinput{%
- \expandafter\expandafter\expandafter%
- \@firstoftwo\csname\yquant@prefix firstinput\endcsname%
+ % Our problem is a linear program. To solve it, we proceed iteratively: We define macros for each subcircuit that, based on the current positions, calculate the allowed positions.
+ \letcs\max{\yquant@prefix registers}%
+ % BEGIN_FOLD find out about the first and last register with maps
+ \let\firstinout=\relax%
+ \let\lastinout=\relax%
+ \yquant@for \i := 1 to \max {%
+ \ifcsname\yquant@prefix registermap@\i\endcsname%
+ \ifx\firstinout\relax%
+ \let\firstinout=\i%
+ \fi%
+ \let\lastinout=\i%
+ \fi%
}%
- \edef\lastinput{%
- \expandafter\expandafter\expandafter%
- \@firstoftwo\csname\yquant@prefix lastinput\endcsname%
+ % END_FOLD
+ % BEGIN_FOLD Take care with internal registers before the first inout
+ % We could in principle merge the loop to define \firstinout/\lastinout, but nested for loops are problematic.
+ \ifx\firstinout\relax%
+ \dimen0=\yquant@register@get@height1 %
+ \def\i{1}%
+ \else%
+ \edef\outerlevel{\yquant@register@get@parent{\firstinout}}%
+ \dimen0=\csname yquant@env\expandafter\@firstoftwo\outerlevel @env@endy@\expandafter\@secondoftwo\outerlevel\endcsname\relax%
+ \ifnum\firstinout>1 %
+ % We need to take special care with internal registers if the first one is not a connected one. In this case, the internal registers will grow upwards instead... Since the y position may change in both upward and downward direction, we need to have an additional bookkeeping value that stores the last y position of the first item in this subcircuit.
+ \csedef{\yquant@prefix env@endyprev}{\the\dimen0}%
+ \yquant@fordown \i := \numexpr\firstinout-1\relax downto 1 {%
+ \advance \dimen0 by -\dimexpr%
+ \expandafter\yquant@register@get@height\expandafter{\the\numexpr\i+1\relax}+%
+ \dimen4+%
+ \yquant@register@get@depth\i%
+ \relax%
+ % We know for sure there's none with a parent in this loop
+ \csedef{\yquant@prefix env@endy@\i}{\the\dimen0}%
+ \csedef{yquant@env@end@calcypositions@#1@\i}{%
+ \advance\dimen0 by -\dimexpr%
+ \noexpand\yquant@register@get@height{\the\numexpr\i+1\relax}+%
+ \dimen4+%
+ \noexpand\yquant@register@get@depth{\i}%
+ \relax%
+ % The first connected wire might have been re-aligned, which destroys all our knowledge. \dimen2 will contain the relative shift that we must take into account.
+ % Make sure the current y position is at most the previous y position + previous depth + separation + current height.
+ \noexpand\ifdim\dimexpr\dimen0-\dimen2\relax<\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname\space%
+ \edef\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname{\noexpand\the\dimen0}%
+ \ifinlist{#1}\noexpand\redolist\relax{%
+ \listadd\noexpand\redolist{#1}%
+ }%
+ \noexpand\else%
+ \noexpand\ifdim\dimen2=0pt %
+ % No change at all
+ \dimen0=\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname\space%
+ \noexpand\else%
+ % We must still overwrite the position macro due to the shift
+ \dimen0=\dimexpr\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname+\dimen2\relax%
+ \edef\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname{\noexpand\the\dimen0}%
+ \ifinlist{#1}\noexpand\redolist\relax{%
+ \listadd\noexpand\redolist{#1}%
+ }%
+ \noexpand\fi
+ \noexpand\fi%
+ \unless\ifx\i1%
+ \expandafter\noexpand\csname yquant@env@end@calcypositions@#1@\the\numexpr\i-1\relax\endcsname%
+ \fi%
+ }%
+ }%
+ \fi%
+ \let\i=\firstinout%
+ \fi%
+ % END_FOLD
+ % BEGIN_FOLD Define initial macro
+ \csedef{yquant@env@end@calcypositions@#1}{%
+ \def\noexpand\yquant@prefix{\yquant@prefix}%
+ \dimen0=\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname\relax%
+ \listremove\noexpand\redolist{#1}%
+ \expandafter\noexpand\csname yquant@env@end@calcypositions@#1@\i\endcsname%
+ \expandafter\unless\expandafter\ifx\csname\yquant@prefix subcircuits\endcsname\empty%
+ \ifinlist{#1}\noexpand\redolist{%
+ \noexpand\forlistloop%
+ \yquant@env@end@calcypositions@run%
+ \expandafter\noexpand\csname\yquant@prefix subcircuits\endcsname%
+ }{%
+ \noexpand\ifyquant@env@end@calcypositions@godeep%
+ \noexpand\forlistloop%
+ \yquant@env@end@calcypositions@run%
+ \expandafter\noexpand\csname\yquant@prefix subcircuits\endcsname%
+ \noexpand\fi%
+ }%
+ \fi%
}%
- % we already made sure during in \yquant@circuit@subcircuit that there is enough space above and below the subcircuit. Still, the wires need to be positioned. However, we will first deal with all intermediate wires, which need to be placed by means of shifts - there is no direct correspondence to heights or depths of parent wires any more.
- \ifnum\firstinput<\numexpr\lastinput-1\relax%
- \dimen0=\dimexpr%
- \csname y@\csname\yquant@prefix registermap@\firstinput\endcsname\endcsname+%
- \yquant@register@get@depth\firstinput+\dimen4%
- \relax%
- \yquant@for \i := \numexpr\firstinput+1\relax to \lastinput {%
- \advance\dimen0 by \yquant@register@get@height\i\relax%
+ % END_FOLD
+ % BEGIN_FOLD Set up chain of other macros
+ % We set up a chain of position evaluation macros. We start with the first [external] register in the outermost circuit; it is supposed to call the evaluation macro of its successor. Next, we iterate through all subcircuits (recursively). Whenever we find a register that is mapped to an outer one, we take appropriate measures.
+ \yquant@for \i := \i to \max {%
+ \ifcsname\yquant@prefix registermap@\i\endcsname%
+ % \outery = env@endy macro of parent wire
+ \edef\outerlevel{\yquant@register@get@parent{\i}}%
+ \edef\outery{%
+ \expandafter\noexpand\csname yquant@env\expandafter\@firstoftwo\outerlevel @env@endy@\expandafter\@secondoftwo\outerlevel\endcsname%
+ }%
+ % in this initialization step, we only check in one direction
+ \ifdim\dimen0<\outery\space%
+ \dimen0=\outery\space%
+ \fi%
+ \fi%
+ \csedef{\yquant@prefix env@endy@\i}{\the\dimen0}%
+ \unless\ifx\i\max%
+ \advance \dimen0 by \dimexpr%
+ \yquant@register@get@depth\i+%
+ \dimen4+%
+ \expandafter\yquant@register@get@height\expandafter{\the\numexpr\i+1\relax}%
+ \relax%
+ \fi%
+ \csedef{yquant@env@end@calcypositions@#1@\i}{%
+ % make sure the current y position is at least the previous y position + previous depth + separation + current height
+ \noexpand\ifdim\dimen0>\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname\space%
+ \edef\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname{\noexpand\the\dimen0}%
+ \ifinlist{#1}\noexpand\redolist\relax{%
+ \listadd\noexpand\redolist{#1}%
+ }%
+ \noexpand\else%
+ \dimen0=\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname\space%
+ \noexpand\fi%
+ % now \dimen0 holds the current y position of register \i
+ % BEGIN_FOLD map
\ifcsname\yquant@prefix registermap@\i\endcsname%
- % this is an input: do we have enough space by using the outer position?
- \letcs\outername{\yquant@prefix registermap@\i}%
- \letcs\outery{y@\outername}%
- \ifdim\dimen0>\outery\relax%
- % re-aligning the outer positions is required
- \ifcsname y+@\outername\endcsname%
- \csdimdef{y+@\outername}%
- {\csname y+@\outername\endcsname+\dimen0-\outery}%
+ % if this is an in/out register, put it at the same position as the outer one
+ \noexpand\ifdim\dimen0<\expandafter\noexpand\outery\space%
+ \dimen0=\expandafter\noexpand\outery\space%
+ \let\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname\expandafter\noexpand\outery%
+ \ifinlist{#1}\noexpand\redolist\relax{%
+ \listadd\noexpand\redolist{#1}%
+ }%
+ \noexpand\fi%
+ \noexpand\ifdim\dimen0>\expandafter\noexpand\outery\space%
+ \let\expandafter\noexpand\outery\expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname%
+ \ifinlist{\expandafter\@firstoftwo\outerlevel}\noexpand\redolist\relax{%
+ \listadd\noexpand\redolist{\expandafter\@firstoftwo\outerlevel}%
+ }%
+ \noexpand\fi%
+ \ifx\i\firstinout%
+ % This is the first in/out register. Find all previous internal registers and make sure the parent has enough height.
+ \ifnum\i>1 %
+ % Here, we must now call the (backwards-running) alignment macros of the previous registers. First fill \dimen2 with the relative shift of this wire's position with respect to the last iteration.
+ \dimen2=\dimexpr\dimen0-\expandafter\noexpand\csname\yquant@prefix env@endyprev\endcsname\relax%
+ % Store \dimen0...
+ \dimen6=\dimen0 %
+ % ...call previous calculations...
+ \expandafter\noexpand\csname yquant@env@end@calcypositions@#1@\the\numexpr\i-1\relax\endcsname%
+ % ...restore...
+ \dimen0=\dimen6 %
+ % ...and backup its value for the next iteration.
+ \edef\expandafter\noexpand\csname\yquant@prefix env@endyprev\endcsname{\noexpand\the\dimen0}%
+ \expandafter\noexpand\csname ifdim\endcsname\noexpand\yquant@register@peek@height\outerlevel<\dimexpr%
+ \noexpand\yquant@register@get@height1+%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname-%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@1\endcsname%
+ \relax%
+ \yquant@register@set@height@remote\outerlevel{\noexpand\the\dimexpr%
+ \noexpand\yquant@register@get@height1+%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname-%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@1\endcsname%
+ }%
\else%
- \csdimdef{y+@\outername}{\dimen0-\outery}%
+ \expandafter\noexpand\csname ifdim\endcsname\noexpand\yquant@register@peek@height\outerlevel<%
+ \noexpand\yquant@register@get@height1 %
+ \yquant@register@set@height@remote\outerlevel{%
+ \noexpand\yquant@register@get@height1%
+ }%
\fi%
- \let\yquant@env@end@calcypositions@redo=\relax%
+ \ifinlist{\expandafter\@firstoftwo\outerlevel}\noexpand\redolist\relax{%
+ \listadd\noexpand\redolist{\expandafter\@firstoftwo\outerlevel}%
+ }%
+ \expandafter\noexpand\csname fi\endcsname%
+ \fi%
+ \ifx\i\lastinout%
+ % this is the last in/out register. Find all following internal registers and make sure the parent has enough depth.
+ \ifnum\i<\max\space%
+ \expandafter\noexpand\csname ifdim\endcsname\noexpand\yquant@register@peek@depth\outerlevel<\dimexpr%
+ \noexpand\yquant@register@get@depth{\max}+%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@\max\endcsname-%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname%
+ \relax%
+ \yquant@register@set@depth@remote\outerlevel{\noexpand\the\dimexpr%
+ \noexpand\yquant@register@get@depth{\max}+%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@\max\endcsname-%
+ \expandafter\noexpand\csname\yquant@prefix env@endy@\i\endcsname%
+ }%
+ \else%
+ \expandafter\noexpand\csname ifdim\endcsname\noexpand\yquant@register@peek@depth\outerlevel<%
+ \noexpand\yquant@register@get@depth{\max} %
+ \yquant@register@set@depth@remote\outerlevel{%
+ \noexpand\yquant@register@get@depth{\max}%
+ }%
+ \fi%
+ \ifinlist{\expandafter\@firstoftwo\outerlevel}\noexpand\redolist\relax{%
+ \listadd\noexpand\redolist{\expandafter\@firstoftwo\outerlevel}%
+ }%
+ \expandafter\noexpand\csname fi\endcsname%
\fi%
- \else%
- \csedef{y@\yquant@prefix register@\i}{\the\dimen0}%
\fi%
- \ifdefined\yquant@env@end@calcypositions@redo%
- \expandafter\yquant@for@break%
- \else%
- \advance\dimen0 by \dimexpr\yquant@register@get@depth\i+\dimen4\relax%
+ % END_FOLD
+ \unless\ifx\i\max%
+ \advance\dimen0 by \dimexpr%
+ \noexpand\yquant@register@get@depth{\i}+%
+ \dimen4+%
+ \noexpand\yquant@register@get@height{\the\numexpr\i+1\relax}%
+ \relax%
+ \expandafter\noexpand\csname yquant@env@end@calcypositions@#1@\the\numexpr\i+1\relax\endcsname%
\fi%
}%
+ % for every multi-register space requirement, install the requirement in the sortlist
+ \edef\multidata{\yquant@register@get@multispace\i}%
+ \forlistloop{\yquant@env@end@calcypositions@setupmulti{#1}}\multidata%
+ }%
+ % END_FOLD
+ \forlistcsloop\yquant@env@end@calcypositions@setup{\yquant@prefix subcircuits}%
+}
+
+\protected\def\yquant@env@end@calcypositions@setupmulti#1#2{%
+ \yquant@sort@eadd{%
+ {#1}%
+ {\i}%
+ {\expandafter\@firstoftwo\yquant@env@end@calcypositions@setupmulti@group#2\yquant@end}%
+ {\expandafter\@secondoftwo\yquant@env@end@calcypositions@setupmulti@group#2\yquant@end}%
+ }%
+}
+
+\def\yquant@env@end@calcypositions@setupmulti@group#1:#2\yquant@end{{#1}{#2}}
+
+\protected\def\yquant@env@end@calcypositions@run#1{%
+ \csname yquant@env@end@calcypositions@#1\endcsname%
+}
+
+\protected\def\yquant@env@end@calcypositions@redo{%
+ \forlistloop\yquant@env@end@calcypositions@run\redolist%
+ \unless\ifx\redolist\empty%
+ \expandafter\yquant@env@end@calcypositions@redo%
\fi%
- \unless\ifdefined\yquant@env@end@calcypositions@redo%
- % sounds good, no readjustments necessary. Now transfer the wires above and below in the appropriate macros.
- \ifnum\firstinput>1 %
- \dimen0=\dimexpr%
- \csname y@\csname\yquant@prefix registermap@\firstinput\endcsname\endcsname-%
- \yquant@register@get@height\firstinput-\dimen4%
- \relax%
- \yquant@fordown \i := \numexpr\firstinput-1\relax downto 1 {%
- \advance\dimen0 by -\yquant@register@get@depth\i\relax%
- \csedef{y@\yquant@prefix register@\i}{\the\dimen0}%
- \advance\dimen0 by -\dimexpr\yquant@register@get@height\i+\dimen4\relax%
- }%
- \fi%
- \ifnum\lastinput<\csname\yquant@prefix registers\endcsname%
- \dimen0=\dimexpr%
- \csname y@\csname\yquant@prefix registermap@\lastinput\endcsname\endcsname+%
- \yquant@register@get@depth\lastinput+\dimen4%
- \relax%
- \yquant@for \i := \numexpr\lastinput+1\relax to \csname\yquant@prefix registers\endcsname {%
- \advance\dimen0 by \yquant@register@get@height\i\relax%
- \csedef{y@\yquant@prefix register@\i}{\the\dimen0}%
- \advance\dimen0 by \dimexpr\yquant@register@get@depth\i+\dimen4\relax%
- }%
- \fi%
- \fi%
- \ifdefined\yquant@env@end@calcypositions@redo%
- % forget every plan about going deeper, restart.
- \expandafter\listbreak%
- \else%
- \expandafter\yquant@env@end@calcypositions@subcircuits%
- \fi%
}
-\protected\def\yquant@env@end@calcypositions@subcircuits{%
- \let\yquant@parent=\yquant@prefix%
- \forlistcsloop\yquant@env@end@calcypositions@loop{\yquant@prefix subcircuits}%
- \ifdefined\yquant@env@end@calcypositions@redo%
- \expandafter\listbreak%
+\def\yquant@env@end@calcypositions@multiheight#1#2#3#4{%
+ \dimexpr%
+ \csname yquant@env#1@env@endy@#3\endcsname-
+ \csname yquant@env#1@env@endy@#2\endcsname+%
+ \yquant@register@peek@height{#1}{#2}+%
+ \yquant@register@peek@depth{#1}{#3}%
+ \relax%
+}
+
+\def\yquant@env@end@calcypositions@sortmulti#1#2{%
+ % sort, in descending order, by the amount of missing space
+ \ifdim\dimexpr\@fourthoffour#2-\yquant@env@end@calcypositions@multiheight#2\relax>%
+ \dimexpr\@fourthoffour#1-\yquant@env@end@calcypositions@multiheight#1\relax%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
\fi%
}
-\protected\def\yquant@env@end@calcypositions@toplevel{%
- \def\yquant@prefix{yquant@env1@}%
- \dimen0=0pt %
- \yquant@for \i := 1 to \yquant@env@end@registers {%
- % we do not care if the wire is present for the y position
- \advance\dimen0 by \yquant@register@get@height\i\relax%
- \ifcsname y+@\yquant@prefix register@\i\endcsname%
- \advance\dimen0 by \csname y+@\yquant@prefix register@\i\endcsname\relax%
+\protected\def\yquant@env@end@calcypositions@multi{%
+ % We will always only operate on the first item in the sortlist, which is determined anew in each iteration - as changes due to this first item will potentially affect all others, including which one is the next...
+ \yquant@sort@findfirst\yquant@env@end@calcypositions@sortmulti\first%
+ \unless\ifx\first\empty%
+ \dimdef\missing{%
+ \expandafter\@fourthoffour\first-%
+ \expandafter\yquant@env@end@calcypositions@multiheight\first%
+ }%
+ % maybe this was already resolved?
+ \ifdim\missing>0pt %
+ \edef\yquant@prefix{yquant@env\expandafter\@firstoffour\first @}%
+ \numdef\divisor{\expandafter\@thirdoffour\first-\expandafter\@secondoffour\first}% not +1, since we will not move the first element
+ \dimdef\add{1sp+\dimexpr\missing-1sp\relax/\divisor}%
+ \let\inc=\add%
+ \edef\max{\expandafter\@thirdoffour\first}%
+ \ifnum\expandafter\@secondoffour\first<\max\relax%
+ \yquant@for \i := \numexpr\expandafter\@secondoffour\first+1\relax to \max {%
+ \csdimdef{\yquant@prefix env@endy@\i}{\csname\yquant@prefix env@endy@\i\endcsname+\add}%
+ \dimdef\add{\add+\inc}%
+ }%
+ \fi%
+ \yquant@env@end@calcypositions@godeeptrue%
+ \csname yquant@env@end@calcypositions@\expandafter\@firstoffour\first\endcsname%
+ \yquant@env@end@calcypositions@godeepfalse%
+ \yquant@env@end@calcypositions@redo%
+ \expandafter\expandafter\expandafter\yquant@env@end@calcypositions@multi%
\fi%
- \csedef{y@\yquant@prefix register@\i}{\the\dimen0}%
- \advance\dimen0 by \dimexpr\yquant@register@get@depth\i+\dimen4\relax%
- }%
- \undef\yquant@env@end@calcypositions@redo%
- \let\yquant@parent=\yquant@prefix%
- \forlistcsloop\yquant@env@end@calcypositions@loop{\yquant@prefix subcircuits}%
- \ifdefined\yquant@env@end@calcypositions@redo%
- \expandafter\yquant@env@end@calcypositions@toplevel%
\fi%
}
\protected\def\yquant@env@end@setypositions#1{%
\def\yquant@prefix{yquant@env#1@}%
- \yquant@for \i := 1 to \csname\yquant@prefix registers\endcsname {%
- \unless\ifcsname\yquant@prefix registermap@\i\endcsname%
- \yquant@register@set@y\i{-\csname y@\yquant@prefix register@\i\endcsname}%
- \fi%
- }%
+ \ifyquantdebug%
+ \yquant@for \i := 1 to \csname\yquant@prefix registers\endcsname {%
+ \ifcsname\yquant@prefix registermap@\i\endcsname%
+ \message{^^J y(#1, \i): external}%
+ \else%
+ \message{^^J y(#1, \i): \csname\yquant@prefix env@endy@\i\endcsname}%
+ \yquant@register@set@y\i{-\csname\yquant@prefix env@endy@\i\endcsname}%
+ \fi%
+ }%
+ \else%
+ \yquant@for \i := 1 to \csname\yquant@prefix registers\endcsname {%
+ \unless\ifcsname\yquant@prefix registermap@\i\endcsname%
+ \yquant@register@set@y\i{-\csname\yquant@prefix env@endy@\i\endcsname}%
+ \fi%
+ }%
+ \fi%
\forlistcsloop\yquant@env@end@setypositions{\yquant@prefix subcircuits}%
}
@@ -303,6 +521,9 @@
\let\path=\tikz@command@path%
\let\tikz@finish=\yquant@env@substikz@finish%
\let\tikz@lib@scope@check=\yquant@env@substikz@scopecheck%
+ % we rely on the origin being the origin
+ \pgf@pt@x=0pt %
+ \pgf@pt@y=0pt %
}
% substitute the tikz commands (defined in \tikz@installcommands) so that they can be arbitrarily interleaved with yquant code. We patch \path, \scope, \endscope, \stopscope, their internal complements, and also patch \yquantset.
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-lang.tex b/graphics/pgf/contrib/yquant/tex/yquant-lang.tex
index 2ea08e8b16..f19ebfcc38 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-lang.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-lang.tex
@@ -14,21 +14,66 @@
\let\yquant@lang@attr@input=\relax%
\undef\yquant@lang@attr@output%
},%
- in/.default=\regidx,%
out/.code={%
\undef\yquant@lang@attr@input%
\let\yquant@lang@attr@output=\relax%
},%
- out/.default=\regidx,%
inout/.code={%
\let\yquant@lang@attr@input=\relax%
\let\yquant@lang@attr@output=\relax%
+ },%
+ frameless/.code={%
+ \pgfkeysalso{/yquant/operators/subcircuit/frameless}%
+ \appto\yquant@attrs@remaining{,/yquant/operators/subcircuit/frameless}%
+ },%
+ seamless/.code={%
+ \pgfkeysalso{/yquant/operators/subcircuit/seamless}%
+ \appto\yquant@attrs@remaining{,/yquant/operators/subcircuit/seamless}%
+ },%
+ direct control/.code={%
+ \let\yquant@lang@attr@directcontrol=\relax%
+ },%
+ indirect control/.code={%
+ \undef\yquant@lang@attr@directcontrol%
}%
- inout/.default=\regidx,%
}
\yquant@langhelper@declare@attr@global{%
- name/.store in=\yquant@lang@attr@name%
-}
+ name/.store in=\yquant@lang@attr@name,%
+ overlay/.code={%
+ \ifstrequal{#1}{true}{%
+ \yquant@lang@attr@overlay@multitrue%
+ \yquant@lang@attr@overlay@heighttrue%
+ \yquant@lang@attr@overlay@depthtrue%
+ }{%
+ \ifstrequal{#1}{false}{%
+ % Why??? This is the default and should always be reset automatically!
+ \yquant@lang@attr@overlay@multifalse%
+ \yquant@lang@attr@overlay@heightfalse%
+ \yquant@lang@attr@overlay@depthfalse%
+ }{%
+ \pgfqkeys{/yquant/global attrs/overlay}{#1}%
+ }%
+ }%
+ },%
+ overlay/.default=true,%
+ overlay/multi/.is if=yquant@lang@attr@overlay@multi,%
+ overlay/m/.forward to=/yquant/global attrs/overlay/multi,%
+ overlay/height/.is if=yquant@lang@attr@overlay@height,%
+ overlay/ht/.forward to=/yquant/global attrs/overlay/height,%
+ overlay/h/.forward to=/yquant/global attrs/overlay/height,%
+ overlay/depth/.is if=yquant@lang@attr@overlay@depth,%
+ overlay/dp/.forward to=/yquant/global attrs/overlay/depth,%
+ overlay/d/.forward to=/yquant/global attrs/overlay/depth,%
+ overlay/single/.code={\pgfkeysalso{%
+ /yquant/global attrs/overlay/height={#1},%
+ /yquant/global attrs/overlay/depth={#1}%
+ }},%
+ overlay/single/.default=true,%
+ overlay/s/.forward to=/yquant/global attrs/overlay/single,%
+}
+\newif\ifyquant@lang@attr@overlay@multi%
+\newif\ifyquant@lang@attr@overlay@height%
+\newif\ifyquant@lang@attr@overlay@depth%
\protected\def\yquant@lang@reset@attrs{%
\undef\yquant@lang@attr@value%
@@ -36,6 +81,9 @@
\undef\yquant@lang@attr@type%
\yquant@lang@reset@attrs@inputoutput%
\let\yquant@lang@attr@name=\empty%
+ \yquant@lang@attr@overlay@multifalse%
+ \yquant@lang@attr@overlay@heightfalse%
+ \yquant@lang@attr@overlay@depthfalse%
}
\protected\def\yquant@lang@reset@attrs@inputoutput{%
@@ -50,7 +98,7 @@
% END_FOLD
% BEGIN_FOLD Declaration of registers
-\yquant@langhelper@declare@command@uncontrolled{nobit}\yquant@lang@@nobit
+\yquant@langhelper@declare@command@create{nobit}\yquant@lang@@nobit
\yquant@langhelper@setup@attrs{nobit}{}{ancilla,out}
\def\yquant@lang@@nobit#1{%
\let\yquant@lang@create@type=\yquant@register@type@none%
@@ -64,7 +112,7 @@
\yquant@lang@create@parse@name#1[;%
}
-\yquant@langhelper@declare@command@uncontrolled{qubit}\yquant@lang@@qubit
+\yquant@langhelper@declare@command@create{qubit}\yquant@lang@@qubit
\yquant@langhelper@setup@attrs{qubit}{}{after,value,ancilla,in,out,inout}
\def\yquant@lang@@qubit#1{%
\let\yquant@lang@create@type=\yquant@register@type@q%
@@ -75,18 +123,18 @@
\yquant@lang@create@parse@name#1[;%
}
-\yquant@langhelper@declare@command@uncontrolled{cbit}\yquant@lang@@cbit
+\yquant@langhelper@declare@command@create{cbit}\yquant@lang@@cbit
\yquant@langhelper@setup@attrs{cbit}{}{after,value,ancilla,in,out,inout}
\def\yquant@lang@@cbit#1{%
\let\yquant@lang@create@type=\yquant@register@type@c%
- \def\yquant@lang@create@style{qubit}%
+ \def\yquant@lang@create@style{cbit}%
\unless\ifdefined\yquant@lang@attr@value%
\let\yquant@lang@attr@value=\yquant@config@register@default@name%
\fi%
\yquant@lang@create@parse@name#1[;%
}
-\yquant@langhelper@declare@command@uncontrolled{qubits}\yquant@lang@@qubits
+\yquant@langhelper@declare@command@create{qubits}\yquant@lang@@qubits
\yquant@langhelper@setup@attrs{qubits}{}{after,value,ancilla,in,out,inout}
\def\yquant@lang@@qubits#1{%
\let\yquant@lang@create@type=\yquant@register@type@qs%
@@ -136,193 +184,87 @@
\else%
\def\regidx{\reg[\idx]}%
\fi%
- % determine x position
- \ifdefined\yquant@lang@attr@after%
- \yquant@register@get@maxxlist\yquant@lang@create@x\yquant@lang@attr@after%
- \ifdefined\yquant@lang@attr@input%
- \PackageError{yquant.sty}{An input register cannot be created with `after` attribute}{}%
+ \numdef\yquant@circuit@operator@mintarget{\csname\yquant@prefix registers\endcsname+1}%
+ % create the registers
+ \begingroup%
+ % if we have the after attribute, we start with a discarded wire
+ \ifdefined\yquant@lang@attr@after%
+ \ifdefined\yquant@lang@attr@input%
+ \PackageError{yquant.sty}{An input register cannot be created with `after` attribute}{}%
+ \fi%
+ \let\yquant@lang@create@type=\yquant@register@type@none%
\fi%
+ \yquant@for \idx := \idx to \numexpr \len -1\relax {%
+ \yquant@prepare@create\reg\idx\yquant@lang@create@type%
+ }%
+ \endgroup%
+ % gather details about the created registers
+ \letcs\yquant@circuit@operator@maxtarget{\yquant@prefix registers}%
+ \numdef\yquant@circuit@operator@numtarget{\yquant@circuit@operator@maxtarget-\yquant@circuit@operator@mintarget+1}%
+ \edef\yquant@circuit@operator@targets{%
+ \yquant@list@range%
+ \yquant@circuit@operator@mintarget%
+ \yquant@circuit@operator@maxtarget%
+ }%
+ \let\yquant@circuit@operator@pctrls=\empty%
+ \def\yquant@circuit@operator@minpctrl{2147483647}%
+ \def\yquant@circuit@operator@maxpctrl{0}%
+ \let\yquant@circuit@operator@numpctrl=\yquant@circuit@operator@maxpctrl%
+ \let\yquant@circuit@operator@nctrls=\empty%
+ \let\yquant@circuit@operator@minnctrl=\yquant@circuit@operator@minpctrl%
+ \let\yquant@circuit@operator@maxnctrl=\yquant@circuit@operator@maxpctrl%
+ \let\yquant@circuit@operator@numnctrl=\yquant@circuit@operator@numpctrl%
+ \let\yquant@circuit@operator@minctrl=\yquant@circuit@operator@mintarget%
+ \let\yquant@circuit@operator@maxctrl=\yquant@circuit@operator@maxtarget%
+ % if we have the after attribute, we fake an align gate
+ \ifdefined\yquant@lang@attr@after%
+ \edef\jointindices{\yquant@circuit@operator@targets\yquant@lang@attr@after}%
+ \yquant@circuit@align\jointindices%
+ % and we also need to change the wire after the alignment
+ \let\yquant@circuit@settype@to=\yquant@lang@create@type%
+ \let\yquant@prepare@callback@prepare=\yquant@circuit@settype@prepare%
+ \let\yquant@prepare@callback@draw=\yquant@circuit@settype%
+ \expandafter\@thirdofthree%
\else%
- \let\yquant@lang@create@x=\yquant@env@create@x%
+ \expandafter\@firstofone%
\fi%
- \begingroup%
+ % unless there is no name, no text and no after attribute, we now need an init gate
+ {%
+ \ifx\yquant@lang@attr@value\empty%
+ \expandafter\@firstofone%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ }%
+ {%
\ifx\yquant@lang@attr@name\empty%
- \let\yquant@lang@create@name=\empty%
+ \expandafter\@gobble%
\else%
- \def\yquant@lang@create@name{\yquant@lang@attr@name-\idx}%
+ \expandafter\@firstofone%
\fi%
- % pre-set y position
- \yquant@for \idx := \idx to \numexpr \len -1\relax {%
- \ifdefined\yquant@lang@attr@input%
- \expandafter\yquant@list@gdequeue\csname \yquant@prefix parameters\endcsname\outermap%
- \ifx\outermap\empty%
- \PackageError{yquant.sty}{Invalid subcircuit parameter count}%
- {No outer register available for input register `\reg[\idx]`.}%
- \fi%
- \csxappto{\yquant@prefix draw}{%
- \yquant@lang@create@check@input{\outermap}{\yquant@lang@create@type}%
- {\reg[\idx]}%
- }%
- \unless\ifdefined\yquant@lang@attr@output%
- \listcsxadd{\yquant@prefix inonly}%
- {\the\numexpr\csname\yquant@prefix registers\endcsname+1\relax}%
- \fi%
- \yquant@register@alias%
- \yquant@lang@create@type%
- \yquant@lang@create@x%
- \reg\idx\outermap%
- \else%
- \ifdefined\yquant@lang@attr@output%
- \expandafter\yquant@list@gdequeue\csname\yquant@prefix parameters\endcsname\outermap%
- \ifx\outermap\empty%
- \PackageError{yquant.sty}{Invalid subcircuit parameter count}%
- {No outer register available for output register `\reg`.}%
- \fi%
- \csxappto{\yquant@prefix draw}{%
- \yquant@lang@create@check@output{\outermap}{\reg[\idx]}%
- }%
- \yquant@register@alias%
- \yquant@lang@create@type%
- \yquant@lang@create@x%
- \reg\idx\outermap%
- \else%
- \yquant@register@define%
- \yquant@lang@create@type%
- \yquant@lang@create@x%
- \reg\idx%
- \fi%
- \fi%
- % First determine the actual height by a virtual draw command
- \protected@edef\trimmedvalue{\trim@spaces{\yquant@lang@attr@value}}%
- \unless\ifx\empty\trimmedvalue%
- \pgfinterruptboundingbox%
- \yquant@env@virtualize@path%
- \edef\cmd{%
- \noexpand\path%
- (\yquant@lang@create@x, 0pt)%
- node[/yquant/every label, /yquant/every initial label,%
- /yquant/every \yquant@lang@create@style\space label%
- \ifdefined\yquant@lang@attr@input, /yquant/every input label\fi]%
- {\unexpanded\expandafter{\trimmedvalue}};%
- }%
- \cmd%
- \ifdim\pgf@picminx<\csname\yquant@prefix xmin\endcsname%
- \csxdef{\yquant@prefix xmin}{\the\pgf@picminx}%
- \fi%
- \expandafter\yquant@register@update@height%
- \csname\yquant@prefix registers\endcsname%
- {\the\pgf@picmaxy}%
- \expandafter\yquant@register@update@depth%
- \csname\yquant@prefix registers\endcsname%
- {\the\dimexpr-\pgf@picminy\relax}%
- \endpgfinterruptboundingbox%
- \fi%
- % Prepare to shipout
- \csxappto{\yquant@prefix draw}{%
- \yquant@lang@create@draw{\csname\yquant@prefix registers\endcsname}%
- {\yquant@lang@create@x}%
- {\yquant@lang@create@style}%
- \ifdefined\yquant@lang@attr@input1\else0\fi%
- {\unexpanded\expandafter{\trimmedvalue}}%
- {\yquant@lang@create@name}%
- \unless\ifdefined\yquant@lang@attr@input%
- \ifdefined\yquant@lang@attr@output%
- \yquant@circuit@flushwire%
- {\csname\yquant@prefix registers\endcsname}%
- \yquant@register@set@type%
- {\csname\yquant@prefix registers\endcsname}%
- \yquant@lang@create@type%
- \fi%
- \fi%
+ }%
+ {%
+ % there are no multi inits in this context
+ \preto\yquant@attrs@remaining{internal/move label,}%
+ \def\yquant@config@operator@minimum@width{0pt}%
+ \unless\ifx\yquant@lang@attr@value\empty%
+ % make sure to immediately remove the "clear" marker again if we have a text
+ \yquant@for \i := \yquant@circuit@operator@mintarget to \yquant@circuit@operator@maxtarget {%
+ \yquant@register@execclear@lastgate{\i}{init}%
}%
- }%
+ \fi%
+ \expandafter\yquant@prepare%
+ \expandafter{\yquant@lang@attr@value}%
+ {/yquant/every label, /yquant/every initial label,%
+ /yquant/every \yquant@lang@create@style\space label,%
+ \ifnum\yquant@compat<2 \ifdefined\yquant@lang@attr@input /yquant/every input label\fi\fi}%
\unless\ifx\yquant@lang@attr@name\empty%
\ifnum\len=1 %
\csxappto{\yquant@prefix draw}%
{\yquant@draw@alias{\yquant@lang@attr@name}}%
\fi%
\fi%
- \endgroup%
-}
-
-\protected\def\yquant@lang@create@check@input#1#2#3{%
- \begingroup%
- \let\yquant@prefix=\yquant@parent%
- \unless\if#2\yquant@register@get@type{#1}%
- \PackageError{yquant.sty}{Subcircuit expects wire of type `\yquant@register@type@tostring{#2}', but got `\yquant@register@type@tostring{\yquant@register@get@type{#1}}'}%
- {Outer and inner wire types must match for input wire `\detokenize{#3}`.}%
- \fi%
- \endgroup%
-}
-
-\protected\def\yquant@lang@create@check@output#1#2{%
- \begingroup%
- \let\yquant@prefix=\yquant@parent%
- \unless\if\yquant@register@type@none\yquant@register@get@type{#1}%
- \PackageError{yquant.sty}%
- {Subcircuit expects discarded wire, got `\yquant@register@type@tostring{\yquant@register@get@type{#1}}'}%
- {Outer wire must be discarded before being acceptable for output-only register `\detokenize{#2}`.}%
- \fi%
- \endgroup%
-}
-
-\protected\def\yquant@lang@create@draw#1#2#3#4#5#6{%
- \begingroup%
- \dimdef\wireypos{\yquant@register@get@y{#1}}%
- \ifcsname\yquant@prefix xshift\endcsname%
- \dimdef\createxpos{#2+\csname\yquant@prefix xshift\endcsname}%
- \else%
- \dimdef\createxpos{#2}%
- \fi%
- \ifstrempty{#5}{%
- % For empty labels, we still put the node at the appropriate position as it may needs to be referenced, but we will not let it effect the bounding box (so that the left end is not shifted), and we don't need an inner separation, so that the label is truely just a coordinate.
- \path[overlay]%
- (\createxpos, \wireypos)%
- coordinate[name prefix=, name suffix=, name=yquantbox];%
- \let\pgfshapeclippathhorzresult=\empty%
- }{%
- \edef\cmd{%
- \noexpand\path%
- (\createxpos, \wireypos)%
- node[/yquant/every label, /yquant/every initial label,%
- /yquant/every #3 label\ifx1#4, /yquant/every input label\fi,%
- name prefix=, name suffix=, name=yquantbox]%
- {\unexpanded{#5}};%
- \ifcsname\yquant@prefix registermap@#1\endcsname%
- \pgfshapeclippath{yquantbox}%
- {/yquant/every label, /yquant/every initial label,%
- /yquant/every #3 label\ifx1#4, /yquant/every input label\fi}%
- \fi%
- }%
- \cmd%
- }%
- \ifcsname\yquant@prefix registermap@#1\endcsname%
- % if this is an alias, the creation is just an extension
- \if\yquant@register@type@none\yquant@register@get@type{#1}%
- \ifstrequal{#3}{initial}{%
- \yquant@circuit@extendwire{#1}{east}%
- }{%
- % however, our inner wire is present, while the outer wire was discarded.
- \tikzset{/yquant/every wire}%
- \pgfpointanchor{yquantbox}{east}%
- \yquant@register@set@lastwire{#1}{%
- {\the\pgf@x}{\the\pgf@x}{}%
- {\unexpanded\expandafter{\pgfshapeclippathhorzresult}}%
- }%
- }%
- \else%
- \yquant@circuit@extendwire{#1}{east}%
- \fi%
- \else%
- % set the wire style to have the correct \pgflinewidth available (we don't allow individual line widths for different types of wires)
- \tikzset{/yquant/every wire}%
- \pgfpointanchor{yquantbox}{east}%
- \yquant@register@set@lastwire{#1}{{\the\pgf@x}{\the\pgf@x}{}{}}%
- \fi%
- \ifstrempty{#6}\relax{%
- \pgfnodealias{\tikz@pp@name{#6}}{yquantbox}%
- }%
- \endgroup%
+ }%
}
% END_FOLD
@@ -348,23 +290,21 @@
\protected\long\def\yquantdefinegate@i#1[#2]#3{%
\pgfkeys{/yquant/operators/every #1/.style={#2}}%
+ \yquant@prepare@ifs@set%
\protected@edef\yquantdefinegate@do{%
\yquant@langhelper@declare@command%
{#1}%
- \expandafter\noexpand\csname yquant@lang@@#1\endcsname%
+ \yquant@register@get@multiaslist%
+ {%
+ \let\noexpand\yquant@lang@attr@value=\expandafter\noexpand\csname yquant@lang@@#1\endcsname%
+ \yquant@prepare@subcircuit{/yquant/operators/every #1}%
+ }%
% This does not clear the attributes for redefines, but makes at least sure nothing is marked as required that should not be.
\yquant@langhelper@setup@attrs{#1}{}{}%
% Now define the gate's content as a macro
- \def\expandafter\noexpand\csname yquant@lang@@@#1\endcsname{%
+ \def\expandafter\noexpand\csname yquant@lang@@#1\endcsname{%
#3%
}%
- % And provide the implementation
- \protected\def\expandafter\noexpand\csname yquant@lang@@#1\endcsname####1####2####3{%
- \yquant@register@get@multiaslist%
- \yquant@circuit@operator{####1}{####2}{####3}%
- \let\noexpand\yquant@lang@attr@value=\expandafter\noexpand\csname yquant@lang@@@#1\endcsname%
- \yquant@draw@@subcircuit{/yquant/operators/every #1}%
- }%
}%
\yquantdefinegate@do%
}
@@ -374,8 +314,15 @@
\PackageError{yquant.sty}{Gate redefined}%
{The gate `#1' already exists. Use \string\yquantredefinebox\space if you really want to redefine it.}%
\fi%
- \@ifnextchar[{\yquantdefinebox@i{#1}}%
- {\yquantdefinebox@i{#1}[/yquant/operators/every box]}%
+ \yquantdefinebox@{#1}{}%
+}
+
+\def\yquantdefinemultibox#1{%
+ \ifcsname yquant@lang@#1\endcsname%
+ \PackageError{yquant.sty}{Gate redefined}%
+ {The gate `#1' already exists. Use \string\yquantredefinemultibox\space if you really want to redefine it.}%
+ \fi%
+ \yquantdefinebox@{#1}\yquant@register@get@allowmultitrue%
}
\def\yquantredefinebox#1{%
@@ -383,38 +330,47 @@
\PackageError{yquant.sty}{Unknown gate redefined}%
{The gate `#1' is unknown and cannot be redefined. Use \string\yquantdefinebox\space to define it.}%
\fi%
- \yquantdefinebox@i{#1}%
- \@ifnextchar[{\yquantdefinebox@i{#1}}%
- {\yquantdefinebox@i{#1}[/yquant/operators/every box]}%
+ \yquantdefinebox@{#1}{}%
}
-\protected\long\def\yquantdefinebox@i#1[#2]#3{%
- \pgfkeys{/yquant/operators/every #1/.style={#2}}%
+\def\yquantredefinemultibox#1{%
+ \unless\ifcsname yquant@lang@#1\endcsname%
+ \PackageError{yquant.sty}{Unknown gate redefined}%
+ {The gate `#1' is unknown and cannot be redefined. Use \string\yquantdefinemultibox\space to define it.}%
+ \fi%
+ \yquantdefinebox@{#1}\yquant@register@get@allowmultitrue%
+}
+
+\def\yquantdefinebox@#1#2{%
+ \@ifnextchar[{\yquantdefinebox@i{#1}{#2}}%
+ {\yquantdefinebox@i{#1}{#2}[/yquant/operators/every box]}%
+}
+
+\protected\long\def\yquantdefinebox@i#1#2[#3]#4{%
+ \pgfkeys{/yquant/operators/every #1/.style={#3}}%
+ \yquant@prepare@ifs@set%
\protected@edef\yquantdefinebox@do{%
\yquant@langhelper@declare@command%
{#1}%
- \expandafter\noexpand\csname yquant@lang@@#1\endcsname%
- \yquant@langhelper@setup@attrs{#1}{}{}%
- \def\expandafter\noexpand\csname yquant@lang@@#1\endcsname{%
- \yquant@draw%
- {#3}%
- {/yquant/operators/every #1}%
- }%
+ {\unexpanded{#2}}%
+ {\yquant@prepare{#4}{/yquant/operators/every #1}}%
}%
\yquantdefinebox@do%
+ \yquant@langhelper@setup@attrs{#1}{}{}%
}
% END_FOLD
% BEGIN_FOLD Box registers
% all-purpose box with arbitrary text
-\yquant@langhelper@declare@command{box}\yquant@lang@@box
-\yquant@langhelper@setup@attrs{box}{value}{}
-\def\yquant@lang@@box{%
+\yquant@langhelper@declare@command%
+ {box}%
\yquant@register@get@allowmultitrue%
- \expandafter\yquant@draw%
- \expandafter{\yquant@lang@attr@value}%
- {/yquant/operators/every box}%
-}
+ {%
+ \expandafter\yquant@prepare%
+ \expandafter{\yquant@lang@attr@value}%
+ {/yquant/operators/every box}%
+ }
+\yquant@langhelper@setup@attrs{box}{value}{}
% Hadamard
\yquantdefinebox{h}{$H$}
@@ -429,183 +385,255 @@
\yquantdefinebox{z}[/yquant/operators/every pauli]{$Z$}
% sub-circuit: This is a nested circuit.
-\yquant@langhelper@declare@command{subcircuit}\yquant@lang@@subcircuit
-\yquant@langhelper@setup@attrs{subcircuit}{value}{}
-\protected\def\yquant@lang@@subcircuit#1#2#3{%
+\yquant@langhelper@declare@command%
+ {subcircuit}%
\yquant@register@get@multiaslist%
- \yquant@circuit@operator{#1}{#2}{#3}%
- \yquant@draw@@subcircuit{/yquant/operators/every subcircuit}%
-}
+ {%
+ \yquant@prepare@subcircuit{/yquant/operators/every subcircuit}%
+ }
+\yquant@langhelper@setup@attrs{subcircuit}{value}{frameless,seamless}
% END_FOLD
% BEGIN_FOLD other geometric shapes
% phase
-\yquant@langhelper@declare@command{phase}\yquant@lang@@phase
+\yquant@langhelper@declare@command%
+ {phase}%
+ {}%
+ {%
+ \edef\cmd{%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every phase, label={\unexpanded\expandafter{\yquant@lang@attr@value}}}%
+ }%
+ \cmd%
+ }
\yquant@langhelper@setup@attrs{phase}{value}{}%
-\def\yquant@lang@@phase{%
- \edef\cmd{%
- \noexpand\yquant@draw%
- {}%
- {/yquant/operators/every phase, label={\unexpanded\expandafter{\yquant@lang@attr@value}}}%
- }%
- \cmd%
-}
% two-qubit controlled x (symmetric notation)
-\yquant@langhelper@declare@command{xx}\yquant@lang@@xx
-\yquant@langhelper@setup@attrs{xx}{}{}
-\def\yquant@lang@@xx{%
+\yquant@langhelper@declare@command%
+ {xx}%
\yquant@register@get@multiassingle%
- \yquant@draw%
- {}%
- {/yquant/operators/every xx}%
-}
+ {%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every xx}%
+ }
+\yquant@langhelper@setup@attrs{xx}{}{}
% two-qubit controlled phase (symmetric notation)
-\yquant@langhelper@declare@command@uncontrolled{zz}\yquant@lang@@zz
-\yquant@langhelper@setup@attrs{zz}{}{}
-\def\yquant@lang@@zz{%
+\yquant@langhelper@declare@command@uncontrolled%
+ {zz}%
\yquant@register@get@multiassingle%
- \yquant@draw%
- {}%
- {/yquant/operators/every zz}%
- {}{}%
-}
+ {%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every zz}%
+ }
+\yquant@langhelper@setup@attrs{zz}{}{}
% slash (pseudo-operator, alternative indication for a bundle)
-\yquant@langhelper@declare@command@uncontrolled{slash}\yquant@lang@@slash
-\yquant@langhelper@setup@attrs{slash}{}{}
-\protected\def\yquant@lang@@slash#1{%
- % temporarily squeeze most into the separation
- \pgfkeys{%
- /yquant/operator/minimum width=0pt,%
- /yquant/operator/separation=.5\dimexpr\yquant@config@operator@sep-\pgflinewidth\relax%
- }%
- \def\yquant@draw@callback@wire##1{%
- \yquant@register@set@x%
- {##1}%
- {\the\dimexpr\yquant@register@get@x{##1}-\yquant@config@operator@sep-\pgflinewidth\relax}%
+\yquant@langhelper@declare@command@uncontrolled%
+ {slash}%
+ {}%
+ {%
+ % temporarily squeeze most into the separation
+ \pgfkeys{%
+ /yquant/operator/minimum width=0pt,%
+ }%
+ \preto\yquant@attrs@remaining{internal/squeeze slash,}%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every slash}%
}
- \yquant@draw%
- {}%
- {/yquant/operators/every slash}%
- {}{}{#1}%
-}
+\yquant@langhelper@setup@attrs{slash}{}{}
% swap
-\yquant@langhelper@declare@command{swap}\yquant@lang@@swap
+\yquant@langhelper@declare@command%
+ {swap}%
+ \yquant@register@get@multiassingle
+ {%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every swap}%
+ }
\yquant@langhelper@setup@attrs{swap}{}{}
-\def\yquant@lang@@swap{%
- \yquant@register@get@multiassingle%
- \yquant@draw%
- {}%
- {/yquant/operators/every swap}%
-}
% not
-\yquant@langhelper@declare@command{not}\yquant@lang@@not
+\yquant@langhelper@declare@command%
+ {not}%
+ {}%
+ {%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every not}%
+ }
\yquant@langhelper@setup@attrs{not}{}{}
-\def\yquant@lang@@not{%
- \yquant@draw%
- {}%
- {/yquant/operators/every not}%
-}
% alias to cnot
-\let\yquant@lang@cnot=\yquant@lang@not
+\yquant@langhelper@declare@command@alias{cnot}{not}
\yquant@langhelper@setup@attrs{cnot}{}{}
% measure
-\yquant@langhelper@declare@command@uncontrolled{measure}\yquant@lang@@measure
-\yquant@langhelper@setup@attrs{measure}{}{value,type}
-\def\yquant@lang@@measure{%
- \ifdefined\yquant@lang@attr@type%
- \yquant@register@type@fromstring\yquant@lang@attr@type\yquant@circuit@settype@to%
- \else%
- \let\yquant@circuit@settype@to=\yquant@register@type@c%
- \fi%
- \let\yquant@draw@callback@wire=\yquant@circuit@settype%
+\yquant@langhelper@declare@command@uncontrolled%
+ {measure}%
\yquant@register@get@allowmultitrue%
- \unless\ifcsname yquant@lang@attr@value\endcsname%
- \let\yquant@lang@attr@value=\empty%
- \fi%
- \expandafter\yquant@draw%
- \expandafter{\yquant@lang@attr@value}%
- {/yquant/operators/every measure}%
- {}{}%
-}
+ {%
+ \ifdefined\yquant@lang@attr@type%
+ \yquant@register@type@fromstring\yquant@lang@attr@type\yquant@circuit@settype@to%
+ \else%
+ \let\yquant@circuit@settype@to=\yquant@register@type@c%
+ \fi%
+ \let\yquant@prepare@callback@prepare=\yquant@circuit@settype@prepare%
+ \let\yquant@prepare@callback@draw=\yquant@circuit@settype%
+ \unless\ifcsname yquant@lang@attr@value\endcsname%
+ \let\yquant@lang@attr@value=\empty%
+ \fi%
+ \ifdefined\yquant@lang@attr@directcontrol%
+ % direct control means that we must defer this operator until the next that has this/these targets as positive controls.
+ \expandafter\yquant@prepare@injection%
+ \expandafter{\yquant@lang@attr@value}%
+ {/yquant/operators/every measure}%
+ \else%
+ \expandafter\yquant@prepare%
+ \expandafter{\yquant@lang@attr@value}%
+ {/yquant/operators/every measure}%
+ \fi%
+ }
+\yquant@langhelper@setup@attrs{measure}{}{value,type,direct control,indirect control}
% measure (dmeter)
-\yquant@langhelper@declare@command@uncontrolled{dmeter}\yquant@lang@@dmeter
-\yquant@langhelper@setup@attrs{dmeter}{}{value,type}
-\def\yquant@lang@@dmeter{%
- \ifdefined\yquant@lang@attr@type%
- \yquant@register@type@fromstring\yquant@lang@attr@type\yquant@circuit@settype@to%
- \else%
- \let\yquant@circuit@settype@to=\yquant@register@type@c%
- \fi%
- \let\yquant@draw@callback@wire=\yquant@circuit@settype%
+\yquant@langhelper@declare@command@uncontrolled%
+ {dmeter}%
\yquant@register@get@allowmultitrue%
- \unless\ifcsname yquant@lang@attr@value\endcsname%
- \let\yquant@lang@attr@value=\empty%
- \fi%
- \expandafter\yquant@draw%
- \expandafter{\yquant@lang@attr@value}%
- {/yquant/operators/every dmeter}%
- {}{}%
-}
+ {%
+ \ifdefined\yquant@lang@attr@type%
+ \yquant@register@type@fromstring\yquant@lang@attr@type\yquant@circuit@settype@to%
+ \else%
+ \let\yquant@circuit@settype@to=\yquant@register@type@c%
+ \fi%
+ \let\yquant@prepare@callback@prepare=\yquant@circuit@settype@prepare%
+ \let\yquant@prepare@callback@draw=\yquant@circuit@settype%
+ \unless\ifcsname yquant@lang@attr@value\endcsname%
+ \let\yquant@lang@attr@value=\empty%
+ \fi%
+ \expandafter\yquant@prepare%
+ \expandafter{\yquant@lang@attr@value}%
+ {/yquant/operators/every dmeter}%
+ }
+\yquant@langhelper@setup@attrs{dmeter}{}{value,type}
% END_FOLD
% BEGIN_FOLD miscellaneous
-\yquant@langhelper@declare@command@uncontrolled{barrier}\yquant@lang@@barrier
-\yquant@langhelper@setup@attrs{barrier}{}{}
-\def\yquant@lang@@barrier{%
+\yquant@langhelper@declare@command@uncontrolled%
+ {barrier}%
\yquant@register@get@allowmultitrue%
- \yquant@draw%
- {}%
- {/yquant/operators/every barrier}%
- {}{}%
-}
+ {%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every barrier}%
+ }%
+\yquant@langhelper@setup@attrs{barrier}{}{}
-\yquant@langhelper@declare@command@uncontrolled{correlate}\yquant@lang@@correlate
+\yquant@langhelper@declare@command@uncontrolled%
+ {correlate}%
+ {%
+ % do not call \yquant@register@get@multiassingle, we do not want to install a different multi line style!
+ \yquant@register@get@allowmultitrue%
+ \let\yquant@register@multi@splitparts=\yquant@register@multi@splitparts@sepall%
+ }{%
+ \yquant@prepare%
+ {}%
+ {/yquant/operators/every wave}%
+ }
\yquant@langhelper@setup@attrs{correlate}{}{}
-\def\yquant@lang@@correlate{%
- % do not call \yquant@register@get@multiassingle, we do not want to install a different multi line style!
- \yquant@register@get@allowmultitrue%
- \let\yquant@register@multi@splitparts=\yquant@register@multi@splitparts@sepall%
- \yquant@draw%
- {}%
- {/yquant/operators/every wave}%
- {}{}%
-}
-\yquant@langhelper@declare@command@uncontrolled{align}\yquant@lang@@align
+\yquant@langhelper@declare@command@uncontrolled%
+ {align}%
+ {}%
+ {%
+ \yquant@circuit@align\yquant@circuit@operator@targets%
+ }
\yquant@langhelper@setup@attrs{align}{}{}
-\def\yquant@lang@@align#1{%
- \yquant@register@get@ids{#1}%
- \yquant@circuit@align\yquant@register@get@ids@list%
-}
-\yquant@langhelper@declare@command@uncontrolled{hspace}\yquant@lang@@hspace
+\yquant@langhelper@declare@command@uncontrolled%
+ {hspace}%
+ {%
+ \yquant@langhelper@validate\amount\dimen\yquant@lang@attr@value%
+ }{%
+ \yquant@circuit@hspace\yquant@circuit@operator@targets\amount%
+ }
\yquant@langhelper@setup@attrs{hspace}{value}{}
-\def\yquant@lang@@hspace#1{%
- \yquant@langhelper@validate\amount\dimen\yquant@lang@attr@value%
- \yquant@register@get@ids{#1}%
- \yquant@circuit@hspace\yquant@register@get@ids@list\amount%
-}
-\yquant@langhelper@declare@command@uncontrolled{discard}\yquant@lang@@discard
+\yquant@langhelper@declare@command@uncontrolled%
+ {discard}%
+ {\yquant@langhelper@execclear@lastgatefalse}%
+ {%
+ \let\yquant@circuit@settype@to=\yquant@register@type@none%
+ \yquant@circuit@actonwires%
+ \yquant@circuit@settype@prepare%
+ \yquant@circuit@settype%
+ \yquant@circuit@operator@targets%
+ {}%
+ }
\yquant@langhelper@setup@attrs{discard}{}{}
-\def\yquant@lang@@discard#1{%
- \yquant@register@get@ids{#1}%
- \let\yquant@circuit@settype@to=\yquant@register@type@none%
- \yquant@circuit@actonwires%
- \yquant@circuit@settype%
- \yquant@register@get@ids@list%
- \yquant@register@type@none%
-}
-\yquant@langhelper@declare@command@uncontrolled{init}\yquant@lang@@init
+\yquant@langhelper@declare@command@uncontrolled%
+ {init}%
+ {%
+ \yquant@register@get@allowmultitrue%
+ % we will count how many registers contain the "clean" flag, and only if this is equal to the number of targets, we apply the shift.
+ \count8=0 %
+ }%
+ {%
+ \ifdefined\yquant@lang@attr@type%
+ \yquant@register@type@fromstring\yquant@lang@attr@type\yquant@circuit@settype@to%
+ \else%
+ % We don't know which type is desired. Scan all target registers and use the first wire that is available as a type.
+ \let\yquant@circuit@settype@to=\yquant@register@type@none%
+ \forlistloop\yquant@lang@@init@loop\yquant@circuit@operator@targets%
+ \ifx\yquant@circuit@settype@to\yquant@register@type@none%
+ % now we don't have a clue; assume it's a qubit
+ \let\yquant@circuit@settype@to=\yquant@register@type@q%
+ \fi%
+ \edef\yquant@lang@attr@type{%
+ \yquant@register@type@tostring\yquant@circuit@settype@to%
+ }%
+ \fi%
+ \let\yquant@prepare@callback@prepare=\yquant@circuit@settype@prepare%
+ \let\yquant@prepare@callback@draw=\yquant@circuit@settype%
+ \let\yquant@prepare@multi=\yquant@prepare@multiinit%
+ \ifnum\count8=\numexpr\yquant@circuit@operator@maxctrl-\yquant@circuit@operator@minctrl+1\relax%
+ \def\yquant@config@operator@minimum@width{0pt}%
+ \preto\yquant@attrs@remaining{internal/move label,}%
+ \edef\cmd{%
+ \yquant@prepare%
+ {\unexpanded\expandafter{\yquant@lang@attr@value}}%
+ {/yquant/every label, /yquant/every initial label,%
+ /yquant/every \yquant@lang@attr@type\space label}%
+ }%
+ \else%
+ \edef\cmd{%
+ \yquant@prepare%
+ {\unexpanded\expandafter{\yquant@lang@attr@value}}%
+ {/yquant/every label, /yquant/every \yquant@lang@attr@type\space label}%
+ }%
+ \fi%
+ \cmd%
+ }
\yquant@langhelper@setup@attrs{init}{value}{type}
+
+\protected\def\yquant@lang@@init@loop#1{%
+ \ifyquant@firsttoken\yquant@register@multi{#1}{%
+ \let\yquant@register@multi@contiguous=\yquant@lang@@init@multi@@extract%
+ \@fifthoffive#1%
+ % we should reset multi@contiguous to the original command; but this is really just a placeholder. As long as it is \protected, everything is fine.
+ }{%
+ \edef\yquant@circuit@settype@to{\yquant@register@get@type{#1}}%
+ }%
+ \unless\ifx\yquant@circuit@settype@to\yquant@register@type@none%
+ \expandafter\listbreak%
+ \fi%
+}
+
\protected\def\yquant@lang@@init@multi@@extract#1#2#3{%
\yquant@for \yquant@i := #1 to #2 {%
\edef\yquant@circuit@settype@to{\yquant@register@get@type\yquant@i}%
@@ -615,95 +643,64 @@
}%
}
-\protected\def\yquant@lang@@init#1{%
+\yquant@langhelper@declare@command@uncontrolled%
+ {output}%
\yquant@register@get@allowmultitrue%
- \yquant@register@get@ids{#1}%
- \ifdefined\yquant@lang@attr@type%
- \yquant@register@type@fromstring\yquant@lang@attr@type\yquant@circuit@settype@to%
- \else%
- % We don't know which type is desired. Scan all target registers and use the first wire that is available as a type.
- \let\yquant@circuit@settype@to=\yquant@register@type@none%
- \def\do##1{%
- \ifyquant@firsttoken\yquant@register@multi{##1}{%
- \let\yquant@register@multi@contiguous=\yquant@lang@@init@multi@@extract%
- \@fifthoffive##1%
- % we should reset multi@contiguous to the original command; but this is really just a placeholder. As long as it is \protected, everything is fine.
- }{%
- \edef\yquant@circuit@settype@to{\yquant@register@get@type{##1}}%
- }%
- \unless\ifx\yquant@circuit@settype@to\yquant@register@type@none%
- \expandafter\listbreak%
- \fi%
- }%
- \dolistloop\yquant@register@get@ids@list%
- \ifx\yquant@circuit@settype@to\yquant@register@type@none%
- % now we don't have a clue; assume it's a qubit
- \let\yquant@circuit@settype@to=\yquant@register@type@q%
- \fi%
- \edef\yquant@lang@attr@type{%
- \yquant@register@type@tostring\yquant@circuit@settype@to%
- }%
- \fi%
- \let\yquant@draw@callback@wire=\yquant@circuit@settype%
- \let\yquant@draw@@multi=\yquant@draw@@multiinit%
- \yquant@circuit@operator{}{}{#1}%
- % special case: if there were no operations at any affected wire before, we will replace the wire description
- \ifdim\yquant@circuit@operator@x=\yquant@config@operator@sep\relax%
- \def\yquant@circuit@operator@x{-.5\dimen2}%
- \let\yquant@draw@finalize@ctrl@single=\yquant@draw@finalize@ctrl@singleinit%
- \let\yquant@draw@finalize@ctrl@multi=\yquant@draw@finalize@ctrl@multiinit%
- \expandafter\yquant@draw@%
- \expandafter{\yquant@lang@attr@value}%
- {/yquant/every label, /yquant/every initial label, /yquant/every \yquant@lang@attr@type\space label}%
- \else%
- \expandafter\yquant@draw@%
- \expandafter{\yquant@lang@attr@value}%
- {/yquant/every label, /yquant/every \yquant@lang@attr@type\space label}%
- \fi%
-}
-
-\yquant@langhelper@declare@command@uncontrolled{output}\yquant@lang@@output
+ \yquant@circuit@output%
\yquant@langhelper@setup@attrs{output}{value}{}
-\def\yquant@lang@@output#1{%
- \yquant@register@get@allowmultitrue%
- \yquant@register@get@ids{#1}%
- \expandafter\yquant@circuit@output\expandafter{\yquant@register@get@ids@list}%
-}
-\yquant@langhelper@declare@command@uncontrolled{settype}\yquant@lang@@settype
+\yquant@langhelper@declare@command@uncontrolled%
+ {inspect}%
+ \yquant@register@get@allowmultitrue%
+ {%
+ \expandafter\yquant@prepare%
+ \expandafter{\yquant@lang@attr@value}%
+ {/yquant/operators/every inspect}%
+ }
+\yquant@langhelper@setup@attrs{inspect}{value}{}
+
+\yquant@langhelper@declare@command@uncontrolled%
+ {settype}%
+ {\yquant@langhelper@execclear@lastgatefalse}%
+ {%
+ \yquant@register@type@fromstring\yquant@lang@attr@value\yquant@circuit@settype@to%
+ \yquant@circuit@actonwires%
+ \yquant@circuit@settype@prepare%
+ \yquant@circuit@settype%
+ \yquant@circuit@operator@targets%
+ {}%
+ }
\yquant@langhelper@setup@attrs{settype}{value}{}
-\protected\def\yquant@lang@@settype#1{%
- \yquant@register@get@ids{#1}%
- \yquant@register@type@fromstring\yquant@lang@attr@value\yquant@circuit@settype@to%
- \yquant@circuit@actonwires%
- \yquant@circuit@settype%
- \yquant@register@get@ids@list%
- {}%
-}
-
-\def\yquant@lang@setwire{%
- \PackageWarning{yquant.sty}{`setwire' gate is deprecated as of yquant 0.1.2. Use `settype' instead.}%
- \yquant@lang@settype%
-}
-\yquant@langhelper@setup@attrs{setwire}{value}{}
-\yquant@langhelper@declare@command@uncontrolled{setstyle}\yquant@lang@@setstyle
+\ifnum\yquant@compat<2 %
+ \def\yquant@lang@setwire{%
+ \PackageWarning{yquant.sty}{`setwire' gate is deprecated as of yquant 0.1.2. Use `settype' instead.}%
+ \yquant@lang@settype%
+ }
+ \yquant@langhelper@setup@attrs{setwire}{value}{}
+\fi
+
+\yquant@langhelper@declare@command@uncontrolled%
+ {setstyle}%
+ {\yquant@langhelper@execclear@lastgatefalse}%
+ {%
+ \yquant@circuit@actonwires%
+ \@gobbletwo%
+ \yquant@circuit@setstyle%
+ \yquant@circuit@operator@targets%
+ {{\yquant@lang@attr@value}}%
+ }
\yquant@langhelper@setup@attrs{setstyle}{value}{}
-\protected\def\yquant@lang@@setstyle#1{%
- \yquant@register@get@ids{#1}%
- \yquant@circuit@actonwires%
- \yquant@circuit@setstyle%
- \yquant@register@get@ids@list%
- {{\yquant@lang@attr@value}}%
-}
-\yquant@langhelper@declare@command@uncontrolled{addstyle}\yquant@lang@@addstyle
+\yquant@langhelper@declare@command@uncontrolled%
+ {addstyle}%
+ {\yquant@langhelper@execclear@lastgatefalse}%
+ {%
+ \yquant@circuit@actonwires%
+ \@gobbletwo%
+ \yquant@circuit@addstyle%
+ \yquant@circuit@operator@targets%
+ {{\yquant@lang@attr@value}}%
+ }
\yquant@langhelper@setup@attrs{addstyle}{value}{}
-\protected\def\yquant@lang@@addstyle#1{%
- \yquant@register@get@ids{#1}%
- \yquant@circuit@actonwires%
- \yquant@circuit@addstyle%
- \yquant@register@get@ids@list%
- {{\yquant@lang@attr@value}}%
-}
% END_FOLD \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex b/graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex
index 8611424194..72a5969cb6 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-langhelper.tex
@@ -1,4 +1,4 @@
-% Parsing attributes
+% BEGIN_FOLD Parsing attributes
\let\yquant@langhelper@list@attrs=\empty
\protected\long\def\yquant@langhelper@check@attrs[#1]{%
@@ -166,8 +166,9 @@
\PackageError{yquant.sty}{Required attribute `#1' missing}%
{You used a command that requires specifying the attribute `#1'.}%
}%
+% END_FOLD
-% Parsing command itself
+% BEGIN_FOLD Parsing command itself
\protected\def\yquant@langhelper@check@name#1 {%
\lowercase{\edef\cmd{#1}}%
\unless\ifcsname yquant@lang@\cmd\endcsname%
@@ -209,35 +210,84 @@
% Check all necessary attributes were given.
\csname yquant@langhelper@setup@attrs@check@\cmd\endcsname%
% Finally execute the command
- \csname yquant@lang@\cmd\endcsname%
+ \letcs\cmd{yquant@lang@\cmd}%
+ \yquant@langhelper@declare@command@@parse%
}
+% END_FOLD
+% BEGIN_FOLD Declarations
+\newif\ifyquant@langhelper@execclear@lastgate
% Defining commands that accept registers and take an optional value
% #1: name of the argument
-% #2: command that is to be called with three parameters: the indices of the positive and negative controls and registers, all as named lists
-\protected\def\yquant@langhelper@declare@command#1#2{%
+% #2: command (sequence) that is to be called before the target macros are filled
+% #3: command (sequence) that is to be called after the target macros are filled
+\protected\def\yquant@langhelper@declare@command#1#2#3{%
\begingroup%
\lowercase{\edef\cmd{#1}}%
- \long\protected\csgdef{yquant@lang@\cmd}{%
- \let\cmd=#2%
- \yquant@langhelper@declare@command@@parse%
+ \long\protected\csxdef{yquant@lang@\cmd}##1##2##3{%
+ \noexpand\yquant@langhelper@execclear@lastgatetrue%
+ \unexpanded{#2}%
+ \yquant@circuit@operator{##1}{##2}{##3}%
+ \noexpand\ifyquant@langhelper@execclear@lastgate%
+ \yquant@for \noexpand\i := \noexpand\yquant@circuit@operator@minctrl to \noexpand\yquant@circuit@operator@maxctrl {%
+ \yquant@register@execclear@lastgate{\noexpand\i}{\cmd}%
+ }%
+ \noexpand\fi%
+ \unexpanded{#3}%
}%
\endgroup%
}
-% Defining commands that accept registers and take an additional value
+% Defining commands that accept registers and take an optional value, but don't allow for controls
% #1: name of the argument
-% #2: command that is to be called with three parameters: the indices of the positive and negative controls and registers, all as named lists
-\protected\def\yquant@langhelper@declare@command@uncontrolled#1#2{%
+% #2: command (sequence) that is to be called before the target macros are filled
+% #3: command (sequence) that is to be called after the target macros are filled
+\protected\def\yquant@langhelper@declare@command@uncontrolled#1#2#3{%
\begingroup%
\lowercase{\edef\cmd{#1}}%
- \long\protected\csgdef{yquant@lang@\cmd}{%
- \def\cmd{\yquant@langhelper@declare@command@@uncontrolled{#2}}%
- \yquant@langhelper@declare@command@@parse%
+ \long\protected\csxdef{yquant@lang@\cmd}##1##2##3{%
+ \noexpand\ifstrempty{##1}\relax{%
+ \noexpand\PackageError{yquant.sty}{Positive controls are not allowed for the command `\cmd`}{}%
+ }%
+ \noexpand\ifstrempty{##2}\relax{%
+ \noexpand\PackageError{yquant.sty}{Negative controls are not allowed for the command `\cmd`}{}%
+ }%
+ \noexpand\yquant@langhelper@execclear@lastgatetrue%
+ \unexpanded{#2}%
+ \yquant@circuit@operator{}{}{##3}%
+ \noexpand\ifyquant@langhelper@execclear@lastgate%
+ \yquant@for \noexpand\i := \noexpand\yquant@circuit@operator@minctrl to \noexpand\yquant@circuit@operator@maxctrl {%
+ \yquant@register@execclear@lastgate{\noexpand\i}{\cmd}%
+ }%
+ \noexpand\fi%
+ \unexpanded{#3}%
}%
\endgroup%
}
+% Defining commands that accept an undefined register and take an optional value, but don't allow for controls
+% #1: name of the argument
+% #2: macro that is to be called with parameter #1 being the name of the register
+\protected\def\yquant@langhelper@declare@command@create#1#2{%
+ \begingroup%
+ \lowercase{\edef\cmd{#1}}%
+ \long\protected\csxdef{yquant@lang@\cmd}##1##2{%
+ \noexpand\ifstrempty{##1}\relax{%
+ \noexpand\PackageError{yquant.sty}{Positive controls are not allowed for the command `\cmd`}{}%
+ }%
+ \noexpand\ifstrempty{##2}\relax{%
+ \noexpand\PackageError{yquant.sty}{Negative controls are not allowed for the command `\cmd`}{}%
+ }%
+ \noexpand#2%
+ }%
+ \endgroup%
+}
+
+% make #1 an identical command to #2 (does not copy attributes)
+\protected\def\yquant@langhelper@declare@command@alias#1#2{%
+ \global\csletcs{yquant@lang@#1}{yquant@lang@#2}%
+}
+
\long\def\yquant@langhelper@declare@command@@parse#1;{%
\yquant@langhelper@declare@command@@extract@nctrl#1~;%
\yquant@env@rescan%
@@ -267,16 +317,7 @@
}%
\expandafter\cmd\params%
}
-
-\protected\def\yquant@langhelper@declare@command@@uncontrolled#1#2#3{%
- \ifstrempty{#2}\relax{%
- \PackageError{yquant.sty}{Positive controls are not allowed for this command}{}%
- }%
- \ifstrempty{#3}\relax{%
- \PackageError{yquant.sty}{Negative controls are not allowed for this command}{}%
- }%
- #1%
-}
+% END_FOLD
% shorthands for validation of property values
% #1: a macro that will contain the sanitized value
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex b/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
new file mode 100644
index 0000000000..c9db0883b6
--- /dev/null
+++ b/graphics/pgf/contrib/yquant/tex/yquant-prepare.tex
@@ -0,0 +1,883 @@
+% Most drawing operations will be realized through nodes
+\let\yquant@prepare@callback@prepare=\@gobble
+\let\yquant@prepare@callback@draw=\@gobble%
+
+% #1: register name
+% #2: register index
+% #3: register type
+\protected\def\yquant@prepare@create#1#2#3{%
+ \ifdefined\yquant@lang@attr@input%
+ \expandafter\yquant@list@gdequeue\csname\yquant@prefix parameters\endcsname\outermap%
+ \ifx\outermap\empty%
+ \PackageError{yquant.sty}{Invalid subcircuit parameter count}%
+ {No outer register available for input register `#1[#2]`.}%
+ \fi%
+ \begingroup%
+ \let\yquant@prefix=\yquant@parent %
+ \unless\if#3\yquant@register@get@type\outermap%
+ \PackageError{yquant.sty}%
+ {Subcircuit expects wire of type `\yquant@register@type@tostring#3', but got `\yquant@register@type@tostring{\yquant@register@get@type\outermap}'}%
+ {Outer and inner wire types must match for input wire `#1[#2]`.}%
+ \fi%
+ \endgroup%
+ \unless\ifdefined\yquant@lang@attr@output%
+ \listcsxadd{\yquant@prefix inonly}%
+ {\the\numexpr\csname\yquant@prefix registers\endcsname+1\relax}%
+ \fi%
+ \yquant@register@alias{#3}{#1}{#2}\outermap%
+ \else%
+ \ifdefined\yquant@lang@attr@output%
+ \expandafter\yquant@list@gdequeue\csname\yquant@prefix parameters\endcsname\outermap%
+ \ifx\outermap\empty%
+ \PackageError{yquant.sty}{Invalid subcircuit parameter count}%
+ {No outer register available for output register `#1[#2]`.}%
+ \fi%
+ \begingroup%
+ \let\yquant@prefix=\yquant@parent%
+ \unless\if\yquant@register@type@none\yquant@register@get@type\outermap%
+ \PackageError{yquant.sty}%
+ {Subcircuit expects discarded wire, got `\yquant@register@type@tostring{\yquant@register@get@type\outermap}'}%
+ {Outer wire must be discarded before being acceptable for output-only register `#1[#2]`.}%
+ \fi%
+ \endgroup%
+ \yquant@register@alias{#3}{#1}{#2}\outermap%
+ \else%
+ \yquant@register@define{#3}{#1}{#2}%
+ \fi%
+ \fi%
+ % we must be allowed to change the wire types during preparation for various reasons, so we need to reset it here (TODO: can we eliminate all those reasons?)
+ \csxappto{\yquant@prefix draw}{%
+ \yquant@draw@init{\csname\yquant@prefix registers\endcsname}{#3}%
+ }%
+}
+
+% generic shape of an operator
+% #1: value
+% #2: tikz options that select the correct shape
+\protected\long\def\yquant@prepare#1#2{%
+ \yquant@sort@clear%
+ \def\yquant@prepare@injectcontrols@count{0}%
+ \def\idx{0}%
+ \yquant@prepare@ifs@direct%
+ \dimen2=\yquant@config@operator@minimum@width%
+ \ifyquant@circuit@operator@hasControls%
+ \edef\yquant@prepare@list{%
+ \yquant@list@range%
+ \yquant@circuit@operator@minctrl%
+ \yquant@circuit@operator@maxctrl%
+ }%
+ \else%
+ \let\yquant@prepare@list=\empty%
+ \fi%
+ % BEGIN_FOLD register
+ \def\do##1{%
+ \ifx\yquant@lang@attr@name\empty%
+ \let\nodename=\empty%
+ \else%
+ \edef\nodename{\yquant@lang@attr@name-\idx}%
+ \fi%
+ \ifyquant@firsttoken\yquant@register@multi{##1}{%
+ \yquant@prepare@multi{#1}{#2}{##1}%
+ }{%
+ \yquant@prepare@single{#1}{#2}{##1}%
+ }%
+ \expandafter%
+ \endpgfinterruptboundingbox%
+ \expandafter\dimen\expandafter0\expandafter=%
+ \the\dimexpr\pgf@picmaxx-\pgf@picminx\relax\relax%
+ \ifdim\dimen0>\dimen2 %
+ \dimen2=\dimen0 %
+ \fi%
+ \numdef\idx{\idx+1}%
+ }%
+ \dolistloop\yquant@circuit@operator@targets%
+ % END_FOLD
+ \yquant@prepare@controls%
+ \yquant@prepare@finalize{#1}{#2}%
+}
+
+\newcount\yquant@prepare@injections
+% generic shape of an operator - but delayed to some later point
+% #1: value
+% #2: tikz options that select the correct shape
+\protected\long\def\yquant@prepare@injection#1#2{%
+ \global\advance\yquant@prepare@injections by 1 % we just keep increasing, doesn't really matter
+ \edef\yquant@draw@group{\yquant@draw@injectiongroup{\the\yquant@prepare@injections}}%
+ \def\yquant@draw@endgroup{\noexpand\yquant@draw@endinjectiongroup}%
+ \yquant@prepare{#1}{#2}%
+ \csxdef{yquant@prepare@@injection@\the\yquant@prepare@injections}{%
+ {\the\dimen2}{\unexpanded\expandafter{\yquant@circuit@operator@targets}}%
+ }%
+ \forlistloop\yquant@prepare@injection@loop\yquant@circuit@operator@targets%
+}
+
+\protected\def\yquant@prepare@injection@loop#1{%
+ \ifyquant@firsttoken\yquant@register@multi{#1}{%
+ \edef\first{\@secondoffive#1}%
+ \edef\last{\@thirdoffive#1}%
+ \yquant@for \i := \first to \last {%
+ \yquant@register@set@lastgate\i{%
+ % we only need this once, but it may be called multiple times if acting on multiple registers
+ \noexpand\ifcsname yquant@prepare@@injection@\the\yquant@prepare@injections\noexpand\endcsname%
+ % first check whether this is valid - i.e., the list of targets for this measurement is in fact a subset of the list of positive controls for the next operation
+ \ifyquant@registersubset%
+ {\unexpanded\expandafter{\yquant@circuit@operator@targets}}%
+ {\noexpand\yquant@circuit@operator@pctrls}{%
+ \yquant@prepare@inject{\the\yquant@prepare@injections}%
+ }{%
+ \yquant@prepare@inject@discard{\the\yquant@prepare@injections}%
+ }%
+ \yquant@prepare@injection@clean{\first}{\last}%
+ \noexpand\fi
+ \noexpand\@gobble%
+ }%
+ }%
+ }{%
+ \yquant@register@set@lastgate{#1}{%
+ \noexpand\ifcsname yquant@prepare@@injection@\the\yquant@prepare@injections\noexpand\endcsname%
+ % first check whether this is valid - i.e., the list of targets for this measurement is in fact a subset of the list of positive controls for the next operation
+ \ifyquant@registersubset%
+ {\unexpanded\expandafter{\yquant@circuit@operator@targets}}%
+ {\noexpand\yquant@circuit@operator@pctrls}{%
+ \yquant@prepare@inject{\the\yquant@prepare@injections}%
+ }{%
+ \yquant@prepare@inject@discard{\the\yquant@prepare@injections}
+ }%
+ \noexpand\fi%
+ \noexpand\@gobble%
+ }%
+ }%
+}
+
+\protected\def\yquant@prepare@injection@clean#1#2{%
+ \yquant@for \i := #1 to #2 {%
+ \yquant@register@set@lastgate\i{}%
+ }%
+}
+
+\protected\def\yquant@prepare@inject#1{%
+ \letcs\yquant@prepare@inject@@data{yquant@prepare@@injection@#1}%
+ \csgundef{yquant@prepare@@injection@#1}%
+ \dimen0=\expandafter\@firstoftwo\yquant@prepare@inject@@data\relax%
+ \let\@tmpconti=\yquant@register@multi@contiguous%
+ \protected\def\yquant@register@multi@contiguous##1##2{%
+ \yquant@for \i := ##1 to ##2 {%
+ \cslet{yquant@prepare@replacecontrol@\i}\empty%
+ }%
+ }%
+ \expandafter\expandafter\expandafter\etb@forlistloop%
+ \expandafter\expandafter\expandafter{%
+ \expandafter\@secondoftwo%
+ \yquant@prepare@inject@@data%
+ }{\yquant@prepare@inject@loop{#1}}%
+ \let\yquant@register@multi@contiguous=\@tmpconti%
+}
+
+\protected\def\yquant@prepare@inject@loop#1#2{%
+ \ifyquant@firsttoken\yquant@register@multi{#2}{%
+ \@fifthoffive#2% this clears all the actions for the individual contiguous slices
+ % but we need to do something for the first register
+ \csedef{yquant@prepare@replacecontrol@\@secondoffive#2}{%
+ \noexpand\ifdim\the\dimen0>\dimen2 %
+ \dimen2=\the\dimen0 \relax%
+ \noexpand\fi%
+ \yquant@sort@eadd{%
+ \yquant@draw@inject{#1}%
+ }
+ }%
+ }{%
+ \csedef{yquant@prepare@replacecontrol@#2}{%
+ \noexpand\ifdim\the\dimen0>\dimen2 %
+ \dimen2=\the\dimen0 \relax%
+ \noexpand\fi%
+ \yquant@sort@eadd{%
+ \yquant@draw@inject{#1}%
+ }%
+ }%
+ }%
+}
+
+\protected\def\yquant@prepare@inject@discard#1{%
+ \csappto{\yquant@prefix draw}{%
+ \yquant@draw@inject@outer{#1}%
+ }%
+ \csgundef{yquant@prepare@@injection@#1}%
+}
+
+\def\yquant@prepare@sort#1#2{%
+ \yquant@prepare@sort@aux#1\relax#2\relax%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}
+
+\def\yquant@prepare@sort@aux#1#2#3\relax#4#5#6\relax{%
+ \unless\ifnum#2>#5\relax%
+}
+
+\protected\def\yquant@prepare@controls@loop#1#2{%
+ \ifx\yquant@lang@attr@name\empty%
+ \let\nodename=\empty%
+ \else%
+ \edef\nodename{\yquant@lang@attr@name-#1\idx}%
+ \fi%
+ \ifcsname yquant@prepare@replacecontrol@#2\endcsname%
+ \ifcsempty{yquant@prepare@replacecontrol@#2}\relax{%
+ % do something unorthodox
+ \csname yquant@prepare@replacecontrol@#2\endcsname%
+ \numdef\idx{\idx+1}%
+ \unless\ifdefined\yquant@prepare@controltype%
+ \edef\yquant@prepare@controltype{#2}%
+ \fi%
+ }%
+ \else%
+ \yquant@sort@eadd{%
+ \expandafter\noexpand\csname yquant@draw@#1control\endcsname%
+ {#2}% register index
+ {\nodename}%
+ }%
+ \numdef\idx{\idx+1}%
+ \unless\ifdefined\yquant@prepare@controltype%
+ \edef\yquant@prepare@controltype{#2}%
+ \fi%
+ \fi%
+}
+
+\protected\def\yquant@prepare@controls{%
+ \ifyquant@circuit@operator@hasControls%
+ \def\idx{0}%
+ \forlistloop{\yquant@prepare@controls@loop p}\yquant@circuit@operator@pctrls%
+ \def\idx{0}%
+ \forlistloop{\yquant@prepare@controls@loop n}\yquant@circuit@operator@nctrls%
+ \unless\ifdefined\yquant@prepare@controltype%
+ \PackageError{yquant.sty}{Internal inconsistency detected}%
+ {Controlled action without controls found.}%
+ \fi%
+ \fi%
+}
+
+\ifnum\yquant@compat>1 %
+ \expandafter\@firstoftwo
+\else
+ \expandafter\@secondoftwo
+\fi{
+ \def\yquant@prepare@ifs@Ifnum{\noexpand\ifnum}
+ \def\yquant@prepare@ifs@Ifcase{\noexpand\ifcase}
+ \def\yquant@prepare@ifs@Or{\noexpand\or}
+ \def\yquant@prepare@ifs@Else{\noexpand\else}
+ \def\yquant@prepare@ifs@Fi{\noexpand\fi}
+ \def\yquant@prepare@ifs@Unless{\noexpand\unless}
+ \def\yquant@prepare@ifs@The{\noexpand\the}
+ \protected\def\yquant@prepare@ifs@set{%
+ \let\Ifnum=\yquant@prepare@ifs@Ifnum%
+ \let\Ifcase=\yquant@prepare@ifs@Ifcase%
+ \let\Or=\yquant@prepare@ifs@Or%
+ \let\Else=\yquant@prepare@ifs@Else%
+ \let\Fi=\yquant@prepare@ifs@Fi%
+ \let\Unless=\yquant@prepare@ifs@Unless%
+ \let\The=\yquant@prepare@ifs@The%
+ }
+ \protected\def\yquant@prepare@ifs@direct{%
+ \let\Ifnum=\ifnum%
+ \let\Ifcase=\ifcase%
+ \let\Or=\or%
+ \let\Else=\else%
+ \let\Fi=\fi%
+ \let\Unless=\unless%
+ \let\The=\the%
+ }
+}{
+ \let\yquant@prepare@ifs@set=\relax%
+ \let\yquant@prepare@ifs@direct=\relax%
+}
+\protected\long\def\yquant@prepare@finalize#1#2{%
+ % We now know the dimensions of all the registers (though we didn't bother with the height of the control knobs [if present], we just assume they are too small to change this).
+ \protected\def\idx{}%#
+ \yquant@prepare@ifs@set%
+ \let\yquant@prepare@append=\empty%
+ \yquant@sort\yquant@prepare@sort%
+ \def\do##1{%
+ \appto\yquant@prepare@append{##1}%
+ \yquant@prepare@finalize@ctrl##1%
+ }%
+ \yquant@sort@dolistloop%
+ \protected@csxappto{\yquant@prefix draw}{%
+ \yquant@draw@group%
+ {\the\dimen2}%
+ \ifyquant@circuit@operator@hasControls%
+ \yquant@register@get@type\yquant@prepare@controltype%
+ \else%
+ F%
+ \fi% if-switch whether controls are present
+ {\yquant@attrs@remaining}% custom style
+ {#2}% operator style
+ {#1}%
+ {\yquant@prepare@list}%
+ \unexpanded\expandafter{\yquant@prepare@append}%
+ \yquant@draw@endgroup%
+ \ifyquant@circuit@operator@hasControls%
+ T%
+ \else%
+ F%
+ \fi%
+ \ifx\yquant@lang@attr@name\empty%
+ {}0%
+ \else%
+ {\yquant@lang@attr@name}%
+ \ifnum\yquant@circuit@operator@numtarget=1 %
+ \ifnum\yquant@circuit@operator@numpctrl=1 %
+ \ifnum\yquant@circuit@operator@numnctrl=1 %
+ 7%
+ \else%
+ 6%
+ \fi%
+ \else%
+ \ifnum\yquant@circuit@operator@numnctrl=1 %
+ 5%
+ \else%
+ 4%
+ \fi%
+ \fi%
+ \else%
+ \ifnum\yquant@circuit@operator@numpctrl=1 %
+ \ifnum\yquant@circuit@operator@numnctrl=1 %
+ 3%
+ \else%
+ 2%
+ \fi%
+ \else%
+ \ifnum\yquant@circuit@operator@numnctrl=1 %
+ 1%
+ \else%
+ 0%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ }%
+}
+
+\protected\def\yquant@prepare@single#1#2#3{%
+ \yquant@sort@eadd{%
+ \yquant@draw@single%
+ {#3}% register index
+ {\nodename}%
+ }%
+ \unless\ifyquant@circuit@operator@hasControls%
+ \listadd\yquant@prepare@list{#3}%
+ \fi%
+ % determine the actual dimensions by a virtual draw command
+ \pgfinterruptboundingbox%
+ \yquant@config@operator@multifalse%
+ \yquant@env@virtualize@path%
+ \path%
+ (0pt, 0pt)%
+ node[/yquant/every operator, #2, /yquant/this operator,%
+ name prefix=, name suffix=, name=] {#1};%
+ \yquant@register@update@height{#3}{\the\pgf@picmaxy}%
+ \yquant@register@update@depth{#3}{\the\dimexpr-\pgf@picminy\relax}%
+}
+
+\protected\def\yquant@prepare@multi#1#2#3{%
+ \yquant@sort@eadd{%
+ \yquant@draw@multi%
+ #3%
+ {\nodename}%
+ }%
+ \unless\ifyquant@circuit@operator@hasControls%
+ \eappto\yquant@prepare@list{%
+ \expandafter\yquant@list@range\@secondandthirdoffive#3%
+ }%
+ \fi%
+ \pgfinterruptboundingbox%
+ \yquant@config@operator@multitrue%
+ \yquant@env@virtualize@path%
+ \def\yquant@prepare@content{#1}%
+ \def\yquant@prepare@style{#2}%
+ \let\yquant@register@multi@contiguous=\yquant@prepare@multi@contiguous%
+ \@fifthoffive#3%
+ \ifdim\pgf@picmaxy=-16000pt %
+ % if there was no single contiguous part before, determine the width now
+ \path%
+ (0pt, 0pt)%
+ node[/yquant/every operator, #2, /yquant/this operator,%
+ name prefix=, name suffix=, name=] {#1};%
+ \fi%
+}
+
+\protected\def\yquant@prepare@multi@contiguous#1#2#3{%
+ \global\pgf@picmaxy=-16000pt %
+ \global\pgf@picminy=16000pt %
+ \edef\cmd{%
+ \noexpand\path (0pt, 0pt)%
+ node[/yquant/every operator, \yquant@prepare@style, /yquant/this operator,%
+ /yquant/internal/multi main=\ifnum#3=1 true\else false\fi,%
+ name prefix=, name suffix=, name=]%
+ {\unexpanded\expandafter{\yquant@prepare@content}};%
+ }%
+ \cmd%
+ \ifnum#1=#2 %
+ % this is a single register in disguise
+ \yquant@register@update@height{#1}{\the\pgf@picmaxy}%
+ \yquant@register@update@depth{#1}{\the\dimexpr-\pgf@picminy\relax}%
+ \else%
+ \yquant@register@update@multispace{#1}{#2}{\the\dimexpr\pgf@picmaxy-\pgf@picminy\relax}%
+ \fi%
+}
+
+\protected\def\yquant@prepare@multiinit#1#2#3{%
+ \yquant@sort@eadd{%
+ \yquant@draw@multiinit%
+ #3%
+ {\nodename}%
+ }%
+ \unless\ifyquant@circuit@operator@hasControls%
+ \eappto\yquant@prepare@list{%
+ \expandafter\yquant@list@range\@secondandthirdoffive#3%
+ }%
+ \fi%
+ \pgfinterruptboundingbox%
+ \yquant@config@operator@multitrue%
+ \yquant@env@virtualize@path%
+ \edef\first{\@secondoffive#3}%
+ \def\pgfdecorationsegmentaspect{0.5}%
+ \def\pgfdecorationsegmentfromto{0-1}%
+ \ifnum\yquant@compat<2 %
+ \path (0pt, 0pt)%
+ node[/yquant/every operator, #2, /yquant/every multi label,%
+ /yquant/this operator, name prefix=, name suffix=, name=] {#1};%
+ \else%
+ \path (0pt, 0pt)%
+ node[/yquant/every operator, #2,%
+ /yquant/this operator, name prefix=, name suffix=, name=] {#1};%
+ \fi%
+ \ifnum\@secondoffive#3=\@thirdoffive#3 %
+ % this is a single register in disguise
+ \yquant@register@update@height{\first}{\the\pgf@picmaxy}%
+ \yquant@register@update@depth{\first}{\the\dimexpr-\pgf@picminy\relax}%
+ \else%
+ % this may not be sufficient. Since the text position need not necessarily be at the center (if the register corresponding to the visual center is excluded), we may require some space here which we will later only use in parts, but then extend where we should not. However, resolving this would require a special handling when calculating the y positions at the end, meaning we could not use the multispace facility. Let's assume discontiguous init registers are so scarce that this does not matter (disable the acquiration by using the operator/overlay key).
+ \edef\upd{%
+ \yquant@register@update@multispace%
+ {\first}{\@thirdoffive#3}%
+ {\the\dimexpr\pgf@picmaxy-\pgf@picminy\relax}%
+ }%
+ \upd%
+ \fi%
+}
+
+\protected\long\def\yquant@prepare@output@single#1#2#3{%
+ \yquant@sort@eadd{%
+ \yquant@draw@output@single%
+ {#3}% register index
+ {\nodename}%
+ }%
+ \listadd\yquant@prepare@list{#3}%
+ % determine the actual dimensions by a virtual draw command
+ \pgfinterruptboundingbox%
+ \yquant@config@operator@multifalse%
+ \yquant@env@virtualize@path%
+ % #2 is empty anyway
+ \edef\cmd{%
+ \noexpand\path (0pt, 0pt)%
+ node[\ifnum\yquant@compat>1 /yquant/every operator, \fi /yquant/every output,%
+ /yquant/every \yquant@register@type@tostring{\yquant@register@get@type{#3}} output,%
+ \ifnum\yquant@compat>1 /yquant/this operator, \fi%
+ name prefix=, name suffix=, name=] {\unexpanded{#1}};%
+ }%
+ \cmd%
+ \yquant@register@update@height{#3}{\the\pgf@picmaxy}%
+ \yquant@register@update@depth{#3}{\the\dimexpr-\pgf@picminy\relax}%
+}
+
+\protected\long\def\yquant@prepare@output@multi#1#2#3{%
+ \yquant@sort@eadd{%
+ \yquant@draw@output@multi%
+ #3%
+ {\nodename}%
+ }%
+ \eappto\yquant@prepare@list{%
+ \expandafter\yquant@list@range\@secondandthirdoffive#3%
+ }%
+ \pgfinterruptboundingbox%
+ \yquant@config@operator@multitrue%
+ \yquant@env@virtualize@path%
+ % We need to draw a line with some vertical extent, so just take the current height, whether it makes sense or not. We only need an estimate
+ \edef\first{\@secondoffive#3}%
+ \def\pgfdecorationsgmentaspect{0.5}%
+ \def\pgfdecorationsegmentfromto{0-1}%
+ % #2 is empty anyway
+ \edef\cmd{%
+ \noexpand\path (0pt, 0pt)
+ node[\ifnum\yquant@compat>1 /yquant/every operator, /yquant/every output, \fi%
+ \ifnum\yquant@compat<2 /yquant/every multi output,\fi%
+ \ifnum\yquant@compat>1 /yquant/this operator,\fi%
+ name prefix=, name suffix=, name=] {\unexpanded{#1}};%
+ }%
+ \cmd%
+ \ifnum\@secondoffive#3=\@thirdoffive#3 %
+ % this is a single register in disguise
+ \yquant@register@update@height{\first}{\the\pgf@picmaxy}%
+ \yquant@register@update@depth{\first}{\the\dimexpr-\pgf@picminy\relax}%
+ \else%
+ % this may not be sufficient. Since the text position need not necessarily be at the center (if the register corresponding to the visual center is excluded), we may require some space here which we will later only use in parts, but then extend where we should not. However, resolving this would require a special handling when calculating the y positions at the end, meaning we could not use the multispace facility. Let's assume discontiguous output registers are so scarce that this does not matter (disable the acquiration by using the operator/overlay key).
+ \edef\upd{%
+ \yquant@register@update@multispace%
+ {\first}{\@thirdoffive#3}%
+ {\the\dimexpr\pgf@picmaxy-\pgf@picminy\relax}%
+ }%
+ \upd%
+ \fi%
+}
+
+% BEGIN_FOLD replacement commands for draw actions that just keep track of the width
+\protected\long\def\yquant@prepare@subcircuit@init#1#2{%
+ \csdef{\yquant@prefix xpos@#1}{0pt}%
+ \yquant@register@set@type{#1}{#2}%
+}
+
+\protected\def\yquant@prepare@subcircuit@getmaxx#1{%
+ \begingroup%
+ \dimen0=-16383.99999pt %
+ \def\do##1{%
+ \ifcsname\yquant@prefix xpos@##1\endcsname%
+ \dimen2=\csname\yquant@prefix xpos@##1\endcsname\relax%
+ \ifdim\dimen0<\dimen2 %
+ \dimen0=\dimen2 %
+ \fi%
+ \else%
+ \PackageError{yquant.sty}{Internal inconsistency detected}%
+ {Undefined internal wire x position.}%
+ \fi%
+ }%
+ \dolistloop{#1}%
+ \expandafter%
+ \endgroup%
+ \expandafter\def\expandafter\newx\expandafter{\the\dimen0}%
+}
+
+\protected\def\yquant@prepare@subcircuit@move@loop#1{%
+ \cslet{\yquant@prefix xpos@#1}\newx%
+}
+
+\protected\long\def\yquant@prepare@subcircuit@group#1#2#3#4#5#6#7\yquant@draw@endgroup{%
+ \begingroup%
+ \yquant@prepare@subcircuit@getmaxx{#6}%
+ % If the quotes library is loaded, activate it. (else, this is by default \relax)
+ \tikz@enable@node@quotes%
+ \yquant@config@operator@position@rightalignfalse%
+ \yquant@config@operator@position@advancetrue%
+ \yquant@set{#3}%
+ \let\next=\endgroup%
+ \ifyquant@config@operator@position@rightalign%
+ \ifdim#1>-\pgf@picminx%
+ \global\pgf@picminx=-\dimexpr#1\relax%
+ \fi%
+ \else%
+ \ifyquant@env@seamless{%
+ \ifdim\newx=0pt %
+ \dimdef\newx{%
+ \newx+#1%
+ }%
+ \else%
+ \dimdef\newx{%
+ \newx+\yquant@config@operator@sep+#1%
+ }%
+ \fi%
+ }{%
+ \dimdef\newx{%
+ \newx+\yquant@config@operator@sep+#1%
+ }%
+ }%
+ \ifdim\newx>\pgf@picmaxx%
+ \global\pgf@picmaxx=\newx%
+ \fi%
+ \ifyquant@config@operator@position@advance%
+ \edef\next{%
+ \endgroup%
+ \def\noexpand\newx{\newx}%
+ \noexpand\forlistloop\yquant@prepare@subcircuit@move@loop{#6}%
+ }%
+ \fi%
+ \fi%
+ \next%
+ \@gobblethree% three arguments for the endgroup
+}
+
+\protected\def\yquant@prepare@subcircuit@hspace#1#2{%
+ \yquant@prepare@subcircuit@getmaxx{#1}%
+ \dimdef\newx{\newx+#2}%
+ \forlistloop\yquant@prepare@subcircuit@move@loop{#1}%
+ \ifdim\newx>\pgf@picmaxx %
+ \global\pgf@picmaxx=\newx %
+ \fi%
+}
+
+\protected\def\yquant@prepare@subcircuit@endwires{%
+ \expandafter\ifx\csname\yquant@prefix outputs\endcsname\relax%
+ % to have a symmetric situation, we extend again one separation at the end, unless this is supposed to be seamless and we don't have outputs (for seamless circuits with outputs, extend - since this extension will be between last register and output)
+ \ifyquant@env@seamless\relax{%
+ \global\advance\pgf@picmaxx by \yquant@config@operator@sep\relax%
+ }%
+ \else%
+ % if we have outputs, those will be realized as additional drawing groups following this macro, so increasing the picture at this point is rather pointless. Instead, we adjust the wire positions appropriately. The additional separation will be inserted by the outputs.
+ \begingroup%
+ \dimen0=-16383.99999pt %
+ \yquant@fordown \i := \csname\yquant@prefix registers\endcsname downto 1 {%
+ \ifcsname\yquant@prefix xpos@\i\endcsname%
+ \dimen2=\csname\yquant@prefix xpos@\i\endcsname\relax%
+ \ifdim\dimen0<\dimen2 %
+ \dimen0=\dimen2 %
+ \fi%
+ \else%
+ \PackageError{yquant.sty}{Internal inconsistency detected}%
+ {Undefined internal wire x position.}%
+ \fi%
+ }%
+ \expandafter%
+ \endgroup%
+ \expandafter\def\expandafter\newx\expandafter{\the\dimen0}%
+ \yquant@fordown \i := \csname\yquant@prefix registers\endcsname downto 1 {%
+ \cslet{\yquant@prefix xpos@\i}\newx%
+ }%
+ \fi%
+ \let\yquant@circuit@endwires@finalize=\relax%
+ \forlistcsloop\yquant@prepare@subcircuit@endwires@loop{\yquant@prefix inonly}%
+}
+
+\protected\def\yquant@prepare@subcircuit@endwires@loop#1{%
+ \eappto\yquant@circuit@endwires@finalize{%
+ \yquant@register@set@type{#1}\noexpand\yquant@register@type@none%
+ }%
+}
+% END_FOLD
+
+\newbox\yquant@prepare@subcircuit@box
+
+\protected\long\def\yquant@prepare@subcircuit#1{%
+ \yquant@sort@clear%
+ \def\idx{0}%
+ \dimen2=\yquant@config@operator@minimum@width%
+ \ifyquant@circuit@operator@hasControls%
+ \edef\yquant@prepare@list{%
+ \yquant@list@range%
+ \yquant@circuit@operator@minctrl%
+ \yquant@circuit@operator@maxctrl%
+ }%
+ \else%
+ \let\yquant@prepare@list=\empty%
+ \fi%
+ % BEGIN_FOLD register
+ \def\do##1{%
+ \ifx\yquant@lang@attr@name\empty%
+ \let\nodename=\empty%
+ \else%
+ \edef\nodename{\yquant@lang@attr@name-\idx}%
+ \fi%
+ \ifyquant@firsttoken\yquant@register@multi{##1}{%
+ \yquant@prepare@subcircuit@multi{#1}{##1}%
+ }{%
+ \yquant@prepare@subcircuit@single{#1}{##1}%
+ }%
+ \pgfinterruptboundingbox%
+ % In order to determine the width of the subcircuit, we must execute the draw command at preparation time, where we will remap all relevant commands to virtual ones so that this has no effect and is not very costly. Although nothing should be drawn, as a precaution, we "draw" everything in a box that is dropped afterwards.
+ % There will still be some extra width and height taken by separations or other things related to the box itself.
+ \yquant@env@virtualize@path%
+ \begingroup%
+ \let\yquant@parent=\yquant@prefix%
+ \edef\yquant@prefix{yquant@env\yquant@circuit@subcircuit@id @}%
+ \let\yquant@draw@init=\yquant@prepare@subcircuit@init%
+ \let\yquant@draw@group=\yquant@prepare@subcircuit@group%
+ \let\yquant@draw@alias=\@gobble%
+ \let\yquant@draw@hspace=\yquant@prepare@subcircuit@hspace%
+ \let\yquant@circuit@endwires=\yquant@prepare@subcircuit@endwires%
+ \let\yquant@circuit@flushwire=\@gobble%
+ \let\yquant@circuit@setstyle=\@gobbletwo%
+ \let\yquant@circuit@addstyle=\@gobbletwo%
+ % do not overwrite \yquant@register@set@type, which may also occur - we want to change the register type!
+ % restore tikz commands... as in env@end
+ \let\path=\tikz@command@path%
+ \let\tikz@lib@scope@check=\yquant@env@substikz@scopecheck%
+ \let\tikz@scope@opt=\yquant@env@substikz@scope%
+ \let\endtikz@scope@env=\yquant@env@substikz@endscope%
+ \let\endscope=\endtikz@scope@env%
+ \let\stopscope=\endscope%
+ \global\pgf@picmaxx=0pt %
+ \global\pgf@picminx=0pt %
+ \global\setbox\yquant@prepare@subcircuit@box=\vbox to 1sp{%
+ \csname\yquant@prefix draw\endcsname%
+ }%
+ \ifdim\pgf@picmaxy=-16000pt %
+ \global\pgf@picmaxy=0pt %
+ \global\pgf@picminy=0pt %
+ \fi%
+ \ifyquant@env@seamless{%
+ % for seamless circuits, we do not have an initial separation. However, if there is an label to registers (which you should not do for seamless subcircuits), the "initial" separation is in fact an inner one, so we need it.
+ \ifdim\pgf@picminx<0pt %
+ \global\advance\pgf@picmaxx by \yquant@config@operator@sep\relax%
+ \fi%
+ }\relax%
+ \global\wd\yquant@prepare@subcircuit@box=\dimexpr\pgf@picmaxx-\pgf@picminx\relax%
+ \endgroup%
+ \edef\yquant@prepare@subcircuit@width{%
+ {\the\wd\yquant@prepare@subcircuit@box}% inner width
+ {\noexpand\the\dimexpr\pgf@picmaxx-\pgf@picminx\relax}% outer width
+ {\the\pgf@picminx}% left margin
+ }%
+ \pgfresetboundingbox%
+ \path%
+ (0pt, 0pt)%
+ node[/yquant/every operator, #1,%
+ /yquant/operators/every subcircuit box, /yquant/this operator,%
+ /yquant/operators/this subcircuit box,%
+ name prefix=, name suffix=, name=, y radius=0pt]%
+ {\box\yquant@prepare@subcircuit@box};%
+ % the extra height is taken care for by manually inserting it to the height of the first and last register in the subcircuit
+ \yquant@register@inject@extents{\pgf@picmaxy}{-\pgf@picminy}%
+ \edef\cmd{%
+ \dimen0=\the\dimexpr\pgf@picmaxx-\pgf@picminx\relax\relax%
+ \yquant@prepare@subcircuit@add%
+ }%
+ \expandafter%
+ \endpgfinterruptboundingbox%
+ \cmd%
+ \ifdim\dimen0>\dimen2 %
+ \dimen2=\dimen0 %
+ \fi%
+ \numdef\idx{\idx+1}%
+ }%
+ \dolistloop\yquant@circuit@operator@targets%
+ % END_FOLD
+ \yquant@prepare@controls%
+ \preto\yquant@attrs@remaining{internal/no advance,}%
+ \yquant@prepare@finalize{}{#1}%
+}
+
+\protected\def\yquant@prepare@subcircuit@single#1#2{%
+ \yquant@config@operator@multifalse%
+ \edef\yquant@circuit@subcircuit@param{#2\yquant@list@delim}%
+ \yquant@circuit@subcircuit{#1}%
+ \unless\ifyquant@circuit@operator@hasControls%
+ \listadd\yquant@prepare@list{#2}%
+ \fi%
+ \edef\yquant@prepare@subcircuit@add{%
+ \yquant@sort@eadd{%
+ \yquant@draw@subcircuit@single%
+ {#2}% register index
+ {\yquant@circuit@subcircuit@id}%
+ {\nodename}%
+ {\noexpand\yquant@prepare@subcircuit@width}%
+ }%
+ }%
+}
+
+\protected\def\yquant@prepare@subcircuit@multi#1#2{%
+ \yquant@config@operator@multitrue%
+ \edef\yquant@circuit@subcircuit@param{\@fifthoffive#2}%
+ \yquant@sort@list\yquant@circuit@subcircuit@param\yquant@sort@ascending%
+ \yquant@circuit@subcircuit{#1}%
+ \unless\ifyquant@circuit@operator@hasControls%
+ \eappto\yquant@prepare@list{%
+ \expandafter\yquant@list@range\@secondandthirdoffive#2%
+ }%
+ \fi%
+ \edef\yquant@prepare@subcircuit@add{%
+ \yquant@sort@eadd{%
+ \yquant@draw@subcircuit@multi%
+ #2%
+ {\yquant@circuit@subcircuit@id}%
+ {\nodename}%
+ {\noexpand\yquant@prepare@subcircuit@width}%
+ }%
+ }%
+}
+
+\protected\def\yquant@prepare@finalize@ctrl#1{%
+ \let\next=\yquant@prepare@finalize@ctrl@single%
+ \ifx\yquant@draw@multi#1%
+ \let\next=\yquant@prepare@finalize@ctrl@multi%
+ \else%
+ \ifx\yquant@draw@multiinit#1%
+ \let\next=\yquant@prepare@finalize@ctrl@multi%
+ \else%
+ \ifx\yquant@draw@output@multi#1%
+ \let\next=\yquant@prepare@finalize@ctrl@multi%
+ \else%
+ \ifx\yquant@draw@subcircuit@multi#1%
+ \let\next=\yquant@prepare@finalize@ctrl@subcircuit@multi%
+ \else%
+ \ifx\yquant@draw@subcircuit@single#1%
+ \let\next=\yquant@prepare@finalize@ctrl@subcircuit@single%
+ \else%
+ \ifx\yquant@draw@inject#1%
+ \let\next=\@gobble%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \next%
+}
+
+\protected\def\yquant@prepare@finalize@ctrl@single#1#2{%
+ \eappto\yquant@prepare@append{%
+ \yquant@prepare@callback@draw{#1}%
+ }%
+ \yquant@prepare@callback@prepare{#1}%
+}
+
+\protected\def\yquant@prepare@finalize@ctrl@multi#1#2#3#4#5{%
+ \let\yquant@register@multi@contiguous=\yquant@prepare@finalize@ctrl@multi@contiguous%
+ \ifyquant@circuit@operator@hasControls%
+ \ifyquant@config@operator@multi@warn%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{0}%
+ \else%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{2}%
+ \fi%
+ \else%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{2}%
+ \fi%
+ \cslet{\yquant@prefix finalize@ctrl@prepare@appto}\empty%
+ #4%
+ \eappto\yquant@prepare@append{\csname\yquant@prefix finalize@ctrl@prepare@appto\endcsname}%
+ \csgundef{\yquant@prefix finalize@ctrl@prepare@appto}%
+}
+
+\protected\def\yquant@prepare@finalize@ctrl@multi@contiguous#1#2#3{%
+ \ifnum\yquant@prepare@finalize@ctrl@multi@contiguous@warn=1 %
+ \PackageWarning{yquant.sty}{Ambiguous operation: multiple discontiguous multi-register operations in combination with controls make it hard to visually determine on which registers the gates act on.}%
+ % switch the warning off for this group (which is a single operation)
+ \yquant@config@operator@multi@warnfalse%
+ \def\yquant@prepare@finalize@ctrl@multi@contiguous@warn{2}%
+ \else%
+ \numdef\yquant@prepare@finalize@ctrl@multi@contiguous@warn{%
+ \yquant@prepare@finalize@ctrl@multi@contiguous@warn+1%
+ }%
+ \fi%
+ {% save \body
+ \yquant@for \yquant@i := #1 to #2 {{% let inner loop mess up with macros
+ \csxappto{\yquant@prefix finalize@ctrl@prepare@appto}{%
+ \expandafter\yquant@prepare@callback@draw\expandafter{\yquant@i}%
+ }%
+ \expandafter\yquant@prepare@callback@prepare\expandafter{\yquant@i}%
+ }}%
+ }%
+}
+
+\def\yquant@prepare@finalize@ctrl@subcircuit@single#1#2#3#4{%
+ \yquant@prepare@finalize@ctrl@single{#1}{#3}%
+}
+
+\protected\def\yquant@prepare@finalize@ctrl@subcircuit@multi@loop#1{%
+ \eappto\yquant@prepare@append{%
+ \yquant@prepare@callback@draw{#1}%
+ }%
+ \yquant@prepare@callback@prepare{#1}%
+}
+
+\protected\def\yquant@prepare@finalize@ctrl@subcircuit@multi#1#2#3#4#5#6#7{%
+ % there are no contiguous parts here, don't call the normal @multi
+ \forlistloop\yquant@prepare@finalize@ctrl@subcircuit@multi@loop{#4}%
+} \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-registers.tex b/graphics/pgf/contrib/yquant/tex/yquant-registers.tex
index c90a44614c..2c44fd039b 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-registers.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-registers.tex
@@ -39,65 +39,70 @@
% BEGIN_FOLD Constructor: create single register and cleanup environment
% #1: type
-% #2: x position
-% #3: name
-% #4: index
-\protected\def\yquant@register@define#1#2#3#4{%
+% #2: name
+% #3: index
+\protected\def\yquant@register@define#1#2#3{%
\csnumgdef{\yquant@prefix registers}%
{\csname\yquant@prefix registers\endcsname+1}%
\csxdef{\yquant@prefix register@\csname\yquant@prefix registers\endcsname}{%
{#1}% type
- {#2}% x pos
- {{\the\dimexpr.5\dimexpr\yquant@config@register@minimum@height\relax\relax}%
- {\the\dimexpr.5\dimexpr\yquant@config@register@minimum@height\relax\relax}}% height and depth; at the end, the y position
- {{\yquant@env@create@x}{\yquant@env@create@x}{}{}}% wire start positions and clipping
+ {0pt}% x pos
+ {{\yquant@config@register@minimum@height}%
+ {\yquant@config@register@minimum@depth}%
+ {}}% height, depth, and multi-space parts; at the end, the y position
+ {{0pt}{0pt}{}{}}% wire start positions and clipping
{}% wire style
+ {\yquant@register@flag@clean}% information about the last gate
}%
- \global\csletcs{\yquant@prefix registername@#3[#4]}{\yquant@prefix registers}%
- \csxdef{\yquant@prefix registerhigh@#3}{#4}%
+ \global\csletcs{\yquant@prefix registername@#2[#3]}{\yquant@prefix registers}%
+ \csxdef{\yquant@prefix registerhigh@#2}{#3}%
\yquant@cleanup@csadd{\yquant@prefix register@\csname\yquant@prefix registers\endcsname}%
- \yquant@cleanup@csadd{\yquant@prefix registername@#3[#4]}%
- \ifnum0=#4\relax%
- \yquant@cleanup@csadd{\yquant@prefix registerhigh@#3}%
+ \yquant@cleanup@csadd{\yquant@prefix registername@#2[#3]}%
+ \ifnum0=#3\relax%
+ \yquant@cleanup@csadd{\yquant@prefix registerhigh@#2}%
\fi%
}
% in a subcircuit, create a new register that is only an alias for an existing register in the outer circuit.
-% #5: id in the outer circuit
-\protected\def\yquant@register@alias#1#2#3#4#5{%
+% #4: id in the outer circuit
+\protected\def\yquant@register@alias#1#2#3#4{%
\csnumgdef{\yquant@prefix registers}%
{\csname\yquant@prefix registers\endcsname+1}%
- \ifcsname\yquant@parent registermap@#5\endcsname%
+ \ifcsname\yquant@parent registermap@#4\endcsname%
% the parent is already an alias itself, pass this on transparently
\global\csletcs%
{\yquant@prefix registermap@\csname\yquant@prefix registers\endcsname}%
- {\yquant@parent registermap@#5}%
+ {\yquant@parent registermap@#4}%
\else%
\csxdef{\yquant@prefix registermap@\csname\yquant@prefix registers\endcsname}%
- {\yquant@parent register@#5}%
- \fi%
- % even though this is an alias, we still need to keep track of its internal dimensions
- \csgdef{\yquant@prefix registerdim@\csname\yquant@prefix registers\endcsname}%
- {{0pt}{0pt}}%
- \yquant@cleanup@csadd{\yquant@prefix registerdim@\csname\yquant@prefix registers\endcsname}%
- \global\csletcs{\yquant@prefix registername@#3[#4]}{\yquant@prefix registers}%
- \csxdef{\yquant@prefix registerhigh@#3}{#4}%
- \yquant@cleanup@csadd{\yquant@prefix registermap@\csname\yquant@prefix registers\endcsname}%
- \yquant@cleanup@csadd{\yquant@prefix registername@#3[#4]}%
- \ifnum0=#4\relax%
- \yquant@cleanup@csadd{\yquant@prefix registerhigh@#3}%
+ {\yquant@parent register@#4}%
\fi%
- \csxdef{\yquant@prefix lastinput}{{\csname\yquant@prefix registers\endcsname}{#5}}%
- \unless\ifcsname\yquant@prefix firstinput\endcsname%
- \csxdef{\yquant@prefix firstinput}{{\csname\yquant@prefix registers\endcsname}{#5}}%
- \yquant@cleanup@csadd{\yquant@prefix firstinput}%
- \yquant@cleanup@csadd{\yquant@prefix lastinput}%
+ % we still store height, depth, and multi-space parts. To keep the same macros, we create a full register structure, but "abuse" the type component to contain the direct parent
+ \csxdef{\yquant@prefix register@\csname\yquant@prefix registers\endcsname}{%
+ {{\expandafter\yquant@register@alias@extract\yquant@parent}{#4}}% direct parent (circuit id, register id)
+ {}% unused
+ {{\yquant@config@register@minimum@height}%
+ {\yquant@config@register@minimum@depth}%
+ {}}% height, depth, and multi-space parts
+ {}% unused
+ {}% unused
+ {}% unused
+ }%
+ \global\csletcs{\yquant@prefix registername@#2[#3]}{\yquant@prefix registers}%
+ \csxdef{\yquant@prefix registerhigh@#2}{#3}%
+ \yquant@cleanup@csadd{\yquant@prefix register@\csname\yquant@prefix registers\endcsname}%
+ \yquant@cleanup@csadd{\yquant@prefix registermap@\csname\yquant@prefix registers\endcsname}%
+ \yquant@cleanup@csadd{\yquant@prefix registername@#2[#3]}%
+ \ifnum0=#3\relax%
+ \yquant@cleanup@csadd{\yquant@prefix registerhigh@#2}%
\fi%
\expandafter\yquant@register@set@@aux%
\csname\csname\yquant@prefix registermap@\csname\yquant@prefix registers\endcsname\endcsname\endcsname%
- \yquant@register@set@x@aux%
- {#2}%
+ \yquant@register@set@typelastgate@aux%
+ {{#1}{\yquant@register@flag@clean}}%
}
+
+\def\yquant@register@alias@extract yquant@env#1@{#1}%
% END_FOLD
% BEGIN_FOLD Converter: convert a register name to its id
@@ -162,19 +167,7 @@
\fi%
% pre-set y position
\yquant@for \idx := \idx to \numexpr \len -1\relax {%
- \yquant@register@define%
- \yquant@register@type@q%
- {\yquant@env@create@x}%
- \reg\idx%
- % Prepare to shipout
- \csxappto{\yquant@prefix draw}{%
- \yquant@lang@create@draw{\csname\yquant@prefix registers\endcsname}%
- {0pt}%
- {qubit}%
- 0%
- {}%
- {}%
- }%
+ \yquant@prepare@create\reg\idx\yquant@register@type@q%
}%
\endgroup%
}
@@ -680,7 +673,17 @@
\fi%
}
-\def\yquant@register@get@type@aux#1#2#3#4#5{#1}
+\def\yquant@register@get@parent#1{%
+ \ifcsname\yquant@prefix registermap@#1\endcsname%
+ \expandafter\expandafter\expandafter%
+ \yquant@register@get@type@aux\csname\yquant@prefix register@#1\endcsname%
+ \else%
+ \PackageError{yquant.sty}{Internal inconsistency detected}%
+ {Tried to get parent of a non-connected wire.}%
+ \fi%
+}
+
+\def\yquant@register@get@type@aux#1#2#3#4#5#6{#1}
\def\yquant@register@get@x#1{%
\ifcsname\yquant@prefix registermap@#1\endcsname%
@@ -692,31 +695,38 @@
\fi%
}
-\def\yquant@register@get@x@aux#1#2#3#4#5{#2}
+\def\yquant@register@get@x@aux#1#2#3#4#5#6{#2}
\def\yquant@register@get@height#1{%
- \ifcsname\yquant@prefix registermap@#1\endcsname%
- \expandafter\expandafter\expandafter%
- \@firstoftwo\csname\yquant@prefix registerdim@#1\endcsname%
- \else%
- \expandafter\expandafter\expandafter%
- \yquant@register@get@height@aux\csname\yquant@prefix register@#1\endcsname%
- \fi%
+ \expandafter\expandafter\expandafter%
+ \yquant@register@get@height@aux\csname\yquant@prefix register@#1\endcsname%
+}
+
+\def\yquant@register@peek@height#1#2{%
+ \expandafter\expandafter\expandafter%
+ \yquant@register@get@height@aux\csname yquant@env#1@register@#2\endcsname%
}
-\def\yquant@register@get@height@aux#1#2#3#4#5{\@firstoftwo#3}
+\def\yquant@register@get@height@aux#1#2#3#4#5#6{\@firstofthree#3}
\def\yquant@register@get@depth#1{%
- \ifcsname\yquant@prefix registermap@#1\endcsname%
- \expandafter\expandafter\expandafter%
- \@secondoftwo\csname\yquant@prefix registerdim@#1\endcsname%
- \else%
- \expandafter\expandafter\expandafter%
- \yquant@register@get@depth@aux\csname\yquant@prefix register@#1\endcsname%
- \fi%
+ \expandafter\expandafter\expandafter%
+ \yquant@register@get@depth@aux\csname\yquant@prefix register@#1\endcsname%
+}
+
+\def\yquant@register@peek@depth#1#2{%
+ \expandafter\expandafter\expandafter%
+ \yquant@register@get@depth@aux\csname yquant@env#1@register@#2\endcsname%
}
-\def\yquant@register@get@depth@aux#1#2#3#4#5{\@secondoftwo#3}
+\def\yquant@register@get@depth@aux#1#2#3#4#5#6{\@secondofthree#3}
+
+\def\yquant@register@get@multispace#1{%
+ \expandafter\expandafter\expandafter%
+ \yquant@register@get@multispace@aux\csname\yquant@prefix register@#1\endcsname%
+}
+
+\def\yquant@register@get@multispace@aux#1#2#3#4#5#6{\@thirdofthree#3}
% The y parameter get macros exist in two forms: The protected one is used during the storage to the draw macro; it should never be executed. The env environment then maps them to their proper expandable forms.
\protected\def\yquant@register@get@y{%
@@ -739,7 +749,7 @@
\fi%
}
-\def\yquant@register@get@y@aux#1#2#3#4#5{#3}
+\def\yquant@register@get@y@aux#1#2#3#4#5#6{#3}
% y distance between two registers.
\def\yquant@register@get@ydist#1#2{%
@@ -766,8 +776,8 @@
}%
}
-\protected\def\yquant@register@get@lastwire@aux#1#2#3#4#5#6{%
- \def#6{#4}%
+\protected\def\yquant@register@get@lastwire@aux#1#2#3#4#5#6#7{%
+ \def#7{#4}%
}
\def\yquant@register@get@style#1{%
@@ -780,7 +790,28 @@
\fi%
}
-\def\yquant@register@get@style@aux#1#2#3#4#5{#5}
+\def\yquant@register@get@style@aux#1#2#3#4#5#6{#5}
+
+\protected\long\def\yquant@register@execclear@lastgate#1#2{%
+ \ifcsname\yquant@prefix registermap@#1\endcsname%
+ \expandafter%
+ \yquant@register@execclear@lastgate@aux@i\csname\csname\yquant@prefix registermap@#1\endcsname\endcsname{#2}%
+ \else%
+ \expandafter%
+ \yquant@register@execclear@lastgate@aux@i\csname\yquant@prefix register@#1\endcsname{#2}%
+ \fi%
+}
+
+\def\yquant@register@execclear@lastgate@aux@i#1{%
+ \expandafter\yquant@register@execclear@lastgate@aux@ii#1#1%
+}
+
+\long\def\yquant@register@execclear@lastgate@aux@ii#1#2#3#4#5#6#7#8{%
+ \ifstrempty{#6}\relax{%
+ #6{#8}%
+ \xdef#7{\unexpanded{{#1}{#2}{#3}{#4}{#5}{}}}%
+ }%
+}
\def\yquant@register@get@typeywire#1{%
\ifcsname\yquant@prefix registermap@#1\endcsname%
@@ -797,10 +828,10 @@
}%
}
-\protected\def\yquant@register@get@typeywire@aux#1#2#3#4#5#6#7#8{%
- \def#6{#1}%
- \def#7{#3}%
- \def#8{#4}%
+\protected\def\yquant@register@get@typeywire@aux#1#2#3#4#5#6#7#8#9{%
+ \def#7{#1}%
+ \def#8{#3}%
+ \def#9{#4}%
}%
% Set #1 to the maximum x value found between #2 and #3
@@ -833,6 +864,12 @@
\endgroup%
\expandafter\def\expandafter#1\expandafter{\the\dimen0}%
}
+
+\protected\def\yquant@register@flag@clean#1{%
+ \ifstrequal{#1}{init}{%
+ \advance\count8 by 1 %
+ }\relax%
+}
% END_FOLD
% BEGIN_FOLD Setters: change register information
@@ -856,8 +893,8 @@
\yquant@register@set@type@aux%
}
-\long\def\yquant@register@set@type@aux#1#2#3#4#5#6{%
- {#6}\unexpanded{{#2}{#3}{#4}{#5}}%
+\long\def\yquant@register@set@type@aux#1#2#3#4#5#6#7{%
+ {#7}\unexpanded{{#2}{#3}{#4}{#5}{#6}}%
}
\protected\def\yquant@register@set@x#1{%
@@ -876,23 +913,12 @@
\yquant@register@set@x@aux%
}
-\long\def\yquant@register@set@x@aux#1#2#3#4#5#6{%
- \unexpanded{{#1}}{#6}\unexpanded{{#3}{#4}{#5}}%
+\long\def\yquant@register@set@x@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}}{#7}\unexpanded{{#3}{#4}{#5}{#6}}%
}
\protected\def\yquant@register@update@height#1#2{%
- \ifcsname\yquant@prefix registermap@#1\endcsname%
- \ifdim#2>%
- \expandafter\expandafter\expandafter%
- \@firstoftwo\csname\yquant@prefix registerdim@#1\endcsname%
- \relax%
- \csxdef{\yquant@prefix registerdim@#1}{%
- {#2}%
- {\expandafter\expandafter\expandafter%
- \@secondoftwo\csname\yquant@prefix registerdim@#1\endcsname}%
- }%
- \fi%
- \else%
+ \unless\ifyquant@lang@attr@overlay@height%
\ifdim#2>%
\expandafter\expandafter\expandafter%
\yquant@register@get@height@aux\csname\yquant@prefix register@#1\endcsname%
@@ -904,25 +930,22 @@
\fi%
}
-\long\def\yquant@register@set@height@aux#1#2#3#4#5#6{%
+\protected\def\yquant@register@set@height@remote#1#2#3{%
+ \expandafter\yquant@register@set@@aux%
+ \csname yquant@env#1@register@#2\endcsname%
+ \yquant@register@set@height@aux{#3}%
+}
+
+\long\def\yquant@register@set@height@aux#1#2#3#4#5#6#7{%
\unexpanded{{#1}{#2}}%
- {{#6}{\unexpanded\expandafter{\@secondoftwo#3}}}%
- \unexpanded{{#4}{#5}}%
+ {{#7}%
+ {\unexpanded\expandafter{\@secondofthree#3}}%
+ {\unexpanded\expandafter{\@thirdofthree#3}}}%
+ \unexpanded{{#4}{#5}{#6}}%
}
\protected\def\yquant@register@update@depth#1#2{%
- \ifcsname\yquant@prefix registermap@#1\endcsname%
- \ifdim#2>%
- \expandafter\expandafter\expandafter%
- \@secondoftwo\csname\yquant@prefix registerdim@#1\endcsname%
- \relax%
- \csxdef{\yquant@prefix registerdim@#1}{%
- {\expandafter\expandafter\expandafter%
- \@firstoftwo\csname\yquant@prefix registerdim@#1\endcsname}%
- {#2}%
- }%
- \fi%
- \else%
+ \unless\ifyquant@lang@attr@overlay@depth%
\ifdim#2>%
\expandafter\expandafter\expandafter%
\yquant@register@get@depth@aux\csname\yquant@prefix register@#1\endcsname%
@@ -934,10 +957,75 @@
\fi%
}
-\long\def\yquant@register@set@depth@aux#1#2#3#4#5#6{%
+\protected\def\yquant@register@set@depth@remote#1#2#3{%
+ \expandafter\yquant@register@set@@aux%
+ \csname yquant@env#1@register@#2\endcsname%
+ \yquant@register@set@depth@aux{#3}%
+}
+
+\long\def\yquant@register@set@depth@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}{#2}}%
+ {{\unexpanded\expandafter{\@firstofthree#3}}%
+ {#7}%
+ {\unexpanded\expandafter{\@thirdofthree#3}}}%
+ \unexpanded{{#4}{#5}{#6}}%
+}
+
+\protected\def\yquant@register@update@multispace#1#2#3{%
+ \unless\ifnum#1<#2 %
+ \PackageError{yquant.sty}{Internal inconsistency detected}%
+ {Setting multispace part in wrong order.}%
+ \fi%
+ \unless\ifyquant@lang@attr@overlay@multi%
+ \begingroup%
+ \edef\tmp{%
+ \expandafter\expandafter\expandafter%
+ \yquant@register@get@multispace@aux\csname\yquant@prefix register@#1\endcsname%
+ }%
+ \let\old=\tmp%
+ \yquant@list@eupdateorinsert\tmp{#2}{#3}%
+ \unless\ifx\old\tmp%
+ \expandafter\yquant@register@set@@aux%
+ \csname\yquant@prefix register@#1\endcsname%
+ \yquant@register@set@multispace@aux\tmp%
+ \fi%
+ \endgroup%
+ \fi%
+}
+
+\long\def\yquant@register@set@multispace@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}{#2}}%
+ {{\unexpanded\expandafter{\@firstofthree#3}}%
+ {\unexpanded\expandafter{\@secondofthree#3}}%
+ {#7}}%
+ \unexpanded{{#4}{#5}{#6}}%
+}
+
+\protected\def\yquant@register@inject@extents#1#2{%
+ % enlarge the last subcircuit that was created previously by height #1 and depth #2.
+ % We enforce subcircuits to have registers, so no check needed.
+ \expandafter\yquant@register@set@@aux%
+ \csname yquant@env\the\yquant@env @register@1\endcsname%
+ \yquant@register@inject@height@aux{#1}%
+ \expandafter\yquant@register@set@@aux%
+ \csname yquant@env\the\yquant@env @register@\csname yquant@env\the\yquant@env @registers\endcsname\endcsname%
+ \yquant@register@inject@depth@aux{#2}%
+}
+
+\long\def\yquant@register@inject@height@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}{#2}}%
+ {{\the\dimexpr\@firstofthree#3+#7\relax}%
+ {\unexpanded\expandafter{\@secondofthree#3}}%
+ {\unexpanded\expandafter{\@thirdofthree#3}}}%
+ \unexpanded{{#4}{#5}{#6}}%
+}
+
+\long\def\yquant@register@inject@depth@aux#1#2#3#4#5#6#7{%
\unexpanded{{#1}{#2}}%
- {{\unexpanded\expandafter{\@firstoftwo#3}}{#6}}%
- \unexpanded{{#4}{#5}}%
+ {{\unexpanded\expandafter{\@firstofthree#3}}%
+ {\the\dimexpr\@secondofthree#3+#7\relax}%
+ {\unexpanded\expandafter{\@thirdofthree#3}}}%
+ \unexpanded{{#4}{#5}{#6}}%
}
\protected\def\yquant@register@set@y#1{%
@@ -956,8 +1044,8 @@
\yquant@register@set@y@aux%
}
-\long\def\yquant@register@set@y@aux#1#2#3#4#5#6{%
- \unexpanded{{#1}{#2}}{#6}\unexpanded{{#4}{#5}}%
+\long\def\yquant@register@set@y@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}{#2}}{#7}\unexpanded{{#4}{#5}{#6}}%
}
\protected\def\yquant@register@set@lastwire#1{%
@@ -976,8 +1064,22 @@
\yquant@register@set@lastwire@aux%
}
-\long\def\yquant@register@set@lastwire@aux#1#2#3#4#5#6{%
- \unexpanded{{#1}{#2}{#3}}{#6}\unexpanded{{#5}}%
+\long\def\yquant@register@set@lastwire@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}{#2}{#3}}{#7}\unexpanded{{#5}{#6}}%
+}
+
+\protected\def\yquant@register@set@typelastwire#1{%
+ \ifcsname\yquant@prefix registermap@#1\endcsname%
+ \PackageError{yquant.sty}{Internal inconsistency detected}%
+ {Setting type and lastwire was requested for a subcircuit.}%
+ \fi%
+ \expandafter\yquant@register@set@@aux%
+ \csname\yquant@prefix register@#1\endcsname%
+ \yquant@register@set@typelastwire@aux%
+}
+
+\long\def\yquant@register@set@typelastwire@aux#1#2#3#4#5#6#7{%
+ {\@firstoftwo#7}\unexpanded{{#2}{#3}}{\@secondoftwo#7}\unexpanded{{#5}{#6}}%
}
\protected\def\yquant@register@set@style#1{%
@@ -996,7 +1098,31 @@
\yquant@register@set@style@aux%
}
-\long\def\yquant@register@set@style@aux#1#2#3#4#5#6{%
- \unexpanded{{#1}{#2}{#3}{#4}}{#6}%
+\long\def\yquant@register@set@style@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}{#2}{#3}{#4}}{#7}\unexpanded{{#6}}%
+}
+
+\protected\def\yquant@register@set@lastgate#1{%
+ \ifcsname\yquant@prefix registermap@#1\endcsname%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ {%
+ \expandafter\yquant@register@set@@aux%
+ \csname\csname\yquant@prefix registermap@#1\endcsname\endcsname%
+ }{%
+ \expandafter\yquant@register@set@@aux%
+ \csname\yquant@prefix register@#1\endcsname%
+ }%
+ \yquant@register@set@lastgate@aux%
+}
+
+\long\def\yquant@register@set@lastgate@aux#1#2#3#4#5#6#7{%
+ \unexpanded{{#1}{#2}{#3}{#4}{#5}}{#7}%
+}
+
+\long\def\yquant@register@set@typelastgate@aux#1#2#3#4#5#6#7{%
+ {\@firstoftwo#7}\unexpanded{{#2}{#3}{#4}{#5}}{\@secondoftwo#7}%
}
% END_FOLD \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-shapes.tex b/graphics/pgf/contrib/yquant/tex/yquant-shapes.tex
index 22b9601c4e..88cddd66dd 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-shapes.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-shapes.tex
@@ -391,7 +391,7 @@
\fi%
\else%
\pgf@y=\dimexpr.5\ht\pgfnodeparttextbox+.5\dp\pgfnodeparttextbox+2pt\relax%
- \ifyquant@config@operator@multi@main%
+ \ifyquant@config@internal@multi@main%
\advance\pgf@y by 1.25mm %
\fi%
\ifdim\pgf@x<\pgf@y%
@@ -400,7 +400,7 @@
\fi%
}%
\savedanchor\stext{%
- \ifyquant@config@operator@multi@main%
+ \ifyquant@config@internal@multi@main%
\pgfqpoint%
{-.5\wd\pgfnodeparttextbox}%
{\dp\pgfnodeparttextbox}%
@@ -414,13 +414,13 @@
\pgf@x=\ht\pgfnodeparttextbox%
}%
\savedmacro\main{%
- \ifyquant@config@operator@multi@main%
- \def\main{\noexpand\yquant@config@operator@multi@maintrue}%
+ \ifyquant@config@internal@multi@main%
+ \def\main{\noexpand\yquant@config@internal@multi@maintrue}%
\else%
\ifdim\dimexpr\ht\pgfnodeparttextbox+\dp\pgfnodeparttextbox\relax=0pt%
- \def\main{\noexpand\yquant@config@operator@multi@maintrue}%
+ \def\main{\noexpand\yquant@config@internal@multi@maintrue}%
\else%
- \def\main{\noexpand\yquant@config@operator@multi@mainfalse}%
+ \def\main{\noexpand\yquant@config@internal@multi@mainfalse}%
\fi%
\fi%
}%
@@ -430,7 +430,7 @@
\anchor{text}{%
\stext%
\main%
- \ifyquant@config@operator@multi@main%
+ \ifyquant@config@internal@multi@main%
\pgf@y=\dimexpr-\yradius+1pt+\pgf@y\relax%
\fi%
}%
@@ -440,7 +440,7 @@
\beforebackgroundpath{%
\main%
% we only draw the meter symbol if this is the main part of a multi-register (or there is no text)
- \ifyquant@config@operator@multi@main%
+ \ifyquant@config@internal@multi@main%
% Make sure the meter does not extend beyond the box (we are in a scope here)
\path [clip]%
(-\xradius, \yradius) rectangle (\xradius, -\yradius);%
@@ -529,9 +529,6 @@
}
\pgfdeclareshape{yquant-line}{%
- \savedanchor\shorten{%
- \pgfqpoint\pgf@shorten@end@additional\pgf@shorten@start@additional%
- }%
\saveddimen\xradius{%
% we only need this for the border anchor; the value is automatically correct in the paths.
\pgf@x=.5\pgflinewidth%
@@ -544,18 +541,343 @@
}%
\inheritanchorborder[from=yquant-rectangle]%
\backgroundpath{%
- \shorten%
- \pgf@xa=\dimexpr\yradius-\pgf@x\relax%
- \pgf@ya=\dimexpr\yradius-\pgf@y\relax%
+ % manually shorten for the bounding box
+ \pgf@xa=\dimexpr\yradius-\pgf@shorten@end@additional\relax%
+ \pgf@ya=\dimexpr\yradius-\pgf@shorten@start@additional\relax%
+ \pgf@shorten@end@additional=0pt %
+ \pgf@shorten@start@additional=0pt %
\pgfpathmoveto{\pgfqpoint{0pt}{\pgf@xa}}%
\pgfpathlineto{\pgfqpoint{0pt}{-\pgf@ya}}%
}%
\clippath{%
- \shorten%
- \@tempdima=\dimexpr\yradius-\pgf@x\relax%
- \@tempdimb=\dimexpr\yradius-\pgf@y\relax%
+ \@tempdima=\dimexpr\yradius-\pgf@shorten@end@additional\relax%
+ \@tempdimb=\dimexpr\yradius-\pgf@shorten@start@additional\relax%
\pgfpathrectanglecorners%
{\pgfqpoint{-.5\pgflinewidth}{\@tempdima}}%
{\pgfqpoint{.5\pgflinewidth}{-\@tempdimb}}%
}%
+}
+
+% BEGIN_FOLD Gapped brace decoration
+\def\pgfdecorationsegmentfromto{0-1}%
+
+\protected\def\yquant@gappedbrace@extract#1-#2\yquant@sep{%
+ \dimdef\from{#1\pgfdecoratedremainingdistance}%
+ \dimdef\to{#2\pgfdecoratedremainingdistance}%
+}
+
+\def\yquant@gappedbrace@shiftloop#1{%
+ \yquant@gappedbrace@extract#1\yquant@sep%
+ \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance<\from %
+ \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance>\to %
+ % be careful about arch positions at the border
+ \ifdim\dimexpr\to-\from\relax<2\pgfdecorationsegmentamplitude %
+ % The arch is larger than the segment. We do not draw a line to it or an end line and place it in the mid of the segment, even if it is too short (this issues one extra \pgfpathmoveto command, but catching this rare case is not worth the effort).
+ \edef\pgfdecorationsegmentaspect{\pgfmath@tonumber{\dimexpr%
+ .5\dimexpr\from+\to\relax*65536/\pgfdecoratedremainingdistance%
+ \relax}}%
+ \else%
+ % The segment is large enough to cover the whole arch. But maybe we are too close at the border?
+ \ifdim\dimexpr\pgf@xc-\pgfdecorationsegmentamplitude\relax<\from %
+ \pgf@xc=\dimexpr\from+\pgfdecorationsegmentamplitude\relax%
+ \fi%
+ \ifdim\dimexpr\pgf@xc+\pgfdecorationsegmentamplitude\relax>\to %
+ \pgf@xc=\dimexpr\to-\pgfdecorationsegmentamplitude\relax%
+ \fi%
+ \edef\pgfdecorationsegmentaspect{\pgfmath@tonumber{\dimexpr%
+ \dimexpr\pgf@xc*65536/\pgfdecoratedremainingdistance%
+ \relax}}%
+ \fi%
+ \expandafter\expandafter\expandafter\listbreak%
+ \fi%
+ \fi%
+}
+
+% Assumes all decoration macros and lengths are filled. Checks whether the arch is too close at a corner and shifts it appropriately. Upon exit, \pgfdecorationsegmentaspect is modified.
+\protected\def\yquant@gappedbrace@calcshift{%
+ \pgf@xc=\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance%
+ \expandafter\forcsvlist\expandafter\yquant@gappedbrace@shiftloop%
+ \expandafter{\pgfdecorationsegmentfromto}%
+}
+
+\def\yquant@gappedbrace@loop#1{%
+ \yquant@gappedbrace@extract#1\yquant@sep%
+ \unless\ifdim\from=0pt %
+ \pgfpathmoveto{%
+ \pgfqpoint{\from}{.5\pgfdecorationsegmentamplitude}%
+ }%
+ \fi%
+ \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance<\from %
+ \unless\ifdim\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance>\to %
+ % be careful about arch positions at the border
+ \ifdim\dimexpr\to-\from\relax<2\pgfdecorationsegmentamplitude %
+ % The arch is larger than the segment. We do not draw a line to it or an end line and place it in the mid of the segment, even if it is too short (this issues one extra \pgfpathmoveto command, but catching this rare case is not worth the effort).
+ \pgfpathmoveto{%
+ \pgfqpoint{\dimexpr.5\dimexpr\from+\to\relax-\pgfdecorationsegmentamplitude\relax}%
+ {.5\pgfdecorationsegmentamplitude}%
+ }%
+ \edef\to{\the\pgfdecoratedremainingdistance}% to prevent the final line, we do not need "to" any more
+ \else%
+ % The segment is large enough to cover the whole arch. But maybe we are too close at the border?
+ \ifdim\dimexpr\pgf@xc-\pgfdecorationsegmentamplitude\relax<\from %
+ \pgf@xc=\dimexpr\from+\pgfdecorationsegmentamplitude\relax%
+ \fi%
+ \ifdim\dimexpr\pgf@xc+\pgfdecorationsegmentamplitude\relax>\to %
+ \pgf@xc=\dimexpr\to-\pgfdecorationsegmentamplitude\relax%
+ \fi%
+ % Both cases can't occur at the same time in this \else clause.
+ \pgfpathlineto{%
+ \pgfqpoint{\dimexpr\pgf@xc-\pgfdecorationsegmentamplitude\relax}%
+ {.5\pgfdecorationsegmentamplitude}%
+ }%
+ \fi%
+ \pgfpathcurveto{%
+ \pgfqpoint{\dimexpr\pgf@xc-.5\pgfdecorationsegmentamplitude\relax}%
+ {.5\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{\dimexpr\pgf@xc-.15\pgfdecorationsegmentamplitude\relax}%
+ {.7\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{\pgf@xc}{\pgfdecorationsegmentamplitude}%
+ }%
+ \pgfpathcurveto{%
+ \pgfqpoint{\dimexpr\pgf@xc+.15\pgfdecorationsegmentamplitude\relax}%
+ {.7\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{\dimexpr\pgf@xc+.5\pgfdecorationsegmentamplitude\relax}%
+ {.5\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{\dimexpr\pgf@xc+\pgfdecorationsegmentamplitude\relax}%
+ {.5\pgfdecorationsegmentamplitude}%
+ }%
+ \fi%
+ \fi%
+ \unless\ifdim\to=\pgfdecoratedremainingdistance %
+ \pgfpathlineto{%
+ \pgfqpoint{\to}{.5\pgfdecorationsegmentamplitude}%
+ }%
+ \fi%
+}
+
+% This is a variant of the brace in pathreplacing that allows for holes
+\pgfdeclaredecoration{gapped brace}{final}{%
+ \state{final}{%
+ \pgf@xc=\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance%
+ \pgfpathmoveto\pgfpointorigin% required for "raise" key
+ \pgfpathcurveto{%
+ \pgfqpoint{.15\pgfdecorationsegmentamplitude}{.3\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{.5\pgfdecorationsegmentamplitude}{.5\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{\pgfdecorationsegmentamplitude}{.5\pgfdecorationsegmentamplitude}%
+ }%
+ \expandafter\forcsvlist\expandafter\yquant@gappedbrace@loop%
+ \expandafter{\pgfdecorationsegmentfromto}%
+ \pgfpathlineto{%
+ \pgfqpoint{\dimexpr\pgfdecoratedremainingdistance-\pgfdecorationsegmentamplitude\relax}%
+ {.5\pgfdecorationsegmentamplitude}%
+ }%
+ \pgfpathcurveto{%
+ \pgfqpoint{\dimexpr\pgfdecoratedremainingdistance-.5\pgfdecorationsegmentamplitude\relax}%
+ {.5\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{\dimexpr\pgfdecoratedremainingdistance-.15\pgfdecorationsegmentamplitude\relax}%
+ {.3\pgfdecorationsegmentamplitude}%
+ }{%
+ \pgfqpoint{\pgfdecoratedremainingdistance}{0pt}%
+ }%
+ }%
+}%
+
+\protected\def\yquant@gappedbrace@timer{%
+ \ifdim\tikz@time pt=-1pt %
+ % first set \pgfdecoratedremainingdistance appropriately
+ \pgfpointdiff\tikz@timer@start\tikz@timer@end%
+ \pgfmathsqrt@{\dimexpr\pgf@x*\pgf@x/65536+\pgf@y*\pgf@y/65536\relax\@gobbletwo}%
+ \pgfdecoratedremainingdistance=\pgfmathresult pt %
+ % now perform the transformation
+ \yquant@gappedbrace@calcshift%
+ % and finally let us return the desired position, just ignoring \tikz@time...
+ \pgftransformlineattime{\pgfdecorationsegmentaspect}{\tikz@timer@start}{\tikz@timer@end}%
+ \else%
+ \pgftransformlineattime{\tikz@time}{\tikz@timer@start}{\tikz@timer@end}%
+ \fi%
+}
+
+\pgfkeys{%
+ /pgf/decoration/from to/.store in=\pgfdecorationsegmentfromto%
+}
+% END_FOLD
+
+\pgfdeclareshape{yquant-init}{%
+ \saveddimen\xradius{%
+ \pgfmathsetlength\pgf@x{\pgfkeysvalueof{/tikz/x radius}}%
+ % inner xsep is between the brace tip and the right end of the text. Check if the decoration is raised (will define \def\tikz@dec@shift{\pgftransformyshift{#1}})
+ \iftikz@decoratepath%
+ \ifx\tikz@dec@shift\relax%
+ \pgf@xa=\pgfdecorationsegmentamplitude %
+ \else%
+ \pgfmathsetlength\pgf@xa{\expandafter\@secondoftwo\tikz@dec@shift+\pgfdecorationsegmentamplitude}%
+ \fi%
+ \pgfmathaddtolength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \else%
+ \pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \fi%
+ % outer xsep is (a lower bound) from the left end of the border to the left end of the text
+ \pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \@tempdima=.5\dimexpr\wd\pgfnodeparttextbox+\pgf@xa+\pgf@xb\relax%
+ \ifdim\@tempdima>\pgf@x%
+ \pgf@x=\@tempdima%
+ \fi%
+ }%
+ \saveddimen\yradius{%
+ \pgfmathsetlength\pgf@x{\pgfkeysvalueof{/tikz/y radius}}%
+ \@tempdima=.5\dimexpr\ht\pgfnodeparttextbox+\dp\pgfnodeparttextbox\relax%
+ \ifdim\@tempdima>\pgf@x%
+ \pgf@x=\@tempdima%
+ \fi%
+ \iftikz@decoratepath%
+ \ifdim2\pgfdecorationsegmentamplitude>\pgf@x%
+ \pgf@x=2\pgfdecorationsegmentamplitude%
+ \fi%
+ \fi%
+ }%
+ \savedanchor\stext{%
+ \iftikz@decoratepath%
+ % \pgf@x is still \yradius...
+ % first set \pgfdecoratedremainingdistance appropriately
+ \pgfdecoratedremainingdistance=2\pgf@x%
+ % now perform the transformation
+ \yquant@gappedbrace@calcshift%
+ \pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}+\pgfdecorationsegmentamplitude}%
+ \unless\ifx\tikz@dec@shift\relax%
+ \pgfmathaddtolength\pgf@xa{\expandafter\@secondoftwo\tikz@dec@shift}%
+ \fi%
+ \pgfqpoint%
+ {-\dimexpr\wd\pgfnodeparttextbox+\pgf@xa\relax}%
+ {\dimexpr.5\pgfdecoratedremainingdistance% = \yradius
+ -\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance% - aspect
+ -.5\ht\pgfnodeparttextbox+.5\dp\pgfnodeparttextbox% center there
+ \relax}%
+ \else%
+ \pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \pgfqpoint%
+ {-\dimexpr\wd\pgfnodeparttextbox+\pgf@xa\relax}%
+ {-.5\dimexpr\ht\pgfnodeparttextbox-\dp\pgfnodeparttextbox\relax}%
+ \fi%
+ }%
+ % BEGIN_FOLD Operator anchors
+ \foreach \anc in {center, north, north east, east, south east, south, south west, west, north west} {%
+ \inheritanchor[from=yquant-rectangle]{\anc}%
+ }%
+ \anchor{text}{%
+ \stext%
+ \advance \pgf@x by \xradius\relax%
+ }%
+ \inheritanchorborder[from=yquant-rectangle]%
+ % END_FOLD
+ % BEGIN_FOLD Path
+ \backgroundpath{%
+ \pgfpathmoveto{\pgfqpoint{\xradius}{\yradius}}%
+ \pgfpathlineto{\pgfqpoint{\xradius}{-\yradius}}%
+ \pgfpointtransformed{\pgfqpoint{-\xradius}{\yradius}}%
+ \pgf@protocolsizes{\pgf@x}{\pgf@y}%
+ \pgfpointtransformed{\pgfqpoint{-\xradius}{-\yradius}}% for rotations
+ \pgf@protocolsizes{\pgf@x}{\pgf@y}%
+ }%
+ \clippath{%
+ \pgfpathrectanglecorners%
+ {\pgfqpoint{-\dimexpr\xradius\relax}%
+ {\dimexpr\yradius\relax}}%
+ {\pgfqpoint{\dimexpr\xradius+.5\pgflinewidth\relax}%
+ {-\dimexpr\yradius\relax}}%
+ }%
+ % END_FOLD
+}
+
+\pgfdeclareshape{yquant-output}{%
+ % Almost the same as in yquant-input, only a minimal change in \stext's x position
+ \saveddimen\xradius{%
+ \pgfmathsetlength\pgf@x{\pgfkeysvalueof{/tikz/x radius}}%
+ % inner xsep is from the brace tip and the left end of the text. Check if the decoration is raised (will define \def\tikz@dec@shift{\pgftransformyshift{#1}})
+ \iftikz@decoratepath%
+ \ifx\tikz@dec@shift\relax%
+ \pgf@xa=\pgfdecorationsegmentamplitude %
+ \else%
+ \pgfmathsetlength\pgf@xa{\expandafter\@secondoftwo\tikz@dec@shift+\pgfdecorationsegmentamplitude}%
+ \fi%
+ \pgfmathaddtolength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \else%
+ \pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \fi%
+ % outer xsep is (a lower bound) from the left end of the border to the left end of the text
+ \pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/outer xsep}}%
+ \@tempdima=.5\dimexpr\wd\pgfnodeparttextbox+\pgf@xa+\pgf@xb\relax%
+ \ifdim\@tempdima>\pgf@x%
+ \pgf@x=\@tempdima%
+ \fi%
+ }%
+ \saveddimen\yradius{%
+ \pgfmathsetlength\pgf@x{\pgfkeysvalueof{/tikz/y radius}}%
+ \@tempdima=.5\dimexpr\ht\pgfnodeparttextbox+\dp\pgfnodeparttextbox\relax%
+ \ifdim\@tempdima>\pgf@x%
+ \pgf@x=\@tempdima%
+ \fi%
+ \iftikz@decoratepath%
+ \ifdim2\pgfdecorationsegmentamplitude>\pgf@x%
+ \pgf@x=2\pgfdecorationsegmentamplitude%
+ \fi%
+ \fi%
+ }%
+ \savedanchor\stext{%
+ \iftikz@decoratepath%
+ % \pgf@x is still \yradius...
+ % first set \pgfdecoratedremainingdistance appropriately
+ \pgfdecoratedremainingdistance=2\pgf@x%
+ % now perform the transformation
+ \yquant@gappedbrace@calcshift%
+ \pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}+\pgfdecorationsegmentamplitude}%
+ \unless\ifx\tikz@dec@shift\relax%
+ \pgfmathaddtolength\pgf@xa{\expandafter\@secondoftwo\tikz@dec@shift}%
+ \fi%
+ \pgfqpoint%
+ {\dimexpr\pgf@xa\relax}%
+ {\dimexpr.5\pgfdecoratedremainingdistance% = \yradius
+ -\pgfdecorationsegmentaspect\pgfdecoratedremainingdistance% - aspect
+ -.5\ht\pgfnodeparttextbox+.5\dp\pgfnodeparttextbox% center there
+ \relax}%
+ \else%
+ \pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/inner xsep}}%
+ \pgfqpoint%
+ {\dimexpr\pgf@xa\relax}%
+ {-.5\dimexpr\ht\pgfnodeparttextbox-\dp\pgfnodeparttextbox\relax}%
+ \fi%
+ }%
+ % BEGIN_FOLD Operator anchors
+ \foreach \anc in {center, north, north east, east, south east, south, south west, west, north west} {%
+ \inheritanchor[from=yquant-init]{\anc}%
+ }%
+ \anchor{text}{%
+ \stext%
+ \advance \pgf@x by -\xradius\relax%
+ }%
+ \inheritanchorborder[from=yquant-init]%
+ % END_FOLD
+ % BEGIN_FOLD Path
+ \backgroundpath{%
+ \pgfpathmoveto{\pgfqpoint{-\xradius}{\yradius}}%
+ \pgfpathlineto{\pgfqpoint{-\xradius}{-\yradius}}%
+ \pgfpointtransformed{\pgfqpoint{\xradius}{\yradius}}%
+ \pgf@protocolsizes{\pgf@x}{\pgf@y}%
+ \pgfpointtransformed{\pgfqpoint{\xradius}{-\yradius}}% for rotations
+ \pgf@protocolsizes{\pgf@x}{\pgf@y}%
+ }%
+ \clippath{%
+ \pgfpathrectanglecorners%
+ {\pgfqpoint{-\dimexpr\xradius+.5\pgflinewidth\relax}%
+ {\dimexpr\yradius\relax}}%
+ {\pgfqpoint{\dimexpr\xradius\relax}%
+ {-\dimexpr\yradius\relax}}%
+ }%
+ % END_FOLD
} \ No newline at end of file
diff --git a/graphics/pgf/contrib/yquant/tex/yquant-tools.tex b/graphics/pgf/contrib/yquant/tex/yquant-tools.tex
index 5f7efe5e03..4b31a4e35e 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant-tools.tex
+++ b/graphics/pgf/contrib/yquant/tex/yquant-tools.tex
@@ -30,6 +30,11 @@
\long\def\@thirdoffour#1#2#3#4{#3}%
\long\def\@fourthoffour#1#2#3#4{#4}%
\long\def\@thirdandfourthoffour#1#2#3#4{#3#4}%
+\long\def\@secondandthirdoffive#1#2#3#4#5{{#2}{#3}}
+\long\def\@firstoffive#1#2#3#4#5{#1} % unused
+\long\def\@secondoffive#1#2#3#4#5{#2}
+\long\def\@thirdoffive#1#2#3#4#5{#3}
+\long\def\@fourthoffive#1#2#3#4#5{#4} % unused
\long\def\@fifthoffive#1#2#3#4#5{#5}
% Loop #1 from min(#2, #3) to max(#2, #3), executing #4
@@ -184,6 +189,30 @@
\expandafter\yquant@sort@aux\expandafter0\expandafter{\the\numexpr\yquant@sort@count-1\relax}%
}
+% Returns the first item in the unordered sortlist when compared according to #1 and stores it in #2.
+\protected\def\yquant@sort@findfirst#1#2{%
+ \ifnum\yquant@sort@count<1 %
+ \let#2=\empty%
+ \else%
+ \letcs#2{yquant@sort@item0}%
+ \count0=1 %
+ \loop%
+ \ifnum\count0<\yquant@sort@count\relax%
+ \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter#1%
+ \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter}%
+ \expandafter\expandafter\expandafter{%
+ \csname yquant@sort@item\the\count0\endcsname%
+ }%
+ \relax{%
+ \letcs#2{yquant@sort@item\the\count0}%
+ }%
+ \advance\count0 by 1 %
+ \repeat%
+ \fi%
+}
+
\def\yquant@sort@ascending#1#2{%
\ifnum#2>#1 %
\expandafter\@firstoftwo%
@@ -316,6 +345,7 @@
\begingroup
\catcode`\|=3
+\catcode`\&=3
\gdef\yquant@list@delim{|}
\protected\gdef\yquant@list@dequeue#1#2{%
@@ -338,8 +368,78 @@
\expandafter\yquant@list@dequeue@i#1\etb@lst@q@end{#1}{#2}\gdef%
}%
}
+
+\protected\gdef\yquant@list@eupdateorinsert#1#2#3{%
+ % the list items are of the form <number>:<value>. If an item is present where <number> = #2, then set its <value> to #3, if #3 is greater. If no item is present, add it.
+ \begingroup%
+ \def\etb@tempa##1|#2:##2|##3&{%
+ \endgroup%
+ \ifstrempty{##3}{%
+ \eappto#1{#2:#3|}%
+ }{%
+ \ifdim##2<#3 %
+ \yquant@list@ereplace#1{#2:##2}{#2:#3}%
+ \fi%
+ }%
+ }%
+ \expandafter\etb@tempa\expandafter|#1|#2:#3|&%
+}
+
+\protected\gdef\yquant@list@ereplace#1#2#3{%
+ \begingroup%
+ \def\etb@tempa##1|#2|##2&{%
+ \endgroup%
+ \ifstrempty{##1}{%
+ \edef#1{%
+ \unexpanded{##1}|#3|\unexpanded{##2}%
+ }%
+ }{%
+ \edef#1{%
+ \unexpanded\expandafter{\@gobble##1}|#3|\unexpanded{##2}%
+ }%
+ }%
+ }%
+ \expandafter\etb@tempa\expandafter|#1&
+}
+
+% expands to the contents of a list ranging from #1 to #2 (ascending)
+\gdef\yquant@list@range#1#2{%
+ \ifnum#1>#2 %
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi{}{%
+ #1|%
+ \expandafter\yquant@list@range\expandafter{\the\numexpr#1+1\relax}{#2}%
+ }%
+}
\endgroup
+% performs #3 if #1 is a subset of #2; else, performs #4
+\protected\def\ifyquant@registersubset#1#2{%
+ \begingroup%
+ \let\yquant@register@multi=\@fourthoffour
+ \def\yquant@register@multi@contiguous##1##2##3{\yquant@list@range{##1}{##2}}%
+ \edef\listA{#1}%
+ \edef\listB{#2}%
+ \let\ifsuccess=\iftrue%
+ \forlistloop\yquant@registersubset@loop\listA%
+ \expandafter%
+ \endgroup%
+ \ifsuccess%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}
+
+\protected\def\yquant@registersubset@loop#1{%
+ \ifinlist{#1}\listB\relax{%
+ \let\ifsuccess=\iffalse%
+ \listbreak%
+ }%
+}
+
\def\ifyquant@OR#1#2{%
#1%
\expandafter\@firstoftwo%
diff --git a/graphics/pgf/contrib/yquant/tex/yquant.sty b/graphics/pgf/contrib/yquant/tex/yquant.sty
index 2d6631b8f2..ecbee654e0 100644
--- a/graphics/pgf/contrib/yquant/tex/yquant.sty
+++ b/graphics/pgf/contrib/yquant/tex/yquant.sty
@@ -1,7 +1,7 @@
% yquant.sty
% Typesetting quantum circuits using a flow-oriented language
%
-% Copyright 2019-2020 Benjamin Desef
+% Copyright 2019-2021 Benjamin Desef
%
% This work may be distributed and/or modified under the conditions of the LaTeX Project
% Public License, either version 1.3c of this license or (at your option) any later
@@ -15,13 +15,27 @@
%
% The Current Maintainer of this work is Benjamin Desef.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{yquant}[2020/10/27 v0.3.3 Yet another quantum circuit library for LaTeX]
+\ProvidesPackage{yquant}[2021/03/27 v0.4 Yet another quantum circuit library for LaTeX]
\RequirePackage{etoolbox}[2018/02/11]
\RequirePackage{tikz}[2015/08/29]
\RequirePackage{trimspaces}[2009/09/17]
+\RequirePackage{xkeyval}[2005/05/07]
\usetikzlibrary{arrows.meta,decorations.pathreplacing,decorations.pathmorphing}
+\define@choicekey+{yquant.sty}{compat}[\val\yquant@compat]{newest,0.3,0.4}{
+ \ifnum\yquant@compat=0 %
+ \def\yquant@compat{2} % current version
+ \fi%
+}{
+ \PackageWarning{yquant.sty}{Invalid value for `compat` key specified. Using `0.3`.}
+}
+\ProcessOptionsX
+\unless\ifdefined\yquant@compat
+ \PackageWarning{yquant.sty}{Please specify the `compat` key for yquant. Using `0.3`. Current version is `0.4`.}
+ \def\yquant@compat{1}
+\fi
+
\newif\ifyquantdebug
\input yquant-config.tex
\input yquant-tools.tex
@@ -29,6 +43,7 @@
\input yquant-env.tex
\input yquant-langhelper.tex
\input yquant-circuit.tex
+\input yquant-prepare.tex
\input yquant-draw.tex
\input yquant-shapes.tex
\input yquant-lang.tex
diff --git a/graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty b/graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty
index eaa848e03f..d37aa6b9f0 100644
--- a/graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty
+++ b/graphics/pgf/contrib/yquant/tex/yquantlanguage-qasm.sty
@@ -15,9 +15,9 @@
%
% The Current Maintainer of this work is Benjamin Desef.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{yquantlanguage-qasm}[2020/06/13 v0.3 yquant-qasm]
+\ProvidesPackage{yquantlanguage-qasm}[2021/03/27 v0.4 yquant-qasm]
-\RequirePackage{yquant}[2020/06/13]
+\RequirePackage{yquant}[2021/03/27]
% BEGIN_FOLD Environment definitions
\begingroup
@@ -222,17 +222,43 @@
\csname qasm@lang@\cmd\endcsname#2 \qasm@end%
}
-% Defining commands that accept registers and take an optional value
-% #1: name of the argument
-% #2: command that is to be called
-% #3: number of controls
-% #4: number of targets
-\protected\def\qasm@langhelper@declare@command#1#2#3#4{%
+% Defines a yquant command for qasm
+% #1: name of the command
+% #2: number of controls
+% #3: number of targets
+% #4: name of the yquant command
+% #5: pre-actions
+\protected\def\qasm@langhelper@alias@yquant#1#2#3#4#5{%
\begingroup%
\lowercase{\edef\cmd{#1}}%
% everything after the next space is just gobbled
\protected\long\csgdef{qasm@lang@\cmd}##1 ##2\qasm@end{%
- \qasm@langhelper@declare@command@@fetchargs{#3}{#4}{##1}{#2}%
+ \unexpanded{#5}%
+ \qasm@langhelper@declare@command@@fetchargs{#2}{#3}{##1}{\csname yquant@lang@#4\endcsname}%
+ \yquant@env@rescan%
+ }%
+ \endgroup%
+}
+
+% Defining commands that accept registers and take an optional value
+% #1: name of the argument
+% #2: number of controls
+% #3: number of targets
+% #4: actions to be taken before parsing
+% #5: actions to be taken after parsing
+\protected\def\qasm@langhelper@declare@command#1#2#3#4#5{%
+ \begingroup%
+ \lowercase{\edef\cmd{#1}}%
+ \long\protected\csxdef{qasm@lang@\cmd}##1 ##2\qasm@end{%
+ \noexpand\yquant@langhelper@execclear@lastgatetrue%
+ \unexpanded{#4}%
+ \qasm@langhelper@declare@command@@fetchargs{#2}{#3}{##1}\yquant@circuit@operator%
+ \noexpand\ifyquant@langhelper@execclear@lastgate%
+ \yquant@for \noexpand\i := \noexpand\yquant@circuit@operator@minctrl to \noexpand\yquant@circuit@operator@maxctrl {%
+ \yquant@register@execclear@lastgate{\noexpand\i}{\cmd}%
+ }%
+ \noexpand\fi%
+ \unexpanded{#5}%
\yquant@env@rescan%
}%
\endgroup%
@@ -488,18 +514,40 @@
\process%
}%
\fi%
- \yquant@lang@create@do{#1}[1][;%
+ \yquant@prepare@create{#1}0\yquant@lang@create@type%
+ \letcs\yquant@circuit@operator@maxtarget{\yquant@prefix registers}%
+ \numdef\yquant@circuit@operator@numtarget{1}%
+ \edef\yquant@circuit@operator@targets{\yquant@circuit@operator@maxtarget\yquant@list@delim}%
+ \let\yquant@circuit@operator@pctrls=\empty%
+ \def\yquant@circuit@operator@minpctrl{2147483647}%
+ \def\yquant@circuit@operator@maxpctrl{0}%
+ \let\yquant@circuit@operator@numpctrl=\yquant@circuit@operator@maxpctrl%
+ \let\yquant@circuit@operator@nctrls=\empty%
+ \let\yquant@circuit@operator@minnctrl=\yquant@circuit@operator@minpctrl%
+ \let\yquant@circuit@operator@maxnctrl=\yquant@circuit@operator@maxpctrl%
+ \let\yquant@circuit@operator@numnctrl=\yquant@circuit@operator@numpctrl%
+ \let\yquant@circuit@operator@minctrl=\yquant@circuit@operator@mintarget%
+ \let\yquant@circuit@operator@maxctrl=\yquant@circuit@operator@maxtarget%
+ \def\yquant@attrs@remaining{internal/move label}
+ \def\yquant@config@operator@minimum@width{0pt}%
+ \expandafter\yquant@prepare%
+ \expandafter{\yquant@lang@attr@value}%
+ {/yquant/every label, /yquant/every initial label,%
+ /yquant/every \yquant@lang@create@style\space label}%
+ \unless\ifx\yquant@lang@attr@value\empty%
+ \yquant@register@execclear@lastgate{\yquant@circuit@operator@maxtarget}{init}%
+ \fi%
\yquant@env@rescan%
}
\protected\def\qasm@lang@def#1,#2,'#3' #4\qasm@end{%
\lowercase{\def\cmd{#1}}%
- % we need to do a couple of case distictions (it might seem crazy to look for the existence of a particular macro in #3, but this is what qasm does)
+ % we need to do a couple of case distinctions (it might seem crazy to look for the existence of a particular macro in #3, but this is what qasm does)
\ifstrequal{#3}{bullet}{%
\edef\process{%
\def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname{%
\let\noexpand\yquant@lang@attr@value=\noexpand\empty%
- \noexpand\yquant@lang@@phase%
+ \noexpand\yquant@lang@phase%
}%
}%
}{%
@@ -519,32 +567,31 @@
% now check whether the text begins with \meter, \dmeter or \dmeterwide. This is not 100% equivalent to qasm, which only checks whether these macros are present, not whether they are at the beginning. But due to our node approach, anything different from the whole content being this macro does not make sense.
\expandafter\ifyquant@firsttoken\expandafter\meter\expandafter{\texcode}{%
\edef\process{%
- \def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname####1####2{%
- \noexpand\yquant@lang@@measure%
+ \def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname{%
+ \noexpand\yquant@lang@measure%
}%
}%
}{%
\expandafter\ifyquant@firsttoken\expandafter\dmeter\expandafter{\texcode}{%
\protected@edef\process{%
- \def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname####1####2{%
+ \def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname{%
\def\noexpand\yquant@lang@attr@value{\texcode}%
- \noexpand\yquant@lang@@dmeter%
+ \noexpand\yquant@lang@dmeter%
}%
}%
}{%
\expandafter\ifyquant@firsttoken\expandafter\dmeterwide\expandafter{\texcode}{%
\protected@edef\process{%
- \def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname####1####2{%
+ \def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname{%
\def\noexpand\yquant@lang@attr@value{\texcode}%
- \noexpand\yquant@lang@@dmeter%
+ \noexpand\yquant@lang@dmeter%
}%
}%
}{%
\edef\process{%
\def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname{%
- \yquant@draw%
- {$\unexpanded\expandafter{\texcode}$}%
- {/yquant/operators/every box}%
+ \def\noexpand\yquant@lang@attr@value{$\unexpanded\expandafter{\texcode}$}%
+ \noexpand\yquant@lang@box%
}%
}%
}%
@@ -586,9 +633,8 @@
\edef\process{%
\def\expandafter\noexpand\csname qasm@lang@@def@\cmd\endcsname{%
\noexpand\yquant@register@get@allowmultitrue%
- \yquant@draw%
- {$\unexpanded\expandafter{\texcode}$}%
- {/yquant/operators/every box}%
+ \def\noexpand\yquant@lang@attr@value{$\unexpanded\expandafter{\texcode}$}%
+ \noexpand\yquant@lang@box%
}%
% we don't use \qasm@langhelper@declare@command here, since it works globally
\protected\long\def\expandafter\noexpand\csname qasm@lang@\cmd\endcsname####1 ####2\noexpand\qasm@end{%
@@ -602,73 +648,68 @@
\yquant@env@scan%
}
-\qasm@langhelper@declare@command{measure}{\expandafter\yquant@lang@@measure\@gobbletwo}01
+\qasm@langhelper@alias@yquant{measure}01{measure}{}
-\qasm@langhelper@declare@command{H}\yquant@lang@@h01
+\qasm@langhelper@alias@yquant{h}01{h}{}
-\qasm@langhelper@declare@command{X}\yquant@lang@@x01
+\qasm@langhelper@alias@yquant{x}01{x}{}
-\qasm@langhelper@declare@command{Y}\yquant@lang@@y01
+\qasm@langhelper@alias@yquant{y}01{y}{}
-\qasm@langhelper@declare@command{Z}\yquant@lang@@z01
+\qasm@langhelper@alias@yquant{z}01{z}{}
-\qasm@langhelper@declare@command{S}\qasm@lang@@s01
-\def\qasm@lang@@s{%
- \yquant@draw%
+\qasm@langhelper@declare@command{S}01{}{%
+ \yquant@prepare%
{$S$}%
{/yquant/operators/every s}%
}
-\qasm@langhelper@declare@command{T}\qasm@lang@@t01
-\def\qasm@lang@@t{%
- \yquant@draw%
+\qasm@langhelper@declare@command{T}01{}{%
+ \yquant@prepare%
{$T$}%
{/yquant/operators/every t}%
}
-\qasm@langhelper@declare@command{nop}\qasm@lang@@nop01
-\def\qasm@lang@@nop#1#2#3{%
+\qasm@langhelper@alias@yquant{nop}01{hspace}{%
\dimdef\yquant@lang@attr@value{\yquant@config@operator@minimum@width+\yquant@config@operator@sep}%
- \yquant@lang@@hspace{#3}%
% we don't use a grid-based layout, so a nop really does nothing
}
-\qasm@langhelper@declare@command{zero}\qasm@lang@@zero01
-\def\qasm@lang@@zero#1#2#3{%
+\qasm@langhelper@alias@yquant{zero}01{init}{%
\let\yquant@lang@attr@value=\qasm@config@zero%
- \yquant@lang@@init{#3}%
+ \def\yquant@lang@attr@type{qubit}%
}
-\qasm@langhelper@declare@command{discard}{\expandafter\yquant@lang@@discard\@gobbletwo}01
+\qasm@langhelper@alias@yquant{discard}01{discard}{}
-\qasm@langhelper@declare@command{slash}{\expandafter\yquant@lang@@slash\@gobbletwo}01
+\qasm@langhelper@alias@yquant{slash}01{slash}{}
-\qasm@langhelper@declare@command{dmeter}{\expandafter\yquant@lang@@dmeter\@gobbletwo}01
+\qasm@langhelper@alias@yquant{dmeter}01{dmeter}{}
-\qasm@langhelper@declare@command{cnot}\yquant@lang@@not11
+\qasm@langhelper@alias@yquant{cnot}11{not}{}
-\qasm@langhelper@declare@command{c-z}\yquant@lang@@z11
+\qasm@langhelper@alias@yquant{c-z}11{z}{}
-\qasm@langhelper@declare@command{c-x}\yquant@lang@@x11
+\qasm@langhelper@alias@yquant{c-x}11{x}{}
-\qasm@langhelper@declare@command{toffoli}\yquant@lang@@not21
+\qasm@langhelper@alias@yquant{toffoli}21{not}{}
-\qasm@langhelper@declare@command{ZZ}{\expandafter\yquant@lang@@zz\@gobbletwo}02
+\qasm@langhelper@alias@yquant{zz}02{zz}{}
-\qasm@langhelper@declare@command{XX}\yquant@lang@@xx02
+\qasm@langhelper@alias@yquant{xx}02{xx}{}
-\qasm@langhelper@declare@command{swap}\yquant@lang@@swap02
+\qasm@langhelper@alias@yquant{swap}02{swap}{}
-\qasm@langhelper@declare@command{Utwo}\qasm@lang@@Utwo02
-\def\qasm@lang@@Utwo{%
+\qasm@langhelper@declare@command{Utwo}02{%
\yquant@register@get@allowmultitrue%
- \yquant@draw%
+}{%
+ \yquant@prepare%
{$U$}%
{/yquant/operators/every utwo}%
}
% space is a hspace _without_ wire - in priciple, we would have to discard and then re-initialize
-\qasm@langhelper@declare@command{space}\qasm@lang@@nop01
+\let\qasm@lang@space=\qasm@lang@nop
% END_FOLD
% some commands that might be used in boxes
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/README b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/README
index 054ea601fe..0dd3952fbd 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/README
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/README
@@ -1,20 +1,21 @@
IMPORTANT NOTE:
This is the package formerly known as biblatex-chicago-notes-df. It
-is designed for use with the latest version (3.14) of biblatex. The
+is designed for use with the latest version (3.16) of biblatex. The
package contains the 17th-edition Chicago style files, and I am also
maintaining the 16th-edition files for those for whom they remain a
-necessity. I strongly encourage all users to move to the 17th-edition
-styles, as they have received and will continue to receive many new
-features and fixes as compared with the older styles. If you have
-used the package before, then you should be sure to consult the
-RELEASE file to find out what alterations you may need to make to your
-.bib files and document preambles to bring them up to date. Most
-particularly please note that biber is now the required backend for
-all the included styles (version 2.14 is designed for use with the
-latest biblatex).
+necessity, though with this release I am deprecating these older
+files, and will remove them in a future release. I strongly encourage
+all users to move to the 17th-edition styles, as they have received
+and will continue to receive many new features and fixes as compared
+with the older styles. If you have used the package before, then you
+should be sure to consult the RELEASE file to find out what
+alterations you may need to make to your .bib files and document
+preambles to bring them up to date. Most particularly please note
+that biber is now the required backend for all the included styles
+(version 2.16 is designed for use with the latest biblatex).
-README (version 2.0, 2020-04-20):
+README (version 2.1, 2021-03-27):
Biblatex-chicago contains three biblatex styles implementing the
specifications of the Chicago Manual of Style, 17th edition. The
@@ -71,7 +72,7 @@ If you want to place these files in your TeX directory tree instead of
in your working directory, I recommend the following, which should be
familiar from other packages:
- - The thirty files biblatex-chicago.sty, cmsendnotes.sty,
+ - The thirty-one files biblatex-chicago.sty, cmsendnotes.sty,
chicago-notes.cbx, chicago-notes.bbx, chicago-authordate.cbx,
chicago-authordate.bbx, chicago-authordate-trad.cbx,
chicago-authordate-trad.bbx, chicago-dates-common.cbx,
@@ -81,10 +82,10 @@ familiar from other packages:
cms-american.lbx, cms-brazilian.lbx, cms-british.lbx,
cms-dutch.lbx, cms-finnish.lbx, cms-french.lbx, cms-german.lbx,
cms-icelandic.lbx, cms-ngerman.lbx, cms-norsk.lbx,
- cms-norwegian.lbx, cms-nynorsk.lbx, cms-swedish.lbx, and
- cmsdocs.sty are located in the latex/ subdirectory. The entire
- contents of this latex/ directory can go in
- <TEXMFLOCAL>/tex/latex/biblatex-contrib/biblatex-chicago, where
+ cms-norwegian.lbx, cms-nynorsk.lbx, cms-romanian.lbx,
+ cms-swedish.lbx, and cmsdocs.sty are located in the latex/
+ subdirectory. The entire contents of this latex/ directory can go
+ in <TEXMFLOCAL>/tex/latex/biblatex-contrib/biblatex-chicago, where
<TEXMFLOCAL> is the root of your local TeX installation -- for
example, and depending on your system, /usr/share/texmf-local,
/usr/local/texmf, or C:\Local TeX Files\. You may need to create
@@ -106,7 +107,7 @@ familiar from other packages:
Changelog: See the RELEASE file, and also the end of
biblatex-chicago.pdf.
-Copyright (c) 2008-2020 David Fussner. This package is
+Copyright (c) 2008-2021 David Fussner. This package is
author-maintained. This work may be copied, distributed and/or
modified under the conditions of the LaTeX Project Public License,
either version 1.3 of this license or (at your option) any later
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE
index 428571c0fb..5d022e740f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/RELEASE
@@ -1,3 +1,118 @@
+Release notes for version 2.1 [2021-03-27]:
+
+This release contains several new features, some modifications for
+compatibility with the latest biblatex, and many bug fixes. All
+styles require the latest biblatex (3.16) and biber (2.16).
+
+ - Patrick Danilevici has very generously provided a Romanian
+ localization for biblatex-chicago (cms-romanian.lbx) to go with the
+ romanian.lbx he wrote for biblatex itself. The only hitch is that
+ the latter file won't be in the standard biblatex package until the
+ next release, so you'll have to grab it from GitHub
+ https://github.com/plk/biblatex/tree/dev/tex/latex/biblatex/lbx
+ until then.
+
+ - Moritz Wemheuer recommended that I include the standard biblatex
+ macro "begentry" at the start of all drivers in both Chicago
+ styles, with an empty definition by default. This allows users to
+ redefine it in their preambles and thereby inject their code into
+ the driver before anything is printed.
+
+ - Moritz also drew my attention to a question on StackExchange which
+ suggested that I should expand the applicability of the
+ "annotation" field, so I've modified the "annotation" option in all
+ styles to allow the field to appear both in bibliography (reference
+ list) and in long notes, and also added two new options in all
+ styles, "bibannotesep" and "citeannotesep," which allow you to
+ define how the "annotation" field will relate to the main entry.
+ The options have different defaults, and although they have the
+ same pre-defined keys those keys may have slightly different
+ meanings depending on whether the "annotation" is to appear in
+ notes or bibliography. Please see the docs of field and options in
+ sections 4.2, 4.4.2, 4.4.3, 5.2, 5.4.2, and 5.4.3 of
+ biblatex-chicago.pdf.
+
+ - On a related subject, I have included two new options in all styles
+ -- "formatbib" and "entrybreak" -- which provide fine-grained control
+ of page breaking in bibliographies and reference lists. Some of
+ the values of these options are designed to be used with specific
+ values of the "bibannotesep" option, so please see the
+ documentation in sections 4.4.3 and 5.4.3.
+
+ - In the notes & bibliography style Fr. Norbert Keliher requested a
+ way to turn off the printing, in the first citation of a work, of
+ the introduction -- (hereafter cited as ...) -- of a "shorthand"
+ that will appear in subsequent citations. The "shorthandintro"
+ option is now available globally, per type, and per entry to allow
+ you to control the (non)appearance of this clarifying notification.
+ By default, the first citation of a work will continue to present
+ the "shorthand" as it always has. Please see section 4.4.3 for the
+ details.
+
+ - Philipp Immel requested a feature involving the "nameaddon" field,
+ and pointed to a discussion on StackExchange which suggested that
+ others were also unsatisfied with that field's functionality, so in
+ this release I've provided three new package options to allow users
+ to mould it to their needs. The options are called "nameaddon,"
+ "nameaddonformat," and "nameaddonsep," and you can find all the
+ details in the "nameaddon" docs in sections 4.2. and 5.2. Cf.
+ also the discussions of the options in sections 4.4.2, 4.4.3,
+ 5.4.2, and 5.4.3. Allow me to emphasize that the package defaults
+ remain exactly the same as before, so that if you don't set any of
+ the new options no changes to your documents or .bib databases are
+ necessary.
+
+ - Philipp Immel also requested a way to use the standard biblatex
+ option "datamodel" even when loading the Chicago styles with
+ \usepackage{biblatex-chicago}. Implementing this allowed me to
+ regularize how the standard "mcite" and "natbib" options were
+ passed through to biblatex, and also to support the new biblatex
+ "casechanger" option, which can help solve a bug reported by Peter
+ Mukunda Pasedach. See sections 4.4.3 and 5.4.3.
+
+ - The new "relatedtype" "short" is available in all styles to allow
+ the presentation of short references rather than full ones when
+ using the "related" mechanism. See sections 4.2.1 and 5.2.1.
+
+ - In a similar vein, I have provided new \citeincite and
+ \fullciteincite commands to allow you, in some contexts, to cite a
+ related work inside the fields of another entry, something which,
+ although not recommended, is common practice, and which has
+ frequently not worked quite right. The \citeincite and
+ \citeincites commands always present short citations, and are
+ available in several fields, while \fullciteincite and
+ \fullciteincites always present long references, and are designed
+ only to be used in the "annotation" field for cases where an
+ annotated bibliography or reference list includes references to
+ works not cited in the main text. See sections 4.3.2 and 5.3.2 for
+ the details. If I've missed yet further tricky corners in this
+ functionality please let me know.
+
+ - After a request by Patrick Danilevici, I have added the four fields
+ "eventdate," "eventtitle," "eventtitleaddon," and "venue" to the
+ InProceedings, MVProceedings, and Proceedings drivers in all
+ styles, for compatibility with standard biblatex usage. See the
+ docs of those entry types in sections 4.1 and 5.1.
+
+ - The "postnotepunct" option should generally work now, both in more
+ contexts and with arbitrary "postnote" field contents.
+
+ - The "dashed" option governing the use of the 3-em dash in
+ bibliographies and reference lists is now available globally, per
+ type, and per entry.
+
+Note on the 16th-edition files:
+
+ - These have been updated for compatibility with the latest biblatex
+ and biber, and there are also a number of bug fixes included. I
+ haven't added any new functionality to the files, so for instance
+ if you want to use the new Romanian localization you'll need the
+ current 17th-edition styles. With this release I am marking the
+ 16th-edition files as deprecated, and will remove them in a future
+ release. Please consider moving your documents to the current
+ specification, where all of my development time is now spent.
+
+
Release notes for version 2.0 [2020-04-20]:
With this release biblatex-chicago now by default follows the 17th
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf
index 701d69be2e..0635be6702 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex
index 2879b923a1..b1817a966f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/biblatex-chicago.tex
@@ -4,9 +4,10 @@
% Chicago Manual of Style, 17th edition.
%
\documentclass[a4paper]{article}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+% \usepackage[latin1]{inputenc}
+\usepackage{fontspec}
\usepackage[american]{babel}
\usepackage[autostyle]{csquotes}
\usepackage{tabularx}
@@ -14,30 +15,54 @@
\usepackage{booktabs}
\usepackage{afterpage}
%\usepackage[showframe=true]{geometry}
-\usepackage{vmargin}
-\setpapersize{A4}
-\setmarginsrb{1.65in}{.9in}{1.75in}{.6in}{0pt}{0pt}{12pt}{24pt}
+% \usepackage{vmargin}
+% \setpapersize{A4}
+% \setmarginsrb{1.65in}{.9in}{1.75in}{.6in}{0pt}{0pt}{12pt}{24pt}
\setlength{\marginparwidth}{1in}
\setlength{\belowcaptionskip}{1em}
-\usepackage[pdftex,colorlinks,urlcolor=blue,linkcolor=blue,%
+\usepackage[colorlinks,urlcolor=blue,linkcolor=blue,%
filecolor=Teal]{hyperref}
% \usepackage{lmodern}
-\usepackage[scaled=0.9]{ClearSans}
-\usepackage[p]{zlmtt}
-\usepackage{gentium}
+% \usepackage[scaled=0.9]{ClearSans}
+% \usepackage[p]{zlmtt}
+% \usepackage{gentium}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
%\usepackage[osf]{mathpazo}
%\usepackage[scaled]{helvet}
-\usepackage[pdftex,hyperref,svgnames]{xcolor}
+\usepackage[hyperref,svgnames]{xcolor}
%\usepackage[dvips]{xcolor}
\newcommand{\mycolor}[1]{\textcolor[HTML]{228B22}{#1}}
\usepackage{multicol}
% Some generic settings.
\newcommand{\cmd}[1]{\texttt{\textbackslash #1}}
+\newcommand{\hc}{:\hspace{0pt}}
+\hyphenation{text-cites mit-tel-pleis-to-zae-ne har-ley cal-li-ma-chus
+ chi-ca-go au-to-cite case-changer beg-en-try note-ref-in-tro
+ cite-in-cite ores-tes post-script car-to-gra-phy da-ta-bases
+ ar-kan-sas pseu-do-nym head-less-cite da-ta-base bib-name-dash}
\setlength{\parindent}{0pt}
+\usepackage{typearea}
+\areaset[current]{360pt}{712pt}
+%\special{dvipdfmx:config C 0x10}
\newcommand{\mymarginpar}[1]{\marginpar{\flushright#1}}
\newcommand{\colmarginpar}[1]{\mymarginpar{\mycolor{#1}}}
-\newcommand{\mybigspace}{\vspace{\baselineskip}}
-\newcommand{\mylittlespace}{\vspace{.5\baselineskip}}
+\newlength\myparskip
+\newlength\myhalfskip
+\myparskip=12pt plus 4pt minus 2pt
+\myhalfskip=6pt plus 2pt minus 1pt
+\newcommand{\mybigspace}{\vspace{\myparskip}}
+\newcommand{\mylittlespace}{\vspace{\myhalfskip}}
\newcolumntype{L}{>{\raggedright}p}
\newcolumntype{H}{>{\sffamily\bfseries}l}
%\renewcommand{\textfraction}{0.0}
@@ -82,6 +107,9 @@ filecolor=Teal]{hyperref}
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}
+\def\ps@longtable{\setlength{\headsep}{36pt}\let\@mkboth\@gobbletwo
+ \let\@oddhead\@empty\def\@oddfoot{\reset@font\hfil\thepage
+ \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
\makeatother
\begin{document}
\begin{center}
@@ -89,7 +117,7 @@ filecolor=Teal]{hyperref}
Style files for biblatex
\vspace{.3\baselineskip}
-\sffamily\normalsize\bfseries David Fussner\qquad Version 2.0\\
+\sffamily\normalsize\bfseries David Fussner\qquad Version 2.1\\
\href{mailto:djf027@googlemail.com}{djf027@googlemail.com}\\ \today
\end{center}
@@ -105,15 +133,15 @@ filecolor=Teal]{hyperref}
\label{sec:Notice}
\textbf{This package is still under active development. The
- \textsf{biblatex} package by Philipp Lehman, Philip Kime, Audrey
- Boruvka, and Joseph Wright is now quite stable, but my task of
- incorporating the many enhancements it has accumulated in recent
- releases is ongoing. The \textsf{biblatex-chicago} package itself
- now implements the 17th edition of the \emph{Chicago Manual of
- Style}, though I have made it possible to continue to use the 16th
- edition files if that is imperative for you. The package relies
- heavily, in all styles, on using \textsf{biber} as its backend;
- other backends will not work properly.}
+ \textsf{biblatex} package by Philipp Lehman, Philip Kime, Moritz
+ Wemheuer, Audrey Boruvka, and Joseph Wright is now quite stable, but
+ my task of incorporating the many enhancements it has accumulated in
+ recent releases is ongoing. The \textsf{biblatex-chicago} package
+ itself now implements the 17th edition of the \emph{Chicago Manual
+ of Style}, though I have made it possible to continue to use the
+ 16th edition files if that is imperative for you. The package
+ relies heavily, in all styles, on using \textsf{biber} as its
+ backend; other backends will not work properly.}
\mylittlespace \textbf{I have tried to implement as much of the
\emph{Manual's} specification as possible, though undoubtedly some
@@ -123,16 +151,19 @@ filecolor=Teal]{hyperref}
more elegantly or accurately would be most welcome.}
\mylittlespace\textbf{Important Note:} If you have used
-\textsf{biblatex-chicago} before, please make sure you have read the
+\textsf{biblatex-chicago} before, especially if you've been using
+anything earlier than version 2.0, please make sure you have read the
RELEASE file that came with the package. It details the changes
you'll need to make to your .bib database in order for it to work
-properly with this release. I do strongly recommend that you switch
-to the new edition. The changes, as you can see from the RELEASE
-file, in the main involve \emph{additions} to the specification, with
-required alterations to your existing .bib databases actually being
-rather rare. If, on the other hand, you are new to these styles or to
-\textsf{biblatex} itself, please do continue reading at least the
-following section.
+properly with this release. If you have continued to use the
+16th-edition styles, I do strongly recommend that you switch to the
+new edition, as I am deprecating the previous edition styles, and will
+delete them in a future release. Any required changes, as you can see
+from the RELEASE file, in the main involve \emph{additions} to the
+specification, with required alterations to your existing .bib
+databases actually being rather rare, which should help ease the
+transition. If you are new to these styles or to \textsf{biblatex}
+itself, please do continue reading at least the following section.
\section{Quickstart}
\label{quickstart}
@@ -182,17 +213,17 @@ clickable link to an external document.
\begin{itemize}{}{}
\item The \textsf{biblatex} package, of course! The current version
- --- 3.14 at the time of writing --- has received extensive testing,
+ --- 3.16 at the time of writing --- has received extensive testing,
and contains features and bug fixes upon which my code relies.
Please don't use any earlier version. \textsf{Biblatex} requires
several packages, and it strongly recommends several more:
\begin{itemize}{}{}
\item \textsf{biber} --- the next-generation \textsc{Bib}\TeX\
- replacement by Philip Kime and François Charette, available from
- SourceForge (required). You should use the latest version, 2.14,
- to work with \textsf{biblatex} 3.14 and \textsf{biblatex-chicago};
- please note that any other backend will not produce accurate
- results.
+ replacement by Philip Kime and Fran\c{c}ois Charette, available
+ from SourceForge (required). You should use the latest version,
+ 2.16, to work with \textsf{biblatex} 3.16 and
+ \textsf{biblatex-chicago}; please note that any other backend will
+ not produce accurate results.
\item e-\TeX\ (required)
\item \textsf{etoolbox} --- available from CTAN (required)
\item \textsf{keyval} --- a standard package (required)
@@ -201,18 +232,17 @@ clickable link to an external document.
\item \textsf{babel} --- a standard package (\emph{strongly}
recommended)
\item \textsf{csquotes} --- available from CTAN (recommended).
- Please upgrade to the latest version of \textsf{csquotes} (5.2j).
+ Please upgrade to the latest version of \textsf{csquotes} (5.2l).
\end{itemize}
-\item With the changes both to \textsf{biblatex} and to
- \textsf{biblatex-chicago} in this release, \textsf{biblatex-chicago}
- itself now requires two packages, which are both loaded for you if
- you load \textsf{biblatex-chicago.sty}, but which you'll have to
- load manually if not. They are:
+\item With recent changes both to \textsf{biblatex} and to
+ \textsf{biblatex-chicago}, \textsf{biblatex-chicago} itself now
+ requires two packages, which are both loaded for you if you load
+ \textsf{biblatex-chicago.sty}, but which you'll have to load
+ manually if not. They are:
\begin{itemize}{}{}
- \item \mycolor{\textsf{nameref}} --- a standard package, available
+ \item \textsf{nameref} --- a standard package, available
in CTAN.
- \item \mycolor{\textsf{xstring}} --- also standard and available in
- CTAN.
+ \item \textsf{xstring} --- also standard and available in CTAN.
\end{itemize}
\item The line:
\begin{quote}
@@ -245,75 +275,73 @@ clickable link to an external document.
who wish to set much of the low-level formatting of their documents
themselves. Please see sections~\ref{sec:loading} and
\ref{sec:loading:auth} below for a fuller discussion of the issues
- involved here, and please also remember to load
- \mycolor{\textsf{xstring}} and \mycolor{\textsf{nameref}} manually
- if you use this latter method.
-\item You can use
- \verb+\usepackage[notes,short,backend=biber]{biblatex-chicago}+ to
- get the short note format even in the first reference of a notes \&\
- bibliography document, letting the bibliography provide the full
- reference.
-\item If you are accustomed to using the \textsf{natbib} compatibility
- option with \textsf{biblatex}, then you can continue to do so with
- \textsf{biblatex-chicago}. If you are using
- \cmd{usepackage\hfill\{biblatex-chicago\}} to load the package, then
- the option must be the plain \texttt{natbib} rather than
- \texttt{natbib=true}. If you use the latter, you'll get a
- \textsf{keyval} error. Please see sections~\ref{sec:useropts} and
- \ref{sec:authuseropts}, below.
+ involved here, and please also remember to load \textsf{xstring} and
+ \textsf{nameref} manually if you use this latter method.
+\item If you set
+ \verb+\usepackage[notes,short,backend=biber]{biblatex-chicago}+
+ you'll get the short note format even in the first reference of a
+ notes \&\ bibliography document, letting the bibliography provide
+ the full reference.
+\item If you are accustomed to using the \textsf{natbib} or
+ \textsf{mcite} compatibility options with \textsf{biblatex}, then
+ you can continue to do so with \textsf{biblatex-chicago}. If you
+ are using \cmd{usepac\-kage\{biblatex-chicago\}} to load the style,
+ then you can place (e.g.) \texttt{natbib} or \texttt{natbib=true}
+ among its options to pass it through to \textsf{biblatex}. Please
+ see sections~\ref{sec:useropts} and \ref{sec:authuseropts}, below.
\item By far the simplest setup is to use \textsf{babel}, and to have
\texttt{american} as the main text language. (\textsf{Polyglossia}
- should work, too, but I haven't tested it.) As before,
- \textsf{babel}-less setups, and also those choosing \texttt{english}
- as the main text language, should work out of the box.
- \textsf{Biblatex-chicago} also provides (at least partial) support
- for Brazilian Portuguese, British, \mycolor{Dutch}, Finnish, French,
- German, Icelandic, Norwegian, and Swedish. Please see below
- (section~\ref{sec:international}) for a fuller explanation of all
- the options.
-\item {\small \textsf{chicago-authordate.cbx,
- chicago-authordate-trad.cbx, chicago-dates-common.cbx},
- \textsf{chi\-ca\-go-authordate.bbx},
- \textsf{chicago-authordate-trad.bbx}, \textsf{chicago-notes.cbx},
- \textsf{chicago-notes.bbx},\break \textsf{cms-american.lbx},
- \textsf{cms-brazilian.lbx}, \textsf{cms-british.lbx},
- \mycolor{\textsf{cms-dutch.lbx}}, \textsf{cms-finnish.lbx},
- \textsf{cms-french.lbx}, \textsf{cms-german.lbx},
- \textsf{cms-icelandic.lbx}, \textsf{cms-ngerman.lbx},
- \textsf{cms-norsk.lbx}, \textsf{cms-nor\-wegian.lbx},
- \textsf{cms-nynorsk.lbx}, \textsf{cms-swedish.lbx},
- \textsf{bibla\-tex-chicago.sty}, and \textsf{cmsdocs.sty}}, all
- from \textsf{biblatex-chicago}, installed either in a system-wide
- \TeX\ directory, or in the working directory where you keep your
- *.tex files. The .zip file from CTAN contains subdirectories to
- help keep the growing number of files organized, so the files listed
- above can be found in the \texttt{latex/} subdirectory. If you
- install in a system-wide directory, I suggest a standard layout
- using \texttt{<TEXMFLOCAL>\slash
- tex/latex/bib\-latex-contrib/biblatex-chicago}, where\
+ should work, too, and has received somewhat more testing for this
+ release.) As before, \textsf{babel}-less setups, and also those
+ choosing \texttt{english} as the main text language, should work out
+ of the box. \textsf{Biblatex-chicago} also provides (at least
+ partial) support for Brazilian Portuguese, British, Dutch, Finnish,
+ French, German, Icelandic, Norwegian, \mycolor{Romanian} and
+ Swedish. Please see below (section~\ref{sec:international}) for a
+ fuller explanation of all the options.
+\item \textsf{chicago-authordate.cbx, chicago-authordate-trad.cbx,
+ chicago-dates-common.cbx},\break \textsf{chicago-authordate.bbx},
+ \textsf{chicago-authordate-trad.bbx}, \textsf{chicago-notes.cbx},
+ \textsf{chicago-notes.bbx}, \textsf{cms-american.lbx},
+ \textsf{cms-brazilian.lbx}, \textsf{cms-british.lbx},
+ \textsf{cms-dutch.lbx}, \textsf{cms-finnish.lbx},
+ \textsf{cms-french.lbx}, \textsf{cms-german.lbx},
+ \textsf{cms-icelandic.lbx}, \textsf{cms-ngerman.lbx},\break
+ \textsf{cms-norsk.lbx}, \textsf{cms-norwegian.lbx},
+ \textsf{cms-nynorsk.lbx}, \mycolor{\textsf{cms-romanian.lbx}},
+ \textsf{cms-swe-\break dish.lbx}, \textsf{biblatex-chicago.sty}, and
+ \textsf{cmsdocs.sty}, all from \textsf{biblatex-chicago}, installed
+ either in a system-wide \TeX\ directory, or in the working directory
+ where you keep your *.tex files. The .zip file from CTAN contains
+ subdirectories to help keep the growing number of files organized,
+ so the files listed above can be found in the \texttt{latex/}
+ subdirectory. If you install in a system-wide directory, I suggest
+ a standard layout like \texttt{<TEXMFLOCAL>\slash
+ tex/latex/biblatex-contrib/biblatex-chicago}, where\
\texttt{<TEXMFLOCAL>} is the root of your local \TeX\ installation
- --- for example, and depending on your system and preferences,
- \texttt{/usr/share/texmflocal}, \texttt{/usr/local/share/texmf}, or
- \texttt{C:\textbackslash{}Local TeX Files\textbackslash}. Then you
- can copy the contents of the \texttt{latex/} directory there. (If
- you install into your working directory, then you'll need to copy
- the files directly there, without subdirectories.) Of course, if
- you choose to place them anywhere in the \texttt{texmf} tree, you'll
- need to update the file name database to make sure \TeX\ can find
- them.
-\item \textsf{chicago-authordate16.cbx, chicago-authordate-trad16.cbx,
- chicago-dates-com\-mon16.cbx}, \textsf{chicago-authordate16.bbx},
+ --- for example, and depending on your operating system and
+ preferences, \texttt{/usr/share/texmflocal},
+ \texttt{/usr/local/share/texmf}, or \texttt{C:\textbackslash{}Local
+ TeX Files\textbackslash}. Then you can copy the contents of the
+ \texttt{latex/} directory there. (If you install into your working
+ directory, then you'll need to copy the files directly there,
+ without subdirectories.) Of course, if you choose to place them
+ anywhere in the \texttt{texmf} tree, you'll need to update the file
+ name database to make sure \TeX\ can find them.
+\item The files \textsf{chicago-authordate16.cbx,
+ chicago-authordate-trad16.cbx, chicago-dates-common16.cbx},
+ \textsf{chicago-authordate16.bbx},
\textsf{chicago-authordate-trad16.bbx},
\textsf{chicago-notes16.cbx}, and \textsf{chicago-notes16.bbx},
which, as their names suggest, allow you to continue using the
16th-edition specifications alongside the most recent
\textsf{biblatex}, if your project requires this. They can be found
in the same directory as the 17th-edition equivalents.
-\item The new dependent \LaTeX\ package
- \mycolor{\textsf{cmsendnotes.sty}}, found with the previous files.
- It offers additional functionality for those wishing to use the new
- \mycolor{\texttt{noteref}} option with endnotes instead of
- footnotes. See section~\ref{sec:noteref}, below, and also
+\item The dependent \LaTeX\ package \textsf{cmsendnotes.sty}, found
+ with the previous files. It offers additional functionality for
+ those wishing to use the new \texttt{noteref} option with endnotes
+ instead of footnotes. See section~\ref{sec:noteref}, below, and
+ also
\href{file:cms-noteref-demo.pdf}{\textsf{cms-noteref-demo.pdf}}.
\item The very clear and detailed documentation of the
\textsf{biblatex} system, available in that package as
@@ -331,10 +359,10 @@ clickable link to an external document.
features of the Chicago styles, while the third documents some of
the alterations you might need to make to your .bib files to use the
\texttt{trad} style. The fourth gives a brief example of the usage
- of the \mycolor{\texttt{noteref}} package option to the notes \&\
- bibliography style. All four are fully hyperlinked, the first three
- in particular allowing you easily to jump from notes or citations to
- an annotated bibliography or reference list, and thence to the .bib
+ of the \texttt{noteref} package option to the notes \&\ bibliography
+ style. All four are fully hyperlinked, the first three in
+ particular allowing you easily to jump from notes or citations to an
+ annotated bibliography or reference list, and thence to the .bib
entries themselves. If you ensure that all four are in the same
directory as the document you are reading (the \TeX\ Live default),
marginal links there will take you to further discussions here. The
@@ -358,8 +386,8 @@ clickable link to an external document.
the second and third are the result of processing
\textsf{dates-test.bib} with \textsf{cms-dates-sample.tex} or
\textsf{cms-trad-sample.tex}, and the fourth processes
- \textsf{legal-test.bib} using \textsf{cms-legal-sam\-ple.tex}. All
- of these files are in \texttt{doc/}, and the \textsf{sample} files,
+ \textsf{legal-test.bib} using \textsf{cms-legal-sample.tex}. All of
+ these files are in \texttt{doc/}, and the \textsf{sample} files,
aside from the last named, are mainly included for testing purposes.
\item The file you are reading, \textsf{biblatex-chicago.pdf}, which
aims to be as complete a description as possible of the rules for
@@ -377,8 +405,8 @@ clickable link to an external document.
page~\pageref{deprec:obsol}. You will find the nineteen previous
files in the \texttt{doc/} subdirectory once you've extracted
\textsf{biblatex-chicago.zip}. If you wish to place them in a
- system-wide directory, I would recommend:\,\,\,
- \texttt{<TEXMFLOCAL>/doc/latex/biblatex-contrib/biblatex-chicago},\\
+ system-wide directory, you can try:
+ \texttt{<TEXMFLOCAL>/doc/latex/biblatex-contrib/biblatex-chicago},
all the while remembering, of course, to update the file name
database afterward.
\item Access to a copy of \emph{The Chicago Manual of Style} itself,
@@ -390,7 +418,7 @@ clickable link to an external document.
\subsection{License}
\label{sec:lppl}
-Copyright © 2008--2020 David Fussner. This package is
+Copyright \copyright\ 2008--2021 David Fussner. This package is
author-maintained. This work may be copied, distributed and/or
modified under the conditions of the \LaTeX\ Project Public License,
either version 1.3 of this license or (at your option) any later
@@ -415,31 +443,32 @@ was invaluable. The code for formatting the footnote marks, and that
for printing the separating rule only after a run-on note, I've
adapted from the \textsf{footmisc} package by Robin Fairbairns, and
I've borrowed ideas for the \texttt{shorthandibid} option from Dominik
-Waßenhoven's \textsf{biblatex-dw} package. I've adapted Audrey
+Wa{\ss}enhoven's \textsf{biblatex-dw} package. I've adapted Audrey
Boruvka's \cmd{textcite} code from
\href{http://tex.stackexchange.com/questions/67837/citations-as-nouns-in-biblatex-chicago}{Stackexchange}
for the notes \&\ bibliography style, and her page-number-compression
code for both styles from the
\href{http://tex.stackexchange.com/questions/44492/biblatex-chicago-style-page-ranges}{same
- site}. The dependent package \mycolor{\textsf{cmsendnotes.sty}}
-contains code by John Lavagnino and Ulrich Dirr. I am very grateful
-to Wouter Lancee for the new Dutch localization, to Gustavo Barros for
-the Brazilian Portuguese localization, to Stefan Björk for the Swedish
-localization, to Antti-Juhani Kaijahano for the Finnish localization,
-to Baldur Kristinsson for providing the Icelandic localization, and to
-Håkon Malmedal for the Norwegian localizations. Kazuo Teramoto and
-Gildas Hamel both sent patches to improve the package, and Arne
-Skjærholt provided some code to get me started on the
-\cmd{gentextcite} commands. There may be other \LaTeX\ code I've
-appropriated and forgotten, in which case please remind me. Finally,
-Charles Schaum and Joseph Reagle Jr.\ were both extremely generous
-with their help and advice during the development of this package, and
-have both continued indefatigably to test it and suggest needed
-improvements. They were particularly instrumental in encouraging the
-greatest possible degree of compatibility with other \textsf{biblatex}
-styles. Indeed, if the task of adapting .bib files for use with the
-Chicago style seems onerous now, you should have tried it before they
-got their hands on it.
+ site}. The dependent package \textsf{cmsendnotes.sty} contains code
+by John Lavagnino and Ulrich Dirr. I am very grateful to Patrick
+Danilevici for the new Romanian localization, to Wouter Lancee for the
+Dutch localization, to Gustavo Barros for the Brazilian Portuguese
+localization, to Stefan Bj\"{o}rk for the Swedish localization, to
+Antti-Juhani Kaijahano for the Finnish localization, to Baldur
+Kristinsson for providing the Icelandic localization, and to H{\aa}kon
+Malmedal for the Norwegian localizations. Kazuo Teramoto and Gildas
+Hamel both sent patches to improve the package, and Arne Skj{\ae}rholt
+provided some code to get me started on the \cmd{gentextcite}
+commands. There may be other \LaTeX\ code I've appropriated and
+forgotten, in which case please remind me. Finally, Charles Schaum
+and Joseph Reagle Jr.\ were both extremely generous with their help
+and advice during the development of this package, and have both
+continued indefatigably to test it and suggest needed improvements.
+They were particularly instrumental in encouraging the greatest
+possible degree of compatibility with other \textsf{biblatex} styles.
+Indeed, if the task of adapting .bib files for use with the Chicago
+style seems onerous now, you should have tried it before they got
+their hands on it.
\section{Detailed Introduction}
\label{sec:Intro}
@@ -559,24 +588,22 @@ included the reference keys from the latter file below in parentheses.
The complete list of entry types currently available in
\textsf{biblatex-chicago-notes}, minus the odd \textsf{biblatex}
-alias, is as follows: \textbf{article}, \mycolor{\textbf{artwork}},
-\mycolor{\textbf{audio}}, \mycolor{\textbf{book}},
-\textbf{bookinbook}, \textbf{booklet}, \textbf{collection},
-\textbf{customc}, \mycolor{\textbf{dataset}}, \textbf{image},
-\textbf{inbook}, \textbf{incollection}, \textbf{inproceedings},
-\mycolor{\textbf{inreference}}, \textbf{jurisdiction}, \textbf{legal},
-\textbf{legislation}, \textbf{letter}, \textbf{manual}, \textbf{misc},
-\mycolor{\textbf{music}}, \mycolor{\textbf{mvbook}},
-\mycolor{\textbf{mvcollection}}, \mycolor{\textbf{mvproceedings}},
-\mycolor{\textbf{mvreference}}, \mycolor{\textbf{online}} (with its
-alias \textbf{www}), \textbf{patent}, \mycolor{\textbf{performance}},
-\textbf{periodical}, \textbf{proceedings}, \textbf{reference},
-\textbf{report} (with its alias \textbf{techreport}),
-\mycolor{\textbf{review}}, \mycolor{\textbf{standard}},
-\textbf{suppbook}, \textbf{suppcollection}, \textbf{suppperiodical},
-\textbf{thesis} (with its aliases \textbf{mastersthesis} and
-\textbf{phdthesis}), \textbf{unpublished}, and
-\mycolor{\textbf{video}}.
+alias, is as follows: \textbf{article}, \textbf{artwork},
+\textbf{audio}, \textbf{book}, \textbf{bookinbook}, \textbf{booklet},
+\textbf{collection}, \textbf{customc}, \textbf{dataset},
+\textbf{image}, \textbf{inbook}, \textbf{incollection},
+\mycolor{\textbf{inproceedings}}, \textbf{inreference},
+\textbf{jurisdiction}, \textbf{legal}, \textbf{legislation},
+\textbf{letter}, \textbf{manual}, \textbf{misc}, \textbf{music},
+\textbf{mvbook}, \textbf{mvcollection}, \textbf{mvproceedings},
+\textbf{mvreference}, \textbf{online} (with its alias \textbf{www}),
+\textbf{patent}, \textbf{performance}, \textbf{periodical},
+\mycolor{\textbf{proceedings}}, \textbf{reference}, \textbf{report}
+(with its alias \textbf{techreport}), \textbf{review},
+\textbf{standard}, \textbf{suppbook}, \textbf{suppcollection},
+\textbf{suppperiodical}, \textbf{thesis} (with its aliases
+\textbf{mastersthesis} and \textbf{phdthesis}), \textbf{unpublished},
+and \textbf{video}.
\mylittlespace What follows is an attempt to specify all the
differences between these types and the standard provided by
@@ -779,12 +806,12 @@ specific entry goes in \textsf{title}, the general title of the blog
goes in \textsf{journaltitle}, and the word \enquote{\texttt{blog}} in
the \textsf{location} field (though you could just use special
formatting in the \textsf{journaltitle} field itself, which may
-sometimes be necessary). The 17th \colmarginpar{New!} edition
-specifies that \enquote{blogs that are part of a larger publication
- should include the name of that publication.} This usually involves
-a newspaper or magazine which also publishes various blogs on its
-website, and it means that such entries need a more general title than
-the \textsf{journaltitle}. It's not standard \textsf{biblatex} or
+sometimes be necessary). The 17th edition specifies that
+\enquote{blogs that are part of a larger publication should include
+ the name of that publication.} This usually involves a newspaper or
+magazine which also publishes various blogs on its website, and it
+means that such entries need a more general title than the
+\textsf{journaltitle}. It's not standard \textsf{biblatex} or
anything, but you can now put such information in \textsf{maintitle}
(with \textsf{mainsubtitle} and \textsf{maintitleaddon}, if needed),
but only in \textsf{article} and \textsf{review} entries with a
@@ -797,7 +824,7 @@ like \enquote{comment on} or \enquote{reply to,} need a
comments make particular use of the \textsf{eventdate} and of the
\textsf{nameaddon} fields; please see the documentation of
\textbf{review}, below, and also of the \textsf{relatedtype}
-\mycolor{\texttt{commenton}} in section~\ref{sec:related}.
+\texttt{commenton} in section~\ref{sec:related}.
\mylittlespace Ninth, the special \textsf{biblatex} field
\textsf{shortjournal} allows you to present shortened
@@ -807,13 +834,13 @@ lists of journal abbreviations in the manner of a \textsf{shorthand}
list. Please see the documentation of \textbf{shortjournal} in
section~\ref{sec:entryfields} for all the details on how this works.
-\mylittlespace Finally, \colmarginpar{New!} the 17th edition (14.191)
-specifies that, for news sites carrying \enquote{stories as they
- unfold, it may be appropriate to include a time stamp for an article
- that includes one.} You can provide this by using the standard
-\textsf{biblatex} time stamp format inside the \textsf{date} field,
-e.g., \texttt{2008-07-01T10:18:00}. Since the \emph{Manual} prefers
-the standard time zone initialisms, a separate \textsf{timezone} field
+\mylittlespace Finally, the 17th edition (14.191) specifies that, for
+news sites carrying \enquote{stories as they unfold, it may be
+ appropriate to include a time stamp for an article that includes
+ one.} You can provide this by using the standard \textsf{biblatex}
+time stamp format inside the \textsf{date} field, e.g.,
+\texttt{2008-07-01T10:18:00}. Since the \emph{Manual} prefers the
+standard time zone initialisms, a separate \textsf{timezone} field
would be required if you want to provide one.
\mylittlespace If you're still with me, allow me to recommend that you
@@ -827,10 +854,10 @@ that I have found in my own research that the unusual and/or limit
cases are really rather rare, and that the vast majority of sources
won't require any knowledge of these onerous details.
-\mybigspace Arne \colmarginpar{\textbf{artwork}} Kjell Vikhagen
+\mybigspace Arne \mymarginpar{\textbf{artwork}} Kjell Vikhagen
pointed out to me that none of the standard entry types were
straightforwardly adaptable when referring to visual artworks. It's
-unclear that the \emph{Manual} (14.235) believes it necessary to
+unclear whether the \emph{Manual} (14.235) believes it necessary to
include them in the bibliographical apparatus at all, but it's easy
all the same to conceive of contexts in which a list of artworks
studied might be desirable, and \textsf{biblatex} includes entry types
@@ -854,16 +881,15 @@ first word only needs a capital letter at the beginning of a sentence,
use lowercase in the .bib file and let \textsf{biblatex} handle it for
you. (See \emph{Manual} 3.22, 8.198; leo:madonna, bedford:photo.)
-\mylittlespace The \colmarginpar{New!} 17th edition of the
-\emph{Manual} has included new information in some of its examples, so
-I have added 4 new fields to the drivers. Alongside the usual
-\textsf{date} for the creation of a work, you may also want to include
-the printing date of a particular exemplar of a photograph or a print.
-The system I have designed uses the \emph{earlier} of the
-\textsf{date} and the \textsf{origdate} to be the date of creation,
-and the \emph{later} to be the printing date. The style will
-automatically prefix the printing date with the localized
-\cmd{bibstring} \mycolor{\texttt{printed}}, so if that's the wrong
+\mylittlespace The 17th edition of the \emph{Manual} has included new
+information in some of its examples, so I have added 4 new fields to
+the drivers. Alongside the usual \textsf{date} for the creation of a
+work, you may also want to include the printing date of a particular
+exemplar of a photograph or a print. The system I have designed uses
+the \emph{earlier} of the \textsf{date} and the \textsf{origdate} to
+be the date of creation, and the \emph{later} to be the printing date.
+The style will automatically prefix the printing date with the
+localized \cmd{bibstring} \texttt{printed}, so if that's the wrong
string entirely then you can define \textsf{userd} any way you like to
change it. If only \emph{one} of those two dates is available, it
will always serve as a creation date.
@@ -886,7 +912,7 @@ Assuming the complicated date handling I've just outlined isn't
required for such a work, in this instance the other fields in a
\textsf{misc} entry function pretty much as in \textsf{artwork}.
-\mybigspace Following \colmarginpar{\textbf{audio}} the request of
+\mybigspace Following \mymarginpar{\textbf{audio}} the request of
Johan Nordstrom, I have included three entry types, all undefined by
the standard styles, designed to allow users to present audiovisual
sources in accordance with the Chicago specifications. The
@@ -916,9 +942,9 @@ whether the pieces originate from an identifiably
concern, fills gaps in the others, and presents its sources in a more
\enquote{book-like} manner. Published musical scores need this type
--- unpublished ones would use \textsf{misc} with an
-\textsf{entrysubtype} (shapey:partita) --- as do \mycolor{podcasts}
-and such favorite educational formats as the slideshow and the
-filmstrip (danforth:podcast, greek:film\-strip, schubert:muellerin,
+\textsf{entrysubtype} (shapey:partita) --- as do podcasts and such
+favorite educational formats as the slideshow and the filmstrip
+(danforth:podcast, greek:filmstrip, schubert:muellerin,
verdi:corsaro). The \emph{Manual} (14.264) sometimes uses a similar
format for audio books (twain:audio), though, depending on the sorts
of publication facts you wish to present, this sort of material may
@@ -960,12 +986,12 @@ automated, localized handling, you can also now provide the string you
need in an \textsf{editor[abc]type} field, e.g.,
\enquote{\texttt{libretto by}} (verdi:corsaro).
-\mylittlespace For \colmarginpar{New!} podcasts, newly covered by the
-17th edition (14.267), the \textsf{audio} type provides the nearest
-analogue I could find, and in general most of the data should fit
-comfortably into the fields already discussed above, the episode name
-in \textsf{title} and the name of the podcast in \textsf{booktitle},
-for starters. Two details, however, need mentioning: first, the
+\mylittlespace For podcasts, newly covered by the 17th edition
+(14.267), the \textsf{audio} type provides the nearest analogue I
+could find, and in general most of the data should fit comfortably
+into the fields already discussed above, the episode name in
+\textsf{title} and the name of the podcast in \textsf{booktitle}, for
+starters. Two details, however, need mentioning: first, the
\textsf{note} field as the place to specify that it is a podcast, and
the \textsf{eventdate} field for the date of publication of the
specific episode (\textsf{title}) cited, which appears in close
@@ -974,7 +1000,7 @@ field helps \textsf{biblatex-chicago} know that the \textsf{audio}
entry is a podcast episode, and helps it construct the entry
appropriately (danforth:podcast).
-\mybigspace This \colmarginpar{\textbf{book}} is the standard
+\mybigspace This \mymarginpar{\textbf{book}} is the standard
\textsf{biblatex} and \textsc{Bib}\TeX\ entry type, and the package
can automatically provide abbreviated references in notes and
bibliography when you use a \textsf{crossref} or an \textsf{xref}
@@ -983,13 +1009,13 @@ enable it in the preamble or in the \textsf{options} field using the
\texttt{booklongxref} option. Please see \textbf{crossref} in
section~\ref{sec:entryfields} and \texttt{booklongxref} in
section~\ref{sec:chicpreset}, below. Cf.\ harley:ancient:cart,
-harley:cartography, and harley:hoc for how this might look. The
+harley\hc cartography, and harley:hoc for how this might look. The
\textsf{book} type is useful also to present multimedia app content,
the added fields \textsf{version} and \textsf{type} providing
information about the app's version and about the system on which it
runs (14.268; angry:birds).
-\enlargethispage{\baselineskip}
+\enlargethispage{-\baselineskip}
\mybigspace This \mymarginpar{\textbf{bookinbook}} type provides the
means of referring to parts of books that are considered, in other
@@ -1039,7 +1065,7 @@ recommen\-ded by the \emph{Manual}. (This is different from the
mechanisms, all primarily designed to include cross-references to
other works. Cf.\ 14.81--82). The lecarre:cornwell entry, for
example, would allow your readers to find the more-commonly-used
-pseudonym \enquote{John Le Carré} even if they were, for some reason,
+pseudonym \enquote{John Le Carr\'e} even if they were, for some reason,
looking under his real name \enquote{David John Moore Cornwell.}\ As I
read the specification, these cross-references are particularly
encouraged, bordering on required, when \enquote{a bibliography
@@ -1063,9 +1089,10 @@ if you cite the main work. (Cf.\ \textsf{userc}, below.)
will connect the two parts of the cross-reference with the word
\enquote{\emph{See}} --- or its equivalent in the document's language
--- in italics. If you wish to present it differently, you can put
-the connecting word(s) into the \textsf{nameaddon} field.
+the connecting word(s) into the \textsf{nameaddon} field, formatted as
+you wish.
-\mybigspace This \colmarginpar{\textbf{dataset}} entry type, new in
+\mybigspace This \mymarginpar{\textbf{dataset}} entry type, new in
\textsf{biblatex} 3.13, allows you to cite scientific databases, for
which the \emph{Manual} (14.257) presents some rather specific, if
brief, instructions. To construct your entry, you can put the name of
@@ -1091,7 +1118,7 @@ historical reasons (See 3.22, 8.198; bedford:photo.)
two standard \textsf{biblatex} types have very nearly identical
formatting requirements as far as the Chicago specification is
concerned, but I have retained both of them for compatibility.
-\textsf{Biblatex.pdf} (§~2.1.1) intends the first for \enquote{a part
+\textsf{Biblatex.pdf} (\S~2.1.1) intends the first for \enquote{a part
of a book which forms a self-contained unit with its own title,}
while the second would hold \enquote{a contribution to a collection
which forms a self-contained unit with a distinct author and its own
@@ -1132,12 +1159,17 @@ is, any specific page reference given in any sort of \cmd{cite}
command overrides the contents of a \textsf{pages} field in a .bib
file entry.
-\mybigspace This \mymarginpar{\textbf{inproceedings}} entry type works
-pretty much as in standard \textsf{biblatex}. Indeed, the main
-differences between it and \textsf{incollection} are the lack of an
-\textsf{edition} field and the possibility that an
-\textsf{organization} may be cited alongside the \textsf{publisher},
-even though the \emph{Manual} doesn't specify its use (14.217).
+\mybigspace This \colmarginpar{\textbf{inproceedings}} entry type
+works pretty much as in standard \textsf{biblatex}, even more so now
+that, after a request from Patrick Danilevici, I have newly included
+the \mycolor{\textsf{eventdate}}, \mycolor{\textsf{eventtitle}},
+\mycolor{\textsf{eventtitleaddon}}, and \mycolor{\textsf{venue}}
+fields for specifying where and when the event occurred that produced
+the proceedings. These four fields are the main difference between it
+and \textsf{incollection}, along with the lack of an \textsf{edition}
+field and the possibility that an \textsf{organization} may be cited
+alongside the \textsf{publisher}, even though the \emph{Manual}
+doesn't specify the use of any of these supplementary fields (14.217).
Please note, also, that the \textsf{crossref} and \textsf{xref}
mechanism for shortening citations of multiple pieces from the same
\textsf{proceedings} is operative here, just as it is in
@@ -1146,7 +1178,7 @@ mechanism for shortening citations of multiple pieces from the same
\texttt{longcrossref} in section~\ref{sec:chicpreset} for more
details.
-\mybigspace This \colmarginpar{\textbf{inreference}} entry type is
+\mybigspace This \mymarginpar{\textbf{inreference}} entry type is
aliased to \textsf{incollection} in the standard styles, but the
\emph{Manual} has particular requirements, so if you are citing
\enquote{[w]ell-known reference books, such as major dictionaries and
@@ -1218,27 +1250,26 @@ in every other way will be treated as a normal book, often a good
choice for unfamiliar or non-standard reference works.
\mylittlespace Finally, all of these rules apply to online reference
-works, along with a few more. The \colmarginpar{New!} 17th edition of
-the \emph{Manual} now allows, \enquote{subject to editorial
- discretion,} the alternative treatment of an online reference work
-which \enquote{does not have (and never had) a printed counterpart}
-(14.206, 14.233). In effect this means that it can be treated more
-like an \textsf{online} entry than a \textsf{book}, its \textsf{title}
-therefore in plain roman rather than in italics. You can achieve this
-in \textsf{inreference} entries by providing an \textsf{entrysubtype}
-in the entry. Online reference works need not only a \textsf{url} but
-also, always, a \textsf{urldate} (instead of a \textsf{date)}, as
-these sources are in constant flux. When that flux is of a
-particularly high frequency, as with Wikipedia, then a time stamp may
-also be needed. You can provide this in the \textsf{urldate} field
-itself, using the standard \textsf{biblatex} format, e.g.,
-\texttt{2008-07-01T10:18:00}. It is
-\colmarginpar{\texttt{urlstamp=true}} possible to turn off the
-printing of the \textsf{urltime} with the new
-\mycolor{\texttt{urlstamp}} option, which is set to \texttt{true} by
-default, but which can be changed in your preamble for the whole
-document, for specific entry types, or in the \textsf{options} field
-of specific entries (wikiped:bibtex, grove:sibelius).
+works, along with a few more. The 17th edition of the \emph{Manual}
+now allows, \enquote{subject to editorial discretion,} the alternative
+treatment of an online reference work which \enquote{does not have
+ (and never had) a printed counterpart} (14.206, 14.233). In effect
+this means that it can be treated more like an \textsf{online} entry
+than a \textsf{book}, its \textsf{title} therefore in plain roman
+rather than in italics. You can achieve this in \textsf{inreference}
+entries by providing an \textsf{entrysubtype} in the entry. Online
+reference works need not only a \textsf{url} but also, always, a
+\textsf{urldate} (instead of a \textsf{date)}, as these sources are in
+constant flux. When that flux is of a particularly high frequency, as
+with Wikipedia, then a time stamp may also be needed. You can provide
+this in the \textsf{urldate} field itself, using the standard
+\textsf{biblatex} format, e.g., \texttt{2008-07-01T10:18:00}. It is
+\mymarginpar{\texttt{urlstamp=true}} possible to turn off the printing
+of the \textsf{urltime} with the \texttt{urlstamp} option, which is
+set to \texttt{true} by default, but which can be changed in your
+preamble for the whole document, for specific entry types, or in the
+\textsf{options} field of specific entries (wikiped:bibtex,
+grove:sibelius).
\mybigspace I
\mymarginpar{\textbf{jurisdiction}\\\textbf{legal}\\\textbf{legislation}}
@@ -1344,7 +1375,7 @@ if you were to use a \textsf{book} entry for such a reference, then
you would need to define both \textsf{author} and \textsf{publisher}
using the name you here might have put in \textsf{organization}. (See
14.84; chicago:manual, dyna:browser, natrecoff:camera. Cp.\ also the
-new \mycolor{\textbf{standard}} entry type.)
+\textbf{standard} entry type.)
\mybigspace As \mymarginpar{\textbf{misc}} its name suggests, the
\textsf{misc} entry type was designed as a hold-all for citations that
@@ -1410,7 +1441,9 @@ additional information about the \textsf{author} in such entries by
using the \textsf{nameaddon} field, providing your own square brackets
if you're indicating that the \textsf{author} is pseudonymous, or
parentheses if it's another sort of information of interest to your
-readers.
+readers. The package options \mycolor{\texttt{nameaddonformat}} and
+\mycolor{\texttt{nameaddonsep}} can help here, as well. See
+sections~\ref{sec:useropts} and \ref{sec:chicpreset}, below.
\mylittlespace Now for the subtleties. First, the \emph{Manual}
(14.224) allows in these entries, as it does in documentation
@@ -1431,17 +1464,16 @@ include the day-month-year in a short note, I have provided the
the citation command. (The standard \textsf{biblatex} command
\cmd{printdate} will work if you prefer the standard date form.)
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace Second, some material (roosevelt:speech) includes a
venue for the event recorded in the archive, so I have added the
-\mycolor{\textsf{venue}} field, which prints \emph{before} the date,
-with the \textsf{origlocation} appearing after it. Somewhat
-confusingly, in published letters the \textsf{origlocation} itself
-prints before the date, rather than after, so if the inconsistency
-between published and unpublished letters bothers you then you could
-conceivably use \textsf{venue} instead of \textsf{origlocation} for
-that purpose here.
+\textsf{venue} field, which prints \emph{before} the date, with the
+\textsf{origlocation} appearing after it. Somewhat confusingly, in
+published letters the \textsf{origlocation} itself prints before the
+date, rather than after, so if the inconsistency between published and
+unpublished letters bothers you then you could conceivably use
+\textsf{venue} instead of \textsf{origlocation} for that purpose here.
\mylittlespace Finally, a few further notes. First, please be aware
that defining an \textsf{entrysubtype} activates the automatic
@@ -1471,7 +1503,7 @@ hope that \textsf{biblatex-chicago-notes} proves helpful in this
regard. (See 14.211, 14.219, 14.221-231, 14.256, 14.264; creel:house,
dinkel:agassiz, roosevelt:speech, shapey:partita, spock:interview.)
-\mybigspace This \colmarginpar{\textbf{music}} is one of three
+\mybigspace This \mymarginpar{\textbf{music}} is one of three
audiovisual entry types, and is intended primarily to aid in the
presentation of musical recordings that do not have a video component,
though it can also include audio books (auden:reading). A DVD or VHS
@@ -1510,10 +1542,10 @@ into line with the spec.
options can alter the presentation within an entry. Because these
are non-standard roles, you will need to identify them using the
following:
-\item[\mycolor{editortype, editoratype, editorbtype:}] The most common
- roles, all associated with specific bibstrings (or their absence),
- will be \texttt{conductor}, \texttt{director}, \texttt{producer},
- and, oddly, \texttt{none}. The last is particularly useful when
+\item[editortype, editoratype, editorbtype:] The most common roles,
+ all associated with specific bibstrings (or their absence), will be
+ \texttt{conductor}, \texttt{director}, \texttt{producer}, and,
+ oddly, \texttt{none}. The last is particularly useful when
identifying the group performing a piece, as it usually doesn't need
further specifying and this role prevents \textsf{biblatex} from
falling back on the default \texttt{editor} bibstring. The 17th
@@ -1525,25 +1557,24 @@ into line with the spec.
by}) suits your citation.
\item[note:] This field can also hold contributors, perhaps
collaborators or featured artists (holiday:fool, rihanna:umbrella).
-\item[\mycolor{title, booktitle, maintitle:}] As with the other
- audiovisual types, \textsf{music} serves as an analogue both to
- books and to collections, so the title will either be, e.g., the
- album title or a song title, in which latter case the album title
- would go into \textsf{booktitle}. If you wish to cite a song that,
- as may happen, isn't part of any larger collection, your entry will
- in such a case have only a \textsf{title}, which
- \textsf{biblatex-chicago} would normally interpret as an album
- title. You \colmarginpar{New!} can now define an
+\item[title, booktitle, maintitle:] As with the other audiovisual
+ types, \textsf{music} serves as an analogue both to books and to
+ collections, so the title will either be, e.g., the album title or a
+ song title, in which latter case the album title would go into
+ \textsf{booktitle}. If you wish to cite a song that, as may happen,
+ isn't part of any larger collection, your entry will in such a case
+ have only a \textsf{title}, which \textsf{biblatex-chicago} would
+ normally interpret as an album title. You can now define an
\textsf{entrysubtype} to let it know that the lone \textsf{title} is
in fact a song (cf.\ naraya). The \textsf{maintitle} might be
necessary for something like a box set of \emph{Complete
Symphonies}.
-\item[\mycolor{chapter:}] The 17th edition seems more keen on having
- track numbers for individual pieces, whether on a traditional format
- or on a streaming service. The \colmarginpar{New!} \textsf{chapter}
- field is the place for this information, and
- \textsf{biblatex-chicago} will automatically prepend the localized
- string \texttt{track} (cf.\ holiday:fool, rihanna:umbrella).
+\item[chapter:] The 17th edition seems more keen on having track
+ numbers for individual pieces, whether on a traditional format or on
+ a streaming service. The \textsf{chapter} field is the place for
+ this information, and \textsf{biblatex-chicago} will automatically
+ prepend the localized string \texttt{track} (cf.\ holiday:fool,
+ rihanna:umbrella).
\item[publisher, series, number:] These three closely-associated
fields are intended for presenting the catalog information provided
by the music publisher. The 17th edition generally only requires
@@ -1590,14 +1621,13 @@ into line with the spec.
\textsf{origdate}, barring that to a \textsf{urldate}, and absent
those three to the \textsf{date}. (See floyd:atom, holiday:fool,
nytrumpet:art.)
-\item[type, \mycolor{howpublished}:] As in all the audiovisual entry
- types, the \textsf{type} field holds the medium of the recording,
- e.g., vinyl, 33 rpm, 8-track tape, cassette, compact disc, mp3, ogg
- vorbis. The \colmarginpar {New!} \mycolor{\textsf{howpublished}}
- field, newly included for the 17th edition, can hold similar
- information \enquote{for streaming audio formats and downloads}
- (14.263). It can also, alternatively, hold the name of the streaming
- service, e.g., Spotify (cf.\ rihanna:umbrella).
+\item[type, howpublished:] As in all the audiovisual entry types, the
+ \textsf{type} field holds the medium of the recording, e.g., vinyl,
+ 33 rpm, 8-track tape, cassette, compact disc, mp3, ogg vorbis. The
+ \textsf{howpublished} field, newly included for the 17th edition,
+ can hold similar information \enquote{for streaming audio formats
+ and downloads} (14.263). It can also, alternatively, hold the name
+ of the streaming service, e.g., Spotify (cf.\ rihanna:umbrella).
\end{description}}
The entries in \textsf{notes-test.bib} should at least give you a good
@@ -1612,7 +1642,7 @@ I've ignored something you need. (Cf. 14.263--64; \textsf{eventdate},
bernstein:shostakovich, floyd:atom, holiday:fool, nytrumpet:art,
rubinstein:chopin.)
-\mybigspace The \colmarginpar{\textbf{mvbook}\\\textbf{mvcollection}%
+\mybigspace The \mymarginpar{\textbf{mvbook}\\\textbf{mvcollection}%
\\\textbf{mvproceedings}\\\textbf{mvreference}} 17th edition of the
\emph{Manual} has deployed, in at least two contexts, a notable
syntactic change in the presentation of works that form part of other,
@@ -1623,20 +1653,20 @@ generality. In the vast majority of cases this order still holds, but
in TV episodes, for one example, the recommendation now is to present
the name of the series (\textsf{booktitle}) \emph{before} the name of
the episode (\textsf{title}). The \textbf{video} type (14.265)
-provides this by using a new \textsf{entrysubtype},
-\mycolor{\texttt{tvepisode}}, which reverses the order for you in both
-long and short notes, and in the bibliography. The other context in
-which this reversal occurs is multi-volume works (14.116--22). Here,
-the preferred format, at least for notes, appears to be
-\textsf{maintitle} -- \textsf{[book]title} or, when all three titles
-are present, \textsf{title} -- \textsf{maintitle} --
-\textsf{booktitle}. The \emph{Manual} doesn't carry this reordering
-through with absolute consistency, but I think it important at least
-to offer it as a possibility to users of \textsf{biblatex-chicago}.
-Reluctant as I am simply to change the data model and provide
-non-standard entry types, the least invasive method seemed, and seems,
-to me to be to modify the \textbf{mv*} entry types while maintaining
-backward compatibility with users' current deployments of these types.
+provides this by using an \textsf{entrysubtype}, \texttt{tvepisode},
+which reverses the order for you in both long and short notes, and in
+the bibliography. The other context in which this reversal occurs is
+multi-volume works (14.116--22). Here, the preferred format, at least
+for notes, appears to be \textsf{maintitle} -- \textsf{[book]title}
+or, when all three titles are present, \textsf{title} --
+\textsf{maintitle} -- \textsf{booktitle}. The \emph{Manual} doesn't
+carry this reordering through with absolute consistency, but I think
+it important at least to offer it as a possibility to users of
+\textsf{biblatex-chicago}. Reluctant as I am simply to change the
+data model and provide non-standard entry types, the least invasive
+method seemed, and seems, to me to be to modify the \textbf{mv*} entry
+types while maintaining backward compatibility with users' current
+deployments of these types.
\mylittlespace So, while these types are no longer aliased to the
entry type that results from removing the \enquote{mv} from their
@@ -1675,36 +1705,36 @@ wrongly-inherited fields. Other sorts of parent entries aren't
affected by this, and of course you must be using \textsf{Biber} for
the settings to apply.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace Should you wish to employ the new,
\textsf{maintitle}-first syntax, then you'll
-\colmarginpar{\texttt{maintitle}} need to use the new
-\mycolor{\texttt{maintitle}} \textsf{relatedtype}. In its simplest
-usage, to document one volume of a multi-volume set, you would have,
-e.g., an \textsf{mvcollection} entry with \textsf{relatedtype}
-\texttt{maintitle}, and a \textsf{related} field pointing to a
-\textsf{collection} entry. When you cite the \textsf{mvcollection}
-entry itself, you'll get a long note like \emph{MVCollTitle}, vol.\ 1,
-\emph{CollTitle}, and a short note like \emph{MVCollTitle}, vol.\ 1.,
-or, with a \textsf{postnote} field, \emph{MVCollTitle}, 1:12, as the
-specification requires. If you wanted to cite one essay in the
-\textsf{collection}, then you would, additionally, need an
-\textsf{incollection} entry with the \texttt{maintitle}
-\textsf{relatedtype} and a \textsf{related} field pointing to the
-\textsf{mvcollection} entry already mentioned, so you're creating a
-chain of three different related entries but presenting them in one
-reference. It's important to keep in mind here that, in effect,
-you're \emph{not} actually citing the \textsf{mvcollection} entry, but
-the one volume of it represented by the \textsf{collection} entry, or
-indeed an essay in that one volume. Please consult the \emph{Manual}
-(14.116--22), and also see harley:ancient:cart, harley:cartography,
-and harley:hoc for the \enquote{old style} presentation with
-abbreviated cross references using the \textsf{crossref} field,
-harleymt:ancient:cart, harleymt:cartography and harleymt:hoc for the
-new presentation using the \texttt{maintitle} \textsf{relatedtype},
-and also plato:timaeus:gr for an example of a three-work
-\texttt{maintitle} chain starting with a \textsf{bookinbook} entry.
+\mymarginpar{\texttt{maintitle}} need to use the \texttt{maintitle}
+\textsf{relatedtype}. In its simplest usage, to document one volume
+of a multi-volume set, you would have, e.g., an \textsf{mvcollection}
+entry with \textsf{relatedtype} \texttt{maintitle}, and a
+\textsf{related} field pointing to a \textsf{collection} entry. When
+you cite the \textsf{mvcollection} entry itself, you'll get a long
+note like \emph{MVCollTitle}, vol.\ 1, \emph{CollTitle}, and a short
+note like \emph{MVCollTitle}, vol.\ 1., or, with a \textsf{postnote}
+field, \emph{MVCollTitle}, 1:12, as the specification requires. If
+you wanted to cite one essay in the \textsf{collection}, then you
+would, additionally, need an \textsf{incollection} entry with the
+\texttt{maintitle} \textsf{relatedtype} and a \textsf{related} field
+pointing to the \textsf{mvcollection} entry already mentioned, so
+you're creating a chain of three different related entries but
+presenting them in one reference. It's important to keep in mind here
+that, in effect, you're \emph{not} actually citing the
+\textsf{mvcollection} entry, but the one volume of it represented by
+the \textsf{collection} entry, or indeed an essay in that one volume.
+Please consult the \emph{Manual} (14.116--22), and also see
+harley:ancient:cart, harley:cartography, and harley:hoc for the
+\enquote{old style} presentation with abbreviated cross references
+using the \textsf{crossref} field, harleymt:ancient:cart,
+harleymt:cartography and harleymt:hoc for the new presentation using
+the \texttt{maintitle} \textsf{relatedtype}, and also plato:timaeus:gr
+for an example of a three-work \texttt{maintitle} chain starting with
+a \textsf{bookinbook} entry.
\mylittlespace The documentation of the \texttt{maintitle}
\textsf{relatedtype} in section~\ref{sec:related} contains all the
@@ -1758,7 +1788,7 @@ mechanism's designed to save you some typing in common scenarios;
please see all of the (multifarious) details in
section~\ref{sec:related}, below.
-\paragraph*{\protect\colmarginpar{\textbf{online}}}
+\paragraph*{\protect\mymarginpar{\textbf{online}}}
\label{sec:online}
One of the features of the 17th edition of the \emph{Manual} is the
@@ -1774,10 +1804,10 @@ have included table~\ref{tab:online:types} summarizing the
increasingly detailed instructions in the \emph{Manual}, along with
some further annotations here that might help to clarify it.
-\afterpage{\clearpage
+\afterpage{\clearpage\thispagestyle{longtable}
\begin{table}[h!]
- \caption[\hspace{-1em}\mycolor{Online Entry Types - Notes \&\ Bibliography}]%
+ \caption[\hspace{-1em}Online Entry Types - Notes \&\ Bibliography]%
{Online materials and notes \&\ bibliography entry types}
\label{tab:online:types}
\centering\small\sffamily
@@ -1808,7 +1838,7 @@ some further annotations here that might help to clarify it.
\hspace{.5em} Single post & @Article & & amlen:hoot &
\\\addlinespace[.8mm]
\hspace{.5em} Comment & @Review & & viv:amlen & You can also
- use the new \mycolor{\texttt{commenton}} \textsf{relatedtype} for
+ use the \texttt{commenton} \textsf{relatedtype} for
this. \\\addlinespace[.8mm]
\cmidrule(r{2em}){1-1}\addlinespace[.8mm]
Social Media & @Online &&& This includes anything --- posts, photos,
@@ -1823,7 +1853,7 @@ some further annotations here that might help to clarify it.
\hspace{.5em} Instagram&&& souza:obama &\\\addlinespace[.8mm]
\hspace{.5em} Comments / \hspace*{.5em} replies & & 14.210
& braun:reply &
- The \mycolor{\texttt{commenton}} \textsf{relatedtype} is \emph{required}
+ The \texttt{commenton} \textsf{relatedtype} is \emph{required}
for this, and for the next entry, too.\\\addlinespace[.8mm]
&& 14.209 & licis:diazcomment &\\\addlinespace[.8mm]
\cmidrule(r{2em}){1-1}\addlinespace[.8mm]
@@ -1847,7 +1877,7 @@ some further annotations here that might help to clarify it.
Streaming Media&&&& \\\addlinespace[.8mm]
\hspace*{.5em} TV / Film & @Video & 14.265 & mayberry:brady &
The streaming service is supplied by the URL. The
- \mycolor{\texttt{tvepisode}} entrysubtype is new in the 17th
+ \texttt{tvepisode} entrysubtype is new in the 17th
edition. \\\addlinespace[.8mm]
\hspace*{.5em} Music & @Music & 14.263 & rihanna:umbrella &
The streaming service is supplied by the howpublished field.
@@ -1866,7 +1896,7 @@ some further annotations here that might help to clarify it.
type & 14.233 & wikiped:bibtex & As above, you can choose the
@Online treatment of the title, but it's best achieved
using an @InReference entry w/ entrysubtype. \\\addlinespace[.8mm]
- \hspace*{.5em} Scientific data- \hspace*{.5em} bases & \mycolor{@Dataset} &
+ \hspace*{.5em} Scientific data- \hspace*{.5em} bases & @Dataset &
14.257 & genbank:db & New in this release.\\\addlinespace[.8mm]
\bottomrule
\end{tabularx}
@@ -1899,14 +1929,15 @@ deductively from the basic principles, I hope that the table might
simplify most of your choices. If something remains unclear, please
let me know and I'll see if I can improve it.
+\enlargethispage{\baselineskip}
+
\mylittlespace A few more notes are in order. I designed the
-\colmarginpar{New!} new \textsf{relatedtype}
-\mycolor{\texttt{commenton}} to facilitate citation of online
-comments, though it works slightly differently in the two entry types
-in which it is available, \textsf{online} and \textsf{review}. In
-both types it allows you to mimic thread structure by citing a chain
-of replies to comments on posts, etc., all in a single entry, while
-also simplifying your\ .bib entries. This simplification works
+\textsf{relatedtype} \texttt{commenton} to facilitate citation of
+online comments, though it works slightly differently in the two entry
+types in which it is available, \textsf{online} and \textsf{review}.
+In both types it allows you to mimic thread structure by citing a
+chain of replies to comments on posts, etc., all in a single entry,
+while also simplifying your\ .bib entries. This simplification works
differently depending on whether the comment itself has no specific
title, as always in \textsf{review} entries, or does have such a
title, as especially in \textsf{online} social media entries. In the
@@ -1957,7 +1988,7 @@ way, as it allows you to provide the initialisms that the
\textsf{timezone}, \textsf{urldate}, and \textsf{userd} in
section~\ref{sec:entryfields}, below.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mybigspace The \mymarginpar{\textbf{patent}} \emph{Manual} is very
brief on this subject (14.258), but very clear about which information
@@ -1982,17 +2013,16 @@ automatically capitalizes \textsf{patent} titles sentence-style, so if
you need to keep a word capitalized then you should wrap it in curly
braces. See petroff:impurity.
-\mybigspace The \colmarginpar{\textbf{performance}} 17th edition of
-the \emph{Manual} includes a new section (14.266) on citing live
+\mybigspace The \mymarginpar{\textbf{performance}} 17th edition of the
+\emph{Manual} includes a new section (14.266) on citing live
performances, and even though such references can usually be limited
to the main text it may sometimes be useful to include them in notes.
-Since \textsf{biblatex} provides the \mycolor{\textbf{performance}}
-type, albeit without using it in its standard styles, I though it
-might be useful to define it for \textsf{biblatex-chicago},
-particularly as the other option for such material is the
-\textsf{misc} entry without any \textsf{entrysubtype}, and that entry
-type is already somewhat overloaded, though you can still use it if
-you wish.
+Since \textsf{biblatex} provides the \textbf{performance} type, albeit
+without using it in its standard styles, I though it might be useful
+to define it for \textsf{biblatex-chicago}, particularly as the other
+option for such material is the \textsf{misc} entry without any
+\textsf{entrysubtype}, and that entry type is already somewhat
+overloaded, though you can still use it if you wish.
\mylittlespace Such entries will generally have a \textsf{title}, a
\textsf{venue}, a \textsf{location} for the venue, and a \textsf{date}
@@ -2000,8 +2030,8 @@ for the performance, along with a possible plethora of authorial
and/or editorial roles depending on which sorts of contributor(s) you
wish to emphasize in the citation. The \textsf{editor[abc]} and
\textsf{editor[abc]type} fields should be most helpful here. I have
-included strings for \mycolor{\texttt{choreographer}} in all
-localization files, but for others you may need to provide them in the
+included strings for \texttt{choreographer} in all localization files,
+but for others you may need to provide them in the
\textsf{editor[abc]type} fields as you wish them printed ---
\textsf{biblatex-chicago} will automatically capitalize any that start
with a lowercase letter.
@@ -2032,22 +2062,25 @@ documentation of \textbf{shortjournal} in
section~\ref{sec:entryfields} for all the details on how this works.
Second, the \textsf{periodical} type is the place for citing whole
blogs, rather than individual blog posts, which require either an
-\textsf{article} or a \textsf{review} entry. In \colmarginpar{New!}
-such citations the 17th edition (14.208) recommends that you include
-the name of any larger (usually periodical) publication of which the
-blog is a part. The \textsf{maintitle} field (with
-\textsf{mainsubtitle} and \textsf{maintitleaddon}, if needed) is the
-place for it. Cf.\ amlen:wordplay.
-
-\mybigspace This \mymarginpar{\textbf{proceedings}} is the standard
-\textsf{biblatex} and \textsc{Bib}\TeX\ entry type, but the package
-can automatically provide abbreviated references in notes and
-bibliography when you use a \textsf{crossref} or an \textsf{xref}
-field. The functionality is not enabled by default, but you can
-enable it in the preamble or in the \textsf{options} field using the
-\texttt{booklongxref} option. Please see \textbf{crossref} in
-section~\ref{sec:entryfields} and \texttt{booklongxref} in
-section~\ref{sec:chicpreset}, below.
+\textsf{article} or a \textsf{review} entry. In such citations the
+17th edition (14.208) recommends that you include the name of any
+larger (usually periodical) publication of which the blog is a part.
+The \textsf{maintitle} field (with \textsf{mainsubtitle} and
+\textsf{maintitleaddon}, if needed) is the place for it. Cf.\
+amlen:wordplay.
+
+\mybigspace This \colmarginpar{\textbf{proceedings}} is the standard
+\textsf{biblatex} and \textsc{Bib}\TeX\ entry type, now also including
+the \mycolor{\textsf{eventdate}}, \mycolor{\textsf{eventtitle}},
+\mycolor{\textsf{eventtitleaddon}}, and \mycolor{\textsf{venue}}
+fields for identifying the event that produced the
+\textsf{proceedings}. The package can automatically provide
+abbreviated references in notes and bibliography when you use a
+\textsf{crossref} or an \textsf{xref} field. The functionality is not
+enabled by default, but you can enable it in the preamble or in the
+\textsf{options} field using the \texttt{booklongxref} option. Please
+see \textbf{crossref} in section~\ref{sec:entryfields} and
+\texttt{booklongxref} in section~\ref{sec:chicpreset}, below.
\mybigspace This \mymarginpar{\textbf{reference}} entry type is
aliased to \textsf{collection} by the standard \textsf{biblatex}
@@ -2085,7 +2118,7 @@ Technical Report Number of a technical report. As in standard
report type in \textsf{note} and the \textsf{institution} in
\textsf{publisher}. (See herwign:office.)
-\mybigspace As \colmarginpar{\textbf{review}} its name suggests, the
+\mybigspace As \mymarginpar{\textbf{review}} its name suggests, the
\textsf{review} entry type was designed for reviews published in
periodicals, and if you've already read the \textsf{article}
instructions above --- if you haven't, I recommend doing so now ---
@@ -2153,52 +2186,54 @@ and in the bibliography the \textsf{journaltitle} replaces the author
and heads the entry, while in long notes the \textsf{title} comes
first. The sorting of such entries is an issue, solved if you use
\textsf{Biber} as your backend, and otherwise requiring manual
-intervention with a \textsf{sortkey} or the like (14.204;
-gourmet:052006, nyt:trevorobit, unsigned:ranke, and see
-\cmd{DeclareSortingTemplate} in section~\ref{sec:formatopts}, below.).
-As in \textsf{misc} entries with an \textsf{entrysubtype}, words like
-\enquote{interview,} \enquote{review,} and \enquote{letter} only need
-capitalization after a full stop, i.e., ordinarily in a bibliography
-and not a note, so \textsf{biblatex-chicago-notes} automatically deals
-with this problem itself if you start the \textsf{title} field with a
-lowercase letter. The file \textsf{notes-test.bib} and the
-documentation of \cmd{autocap} will provide guidance here.
-
-\mylittlespace One \colmarginpar{New!} detail of the \textsf{review}
-type is fairly new, and in particular has changed between the 16th and
-17th editions of the \emph{Manual}. As I mentioned above, blogs are
-best treated as \textsf{articles} with \texttt{magazine}
-\textsf{entrysubtype}, whereas comments on those blogs --- or replies
-to those comments, etc.\ --- need the \textsf{review} type with the
-same \textsf{entrysubtype}. (Neither need appear in the
-bibliography.) What they also need is a date closely associated with
-the comment (14.208; ac:comment), so I have included the
-\textsf{eventdate} in \textsf{review} entries for just this purpose.
-It will be printed just after the \textsf{author} and before the
-\textsf{title}. If you need a time stamp in addition, as may
-frequently be the case with multiple contributions by the same author
-to a single thread, then you should now use the standard
-\textsf{biblatex} time-stamp format (e.g.,
+intervention with, e.g., a \textsf{sortkey} (14.204; gourmet:052006,
+nyt:trevorobit, unsigned:ranke, and see \cmd{DeclareSortingTemplate}
+in section~\ref{sec:formatopts}, below.). As in \textsf{misc} entries
+with an \textsf{entrysubtype}, words like \enquote{interview,}
+\enquote{review,} and \enquote{letter} only need capitalization after
+a full stop, i.e., ordinarily in a bibliography and not a note, so
+\textsf{biblatex-chicago-notes} automatically deals with this problem
+itself if you start the \textsf{title} field with a lowercase letter.
+The file \textsf{notes-test.bib} and the documentation of
+\cmd{autocap} will provide guidance here.
+
+\mylittlespace One detail of the \textsf{review} type is fairly new,
+and in particular has changed between the 16th and 17th editions of
+the \emph{Manual}. As I mentioned above, blogs are best treated as
+\textsf{articles} with \texttt{magazine} \textsf{entrysubtype},
+whereas comments on those blogs --- or replies to those comments,
+etc.\ --- need the \textsf{review} type with the same
+\textsf{entrysubtype}. (Neither need appear in the bibliography.)
+What they also need is a date closely associated with the comment
+(14.208; ac:comment), so I have included the \textsf{eventdate} in
+\textsf{review} entries for just this purpose. It will be printed
+just after the \textsf{author} and before the \textsf{title}. If you
+need a time stamp in addition, as may frequently be the case with
+multiple contributions by the same author to a single thread, then you
+should now use the standard \textsf{biblatex} time-stamp format (e.g.,
\texttt{2008-07-01T10:18:00}) in the \textsf{eventdate} field itself,
which \textsf{biblatex-chicago} will format and print appropriately.
Please see the documentation concerning time stamps in
-section~\ref{sec:entryfields}, s.v.\ \mycolor{\textsf{date}}. This
-change allows the \textsf{nameaddon} field to revert to its primary
-use, which is to provide extra information about the \textsf{author}.
-In blog comments, this could include the commenter's geographical
+section~\ref{sec:entryfields}, s.v.\ \textsf{date}. This change
+allows the \textsf{nameaddon} field to revert to its primary use,
+which is to provide extra information about the \textsf{author}. In
+blog comments, this could include the commenter's geographical
location, which you need to enclose in parentheses, as I've removed
the automatic square brackets from this field to allow it this more
general usefulness. You can, of course, still provide your own square
brackets in \textsf{review} entries to indicate pseudonymous
authorship, which is the standard function of \textsf{nameaddon} in
-most entry types.
-
-\mylittlespace In \colmarginpar{New!} this context I should mention a
-small change to the default behavior of \textsf{review} entries when
-they utilize a \textsf{crossref} or \textsf{xref} field, as is really
-only useful when the entry is a blog comment, as otherwise there won't
-generally be any fields worth inheriting from the reviewed entry.
-Assuming the default values of the \textsf{biblatex-chicago} option
+most entry types. The package options
+\mycolor{\texttt{nameaddonformat}} and \mycolor{\texttt{nameaddonsep}}
+can help here, as well. See sections~\ref{sec:useropts} and
+\ref{sec:chicpreset}, below.
+
+\mylittlespace In this context I should mention a small change to the
+default behavior of \textsf{review} entries when they utilize a
+\textsf{crossref} or \textsf{xref} field, as is really only useful
+when the entry is a blog comment, as otherwise there won't generally
+be any fields worth inheriting from the reviewed entry. Assuming the
+default values of the \textsf{biblatex-chicago} option
\texttt{longcrossref}, the driver now explicitly tests if the reviewed
entry has already been cited, and accordingly shortens the reviewing
citation, as the \emph{Manual} (14.208) suggests (viv:amlen). (This
@@ -2206,32 +2241,32 @@ would be incorrect for, say, a book review, so you should either not
use a \textsf{crossref} or \textsf{xref} field there, or change the
state of the \texttt{longcrossref} option --- cf.\ the documentation
starting on page~\pageref{sec:crossref}, below.) You
-\colmarginpar{\texttt{blogurl}} can, if you wish, and while we're on
-this subject, set the new preamble option \mycolor{\texttt{blogurl}}
-to allow your child comments to inherit the URL from the parent blog.
-
-\mylittlespace Also \colmarginpar{New!} new in this release is the
-\textsf{relatedtype} \mycolor{\texttt{commenton}}, which allows you to
-simplify your\ .bib entries in much the same way as the
-\texttt{reviewof} \textsf{relatedtype} does, i.e., it constructs your
-\textsf{title} field for you (which the \textsf{crossref} mechanism
-doesn't do). It further allows you to mimic thread structure by
-citing a chain of replies to comments on blogs, etc., all in a single
-entry, while also simplifying your\ .bib entries. I've not tested how
-far down the rabbit hole you can go, but a series of entries linked
-one to the next by this \textsf{relatedtype} will all turn up if you
-cite the first in the chain, though of course you can use the
-technique merely as a convenient way to structure and simplify your\
-.bib file, without creating chains longer than 2 entries. The default
-connecting string is the localized \texttt{commenton}, but you can use
+\mymarginpar{\texttt{blogurl}} can, if you wish, and while we're on
+this subject, set the preamble option \texttt{blogurl} to allow your
+child comments to inherit the URL from the parent blog.
+
+\mylittlespace Another recent addition is the \textsf{relatedtype}
+\texttt{commenton}, which allows you to simplify your\ .bib entries in
+much the same way as the \texttt{reviewof} \textsf{relatedtype} does,
+i.e., it constructs your \textsf{title} field for you (which the
+\textsf{crossref} mechanism doesn't do). It further allows you to
+mimic thread structure by citing a chain of replies to comments on
+blogs, etc., all in a single entry, while also simplifying your\ .bib
+entries. I've not tested how far down the rabbit hole you can go, but
+a series of entries linked one to the next by this
+\textsf{relatedtype} will all turn up if you cite the first in the
+chain, though of course you can use the technique merely as a
+convenient way to structure and simplify your\ .bib file, without
+creating chains longer than 2 entries. The default connecting string
+is the localized \texttt{commenton}, but you can use
\textsf{relatedstring} to change it to \enquote{\texttt{reply to}} or
whatever else you need. Please see the documentation of this
-\textsf{relatedtype} in section~\ref{sec:related}, and also
-ellis:blog, ac:comment, and the (fictional) ellis:reply. Note also
-that this way of structuring your\ .bib file is by no means required
-in \textsf{review} entries, though if you want to cite replies and
-comments to social media threads, where you need the \textsf{online}
-entry type, you will need to use this \textsf{relatedtype}.
+\textsf{relatedtype} in section~\ref{sec:related}, and also ellis:blog
+and ac:comment. Note also that this way of structuring your\ .bib
+file is by no means required in \textsf{review} entries, though if you
+want to cite replies and comments to social media threads, where you
+need the \textsf{online} entry type, you will need to use this
+\textsf{relatedtype}.
\mylittlespace Two more notes. For the reasons I explained in the
\textsf{article} docs above, I have brought the \textsf{article} and
@@ -2254,13 +2289,13 @@ the creation of lists of journal abbreviations in the manner of a
\textbf{shortjournal} in section~\ref{sec:entryfields} for all the
details on how this works.
-\mybigspace In \colmarginpar{\textbf{standard}} older releases it was
+\mybigspace In \mymarginpar{\textbf{standard}} older releases it was
fairly straightforward to present published national or international
standards using a \textsf{book} entry, but with some additional
specifications now included in the 17th edition of the \emph{Manual}
(14.259) I think it might be helpful to provide a separate entry type.
-The \mycolor{\textbf{standard}} type has long existed in
-\textsf{biblatex}, though none of its included styles use it. In
+The \textbf{standard} type has long existed in \textsf{biblatex},
+though none of its included styles use it. In
\textsf{biblatex-chicago} constructing such an entry is mostly
straightforward. The organization responsible for the standard goes
in \textsf{organization}, the title in \textsf{title}, and the
@@ -2372,7 +2407,7 @@ prompting of Jan David Hauck, you can use the \textsf{venue},
fields further to specify unpublished conference papers and the like
(14.216--18; nass:address).
-\mybigspace This \colmarginpar{\textbf{video}} is the last of the
+\mybigspace This \mymarginpar{\textbf{video}} is the last of the
three audiovisual entry types, and as its name suggests it is intended
for citing visual media, be it films of any sort or TV shows, whether
broadcast, on the Net, on VHS, DVD, or Blu-ray, though it will serve
@@ -2402,9 +2437,9 @@ main guidelines:
usual \texttt{useauthor} and \texttt{useeditor} options can alter
the presentation within an entry. Because these are non-standard
roles, you will need to identify them using the following:
-\item[\mycolor{editortype, editoratype, editorbtype:}] The most common
- roles, all associated with specific bibstrings (or their absence),
- will likely be \texttt{director}, \texttt{producer}, and, oddly,
+\item[editortype, editoratype, editorbtype:] The most common roles,
+ all associated with specific bibstrings (or their absence), will
+ likely be \texttt{director}, \texttt{producer}, and, oddly,
\texttt{none}. The last is particularly useful if you want to
identify performers, as they usually don't need further specifying
and this role prevents \textsf{biblatex} from falling back on the
@@ -2413,7 +2448,7 @@ main guidelines:
provided here, and will be printed as-is, contextually capitalized.
(Cf.\ hitchcock:nbynw.)
\item[title, titleaddon, booktitle, booktitleaddon, maintitle:] As
- with the other audiovisual types, \textsf{video} serves as an
+ with the other two audiovisual types, \textsf{video} serves as an
analogue both to books and to collections, so the \textsf{title} may
be of a whole film DVD or of a TV series, or it may identify one
episode in a series or one scene in a film. In the latter cases,
@@ -2422,12 +2457,12 @@ main guidelines:
and/or episode number of a TV series, while the \textsf{titleaddon}
is for any information that needs to come between the \textsf{title}
and the \textsf{booktitle} (american:crime, cleese:holygrail,
- friends:\break leia, handel:messiah, hitchcock:nbynw,
+ friends\hc leia, handel:messiah, hitchcock:nbynw,
mayberry:brady). As in the \textsf{music} type, a
\textsf{maintitle} may be necessary for a boxed set or something
similar.
-\item[\mycolor{entrysubtype:}] If, for some reason, you want to cite
- an individual episode or scene without reference to any larger unit,
+\item[entrysubtype:] If, for some reason, you want to cite an
+ individual episode or scene without reference to any larger unit,
then your entry will contain only a \textsf{title}, which
\textsf{biblatex-chicago} would normally interpret as the title of a
complete film or TV series. In such a case, you'll need to define
@@ -2436,22 +2471,22 @@ main guidelines:
the 17th edition (14.265) now recommends that, when presenting
episodes from a TV series, the name of the series
(\textsf{booktitle}) comes before the episode name (\textsf{title}).
- The exact string \mycolor{\texttt{tvepisode}} in the
- \textsf{entrysubtype} field achieves this reversal, which includes
- using the \textsf{booktitle} as a \textsf{sorttitle} in the
- bibliography and also as the \textsf{labeltitle} in short notes.
-\item[\mycolor{usera:}] When citing recordings of TV shows, the 17th
- edition now wants you to include the TV network for the original
- broadcast, and the \mycolor{\textsf{usera}} field is the place for
- it. \textsf{Biblatex-chicago} has long used this field for this
- same purpose in \textsf{article, periodical}, and \textsf{review}
- entries with a \texttt{magazine} \textsf{entrysubtype}, so its
- inclusion here can at least hope to benefit from that prior
- acquaintance. It will appear after the broadcast date, i.e., the
- \textsf{eventdate}, and will be separated from it by the
- \cmd{bibstring} \enquote{\texttt{on.}}
+ The exact string \texttt{tvepisode} in the \textsf{entrysubtype}
+ field achieves this reversal, which includes using the
+ \textsf{booktitle} as a \textsf{sorttitle} in the bibliography and
+ also as the \textsf{labeltitle} in short notes.
+\item[usera:] When citing recordings of TV shows, the 17th edition now
+ wants you to include the TV network for the original broadcast, and
+ the \textsf{usera} field is the place for it.
+ \textsf{Biblatex-chicago} has long used this field for this same
+ purpose in \textsf{article, periodical}, and \textsf{review} entries
+ with a \texttt{magazine} \textsf{entrysubtype}, so its inclusion
+ here can at least hope to benefit from that prior acquaintance. It
+ will appear after the broadcast date, i.e., the \textsf{eventdate},
+ and will be separated from it by the \cmd{bibstring}
+ \enquote{\texttt{on.}}
\item[date, eventdate, origdate:] As with \textsf{music} entries, in
- order to follow the specifications of the \emph{Manual}, I have had
+ order to follow the specifications of the \emph{Manual}, we need
to provide three separate date fields for citing \textsf{video}
sources, but their uses differ somewhat between the two types. In
both, the \textsf{date} will generally provide the publishing or
@@ -2517,6 +2552,8 @@ name given here exactly matches that of an editor and/or a translator,
then \textsf{biblatex-chicago-notes} will concatenate these fields in
the formatted references.
+\enlargethispage{-\baselineskip}
+
\mylittlespace As noted above, however, this field has a special
meaning in the \textsf{suppbook} entry type, used to make an
afterword, foreword, or introduction the main focus of a citation. If
@@ -2526,25 +2563,43 @@ undefined, and \textsf{biblatex-chicago-notes} will do the rest. Cf.\
\textsf{foreword} and \textsf{introduction}. (See \emph{Manual}
14.105, 14.110; polakow:afterw.)
-\paragraph*{\protect\mymarginpar{\textbf{annotation}}}
+\paragraph*{\protect\colmarginpar{\textbf{annotation}}}
\label{sec:annote}
At the request of Emil Salim, \textsf{biblatex-chicago-notes} provides
a package option (see \texttt{annotation} below, section
\ref{sec:useropts}) to allow you to produce annotated bibliographies.
-The formatting of such a bibliography is currently fairly basic,
-though it conforms with the \emph{Manual's} minimal guidelines
-(14.64). The default in \textsf{chicago-notes.cbx} is to define
-\verb+\DeclareFieldFormat{annotation}{\par\nobreak\vskip\bibitemsep #1}+;
-if ne\-cessary you can alter it by re-declaring the format in
-your preamble. The page-breaking algorithms don't always give perfect
-results here, but the default formatting looks, to my eyes, fairly
-decent. In addition to tweaking the field formatting you can also
-insert \cmd{par} (or even \verb+\vadjust{\eject}+) commands into
-the text of your annotations to improve the appearance. Please
-consider the \texttt{annotation} option a work in progress, but it is
-usable now. (N.B.: The old \textsc{Bib}\TeX\ field \textsf{annote}
-serves as an alias for this.)
+A recent feature request by Moritz Wemheuer referenced a
+\href{https://tex.stackexchange.com/questions/528374/moving-addendum-field-to-the-end-in-biblatex-chicago/540755#540755}{StackExchange}
+question which suggested that the possible uses for the
+\textsf{annotation} field could well be more extensive, appearing as
+it does at the very end of all entry types. I have therefore modified
+the \texttt{annotation} option so that you can print the field in the
+bibliography (\texttt{=bib} or \texttt{=true}, the default), in long
+notes (\texttt{=notes}), in both (\texttt{=all}), or in neither
+(\texttt{=false}). The two new options
+\mycolor{\texttt{bibannotesep}} and \mycolor{\texttt{citeannotesep}}
+allow you to choose the separator between the rest of the entry and
+the \textsf{annotation}, and to choose a different one in notes and
+bibliography. The default formatting in the bibliography
+(\texttt{vpar}) is to print the \textsf{annotation} as a separate
+block using\ \verb+\par\nobreak\vskip\bibitemsep #1+, while in long
+notes the default (\texttt{period}) is to print it simply as an
+additional field, separated by a period. The \emph{Manual's}
+guidelines (14.64) allow for both these possibilities, and I have
+provided a range of others, for which you should consult the full
+documentation in section~\ref{sec:chicpreset}. (Note also that both
+options can be set globally or per-type in the preamble, or per-entry
+in the \textsf{options} field of individual entries. For specialized
+needs, of course, you can re-declare the format
+[\verb+\DeclareFieldFormat{annotation}+] in your preamble, or redefine
+the \cmd{bibannotesep} and \cmd{citeannotesep} commands there.) In
+section~\ref{sec:useropts} you will find instructions for employing
+the new \mycolor{\texttt{formatbib}} and \mycolor{\texttt{entrybreak}}
+options to give you fine-grained control over the formatting of the
+entire bibliography, particularly with regard to \TeX's page-breaking
+algorithms. The aim is to remove, in most cases, any need for you to
+delve into the low-level commands involved in these algorithms.
\mybigspace I \mymarginpar{\textbf{annotator}} have implemented this
\textsf{biblatex} field pretty much as that package's standard styles
@@ -2562,10 +2617,10 @@ bibliography and long notes, look in sequence, for a \textsf{namea},
an \textsf{editor}, a \textsf{nameb}, a \textsf{translator}, or a
\textsf{namec} (i.e., a compiler) and use that name (or those names)
instead, followed by the appropriate identifying string (esp.\ 14.103,
-also 14.76, 14.121, 14.126, 14.180; boxer:china, brown:bre\-mer,
+also 14.76, 14.121, 14.126, 14.180; boxer:china, brown:bremer,
harley:cartography, schellinger:novel, sechzer:women, silver:gawain,
-soltes:geor\-gia). \textsf{Biblatex's} sorting algorithms will use
-the first of those names found, which should ensure correct
+soltes:georgia). \textsf{Biblatex's} sorting algorithms will use the
+first of those names found, which should ensure correct
alphabetization in the bibliography. (See
\cmd{DeclareSortingTemplate} in section~\ref{sec:formatopts}, below.)
In short notes, where the \textsf{labelname} is used, the order
@@ -2576,8 +2631,8 @@ searched is somewhat augmented: \textsf{shortauthor, author,
\mylittlespace In the rare cases when this substitution mechanism
isn't appropriate, you have (at least) two options: either you can
(chaucer:liferecords) put all the information into a \textsf{note}
-field rather than individual fields, or you can use the
-\textsf{biblatex} options \texttt{useauthor=false},
+field rather than individual fields, or you can use the standard
+\textsf{biblatex} options \texttt{useauthor=\hfill false},
\texttt{usenamea=false}, \texttt{useeditor=false},
\texttt{usenameb=false}, \texttt{usetranslator=false}, and
\texttt{usenamec=false} in the \textsf{options} field (chaucer:alt).
@@ -2588,7 +2643,7 @@ present in the entry, but please remember to use the new option
latter doesn't work as smoothly and completely as \textsf{biblatex's}
own name toggles.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace This system of options, then, can turn off
\textsf{biblatex-chicago-notes}'s mechanism for finding a name to
@@ -2636,16 +2691,18 @@ appear, as the contents of this field won't be manipulated as a name
by \textsf{biblatex} (lecarre:quest). If you have given the author's
real name in the \textsf{author} field, then the pseudonym goes in
\textsf{nameaddon}, in the form \texttt{Firstname Lastname,\,pseud.}\
-(creasey:ashe:blast, creasey:morton:hide, creasey:york:death). This
+(creasey\hc ashe:blast, creasey:morton:hide, creasey:york:death). This
latter method will allow you to keep references to one author's work
under different pseudonyms grouped together in the bibliography, as
recommended by the \emph{Manual}, though it is now recommended that,
whichever system you employ, you include a cross-reference from one
name to the other in the bibliography. You can do this using a
\textsf{customc} entry (ashe:creasey, morton:creasey, york:creasey).
-Please see also the entry on \textbf{nameaddon}, below, for
-circumstances where you may need to provide your own square brackets
-when presenting a pseudonym.
+Please see the entry on \textbf{nameaddon}, below, for circumstances
+where you may need to provide your own square brackets when presenting
+a pseudonym, and also the package options
+\mycolor{\texttt{nameaddonformat}} and \mycolor{\texttt{nameaddonsep}}
+in sections~\ref{sec:useropts} and \ref{sec:chicpreset}, below.
\mybigspace In \mymarginpar{\textbf{authortype}}
\textsf{biblatex-chicago}, this field serves a function very much in
@@ -2668,6 +2725,18 @@ the brackets. Assuming the strings are correct,
thing in the short note form. Cf.\ \textsf{author}. (See 14.79--80;
cook:sotweed, horsley:prosodies.)
+\mylittlespace The \emph{Manual} doesn't clarify how to treat multiple
+works by the same \textsf{author}, in one or more of which their name
+doesn't appear on the title page. By default,
+\textsf{biblatex-chicago} will, after the first appearance in the
+bibliography, replace identical \textsf{authors} with the 3-em dash,
+regardless of any \textsf{authortype} field that may be present. If
+you want to distinguish between works certainly written by and works
+merely ascribed to a given author, then you can use the
+\mycolor{\texttt{dashed}} option in the \textsf{options} field of
+individual entries, and possibly also a \textsf{sortname}, to get the
+results you want.
+
\mybigspace For \mymarginpar{\textbf{bookauthor}} the most part, as in
\textsf{biblatex}, a \textsf{bookauthor} is the author of a
\textsf{booktitle}, so that, for example, if one chapter in a book has
@@ -2731,7 +2800,7 @@ The package and entry options \texttt{ptitleaddon} and
customize the punctuation that appears before the
\textsf{booktitleaddon} field.
-\mybigspace This \colmarginpar{\textbf{chapter}} field holds the
+\mybigspace This \mymarginpar{\textbf{chapter}} field holds the
chapter number, mainly useful only in an \textsf{inbook} or an
\textsf{incollection} entry where you wish to cite a specific chapter
of a book (ashbrook:brain). It now also holds the track number of
@@ -2743,7 +2812,7 @@ or on a streaming service (holiday:fool, rihanna:umbrella).
do, even though the \emph{Manual} doesn't actually mention it. It may
be useful for some purposes. Cf.\ \textsf{annotator}.
-\paragraph*{\protect\colmarginpar{\textbf{crossref}}}
+\paragraph*{\protect\mymarginpar{\textbf{crossref}}}
\label{sec:crossref}
This field is the standard \textsc{Bib}\TeX\ cross-referencing
@@ -2803,29 +2872,29 @@ functionality.
\mylittlespace First, I added five entry types --- \textbf{book},
\textbf{bookinbook}, \textbf{collection}, \textbf{inbook},
-\textbf{proceedings}, and \mycolor{\textbf{review}} --- to the list of
-those which use shortened cross references, and I added two options
---- \texttt{longcrossref} and \texttt{booklongxref}, on which more
-below --- which you can use in the preamble or in the \textsf{options}
-field of an entry to enable or disable the automatic provision of
+\textbf{proceedings}, and \textbf{review} --- to the list of those
+which use shortened cross references, and I added two options ---
+\texttt{longcrossref} and \texttt{booklongxref}, on which more below
+--- which you can use in the preamble or in the \textsf{options} field
+of an entry to enable or disable the automatic provision of
abbreviated references. (The \textsf{crossref} or \textsf{xref} field
are still necessary for this provision, but they are no longer
-sufficient on their own.) The \textsf{inbook} and
-\mycolor{\textsf{review}} types work exactly like
-\textsf{incollection} or \textsf{inproceedings}; in previous releases,
-you could use \textsf{inbook} instead of \textsf{incollection} to
-avoid the automatic abbreviation, the two types being otherwise
-identical. Now that you can use an option to turn off abbreviated
-references even in the presence of a \textsf{crossref} or
-\textsf{xref} field, I have thought it sensible to include this entry
-type alongside the others. (Cf.\ ellet:galena, keating:dearborn,
-lippincott:chicago, and prairie:state to see this mechanism in action
-in both notes and bibliography.) In the \mycolor{\textsf{review}}
-type the mechanism is aimed primarily at blog comments, assuming you
-don't want to use the more convenient \mycolor{\texttt{commenton}}
-\textsf{relatedtype}, which absolves you even of the need to provide a
-\textsf{title} field for such entries. See the documentation of the
-\textsf{review} type above for the details.
+sufficient on their own.) The \textsf{inbook} and \textsf{review}
+types work exactly like \textsf{incollection} or
+\textsf{inproceedings}; in previous releases, you could use
+\textsf{inbook} instead of \textsf{incollection} to avoid the
+automatic abbreviation, the two types being otherwise identical. Now
+that you can use an option to turn off abbreviated references even in
+the presence of a \textsf{crossref} or \textsf{xref} field, I have
+thought it sensible to include this entry type alongside the others.
+(Cf.\ ellet:galena, keating:dearborn, lippincott:chicago, and
+prairie:state to see this mechanism in action in both notes and
+bibliography.) In the \textsf{review} type the mechanism is aimed
+primarily at blog comments, assuming you don't want to use the more
+convenient \texttt{commenton} \textsf{relatedtype}, which absolves you
+even of the need to provide a \textsf{title} field for such entries.
+See the documentation of the \textsf{review} type above for the
+details.
\mylittlespace The inclusion of \textbf{book}, \textbf{bookinbook},
\textbf{collection}, and \textbf{proceedings} entries fulfills a
@@ -2838,7 +2907,7 @@ so the system of options for turning on this functionality behaves
differently for these four entry types than for the other 4 (see
below). In \textsf{notes-test.bib} you can get a feel for how this
works by looking at bernhard:boris, bernhard:ritter,
-bernhard:themacher, harley:ancient:cart, harley:carto\-graphy, and
+bernhard:themacher, harley:ancient:cart, harley\hc cartography, and
harley:hoc.
\mylittlespace Before discussing the new package options, I should say
@@ -2909,11 +2978,11 @@ probably just to use \enquote{\texttt{skipbib}} in the
\mylittlespace Returning, \mymarginpar{\texttt{longcrossref}} then, to
the package options which control whether and where the abbreviated
-references may appear, they function, by default, asymmetrically. The
+references appear, they function, by default, asymmetrically. The
first, \texttt{longcrossref}, generally controls the settings for the
entry types more-or-less authorized by the \emph{Manual}:
\textsf{inbook}, \textsf{incollection}, \textsf{inproceedings},
-\textsf{letter}, and \mycolor{\textsf{review}}.
+\textsf{letter}, and \textsf{review}.
\begin{description}
\item[\qquad false:] This is the default. If you use
@@ -2965,7 +3034,7 @@ an additional space-saving measure, and one from Kenneth Pearce to
permit the combination of the other two fields with \textsf{crossref},
as well. The \textsf{userf} and \textsf{reprinttitle} fields should
just work automatically in such circumstances, but
-\mymarginpar{\texttt{inheritshort\-hand}} the \textsf{shorthand} field
+\mymarginpar{\texttt{inheritshorthand}} the \textsf{shorthand} field
in parent entries needs to be enabled by setting the
\texttt{inheritshorthand} package option to \texttt{true}. There are,
in addition, several other steps required to make this function
@@ -2975,20 +3044,19 @@ combination of \textsf{userf}, \textsf{shorthand}, and
\textsf{crossref} functionality in a single entry is now possible. If
you come across any problems or inaccuracies, please report them.)
-\mybigspace With\colmarginpar{\textbf{date}} this release I have
-implemented all of the applicable parts of \textsf{biblatex's}
-elegant, and long standing, support for the
-\mycolor{\textsc{iso}8601-2 Extended Format specification}, which
-means the package now provides greatly enhanced possibilities for
-presenting uncertain and unspecified dates and date ranges, along with
-date eras, seasons, and time stamps. I have also implemented the
-\emph{Manual's} (9.64) guidelines for compressing year ranges, as well
-as providing a few more extras to help with some of the other tricky
-corners of the \emph{Manual's} instructions. A combination of
-\textsf{biblatex} and \textsf{biblatex-chicago} package options allows
-you to define when, how, and where any of these extended
-specifications will appear in your documents. I have attempted to
-provide as compliant a set of defaults as possible in
+\mybigspace I\mymarginpar{\textbf{date}} have now implemented all of
+the applicable parts of \textsf{biblatex's} elegant, and long
+standing, support for the \textsc{iso}8601-2 Extended Format
+specification, which means the package now provides greatly enhanced
+possibilities for presenting uncertain and unspecified dates and date
+ranges, along with date eras, seasons, and time stamps. I have also
+implemented the \emph{Manual's} (9.64) guidelines for compressing year
+ranges, as well as providing a few more extras to help with some of
+the other tricky corners of the \emph{Manual's} instructions. A
+combination of \textsf{biblatex} and \textsf{biblatex-chicago} package
+options allows you to define when, how, and where any of these
+extended specifications will appear in your documents. I have
+attempted to provide as compliant a set of defaults as possible in
\textsf{biblatex-chicago.sty}, but you can alter any of them according
to your needs. All are documented in section~\ref{sec:options},
below, but table~\ref{ad:date:extras}, located in the author-date
@@ -2999,35 +3067,34 @@ all works.
\textsf{date} field that may be helpful to users. First, I highly
recommend familiarizing yourself with the extended date
specifications, as in many cases they will greatly simplify the
-creation of your .bib databases. The new
-\mycolor{\texttt{compressyears}} option (\texttt{true} by default),
-for example, takes a year range in a date field and handles the
-somewhat tricky Chicago compression rules for you, while also giving
-you a simple means of turning it off that doesn't involve combing your
-.bib file for all the \textsf{year} fields that contain your
-hand-formatted ranges. Clearly, situations may still arise when a
-specially-crafted \textsf{year} or \textsf{origyear} field may be
-necessary, but if you can use the enhanced specifications then I
-strongly advocate doing so. Second, the fine-grained specification of
-a time stamp is really only necessary for news stories that are
-frequently updated \enquote{as they unfold} (14.191), for online
-sources that change rapidly enough for a time stamp to be necessary
-(14.207, 14.233; wikiped:bibtex), or for online posts, particularly
-comments, that may need a time stamp for disambiguation (14.208--10).
-If you wish to specify the time zone, the \emph{Manual} (10.41)
-prefers initialisms like \enquote{EST} or \enquote{PDT,} and these are
-most easily provided using the \textsf{timezone} field, where you can
-include your own parentheses if so desired (cp.\ 14.191). For the
-\textsf{date} field itself, a time stamp will only appear in
-\textsf{article}, \textsf{review}, \textsf{suppperiodical}, and
-\textsf{online} entries, the first three only with a \texttt{magazine}
-\textsf{entrysubtype}. All types can print such a stamp from the
-\textsf{urldate} (controllable using the
-new\colmarginpar{\texttt{urlstamp}} \mycolor{\texttt{urlstamp}}
-option), while only \textsf{review} and \textsf{suppperiodical}
-entries will print this data from an \textsf{eventdate}. If you find
-a context in which a time stamp would be useful and which isn't
-included in this discussion, please let me know.
+creation of your .bib databases. The new \texttt{compressyears}
+option (\texttt{true} by default), for example, takes a year range in
+a date field and handles the somewhat tricky Chicago compression rules
+for you, while also giving you a simple means of turning it off that
+doesn't involve combing your .bib file for all the \textsf{year}
+fields that contain your hand-formatted ranges. Clearly, situations
+may still arise when a specially-crafted \textsf{year} or
+\textsf{origyear} field may be necessary, but if you can use the
+enhanced specifications then I strongly advocate doing so. Second,
+the fine-grained specification of a time stamp is really only
+necessary for news stories that are frequently updated \enquote{as
+ they unfold} (14.191), for online sources that change rapidly enough
+for a time stamp to be necessary (14.207, 14.233; wikiped:bibtex), or
+for online posts, particularly comments, that may need a time stamp
+for disambiguation (14.208--10). If you wish to specify the time
+zone, the \emph{Manual} (10.41) prefers initialisms like \enquote{EST}
+or \enquote{PDT,} and these are most easily provided using the
+\textsf{timezone} field, where you can include your own parentheses if
+so desired (cp.\ 14.191). For the \textsf{date} field itself, a time
+stamp will only appear in \textsf{article}, \textsf{review},
+\textsf{suppperiodical}, and \textsf{online} entries, the first three
+only with a \texttt{magazine} \textsf{entrysubtype}. All types can
+print such a stamp from the \textsf{urldate} (controllable using the
+new\mymarginpar{\texttt{urlstamp}} \texttt{urlstamp} option), while
+only \textsf{review} and \textsf{suppperiodical} entries will print
+this data from an \textsf{eventdate}. If you find a context in which
+a time stamp would be useful and which isn't included in this
+discussion, please let me know.
\mylittlespace Third, an incomplete time specification will be ignored
by \textsf{biber}, so include the seconds in it, as in
@@ -3052,17 +3119,15 @@ should be moved into the corresponding date field (either the
\textsf{date} or the \textsf{eventdate}, typically). On all these
questions generally please cf.\ also \textsf{origdate},
\textsf{timezone}, and \textsf{year}, below; the \texttt{alldates},
-\texttt{alltimes}, \mycolor{\texttt{alwaysrange}},
-\mycolor{\texttt{centuryrange}}, \mycolor{\texttt{compressyears}},
-\texttt{datecirca}, \texttt{dateera}, \texttt{dateeraauto},
-\texttt{dateuncertain}, \mycolor{\texttt{decaderange}},
-\mycolor{\texttt{nodatebrackets}}, \mycolor{\texttt{nodates}},
-\mycolor{\texttt{noyearbrackets}}, \texttt{timezones},
-\mycolor{\texttt{urlstamp}}, and \texttt{urltime} options in
+\texttt{alltimes}, \texttt{alwaysrange}, \texttt{centuryrange},
+\texttt{compressyears}, \texttt{datecirca}, \texttt{dateera},
+\texttt{dateeraauto}, \texttt{dateuncertain}, \texttt{decaderange},
+\texttt{nodatebrackets}, \texttt{nodates}, \texttt{noyearbrackets},
+\texttt{timezones}, \texttt{urlstamp}, and \texttt{urltime} options in
sections~\ref{sec:presetopts}, \ref{sec:chicpreset}, and
\ref{sec:useropts}; and section~4.5.10 in \textsf{biblatex.pdf}
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace (Users of the Chicago author-date style who wish to
minimize the labor needed to convert a .bib database for the notes \&\
@@ -3144,13 +3209,13 @@ releases of \textsf{biblatex} provide these fields as a means to
specify additional contributors to texts in a number of editorial
roles. In the Chicago styles they seem most relevant for the
audiovisual types, especially \textsf{music} and \textsf{video}, and
-now also the \mycolor{\textsf{performance}} type, in all of which they
-can help to identify conductors, directors, producers, and performers.
-To specify the role, use the fields \textsf{editoratype},
+now also the \textsf{performance} type, in all of which they can help
+to identify conductors, directors, producers, and performers. To
+specify the role, use the fields \textsf{editoratype},
\textsf{editorbtype}, and \textsf{editorctype}, which see. (Cf.\
bernstein:shostakovich, hamilton:miranda, handel:messiah.)
-\mybigspace Normally, \colmarginpar{\textbf{editortype}} with the
+\mybigspace Normally, \mymarginpar{\textbf{editortype}} with the
exception of the \textsf{article} and \textsf{review} types,
\textsf{biblatex-chicago-notes} will automatically find a name to put
at the head of an entry, starting with an \textsf{author}, and
@@ -3174,18 +3239,17 @@ then you need to put \texttt{compiler} into the \textsf{editortype}
field, and \textsf{biblatex} will print the correct string after the
name in both the bibliography and in the long note form.
-\mylittlespace In \colmarginpar{New!} previous releases of
-\textsf{biblatex-chicago} you could only use defined \cmd{bibstrings}
-in this field, at least if you wanted anything printed. N.~Andrew
-Walsh pointed out that the standard \textsf{biblatex} styles will just
-print the field as-is in this case, allowing them to handle a great
-many unforeseen editorial roles with comparative ease, so I've
-implemented this, too, making sure to capitalize the string if the
-context demands it. The string you choose will differ depending on
-whether it will be printed after a name at the head of an entry or
-before a name later on in the entry, e.g., \enquote{cartographer} or
-\enquote{maps created by.} A bit of trial and error should see you
-through.
+\mylittlespace In previous releases of \textsf{biblatex-chicago} you
+could only use defined \cmd{bibstrings} in this field, at least if you
+wanted anything printed. N.~Andrew Walsh pointed out that the
+standard \textsf{biblatex} styles will just print the field as-is in
+this case, allowing them to handle a great many unforeseen editorial
+roles with comparative ease, so I've implemented this, too, making
+sure to capitalize the string if the context demands it. The string
+you choose will differ depending on whether it will be printed after a
+name at the head of an entry or before a name later on in the entry,
+e.g., \enquote{cartographer} or \enquote{maps created by.} A bit of
+trial and error should see you through.
\mylittlespace There are a few more details of which you need to be
aware. Because \textsf{biblatex-chicago} has added the \textsf{namea}
@@ -3231,18 +3295,18 @@ unnecessary or won't work properly in the following entry types:
\textsf{suppperiodical}.
\mybigspace These
-\colmarginpar{\textbf{editoratype\\editorbtype\\editorctype}} fields
+\mymarginpar{\textbf{editoratype\\editorbtype\\editorctype}} fields
identify the exact role of the person named in the corresponding
\textsf{editor[a-c]} field, just as \textsf{editortype} (q.v.) does
for the \textsf{editor}. Note that they are not part of the string
concatenation mechanism. I have implemented them just as the standard
styles do, that is, if the field isn't a pre-defined \cmd{bibstring}
it will be printed as-is, contextually capitalized. They have found a
-use particularly in \textsf{music}, \mycolor{\textsf{performance}},
-and \textsf{video} entries. Cf.\ bernstein:shostakovich,
+use particularly in \textsf{music}, \textsf{performance}, and
+\textsf{video} entries. Cf.\ bernstein:shostakovich,
hamilton:miranda, handel:messiah.
-\mybigspace Standard \colmarginpar{\textbf{eid}} \textsf{biblatex}
+\mybigspace Standard \mymarginpar{\textbf{eid}} \textsf{biblatex}
field, providing a string or number some journals use uniquely to
identify a particular article. Only applicable to the
\textsf{article} entry type, and only to those without a
@@ -3252,11 +3316,11 @@ moved it in accordance with its specifications. It replaces the
\textsf{pages} field in long notes and bibliography, and appears after
any specific page cited in the \textsf{postnote} field of a long note.
-\paragraph*{\protect\colmarginpar{\textbf{entrysubtype}}}
+\paragraph*{\protect\mymarginpar{\textbf{entrysubtype}}}
\label{sec:entrysub}
Standard and very powerful \textsf{biblatex} field, left undefined by
-the standard styles. In \textsf{biblatex-chicago-notes} it has eight
+the standard styles. In \textsf{bib\-latex-chicago-notes} it has eight
very specific uses, the first three of which I have designed in order
to maintain, as much as possible, backward compatibility with the
standard styles. First, in \textsf{article}, \textsf{periodical}, and
@@ -3306,10 +3370,10 @@ details on how these citations work.
\textsf{artwork} entry type in order to refer to a work from antiquity
whose title you do not wish to be italicized. Please see the
documentation of \textbf{artwork} above for the details. Fifth, you
-can define it in a \mycolor{\textbf{standard}} entry, q.v., to change
-the appearance of both long and short notes. Sixth, you can define it
-in an \textbf{audio}, \textbf{music}, or \textbf{video} entry if such
-an entry refers to an individual unit that isn't part of any larger
+can define it in a \textbf{standard} entry, q.v., to change the
+appearance of both long and short notes. Sixth, you can define it in
+an \textbf{audio}, \textbf{music}, or \textbf{video} entry if such an
+entry refers to an individual unit that isn't part of any larger
collection, the entry therefore having only a \textsf{title} and not a
\textsf{booktitle}, a \textsf{title} that \textsf{biblatex-chicago}
would normally interpret as the title of a larger unit (and therefore
@@ -3318,9 +3382,9 @@ though enacting quite a different syntactic transformation, the 17th
edition (14.265) now recommends that, when presenting episodes from a
TV series, the name of the series (\textsf{booktitle}) comes before
the episode name (\textsf{title}). The exact string
-\mycolor{\texttt{tvepisode}} in the \textsf{entrysubtype} field
-achieves this reversal, which includes using the \textsf{booktitle} as
-a \textsf{sorttitle} in the bibliography and also as the
+\texttt{tvepisode} in the \textsf{entrysubtype} field achieves this
+reversal, which includes using the \textsf{booktitle} as a
+\textsf{sorttitle} in the bibliography and also as the
\textsf{labeltitle} in short notes.
\mylittlespace Eighth, and finally, you can use any
@@ -3340,22 +3404,22 @@ so these three fields now work more or less as they do in standard
abbreviated references to online content than conventional URLs,
though I can find no specific reference to them in the \emph{Manual}.
-\enlargethispage{-\baselineskip}
+% \enlargethispage{-\baselineskip}
\mybigspace This \colmarginpar{\textbf{eventdate}} is a standard
\textsf{biblatex} field which has gradually accumulated functions in
\textsf{biblatex-chicago}. It can now play a role in
-\mycolor{\textsf{artwork}}, \mycolor{\textsf{audio}},
-\mycolor{\textsf{image}}, \textsf{music}, \textsf{review},
-\mycolor{\textsf{standard}}, \textsf{suppperiodical},
-\textsf{unpublished}, and \textsf{video} entries. In \textsf{artwork}
-and \textsf{image} entries it identifies the publication date of, most
-frequently, a photograph, in association with the
-\textsf{howpublished} field which identifies the periodical or other
-medium in which it was published (mccurry:afghangirl). In
+\textsf{artwork}, \textsf{audio}, \textsf{image},
+\mycolor{\textsf{inproceedings}}, \textsf{music},
+\mycolor{\textsf{proceedings}}, \textsf{review}, \textsf{standard},
+\textsf{suppperiodical}, \textsf{unpublished}, and \textsf{video}
+entries. In \textsf{artwork} and \textsf{image} entries it identifies
+the publication date of, most frequently, a photograph, in association
+with the \textsf{howpublished} field which identifies the periodical
+or other medium in which it was published (mccurry:afghangirl). In
\textsf{standard} entries it will also usually be associated with a
\textsf{howpublished} field, allowing you to specify a later renewal
-or reaffirmation of a standard (niso:bibref). In \textsf{audio}
+or reaffirmation of a standard (niso\hc bibref). In \textsf{audio}
entries, it specifies the release date of a single episode of a
podcast (danforth:podcast). In \textsf{music} entries, it identifies
the recording or performance date of a particular song (rather than of
@@ -3369,30 +3433,42 @@ string using the \textsf{userd} field, something you'll definitely
want to do for filmed musical performances (friends:leia,
handel:messiah, holiday:fool).
-\mylittlespace In \textsf{unpublished} entries it identifies the date
-of an event at which an unpublished work was presented, though in
-truth the \textsf{date} will do as well here (nass:address). The
-field's use in \textsf{review} entries, finally, includes a possible
-time stamp. In this context, an \textsf{eventdate} helps to identify
-a particular comment on, or reply to another comment on, a blog post.
-Given that many such posts by a single \textsf{author} could appear on
-the same day, you can distinguish them by putting a time specification
-in the \textsf{eventdate} field itself (ac:comment). Please see the
+\mylittlespace In \mycolor{\textsf{inproceedings}},
+\mycolor{\textsf{proceedings}}, and \textsf{unpublished} entries it
+identifies the date of an event at which a published or unpublished
+work was presented, though in truth the \textsf{date} will do as well
+in \textsf{unpublished} entries (nass:address). The field's use in
+\textsf{review} entries, finally, includes a possible time stamp. In
+this context, an \textsf{eventdate} helps to identify a particular
+comment on, or reply to another comment on, a blog post. Given that
+many such posts by a single \textsf{author} could appear on the same
+day, you can distinguish them by putting a time specification in the
+\textsf{eventdate} field itself (ac:comment). Please see the
\textbf{review} type, above, for the details of how to cite these
-materials, possibly with the help of the new
-\mycolor{\texttt{commenton}} \textsf{relatedtype}. See also the
-\textsf{date} field docs, in particular table~\ref{ad:date:extras}
-(located in the author-date section), for\colmarginpar{New!} details on
-how the \mycolor{\textsc{iso}8601-2 Extended Format specifications}
-offered by \textsf{biblatex}, including time stamps and much else
-besides, have been implemented in \textsf{biblatex-chicago}.
-
-\mybigspace This \colmarginpar{\textbf{eventtimezone}} field can, if
+materials, possibly with the help of the \texttt{commenton}
+\textsf{relatedtype}. See also the \textsf{date} field docs, in
+particular table~\ref{ad:date:extras} (located in the author-date
+section), for details on how the \textsc{iso}8601-2 Extended Format
+specifications offered by \textsf{biblatex}, including time stamps and
+much else besides, have been implemented in \textsf{biblatex-chicago}.
+
+\mybigspace This \mymarginpar{\textbf{eventtimezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{eventdate}. The \emph{Manual} prefers initialisms
like \enquote{EST} for this purpose, and you can provide parentheses
around it at your discretion (cp.\ 10.41 and 14.191).
+\mybigspace A \colmarginpar{\textbf{eventtitle}} standard
+\textsf{biblatex} field for identifying the name of the event that
+produces either a published record (\mycolor{\textsf{inproceedings}}
+and \mycolor{\textsf{proceedings}} entries) or an unpublished one
+(\textsf{unpublished}).
+
+\mybigspace Standard \colmarginpar{\textbf{eventtitleaddon}}
+\textsf{biblatex} field for adding information about an
+\textsf{eventtitle}, and available in the same entry types as that
+field.
+
\mybigspace As \mymarginpar{\textbf{foreword}} with the
\textsf{afterword} field above, \textsf{foreword} will in general
function as it does in standard \textsf{biblatex}. Like
@@ -3408,27 +3484,27 @@ from the \textsf{author}. The \emph{Manual} has nothing to say on the
subject, but \textsf{biblatex-chicago-notes} prints it (them), in
parentheses, just after the author(s).
-\mybigspace Standard \colmarginpar{\textbf{howpublished}}
+\mybigspace Standard \mymarginpar{\textbf{howpublished}}
\textsf{biblatex} field which, like the \textsf{eventdate} field, is
gradually accumulating functions in \textsf{biblatex-chicago}. In the
\textsf{booklet} type it retains something of its traditional usage,
replacing the \textsf{publisher}, and has a similar (somewhat
paradoxical) place in \textsf{unpublished} entries. In the
-\textsf{misc} and \mycolor{\textsf{performance}} types it works almost
-as a second \textsf{note} field, bringing in extra information about a
-work in close association with the \textsf{type} and \textsf{version}
-fields, while in \mycolor{\textsf{dataset}} entries its information
-will be associated with both those fields and also with the
-\textsf{number} field. 17th-edition \textsf{music} entries require a
-field to provide the medium of downloaded music and/or the name of the
-streaming service, so \textsf{howpublished} works there as an online
-double of \textsf{type} and of \textsf{publisher}. Finally, in
-\textsf{artwork}, \textsf{image}, and \mycolor{\textsf{standard}}
-entries it serves to qualify or modify an \textsf{eventdate}, almost
-as a \textsf{userd} field modifies a \textsf{date} or
-\textsf{urldate}. Please see the docs of those entry types for more
-information, and also bedford:photo, clark:mesopot,
-mccurry:afghangirl, niso:bibref, rihanna:umbrella.
+\textsf{misc} and \textsf{performance} types it works almost as a
+second \textsf{note} field, bringing in extra information about a work
+in close association with the \textsf{type} and \textsf{version}
+fields, while in \textsf{dataset} entries its information will be
+associated with both those fields and also with the \textsf{number}
+field. 17th-edition \textsf{music} entries require a field to provide
+the medium of downloaded music and/or the name of the streaming
+service, so \textsf{howpublished} works there as an online double of
+\textsf{type} and of \textsf{publisher}. Finally, in
+\textsf{artwork}, \textsf{image}, and \textsf{standard} entries it
+serves to qualify or modify an \textsf{eventdate}, almost as a
+\textsf{userd} field modifies a \textsf{date} or \textsf{urldate}.
+Please see the docs of those entry types for more information, and
+also bedford:photo, clark:mesopot, mccurry:afghangirl, niso:bibref,
+rihanna:umbrella.
\mybigspace Standard \mymarginpar{\textbf{institution}}
\textsf{biblatex} field. In the \textsf{thesis} entry type, it will
@@ -3436,7 +3512,7 @@ usually identify the university for which the thesis was written,
while in a \textsf{report} entry it may identify any sort of
institution issuing the report.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mybigspace As \mymarginpar{\textbf{introduction}} with the
\textsf{afterword} and \textsf{foreword} fields above,
@@ -3598,26 +3674,26 @@ situations should usually be amenable to inclusion in the
\mybigspace The \mymarginpar{\textbf{mainsubtitle}} subtitle for a
\textsf{maintitle} --- see next entry.
-\mybigspace The \colmarginpar{\textbf{maintitle}} main title for a
+\mybigspace The \mymarginpar{\textbf{maintitle}} main title for a
multi-volume work, e.g., \enquote{Opera} or \enquote{Collected Works.}
-(See donne:\hfill var, euripides:orestes, harley:cartography,
-lach:asia, pelikan:christian, and plato:repub\-lic:gr.) When using a
+(See donne\hc var, euripides:orestes, harley:cartography, lach:asia,
+pelikan:christian, and plato\hc republic:gr.) When using a
\textsf{crossref} field and \textsf{Biber}, the \textsf{title} of
\textbf{mv*} entry types always becomes a \textsf{maintitle} in the
-child entry. See also the documentation of the new
-\mycolor{\texttt{maintitle}} \textsf{relatedtype} in the
-\textbf{mvbook} docs in section~\ref{sec:entrytypes}, above, and in
-section~\ref{sec:related}, below.
+child entry. See also the documentation of the \texttt{maintitle}
+\textsf{relatedtype} in the \textbf{mvbook} docs in
+section~\ref{sec:entrytypes}, above, and in section~\ref{sec:related},
+below.
-\mylittlespace Because \colmarginpar{New!} the 17th edition of the
-\emph{Manual} recommends that you present not only the names of blogs
-but also the names of their parent (usually periodical) publications,
-I have added this field to \textsf{article}, \textsf{periodical}, and
-\textsf{review} entries for just this purpose. See the documentation of
-those entry types in section~\ref{sec:entrytypes}, above, and also
+\mylittlespace Because the 17th edition of the \emph{Manual}
+recommends that you present not only the names of blogs but also the
+names of their parent (usually periodical) publications, I have added
+this field to \textsf{article}, \textsf{periodical}, and
+\textsf{review} entries for just this purpose. See the documentation
+of those entry types in section~\ref{sec:entrytypes}, above, and also
table~\ref{tab:online:types} (14.208; amlen:hoot).
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mybigspace An \mymarginpar{\textbf{maintitleaddon}} annex to the
\textsf{maintitle}, for which see previous entry. Such an annex would
@@ -3663,39 +3739,108 @@ section~\ref{sec:formatcommands}.
\mybigspace This \colmarginpar{\textbf{nameaddon}} field is provided
by \textsf{biblatex}, though not used by the standard styles. In
-\textsf{biblatex-chicago}, it allows you, in most entry types, to
-specify that an author's name is a pseudo\-nym, or to provide either
-the real name or the pseudonym itself, if the other is being provided
-in the \textsf{author} field. The abbreviation
+\textsf{biblatex-chicago} its primary use, in most entry types, has
+always been to specify that an author's name is a pseudonym, or to
+provide either the real name or the pseudonym itself, if the other is
+being provided in the \textsf{author} field. The abbreviation
\enquote{\texttt{pseud}.}\ (always lowercase in English) is specified,
either on its own or after the pseudonym (centinel:letters,
creasey:ashe:blast, creasey:morton:hide, creasey:york:death, and
-lecarre:quest); \verb+\bibstring{pseudonym}+ does the work for you.
-See under \textbf{author} above for the full details.
-
-\mylittlespace In \textsf{online, review,} and \textsf{suppperiodical}
-entries, as well as in \textsf{misc} entries with an
-\textsf{entrysubtype}, I have removed the automatic provision of
-square brackets from the field, allowing it to be used in at least two
-ways. First, if you provide your own square brackets, then it can
-have its standard function, as above. Second you can, within
-parentheses, provide a screen name for online social media, or merely
-additional specifics about an author in a piece from an unpublished
-archive. (The 16th edition of the \emph{Manual} recommended
-specifying comments to blogs and other online content using a time
-stamp in parentheses after the \textsf{author}, but the 17th edition
-\colmarginpar{New!} handles time stamps both differently and more
-widely, so in this case you would now put time data into the
-\textsf{date} or \textsf{eventdate} field, particularly when the date
-itself is too coarse a specification to identify a comment
-unambiguously. Cf.\ ac:comment, obrien:recycle.)
+lecarre:quest); remember that \verb+\bibstring{pseudonym}+ does the
+work for you. See under \textbf{author} above for the full details.
+
+\mylittlespace The field has slowly accumulated other functions, so
+when Philipp Immel made a feature request, and pointed to a discussion
+on Stack Exchange which suggested a few more, I thought I might
+generalize the field's functionality, providing three package options
+to allow users to mould it to their needs. Before discussing these,
+allow me to emphasize that the package defaults remain exactly the
+same as before, so that, absent any of the new options, the style
+still provides square brackets around the \textsf{nameaddon} in most
+entry types, no brackets of any sort in \textsf{online, review,} and
+\textsf{suppperiodical} entries, as well as in \textsf{misc} entries
+with an \textsf{entrysubtype}, and rather specialized handling in
+\textsf{customc} entries (which ignore all but the first of the new
+options --- see below). If you're happy with the status quo, then no
+changes to your documents or\ .bib databases are necessary.
+
+\mylittlespace If you do need or want to put the field to a different
+use, the following options may help. All of them are available
+globally, per type, and per entry. The first
+\colmarginpar{\texttt{nameaddon}} new option is simply called
+\mycolor{\texttt{nameaddon}}, and determines where and when the field
+will be printed at all. There are seven possible values:
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{all}:] This is the default; if an entry has a
+ \textsf{nameaddon}, it will appear in both long notes and in the
+ bibliography.
+\item[\qquad \texttt{none}:] The field will appear neither in the
+ bibliography nor in long notes.
+\item[\qquad \texttt{bib}:] The field will appear only in the
+ bibliography.
+\item[\qquad \texttt{cite}:] The field will appear only in long notes.
+\item[\qquad \texttt{first}:] (This key and the next two are only
+ available as global options.) Philipp Immel requested this as a way
+ to provide an \textsf{author's} dates in the \textsf{nameaddon}
+ field and only have them printed the first time that author appears
+ in the bibliography. A sequence of consecutive long notes citing
+ works by the same author will be treated the same way. The code
+ tests for identical \textsf{nameaddon} fields in works by identical
+ \textsf{authors}, so other sorts of \textsf{nameaddon} will be
+ printed as usual.
+\item[\qquad \texttt{bibfirst}:] Like \texttt{first}, but will not
+ print the \textsf{nameaddon} field in long notes.
+\item[\qquad \texttt{citefirst}:] Like \texttt{first}, but will not
+ print the \textsf{nameaddon} field in the bibliography.
+\end{description}
-\mylittlespace In the \textsf{customc} entry type, finally, which is
-used to create alphabetized cross-references to other bibliography
-entries, the \textsf{nameaddon} field allows you to change the default
-string linking the two parts of the cross-reference. The code
-automatically tests for a known bibstring, which it will italicize.
-Otherwise, it prints the string as is.
+The \colmarginpar{\texttt{nameaddonsep}}
+\mycolor{\texttt{nameaddonsep}} option controls the punctuation that
+appears before the \textsf{nameaddon}. It takes the following six
+keys:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{space}] = \cmd{addspace}. This is the default.
+\item[\qquad \texttt{none}] = no separator at all. It presumes that
+ you will include one in the \textsf{nameaddon} field itself.
+\item[\qquad \texttt{colon}] = \verb+\addcolon\addspace+.
+\item[\qquad \texttt{comma}] = \verb+\addcomma\addspace+.
+\item[\qquad \texttt{period}] = \verb+\addperiod\addspace+.
+\item[\qquad \texttt{semicolon}] = \verb+\addsemicolon\addspace+.
+\end{description}
+
+The \colmarginpar{\texttt{nameaddon-\\format}}
+\mycolor{\texttt{nameaddonformat}} option allows you to change the
+format of the \textsf{nameaddon} field on the fly, so its value should
+be a field format that \textsf{biblatex} understands. This includes
+standard formats like \texttt{parens,\,brackets} or \texttt{emph}, and
+also custom formats that you provide in your preamble using
+\cmd{DeclareFieldFormat}, in case the standard ones aren't adequate.
+If you don't define this option, then the usual defaults apply, as
+delineated above, and you can use your own parentheses in
+\textsf{online, review,} and \textsf{suppperiodical} entries, as well
+as in \textsf{misc} entries with an \textsf{entrysubtype}, to
+distinguish screen names or other authorial information from
+traditional pseudonyms (in brackets).
+
+\mylittlespace Finally, two more details. If you are using the
+17th-edition styles for the first time, please note that the 16th
+edition of the \emph{Manual} recommended specifying comments to blogs
+and other online content using a time stamp in parentheses after the
+\textsf{author}, but the 17th edition handles time stamps both
+differently and more widely, so in this case you would now put time
+data into the \textsf{date} or \textsf{eventdate} field, particularly
+when the date itself is too coarse a specification to identify a
+comment unambiguously (cf.\ ac:comment, obrien:recycle). In the
+\textsf{customc} entry type, finally, which is used to create
+alphabetized cross-references to other bibliography entries, the
+\textsf{nameaddon} field allows you to change the default string
+linking the two parts of the cross-reference. The code automatically
+tests for a known bibstring, which it will italicize. Otherwise, it
+prints the string as you've provided in the \textsf{nameaddon} field
+itself. The punctuation is fixed.
\mybigspace You \mymarginpar{\textbf{nameatype}} can use this field
to change the role of a \textsf{namea} just as you can use
@@ -3724,9 +3869,9 @@ are using \textsf{Biber} \textsf{nameb} isn't inherited from a
takes precedence over \textsf{translator}. Cf.\ \textsf{namea},
\textsf{namec}, \textsf{origlanguage} (section~\ref{sec:related}),
\textsf{translator}, \textsf{userf} (section~\ref{sec:related}), and
-the macros \cmd{partedit}, \cmd{parttrans}, \cmd{parteditandtrans},\,\,
-\cmd{partcomp},\,\, \cmd{parteditandcomp},\,\, \cmd{parttransandcomp}, and
-\cmd{partedittransand-\break comp} in section~\ref{sec:formatcommands}.
+the macros \cmd{partedit}, \cmd{parttrans}, \cmd{parteditandtrans},
+\cmd{partcomp}, \cmd{parteditandcomp}, \cmd{parttransandcomp}, and
+\cmd{partedittransandcomp} in section~\ref{sec:formatcommands}.
\mybigspace The \mymarginpar{\textbf{namec}} \emph{Manual} (14.103)
specifies that works without an author may be listed under an editor,
@@ -3792,7 +3937,7 @@ beginning of a sentence, then simply ensure that that word is in
lowercase, and \textsf{biblatex-chicago-notes} will automatically do
the right thing. Cf.\ \textsf{addendum}.
-\mybigspace This \colmarginpar{\textbf{number}} is a standard
+\mybigspace This \mymarginpar{\textbf{number}} is a standard
\textsf{biblatex} field, steadily accumulating uses in
\textsf{biblatex-chicago}. It may contain the number of a
\textsf{journaltitle} in an \textsf{article} or \textsf{review} entry,
@@ -3800,8 +3945,8 @@ the number of a \textsf{title} in a \textsf{periodical} entry, the
volume/number of a book (or musical recording) in a \textsf{series},
the (generally numerical) specifier of the \textsf{type} in a
\textsf{report} entry, the archive location (or database accession
-number) of a \mycolor{\textsf{dataset}} entry, and the number of a
-national or international standard in a \mycolor{\textsf{standard}}
+number) of a \textsf{dataset} entry, and the number of a
+national or international standard in a \textsf{standard}
entry. Generally, in an \textsf{article}, \textsf{periodical}, or
\textsf{review} entry, this will be a plain cardinal number, but in
such entries \textsf{biblatex-chicago} now does the right thing if you
@@ -3841,7 +3986,7 @@ organization sponsoring a conference in a \textsf{proceedings} or
\textsf{inproceedings} entry, and I have retained this as a
possibility, though the \emph{Manual} is silent on the matter.
-\mybigspace This \colmarginpar{\textbf{origdate}} \textsf{biblatex}
+\mybigspace This \mymarginpar{\textbf{origdate}} \textsf{biblatex}
field allows you to provide more than one full date specification for
those references which need it. As with the analogous \textsf{date}
field, you provide the date (or range of dates) in \textsc{iso}8601
@@ -3864,10 +4009,11 @@ date formatted (day-month-year or month-day-year, respectively), while
in \textsf{letter} entries the \textsf{date} applies to the
publication of the whole collection. If such a published collection
were itself a reprint, improvisation in the \textsf{location} field
-might be able to rescue the situation. (See jackson:paulina:letter,
-white:ross:memo, white:russ, and white:total for how \textsf{letter}
-entries usually work; creel:house shows the field in action in a
-\textsf{misc} entry, while spock:interview uses \textsf{date}.)
+might be able to rescue the situation. (See jackson:paulina\hc
+letter, white:ross:memo, white:russ, and white:total for how
+\textsf{letter} entries usually work; creel:house shows the field in
+action in a \textsf{misc} entry, while spock:interview uses
+\textsf{date}.)
\mylittlespace In \textsf{music} entries, you can use the
\textsf{origdate} in two separate but related ways. First, it can
@@ -3904,7 +4050,7 @@ field. (The \textsf{origyear} field usually works, too.)
section~\ref{sec:related}, below.
\vspace{18pt}
-\mybigspace This \colmarginpar{\textbf{origtimezone}} field can, if
+\mybigspace This \mymarginpar{\textbf{origtimezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{origdate}. The \emph{Manual} prefers initialisms
like \enquote{EST} for this purpose, and you can provide parentheses
@@ -3976,7 +4122,7 @@ example, then you'll need to use a different field, (which in this
case would be \textsf{number} [palmatary:pottery]). Cf.\
\textsf{volume}.
-\mybigspace Standard \colmarginpar{\textbf{publisher}}
+\mybigspace Standard \mymarginpar{\textbf{publisher}}
\textsf{biblatex} field. Remember that \enquote{\texttt{and}} is a
keyword for connecting multiple publishers, so if a publisher's name
contains \enquote{and,} then you should either use the ampersand (\&)
@@ -3984,7 +4130,7 @@ or enclose the whole name in additional braces. (See \emph{Manual}
14.133--41; aristotle:metaphy:gr, cohen:schiff, creasey:ashe:blast,
dunn:revolutions.)
-\enlargethispage{\baselineskip}
+\enlargethispage{.5\baselineskip}
\mylittlespace There are, as one might expect, a few further
subtleties involved here. If you give two publishers in the field
@@ -4013,7 +4159,7 @@ can also stand for \enquote{no place.} The \emph{Manual} also
mentions {s.n.}\,(= \emph{sine nomine}) to specify the lack of a
publisher (10.42).
-\mybigspace In \colmarginpar{\textbf{pubstate}} response to new
+\mybigspace In \mymarginpar{\textbf{pubstate}} response to new
specifications in the 17th edition of the \emph{Manual} (esp.\
14.137), I have tried to generalize the functioning of the
\textsf{pubstate} field in all entry types. The \texttt{reprint}
@@ -4029,11 +4175,10 @@ to be published, i.e., \texttt{forthcoming}, \texttt{inpreparation},
else, which will be printed before, and in close association with,
other information about the publisher of a work. The four in the
first category will always be localized, as will \texttt{reprint} and
-\mycolor{\texttt{selfpublished}} (and anything else that
-\textsf{biblatex} finds to be a \cmd{bibstring}) from the second
-category. All other strings will be printed as-is, capitalized if
-needed, just before the publisher (author:forthcoming,
-contrib:contrib, schweitzer:bach).
+\texttt{selfpublished} (and anything else that \textsf{biblatex} finds
+to be a \cmd{bibstring}) from the second category. All other strings
+will be printed as-is, capitalized if needed, just before the
+publisher (author:forthcoming, contrib:contrib, schweitzer:bach).
\mybigspace I \mymarginpar{\textbf{redactor}} have implemented this
field just as \textsf{biblatex}'s standard styles do, even though the
@@ -4048,8 +4193,8 @@ field, usually just a number in an \textsf{article},
\textsf{periodical}, or \textsf{review} entry, almost always the name
of a publication series in \textsf{book}-like entries, and providing
similar identifying information associated with a \textsf{number} in
-\textsf{music} and \mycolor{\textsf{standard}} entries. If you need
-to attach further information to the \textsf{series} name in a
+\textsf{music} and \textsf{standard} entries. If you need to attach
+further information to the \textsf{series} name in a
\textsf{book}-like entry, then the \textsf{number} field is again the
place for it, whether it be a volume, a number, or even something like
\enquote{2nd ser.} or \enquote{\cmd{bibstring\{oldseries\}}.} Of
@@ -4076,7 +4221,7 @@ preferences regarding the formatting of numerals.
\label{sec:shortauthor}
This is a standard \textsf{biblatex} field, but
-\textsf{biblatex-chicago-notes} makes considerably grea\-ter use of it
+\textsf{biblatex-chicago-notes} makes considerably greater use of it
than the standard styles. For the purposes of the Chicago style, the
field provides the name to be used in the short form of a footnote.
In the vast majority of cases, you don't need to specify it, because
@@ -4130,33 +4275,39 @@ formatting needs. In the default configuration, any entry which
contains a \textsf{shorthand} field will produce a normal first note,
either long or short according to your package options, informing the
reader that the work will hereafter be cited by this abbreviation. As
-in \textsf{biblatex}, the \cmd{printshorthands} command, now for
-\textsf{Biber} users at least an alias for
-\verb+\printbiblist{shorthand}+, will produce a formatted list of
-abbreviations for reference purposes, a list which the \emph{Manual}
-suggests should be placed either in the front matter (when using
-footnotes) or before the endnotes, in case these are used.
-
-\mylittlespace I have provided three options to alter these defaults.
-First, there is a new citation command, \cmd{shorthandcite}, which
-will print the \textsf{shorthand} even at the first citation. I have
-only provided the most general form of this command, so you'll need to
-put it inside parentheses or in a \cmd{footnote} command yourself.
-Second, I have included two \texttt{bibenvironments} for use with the
-\texttt{env} option to the \cmd{printshorthands} command:
-\texttt{losnotes} is designed to allow a list of shorthands to appear
-inside footnotes, while \texttt{losendnotes} does the same for
-endnotes. Their main effect is to change the font size, and in the
-latter case to clear up some spurious punctuation and white space that
-I see on my system when using endnotes. (You'll probably also want to
-use the option \texttt{heading=none} in order to get rid of the
-[oversized] default, providing your own within the \cmd{footnote}
-command.) Third, I have provided a package option,
-\texttt{shorthandfull}, which prints entries in the list of shorthands
-which contain full bibliographical information, effectively allowing
-you to eschew the bibliography in favor of a fortified shorthand list.
-(See 13.67, 14.59--60, and also \textsf{biblatex.pdf} for more
-information.)
+in standard \textsf{biblatex}, the \cmd{printshorthands} command, now
+an alias for \verb+\printbiblist{shorthand}+, will produce a formatted
+list of abbreviations for reference purposes, a list which the
+\emph{Manual} suggests should be placed either in the front matter
+(when using footnotes) or before the endnotes, in case these are used.
+
+\mylittlespace I have provided five options to alter these defaults.
+First, there is a citation command, \cmd{shorthandcite}, which will
+print the \textsf{shorthand} even at the first citation. I have only
+provided the most general form of this command, so you'll need to put
+it inside parentheses or in a \cmd{footnote} command yourself.
+Alternately, you can set the \texttt{shorthandfirst} option to
+\texttt{true}, either in the preamble or in individual entries, to get
+the same effect, somewhat more simply. Third, I have included two
+\texttt{bibenvironments} for use with the \texttt{env} option to the
+\cmd{printshorthands} command: \texttt{losnotes} is designed to allow
+a list of shorthands to appear inside footnotes, while
+\texttt{losendnotes} does the same for endnotes. Their main effect is
+to change the font size, and in the latter case to clear up some
+spurious punctuation and white space that I see on my system when
+using endnotes. (You'll probably also want to use the option
+\texttt{heading=none} in order to get rid of the [oversized] default,
+providing your own within the \cmd{footnote} command.) Fourth, I have
+provided a package option, \texttt{shorthandfull}, which prints
+entries in the list of shorthands which contain full bibliographical
+information, effectively allowing you to eschew the bibliography in
+favor of a fortified shorthand list. (See 13.67, 14.59--60, and also
+\textsf{biblatex.pdf} for more information.) Finally, the new
+\mycolor{\texttt{shorthandintro}} option (section~\ref{sec:useropts})
+allows you to control whether the first, long citation will introduce
+the \textsf{shorthand} at all, rather than just leaving it to the
+shorthand list (or perhaps \enquote{common knowledge}) to clarify the
+reference.
\mylittlespace Alexandre Roberts suggested a further refinement to
\textsf{shorthand} behavior, which allows for it to appear in the
@@ -4192,8 +4343,10 @@ documentation.
\textsf{shorthand} in an entry, it will ordinarily appear the first
time you cite the work, at the end of a long note, surrounded by
parentheses and prefaced by the phrase \enquote{hereafter cited as.}
-With this standard \textsf{biblatex} field, you can change that
-formatting and that phrase to suit your needs. Please note, first,
+To modify this, you can either use the new
+\mycolor{\texttt{shorthandintro}} option (section~\ref{sec:useropts})
+or you can use this standard \textsf{biblatex} field to change the
+formatting and the phrase to suit your needs. Please note, first,
that you need to include the shorthand in this field as you intend it
to appear and, second, that you still need the \textsf{shorthand}
field present in order to ensure the appropriate presentation of that
@@ -4248,7 +4401,7 @@ roll your own using \verb+\DeclareFieldFormat{shortjournalwidth}+
--- you can see its default definition at the top of
\textsf{chicago-notes.bbx}.
-\mybigspace A \colmarginpar{\textbf{shortseries}} special
+\mybigspace A \mymarginpar{\textbf{shortseries}} special
\textsf{biblatex} field, used both to provide an abbreviated form of a
(book) \textsf{series} in notes and/or bibliography and to facilitate
the creation of a list of such abbreviations rather in the manner of a
@@ -4262,30 +4415,29 @@ to wit: \textsf{audio, book, bookinbook, collection, inbook,
standard, suppbook,} and \textsf{video}. There are several steps to
take in order to use the field. First, you'll need to provide both
\textsf{shortseries} and \textsf{series} fields in the entry, then
-you'll need to set the \mycolor{\texttt{seriesabbrev}} option either
-when loading \textsf{biblatex-chicago}, for the whole document or for
+you'll need to set the \texttt{seriesabbrev} option either when
+loading \textsf{biblatex-chicago}, for the whole document or for
specific entry types, or in the \textsf{options} field of individual
.bib entries. By default, this option is not set, so your
-\mycolor{\textsf{shortseries}} fields will be silently ignored. There
-are three other settings:\ \texttt{true} prints the shortened fields
-both in notes and bibliography, \texttt{notes} only in notes, and
-\texttt{bib} only in the bibliography. Should you wish to present a
-list of these abbreviations with their expansions, then you need to
-use the \verb+\printbiblist{shortseries}+ command, perhaps with a
+\textsf{shortseries} fields will be silently ignored. There are three
+other settings:\ \texttt{true} prints the shortened fields both in
+notes and bibliography, \texttt{notes} only in notes, and \texttt{bib}
+only in the bibliography. Should you wish to present a list of these
+abbreviations with their expansions, then you need to use the
+\verb+\printbiblist{shortseries}+ command, perhaps with a
\texttt{title} option to differentiate the list from any
\textsf{shorthand} list. As with \textsf{shorthand} lists, I have
provided two \texttt{bibenvironments} for printing this list in foot-
-or endnotes (\mycolor{\texttt{shsernotes}} and
-\mycolor{\texttt{shserendnotes}}, respectively), to be used with the
-\texttt{env} option to \cmd{printbiblist}. Again as with
-\textsf{shorthands}, you'll probably want to use the option
-\texttt{heading=none} when using these environments, just to turn off
-the (oversized) default, and perhaps provide your own title within the
-\cmd{footnote} command. Finally, if you don't like the default
-formatting of the abbreviations in the list (plain roman), you can
-roll your own using \verb+\DeclareFieldFormat{shortserieswidth}+ ---
-you can see its default definition at the top of
-\textsf{chicago-notes.bbx}.
+or endnotes (\texttt{shsernotes} and \texttt{shserendnotes},
+respectively), to be used with the \texttt{env} option to
+\cmd{printbiblist}. Again as with \textsf{shorthands}, you'll
+probably want to use the option \texttt{heading=none} when using these
+environments, just to turn off the (oversized) default, and perhaps
+provide your own title within the \cmd{footnote} command. Finally, if
+you don't like the default formatting of the abbreviations in the list
+(plain roman), you can roll your own using
+\verb+\DeclareFieldFormat{shortserieswidth}+ --- you can see its
+default definition at the top of \textsf{chicago-notes.bbx}.
\mybigspace A \mymarginpar{\textbf{shorttitle}} standard
\textsf{biblatex} field, primarily used to provide an abbreviated
@@ -4328,7 +4480,7 @@ in section~\ref{sec:formatopts}, below.
\mybigspace The \mymarginpar{\textbf{subtitle}} subtitle for a
\textsf{title} --- see next entry.
-\mybigspace This \colmarginpar{\textbf{timezone}} field can, if
+\mybigspace This \mymarginpar{\textbf{timezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{date}. The \emph{Manual} prefers initialisms like
\enquote{EST} for this purpose, and you can provide parentheses around
@@ -4361,9 +4513,9 @@ are as follows:
\textsf{artwork}, \textsf{book}, \textsf{bookinbook},
\textsf{booklet}, \textsf{collection}, \textsf{image},
\textsf{manual}, \textsf{misc} (with no \textsf{entrysubtype}),
- \mycolor{\textsf{performance}}, \textsf{periodical},
- \textsf{proceedings}, \textsf{report}, \mycolor{\textsf{standard}},
- \textsf{suppbook}, and \textsf{suppcollection} entry types.
+ \textsf{performance}, \textsf{periodical}, \textsf{proceedings},
+ \textsf{report}, \textsf{standard}, \textsf{suppbook}, and
+ \textsf{suppcollection} entry types.
\item[\qquad Quotation Marks:] \textsf{title} of \textsf{article},
\textsf{inbook}, \textsf{incollection}, \textsf{inproceedings},
\textsf{online}, \textsf{periodical}, \textsf{thesis}, and
@@ -4408,12 +4560,12 @@ its own, require, then the following rules apply:
\cmd{mkbibquote} command does this for you automatically, and also,
I repeat, takes care of any following punctuation that needs to be
brought within the closing quotation mark(s). (See 14.94--95;
- garrett, loften:hamlet, murphy:silent, white:cal\-limachus.)
+ garrett, loften:hamlet, murphy:silent, white:callimachus.)
\item Inside a plain title (most likely in a \textsf{review} entry or
a \textsf{titleaddon} field), you should present another title as it
would appear on its own, once again formatting it yourself using
\cmd{mkbibemph} or \cmd{mkbibquote}. (barcott:review, gibbard,
- osborne:poi\-son, ratliff:review, unsigned:ranke).
+ osborne\hc poison, ratliff:review, unsigned:ranke).
\end{enumerate}
The \emph{Manual} provides a few more rules, as well. A word normally
@@ -4437,7 +4589,7 @@ assuming that such a \textsf{title} begins with a lowercase letter in
your .bib database. See\,\textbf{\textbackslash autocap} in
section~\ref{sec:formatcommands} below for more details.
-\enlargethispage{-\baselineskip}
+% \enlargethispage{-\baselineskip}
\mybigspace Standard \mymarginpar{\textbf{titleaddon}}
\textsf{biblatex} intends this field for use with additions to titles
@@ -4490,7 +4642,7 @@ for the head of notes and bibliography entries, \textsf{nameb} takes
precedence over \textsf{translator}.
\mylittlespace I have also provided a \textsf{namea} field, which
-holds the editor of a given \textsf{title} (euripides:ores\-tes). If
+holds the editor of a given \textsf{title} (euripides\hc orestes). If
\textsf{namea} and \textsf{nameb} are the same,
\textsf{biblatex-chicago} will concatenate them, just as
\textsf{biblatex} already does for \textsf{editor},
@@ -4514,7 +4666,7 @@ by the translator's name, behavior that can be controlled with the
\textsf{author}, \textsf{editor}, \textsf{namea}, \textsf{nameb}, and
\textsf{namec}.
-\mybigspace This \colmarginpar{\textbf{type}} is a standard
+\mybigspace This \mymarginpar{\textbf{type}} is a standard
\textsf{biblatex} field, and in its normal usage serves to identify
the type of a \textsf{manual}, \textsf{patent}, \textsf{report}, or
\textsf{thesis} entry. \textsf{Biblatex} 0.7 introduced the ability,
@@ -4534,9 +4686,9 @@ merely capitalize the contents according to context.
\mylittlespace In the \textsf{suppbook} entry type, and in its alias
\textsf{suppcollection}, you can use the \textsf{type} field to
specify what sort of supplemental material you are citing, e.g.,
-\enquote{\texttt{preface to}} or \enquote{\texttt{post\-script to}.}
+\enquote{\texttt{preface to}} or \enquote{\texttt{postscript to}.}
Cf.\ \textsf{suppbook} above for the details. (See \emph{Manual}
-14.110; polakow:afterw, prose:intro).
+14.110; polakow:afterw, prose\hc intro).
\mylittlespace You can use the \textsf{type} field in
\textsf{artwork}, \textsf{audio}, \textsf{image}, \textsf{music}, and
@@ -4561,12 +4713,11 @@ apparatus. It may be worth noting that child entries generally won't
inherit \textsf{url} fields from their parents --- the information
seems entry-specific enough to warrant a little bit of extra typing if
you need to present the same locator in several entries. You
-\colmarginpar{\texttt{blogurl}} can, however, set the new preamble
-option \mycolor{\texttt{blogurl}} to allow your child comments
-(\textsf{review}) to inherit the URL from the parent blog
-(\textsf{article}).
+\mymarginpar{\texttt{blogurl}} can, however, set the preamble option
+\texttt{blogurl} to allow your child comments (\textsf{review}) to
+inherit the URL from the parent blog (\textsf{article}).
-\mybigspace A standard \colmarginpar{\textbf{urldate}}
+\mybigspace A standard \mymarginpar{\textbf{urldate}}
\textsf{biblatex} field, it identifies exactly when you accessed a
given url, and is given in \textsc{iso}8601 format. The \emph{Manual}
prefers DOIs to URLs; in the latter case it allows the use of access
@@ -4576,42 +4727,41 @@ which date is at stake, I have provided the \textbf{userd} field,
documented below. If an entry doesn't have a \textsf{userd}, then the
\textsf{urldate} will be treated as an access date (14.8, 14.12--13,
14.207; evanston:library, grove:sibelius, hlatky:hrt, osborne:poison,
-sirosh:visualcortex, wikiped:bibtex). You can \colmarginpar{New!}
-also use the field to specify a time stamp, should the date alone not
-be specific enough. The time stamp follows the date, separated by an
-uppercase \enquote{T}, like so: \texttt{yyyy-mm-dd\textbf{T}hh:mm:ss}.
-If you wish to specify the time zone, the \emph{Manual} (10.41)
-prefers initialisms like \enquote{EST} or \enquote{PDT,} and these are
-most easily provided using the \mycolor{\texttt{urltimezone}} field,
-where you can provide your own parentheses if so desired (cp.\
-14.191). Following the examples in the \emph{Manual}, any
-\textsf{urldate} will by default be printed in 24-hour format, though
-other time stamps use 12-hour format. The \textsf{biblatex} option
-\texttt{urltime}, discussed in section~\ref{sec:presetopts}, allows
-you to change this in your preamble.
+sirosh:visualcortex, wikiped:bibtex). You can also use the field to
+specify a time stamp, should the date alone not be specific enough.
+The time stamp follows the date, separated by an uppercase
+\enquote{T}, like so: \texttt{yyyy-mm-dd\textbf{T}hh:mm:ss}. If you
+wish to specify the time zone, the \emph{Manual} (10.41) prefers
+initialisms like \enquote{EST} or \enquote{PDT,} and these are most
+easily provided using the \texttt{urltimezone} field, where you can
+provide your own parentheses if so desired (cp.\ 14.191). Following
+the examples in the \emph{Manual}, any \textsf{urldate} will by
+default be printed in 24-hour format, though other time stamps use
+12-hour format. The \textsf{biblatex} option \texttt{urltime},
+discussed in section~\ref{sec:presetopts}, allows you to change this
+in your preamble.
\mylittlespace A \textsf{urldate} time stamp (and
-\mycolor{\texttt{urltimezone}}) can appear in any entry whatsoever, if
-you judge the online source to be the sort that changes rapidly enough
-for a time stamp to be necessary (14.207, 14.233; wikiped:bibtex).
-You can stop it printing by setting the new
-\colmarginpar{\texttt{urlstamp}} \mycolor{\texttt{urlstamp}} option to
-\texttt{false} in your preamble for the whole document or for
-specified entry types, or in the \textsf{options} field of individual
-entries. Please see the documentation of \textbf{date}, above, and
-also table~\ref{ad:date:extras}, below, for more details about time
-stamps and other parts of \textsf{biblatex's} enhanced date
-specifications. Table~\ref{tab:online:types} contains a summary of
-the current state of \textsf{biblatex-chicago's} handling of online
-materials.
-
-\mybigspace This \colmarginpar{\textbf{urltimezone}} field can, if
+\texttt{urltimezone}) can appear in any entry whatsoever, if you judge
+the online source to be the sort that changes rapidly enough for a
+time stamp to be necessary (14.207, 14.233; wikiped:bibtex). You can
+stop it printing by setting the new \mymarginpar{\texttt{urlstamp}}
+\texttt{urlstamp} option to \texttt{false} in your preamble for the
+whole document or for specified entry types, or in the
+\textsf{options} field of individual entries. Please see the
+documentation of \textbf{date}, above, and also
+table~\ref{ad:date:extras}, below, for more details about time stamps
+and other parts of \textsf{biblatex's} enhanced date specifications.
+Table~\ref{tab:online:types} contains a summary of the current state
+of \textsf{biblatex-chicago's} handling of online materials.
+
+\mybigspace This \mymarginpar{\textbf{urltimezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{urldate}. The \emph{Manual} prefers initialisms
like \enquote{EST} for this purpose, and you can provide parentheses
around it at your discretion (cp.\ 10.41 and 14.191).
-\mybigspace A \colmarginpar{\textbf{usera}} supplemental
+\mybigspace A \mymarginpar{\textbf{usera}} supplemental
\textsf{biblatex} field which in certain contexts in
\textsf{biblatex-chicago} will identify the broadcast network when you
cite a radio or television program. In \textsf{article},
@@ -4643,6 +4793,8 @@ entry in the bibliography to which the cross-reference will point.
(See 14.81--82; creasey:ashe:blast, creasey:morton:hide,
creasey:york:death, lecarre:quest.)
+\enlargethispage{2\baselineskip}
+
\mybigspace The \mymarginpar{\textbf{userd}} \textsf{userd} field acts
as a sort of \enquote{\textsf{datetype}} field, allowing you in most
entry types to identify whether a \textsf{urldate} is an access date
@@ -4659,12 +4811,12 @@ contain (14.12--13; wikiped:bibtex). In the absence of a
would have modified a \textsf{urldate}.
\mylittlespace Because of the rather specialized needs of some
-audio-visual references, this basic sche\-ma changes for
-\textsf{music} and \textsf{video} entries. In \textsf{music} entries
-where an \textsf{eventdate} is present, \textsf{userd} will modify
-that date instead of any \textsf{urldate} that may also be present,
-and it will modify an \textsf{origdate} if it is present and there is
-no \textsf{eventdate}. It will modify a \textsf{date} only in the
+audio-visual references, this basic schema changes for \textsf{music}
+and \textsf{video} entries. In \textsf{music} entries where an
+\textsf{eventdate} is present, \textsf{userd} will modify that date
+instead of any \textsf{urldate} that may also be present, and it will
+modify an \textsf{origdate} if it is present and there is no
+\textsf{eventdate}. It will modify a \textsf{date} only in the
absence of the other three. In \textsf{video} entries it will modify
an \textsf{eventdate} if it is present, and in its absence the
\textsf{urldate}. In the absence of those two, it can modify a
@@ -4696,27 +4848,25 @@ section~\ref{sec:related}, below.
\mybigspace Standard \colmarginpar{\textbf{venue}} \textsf{biblatex}
offers this field for use in \textsf{proceedings} and
-\textsf{inproceedings} entries, but I haven't yet implemented it
-there, mainly because the \emph{Manual} has nothing to say about it.
-Perhaps the \textsf{organization} field could be used, for the moment,
-instead. I have implemented the field in the \textbf{misc} entry
-type, both with and without an \textsf{entrysubtype}, in the new
-\mycolor{\textbf{performance}} type, and in the \textbf{unpublished}
-type. In all uses it will normally present the actual venue of an
-event, as opposed, e.g., to the \textsf{origlocation}, which might
-present where a letter was written or where an earlier edition was
-printed.
-
-\mybigspace Standard \colmarginpar{\textbf{version}} \textsf{biblatex}
+\textsf{inproceedings} entries, and after a request from Patrick
+Danilevici I have followed suit. I have also implemented the field in
+the \textsf{misc} entry type, both with and without an
+\textsf{entrysubtype}, in the \textsf{performance} type, and in the
+\textsf{unpublished} type. In all uses it will normally present the
+actual venue of an event, as opposed, e.g., to the
+\textsf{origlocation}, which might present where a letter was written
+or where an earlier edition was printed.
+
+\mybigspace Standard \mymarginpar{\textbf{version}} \textsf{biblatex}
field, formerly only available in \textsf{artwork}, \textsf{image},
-\textsf{misc}, \textsf{music}, and \textsf{pa\-tent} entries in
-\textsf{biblatex-chicago-notes}, but now also in \textbf{book} and
-\mycolor{\textbf{performance}} entries. In most entry types it prints
-a localized \enquote{\texttt{version}} string, but there may be
+\textsf{misc}, \textsf{music}, and \textsf{patent} entries in
+\textsf{biblatex-chicago-notes}, but now also in \textsf{book} and
+\textsf{performance} entries. In most entry types it prints a
+localized \enquote{\texttt{version}} string, but there may be
specialist needs in \textsf{artwork} and \textsf{image} entries, so
-there you'll need to specify the type of data inside the field
-itself. In the \textsf{book} type it is particularly needed for
-presenting multimedia app content (14.268).
+there you'll need to specify the type of data inside the field itself.
+In the \textsf{book} type it is particularly needed for presenting
+multimedia app content (14.268).
\mybigspace Standard \mymarginpar{\textbf{volume}} \textsf{biblatex}
field. It holds the volume of a \textsf{journaltitle} in
@@ -4754,7 +4904,7 @@ documentation in section~\ref{sec:formatcommands}.
field. It holds the total number of volumes of a multi-volume work
(meredith:letters). If both a \textsf{volume} and a \textsf{volumes}
field are present, as may occur particularly in cross-referenced
-entries or in entries using the new \mycolor{\texttt{maintitle}}
+entries or in entries using the \texttt{maintitle}
\textsf{relatedtype}, then \textsf{biblatex-chicago} will ordinarily
suppress the \textsf{volumes} field in your references, except in some
instances when a \textsf{maintitle} is present. If the
@@ -4762,7 +4912,7 @@ instances when a \textsf{maintitle} is present. If the
\texttt{hidevolumes}, \mymarginpar{\texttt{hidevolumes}} set to
\texttt{true} by default, controls whether to print the
\textsf{volumes} field after that title or not. If it appears after
-the \textsf{maintitle}, as with the new \textsf{relatedtype} just
+the \textsf{maintitle}, as with the \textsf{relatedtype} just
mentioned, the same option controls whether to print the
\textsf{volumes} field in close association with the \textsf{volume}.
Set the option to \texttt{false} either in the preamble or in the
@@ -4774,7 +4924,7 @@ section~\ref{sec:chicpreset}, below.
field provided by \textsf{biblatex}, which prevents inheritance of any
data from the parent entry. See \textbf{crossref}, above.
-\mybigspace Standard \colmarginpar{\textbf{year}} \textsf{biblatex}
+\mybigspace Standard \mymarginpar{\textbf{year}} \textsf{biblatex}
field. It usually identifies the year of publication, though unlike
the \textsf{date} field it allows non-numeric input, so you can put
\enquote{n.d.}\ (or, to be language agnostic,
@@ -4789,7 +4939,7 @@ bedford:photo, clark:mesopot, leo:madonna, ross:thesis.
\subsubsection{Fields for Related Entries}
\label{sec:related}
-As \textsf{biblatex.pdf} puts it (§~3.4), \enquote{Almost all
+As \textsf{biblatex.pdf} puts it (\S~3.4), \enquote{Almost all
bibliography styles require authors to specify certain types of
relationship between entries such as \enquote{Reprint of},
\enquote{Reprinted in,} etc. It is impossible to provide data fields
@@ -4893,7 +5043,7 @@ though the \textsf{relatedtype} \texttt{origpubin} presents much the
same information \emph{after} the entry, using data extracted from a
separate entry.
-\mybigspace In \colmarginpar{\textbf{pubstate}} response to new
+\mybigspace In \mymarginpar{\textbf{pubstate}} response to new
specifications in the 17th edition of the \emph{Manual} (esp.\
14.137), I have tried to generalize the functioning of the
\textsf{pubstate} field in all entry types. The \texttt{reprint}
@@ -4909,16 +5059,15 @@ bibstrings indicating works soon to be published, i.e.,
\texttt{submitted}; and those, i.e., everything else, which will be
printed before, and in close association with, other information about
the publisher of a work. The four in the first category will always
-be localized, as will \texttt{reprint} and
-\mycolor{\texttt{selfpublished}} (and anything else that
-\textsf{biblatex} finds to be a \cmd{bibstring}) from the second
-category. All other strings will be printed as-is, capitalized if
-needed, just before the publisher (author:forthcoming,
+be localized, as will \texttt{reprint} and \texttt{selfpublished} (and
+anything else that \textsf{biblatex} finds to be a \cmd{bibstring})
+from the second category. All other strings will be printed as-is,
+capitalized if needed, just before the publisher (author:forthcoming,
contrib:contrib, schweitzer:bach). \textbf{NB:} The \textsf{pubstate}
functionality currently has no equivalent using the \textsf{related}
field.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mybigspace This \mymarginpar{\textbf{related}} field is required to
use \textsf{biblatex's} \textsf{related} functionality, and it should
@@ -4944,8 +5093,8 @@ for specific entry types) or in the \textsf{options} field of the
relevant entry, to \texttt{notes}, \texttt{true}, or \texttt{false},
respectively (coolidge:speech and weed:flatiron). For the three
\textsf{relatedtypes} that construct a single entry using data
-extracted from related entries --- \mycolor{\texttt{commenton}},
-\mycolor{\textsf{maintitle}}, and \texttt{reviewof} ---
+extracted from related entries --- \texttt{commenton},
+\texttt{maintitle}, and \texttt{reviewof} ---
\textsf{biblatex-chicago} will automatically set it to \texttt{true}
for you entry by entry, as this is required to get properly-formatted
citations in notes and bibliography. See below for the details.
@@ -4960,7 +5109,7 @@ appearing separately in the bibliography. If you use the field
yourself, then you'll need to include \texttt{dataonly} as one of the
options therein to maintain this effect. Of course, it may be you
don't want all the effects of \texttt{dataonly}, so you can tailor it
-however you wish. See \textsf{biblatex.pdf} §~3.4.
+however you wish. See \textsf{biblatex.pdf} \S~3.4.
\mybigspace The \mymarginpar{\textbf{relatedstring}} procedure for
choosing a string to connect the main entry with its related entry/ies
@@ -4983,7 +5132,7 @@ string, which works better syntactically in this context.
\textsf{biblatex} styles define six \textsf{relatedtypes}, and I have
either simply adopted them wholesale or adapted them to the needs of
the Chicago style, retaining the basic syntax as much as possible. I
-have also added three to these six (see below). First, the standard
+have also added four to these six (see below). First, the standard
types:
\begin{description}
@@ -5028,15 +5177,15 @@ types:
\textsf{biblatex-chicago} it contains some kludges to cope with
possible \textsf{babel} language environments, so if you find it
behaving oddly please let me know, including whether you are using
- \textsf{babel} [which I've tested] or \textsf{polyglossia} [which I
- haven't].)
+ \textsf{babel} [which I've tested] or \textsf{polyglossia} [which
+ I've tested somewhat less].)
\end{description}
Now, the Chicago-specific types:
\begin{description}
-\item[\qquad \mycolor{commenton:}] I designed this new
- \textsf{relatedtype} to facilitate citation of online comments,
- though it works slightly differently in the two entry types in which
- it is available, \textsf{online} and \textsf{review} (with its clone
+\item[\qquad commenton:] I designed this \textsf{relatedtype} to
+ facilitate citation of online comments, though it works slightly
+ differently in the two entry types in which it is available,
+ \textsf{online} and \textsf{review} (with its clone
\textsf{suppperiodical}) (14.208--10). In both types it allows you
to mimic thread structure by citing a chain of replies to comments
on posts, etc., all in a single entry, while also simplifying your\
@@ -5111,27 +5260,26 @@ Now, the Chicago-specific types:
\textsf{suppperiodical}, though you can of course override these
defaults by setting the \texttt{shortextra} options yourself. See
their documentation in section~\ref{sec:useropts}, below.
-\item[\qquad \mycolor{maintitle:}] The 17th edition of the
- \emph{Manual} has deployed, in at least two contexts, a notable
- syntactic change in the presentation of works that form part of
- other, larger works. Generally, the order of presentation, in
- \textsf{biblatex} terms, has always been \textsf{title} --
- \textsf{booktitle} -- \textsf{maintitle}, in increasing order of
- generality. In the vast majority of cases this order still holds,
- but in TV episodes, for one example, the recommendation now is to
- present the name of the series (\textsf{booktitle}) \emph{before}
- the name of the episode (\textsf{title}). (See the \textbf{video}
- type in section~\ref{sec:entrytypes}, above). The other context in
- which this reversal occurs is multi-volume works (14.116--22).
- Here, the preferred format, at least for notes, appears to be
+\item[\qquad maintitle:] The 17th edition of the \emph{Manual} has
+ deployed, in at least two contexts, a notable syntactic change in
+ the presentation of works that form part of other, larger works.
+ Generally, the order of presentation, in \textsf{biblatex} terms,
+ has always been \textsf{title} -- \textsf{booktitle} --
+ \textsf{maintitle}, in increasing order of generality. In the vast
+ majority of cases this order still holds, but in TV episodes, for
+ one example, the recommendation now is to present the name of the
+ series (\textsf{booktitle}) \emph{before} the name of the episode
+ (\textsf{title}). (See the \textbf{video} type in
+ section~\ref{sec:entrytypes}, above). The other context in which
+ this reversal occurs is multi-volume works (14.116--22). Here, the
+ preferred format, at least for notes, appears to be
\textsf{maintitle} -- \textsf{[book]title} or, when all three titles
are present, \textsf{title} -- \textsf{maintitle} --
\textsf{booktitle}. The \emph{Manual} doesn't carry this reordering
through with absolute consistency, but I think it important at least
to offer it as a possibility to users of \textsf{biblatex-chicago},
- hence the new \mycolor{\texttt{maintitle}} \textsf{relatedtype},
- which is currently the only way to achieve this reversal in this
- context.
+ hence the \texttt{maintitle} \textsf{relatedtype}, which is
+ currently the only way to achieve this reversal in this context.
In its simplest usage, to document one volume of a multi-volume set,
you would have, e.g., an \textsf{mvcollection} entry with
@@ -5250,14 +5398,14 @@ Now, the Chicago-specific types:
place, you do need to cite (or \cmd{nocite}) the original
\textsf{mv*} entry somewhere in your document.
- As an example of how this might look, consider the
- three entries from \textsf{notes-test.bib}: harleymt:hoc,
- harleymt:ancient:cart, and harleymt:cartography. The first, an
- \textsf{mvcollection} entry, has a \textsf{related} field containing
- both of the others (\textsf{collec\-tion} entries), and in
- \textsf{cms-notes-sample.tex} you'll see citations of harleymt:hoc,
+ As an example of how this might look, consider the three entries
+ from \textsf{notes-test.bib}: harleymt:hoc, harleymt:ancient:cart,
+ and harleymt:cartography. The first, an \textsf{mvcollection}
+ entry, has a \textsf{related} field containing both of the others
+ (\textsf{collection} entries), and in \textsf{cms-notes-sample.tex}
+ you'll see citations of harleymt:hoc,
harleymt:hoc-harleymt:ancient:cart, and
- harleymt:hoc-harleymt:cartography,\break which are themselves
+ harleymt:hoc-harleymt:cartography, which are themselves
\textsf{mvcollection} entries. The latter two don't exist in the\
.bib file, only in the\ .bbl file, where you'd see that each has a
\textsf{related} field pointing to the entrykey that forms the
@@ -5273,9 +5421,9 @@ Now, the Chicago-specific types:
understandably, confused. As a convenience feature for this
situation, I have included a very slightly modified version of the
\texttt{maintitle} \textsf{relatedtype}, called
- \colmarginpar{\texttt{maintitlenc}} \mycolor{\texttt{maintitlenc}},
- the \enquote{nc} standing for \cmd{nocite}. As you might have
- guessed, every clone produced by an \textsf{mv*} entry with multiple
+ \mymarginpar{\texttt{maintitlenc}} \texttt{maintitlenc}, the
+ \enquote{nc} standing for \cmd{nocite}. As you might have guessed,
+ every clone produced by an \textsf{mv*} entry with multiple
entrykeys in its \textsf{related} field and \texttt{maintitlenc} as
its \textsf{relatedtype} will automatically be \cmd{nocite}'d, and
will then be available for inclusion in another entry's
@@ -5340,15 +5488,14 @@ Now, the Chicago-specific types:
includes this type, and user Bertold Schweitzer suggested it might
be a useful addition to \textsf{biblatex-chicago}, so I've added it
to the standard six detailed above. It differs from all of them,
- and resembles \mycolor{\texttt{commenton}} and
- \mycolor{\texttt{maintitle}}, in that it prints the
- \textsf{relatedstring} (by default \verb+\bibstring{reviewof}+) and
- the data from the \textsf{related} entry in the middle of the parent
- entry, rather than at the end. It differs from
- \mycolor{\texttt{commenton}} in that it's not possible to create a
- chain of such entries to mimic online thread structures. Finally,
- it differs from all other \textsf{relatedtypes} in being available
- only in \textsf{article} and \textsf{review} entries (along with the
+ and resembles \texttt{commenton} and \texttt{maintitle}, in that it
+ prints the \textsf{relatedstring} (\verb+\bibstring{reviewof}+ by
+ default) and the data from the \textsf{related} entry in the middle
+ of the parent entry, rather than at the end. It differs from
+ \texttt{commenton} in that it's not possible to create a chain of
+ such entries to mimic online thread structures. Finally, it differs
+ from all other \textsf{relatedtypes} in being available only in
+ \textsf{article} and \textsf{review} entries (along with the
latter's clone, \textsf{suppperiodical}).
In \textsf{article} entries it replaces the \textsf{titleaddon} with
@@ -5376,6 +5523,12 @@ Now, the Chicago-specific types:
Please remember, too, that the standard way of presenting reviewed
works is still available if the mechanism doesn't work for you in a
particular context.
+\item[\qquad \mycolor{short:}] This \textsf{relatedtype} is like the
+ \texttt{default} type, only it prints \emph{short} references rather
+ than long ones. There is no default \textsf{relatedstring} for this
+ type, so if you leave that field blank then the short references
+ will simply appear at the end of the long note or bibliography
+ entry.
\end{description}
\mybigspace \textbf{NB:} \mymarginpar{\textbf{reprinttitle}}
@@ -5525,7 +5678,7 @@ the complete list of fields where this functionality is active:
\end{enumerate}
In any other cases --- and there are only two examples of this in
-\textsf{notes-test.bib} (centinel:letters, powell:email) --- you'll
+\textsf{notes-test.bib} (centinel\hc letters, powell:email) --- you'll
need to provide the \cmd{autocap} command yourself. Indeed, if you
accidentally do so in one of the above fields, it shouldn't matter at
all, and you'll still get what you want, but taking advantage of the
@@ -5563,14 +5716,14 @@ followed by the \emph{short} citation or citations, i.e., usually
\textsf{title} only, enclosed within parentheses. You can change the
way the citation part is presented by using \cmd{renewcommand} in your
preamble. The default definitions are: \texttt{\{\textbackslash
- addspace\textbackslash headlessparenshortcite\}} and
+ addspace\textbackslash headlessparenshortcite\}} \&
\texttt{\{\textbackslash addspace\textbackslash
headlessparenshortcites\}}. If you wanted to return to the default
-behavior of previous releases of \textsf{biblatex-chicago}, for
-example, you could change the first to: \texttt{\{\textbackslash
- newcunit\textbackslash bibstring\{in\}\textbackslash
- addspace\break\textbackslash headlesscite\}}, and the second similarly,
-only using \cmd{headlesscites}. (There is also, by the way, a
+behavior of previous releases of \textsf{biblatex-chicago} you could
+change the first to: \texttt{\{\textbackslash newcunit\textbackslash
+ bibstring\{in\}\textbackslash addspace\textbackslash
+ headlesscite\}}, and the second similarly, only using
+\cmd{headlesscites}. (There is also, by the way, a
\cmd{headlessparencite(s)} command if you want to retain the long
citations inside the parentheses.)
@@ -5727,7 +5880,7 @@ compiler.
whose name doesn't conveniently fit into the usual fields
(\textsf{translator} and \textsf{nameb}).
-\mylittlespace Unlike \colmarginpar{\textbf{\textbackslash
+\mylittlespace Unlike \mymarginpar{\textbf{\textbackslash
suppress-\\bibfield[]\{\}}} the other commands presented here,
this should be used in your document preamble rather than in your
bibliographical apparatus. Also unlike them, it has two arguments,
@@ -5737,14 +5890,14 @@ provided by \textsf{biblatex-chicago} (see
section~\ref{sec:chicpreset}), I might also provide a general-purpose
macro to clear fields from selected entry types when the package
options aren't quite right for a user's particular needs. The
-\mycolor{\cmd{suppressbibfield}} command does this, so that
+\cmd{suppressbibfield} command does this, so that
\verb+\suppressbibfield{note}+ clears the \textsf{note} field from
\emph{all} entries, while \verb+\suppressbibfield[report]{note}+
clears it only from \textsf{report} entries. Both arguments take
comma-separated lists, so to suppress \textsf{titleaddon} and
\textsf{volumes} fields from \textsf{report} and \textsf{manual}
entries, your preamble could contain
-\verb+\suppressbibfield[report,manual]{titleaddon,volumes}+.
+\verb+\suppressbib-field[report,manual]{titleaddon,volumes}+.
\mylittlespace A few usage notes are in order. First, you can use as
many calls to the command in your preamble as you wish. Second, the
@@ -5767,8 +5920,8 @@ be affected by a command that alters \textsf{report} entries, and a
\textsf{year}. Fifth, the code for the command resides in
\textsf{biblatex-chicago.sty}, so if you load the styles without
loading that package it won't be available to you. Sixth and finally,
-the \mycolor{\cmd{suppressbibfield}} command is new and relatively
-untested, so please report any untoward behavior to me.
+the \cmd{suppressbibfield} command is new and relatively untested, so
+please report any untoward behavior to me.
\subsubsection{Citation Commands}
\label{sec:citecommands}
@@ -5806,7 +5959,7 @@ that \textsf{biblatex-chicago-notes} sets this command to use
the most common citation command you will use, and also works fine in
its multicite form, \textbf{\textbackslash autocites}.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mybigspace While \mymarginpar{\textbf{\textbackslash cite*}} the
\cmd{cite} command works just as you would expect it to, I have also
@@ -5829,6 +5982,37 @@ sometimes suffices in the absence of a \textsf{title}, e.g., Thuc.\
command manually. (Cf.\ also \textsf{entrysubtype} in
section~\ref{sec:entryfields}, above.)
+\mybigspace Although \colmarginpar{\textbf{\textbackslash citeincite}}
+the officially-sanctioned, and safest, way to present cross-references
+to other works is by using the \textsf{related} mechanism, it would
+appear, judging from various bug reports I've received, that there are
+plenty of users who need to present such references in ways that
+aren't supported by the \textsf{related} code as it stands. This new
+citation command is designed to allow you to present short references
+to other works inside other references, and to avoid some, I hope
+most, of the bugs associated with using cite commands in the fields of
+other entries. If you want to present long citations, I'm assuming
+that you wouldn't want to do that in fields right in the middle of the
+parent entry, and that, therefore, the usual methods detailed in
+section~\ref{sec:related} (above) or the new
+\mycolor{\cmd{fullciteincite}} command (below) will serve your
+needs. Similarly, if you want to provide short citations at the end of
+your parent entry, the new \textsf{relatedtype}
+\mycolor{\texttt{short}} should work.
+
+\mylittlespace If, however, you must have a short reference in the
+midst of another field, then \mycolor{\cmd{citeincite}} can help. It
+is certified to work properly only in the \textsf{addendum,
+ annotation, annote, note, and titleaddon} fields, which I hope is a
+broad enough choice to cover most needs. The multicite command
+\mycolor{\cmd{citeincites}} is also available. In previous releases of
+\textsf{biblatex} there were differences in how the case-changing
+backends behaved with respect to citation commands inside entry
+fields, but in my testing the two backends appear currently to be
+equivalent on this score. Still, should you run into problems using
+\cmd{citeincite}, it might still be worth setting
+\texttt{casechanger=latex2e} in your preamble to see if that helps.
+
\mybigspace This \mymarginpar{\textbf{\textbackslash citejournal}}
command provides an alternative short form when citing journal
\textsf{articles}, giving the \textsf{journaltitle} and
@@ -5873,8 +6057,22 @@ is a standard command, and it too provides a full citation, but unlike
the previous command it doesn't automatically place it in a footnote.
It may be useful within long textual notes.
+\mybigspace Ordinarily, \colmarginpar{\textbf{\textbackslash
+ fullciteincite}} you can use one of the methods discussed in
+section~\ref{sec:related} to present, in notes or bibliography, full
+references to a work related in some way to the current entry. The new
+command \mycolor{\cmd{citeincite}} (above) allows you to present short
+citations to other works within selected fields of the parent entry,
+while attempting to minimize the problems caused by citations within
+other citations. The \mycolor{\cmd{fullciteincite}} command does the
+same for full citations, but really is designed to work only in
+\textsf{annotation} fields, the idea being that you might want to
+refer in an annotated bibliography to works that you haven't cited in
+the main body of your text. The multicite command
+\mycolor{\cmd{fullciteincites}} is also available.
+
\mybigspace Arne \mymarginpar{\textbf{\textbackslash gentextcite}}
-Skjærholt requested, for the author-date styles, a variant of the
+Skj{\ae}rholt requested, for the author-date styles, a variant of the
\cmd{textcite} command that presented the author's name in the
genitive case in running text, thereby simplifying certain syntactic
constructions. As a convenience for users, I've also ported this to
@@ -5891,7 +6089,7 @@ will, as with other citation commands, be interpreted as a
\textsf{postnote}, and with two a \textsf{prenote} and a
\textsf{postnote}. There is a \cmd{gentextcites} command as well, and
for it you may need to specify
-\cmd{gentextcites[<ending>]()()[][]\\\{entry:key1\}\{entry:key2\}},
+\cmd{gentextcites[<ending>]()()[][]\hfill\{entry:key1\}\{entry:key2\}},
though if you don't have a \textsf{pre-} or \textsf{postnote} to the
first citation you can make do with
\cmd{gentextcites[<ending>]()\{entry:key1\}\{entry:key2\}}.
@@ -5910,7 +6108,7 @@ set to \texttt{true} will attach the ending to each key's name(s).
\mybigspace Matthew \mymarginpar{\textbf{\textbackslash
headlesscite}\\\textbf{\textbackslash
- headlesscites}\\\mycolor{\textbf{\textbackslash Headlesscite}}}
+ headlesscites}\\\textbf{\textbackslash Headlesscite}}
Lundin requested a more generalized \cmd{headlesscite} macro,
suppressing the author's name in specific contexts while allowing
users not to worry about whether a particular citation needs the long
@@ -5927,21 +6125,21 @@ most flexible form of the command, you'll have to wrap it in a
discussion of some of the needs this command might help address.
\mybigspace I \mymarginpar{\textbf{\textbackslash
- headless-\\fullcite}\\\mycolor{\textbf{\textbackslash
- headless-\\fullcites}}} have provided these commands in case you
+ headless-\\fullcite}\\\textbf{\textbackslash
+ headless-\\fullcites}} have provided these commands in case you
want to print a full citation without the author's name. The
\emph{Manual} (14.78, 14.104) suggests this for brevity's sake in
cases where that name is already obvious enough from the title, and
where repetition might seem awkward (creel:house, feydeau:farces,
meredith:letters, and sewall:letter). \textsf{Letter} entries and
-\mycolor{\textsf{standard}} entries (where the \textsf{author} is
-usually the publishing \textsf{organization}) --- and only these
-entries --- do this for you automatically, and of course the
-repetition is tolerated in bibliographies for the sake of
-alphabetization, but in notes for other entry types this command may
-help achieve greater elegance, even if it isn't strictly necessary.
-As I've provided only the most flexible form of the command, you'll
-have to wrap it in a \cmd{footnote} yourself.
+\textsf{standard} entries (where the \textsf{author} is usually the
+publishing \textsf{organization}) --- and only these entries --- do
+this for you automatically, and of course the repetition is tolerated
+in bibliographies for the sake of alphabetization, but in notes for
+other entry types this command may help achieve greater elegance, even
+if it isn't strictly necessary. As I've provided only the most
+flexible form of the command, you'll have to wrap it in a
+\cmd{footnote} yourself.
\mybigspace I \mymarginpar{\textbf{\textbackslash shortcite}} have
provided this command in case, for any reason, you specifically
@@ -5950,12 +6148,11 @@ want something else. Again, I've provided only the most flexible form
of the command, so you'll have to wrap it in a \cmd{footnote}
manually.
-\mybigspace The \colmarginpar{\textbf{\textbackslash shortcite*}}
+\mybigspace The \mymarginpar{\textbf{\textbackslash shortcite*}}
starred version of the command turns off page and citation tracking
-for a short note, designed particularly to prevent a
-\mycolor{\texttt{noteref}} back reference from appearing, should you
-and the code have a disagreement over just when such back references
-might be necessary.
+for a short note, designed particularly to prevent a \texttt{noteref}
+back reference from appearing, should you and the code have a
+disagreement over just when such back references might be necessary.
\mybigspace At \mymarginpar{\textbf{\textbackslash shorthandcite}}
the request of Kenneth Pearce, I have included this command which
@@ -5964,29 +6161,28 @@ given work. Again, I've only provided the most flexible form of the
command, so you'll need to place it inside parentheses or wrap it in a
\cmd{footnote} manually.
-\mybigspace The \colmarginpar{\textbf{\textbackslash shorthandcite*}}
+\mybigspace The \mymarginpar{\textbf{\textbackslash shorthandcite*}}
starred version of the command turns off page and citation tracking
for a \textsf{shorthand} note, designed particularly to prevent a
-\mycolor{\texttt{noteref}} back reference from appearing, should you
-and the code have a disagreement over just when such back references
-might be necessary.
+\texttt{noteref} back reference from appearing, should you and the
+code have a disagreement over just when such back references might be
+necessary.
-\mybigspace This \colmarginpar{\textbf{\textbackslash
+\mybigspace This \mymarginpar{\textbf{\textbackslash
shorthand-\\refcite}} command, like the next, forces the printing
of a back reference when you are using the new package option
-\mycolor{\texttt{noteref}}, only it prints a \textsf{shorthand} note
-rather than a short note. It's the opposite of
-\mycolor{\cmd{shorthandcite*}}.
-
-\mybigspace The \colmarginpar{\textbf{\textbackslash shortrefcite}}
-new package option \mycolor{\texttt{noteref}} provides for the
-printing of back references from short notes to their corresponding
-long notes. \textsf{Biblatex-chicago} provides several options to
-help you control when such back references should appear, but as there
-may well be occasions when you and the code disagree, this command
-forces the printing of a short note with a back reference. It's the
-opposite, then, of \mycolor{\cmd{shortcite*}}, which prevents such a back
-reference from appearing.
+\texttt{noteref}, only it prints a \textsf{shorthand} note rather than
+a short note. It's the opposite of \cmd{shorthandcite*}.
+
+\mybigspace The \mymarginpar{\textbf{\textbackslash shortrefcite}} new
+package option \texttt{noteref} provides for the printing of back
+references from short notes to their corresponding long notes.
+\textsf{Biblatex-chicago} provides several options to help you control
+when such back references should appear, but as there may well be
+occasions when you and the code disagree, this command forces the
+printing of a short note with a back reference. It's the opposite,
+then, of \cmd{shortcite*}, which prevents such a back reference from
+appearing.
\mybigspace This \mymarginpar{\textbf{\textbackslash surnamecite}}
command is analogous to \cmd{headlesscite}, but whereas the latter
@@ -6044,8 +6240,8 @@ tell you which \textsf{biblatex} options the package sets for you, I
thought I might gather them here also for your perusal. These
settings are, I believe, consistent with the specification, but you
can alter them in the options to \textsf{biblatex-chicago} in your
-preamble or by loading the package via
-\verb+\usepackage[style=chicago-notes]{biblatex}+, which gives you the
+preamble or by loading the package via \verb+\usepackage+
+\verb+[style=chicago-notes]{biblatex}+, which gives you the
\textsf{biblatex} defaults unless you redefine them yourself inside
the square brackets.
@@ -6065,32 +6261,31 @@ for the \cmd{ifciteseen} test is enabled globally.
for the long format when presenting dates, slightly shortened when
presenting date ranges.
-\mylittlespace In \colmarginpar{\texttt{alltimes=12h}} entries which
+\mylittlespace In \mymarginpar{\texttt{alltimes=12h}} entries which
print time stamps, they will, when the stamp is part of a
\textsf{date}, \textsf{eventdate}, or \textsf{origdate}, appear in
12-hour format, i.e., \enquote{4:45 p.m.} Stamps that are part of a
-\textsf{urldate} are, by default, controlled by the
-\mycolor{\texttt{urltime}} option, which is set to
-\mycolor{\texttt{24h}}. See that option below, and
+\textsf{urldate} are, by default, controlled by the \texttt{urltime}
+option, which is set to \texttt{24h}. See that option below, and
table~\ref{ad:date:extras}.
\mylittlespace The \mymarginpar{\texttt{dateabbrev=\\false}}
\emph{Manual} prefers to use full month names in the notes \&\
bibliography style.
-\mylittlespace This \colmarginpar{\texttt{datecirca=true}} option
-enables \textsf{biblatex's} enhanced \enquote{circa} date
-specification, which given a \textsf{date} like \verb+1989~+ will
-print [ca.\ 1989]. Cf.\ table~\ref{ad:date:extras}.
+\mybigspace This \mymarginpar{\texttt{datecirca=true}} option enables
+\textsf{biblatex's} enhanced \enquote{circa} date specification, which
+given a \textsf{date} like \verb+1989~+ will print [ca.\ 1989]. Cf.\
+table~\ref{ad:date:extras}.
-\mylittlespace This \colmarginpar{\texttt{dateuncertain=\\true}}
-option enables \textsf{biblatex's} enhanced \enquote{uncertain} date
+\mylittlespace This \mymarginpar{\texttt{dateuncertain=\\true}} option
+enables \textsf{biblatex's} enhanced \enquote{uncertain} date
specification, which given a \textsf{date} like \verb+1989?+ will
print [1989?]. A field like \verb+1989%+ is both \enquote{circa}
\emph{and} \enquote{uncertain,} like so: [ca.\ 1989?]. Cf.\
table~\ref{ad:date:extras}.
-\mylittlespace This \colmarginpar{\texttt{datezeros=false}} ensures
+\mylittlespace This \mymarginpar{\texttt{datezeros=false}} ensures
that leading zeros don't appear in date specifications.
\mybigspace This \mymarginpar{\texttt{ibidtracker=\\constrict}}
@@ -6101,7 +6296,7 @@ informative reference. Remember also that you can use the \cmd{cite*}
command to disable this functionality in any given reference, or
indeed one of the \texttt{fullcite} commands if you need the long note
form for any reason. Please see section~\ref{sec:useropts} for
-options (\texttt{noibid} and \mycolor{\texttt{useibid}}) managing how
+options (\texttt{noibid} and \texttt{useibid}) managing how
\textsf{biblatex-chicago} presents ibidem references, as the defaults
have changed in the 17th edition (14.34).
@@ -6113,19 +6308,19 @@ with the string \enquote{Idem} when a work by the same author follows
a different work by that author, two consecutive references to the
same work by the same author generating, of course, \enquote{Ibid.}
Indeed, if you are going to use the \texttt{idemtracker}, you should
-also set the package option \mycolor{\texttt{useibid}} to
-\texttt{true}, so that you don't get a mix of \enquote{Idem} and the
-new 17th-edition ibidem behavior which doesn't print \enquote{Ibid.}
-You can turn this all on when loading \textsf{biblatex-chicago} by
-setting \texttt{idemtracker=constrict,useibid=true}. It works very
-much like the standard \textsf{biblatex} styles which include this
-option, so that you never get \enquote{Idem} in long notes, but only
-in short ones, and (ideally) never when the repeated name might be
-somewhat ambiguous. Also, if you wish the localized string to be
-appropriately gendered, you need to employ the \textsf{biblatex} field
-\textsf{gender}, on which see \textsf{biblatex.pdf} §~2.3.3.
-
-\mylittlespace This \colmarginpar{\texttt{labeltitle=\\true}} option
+also set the package option \texttt{useibid} to \texttt{true}, so that
+you don't get a mix of \enquote{Idem} and the new 17th-edition ibidem
+behavior which doesn't print \enquote{Ibid.} You can turn this all on
+when loading \textsf{biblatex-chicago} by setting
+\texttt{idemtracker=constrict,useibid=true}. It works very much like
+the standard \textsf{biblatex} styles which include this option, so
+that you never get \enquote{Idem} in long notes, but only in short
+ones, and (ideally) never when the repeated name might be somewhat
+ambiguous. Also, if you wish the localized string to be appropriately
+gendered, you need to employ the \textsf{biblatex} field
+\textsf{gender}, on which see \textsf{biblatex.pdf} \S~2.3.3.
+
+\mylittlespace This \mymarginpar{\texttt{labeltitle=\\true}} option
enables \textsf{biblatex-chicago-notes} to disambiguate shortened
citations to different sources which might otherwise be confusingly
identical. Though I've set it in \textsf{biblatex-chicago.sty},
@@ -6163,12 +6358,12 @@ enables the use of \textsf{related} functionality in the bibliography
only, not in long notes. You can set it either in the preamble or in
individual entries to enable the functionality in long notes only
(\texttt{notes}), in both notes and bibliography (\texttt{true}), or
-in neither (\texttt{false}). When you use the
-\mycolor{\texttt{commenton}}, \mycolor{\texttt{maintitle}}, or
-\texttt{reviewof} \textsf{relatedtypes}, \textsf{biblatex-chicago}
-automatically sets this option to \texttt{true} on an entry-by-entry
-basis, as these \textsf{relatedtypes} require this for proper
-functioning. Cf.\ coolidge:speech, weed:flatiron.
+in neither (\texttt{false}). When you use the \texttt{commenton},
+\texttt{maintitle}, or \texttt{reviewof} \textsf{relatedtypes},
+\textsf{biblatex-chicago} automatically sets this option to
+\texttt{true} on an entry-by-entry basis, as these
+\textsf{relatedtypes} require this for proper functioning. Cf.\
+coolidge:speech, weed:flatiron.
\mylittlespace This \mymarginpar{\texttt{sortcase=\\false}} turns off
the sorting of uppercase and lowercase letters separately, a practice
@@ -6182,29 +6377,29 @@ other backend, it reverts to the \textsf{biblatex} default
(\texttt{nty}). Please see the discussion of
\cmd{DeclareSortingTemplate} just below.
-\mylittlespace If \colmarginpar{\texttt{timezones=true}} you provide a
+\mylittlespace If \mymarginpar{\texttt{timezones=true}} you provide a
timezone for a time stamp, usually using one of the \textsf{timezone}
fields, this option ensures it will be printed.
-\mylittlespace In \colmarginpar{\texttt{urltime=24h}} entries with
+\mylittlespace In \mymarginpar{\texttt{urltime=24h}} entries with
\textsf{urldate} fields containing time stamps, that stamp will by
default appear in 24-hour format, i.e., \enquote{16:45.} Cf.\
-\mycolor{\texttt{alltimes}}, above, \mycolor{\texttt{urlstamp}} in
+\texttt{alltimes}, above, \texttt{urlstamp} in
section~\ref{sec:chicpreset} below, and table~\ref{ad:date:extras}.
\mylittlespace In
-\colmarginpar{\texttt{[standard]\\useeditor=false\\usenamec=false}}
-\mycolor{\textsf{standard}} entries any editors' or compilers' names
-appear after the title, according to 14.259, so these
-entry-type-specific options encode this. You can, of course, override
-these defaults in your preamble, should you deem it necessary.
+\mymarginpar{\texttt{[standard]\\useeditor=false\\usenamec=false}}
+\textsf{standard} entries any editors' or compilers' names appear
+after the title, according to 14.259, so these entry-type-specific
+options encode this. You can, of course, override these defaults in
+your preamble, should you deem it necessary.
\mylittlespace This \mymarginpar{\texttt{usetranslator\\=true}}
enables automatic use of the \textsf{translator} at the head of
entries in the absence of an \textsf{author} or an \textsf{editor}.
In the bibliography, the entry will be alphabetized by the
translator's surname. You can disable this functionality on a
-per-entry basis by setting \texttt{use\-translator=false} in the
+per-entry basis by setting \texttt{usetranslator=false} in the
\textsf{options} field. Cf.\ silver:gawain.
\subsubsection*{Other \textsf{biblatex} Formatting Options}
@@ -6234,30 +6429,31 @@ which see below.
three dashes separated by gaps. He suggested an alternative, which
I've adopted, with a minor tweak to make the dash thicker, though you
can toy with all the parameters to find what looks right with your
-chosen font. The default definition is:\\
-\verb+\renewcommand*{bibnamedash}{\rule[.4ex]{3em}{.6pt}}+.
+chosen font. The default definition is:
+
+\mylittlespace\verb+\renewcommand*{bibnamedash}{\rule[.4ex]{3em}{.6pt}}+.
\mylittlespace At \mymarginpar{\texttt{losnotes}
\&\\\texttt{losendnotes}} the request of Kenneth Pearce, I have
-added two \texttt{bibenvironments} to \textsf{chicago-notes\break .bbx}, for
-use with the \texttt{env} option to the \cmd{printshorthands} command.
-The first, \texttt{losnotes}, is designed to allow a list of
-shorthands to appear inside footnotes, while \texttt{losendnotes} does
-the same for endnotes. Their main effect is to change the font size,
-and in the latter case to clear up some spurious punctuation and white
-space that I see on my system when using endnotes. (You'll probably
-also want to use the option \texttt{heading=none} in order to get rid
-of the [oversized] default, providing your own within the
-\cmd{footnote} command.) If you use a command like
-\verb+\printbiblist{shortjournal}+ to print a list of journal
-abbreviations, you can use the \texttt{sjnotes} and
+added two \texttt{bibenvironments} to \textsf{chicago-notes\break
+ .bbx}, for use with the \texttt{env} option to the
+\cmd{printshorthands} command. The first, \texttt{losnotes}, is
+designed to allow a list of shorthands to appear inside footnotes,
+while \texttt{losendnotes} does the same for endnotes. Their main
+effect is to change the font size, and in the latter case to clear up
+some spurious punctuation and white space that I see on my system when
+using endnotes. (You'll probably also want to use the option
+\texttt{heading=none} in order to get rid of the [oversized] default,
+providing your own within the \cmd{footnote} command.) If you use a
+command like \verb+\printbiblist{shortjournal}+ to print a list of
+journal abbreviations, you can use the \texttt{sjnotes} and
\texttt{sjendnotes} \texttt{bibenvironments} in exactly the same way.
Please see the documentation of \textsf{shorthand} and
\textsf{shortjournal} in section~\ref{sec:entryfields} above for
further options available to you for presenting and formatting these
two types of \texttt{biblist}.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace Formerly
\mymarginpar{\cmd{Declare-}\\\texttt{Labelname}} available only to
@@ -6290,12 +6486,12 @@ Code in \textsf{biblatex-chicago.sty} loads the custom scheme
\texttt{nty}. (You can find its definition in
\textsf{chicago-notes.cbx}.) The advantages of this scheme are,
specifically, that any entry headed by one of the supplemental name
-fields (\textsf{name[a-c]}), a \textsf{manual} or a
-\mycolor{\textsf{standard}} entry headed by an \textsf{organization},
-or an \textsf{article} or \textsf{review} entry headed by a
-\textsf{journaltitle} won't need a \textsf{sortkey} set. Further, the
-\texttt{use<name>=false} options will remove any name field from the
-sorting order, again reducing the need for user intervention.
+fields (\textsf{name[a-c]}), a \textsf{manual} or a \textsf{standard}
+entry headed by an \textsf{organization}, or an \textsf{article} or
+\textsf{review} entry headed by a \textsf{journaltitle} won't need a
+\textsf{sortkey} set. Further, the \texttt{use<name>=false} options
+will remove any name field from the sorting order, again reducing the
+need for user intervention.
\subsubsection{{Pre-Set \textsf{chicago} Options}}
\label{sec:chicpreset}
@@ -6364,7 +6560,7 @@ field. Please note that, as in standard \textsf{biblatex}, the
\textsf{url} field is always printed in \textsf{online} entries,
regardless of the state of this option.
-\mylittlespace This \colmarginpar{\texttt{urlstamp=true}} option
+\mylittlespace This \mymarginpar{\texttt{urlstamp=true}} option
controls whether any \textsf{urltime} fields, included as part of the
\textsf{urldate}, will be printed in notes and bibliography. It
defaults to true, and can be set to false either in the preamble, for
@@ -6390,14 +6586,13 @@ some automatic pruning helps clear things up, at least to a first
approximation. Some per-type or per-entry work afterward may then
polish up the details. If you find that you need control over fields
that aren't included among these options, I have provided the
-\mycolor{\cmd{suppressbibfield}} command for your preamble, as
-suggested by Jan David Hauck. It is in fact a user interface to the
-source mapping feature of \textsf{biblatex}, and it is something of a
-nuclear option, preventing fields from even appearing in the .bbl file
-generated by \textsf{biber} from your .bib database. See the
-\mycolor{\cmd{suppressbibfield}} command in
-section~\ref{sec:formatcommands} and the source mapping docs in
-\textsf{biblatex.pdf} \S~4.5.3.
+\cmd{suppressbibfield} command for your preamble, as suggested by Jan
+David Hauck. It is in fact a user interface to the source mapping
+feature of \textsf{biblatex}, and it is something of a nuclear option,
+preventing fields from even appearing in the .bbl file generated by
+\textsf{biber} from your .bib database. See the
+\cmd{suppressbibfield} command in section~\ref{sec:formatcommands} and
+the source mapping docs in \textsf{biblatex.pdf} \S~4.5.3.
\mylittlespace At \mymarginpar{\texttt{addendum=\\true}} the request
of Roger Hart, I have included this option, which controls the
@@ -6435,6 +6630,53 @@ you can change it either in the preamble for the whole document or,
for specific fields, in the \textsf{options} field of individual
entries.
+\mylittlespace These
+\colmarginpar{\texttt{bibannotesep\\=vpar\\citeannotesep\\=period}}
+options define the relation of the \textsf{annotation} field to the
+main entry, \mycolor{\texttt{bibannotesep}} doing so in the
+bibliography and \mycolor{\texttt{citeannotesep}} in long notes. (The
+\texttt{annotation} option in section~\ref{sec:useropts} determines
+where, if anywhere, the field will appear.) Both options have the
+same set of keys, though they have different default settings if you
+don't define them yourself. The possible values are:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad none] = no punctuation at all.
+\item[\qquad space] = \cmd{addspace}
+\item[\qquad comma] = \verb+\addcomma\addspace+
+\item[\qquad period] = \verb+\addperiod\addspace+
+\item[\qquad colon] = \verb+\addcolon\addspace+
+\item[\qquad semicolon] = \verb+\addsemicolon\addspace+
+\item[\qquad par:] This starts a new paragraph on the next line. Page
+ breaking is strongly inhibited before the \textsf{annotation}.
+\item[\qquad vpar:] This starts a new paragraph, and also inserts
+ some vertical space before it. In long notes that vertical space is
+ minimal (1 pt), while in the bibliography it creates a blank line.
+ Page breaking is strongly inhibited before the \textsf{annotation}.
+\item[\qquad parbreak:] This is the same as \texttt{par}, but it allows
+ a page break to occur between the main entry and the start of the
+ \textsf{annotation}.
+\item[\qquad vparbreak:] This is the same as \texttt{vpar}, but it also
+ allows a page break between the main entry and the
+ \textsf{annotation}.
+\end{description}
+
+Please note that both of these options are available in the preamble
+both globally and per-type, and also in the \textsf{options} field of
+individual entries. Each defines a command (\cmd{bibannotesep} and
+\cmd{citeannotesep}) which appears in the \textsf{annotation} field's
+formatting directive, so it's possible to redefine these commands in
+your preamble if you have needs that the available values don't
+address. (You can also try sending an email to encourage me to add
+other keys.) Please also keep in mind that
+\mycolor{\texttt{bibannotesep}} interacts with the
+\mycolor{\texttt{entrybreak}} and \mycolor{\textsf{formatbib}} options
+in section~\ref{sec:useropts}, below, to determine the general layout
+of the bibliography. Depending on the settings of those options,
+changing the \mycolor{\texttt{bibannotesep}} from entry to entry may
+not work out well.
+
\mylittlespace At \mymarginpar{\texttt{booklongxref=\\true}} the
request of Bertold Schweitzer, I have included two options for
controlling whether and where \textsf{biblatex-chicago} will print
@@ -6450,6 +6692,7 @@ will usually be presented in, e.g., a \textsf{book},
depending on the value of the option:
\begin{description}
+\setlength{\parskip}{-4pt}
\item[\qquad true:] This is the default. If you use \textsf{crossref}
or \textsf{xref} fields in these entry types, by default you will
\emph{not} get any abbreviated references, either in notes or
@@ -6469,7 +6712,7 @@ behavior of \textsf{inbook}, \textsf{incollection},
\texttt{longcrossref}, below, and also the documentation of
\textsf{crossref} in section~\ref{sec:entryfields}.
-\mylittlespace The \colmarginpar{\texttt{compressyears\\=true}}
+\mylittlespace The \mymarginpar{\texttt{compressyears\\=true}}
\emph{Manual} has long recommended (9.64, 14.117, 14.144), as a
space-saving measure, the compression of year ranges when presenting
dates. I have, finally, implemented this in the current release, and
@@ -6485,14 +6728,14 @@ option to make any difference. Cf.\ table~\ref{ad:date:extras}.
requested a way to control the punctuation printed before the
\textsf{titleaddon}, \textsf{booktitleaddon}, and
\textsf{maintitleaddon} fields. By default, this is
-\verb+\addcomma\addspace+ (\textsf{ctitleaddon}) for all occurrences
+\verb+\addcomma\addspace+ (\textsf{cti\-tleaddon}) for all occurrences
in notes and for nearly all \textsf{book-} and
\textsf{maintitleaddons} in the bibliography, while
\verb+\addperiod\addspace+ (\textsf{ptitleaddon}) is the default
before most \textsf{titleaddons} in the bibliography. If the
punctuation printed isn't correct for your needs, you can set the
relevant option either in the preamble or in individual entries.
-(Cf.\ coolidge:speech and schubert:muellerin.) The accepted option
+(Cf.\ coolidge\hc speech and schubert:muellerin.) The accepted option
keys are:
\begin{description}
@@ -6514,16 +6757,15 @@ you use the \textsf{options} field in your other entries with a
relevant option to \texttt{none} in your entry and then include the
punctuation in the \textsf{titleaddon} field itself.
-\mylittlespace Constanza Cordoni \colmarginpar{\texttt{dashed=true}}
+\mylittlespace Constanza Cordoni \mymarginpar{\texttt{dashed=true}}
has requested a way to turn off the 3-em dash for replacing repeated
names in the bibliography, and the \emph{Manual} admits that some
publishers prefer this, as the dash can carry with it certain
inconveniences, especially for electronic formats (14.67). Some of
\textsf{biblatex's} standard styles have a \texttt{dashed} option, so
-for compatibility purposes I've provided the same. By default, I have
-set it to print the name dash, but you can set
-\mycolor{\texttt{dashed=false}} in your preamble to repeat names
-instead throughout your document.
+for compatibility purposes I've provided the same. By default I have
+set it to print the name dash, but you can set \texttt{dashed=false}
+globally, per type, or per entry to repeat names as and when required.
\mylittlespace If \mymarginpar{\texttt{hidevolumes=\\true}} both a
\textsf{volume} and a \textsf{volumes} field are present, as may occur
@@ -6544,15 +6786,16 @@ references when you cite more than one part of a given collection or
series. It controls the settings for the entry types more-or-less
authorized by the \emph{Manual}, i.e., \textsf{inbook},
\textsf{incollection}, \textsf{inproceedings}, \textsf{letter}, and
-\mycolor{\textsf{review}}. The mechanism itself is enabled by
-multiple \textsf{crossref} or \textsf{xref} references to the same
-parent, whether that be, e.g., a \textsf{collection}, an
+\textsf{review}. The mechanism itself is enabled by multiple
+\textsf{crossref} or \textsf{xref} references to the same parent,
+whether that be, e.g., a \textsf{collection}, an
\textsf{mvcollection}, a \textsf{proceedings}, or an
\textsf{mvproceedings} entry. Given these multiple cross references,
the presentation in the reference apparatus will be governed by the
following options:
\begin{description}
+\setlength{\parskip}{-4pt}
\item[\qquad false:] This is the default. If you use
\textsf{crossref} or \textsf{xref} fields in the four mentioned
entry types, you'll get the abbreviated references in both notes and
@@ -6577,13 +6820,33 @@ and \textsf{proceedings} entries, please see \texttt{booklongxref},
above, and also the documentation of \textsf{crossref} in
section~\ref{sec:entryfields}.
-\mylittlespace This \colmarginpar{\texttt{nodates=true}} option means
+\mylittlespace This \colmarginpar{\texttt{nameaddonsep\\=space}}
+option sets the punctuation which appears
+before the \textsf{nameaddon} field in all entry types except
+\textsf{customc}. You can set it globally, per type or per entry,
+using one of the six following keys:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{space}] = \cmd{addspace}. This is the default.
+\item[\qquad \texttt{none}] = no separator at all. It presumes that
+ you will include one in the \textsf{nameaddon} field itself.
+\item[\qquad \texttt{colon}] = \verb+\addcolon\addspace+.
+\item[\qquad \texttt{comma}] = \verb+\addcomma\addspace+.
+\item[\qquad \texttt{period}] = \verb+\addperiod\addspace+.
+\item[\qquad \texttt{semicolon}] = \verb+\addsemicolon\addspace+.
+\end{description}
+
+Cf.\ \mycolor{\texttt{nameaddon}} and
+\mycolor{\texttt{nameaddonformat}} in section~\ref{sec:useropts}.
+
+\mylittlespace This \mymarginpar{\texttt{nodates=true}} option means
that \textsf{biblatex-chicago} automatically provides
\verb+\bibstring{nodate}+ in any \enquote{circa} or
\enquote{uncertain} date specification where the user has also turned
off the printing of brackets around the date using the
-\mycolor{\texttt{nodatebrackets}} or \mycolor{\texttt{noyearbrackets}}
-options (section~\ref{sec:useropts}; 14.145). If you set
+\texttt{nodatebrackets} or \texttt{noyearbrackets} options
+(section~\ref{sec:useropts}; 14.145). If you set
\texttt{nodates=false} either in your preamble (for global coverage or
for specific entry types) or in individual entries then the package
will simply print the unbracketed date specification in this context.
@@ -6614,7 +6877,7 @@ in individual entries. The accepted option keys are:
\end{description}
You can, in emergencies, directly
-\verb+\renewcommand{\shorthandpunct}+ in the pream\-ble, but it might
+\verb+\renewcommand{\shorthandpunct}+ in the preamble, but it might
be easier to use the \texttt{none} option to \texttt{shorthandpunct}
and hand-craft solutions inside the \textsf{shorthandintro} fields of
individual entries.
@@ -6623,37 +6886,52 @@ individual entries.
\label{sec:useropts}
These are parts of the specification that not everyone will wish to
-enable. All except the fifth and eighth can be used even if you load
-the package in the old way via a call to \textsf{biblatex}, but most
-users can just place the appropriate string(s) in the options to the
-\cmd{usepackage} \texttt{\{biblatex-chicago\}} call in your preamble.
+enable. All except the fifth, sixth, and eleventh can be used even if
+you load the package in the old way via a call to \textsf{biblatex},
+but most users can just place the appropriate string(s) in the options
+to the \cmd{usepackage} \texttt{\{biblatex-chicago\}} call in your
+preamble.
\mylittlespace \textsf{Biblatex-chicago}
-\colmarginpar{\texttt{alwaysrange}} now implements \textsf{biblatex's}
+\mymarginpar{\texttt{alwaysrange}} now implements \textsf{biblatex's}
enhanced date specifications, one part of which is the presentation of
decades and centuries not as year ranges but as localized strings like
-\enquote{19th c.} or \enquote{1970s.} The
-\mycolor{\texttt{alwaysrange}} option set to \texttt{true}, either in
-your preamble or in individual entries, simply tells the package to
-present the year range instead. This allows you to use the efficient
-enhanced notations in the \textsf{date} field (\verb+{18XX}+ or
-\verb+{197X}+) without the localized strings appearing, should you
-require it. The two options \mycolor{\texttt{centuryrange}} and
-\mycolor{\texttt{decaderange}} limit the same effect to centuries and
-decades, respectively. Please see table~\ref{ad:date:extras}.
-
-\mylittlespace At \mymarginpar{\texttt{annotation}} the request of
+\enquote{19th c.} or \enquote{1970s.} The \texttt{alwaysrange} option
+set to \texttt{true}, either in your preamble or in individual
+entries, simply tells the package to present the year range instead.
+This allows you to use the efficient enhanced notations in the
+\textsf{date} field (\verb+{18XX}+ or \verb+{197X}+) without the
+localized strings appearing, should you require it. The two options
+\texttt{centuryrange} and \texttt{decaderange} limit the same effect
+to centuries and decades, respectively. Please see
+table~\ref{ad:date:extras}.
+
+\mylittlespace At \colmarginpar{\texttt{annotation}} the request of
Emil Salim, I included in \textsf{biblatex-chicago} the ability to
-produce annotated bibliographies. If you turn this option on then the
-contents of your \textsf{annotation} (or \textsf{annote}) field will
-be printed after the bibliographical reference. (You can also use
-external files to store annotations -- please see
-\textsf{biblatex.pdf} §~3.13.8 for details on how to do this.) This
-functionality is currently in a beta state, so before you use it
-please have a look at the documentation for the \textsf{annotation}
-field, on page~\pageref{sec:annote} above.
-
-\mylittlespace As \colmarginpar{\texttt{blogurl}} a convenience
+produce annotated bibliographies. More recently, Moritz Wemheuer
+brought to my attention a
+\href{https://tex.stackexchange.com/questions/528374/moving-addendum-field-to-the-end-in-biblatex-chicago/540755#540755}{StackExchange}
+question which suggested that the field might be useful in several
+other contexts as well, so I've modified the \texttt{annotation}
+option to allow the field to appear in the bibliography (\texttt{=bib}
+or \texttt{=true}, the default, if no string is given), in long notes
+(\texttt{=notes}), in both (\texttt{=all}), or in neither
+(\texttt{=false}). You can now set the option in the preamble both
+globally and per-type, and in the \textsf{options} field of individual
+entries. There are two new options (\mycolor{\texttt{bibannotesep}}
+and \mycolor{\texttt{citeannotesep}}) to allow you to choose the
+separator between the \textsf{annotation} and the rest of the entry,
+and also two new options (\mycolor{\texttt{formatbib}} and
+\mycolor{\texttt{entrybreak}}) to give you fine-grained control over
+the presentation of the bibliography as a whole, including an
+annotated one. Please have a look at the documentation for the latter
+two options just below, for the former two options in
+section~\ref{sec:chicpreset}, and for the \textsf{annotation} field on
+page~\pageref{sec:annote}. Please also see \textsf{biblatex.pdf}
+\S~3.13.8 for details on how to use external files to store
+annotations.
+
+\mylittlespace As \mymarginpar{\texttt{blogurl}} a convenience
feature, this option, available only in the preamble, allows
\textsf{review} entries to inherit a \textsf{url} from
\textsf{article} entries. The main use, as the name suggests, is when
@@ -6661,11 +6939,23 @@ you want to provide the same \textsf{url} for a blog comment as you
have for a blog post. You'll need an extra \LaTeX - \textsf{Biber} -
\LaTeX\ run to make sure any changes to this option take effect.
-\mylittlespace This \colmarginpar{\texttt{centuryrange}} option works
-just like \mycolor{\texttt{alwaysrange}}, above, but only affects
-century presentation, not decade. Cf.\ table~\ref{ad:date:extras}.
-
-\mylittlespace The \colmarginpar{\texttt{cmsbreakurl}} \emph{Manual}
+\mylittlespace Like \colmarginpar{\texttt{casechanger}} \texttt{mcite}
+and \texttt{natbib}, this is a standard \textsf{biblatex} option which
+\textsf{biblatex-chicago} simply passes through to that package. In
+\textsf{biblatex} it defaults to \texttt{auto}, but there were, and
+possibly still are, cases when the old \texttt{latex2e} case-changing
+code can work around some bugs when using, for example, citation
+commands inside fields that have a case-changing element as an
+automatic part of their formatting (\textsf{note},
+\textsf{titleaddon}, \textsf{type}). Cf.\ the
+\mycolor{\cmd{citeincite}} command in section~\ref{sec:citecommands},
+and section~3.1.1 of \textsf{biblatex.pdf}.
+
+\mylittlespace This \mymarginpar{\texttt{centuryrange}} option works
+just like \texttt{alwaysrange}, above, but only affects century
+presentation, not decade. Cf.\ table~\ref{ad:date:extras}.
+
+\mylittlespace The \mymarginpar{\texttt{cmsbreakurl}} \emph{Manual}
gives fairly specific instructions about breaking URLs across lines
(14.18), so I have attempted to implement them by tweaking
\textsf{biblatex's} default settings, which are found in
@@ -6674,8 +6964,8 @@ gives fairly specific instructions about breaking URLs across lines
instructions, nor do the changes I have made work well in all
circumstances, being particularly unsightly if you happen to be using
the \textsf{ragged2e} package. For these reasons, I have made my
-changes dependent on a package option, \mycolor{\texttt{cmsbreakurl}},
-which you can set in your preamble. I have placed all of this code in
+changes dependent on a package option, \texttt{cmsbreakurl}, which you
+can set in your preamble. I have placed all of this code in
\textsf{biblatex-chicago.sty}, so if you load the package with a call
to \textsf{biblatex} instead, then URL line breaking will revert to
the \textsf{biblatex} defaults. See
@@ -6694,9 +6984,17 @@ this is in \textsf{biblatex-chicago.sty}, so if you load the package
with a call to \textsf{biblatex} instead then you'll get the default
\textsf{biblatex} compression style.
-\mylittlespace This \colmarginpar{\texttt{decaderange}} option works
-just like \mycolor{\texttt{alwaysrange}}, above, but only affects
-decade presentation, not century. Cf.\ table~\ref{ad:date:extras}.
+\mylittlespace This \colmarginpar{\texttt{datamodel}} is the standard
+\textsf{biblatex} option for loading the named data model file
+(excluding its\ .dbx extension). After a request by Philipp Immel,
+you can now set this option when you load the Chicago styles with
+\verb+\usepackage{biblatex-chicago}+, and it will be passed through
+properly to \textsf{biblatex} itself. Cf.\ \textsf{biblatex.pdf}
+\S~4.5.4.
+
+\mylittlespace This \mymarginpar{\texttt{decaderange}} option works
+just like \texttt{alwaysrange}, above, but only affects decade
+presentation, not century. Cf.\ table~\ref{ad:date:extras}.
\mylittlespace The \mymarginpar{\texttt{delayvolume}} presentation of
\textsf{volume} information in the notes \&\ bibliography style is
@@ -6717,6 +7015,19 @@ printed \emph{before} a \textsf{maintitle}, but only data that would,
without this option, be printed \emph{after} a \textsf{booktitle} or
\textsf{maintitle}. Cf.\ also \cmd{postvolpunct}, below.
+\mylittlespace This \colmarginpar{\texttt{entrybreak}} option only
+makes sense when used in conjunction with the \texttt{annotenp} switch
+to the \mycolor{\texttt{formatbib}} option (below). The latter allows
+\LaTeX\ to break a page inside an \textsf{annotation} field printed
+without starting a new paragraph, and it does so by allowing such a
+break in the entry only after a set number of lines, by default set to
+3. The idea is that most bibliography entries will fit within 3
+lines, so the break would generally be somewhere inside the
+\textsf{annotation}. If your document needs a value different from 3,
+provide the integer using the \mycolor{\texttt{entrybreak}} option in
+your preamble. Some experimentation may be needed to find the optimum
+number for a given document.
+
\mylittlespace Although \mymarginpar{\texttt{footmarkoff}} the
\emph{Manual} (14.24) recommends specific formatting for footnote (and
endnote) marks, i.e., superscript in the text and in-line in foot- or
@@ -6733,12 +7044,74 @@ revert to the \LaTeX\ default, but of course you also lose a fair
amount of other formatting, as well. See section~\ref{sec:loading},
below.
+\mylittlespace The \colmarginpar{\texttt{formatbib}} \emph{Manual} in
+fact says very little about formatting issues in bibliographies, e.g.,
+whether to break entries across pages and whether to allow widows and
+orphans (single lines at the start or end of a page). A quick and
+non-scientific survey of publications issued by the University of
+Chicago Press suggests that actual practices are extremely varied, so
+I've tried to provide a number of choices for users of
+\textsf{biblatex-chicago}, most of them available as keys to the new
+\mycolor{\texttt{formatbib}} preamble option, but a few of them also
+involving settings of the \mycolor{\texttt{bibannotesep}} and the
+\mycolor{\texttt{entrybreak}} options. The keys of
+\mycolor{\texttt{formatbib}} are as follows:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad max:] This is the \textsf{biblatex} default, so if you
+ don't set \mycolor{\texttt{formatbib}} at all it's what you get. It
+ provides maximal intervention, disallowing entries broken across
+ pages, including even when an entry includes a lengthy annotation.
+\item[\qquad min:] This allows page breaks just about anywhere,
+ including inside entries, and it also allows widows and orphans, so
+ it will usually provide the most efficient use of available space on
+ the pages of your bibliography.
+\item[\qquad minwo:] This is like \texttt{min}, but discourages
+ widows and orphans.
+\item[\qquad annote:] This option treats annotations separately from
+ bibliography entries, allowing them to be broken across pages while
+ the entry itself won't be. It is intended for use with, and will
+ only properly work with, \mycolor{\texttt{bibannotesep}} set to one
+ of the modes that start a new paragraph for the annotation, to wit,
+ \texttt{par}, \texttt{vpar} (the default), \texttt{parbreak}, or
+ \texttt{vparbreak}. See below for the meaning of the
+ \enquote{\texttt{break}} options here.
+\item[\qquad annotenp:] This option attempts to treat annotations
+ separately from bibliography entries in those settings of
+ \mycolor{\texttt{bibannotesep}} which don't involve starting a new
+ paragraph. It works by setting the number of lines in an entry
+ after which page breaking is allowed. By default entries will only
+ break after 3 lines, the idea being that most bibliography entries
+ fit into three lines, so at that point you're likely to be inside
+ the annotation, but you can set the \mycolor{\texttt{entrybreak}}
+ option to any integer that works for your reference apparatus.
+\end{description}
+
+Please note that there is one possible break point that isn't directly
+addressed by these options, that is, the one between the main entry
+and the annotation when that annotation starts a new paragraph. If
+you set \mycolor{\texttt{bibannotesep}} to \texttt{par} or
+\texttt{vpar}, then \LaTeX\ will try very hard not to break between
+entry and annotation, ensuring that the annotation at least starts on
+the same page as its entry. If you use \texttt{parbreak} or
+\texttt{vparbreak}, \LaTeX\ is positively encouraged to break a page
+there, as is usual between paragraphs.
+
+\mylittlespace You can of course ignore the
+\mycolor{\texttt{formatbib}} option and provide your own settings.
+\textsf{Biblatex} uses the \cmd{bibsetup} command which you can renew
+in your preamble. You can find a nice commentary on the default
+values set by the package in the file \textsf{biblatex.def}, which
+you'll find in the main \textsf{biblatex} directory of your \TeX\
+distribution.
+
\mylittlespace This \mymarginpar{\texttt{genallnames}} option affects
the choice of which names to present in the genitive case when using
the \cmd{gentextcites} command. Please see the documentation of that
command in section~\ref{sec:citecommands}, above.
-\mylittlespace Setting \mymarginpar{\texttt{inheritshort\-hand}} this
+\mylittlespace Setting \mymarginpar{\texttt{inheritshorthand}} this
option to \texttt{true} allows child entries to inherit the
\textsf{shorthand} and \textsf{shorthandintro} fields from
cross-referenced parent entries. This in turn allows abbreviated
@@ -6782,22 +7155,65 @@ correctly puts the \enquote{Jr.}\ part at the end, after the given
names, and in this position it always takes a comma, the presence of
which is unaffected by this option.
-\mylittlespace This \mymarginpar{\texttt{natbib}} may look like the
-standard \textsf{biblatex} option, but to keep the coding of
-\textsf{biblatex-chicago.sty} simpler for the moment I have
-reimplemented it there, from whence it is merely passed on to
-\textsf{biblatex}. If you load the Chicago style with
-\verb+\usepackage{biblatex-chicago}+, then the option should simply
-read \texttt{natbib}, rather than \texttt{natbib=true}. The shorter
-form also works if you load the style using
-\cmd{usepackage[style=chicago-notes]\\\{biblatex\}}, so I hope this
-requirement isn't too onerous.
-
-\mylittlespace When \colmarginpar{\texttt{nodatebrackets}\\
+\mylittlespace This \colmarginpar{\texttt{nameaddon}} option
+determines where and when the \textsf{nameaddon }field will be
+printed. There are seven possible values, the first four of which are
+available globally, per type, and per entry, with the last three only
+applicable globally:
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{all}:] This is the default; if an entry has a
+ \textsf{nameaddon}, it will appear in both long notes and in the
+ bibliography.
+\item[\qquad \texttt{none}:] The field will appear neither in the
+ bibliography nor in long notes.
+\item[\qquad \texttt{bib}:] The field will appear only in the
+ bibliography.
+\item[\qquad \texttt{cite}:] The field will appear only in long notes.
+\item[\qquad \texttt{first}:] Philipp Immel requested this as a way to
+ provide an \textsf{author's} dates in the \textsf{nameaddon} field
+ and only have them printed the first time that author appears in the
+ bibliography. A sequence of consecutive long notes citing works by
+ the same author will be treated the same way. The code tests for
+ identical \textsf{nameaddon} fields in works by identical
+ \textsf{authors}, so other sorts of \textsf{nameaddon} will be
+ printed as usual.
+\item[\qquad \texttt{bibfirst}:] Like \texttt{first}, but will not
+ print the \textsf{nameaddon} field in long notes.
+\item[\qquad \texttt{citefirst}:] Like \texttt{first}, but will not
+ print the \textsf{nameaddon} field in the bibliography.
+\end{description}
+
+Cf.\ \mycolor{\texttt{nameaddonformat}} just below, and
+\mycolor{\texttt{nameaddonsep}} in section~\ref{sec:chicpreset}.
+
+\mylittlespace This \colmarginpar{\texttt{nameaddon-\\format}} option,
+available globally, per type, and per entry, allows you to change the
+format of the \textsf{nameaddon} field on the fly, so its value should
+be a field format that \textsf{biblatex} understands. This includes
+standard formats like \texttt{parens,\,brackets} or \texttt{emph}, and
+also custom formats that you provide in your preamble using
+\cmd{DeclareFieldFormat}, in case the standard ones aren't adequate.
+If you don't define this option, then the usual defaults apply, that
+is, no formatting in \textsf{online, review,} and
+\textsf{suppperiodical} entries, as well as in \textsf{misc} entries
+with an \textsf{entrysubtype}, while square brackets surround the
+field in all other entry types with the exception of \textsf{customc},
+which has its own rules and ignores this option. Cf.\
+\mycolor{\texttt{nameaddonsep}} in section~\ref{sec:chicpreset}.
+
+\mylittlespace These \mymarginpar{\texttt{natbib}\\\texttt{mcite}} are
+the standard \textsf{biblatex} options, which formerly required
+slightly special handling when you loaded the Chicago style with
+\verb+\usepackage{biblatex-chicago}+. Both the forms \texttt{natbib}
+and \texttt{natbib=true} (\texttt{mcite} \&\ \texttt{mcite=true})
+should now work.
+
+\mylittlespace When \mymarginpar{\texttt{nodatebrackets}\\
\texttt{noyearbrackets}} you use \textsf{biblatex's} enhanced date
-specifications to present an uncertain date (\verb+{1956?}+), a
-\enquote{circa} date (\verb+{1956~}+), or one that is both at the same
-time (\verb+{1956%}+), the date that by default will appear in your
+specifications to present a \enquote{circa} date (\verb+{1956~}+), an
+uncertain date (\verb+{1956?}+), or one that is both at the same time
+(\verb+{1956%}+), the date that by default will appear in your
documents will have square brackets around it. This accords with the
\emph{Manual's} instructions concerning such dates (14.145), but that
section also includes an alternative form, where the guessed at date
@@ -6805,19 +7221,19 @@ appears, without brackets, after the \verb+\bibstring{nodate}+, e.g.,
\enquote{\texttt{n.d., ca.\ 1750.}} These two package options, which
may appear in the preamble either for the whole document or for
specific entry types, or in individual entries, allow you to control
-when these brackets will appear, while the \mycolor{\texttt{nodates}}
-option, set to \texttt{true} by default, decides whether to print
+when these brackets will appear, while the \texttt{nodates} option,
+set to \texttt{true} by default, decides whether to print
\verb+\bibstring{nodate}+ before the date. In truth, users of the
notes \&\ bibliography style will probably only ever need
-\mycolor{\texttt{nodatebrackets}}, which controls most of the dates
-that will appear in your documents, with the exception of dates in
-some \textsf{article}, \textsf{review}, and \textsf{periodical}
-entries without an \textsf{entrysubtype}, which are governed by
-\mycolor{\texttt{noyearbrackets}}. (The distribution is different in
-the author-date styles, so it's impossible to do without both
-options.) Cf.\ table~\ref{ad:date:extras}.
-
-\mylittlespace At \colmarginpar{\texttt{noibid}} the request of an
+\texttt{nodatebrackets}, which controls most of the dates that will
+appear in your documents, with the exception of dates in some
+\textsf{article}, \textsf{review}, and \textsf{periodical} entries
+without an \textsf{entrysubtype}, which are governed by
+\texttt{noyearbrackets}. (The distribution is different in the
+author-date styles, so it's impossible to do without both options.)
+Cf.\ table~\ref{ad:date:extras}.
+
+\mylittlespace At \mymarginpar{\texttt{noibid}} the request of an
early tester, I have included this option to allow you globally to
turn off the \emph{ibidem} mechanism that
\textsf{biblatex-chicago-notes} uses by default. Some publishers, it
@@ -6825,10 +7241,10 @@ would appear, require this. Setting this option will mean that
instead of the \emph{ibidem} mechanism you'll get the short note form.
Please note that the 17th edition no longer recommends the use of
\enquote{\emph{ibid.}}\ at all (14.34), so depending on the state of
-the \mycolor{\texttt{useibid}} option, below, what you'll be turning
-off may well no longer be the appearance of \emph{ibid.}\ itself. For
-more fine-grained control of individual citations you'll probably want
-to use specialized citation commands, instead. See section
+the \texttt{useibid} option, below, what you'll be turning off may
+well no longer be the appearance of \emph{ibid.}\ itself. For more
+fine-grained control of individual citations you'll probably want to
+use specialized citation commands, instead. See section
\ref{sec:citecommands}.
\mylittlespace As \mymarginpar{\texttt{omitxrefdate}} part of the
@@ -6870,9 +7286,9 @@ haven't extensively tested, so I'm labeling this option experimental.
Note also that the option only affects the \textsf{postnote} field of
citation commands, not the \textsf{pages} field in your .bib file.
-\mylittlespace This \colmarginpar{\texttt{seriesabbrev}} option
-controls the printing of the \mycolor{\textsf{shortseries}} field in
-place of the \textsf{series} field in book-like entries in notes and
+\mylittlespace This \mymarginpar{\texttt{seriesabbrev}} option
+controls the printing of the \textsf{shortseries} field in place of
+the \textsf{series} field in book-like entries in notes and
bibliography. It is \texttt{false} by default, so as shipped
\textsf{biblatex-chicago-notes} will silently ignore such fields, but
you can set it, either in the preamble for the whole document or for
@@ -6880,8 +7296,7 @@ specific entry types, or in individual entries, to one of three other
values: \texttt{true} prints the abbreviated form in notes and
bibliography, \texttt{notes} in notes only, and \texttt{bib} in the
bibliography only. For more details, see the documentation of
-\mycolor{\textsf{shortseries}} in section~\ref{sec:entryfields},
-above.
+\textsf{shortseries} in section~\ref{sec:entryfields}, above.
\mylittlespace This \mymarginpar{\texttt{short}} option means that
your text will only use the short note form, even in the first
@@ -6900,11 +7315,11 @@ Walsh has remarked that it is quite possible for documents to cite
works that, though perfectly distinguishable in their long form, end
up looking identical in short notes; multiple performances of the same
work by the same artist, for example, might end up producing such a
-situation. (In \textsf{online} and \textsf{review} entries using the
-\mycolor{\texttt{commenton}} \textsf{relatedtype} this situation is so
-endemic that I've set a default method of disambiguating short notes
-there, though you can still override it with the following options.
-See section~\ref{sec:related}, above.) While the use of a
+situation. (In \textsf{online} and \textsf{review} entries using
+\texttt{commenton} \textsf{relatedtype} this situation is so endemic
+that I've set a default method of disambiguating short notes there,
+though you can still override it with the following options. See
+section~\ref{sec:related}, above.) While the use of a
\textsf{shorthand} field could provide some sort of remedy, he
requested a way to disambiguate short notes by adding a
user-configurable field to the note, thereby keeping it both short and
@@ -6948,7 +7363,7 @@ list. Please see the documentation of the \textbf{shorthand} field in
section~\ref{sec:entryfields} above for information on further options
available to you for presenting and formatting the list of shorthands.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace Chris Sparks \mymarginpar{\texttt{shorthandibid}}
pointed out that \textsf{biblatex-chicago-notes} would never use
@@ -6965,6 +7380,43 @@ I don't think it unreasonable to provide an option to allow printing
of \emph{ibid.}\ instead of the shorthand in such circumstances,
though the default behavior remains the same as it always has.
+\mylittlespace Fr.\ Norbert \colmarginpar{\texttt{shorthand-\\intro}}
+Keliher requested a way to turn off the printing, in the first
+citation of a work, of the introduction of a \textsf{shorthand} that
+will appear in subsequent citations. (A possible use case is when
+that \textsf{shorthand} is so well known that it needs no
+introduction.) By default, \textsf{biblatex-chicago} prints a notice
+--- (hereafter cited as) --- when no \textsf{shorthandintro} field is
+present, the latter field allowing you to modify the notice but not
+eliminate it. The new \mycolor{\texttt{shorthandintro}} option is
+available globally, per-type, and per-entry, and has three possible
+values:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad none:] This setting turns off the notice entirely. The
+ \textsf{shorthand} field will simply appear in subsequent citations
+ with no introduction.
+\item[\qquad short:] This setting provides the \textsf{shorthand}
+ alone in parentheses at the end of the first citation. You can get
+ a similar effect by providing a \textsf{shorthandintro} field which
+ only contains the \textsf{shorthand} wrapped in parentheses.
+\item[\qquad full:] This is in effect the default setting, but you
+ would only need to use it in a document where one of the other two
+ settings was in force either globally or per-type. In
+ \textsf{chicago-notes.cbx} I have set this value for the
+ \textsf{jurisdiction}, \textsf{legal}, and \textsf{legislation}
+ entry types to fulfil the \emph{Bluebook's} specification even when
+ a user changes it for other sorts of entry. This requires you to
+ alter it specifically for these types should you wish to depart from
+ the \emph{Bluebook} guidelines. Cf.\ section~\ref{sec:legal}, below.
+\end{description}
+
+N.B.\ The list of shorthands will always still be available to you as
+an explanatory tool in the absence of any introductions to individual
+shorthands. Please see the documentation of the \textsf{shorthand}
+and \textsf{shorthandintro} fields in section~\ref{sec:entryfields}.
+
\mylittlespace This \mymarginpar{\texttt{strict}} still-experimental
option attempts to follow the \emph{Manual}'s recommendations (14.41)
for formatting footnotes on the page, using no rule between them and
@@ -6973,7 +7425,7 @@ rule intervenes to emphasize this continuation. I haven't tested this
code very thoroughly, and it's possible that frequent use of floats
might interfere with it. Let me know if it causes problems.
-\mylittlespace Stefan \mymarginpar{\texttt{urlnotes}} Björk, for
+\mylittlespace Stefan \mymarginpar{\texttt{urlnotes}} Bj\"{o}rk, for
specialized reasons, requested a way to turn off the printing of
\textsf{url}, \textsf{doi}, and \textsf{eprint} information in notes
but not in the bibliography. As it's possible this might be of more
@@ -6981,17 +7433,17 @@ general usefulness, I've provided a new option. You can set it to
\texttt{false} either in the preamble or in individual entries, but
please note that it does not apply to \textsf{online} entries.
-\mylittlespace In \colmarginpar{\texttt{useibid}} a change to previous
+\mylittlespace In \mymarginpar{\texttt{useibid}} a change to previous
recommendations, the 17th edition of the \emph{Manual}
\enquote{discourages the use of \emph{ibid.,}}\ preferring instead a
shortened reference with only the author's name (14.34).
\textsf{Biblatex-chicago} now implements these recommendations by
default, including the repetition of page references even when they're
exactly the same as the previous note. If you prefer to continue
-using \emph{ibid.}, then set \mycolor{\texttt{useibid=true}} in your
-document preamble and you'll get the traditional behavior.
+using \emph{ibid.}, then set \texttt{useibid=true} in your document
+preamble and you'll get the traditional behavior.
-\mylittlespace Stefan \mymarginpar{\texttt{xrefurl}} Björk pointed
+\mylittlespace Stefan \mymarginpar{\texttt{xrefurl}} Bj\"{o}rk pointed
out that when, using the \texttt{longcrossref} or
\texttt{booklongxref} options, you turn on the automatic abbreviation
of multiple entries in the same (e.g.) \textsf{collection} or
@@ -7002,28 +7454,28 @@ Setting this option to \textsf{true} either in the preamble or in
individual entries will allow the \textsf{url}, \textsf{doi}, or
\textsf{eprint} field to appear even in these abbreviated references.
-\subsubsection{Back References: The \mycolor{\texttt{noteref}} Option}
+\subsubsection{Back References: The \texttt{noteref} Option}
\label{sec:noteref}
\textsf{Biblatex} has always provided the \texttt{backref} option,
which prints, in the bibliography, those pages on which individual
works have been cited. The \emph{Manual} (14.31) recommends another,
related system, which involves, at the end of short notes,
-cross-referen\-ces to the note where the reader can find the full,
-long citation of the same source, \enquote{especially in the absence
- of a full bibliography.} The general idea is that, where a short
-note is \enquote{far} from the long citation, a back reference to that
-long note may prove \enquote{helpful.} The recommended format is
-something like this: \texttt{(see chap.\ 1, n.\ 4)}. The previous
-release of \textsf{biblatex-chicago} provided something similar only
-for certain subsets of material from the \emph{Bluebook} guidelines
-for legal citations. That provision is very basic and has a different
+cross-references to the note where the reader can find the full, long
+citation of the same source, \enquote{especially in the absence of a
+ full bibliography.} The general idea is that, where a short note is
+\enquote{far} from the long citation, a back reference to that long
+note may prove \enquote{helpful.} The recommended format is something
+like this: \texttt{(see chap.\ 1, n.\ 4)}. The previous release of
+\textsf{biblatex-chicago} provided something similar only for certain
+subsets of material from the \emph{Bluebook} guidelines for legal
+citations. That provision is very basic and has a different
rationale, so it remains both unaltered and entirely separate. With
this release, in the notes \&\ bibliography style only, I have
provided Chicago-style back references for all other entry types,
-enabled through the new \mycolor{\texttt{noteref}} preamble option.
-(Cf.\ \href{file:cms-noteref-demo.pdf}{\textsf{cms-noteref-demo.pdf}}
-for a brief introduction.)
+enabled through the \texttt{noteref} preamble option. (Cf.\
+\href{file:cms-noteref-demo.pdf}{\textsf{cms-noteref-demo.pdf}} for a
+brief introduction.)
\mylittlespace Before embarking on a description of this new option,
and its many sub-options, I would like to point out that
@@ -7032,18 +7484,18 @@ readers navigate long documents. I have made many improvements to the
\textsf{biblatex-chicago hyperref} interface, so electronic documents
can, at your discretion, contain clickable links from short notes to
long notes or, in a document with all short notes, from such notes to
-bibliography entries. (The \mycolor{\textsf{noteref}} mechanism
-cooperates well with \textsf{hyperref}, and therefore can add another
-layer of links to those already available.) \textsf{Biblatex} also
-offers the \texttt{refsection} and \texttt{citereset} preamble
-options, which allow you to choose how its citation trackers behave.
-Using these you can, for example, always have a long note appear for a
-given source at its first appearance in a chapter or a section,
-something which the \emph{Manual} recommends in any case, and which
-may mean that your short notes are never too \enquote{far} from a
-longer citation. (See \textsf{biblatex.pdf, \S~3.1.2.1}.)
-
-\mylittlespace All \colmarginpar{\texttt{noteref}} the same, sometimes
+bibliography entries. (The \textsf{noteref} mechanism cooperates well
+with \textsf{hyperref}, and therefore can add another layer of links
+to those already available.) \textsf{Biblatex} also offers the
+\texttt{refsection} and \texttt{citereset} preamble options, which
+allow you to choose how its citation trackers behave. Using these you
+can, for example, always have a long note appear for a given source at
+its first appearance in a chapter or a section, something which the
+\emph{Manual} recommends in any case, and which may mean that your
+short notes are never too \enquote{far} from a longer citation. (See
+\textsf{biblatex.pdf, \S~3.1.2.1}.)
+
+\mylittlespace All \mymarginpar{\texttt{noteref}} the same, sometimes
chapters or sections can get rather long, or a too-frequent
reappearance of the long form may not be optimal for your work, so in
such situations the \texttt{noteref} option may well prove useful.
@@ -7058,7 +7510,7 @@ configurable --- please see below.) If a back reference is to be
printed, then the value of the \texttt{noteref} option determines what
it will look like. Its six possible values are:
-{\renewcommand{\descriptionlabel}[1]{\qquad\mycolor{\texttt{#1}}}
+{\renewcommand{\descriptionlabel}[1]{\qquad\texttt{#1}}
\begin{description}
\item[none:] This is the default, and will always produce a back
reference like this: (see n.~1). It may well be useful when you are
@@ -7082,10 +7534,10 @@ it will look like. Its six possible values are:
\texttt{parts, chapters, sections, or subsections} will the actual
division type appear in the \texttt{noteref}. If you want the
longer form in \emph{all} of your \texttt{noterefs}, you can set
- \colmarginpar{\texttt{fullnoterefs}} the \textsf{biblatex-chicago}
- option \mycolor{\texttt{fullnoterefs}} to \texttt{true} when loading
- the package. In endnotes, depending on which options you've chosen
- for presenting them, you may well never get the short version of the
+ \mymarginpar{\texttt{fullnoterefs}} the \textsf{biblatex-chicago}
+ option \texttt{fullnoterefs} to \texttt{true} when loading the
+ package. In endnotes, depending on which options you've chosen for
+ presenting them, you may well never get the short version of the
back reference. Please see the details starting on
page~\pageref{sec:endnoterefs}, below.
\item[section:] This key is particularly intended for documents, like
@@ -7140,27 +7592,27 @@ haven't tested \texttt{noteref} at all extensively against the
possibilities offered by CTAN, so please do let me know if something
breaks for you.
-\mylittlespace I \colmarginpar{\texttt{noterefinterval}} mentioned
+\mylittlespace I \mymarginpar{\texttt{noterefinterval}} mentioned
above that the gap between appearances of a \texttt{noteref} for a
given source was configurable. What I had in mind was this option,
along with four new citation commands which I discuss below. The
-\mycolor{\texttt{noterefinterval}} preamble option allows you to
-define the number of references that must have intervened since the
-last \texttt{noteref} before another to the same source will appear.
-If you judge that your readers don't need a pointer on every new page
-but only after a certain number of other citations have passed, you
-can set this to a number higher than zero (the default). You can't,
+\texttt{noterefinterval} preamble option allows you to define the
+number of references that must have intervened since the last
+\texttt{noteref} before another to the same source will appear. If
+you judge that your readers don't need a pointer on every new page but
+only after a certain number of other citations have passed, you can
+set this to a number higher than zero (the default). You can't,
currently, use this mechanism to make new pointers appear on the same
-page as previous ones, but you can spread them out if they appear
-too frequently for your tastes. Also, the counter that this option
-uses is \texttt{instcount}, which will be incremented not only by new
+page as previous ones, but you can spread them out if they appear too
+frequently for your tastes. Also, the counter that this option uses
+is \texttt{instcount}, which will be incremented not only by new
references but also, e.g., by uses of the \textsf{related}
functionality to extract data from other entries. A value of
\texttt{15} may not delay a reappearance for exactly that many notes,
so you will need to experiment a little to find a value that suits
your document.
-\mylittlespace If \colmarginpar{\cmd{shortrefcite}\\
+\mylittlespace If \mymarginpar{\cmd{shortrefcite}\\
\cmd{shorthand-}\\\texttt{refcite}\\ \cmd{shortcite*}\\
\cmd{shorthandcite*}} you require more fine-grained control over the
spacing between \texttt{noterefs}, or indeed if you want them to
@@ -7190,7 +7642,7 @@ to appear in your \texttt{noterefs}, you can either make sure no
citations occur in contexts that will produce them, or you can use a
combination of the next three options to hide them.
-\mylittlespace This \colmarginpar{\texttt{noterefintro}} option is
+\mylittlespace This \mymarginpar{\texttt{noterefintro}} option is
special in that it handles only zeros that occur in the \emph{first}
position in a sectioning identifier, e.g., \S~0.x.x or chap.~0. It's
possible that this zero represents some sort of introductory material
@@ -7206,7 +7658,7 @@ Both will work, particularly because you don't need to worry too much
about capitalization because the word always appears after the
\verb+\bibstring{see}+.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace Now, it's perfectly possible for an introduction to
have numbered sections of its own, so a citation there may produce a
@@ -7220,9 +7672,9 @@ document class provides a \cmd{chapter} command --- such a reference
will either print the zero after the \texttt{noterefintro} string, or
you can use the \texttt{pagezeros} option, to which I turn.
-\mylittlespace This \colmarginpar{\texttt{pagezeros}} boolean option
-deals with the problem of zero sections by changing such
-back references, and only such back references, to behave as though
+\mylittlespace This \mymarginpar{\texttt{pagezeros}} boolean option
+deals with the problem of zero sections by changing such back
+references, and only such back references, to behave as though
\texttt{noteref=page}. In the absence of a \textsf{noterefintro}
\emph{all} such zero citations will be so treated, but if both options
are set then zero sections with the zero in the first position of the
@@ -7246,7 +7698,7 @@ As you see, this produces a mixed system of back references, so you'll
need to decide whether you and your readers might still find it
acceptable.
-\mylittlespace This \colmarginpar{\texttt{hidezeros}} boolean option
+\mylittlespace This \mymarginpar{\texttt{hidezeros}} boolean option
attempts, with varying degrees of success, to disguise the zeros in
section identifiers without mixing different sorts of back reference
in one document. Unlike \texttt{pagezeros}, it will never modify
@@ -7268,7 +7720,7 @@ avoided it. Here are some examples of how it looks:
1.0 ---> (see \S~1.1 [pref.], n.~1)
\end{verse}
-The \colmarginpar{\cmd{cmspref}} brackets and placement of the
+The \mymarginpar{\cmd{cmspref}} brackets and placement of the
identifying string are hard coded, but you can change the string
itself with a line something like this in your preamble:\\
\verb+\renewrobustcmd{\cmspref}{\emph{pref.\@}}+ <--- \textbf{NB} the
@@ -7289,7 +7741,7 @@ packages, users of the latter will face some additional complications
if they wish to provide Chicago-style back references. I document
these forthwith.
-\subsubsection*{Endnotes and \mycolor{\texttt{noteref}}}
+\subsubsection*{Endnotes and \texttt{noteref}}
\label{sec:endnoterefs}
The traditional way to provide endnotes instead of footnotes in a
@@ -7303,17 +7755,17 @@ Niederberger's \textsf{enotez}. This adds all the needed
functionality, I think, and is also more future proof, relying as it
does on the work of the \LaTeX 3 project. The downside is that my
\TeX nical abilities fell short of being able to make it work with the
-\mycolor{\texttt{noteref}} option, so I have instead created a new
-package \colmarginpar{\small\texttt{\textbf{cmsendnotes.sty}}} which
-combines functionality from \textsf{endnotes}, from Ulrich Dirr's
+\texttt{noteref} option, so I have instead created a new package
+\mymarginpar{\small\texttt{\textbf{cmsendnotes.sty}}} which combines
+functionality from \textsf{endnotes}, from Ulrich Dirr's
\textsf{hyperendnotes}, and from \textsf{biblatex-chicago}. If you
need some functionality that \textsf{endnotes} doesn't provide, then
-you can load \mycolor{\textsf{cmsendnotes}} instead. (I haven't
-tested any of this with the \textsf{memoir} class, which has its own
-endnote mechanism, so please let me know if it doesn't work and I'll
-try to have a look.) The documentation that follows should clarify
-when you might want to load the new package, and also the options
-available to get \textsf{cmsendnotes} to do what you want.
+you can load \textsf{cmsendnotes} instead. (I haven't tested any of
+this with the \textsf{memoir} class, which has its own endnote
+mechanism, so please let me know if it doesn't work and I'll try to
+have a look.) The documentation that follows should clarify when you
+might want to load the new package, and also the options available to
+get \textsf{cmsendnotes} to do what you want.
\mylittlespace Before we begin, I should just point out that, as usual
with \textsf{biblatex}, you can mix foot- and endnotes in the same
@@ -7375,21 +7827,21 @@ for changing the default appearance of your endnotes, four of which
are package options to \textsf{cmsendnotes} and two of which are
commands that you can redefine to your liking.
-\mylittlespace Two \colmarginpar{\texttt{hyper}} package options
+\mylittlespace Two \mymarginpar{\texttt{hyper}} package options
control the \textsf{hyperref} behavior of endnote numbers. They are
both set to \texttt{true} by default, if the \textsf{hyperref} package
is loaded. If you set the first, \texttt{hyper}, to \textsf{false}
when loading \textsf{cmsendnotes}, there will be no hyperlinking of
-endnote numbers at all. If you \colmarginpar{\texttt{enotelinks}} set
+endnote numbers at all. If you \mymarginpar{\texttt{enotelinks}} set
the second, \texttt{enotelinks}, which I've borrowed from
\textsf{hyperendnotes.sty}, to \texttt{false}, then only endnote
numbers in the main text will function as links, the numbers in the
endnote sections themselves ceasing to act as such.
-\mylittlespace This \colmarginpar{\texttt{noheader}} package option,
-if set to \texttt{true}, stops the printing of the usual section
-header before the endnotes themselves, in case this might help to
-solve some formatting problems in your documents.
+\mylittlespace This \mymarginpar{\texttt{noheader}} package option, if
+set to \texttt{true}, stops the printing of the usual section header
+before the endnotes themselves, in case this might help to solve some
+formatting problems in your documents.
\mylittlespace This \mymarginpar{\cmd{enoteheading}} is the standard
\textsf{endnotes} package command for defining exactly what is printed
@@ -7397,29 +7849,27 @@ in the heading. I have slightly redefined it (for reasons I shall
explain later), but you can redefine it in your preamble if you wish,
and that will be respected by \textsf{cmsendnotes}.
-\mylittlespace This \colmarginpar{\texttt{blocknotes}} package option,
+\mylittlespace This \mymarginpar{\texttt{blocknotes}} package option,
if set to \texttt{true}, presents the text of each endnote as a
flush-left block, i.e., without the first line being indented.
-\mylittlespace This \colmarginpar{\cmd{enoteskip}} command, which was
+\mylittlespace This \mymarginpar{\cmd{enoteskip}} command, which was
inspired by a similar provision in \textsf{hyperendnotes.sty}, sets
the vertical space between individual endnotes. By default it doesn't
change basic interline space, but you can define it in your preamble
to something like \cmd{smallskip} or \cmd{medskip} in case you want a
bit more light inside your endnote sections.
-\mylittlespace So far, then, I have discussed contexts where
+\mylittlespace So far, then, I have discussed contexts where using
\textsf{cmsendnotes.sty} only brings cosmetic changes to functionality
which basically already works using \textsf{endnotes.sty}. Indeed, if
you are using either of these packages in the ways already outlined,
-then the setting of the main \mycolor{\texttt{noteref}} option defines
-how your back references will look, and
-\colmarginpar{\texttt{fullnoterefs}} the
-\mycolor{\texttt{fullnoterefs}} option will still govern the
-\mycolor{\texttt{chapter}}, \mycolor{\texttt{section}},
-\mycolor{\texttt{subsection}}, and \mycolor{\texttt{part}} values of
-the \texttt{noteref} option, just as in the general discussion above.
-In the methods discussed below, additional steps are required for
+then the setting of the main \texttt{noteref} option defines how your
+back references will look, and \mymarginpar{\texttt{fullnoterefs}} the
+\texttt{fullnoterefs} option will still govern the \texttt{chapter},
+\texttt{section}, \texttt{subsection}, and \texttt{part} values of the
+\texttt{noteref} option, just as in the general discussion above. In
+the methods discussed below, additional steps are required for
defining how your back references will look, and the
\texttt{fullnoterefs} option is irrelevant, as the back references
will always appear in their fullest form.
@@ -7457,25 +7907,25 @@ than the first, but in any case I'll start by explaining the automatic
provisions, then move on to the two handcrafted options, leaving you
to judge which seems best suited to your needs.
-\enlargethispage{-\baselineskip}
+\enlargethispage{\baselineskip}
-\mylittlespace For \colmarginpar{\texttt{\textbf{split}}} the
-automatic subdivision of an endnotes section I have borrowed a
-concept, if not its implementation, from \textsf{enotez}, and provided
-the \textsf{cmsendnotes} option \mycolor{\texttt{split}}, which has 4
-possible values: \texttt{part}, \texttt{chapter}, \texttt{section} and
+\mylittlespace For \mymarginpar{\texttt{\textbf{split}}} the automatic
+subdivision of an endnotes section I have borrowed a concept, if not
+its implementation, from \textsf{enotez}, and provided the
+\textsf{cmsendnotes} option \texttt{split}, which has 4 possible
+values: \texttt{part}, \texttt{chapter}, \texttt{section} and
\texttt{subsection}. (If you don't provide a key, it defaults to
\texttt{chapter}.) With this option set, you need to use a new
command for printing the endnotes, the ungainly
-\colmarginpar{\cmd{\textbf{theendnotes\-bypart}}} but I hope memorable
-\mycolor{\cmd{theendnotesbypart}}. When you do this,
-\textsf{cmsendnotes} does something in the background that's worth
-understanding. Ordinarily, in the standard \textsf{endnotes} package,
-any call to \cmd{theendnotes} produces an\ .ent file containing all of
-the endnote data in the document up to that point, and proceeds to
-print it. Another call to \cmd{theendnotes} gathers the endnote data
-occurring between it and the first call, overwriting the\ .ent file,
-and again printing it, and so on. Whenever you use any version of
+\mymarginpar{\cmd{\textbf{theendnotes\-bypart}}} but I hope memorable
+\cmd{theendnotesbypart}. When you do this, \textsf{cmsendnotes} does
+something in the background that's worth understanding. Ordinarily,
+in the standard \textsf{endnotes} package, any call to
+\cmd{theendnotes} produces an\ .ent file containing all of the endnote
+data in the document up to that point, and proceeds to print it.
+Another call to \cmd{theendnotes} gathers the endnote data occurring
+between it and the first call, overwriting the\ .ent file, and again
+printing it, and so on. Whenever you use any version of
\cmd{theendnotesbypart}, \textsf{cmsendnotes} will write one\ .ent
file per section named by the \texttt{split} option, assuming that
said section actually contains any endnotes. The plain
@@ -7560,13 +8010,13 @@ as described in the footnote section above, but with one or two
additional caveats.
\mylittlespace First, I probably shouldn't have bothered trying to
-implement the combination of \texttt{note\-refintro} and
+implement the combination of \texttt{noterefintro} and
\texttt{hidezeros}, as any sections of a zero chapter in your document
will appear by default with zeros intact in the text itself, unless
-measures are taken. I did \colmarginpar{\cmd{cmsintrosec\-tion}} do
-this thing, however, and part of the implementation is a command
-\mycolor{\cmd{cmsintrosection}}, which provides the identifying string
-for subsections of the introduction. It is set by default to \S, and
+measures are taken. I did \mymarginpar{\cmd{cmsintrosection}} do this
+thing, however, and part of the implementation is a command
+\cmd{cmsintrosection}, which provides the identifying string for
+subsections of the introduction. It is set by default to \S, and
though you can redefine it in your preamble, please remember that it
will appear as such in both \cmd{subsection*} names and
\texttt{noterefs}.
@@ -7574,8 +8024,8 @@ will appear as such in both \cmd{subsection*} names and
\mylittlespace Indeed, it is the need to cater for two quite distinct
contexts that makes the automatic provision of \textsf{noteref} back
references in a divided endnotes section surprisingly tricky. You
-need \colmarginpar{\cmd{introduction\-name}\\\cmd{forewordname}\\
- \cmd{sectionname}\\ \cmd{subsection\-name}} one mechanism to take
+need \mymarginpar{\cmd{introduction\-name}\\\cmd{forewordname}\\
+ \cmd{sectionname}\\ \cmd{subsectionname}} one mechanism to take
\texttt{chapter} and turn it into Chapter, and quite another to turn
it into chap., bearing in mind that \cmd{bibstrings} don't work
outside of the reference apparatus, and therefore not in
@@ -7601,7 +8051,7 @@ otherwise you can just cunningly craft a string that's good in both
contexts or you can define a \cmd{[value]name} command and a new
\cmd{bibstring} for the value in your language, both in your preamble.
-\mylittlespace The \colmarginpar{\texttt{subheadername}} same caveat
+\mylittlespace The \mymarginpar{\texttt{subheadername}} same caveat
applies if you want to supply your own name for the \cmd{subsection*}
commands that divide up the general endnotes \cmd{section*}. Let's
say for some reason you want subsections called \textbf{Further
@@ -7621,48 +8071,46 @@ convenient, but it's slightly less typing than the handcrafted options
I discuss below, though for anything more complicated you'll probably
need those options.
-\mylittlespace Before \colmarginpar{\texttt{headername}} I move on to
+\mylittlespace Before \mymarginpar{\texttt{headername}} I move on to
the handcrafted methods, I should point out two more
-\textsf{cmsendnotes} options. The first,
-\mycolor{\texttt{headername}}, sets the name of the main
-\cmd{section*} command at the start of the endnotes section. It
-defaults to the usual \textsf{endnotes} package command
-\cmd{notesname}, which gives \textbf{Notes} in English. I have kept
-this separate from the standard \cmd{enoteheading} because it needs
-slightly different treatment in a divided endnotes section. If the
-definitions I have provided of \cmd{notesname} in the\ .lbx files that
-come with \textsf{biblatex-chicago} aren't to your liking, you can
-provide a string here instead, which is simpler to do because it
-shouldn't be turning up in any \texttt{noterefs}. If you'd like to
+\textsf{cmsendnotes} options. The first, \texttt{headername}, sets
+the name of the main \cmd{section*} command at the start of the
+endnotes section. It defaults to the usual \textsf{endnotes} package
+command \cmd{notesname}, which gives \textbf{Notes} in English. I
+have kept this separate from the standard \cmd{enoteheading} because
+it needs slightly different treatment in a divided endnotes section.
+If the definitions I have provided of \cmd{notesname} in the\ .lbx
+files that come with \textsf{biblatex-chicago} aren't to your liking,
+you can provide a string here instead, which is simpler to do because
+it shouldn't be turning up in any \texttt{noterefs}. If you'd like to
redefine any of the \cmd{*name} commands, the best place to do so is
very near to where you actually print the endnotes, where it can
override the definitions in the\ .lbx files (or in \textsf{babel's}
-files). Remember, too, that you can use the
-\mycolor{\texttt{noheader}} option to turn off the printing of this
-header if you just want to provide your own sectioning command
-instead.
+files). Remember, too, that you can use the \texttt{noheader} option
+to turn off the printing of this header if you just want to provide
+your own sectioning command instead.
-\mylittlespace This \colmarginpar{\texttt{runningname}}
+\mylittlespace This \mymarginpar{\texttt{runningname}}
\textsf{cmsendnotes} option controls the text that appears in running
headers in the endnotes section of your document, should you be
providing them. I have followed the style of the \textsf{endnotes}
package, so that the default reads something like: \emph{NOTES TO
CHAPTER 1}. The section name and number are controlled by the other
options already discussed, but the \enquote{Notes to} part is
-controlled by \mycolor{\texttt{runningname}}, so if your document
-isn't in English, and/or you're unhappy with the default string, you
-can change it when loading \textsf{cmsendnotes}.
+controlled by \texttt{runningname}, so if your document isn't in
+English, and/or you're unhappy with the default string, you can change
+it when loading \textsf{cmsendnotes}.
-\mylittlespace Should \colmarginpar{\texttt{\textbf{endnotesplit}}}
-the options above not fulfil your needs, you can control more or less
-all parts of the subdivision of your endnotes section, of the running
+\mylittlespace Should \mymarginpar{\texttt{\textbf{endnotesplit}}} the
+options above not fulfil your needs, you can control more or less all
+parts of the subdivision of your endnotes section, of the running
headers there, and of back references from short notes to full ones,
by providing your own sectioning commands in your document. If you
wish to use \texttt{noteref} back references in this context, you
\mymarginpar{\textbf{NB}} must first set the \textsf{biblatex-chicago}
-option \mycolor{\texttt{endnotesplit}} to \texttt{true}, no matter
-which of the two possible implementation methods you choose. With the
-standard \textsf{endnotes} package you would then use the command
+option \texttt{endnotesplit} to \texttt{true}, no matter which of the
+two possible implementation methods you choose. With the standard
+\textsf{endnotes} package you would then use the command
\cmd{addtoendnotes}, while with \textsf{cmsendnotes} it involves
variants of the endnote-printing command \cmd{theendnotesbypart}.
(Please note, first, that \cmd{addtoendnotes} still works with
@@ -7674,25 +8122,25 @@ notes.)
\mylittlespace First, \mymarginpar{Handcrafting
w/\\\texttt{cmsendnotes}} I introduce the methods provided by
\textsf{cmsendnotes}. The command \cmd{theendnotesbypart} has three
-variants. The first, \mycolor{\cmd{theendnotesbypart*}}, simply
-suppresses the printing of the \texttt{headername}, so it works more
-or less like setting \texttt{noheader} in the options to
-\textsf{cmsendnotes}. The other two involve an optional argument,
-\colmarginpar{\cmd{theendnotes\-bypart[]}} in square brackets,
+variants. The first, \cmd{theendnotesbypart*}, simply suppresses the
+printing of the \texttt{headername}, so it works more or less like
+setting \texttt{noheader} in the options to \textsf{cmsendnotes}. The
+other two involve an optional argument,
+\mymarginpar{\cmd{theendnotes\-bypart[]}} in square brackets,
containing an individual section number, which prints the endnotes
from that section. This command never prints the general endnote
section header (as controlled by the \texttt{headername} option), but
it will print the individual
-\colmarginpar{\cmd{theendnotes\-bypart*[]}} section's subheader, as
+\mymarginpar{\cmd{theendnotes\-bypart*[]}} section's subheader, as
controlled by the \texttt{subheadername} option. To turn that
printing off you can either use the starred version of the command,
-i.e., \mycolor{\cmd{theendnotesbypart*[]}}, or you can set the
-\textsf{cmsendnotes} option \colmarginpar{\texttt{nosubheader}}
-\mycolor{\texttt{nosubheader}} to \texttt{true}. A sequence of
-commands, each with one section of the document inside square
-brackets, will give you a complete endnotes section wherever you
-decide to place it, while the starred forms or \texttt{nosubheader}
-option allow you to create your own subheaders before each subsection.
+i.e., \cmd{theendnotesbypart*[]}, or you can set the
+\textsf{cmsendnotes} option \mymarginpar{\texttt{nosubheader}}
+\texttt{nosubheader} to \texttt{true}. A sequence of commands, each
+with one section of the document inside square brackets, will give you
+a complete endnotes section wherever you decide to place it, while the
+starred forms or \texttt{nosubheader} option allow you to create your
+own subheaders before each subsection.
\mylittlespace First, \mymarginpar{\textbf{NB}} please note that what
you need to place inside the square brackets is the \emph{number that
@@ -7787,16 +8235,16 @@ than scattered throughout, as when you use \textsf{endnotes'}
\mylittlespace To \mymarginpar{Handcrafting w/ \textsf{endnotes}} use
the \textsf{endnotes} package with its main command \cmd{theendnotes}
to produce a subdivided endnotes section, you must first remember to
-set the \textsf{biblatex-chicago} option
-\mycolor{\texttt{endnotesplit}} to \texttt{true}, that is, assuming
-you want to provide \texttt{noteref} back references. For splitting
-the endnotes, you \mymarginpar{\cmd{addtoendnotes}} need the
-\cmd{addtoendnotes} command, which you have to place in your document
-yourself. Ordinarily, you'll need one such command for each relevant
-division of your text, placed just after the sectioning command
-itself, so that any endnotes that occur in the section will appear
-grouped underneath the heading you provide. At the next section,
-another such command starts a new subsection of endnotes.
+set the \textsf{biblatex-chicago} option \texttt{endnotesplit} to
+\texttt{true}, that is, assuming you want to provide \texttt{noteref}
+back references. For splitting the endnotes, you
+\mymarginpar{\cmd{addtoendnotes}} need the \cmd{addtoendnotes}
+command, which you have to place in your document yourself.
+Ordinarily, you'll need one such command for each relevant division of
+your text, placed just after the sectioning command itself, so that
+any endnotes that occur in the section will appear grouped underneath
+the heading you provide. At the next section, another such command
+starts a new subsection of endnotes.
\mylittlespace To provide the same endnotes section divided by chapter
that we've already discussed above, your commands will look something
@@ -7905,7 +8353,7 @@ that calls \textsf{cms-american.lbx}, which means that you'll lose all
the Chicago-specific bibstrings I've defined unless you provide, in
your preamble, a \cmd{DeclareLanguageMapping} command adapted for your
setup, on which see section~\ref{sec:international} below and also
-§§~4.9.1 and 4.11.8 in \textsf{biblatex.pdf}.
+\S\S~4.9.1 and 4.11.8 in \textsf{biblatex.pdf}.
\mylittlespace What you \emph{will not} lose is the ability to call
the package options \texttt{annotation, strict, short,} and
@@ -7944,8 +8392,8 @@ provide as much information as is available, including fields that
users may well wish not to have printed (ISBN, URL, DOI,
\textsf{pagetotal}, inter alia). The standard \textsf{biblatex}
styles contain a series of options, detailed in \textsf{biblatex.pdf}
-§3.1.2.2, for controlling the printing of some of these fields, and I
-have implemented the ones that are relevant to
+\S~3.1.2.2, for controlling the printing of some of these fields, and
+I have implemented the ones that are relevant to
\textsf{biblatex-chicago}, along with a couple that Scot requested and
that may be of more general usefulness. There is also a general
option to excise with one command all the fields under consideration
@@ -8006,10 +8454,10 @@ and which \textsf{biblatex-chicago-authordate} always modifies
according to the guidelines in chapter 15. The second author-date
style, \textsf{biblatex-chicago-authordate-trad}, implements the same
specification but with a markedly different style of title
-presentation, including sentence-style capitalization and an absence
-of quotation marks around the (plain-text) titles of \textsf{article}
-or \textsf{incollection} entries, \emph{inter alia}. The
-\textsf{trad} style is so named because older versions of the
+presentation, including sentence-style capitalization and the absence
+of any quotation marks around the (plain-text) titles of
+\textsf{article} or \textsf{incollection} entries, \emph{inter alia}.
+The \textsf{trad} style is so named because older versions of the
\emph{Manual}, up to and including the 15th edition, recommended this
plainer style for author-date titles, and the 17th edition itself
suggests the possibility, when needed, of retaining such title
@@ -8047,24 +8495,23 @@ included the reference keys from the latter file below in parentheses.
\label{sec:types:authdate}
The complete list of entry types currently available in
-\textsf{authordate} and \textsf{authordate-trad},
-minus the odd \textsf{biblatex} alias, is as follows:
-\textbf{article}, \mycolor{\textbf{artwork}}, \textbf{audio},
-\textbf{book}, \textbf{bookinbook}, \textbf{booklet},
-\textbf{collection}, \textbf{customc}, \mycolor{\textbf{dataset}},
-\textbf{image}, \textbf{inbook}, \textbf{incollection},
-\textbf{inproceedings}, \textbf{inreference}, \textbf{jurisdiction},
-\textbf{legal}, \textbf{legislation}, \textbf{letter},
-\textbf{manual}, \textbf{misc}, \textbf{music}, \textbf{mvbook},
-\textbf{mvcollection}, \textbf{mvproceedings}, \textbf{mvreference},
-\textbf{online} (with its alias \textbf{www}), \textbf{patent},
-\mycolor{\textbf{performance}}, \textbf{periodical},
-\textbf{proceedings}, \textbf{reference}, \textbf{report} (with its
-alias \textbf{techreport}), \textbf{review},
-\mycolor{\textbf{standard}}, \textbf{suppbook},
-\textbf{suppcollection}, \textbf{suppperiodical}, \textbf{thesis}
-(with its aliases \textbf{mastersthesis} and \textbf{phdthesis}),
-\textbf{unpublished}, and \textbf{video}.
+\textsf{authordate} and \textsf{authordate-trad}, minus the odd
+\textsf{biblatex} alias, is as follows: \textbf{article},
+\textbf{artwork}, \textbf{audio}, \textbf{book}, \textbf{bookinbook},
+\textbf{booklet}, \textbf{collection}, \textbf{customc},
+\textbf{dataset}, \textbf{image}, \textbf{inbook},
+\textbf{incollection}, \mycolor{\textbf{inproceedings}},
+\textbf{inreference}, \textbf{jurisdiction}, \textbf{legal},
+\textbf{legislation}, \textbf{letter}, \textbf{manual}, \textbf{misc},
+\textbf{music}, \textbf{mvbook}, \textbf{mvcollection},
+\textbf{mvproceedings}, \textbf{mvreference}, \textbf{online} (with
+its alias \textbf{www}), \textbf{patent}, \textbf{performance},
+\textbf{periodical}, \mycolor{\textbf{proceedings}},
+\textbf{reference}, \textbf{report} (with its alias
+\textbf{techreport}), \textbf{review}, \textbf{standard},
+\textbf{suppbook}, \textbf{suppcollection}, \textbf{suppperiodical},
+\textbf{thesis} (with its aliases \textbf{mastersthesis} and
+\textbf{phdthesis}), \textbf{unpublished}, and \textbf{video}.
\mylittlespace What follows is an attempt to specify all the
differences between these types and the standard provided by
@@ -8108,12 +8555,11 @@ reference have much in common. (For \textsf{article}, see
\emph{Manual} 14.168--87, 15.9, 15.46--49; batson, beattie:crime,
chu:panda, connell:chronic, conway:evolution, friedman:learning,
garaud:gatine, garrett, hlatky:hrt, kern, lewis, loften:hamlet,
-loomis:structure, rozner:liberation, schneider:mittelpleistozaene,
+loomis:structure, rozner:liberation, schneider\hc mittelpleistozaene,
terborgh:preservation, wall:radio, warr:ellison,
-white:callima\-chus. For \textsf{entrysubtype} \texttt{maga\-zine},
-cf.\ 14.171, 14.188--200, 15.49; assocpress:gun,
-lakeforester:pushcarts, morgenson:market, reaves:rosen,
-stenger:privacy.)
+white:callimachus. For \textsf{entrysubtype} \texttt{magazine}, cf.\
+14.171, 14.188--200, 15.49; assocpress:gun, lakeforester:pushcarts,
+morgenson:market, reaves:rosen, stenger:privacy.)
\mylittlespace The \emph{Manual} suggests that, no matter which
citation style you are using, it is \enquote{usually sufficient to
@@ -8295,16 +8741,16 @@ these facilities here. The title of the specific entry goes in
\textsf{journaltitle}, and the word \enquote{\texttt{blog}} in the
\textsf{location} field (though you could just use special formatting
in the \textsf{journaltitle} field itself, which may sometimes be
-necessary). The 17th \colmarginpar{New!} edition specifies that
-\enquote{blogs that are part of a larger publication should include
- the name of that publication.} This usually involves a newspaper or
-magazine which also publishes various blogs on its website, and it
-means that such entries need a more general title than the
-\textsf{journaltitle}. It's not standard \textsf{biblatex} or
-anything, but you can now put such information in \textsf{maintitle}
-(with \textsf{mainsubtitle} and \textsf{maintitleaddon}, if needed),
-but only in \textsf{article} and \textsf{review} entries with a
-\texttt{magazine} \textsf{entrysubtype} (amlen:hoot).
+necessary). The 17th edition specifies that \enquote{blogs that are
+ part of a larger publication should include the name of that
+ publication.} This usually involves a newspaper or magazine which
+also publishes various blogs on its website, and it means that such
+entries need a more general title than the \textsf{journaltitle}.
+It's not standard \textsf{biblatex} or anything, but you can now put
+such information in \textsf{maintitle} (with \textsf{mainsubtitle} and
+\textsf{maintitleaddon}, if needed), but only in \textsf{article} and
+\textsf{review} entries with a \texttt{magazine} \textsf{entrysubtype}
+(amlen:hoot).
\mylittlespace The \emph{Manual} (15.51) is even more emphatic about
whole blogs (rather than individual posts) and comments on blogs not
@@ -8320,8 +8766,8 @@ Such comments make particular use of the \textsf{eventdate} and
\textsf{nameaddon} fields, and also of specialized \textbf{customc}
entries for adding comments to in-text citations. Please see the
documentation of \textbf{customc}, \textbf{periodical}, and
-\textbf{review}, the \textsf{relatedtype} \mycolor{\texttt{commenton}}
-in section~\ref{sec:authrelated}, and the general discussion of online
+\textbf{review}, the \textsf{relatedtype} \texttt{commenton} in
+section~\ref{sec:authrelated}, and the general discussion of online
sources in the \textbf{online} documentation.
\mylittlespace Ninth, the special \textsf{biblatex} field
@@ -8333,13 +8779,13 @@ list. Please see the documentation of \textbf{shortjournal} in
section~\ref{sec:fields:authdate} for all the details on how this
works.
-\mylittlespace Finally, \colmarginpar{New!} the 17th edition (14.191)
-specifies that, for news sites carrying \enquote{stories as they
- unfold, it may be appropriate to include a time stamp for an article
- that includes one.} You can provide this by using the standard
-\textsf{biblatex} time stamp format inside the \textsf{date} field,
-e.g., \texttt{2008-07-01T10:18:00}. Since the \emph{Manual} prefers
-the standard time zone initialisms, a separate \textsf{timezone} field
+\mylittlespace Finally, the 17th edition (14.191) specifies that, for
+news sites carrying \enquote{stories as they unfold, it may be
+ appropriate to include a time stamp for an article that includes
+ one.} You can provide this by using the standard \textsf{biblatex}
+time stamp format inside the \textsf{date} field, e.g.,
+\texttt{2008-07-01T10:18:00}. Since the \emph{Manual} prefers the
+standard time zone initialisms, a separate \textsf{timezone} field
would be required if you want to provide one.
\mylittlespace If you're still with me, allow me to recommend that you
@@ -8350,17 +8796,18 @@ may be that in future releases of \textsf{biblatex-chicago} I'll be
able to simplify these procedures somewhat, but with any luck the vast
majority of sources won't require knowledge of these onerous details.
-\mybigspace Arne \colmarginpar{\textbf{artwork}} Kjell Vikhagen pointed
-out to me that none of the standard entry types were straightforwardly
-adaptable when referring to visual artworks. It's unclear that the
-\emph{Manual} (14.235) believes it necessary to include them in the
-reference apparatus at all, but it's easy to conceive of contexts in
-which a list of artworks studied might be desirable, and
-\textsf{biblatex} includes entry types for just this purpose, though
-the standard styles leave them undefined. \textsf{Biblatex-chicago}
-defines both \textsf{artwork} and \textsf{image}, which are in fact
-now clones of each other, so you can use either of them indifferently,
-the distinction existing only for historical reasons.
+\mybigspace Arne \mymarginpar{\textbf{artwork}} Kjell Vikhagen
+pointed out to me that none of the standard entry types were
+straightforwardly adaptable when referring to visual artworks. It's
+unclear whether the \emph{Manual} (14.235) believes it necessary to
+include them in the reference apparatus at all, but it's easy to
+conceive of contexts in which a list of artworks studied might be
+desirable, and \textsf{biblatex} includes entry types for just this
+purpose, though the standard styles leave them undefined.
+\textsf{Biblatex-chicago} defines both \textsf{artwork} and
+\textsf{image}, which are in fact now clones of each other, so you can
+use either of them indifferently, the distinction existing only for
+historical reasons.
\mylittlespace As one might expect, the artist goes in \textsf{author}
and the name of the work in \textsf{title}. The \textsf{type} field
@@ -8375,16 +8822,15 @@ first word only needs a capital letter at the beginning of a sentence,
use lowercase in the .bib file and let \textsf{biblatex} handle it for
you. (See \emph{Manual} 3.22, 8.198; leo:madonna, bedford:photo.)
-\mylittlespace The \colmarginpar{New!} 17th edition of the
-\emph{Manual} has included new information in some of its examples, so
-I have added 4 new fields to the driver. Alongside the usual
-\textsf{date} for the creation of a work, you may also want to include
-the printing date of a particular exemplar of a photograph or a print.
-The system I have designed uses the \emph{earlier} of the
-\textsf{date} and the \textsf{origdate} to be the date of creation,
-and the \emph{later} to be the printing date. The style will
-automatically prefix the printing date with the localized
-\cmd{bibstring} \mycolor{\texttt{printed}}, so if that's the wrong
+\mylittlespace The 17th edition of the \emph{Manual} has included new
+information in some of its examples, so I have added 4 new fields to
+the driver. Alongside the usual \textsf{date} for the creation of a
+work, you may also want to include the printing date of a particular
+exemplar of a photograph or a print. The system I have designed uses
+the \emph{earlier} of the \textsf{date} and the \textsf{origdate} to
+be the date of creation, and the \emph{later} to be the printing date.
+The style will automatically prefix the printing date with the
+localized \cmd{bibstring} \texttt{printed}, so if that's the wrong
string entirely then you can define \textsf{userd} any way you like to
change it. If only \emph{one} of those two dates is available, it
will always serve as a creation date. Any date specification provided
@@ -8423,7 +8869,7 @@ Assuming the complicated date handling I've just outlined isn't
required for such a work, in this instance the other fields in a
\textsf{misc} entry function pretty much as in \textsf{artwork}.
-\mybigspace Following \colmarginpar{\textbf{audio}} the request of
+\mybigspace Following \mymarginpar{\textbf{audio}} the request of
Johan Nordstrom, I have included three entry types, all undefined by
the standard styles, designed to allow users to present audiovisual
sources in accordance with the Chicago specifications. The
@@ -8469,9 +8915,9 @@ whether the pieces originate from an identifiably
concern, fills gaps in the others, and presents its sources in a more
\enquote{book-like} manner. Published musical scores need this type
--- unpublished ones would use \textsf{misc} with an
-\textsf{entrysubtype} (shapey:partita) --- as do \mycolor{podcasts}
-and such favorite educational formats as the slideshow and the
-filmstrip (danforth:podcast, greek:film\-strip, schubert:muellerin,
+\textsf{entrysubtype} (shapey:partita) --- as do podcasts and such
+favorite educational formats as the slideshow and the filmstrip
+(danforth:podcast, greek:filmstrip, schubert:muellerin,
verdi:corsaro). The \emph{Manual} (14.264) sometimes uses a similar
format for audio books (twain:audio), though, depending on the sorts
of publication facts you wish to present, this sort of material may
@@ -8513,12 +8959,12 @@ automated, localized handling, you can also now provide the string you
need in an \textsf{editor[abc]type} field, e.g.,
\enquote{\texttt{libretto by}} (verdi:corsaro).
-\mylittlespace For \colmarginpar{New!} podcasts, newly covered by the
-17th edition (14.267), the \textsf{audio} type provides the nearest
-analogue I could find, and in general most of the data should fit
-comfortably into the fields already discussed above, the episode name
-in \textsf{title} and the name of the podcast in \textsf{booktitle},
-for starters. Two details, however, need mentioning: first, the
+\mylittlespace For podcasts, newly covered by the 17th edition
+(14.267), the \textsf{audio} type provides the nearest analogue I
+could find, and in general most of the data should fit comfortably
+into the fields already discussed above, the episode name in
+\textsf{title} and the name of the podcast in \textsf{booktitle}, for
+starters. Two details, however, need mentioning: first, the
\textsf{note} field as the place to specify that it is a podcast, and
the \textsf{eventdate} field for the date of publication of the
specific episode (\textsf{title}) cited, which appears in close
@@ -8527,9 +8973,9 @@ field helps \textsf{biblatex-chicago} know that the \textsf{audio}
entry is a podcast episode, and helps it construct the entry
appropriately (danforth:podcast).
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
-\mybigspace This \colmarginpar{\textbf{book}} is the standard
+\mybigspace This \mymarginpar{\textbf{book}} is the standard
\textsf{biblatex} and \textsc{Bib}\TeX\ entry type, but the package
can automatically provide abbreviated references in the reference list
when you use a \textsf{crossref} or an \textsf{xref} field. The
@@ -8582,13 +9028,13 @@ is not enabled by default, but you can enable it in the preamble or in
the \textsf{options} field using the \texttt{booklongxref} option.
Please see \textbf{crossref} in section~\ref{sec:fields:authdate} and
\texttt{booklongxref} in section~\ref{sec:authpreset}, below. See
-harley:ancient:cart, harley:cartography, and harley:hoc for how this
-might look.
+harley:ancient:cart, harley:cartography, and harley\hc hoc for how
+this might look.
-\mybigspace This \colmarginpar{\textbf{customc}} entry type allows you
+\mybigspace This \mymarginpar{\textbf{customc}} entry type allows you
to include alphabetized cross-references to other, separate entries in
the bibliography, particularly to other names or pseudonyms, as
-recommen\-ded by the \emph{Manual}. (This is different from the usual
+recommended by the \emph{Manual}. (This is different from the usual
\textsf{crossref}, \textsf{xref}, \textsf{userf}, and \textsf{related}
mechanisms, all primarily designed to include cross-references to
other works. Cf.\ 14.81--82, 15.35). I should add immediately that,
@@ -8598,7 +9044,7 @@ required, when a reference list \enquote{includes two or more works
published by the same author but under different pseudonyms.} The
following entries in \textsf{dates-test.bib} show one way of
addressing this: creasey:ashe:blast, creasey:york:death,
-creasey:morton:hide, ashe:creasey, york:creasey and morton:creasey.
+creasey:morton:hide, ashe:creasey, york\hc creasey and morton:creasey.
In these latter cases, you would need merely to place the pseudonym in
the \textsf{author} field, and the author's real name, under which his
or her works are presented in the bibliography, in the \textsf{title}
@@ -8613,16 +9059,17 @@ if you cite the main work. (Cf.\ \textsf{userc}, below.)
will connect the two parts of the cross-reference with the word
\enquote{\emph{See}} --- or its equivalent in the document's language
--- in italics. If you wish to present it differently, you can put
-the connecting word(s) into the \textsf{nameaddon} field.
+the connecting word(s) into the \textsf{nameaddon} field, formatted as
+you wish.
\mylittlespace Finally, you may need to use this entry type if you
wish to include a comment inside the parentheses of a citation, as
specified by the \emph{Manual} (15.24). If you have a
\textsf{postnote}, then you can manually provide the punctuation and
-comment there, e.g., \cmd{autocite[4; the unrevised
+comment there, e.g., \cmd{autocite[4;~the unrevised
trans.]\{stendhal:parma\}}. Without a \textsf{postnote}, you have
two solutions. You can enable the \texttt{postnotepunct} option,
-which allows you simply to type \cmd{autocite[; the unrevised
+which allows you simply to type \cmd{autocite[;~the unrevised
trans.]\{stendhal:parma\}}, or you can use a separate
\textsf{customc} entry containing just the text of the comment in the
\textsf{title} field, \textsf{entrysubtype} \texttt{classical}, and
@@ -8631,24 +9078,23 @@ both the main text and the comment then does the trick, e.g.,
\cmd{autocites\{chicago:manual\}\{chicago:comment\}}. Cf.\
\texttt{postnotepunct} in section~\ref{sec:authuseropts}, below.
-\mylittlespace For \colmarginpar{New!} its 17th edition, the
-\emph{Manual} has provided a more detailed treatment of online
-comments, whether on blogs, mailing lists, or social media posts
-(15.50--52). Such comments \enquote{are cited only in the text, in
- reference to the related post,} an arrangement most easily created
-using \textsf{customc} entries referencing the main post. The new
-\mycolor{\texttt{commenton}} \texttt{relatedtype} in \textsf{online}
-and \textsf{review} entries attempts to automate this for you,
-creating a separate \textsf{customc} entry to be used in an
-\cmd{autocites} command together with the comment's own entry. Please
-see the details of this in the \textbf{online} and \textbf{review}
-entry types, below, and in the \mycolor{\texttt{commenton}} docs in
-section~\ref{sec:authrelated}. Cf.\ also ac:comment, diaz:surprise,
-ellis:blog, licis:diazcomment, and the associated
-automatically-created entries ellis:blog-customc and
+\mylittlespace For its 17th edition, the \emph{Manual} has provided a
+more detailed treatment of online comments, whether on blogs, mailing
+lists, or social media posts (15.50--52). Such comments \enquote{are
+ cited only in the text, in reference to the related post,} an
+arrangement most easily created using \textsf{customc} entries
+referencing the main post. The new \texttt{commenton}
+\texttt{relatedtype} in \textsf{online} and \textsf{review} entries
+attempts to automate this for you, creating a separate
+\textsf{customc} entry to be used in an \cmd{autocites} command
+together with the comment's own entry. Please see the details of this
+in the \textbf{online} and \textbf{review} entry types, below, and in
+the \texttt{commenton} docs in section~\ref{sec:authrelated}. Cf.\
+also ac:comment, diaz:surprise, ellis:blog, licis:diazcomment, and the
+associated automatically-created entries ellis:blog-customc and
diaz:surprise-customc.
-\mybigspace This \colmarginpar{\textbf{dataset}} entry type, new in
+\mybigspace This \mymarginpar{\textbf{dataset}} entry type, new in
\textsf{biblatex} 3.13, allows you to cite scientific databases, for
which the \emph{Manual} (14.257) presents some rather specific, if
brief, instructions. To construct your entry, you can put the name of
@@ -8667,18 +9113,18 @@ is available, while the \textsf{pubstate} field will appear before the
genbank:db, nasa:db.) Given that usually the only relevant date in
such entries is the access date, which means that they would usually
have \enquote{n.d.}\ at the head of reference-list entries and in
-citations, I have thought it sensible to treat
-\mycolor{\textsf{dataset}} entries by default as author-title instead
-of author-date in citations, and to stop the printing of
-\enquote{n.d.}\ in reference lists just as in \textsf{misc} entries.
-You can shorten the component parts of the author-title citation using
-the usual \textsf{shortauthor}, \textsf{shorthand}, and/or
-\textsf{shorttitle} fields, and you can also restore author-date
-formatting to these entries by setting the
-\mycolor{\texttt{authortitle}} option to \texttt{false} either in
-individual entries or in the preamble for all examples of the entry
-type.
+citations, I have thought it sensible to treat \textsf{dataset}
+entries by default as author-title instead of author-date in
+citations, and to stop the printing of \enquote{n.d.}\ in reference
+lists just as in \textsf{misc} entries. You can shorten the component
+parts of the author-title citation using the usual
+\textsf{shortauthor}, \textsf{shorthand}, and/or \textsf{shorttitle}
+fields, and you can also restore author-date formatting to these
+entries by setting the \texttt{authortitle} option to \texttt{false}
+either in individual entries or in the preamble for all examples of
+the entry type.
+\enlargethispage{\baselineskip}
\mybigspace This \mymarginpar{\textbf{image}} entry type is now a
clone of the \textsf{artwork} type, which see. I retain it here for
@@ -8688,7 +9134,7 @@ historical reasons (See 3.22, 8.198; bedford:photo.)
two standard \textsf{biblatex} types have very nearly identical
formatting requirements as far as the Chicago specification is
concerned, but I have retained both of them for compatibility.
-\textsf{Biblatex.pdf} (§~2.1.1) intends the first for \enquote{a part
+\textsf{Biblatex.pdf} (\S~2.1.1) intends the first for \enquote{a part
of a book which forms a self-contained unit with its own title,}
while the second would hold \enquote{a contribution to a collection
which forms a self-contained unit with a distinct author and its own
@@ -8711,27 +9157,30 @@ that it is also active by default in \textsf{letter} and
are referring has had a separate publishing history as a book in its
own right, then you may wish to use the \textsf{bookinbook} type,
instead, on which see above. (See \emph{Manual} 14.106--9, 15.42;
-\textsf{inbook}:\,ashbrook:brain, phibbs:diary, will:cohere;
-\textsf{incollection}:\,centi\-nel:letters, contrib:contrib,
+\textsf{inbook}: ashbrook:brain, phibbs:diary, will:cohere;
+\textsf{incollection}: centinel:letters, contrib:contrib,
sirosh:visualcortex; ellet:galena, keating:dearborn, and
lippincott:chicago [and the \textsf{collection} entry prairie:state]
demonstrate the use of the \textsf{crossref} field with its attendant
abbreviations in the list of references.)
-\enlargethispage{\baselineskip}
-
\mylittlespace \textbf{NB}: The \emph{Manual} suggests that, when
referring to a chapter, one use either a chapter number or the
inclusive page numbers, not both. In-text citations, of course,
require any \textsf{postnote} field to specify if it is a whole
chapter to which you are referring.
-\mybigspace This \mymarginpar{\textbf{inproceedings}} entry type works
-pretty much as in standard \textsf{biblatex}. Indeed, the main
-differences between it and \textsf{incollection} are the lack of an
-\textsf{edition} field and the possibility that an
-\textsf{organization} may be cited alongside the \textsf{publisher},
-even though the \emph{Manual} doesn't specify its use (14.217).
+\mybigspace This \colmarginpar{\textbf{inproceedings}} entry type
+works pretty much as in standard \textsf{biblatex}, even more so now
+that, after a request from Patrick Danilevici, I have newly included
+the \mycolor{\textsf{eventdate}}, \mycolor{\textsf{eventtitle}},
+\mycolor{\textsf{eventtitleaddon}}, and \mycolor{\textsf{venue}}
+fields for specifying where and when the event occurred that produced
+the proceedings. These four fields are the main difference between it
+and \textsf{incollection}, along with the lack of an \textsf{edition}
+field and the possibility that an \textsf{organization} may be cited
+alongside the \textsf{publisher}, even though the \emph{Manual}
+doesn't specify the use of any of these supplementary fields (14.217).
Please note, also, that the \textsf{crossref} and \textsf{xref}
mechanism for shortening citations of multiple pieces from the same
\textsf{proceedings} is operative here, just as it is in
@@ -8740,7 +9189,7 @@ mechanism for shortening citations of multiple pieces from the same
\texttt{longcrossref} in section~\ref{sec:authpreset}, below, for more
details.
-\paragraph*{\protect\colmarginpar{\textbf{inreference}}}
+\paragraph*{\protect\mymarginpar{\textbf{inreference}}}
\label{sec:ad:inreference}
This entry type is aliased to \textsf{incollection} in the standard
styles, but the \emph{Manual's} requirements prompted a thoroughgoing
@@ -8804,32 +9253,31 @@ the specific article (in \textsf{lista}), not the author of the
after the alphabetized entry's title (grove:sibelius).
\mylittlespace Finally, all of these rules apply to online reference
-works, along with a few more. The \colmarginpar{New!} 17th edition of
-the \emph{Manual} now allows, \enquote{subject to editorial
- discretion,} the alternative treatment of an online reference work
-which \enquote{does not have (and never had) a printed counterpart}
-(14.206, 14.233). In effect this means that it can be treated more
-like an \textsf{online} entry than a \textsf{book}, its \textsf{title}
-therefore in plain roman rather than in italics. You can achieve this
-in \textsf{inreference} entries by providing an \textsf{entrysubtype}
-in the entry. Online reference works need not only a \textsf{url} but
-also, always, a \textsf{urldate} (instead of a \textsf{date)}, as
-these sources are in constant flux. When that flux is of a
-particularly high frequency, as with Wikipedia, then a time stamp may
-also be needed. You can provide this in the \textsf{urldate} field
-itself, using the standard \textsf{biblatex} format, e.g.,
-\texttt{2008-07-01T10:18:00}. It is
-\colmarginpar{\texttt{urlstamp=true}} possible to turn off the
-printing of the \textsf{urltime} with the new
-\mycolor{\texttt{urlstamp}} option, which is set to \texttt{true} by
-default, but which can be changed in your preamble for the whole
-document, for specific entry types, or in the \textsf{options} field
-of specific entries (wikiped:bibtex, grove:sibelius). In keeping with
-the rules of the 17th edition, changed since the 16th, any
-\textsf{inreference} entry with no date, or with only an access date,
-as opposed to a revision date or another, more traditional publishing
-date, will use the \texttt{nodate} abbreviation at the head of the
-entry and in citations (15.44, 15.50).
+works, along with a few more. The 17th edition of the \emph{Manual}
+now allows, \enquote{subject to editorial discretion,} the alternative
+treatment of an online reference work which \enquote{does not have
+ (and never had) a printed counterpart} (14.206, 14.233). In effect
+this means that it can be treated more like an \textsf{online} entry
+than a \textsf{book}, its \textsf{title} therefore in plain roman
+rather than in italics. You can achieve this in \textsf{inreference}
+entries by providing an \textsf{entrysubtype} in the entry. Online
+reference works need not only a \textsf{url} but also, always, a
+\textsf{urldate} (instead of a \textsf{date)}, as these sources are in
+constant flux. When that flux is of a particularly high frequency, as
+with Wikipedia, then a time stamp may also be needed. You can provide
+this in the \textsf{urldate} field itself, using the standard
+\textsf{biblatex} format, e.g., \texttt{2008-07-01T10:18:00}. It is
+\mymarginpar{\texttt{urlstamp=true}} possible to turn off the
+printing of the \textsf{urltime} with the new \texttt{urlstamp}
+option, which is set to \texttt{true} by default, but which can be
+changed in your preamble for the whole document, for specific entry
+types, or in the \textsf{options} field of specific entries
+(wikiped:bibtex, grove:sibelius). In keeping with the rules of the
+17th edition, changed since the 16th, any \textsf{inreference} entry
+with no date, or with only an access date, as opposed to a revision
+date or another, more traditional publishing date, will use the
+\texttt{nodate} abbreviation at the head of the entry and in citations
+(15.44, 15.50).
\mybigspace I
\mymarginpar{\textbf{jurisdiction}\\\textbf{legal}\\\textbf{legislation}}
@@ -8884,8 +9332,7 @@ course, if you were to use a \textsf{book} entry for such a reference,
then you would need to define both \textsf{author} and
\textsf{publisher} using the name you here might have put in
\textsf{organization}. (See 14.84; chicago:manual, dyna:browser,
-natrecoff:camera. Cp.\ also the new \mycolor{\textbf{standard}} entry
-type.)
+natrecoff:camera. Cp.\ also the new \textbf{standard} entry type.)
\paragraph*{\protect\mymarginpar{\textbf{misc}}}
\label{sec:ad:misc}
@@ -8973,7 +9420,7 @@ judicious use of the \textsf{options}, \textsf{date}, and
\textsf{origdate} fields.)
\mylittlespace As in \textsf{letter} entries, the titles of
-unpublished letters are of the form \texttt{Author to Recipi\-ent},
+unpublished letters are of the form \texttt{Author to Recipient},
further information can be given in the \textsf{titleaddon} field,
while the \textsf{origlocation} field can hold the place where the
letter was written. Interviews or similar pieces will have a
@@ -8986,9 +9433,9 @@ depositories don't usually need a city, state or country specified.
\mylittlespace There are a few more subtleties involved here. Some
material (roosevelt:speech) includes a venue for the event recorded in
-the archive, so I have added the \mycolor{\textsf{venue}} field, which
-prints \emph{before} the date, with the \textsf{origlocation}
-appearing after it. Somewhat confusingly, in published letters the
+the archive, so I have added the \textsf{venue} field, which prints
+\emph{before} the date, with the \textsf{origlocation} appearing after
+it. Somewhat confusingly, in published letters the
\textsf{origlocation} itself prints before the date, rather than
after, so if the inconsistency between published and unpublished
letters bothers you then you could conceivably use \textsf{venue}
@@ -9006,7 +9453,7 @@ within your own work than conformity to some external standard, so it
is the former which you should pursue. I hope that
\textsf{biblatex-chicago} proves helpful in this regard.
-\mybigspace This \colmarginpar{\textbf{music}} is one of three
+\mybigspace This \mymarginpar{\textbf{music}} is one of three
audiovisual entry types, and is intended primarily to aid in the
presentation of musical recordings that do not have a video component,
though it can also include audio books (auden:reading). A DVD or VHS
@@ -9044,10 +9491,10 @@ into line with the spec.
options can alter the presentation within an entry. Because these
are non-standard roles, you will need to identify them using the
following:
-\item[\mycolor{editortype, editoratype, editorbtype:}] The most common
- roles, all associated with specific bibstrings (or their absence),
- will be \texttt{conductor}, \texttt{director}, \texttt{producer},
- and, oddly, \texttt{none}. The last is particularly useful when
+\item[editortype, editoratype, editorbtype:] The most common roles,
+ all associated with specific bibstrings (or their absence), will be
+ \texttt{conductor}, \texttt{director}, \texttt{producer}, and,
+ oddly, \texttt{none}. The last is particularly useful when
identifying the group performing a piece, as it usually doesn't need
further specifying and this role prevents \textsf{biblatex} from
falling back on the default \texttt{editor} bibstring. The 17th
@@ -9059,25 +9506,24 @@ into line with the spec.
by}) suits your citation.
\item[note:] This field can also hold contributors, perhaps
collaborators or featured artists (holiday:fool, rihanna:umbrella).
-\item[\mycolor{title, booktitle, maintitle:}] As with the other
- audiovisual types, \textsf{music} serves as an analogue both to
- books and to collections, so the title will either be, e.g., the
- album title or a song title, in which latter case the album title
- would go into \textsf{booktitle}. If you wish to cite a song that,
- as may happen, isn't part of any larger collection, your entry will
- in such a case have only a \textsf{title}, which
- \textsf{biblatex-chicago} would normally interpret as an album
- title. You \colmarginpar{New!} can now define an
+\item[title, booktitle, maintitle:] As with the other audiovisual
+ types, \textsf{music} serves as an analogue both to books and to
+ collections, so the title will either be, e.g., the album title or a
+ song title, in which latter case the album title would go into
+ \textsf{booktitle}. If you wish to cite a song that, as may happen,
+ isn't part of any larger collection, your entry will in such a case
+ have only a \textsf{title}, which \textsf{biblatex-chicago} would
+ normally interpret as an album title. You can now define an
\textsf{entrysubtype} to let it know that the lone \textsf{title} is
in fact a song (cf.\ naraya). The \textsf{maintitle} might be
necessary for something like a box set of \emph{Complete
Symphonies}.
-\item[\mycolor{chapter:}] The 17th edition seems more keen on having
- track numbers for individual pieces, whether on a traditional format
- or on a streaming service. The \colmarginpar{New!} \textsf{chapter}
- field is the place for this information, and
- \textsf{biblatex-chicago} will automatically prepend the localized
- string \texttt{track} (cf.\ holiday:fool, rihanna:umbrella).
+\item[chapter:] The 17th edition seems more keen on having track
+ numbers for individual pieces, whether on a traditional format or on
+ a streaming service. The \textsf{chapter} field is the place for
+ this information, and \textsf{biblatex-chicago} will automatically
+ prepend the localized string \texttt{track} (cf.\ holiday:fool,
+ rihanna:umbrella).
\item[publisher, series, number:] These three closely-associated
fields are intended for presenting the catalog information provided
by the music publisher. The 17th edition generally only requires
@@ -9131,14 +9577,14 @@ into line with the spec.
to the \textsf{origdate}, barring that to a \textsf{urldate}, and
absent those three to a \textsf{date}. (See floyd:atom,
holiday:fool, nytrumpet:art.)
-\item[type, \mycolor{howpublished}:] As in all the audiovisual entry
- types, the \textsf{type} field holds the medium of the recording,
- e.g., vinyl, 33 rpm, 8-track tape, cassette, compact disc, mp3, ogg
- vorbis. The \colmarginpar {New!} \mycolor{\textsf{howpublished}}
- field, newly included for the 17th edition, can hold similar
- information \enquote{for streaming audio formats and downloads}
- (14.263, 15.57). It can also, alternatively, hold the name of the
- streaming service, e.g., Spotify (cf.\ rihanna:umbrella).
+\item[type, howpublished:] As in all the audiovisual entry types, the
+ \textsf{type} field holds the medium of the recording, e.g., vinyl,
+ 33 rpm, 8-track tape, cassette, compact disc, mp3, ogg vorbis. The
+ \textsf{howpublished} field, newly included for the 17th edition,
+ can hold similar information \enquote{for streaming audio formats
+ and downloads} (14.263, 15.57). It can also, alternatively, hold
+ the name of the streaming service, e.g., Spotify (cf.\
+ rihanna:umbrella).
\end{description}}
The entries in \textsf{notes-test.bib} should at least give you a good
@@ -9201,7 +9647,7 @@ types here. If you should happen to leave a stray \texttt{maintitle
will use the \texttt{multivolume relatedtype} instead, which will very
likely not be what you want.
-\mybigspace One \colmarginpar{\textbf{online}} of the features of the
+\mybigspace One \mymarginpar{\textbf{online}} of the features of the
17th edition of the \emph{Manual} is the considerably extended, but
still scattered, treatment of online materials (8.189--92, 14.6--18,
14.159--63, 14.175--76, 14.187, 14.189, 14.205--10, 14.233, 15.4,
@@ -9215,10 +9661,10 @@ have included table~\ref{tab:online:adtypes} summarizing the
increasingly detailed instructions in the \emph{Manual}, along with
some further annotations here that might help to clarify it.
-\afterpage{\clearpage
+\afterpage{\clearpage\thispagestyle{longtable}
\begin{table}[h!]
- \caption[\hspace{-1em}\mycolor{Online Entry Types - Author-Date}]%
+ \caption[\hspace{-1em}Online Entry Types - Author-Date]%
{Online materials and author-date entry types}
\label{tab:online:adtypes}
\centering\small\sffamily
@@ -9249,7 +9695,7 @@ some further annotations here that might help to clarify it.
the next usually not in the ref.\ list.
\\\addlinespace[.6mm]
\hspace{.5em} Comment & @Review & & viv:amlen & The
- \mycolor{\texttt{commenton}} \textsf{relatedtype} helps manage these,
+ \texttt{commenton} \textsf{relatedtype} helps manage these,
in or out of the reference list. \\\addlinespace[.6mm]
\cmidrule(r{2em}){1-1}\addlinespace[.6mm]
Social Media & @Online & 15.52 && This includes anything ---
@@ -9265,7 +9711,7 @@ some further annotations here that might help to clarify it.
\hspace{.5em} Comments / \hspace*{.5em} replies & & 14.210
& braun:reply &This and the next are usually not included in the
reference list. The
- \mycolor{\texttt{commenton}} \textsf{relatedtype} helps manage them,
+ \texttt{commenton} \textsf{relatedtype} helps manage them,
in or out of that list.
\\
&& 14.209 & licis:diazcomment &\\\addlinespace[.6mm]
@@ -9290,7 +9736,7 @@ some further annotations here that might help to clarify it.
Streaming Media&&&& \\\addlinespace[.6mm]
\hspace*{.5em} TV / Film & @Video & 14.265 & mayberry:brady &
The streaming service is supplied by the URL. The
- \mycolor{\texttt{tvepisode}} entrysubtype is new in the 17th
+ \texttt{tvepisode} entrysubtype is new in the 17th
edition. \\\addlinespace[.6mm]
\hspace*{.5em} Music & @Music & 14.263 & rihanna:umbrella &
The streaming service is supplied by the howpublished field.
@@ -9312,7 +9758,7 @@ some further annotations here that might help to clarify it.
type & 14.233 & wikiped:bibtex & As above, you can choose the
@Online treatment of the title, but it's best achieved
using an @InReference entry w/ entrysubtype. \\\addlinespace[.6mm]
- \hspace*{.5em} Scientific data- \hspace*{.5em} bases & \mycolor{@Dataset} &
+ \hspace*{.5em} Scientific data- \hspace*{.5em} bases & @Dataset &
14.257 & genbank:db & Treated as author-title by
default.\\\addlinespace[.6 mm]
\bottomrule
@@ -9346,40 +9792,38 @@ deductively from the basic principles, I hope that the table might
simplify most of your choices. If something remains unclear, please
let me know and I'll see if I can improve it.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
-\mylittlespace A few more notes are in order. I designed the
-\colmarginpar{New!} new \textsf{relatedtype}
-\mycolor{\texttt{commenton}} to facilitate citation of online
-comments, and it is available in two entry types, \textsf{online} and
-\textsf{review}. In both types the \emph{Manual} (15.51--52)
-recommends that such material appear \emph{only} in the text and not
-in the reference list, but I have attempted to simplify the
-presentation of such material wherever you want it to appear.
+\mylittlespace A few more notes are in order. I designed the new
+\textsf{relatedtype} \texttt{commenton} to facilitate citation of
+online comments, and it is available in two entry types,
+\textsf{online} and \textsf{review}. In both types the \emph{Manual}
+(15.51--52) recommends that such material appear \emph{only} in the
+text and not in the reference list, but I have attempted to simplify
+the presentation of such material wherever you want it to appear.
Following the specifications, then, the default when you use
-\mycolor{\texttt{commenton}} is for
-\textsf{biblatex-chicago-authordate} to modify how your .bib entry
-appears in the .bbl file by setting both \texttt{skipbib} and
-\texttt{cmsdate=full} in the \textsf{options} field, so that nothing
-appears in the reference list and citations present the full date and
-possibly also a time stamp (see below). Further, the style sets the
-\mycolor{\textsf{verbc}} field so that these entries don't interfere
-with the provision of extra date letters --- the full date and time
-should be enough to individuate separate comments. Finally, the style
-creates a new \textsf{customc} entry in your .bbl file which you can
-cite after your initial \mycolor{\texttt{commenton}} entry using
-\cmd{autocites} and which will, as a comment to your initial entry,
-say whether it's a comment or a reply or what have you, and then
-giving the short citation of that upon which it is a comment.
+\texttt{commenton} is for \textsf{biblatex-chicago-authordate} to
+modify how your .bib entry appears in the .bbl file by setting both
+\texttt{skipbib} and \texttt{cmsdate=full} in the \textsf{options}
+field, so that nothing appears in the reference list and citations
+present the full date and possibly also a time stamp (see below).
+Further, the style sets the \textsf{verbc} field so that these entries
+don't interfere with the provision of extra date letters --- the full
+date and time should be enough to individuate separate comments.
+Finally, the style creates a new \textsf{customc} entry in your .bbl
+file which you can cite after your initial \texttt{commenton} entry
+using \cmd{autocites} and which will, as a comment to your initial
+entry, say whether it's a comment or a reply or what have you, and
+then giving the short citation of that upon which it is a comment.
\mylittlespace As an example, take the Facebook post diaz:surprise,
which does appear in the reference list. The entry licis:diazcomment
presents a comment on this post using the \textsf{relatedtype}
-\mycolor{\texttt{commenton}}, so \textsf{biblatex-chicago-authordate}
-creates a new entry, diaz:surprise-customc, which won't appear in your
-.bib file (which is never altered) but in the .bbl file that
-\textsf{biber} produces to supply \textsf{biblatex} with the data for
-its citations. A command like
+\texttt{commenton}, so \textsf{biblatex-chicago-authordate} creates a
+new entry, diaz:surprise-customc, which won't appear in your .bib file
+(which is never altered) but in the .bbl file that \textsf{biber}
+produces to supply \textsf{biblatex} with the data for its citations.
+A command like
\verb+\autocites{licis:diazcomment}{diaz:surprise-customc}+ will
produce a citation like (Licis, February 24, 2016; comment on D\'iaz
2016). You can alter the string connecting the two citations (by
@@ -9391,7 +9835,7 @@ this system can be --- \textsf{author}, \textsf{related},
fields required.)
\mylittlespace Those who want \textsf{online} comments to appear in
-the reference list can still use the \mycolor{\texttt{commenton}}
+the reference list can still use the \texttt{commenton}
\textsf{relatedtype}, and the same citation of the commented piece
will appear there, connected by the same string that the
\textsf{customc} entry provides. Here, though, you can also provide a
@@ -9405,8 +9849,8 @@ entries.) If you manually set either (or both) of the
\textsf{biblatex-chicago} will assume you want to hand-craft that
entry without its intervention, though it will still provide the
virtual \textsf{customc} entry in your .bbl file, as that may still
-prove convenient. Note also that any \mycolor{\textsf{verbc}} field
-you provide will never be altered by the package.
+prove convenient. Note also that any \textsf{verbc} field you provide
+will never be altered by the package.
\mylittlespace In general, constructing an \textsf{online}\ .bib file
entry is much the same as in \textsf{biblatex}. The \textsf{title}
@@ -9430,11 +9874,10 @@ field using \textsf{biblatex's} standard format, i.e.,
separate \textsf{timezone} or \textsf{urltimezone} field is the best
way, as it allows you to provide the initialisms that the
\emph{Manual} prefers (10.41, 14.191). On all of this please see
-\textsf{date}, \mycolor{\textsf{timezone}}, \textsf{urldate},
-\textsf{userd}, and \mycolor{\textsf{verbc}} in
-section~\ref{sec:fields:authdate}, below. Cf.\ also the documentation
-of the \mycolor{\texttt{commenton}} \textsf{relatedtype} in
-section~\ref{sec:authrelated}.
+\textsf{date}, \textsf{timezone}, \textsf{urldate}, \textsf{userd},
+and \textsf{verbc} in section~\ref{sec:fields:authdate}, below. Cf.\
+also the documentation of the \texttt{commenton} \textsf{relatedtype}
+in section~\ref{sec:authrelated}.
\mybigspace The \mymarginpar{\textbf{patent}} \emph{Manual} is very
brief on the subject of patents (15.55), but very clear about which
@@ -9460,13 +9903,13 @@ which seems to be the generally-accepted convention across all Chicago
specifications. If you need to keep a word capitalized then you
should wrap it in curly braces. See petroff:impurity.
-\mybigspace The \colmarginpar{\textbf{performance}} 17th edition of
+\mybigspace The \mymarginpar{\textbf{performance}} 17th edition of
the \emph{Manual} includes a new section (14.266) on citing live
performances, and even though such references can usually be limited
to the main text (cf.\ 15.57) it may sometimes be useful to include
them in a reference list. Since \textsf{biblatex} provides the
-\mycolor{\textbf{performance}} type, albeit without using it in its
-standard styles, I though it might be useful to define it for
+\textbf{performance} type, albeit without using it in its standard
+styles, I though it might be useful to define it for
\textsf{biblatex-chicago}, particularly as the other option for such
material is the \textsf{misc} entry without any \textsf{entrysubtype},
and that entry type is already somewhat overloaded, though you can
@@ -9478,8 +9921,8 @@ for the performance, along with a possible plethora of authorial
and/or editorial roles depending on which sorts of contributor(s) you
wish to emphasize in the citation. The \textsf{editor[abc]} and
\textsf{editor[abc]type} fields should be most helpful here. I have
-included strings for \mycolor{\texttt{choreographer}} in all
-localization files, but for others you may need to provide them in the
+included strings for \texttt{choreographer} in all localization files,
+but for others you may need to provide them in the
\textsf{editor[abc]type} fields as you wish them printed ---
\textsf{biblatex-chicago} will automatically capitalize any that start
with a lowercase letter. For the author-date styles it will probably
@@ -9517,28 +9960,30 @@ section~\ref{sec:fields:authdate} for all the details on how this
works. Second, although the 17th edition recommends that references
to whole blogs, as opposed to individual blog posts, need appear only
in the text (15.51), using the \textsf{periodical} type for such
-material can help with this, in or out of the reference list. The
-\colmarginpar{New!} new \mycolor{\texttt{authortitle}} entry option
-will ensure the presence of the name of the blog (as opposed to the
-non-existent date) in citations, and you could also use a
-\cmd{citeurl} command to give the URL in the text (or a note).
-Alternately, you could let the entry appear in the reference list and
-cite it in the usual way. In that list the \emph{Manual} (14.208)
-recommends that you include the name of any larger (usually
-periodical) publication of which the blog is a part. The
-\textsf{maintitle} field (with \textsf{mainsubtitle} and
+material can help with this, in or out of the reference list. The new
+\texttt{authortitle} entry option will ensure the presence of the name
+of the blog (as opposed to the non-existent date) in citations, and
+you could also use a \cmd{citeurl} command to give the URL in the text
+(or a note). Alternately, you could let the entry appear in the
+reference list and cite it in the usual way. In that list the
+\emph{Manual} (14.208) recommends that you include the name of any
+larger (usually periodical) publication of which the blog is a part.
+The \textsf{maintitle} field (with \textsf{mainsubtitle} and
\textsf{maintitleaddon}, if needed) is the place for it. Cf.\
amlen:wordplay.
-\mybigspace This \mymarginpar{\textbf{proceedings}} is the standard
-\textsf{biblatex} and \textsc{Bib}\TeX\ entry type, but the package
-can provide automatically abbreviated references in the reference list
-when you use a \textsf{crossref} or an \textsf{xref} field. The
-functionality is not enabled by default, but you can enable it in the
-preamble or in the \textsf{options} field using the
-\texttt{booklongxref} option. Please see \textbf{crossref} in
-section~\ref{sec:fields:authdate} and \texttt{booklongxref} in
-section~\ref{sec:authpreset}, below.
+\mybigspace This \colmarginpar{\textbf{proceedings}} is the standard
+\textsf{biblatex} and \textsc{Bib}\TeX\ entry type, now also including
+the \mycolor{\textsf{eventdate}}, \mycolor{\textsf{eventtitle}},
+\mycolor{\textsf{eventtitleaddon}}, and \mycolor{\textsf{venue}}
+fields for identifying the event that produced the
+\textsf{proceedings}. The package can provide automatically
+abbreviated references in the reference list when you use a
+\textsf{crossref} or an \textsf{xref} field. The functionality is not
+enabled by default, but you can enable it in the preamble or in the
+\textsf{options} field using the \texttt{booklongxref} option. Please
+see \textbf{crossref} in section~\ref{sec:fields:authdate} and
+\texttt{booklongxref} in section~\ref{sec:authpreset}, below.
\mybigspace This \mymarginpar{\textbf{reference}} entry type is
aliased to \textsf{collection} by the standard \textsf{biblatex}
@@ -9573,7 +10018,7 @@ and \textsf{manual}, you can also use a \textsf{book} entry, putting
the report type in \textsf{note} and the \textsf{institution} in
\textsf{publisher}. (See herwign:office.)
-\mybigspace As \colmarginpar{\textbf{review}} its name suggests, the
+\mybigspace As \mymarginpar{\textbf{review}} its name suggests, the
\textsf{review} entry type was designed for reviews published in
periodicals, and if you've already read the \textsf{article}
instructions above --- if you haven't, I recommend doing so now ---
@@ -9631,7 +10076,7 @@ but if it's a fuller entry also containing an \textsf{author} then
you'll also need \texttt{useauthor=false} in the \textsf{options}
field. Other surplus fields will be ignored. (See osborne:poison.)
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace \textsf{Biblatex-chicago} also, at the behest of
Bertold Schweitzer, supports the \textsf{relatedtype}
@@ -9669,42 +10114,41 @@ lowercase letter and let the automatic field formatting with
\cmd{autocap} do its work, though this isn't strictly necessary with
\textsf{biblatex-chicago-authordate}.
-\mylittlespace A \colmarginpar{New!} few details of the
-\textsf{review} type are fairly new, and in particular have changed
-between the 16th and 17th editions of the \emph{Manual}. As I
-mentioned above, blogs are best treated as \textsf{articles} with
-\texttt{magazine} \textsf{entrysubtype}, whereas comments on those
-blogs --- or replies to those comments, etc.\ --- need the
-\textsf{review} type with the same \textsf{entrysubtype}. The 17th
-edition recommends that blog comments appear only in the text, and not
-in the reference list (15.51), so just as with comments in social
-media threads, for which see the \textbf{online} type above, I have
-provided the \mycolor{\texttt{commenton}} \texttt{relatedtype} to
-simplify the presentation of such material wherever you want it to
-appear. Following the specifications, then, the default when you use
-\mycolor{\texttt{commenton}} is for
+\mylittlespace A few details of the \textsf{review} type are fairly
+new, and in particular have changed between the 16th and 17th editions
+of the \emph{Manual}. As I mentioned above, blogs are best treated as
+\textsf{articles} with \texttt{magazine} \textsf{entrysubtype},
+whereas comments on those blogs --- or replies to those comments,
+etc.\ --- need the \textsf{review} type with the same
+\textsf{entrysubtype}. The 17th edition recommends that blog comments
+appear only in the text, and not in the reference list (15.51), so
+just as with comments in social media threads, for which see the
+\textbf{online} type above, I have provided the \texttt{commenton}
+\texttt{relatedtype} to simplify the presentation of such material
+wherever you want it to appear. Following the specifications, then,
+the default when you use \texttt{commenton} is for
\textsf{biblatex-chicago-authordate} to modify how your .bib entry
appears in the .bbl file by setting both \texttt{skipbib} and
\texttt{cmsdate=full} in the \textsf{options} field, so that nothing
appears in the reference list and citations present the full date and
possibly also a time stamp (see below). Further, the style sets the
-\mycolor{\textsf{verbc}} field so that these entries don't interfere
-with the provision of extra date letters --- the full date and time
-should be enough to individuate separate comments. Finally, the style
-creates a new \textsf{customc} entry in your .bbl file which you can
-cite after your initial \mycolor{\texttt{commenton}} entry using
-\cmd{autocites} and which will, as a comment to your initial entry,
-say whether it's a comment or a reply or what have you, and then
-giving the short citation of that upon which it is a comment.
+\textsf{verbc} field so that these entries don't interfere with the
+provision of extra date letters --- the full date and time should be
+enough to individuate separate comments. Finally, the style creates a
+new \textsf{customc} entry in your .bbl file which you can cite after
+your initial \texttt{commenton} entry using \cmd{autocites} and which
+will, as a comment to your initial entry, say whether it's a comment
+or a reply or what have you, and then giving the short citation of
+that upon which it is a comment.
\mylittlespace As an example, take the blog ellis:blog, which does
appear in the reference list. The entry ac:comment presents a comment
-on this post using the \textsf{relatedtype}
-\mycolor{\texttt{commenton}}, so \textsf{biblatex-chicago-authordate}
-creates a new entry, ellis:blog-customc, which won't appear in your
-.bib file (which is never altered) but in the .bbl file that
-\textsf{biber} produces to supply \textsf{biblatex} with the data for
-its citations. A command in your document like
+on this post using the \textsf{relatedtype} \texttt{commenton}, so
+\textsf{biblatex-chicago-authordate} creates a new entry,
+ellis:blog-customc, which won't appear in your .bib file (which is
+never altered) but in the .bbl file that \textsf{biber} produces to
+supply \textsf{biblatex} with the data for its citations. A command
+in your document like
\verb+\autocites{ac:comment}{ellis:blog-customc}+ will produce a
citation like (AC, July 1, 2008, 10:18 a.m.; comment on Ellis 2008).
You can alter the string connecting the two citations (by default
@@ -9715,7 +10159,7 @@ comment using this system can be --- \textsf{author},
\textsf{eventdate} are pretty much the only fields required.)
\mylittlespace Those who want \textsf{online} comments to appear in
-the reference list can still use the \mycolor{\texttt{commenton}}
+the reference list can still use the \texttt{commenton}
\textsf{relatedtype}, and the same citation of the commented piece
will appear there, connected by the same string that the
\textsf{customc} entry provides. Here, though, you can also provide a
@@ -9727,18 +10171,17 @@ set either (or both) of the \texttt{cmsdate} or the \texttt{skipbib}
options in your entry then \textsf{biblatex-chicago} will assume you
want to hand-craft that entry without its intervention, though it will
still provide the virtual \textsf{customc} entry in your .bbl file, as
-that may still prove convenient. Note also that any
-\mycolor{\textsf{verbc}} field you provide will never be altered by
-the package. (Please see the documentation of this
-\textsf{relatedtype} in section~\ref{sec:authrelated}, that of
-\mycolor{\textsf{verbc}} in section~\ref{sec:fields:authdate}, and
-also the information about online materials in
-table~\ref{tab:online:adtypes}.)
+that may still prove convenient. Note also that any \textsf{verbc}
+field you provide will never be altered by the package. (Please see
+the documentation of this \textsf{relatedtype} in
+section~\ref{sec:authrelated}, that of \textsf{verbc} in
+section~\ref{sec:fields:authdate}, and also the information about
+online materials in table~\ref{tab:online:adtypes}.)
\mylittlespace The new edition of the \emph{Manual} retains the
requirement for a date closely associated with the comment (14.208,
15.51), so in such entries you now have a choice. If you are using
-the \mycolor{\texttt{commenton}} \textsf{relatedtype}, you can use the
+the \texttt{commenton} \textsf{relatedtype}, you can use the
\textsf{date} or \textsf{eventdate} indifferently, as even when you
print the entry in the reference list the reference to the main blog
provides its own date. If, in 16th-edition style, you print a fuller
@@ -9758,11 +10201,15 @@ enclose in parentheses, as I've removed the automatic square brackets
from this field to allow it this more general usefulness. You can, of
course, still provide your own square brackets in \textsf{review}
entries to indicate pseudonymous authorship, which is the standard
-function of \textsf{nameaddon} in most entry types. Please see the
-documentation of \textsf{date}, \textsf{eventdate}, and
-\textsf{timezone} in section~\ref{sec:fields:authdate},
-\cmd{DeclareLabeldate} in section~\ref{sec:authformopts}, and
-\texttt{avdate} in section~\ref{sec:authpreset}.
+function of \textsf{nameaddon} in most entry types. The package
+options \mycolor{\texttt{nameaddonformat}} and
+\mycolor{\texttt{nameaddonsep}} can help here, as well. See
+sections~\ref{sec:authuseropts} and \ref{sec:authpreset}, below.
+Please also see the documentation of \textsf{date},
+\textsf{eventdate}, and \textsf{timezone} in
+section~\ref{sec:fields:authdate}, \cmd{DeclareLabeldate} in
+section~\ref{sec:authformopts}, and \texttt{avdate} in
+section~\ref{sec:authpreset}.
\mylittlespace For the reasons I explained in the \textsf{article}
docs above, I have brought the \textsf{article} and \textsf{review}
@@ -9784,12 +10231,12 @@ the creation of lists of journal abbreviations in the manner of a
\textbf{shortjournal} in section~\ref{sec:fields:authdate} for all the
details on how this works.
-\mybigspace In \colmarginpar{\textbf{standard}} older releases it was
+\mybigspace In \mymarginpar{\textbf{standard}} older releases it was
fairly straightforward to present published national or international
standards using a \textsf{book} entry, but with some additional
specifications now included in the 17th edition of the \emph{Manual}
(14.259, 15.37) I think it might be helpful to provide a separate
-entry type. The \mycolor{\textbf{standard}} type has long existed in
+entry type. The \textbf{standard} type has long existed in
\textsf{biblatex}, though none of its included styles use it. In
\textsf{biblatex-chicago} constructing such an entry is mostly
straightforward. The organization responsible for the standard goes
@@ -9799,8 +10246,8 @@ standard. The \textsf{date} field generally provides the publication
date, though for some standards there may also be a later
reaffirmation date (or similar), for which you can use the
\textsf{eventdate}. To choose which year appears in citations, the
-\mycolor{\textbf{standard}} type follows, by default, the same
-ordering as \textsf{review} and \textsf{music} entries, so that the
+\textbf{standard} type follows, by default, the same ordering as
+\textsf{review} and \textsf{music} entries, so that the
\textsf{eventdate} will, if present, provide the year. (Cf.\
\texttt{avdate} in section~\ref{sec:authpreset}, below.)
@@ -9871,6 +10318,8 @@ entry, that is, in the \textsf{foreword}, \textsf{afterword}, or
\textsf{introduction} field. (See \emph{Manual} 14.110;
friedman:intro, polakow:afterw, prose:intro).
+\enlargethispage{\baselineskip}
+
\mybigspace This \mymarginpar{\textbf{suppcollection}} fulfills a
function analogous to \textsf{suppbook}. Indeed, I believe the
\textbf{suppbook} type can serve to present supplemental material in
@@ -9902,7 +10351,7 @@ prompting of Jan David Hauck, you can use the \textsf{venue},
fields further to specify unpublished conference papers and the like
(14.216--18; nass:address).
-\mybigspace This \colmarginpar{\textbf{video}} is the last of the
+\mybigspace This \mymarginpar{\textbf{video}} is the last of the
three audiovisual entry types, and as its name suggests it is intended
for citing visual media, be it films of any sort or TV shows,
broadcast, on the Net, on VHS, DVD, or Blu-ray, though it will serve
@@ -9943,7 +10392,7 @@ main guidelines:
provided here, and will be printed as-is, contextually capitalized.
(Cf.\ hitchcock:nbynw.)
\item[title, titleaddon, booktitle, booktitleaddon, maintitle:] As
- with the other audiovisual types, \textsf{video} serves as an
+ with the other two audiovisual types, \textsf{video} serves as an
analogue both to books and to collections, so the \textsf{title} may
be of a whole film DVD or of a TV series, or it may identify one
episode in a series or one scene in a film. In the latter cases,
@@ -9952,11 +10401,11 @@ main guidelines:
and/or episode number of a TV series, while the \textsf{titleaddon}
is for any information that needs to come between the \textsf{title}
and the \textsf{booktitle} (american:crime, cleese:holygrail,
- friends:\break leia, handel:messiah, hitchcock:nbynw,
- mayberry:brady). As in the \textsf{music} type, \textsf{maintitle}
- may be necessary for a boxed set or something similar.
-\item[\mycolor{entrysubtype:}] If, for some reason, you want to cite
- an individual episode or scene without reference to any larger unit,
+ friends:leia, handel:messiah, hitchcock:nbynw, mayberry:brady). As
+ in the \textsf{music} type, \textsf{maintitle} may be necessary for
+ a boxed set or something similar.
+\item[entrysubtype:] If, for some reason, you want to cite an
+ individual episode or scene without reference to any larger unit,
then your entry will contain only a \textsf{title}, which
\textsf{biblatex-chicago} would normally interpret as the title of a
complete film or TV series. In such a case, you'll need to define
@@ -9965,10 +10414,10 @@ main guidelines:
the 17th edition (14.265) now recommends that, when presenting
episodes from a TV series, the name of the series
(\textsf{booktitle}) comes before the episode name (\textsf{title}).
- The exact string \mycolor{\texttt{tvepisode}} in the
- \textsf{entrysubtype} field achieves this reversal, which includes
- using the \textsf{booktitle} as a \textsf{sorttitle} in the
- reference list and also as the \textsf{labeltitle} in short notes.
+ The exact string \texttt{tvepisode} in the \textsf{entrysubtype}
+ field achieves this reversal, which includes using the
+ \textsf{booktitle} as a \textsf{sorttitle} in the reference list and
+ also as the \textsf{labeltitle} in short notes.
\item[date, eventdate, origdate, pubstate:] The 17th edition of the
\emph{Manual} continues to encourage writers to find some way of
dating audiovisual materials, while if there is more than one date
@@ -10055,23 +10504,42 @@ undefined, and \textsf{biblatex-chicago} will do the rest. Cf.\
\textsf{foreword} and \textsf{introduction}. (See \emph{Manual}
14.105, 14.110; polakow:afterw.)
-\mybigspace At \mymarginpar{\textbf{annotation}} the request of Emil
+\mybigspace At \colmarginpar{\textbf{annotation}} the request of Emil
Salim, \textsf{biblatex-chicago} provides a package option (see
\texttt{annotation} below, section~\ref{sec:authuseropts}) to allow
-you to produce annotated lists of references. The formatting of such
-a list is currently fairly basic, though it conforms with the
-\emph{Manual's} minimal guidelines (14.64). The default in
-\textsf{chicago-dates-common.cbx} is to define
-\verb+\DeclareFieldFormat{annotation}+ using
-\verb+\par\nobreak\vskip\bibitemsep #1+, though you can alter it by
-re-declaring the format in your preamble. The page-breaking
-algorithms don't always give perfect results here, but the default
-formatting looks, to my eyes, fairly decent. In addition to tweaking
-the field formatting you can also insert \cmd{par} (or even
-\verb+\vadjust{\eject}+) commands into the text of your annotations to
-improve the appearance. Please consider the \texttt{annotation}
-option a work in progress, but it is usable now. (N.B.: The old
-\textsc{Bib}\TeX\ field \textsf{annote} serves as an alias for this.)
+you to produce annotated reference lists. A recent feature request by
+Moritz Wemheuer referenced a
+\href{https://tex.stackexchange.com/questions/528374/moving-addendum-field-to-the-end-in-biblatex-chicago/540755#540755}{StackExchange}
+question which suggested that the possible uses for the
+\textsf{annotation} field could well be more extensive, appearing as
+it does at the very end of all entry types. I have therefore modified
+the \texttt{annotation} option so that you can print the field in the
+reference list (\texttt{=bib} or \texttt{=true}, the default), in long
+(probably legal) notes (\texttt{=notes}), in both (\texttt{=all}), or
+in neither (\texttt{=false}). The two new options
+\mycolor{\texttt{bibannotesep}} and \mycolor{\texttt{citeannotesep}}
+allow you to choose the separator between the rest of the entry and
+the \textsf{annotation}, and to choose a different one in reference
+list and notes. The default formatting in the reference list
+(\texttt{vpar}) is to print the \textsf{annotation} as a separate
+block using\ \verb+\par\nobreak\vskip\bibitemsep #1+, while in long
+notes the default (\texttt{period}) is to print it simply as an
+additional field, separated by a period. The \emph{Manual's}
+guidelines (14.64) allow for both these possibilities, and I have
+provided a range of others, for which you should consult the full
+documentation in section~\ref{sec:authpreset}. (Note also that both
+options can be set globally or per-type in the preamble, or per-entry
+in the \textsf{options} field of individual entries. For specialized
+needs, of course, you can re-declare the format
+[\verb+\DeclareFieldFormat{annotation}+] in your preamble, or redefine
+the \cmd{bibannotesep} and \cmd{citeannotesep} commands there.) In
+section~\ref{sec:authuseropts} you will find instructions for
+employing the new \mycolor{\texttt{formatbib}} and
+\mycolor{\texttt{entrybreak}} options to give you fine-grained control
+over the formatting of the entire reference list, particularly with
+regard to \TeX's page-breaking algorithms. The aim is to remove, in
+most cases, any need for you to delve into the low-level commands
+involved in these algorithms.
\mybigspace I \mymarginpar{\textbf{annotator}} have implemented this
\textsf{biblatex} field pretty much as that package's standard styles
@@ -10086,17 +10554,16 @@ need to have an extra set of curly braces around them (e.g.,
\texttt{\{\{Associated Press\}\}}\,) to prevent \textsf{biber} from
treating one part of the name as a surname (14.84, 14.200, 15.37;
assocpress:gun, chicago:manual). If there is no \textsf{author}, then
-\textsf{biblatex-chicago} will look, in sequence, for a
-\textsf{namea}, an \textsf{editor}, a \textsf{nameb}, a
-\textsf{translator}, or a \textsf{namec} (i.e., a compiler) and use
-that name (or those names) instead, followed by the appropriate
-identifying string (esp.\ 15.36, also 14.76, 14.103, 14.121, 14.126,
-14.180; boxer:china, brown:bremer, harley:cartography,
-schellin\-ger:novel, sechzer:women, silver:gawain, soltes:georgia).
-\textsf{Biber} and \textsf{biblatex} take care of alphabetizing
-entries no matter which name appears at their head. In citations,
-where the \textsf{labelname} is used, the order searched is somewhat
-augmented: \textsf{shortauthor}, \textsf{author},
+\textsf{biblatex-chicago} will look, in order, for a \textsf{namea},
+an \textsf{editor}, a \textsf{nameb}, a \textsf{translator}, or a
+\textsf{namec} (i.e., a compiler) and use that name (or those names)
+instead, followed by the appropriate identifying string (esp.\ 15.36,
+also 14.76, 14.103, 14.121, 14.126, 14.180; boxer:china, brown:bremer,
+harley:cartography, schellinger:novel, sechzer:women, silver:gawain,
+soltes:georgia). \textsf{Biber} and \textsf{biblatex} take care of
+alphabetizing entries no matter which name appears at their head. In
+citations, where the \textsf{labelname} is used, the order searched is
+somewhat augmented: \textsf{shortauthor}, \textsf{author},
\textsf{shorteditor}, \textsf{namea}, \textsf{editor}, \textsf{nameb},
\textsf{translator}, and \textsf{namec}.
@@ -10170,11 +10637,13 @@ cross-references from author to pseudonym or vice versa, so in these
latter examples I have included such references from the various
pseudonyms back to the author's name, using the \textsf{customc} entry
type, which see (ashe:creasey, morton:creasey, york:creasey). Please
-see also the entry on \textbf{nameaddon}, below, for circumstances
-where you may need to provide your own square brackets when presenting
-a pseudonym.
+see the entry on \textbf{nameaddon}, below, for circumstances where
+you may need to provide your own square brackets when presenting a
+pseudonym, and also the package options
+\mycolor{\texttt{nameaddonformat}} and \mycolor{\texttt{nameaddonsep}}
+in sections~\ref{sec:authuseropts} and \ref{sec:authpreset}, below.
-\enlargethispage{\baselineskip}
+\enlargethispage{2\baselineskip}
\mylittlespace As its name suggests, the author-date style very much
wants to have a name of some sort present both for the entries in the
@@ -10227,6 +10696,19 @@ the brackets. Assuming the strings are correct,
in citations. (See the \textsf{author} docs just above. Also
\emph{Manual} 15.34; cook:sotweed, horsley:prosodies.)
+\mylittlespace The \emph{Manual} doesn't clarify how to treat multiple
+works by the same \textsf{author}, in one or more of which their name
+doesn't appear on the title page. By default,
+\textsf{biblatex-chicago} will, after the first appearance in the
+reference list, replace identical \textsf{authors} with the 3-em dash,
+regardless of any \textsf{authortype} field that may be present. If
+you want to distinguish between works certainly written by and works
+merely ascribed to a given author, then you can use the
+\texttt{dashed} option in the \textsf{options} field of individual
+entries, and possibly also a \textsf{sortname}, to get the results you
+want.
+
+
\mybigspace For \mymarginpar{\textbf{bookauthor}} the most part, as in
\textsf{biblatex}, a \textsf{bookauthor} is the author of a
\textsf{booktitle}, so that, for example, if one chapter in a book has
@@ -10292,7 +10774,7 @@ package and entry options \texttt{ptitleaddon} and
customize the punctuation that appears before the
\textsf{booktitleaddon} field.
-\mybigspace This \colmarginpar{\textbf{chapter}} field holds the
+\mybigspace This \mymarginpar{\textbf{chapter}} field holds the
chapter number, mainly useful only in an \textsf{inbook} or an
\textsf{incollection} entry where you wish to cite a specific chapter
of a book (ashbrook:brain). It now also holds the track number of
@@ -10377,7 +10859,7 @@ of options for turning on this functionality behaves differently for
these four entry types than for the other 4 (see below). In
\textsf{dates-test.bib} you can get a feel for how this works by
looking at bernhard:boris, bernhard:ritter, bernhard:themacher,
-harley:ancient:cart, harley:cartogra\-phy, and harley:hoc.
+harley:ancient:cart, harley:cartography, and harley:hoc.
\mylittlespace A published collection of letters requires a somewhat
different treatment (15.40). In the author-date style, the
@@ -10461,7 +10943,7 @@ available to control the printing of \textsf{url}, \textsf{doi}, and
information might otherwise never appear. See \texttt{xrefurl} in
section~\ref{sec:authuseropts}.
-\paragraph*{\protect\colmarginpar{\textbf{date}}}
+\paragraph*{\protect\mymarginpar{\textbf{date}}}
\label{sec:ad:date}
Predictably, this is one of the key fields for the author-date styles,
and one which, as a general rule, every .bib entry designed for this
@@ -10469,11 +10951,11 @@ system ought to contain. So important is it, that
\textsf{biblatex-chicago-authordate} will, in most entry types, supply
a missing \cmd{bibstring\{nodate\}} if there is no date otherwise
provided (15.44), or if there is only a \textsf{urldate}, and that
-date is an access\colmarginpar{New!} date, i.e., there's no
-\textsf{userd} field (15.50). Citations will look like (Author,
-n.d.), and entries in the list of references will begin: Author,
-Firstname.\ n.d. This seems simple enough, but there are a surprising
-number of complications which require attention.
+date is an access date, i.e., there's no \textsf{userd} field (15.50).
+Citations will look like (Author, n.d.), and entries in the list of
+references will begin: Author, Firstname.\ n.d. This seems simple
+enough, but there are a surprising number of complications which
+require attention.
\mylittlespace To start, in each entry, \textsf{Biber} attempts to
find something which it can designate a \textsf{labeldate}, which
@@ -10489,15 +10971,14 @@ guided by the instructions given by the \cmd{DeclareLabeldate}
instances, \textsf{Biber} will search each entry in the declared
order, and the first match will provide the \textsf{labeldate}. Only
when it finds no match at all will it fall back on
-\verb+\bibstring{nodate}+. (In the \textsf{misc} and
-\mycolor{\textsf{dataset}} types this automatic provision is turned
-off, as such material may not be expected in many standard cases to
-have a usable date provided.) You can prevent the appearance of
-\verb+\bibstring{nodate}+ throughout your document in all entry types
-with the option \texttt{nodates=false} when loading
-\textsf{biblatex-chicago} in your preamble, or you can set it in the
-options field of individual entries. (See
-section~\ref{sec:authpreset}, below.)
+\verb+\bibstring{nodate}+. (In the \textsf{misc} and \textsf{dataset}
+types this automatic provision is turned off, as such material may not
+be expected in many standard cases to have a usable date provided.)
+You can prevent the appearance of \verb+\bibstring{nodate}+ throughout
+your document in all entry types with the option
+\texttt{nodates=false} when loading \textsf{biblatex-chicago} in your
+preamble, or you can set it in the options field of individual
+entries. (See section~\ref{sec:authpreset}, below.)
\mylittlespace The thing to keep in mind is that \emph{only} for a
\textsf{labelyear} will \textsf{biblatex} provide what it calls the
@@ -10514,7 +10995,7 @@ entries, but to ensure that, as often as is possible, that date
it requires a series of options for date presentation, and multiple
iterations of the \cmd{DeclareLabeldate} command. There are
\emph{two} standard search orders set up by default: in
-\textsf{music}, \textsf{review}, \mycolor{\textsf{standard}},
+\textsf{music}, \textsf{review}, \textsf{standard},
\textsf{suppperiodical}, and \textsf{video} entries, the default order
is \textsf{eventdate, origdate, date, urldate}, while in all other
entry types the default is \textsf{date, eventdate, origdate,
@@ -10524,11 +11005,11 @@ with multiple dates, but if they don't work for you then the following
options can help.
\mylittlespace In the case of \textsf{music}, \textsf{review},
-\mycolor{\textsf{standard}}, \textsf{suppperiodical}, and
-\textsf{video} entries, the \texttt{avdate} (i.e., audio-visual date)
-option, set to \texttt{true} by default, can be set to \texttt{false}
-in your preamble to return these entry types to the general defaults.
-Please see the documentation of the entry types in
+\textsf{standard}, \textsf{suppperiodical}, and \textsf{video}
+entries, the \texttt{avdate} (i.e., audio-visual date) option, set to
+\texttt{true} by default, can be set to \texttt{false} in your
+preamble to return these entry types to the general defaults. Please
+see the documentation of the entry types in
section~\ref{sec:types:authdate} above for the details of how multiple
dates will be treated in such entries, and also see \texttt{avdate} in
section~\ref{sec:authpreset}, below. If you don't alter the
@@ -10586,7 +11067,7 @@ contains another book by the same author, also a reprint edition:
of references? By the \textsf{labelyear}, in this case the
\textsf{year} field, which appears first in the default definition
(\textsf{date, eventdate, origdate, urldate}) of
-\cmd{DeclareLabel\-date}, and which in this case will be wrong, because
+\cmd{DeclareLabeldate}, and which in this case will be wrong, because
the entries should always be ordered by the \emph{first} date to
appear there, in this case the contents of \textsf{origdate}. In this
example, the solution can be as simple as a \textsf{sortyear} field
@@ -10693,14 +11174,14 @@ your .bib file. A few clarifications may yet be in order.
\mylittlespace Obviously, any entry with only a \textsf{date} should
behave as usual. Also, since \textsf{patent} entries have fairly
specialized needs, I have exempted them from this change to
-\cmd{DeclareLa\-beldate}. Third, the per-entry \texttt{cmsdate}
-options will still affect which dates are printed in citations and at
-the head of reference list entries, but they cannot change the search
-order for the \textsf{labeldate}. This will be fixed by the preamble
-option. Fourth, if you have been used to switching the \textsf{date}
-and the \textsf{origdate} to get the correct results, then you should
-be aware that this mechanism may actually still be useful when using
-the \texttt{on} switch to \texttt{cmsdate} in the preamble, but it
+\cmd{DeclareLabeldate}. Third, the per-entry \texttt{cmsdate} options
+will still affect which dates are printed in citations and at the head
+of reference list entries, but they cannot change the search order for
+the \textsf{labeldate}. This will be fixed by the preamble option.
+Fourth, if you have been used to switching the \textsf{date} and the
+\textsf{origdate} to get the correct results, then you should be aware
+that this mechanism may actually still be useful when using the
+\texttt{on} switch to \texttt{cmsdate} in the preamble, but it
produces incorrect results when the \texttt{cmsdate} option is
\texttt{both} in the preamble and the individual entry. The preamble
option is designed to make the need for this switching as rare as
@@ -10721,7 +11202,7 @@ year. Obviously, if the same options are set in the preamble, this
behavior is turned off, so that single-date entries will still work
properly without manual intervention.
-\mylittlespace Up\colmarginpar{\textsc{iso}8601-2\\Extended\\Format}
+\mylittlespace Up\mymarginpar{\textsc{iso}8601-2\\Extended\\Format}
to this point, the discussion of the \textsf{date} field has in fact
presented no substantive alterations to the way it behaved in previous
releases of \textsf{biblatex-chicago.} With this release, however, I
@@ -10748,7 +11229,7 @@ works.
\begin{table}[h!]
\hspace*{-2.5em}
\begin{threeparttable}
- \caption[\hspace{-1em}\mycolor{Enhanced Date Specifications}]
+ \caption[\hspace{-1em}Enhanced Date Specifications]
{Enhanced Date Specifications in biblatex-chicago}
\begin{tabularx}{140mm}{@{}>{\ttfamily}llX@{}}
\toprule
@@ -10775,26 +11256,26 @@ default, as above\\\addlinespace[.8mm]
-0876/-0866 & 877--867 BC & \\
0876 & AD 876\tnote{d} & \texttt{dateeraauto=1000} also in preamble\\
-0876/0866 & 877 BC--AD 866 & \\
-0866/0876 & AD 866--76 & Cf.\ \mycolor{\texttt{compressyears}}, below\\
+0866/0876 & AD 866--76 & Cf.\ \texttt{compressyears}, below\\
0343-02-03 & February 3, AD 343 & \\\addlinespace[.8mm]
\cmidrule(r{2em}){1-1}\addlinespace[.8mm]
-0876 & 877 BCE & \texttt{dateera=secular}, \texttt{dateeraauto=1000}\\
-0876/-0866 & 877--867 BCE & \\
0876 & 876 CE & \\
-0876/0866 & 877 BCE--866 CE & \\
-0866/0876 & 866--76 CE & Cf.\ \mycolor{\texttt{compressyears}}, below\\
+0866/0876 & 866--76 CE & Cf.\ \texttt{compressyears}, below\\
0343-02-03 & February 3, 343 CE & \\\addlinespace[.8mm]
\cmidrule(r{2em}){1-1}\addlinespace[.8mm]
195X & 1950s\tnote{e,f} & Chicago option
-\mycolor{\texttt{decaderange=true}} gets you 1950--59 \\
+\texttt{decaderange=true} gets you 1950--59 \\
19XX & 20th c.\tnote{f} & Chicago option
-\mycolor{\texttt{centuryrange=true}} gets you 1900--1999;
-\mycolor{\texttt{alwaysrange=true}} does the same for this and the
+\texttt{centuryrange=true} gets you 1900--1999;
+\texttt{alwaysrange=true} does the same for this and the
previous entry \\\addlinespace[.8mm]
\cmidrule(r{2em}){1-1}\addlinespace[.8mm]
2004-22 & Summer 2004 & \\
1908/1912 & 1908--12\tnote{g} & Chicago option
-\mycolor{\texttt{compressyears=true}} set by default \\
+\texttt{compressyears=true} set by default \\
\bottomrule
\end{tabularx}
\def\TPTnoteSettings{%
@@ -10804,20 +11285,19 @@ previous entry \\\addlinespace[.8mm]
\footnotesize
\rightskip\tabcolsep \leftskip\tabcolsep}%
\begin{tablenotes}
-\item[a] In other languages both the strings and their
- placement with respect to the year can and will differ.
-\item[b] The two Chicago options \mycolor{\texttt{nodatebrackets}}
- and \mycolor{\texttt{noyearbrackets}} can remove the brackets
- around the year in this context, though please note that they work
- quite differently in the notes \&\ bibliography and author-date
- styles. Please see their documentation in
- sections~\ref{sec:useropts} and \ref{sec:authuseropts},
- respectively.
-\item[c] Any time stamp that is part of a \textsf{urldate} will
+\item[a] In other languages both the strings and their placement with
+ respect to the year can and will differ.
+ \item[b] The two Chicago options \texttt{nodatebrackets} and
+ \texttt{noyearbrackets} can remove the brackets around the year in
+ this context, though please note that they work quite differently
+ in the notes \&\ bibliography and author-date styles. Please see
+ their documentation in sections~\ref{sec:useropts} and
+ \ref{sec:authuseropts}, respectively.
+ \item[c] Any time stamp that is part of a \textsf{urldate} will
appear in any entry type, though you can prevent this by setting
- \mycolor{\texttt{urlstamp=false}}. Time stamps in \textsf{date}
- and \textsf{origdate} fields will appear only in \textsf{article}
- and \textsf{periodical} entries with a \texttt{magazine}
+ \texttt{urlstamp=false}. Time stamps in \textsf{date} and
+ \textsf{origdate} fields will appear only in \textsf{article} and
+ \textsf{periodical} entries with a \texttt{magazine}
\textsf{entrysubtype}, as well as in all \textsf{online},
\textsf{review}, and \textsf{suppperiodical} entries. Such data in
\textsf{eventdate} fields will appear only in \textsf{review} and
@@ -10855,17 +11335,16 @@ be tested numerically for its relation to other date years in the
entry. A \textsf{year} field like \verb+{[1957?]}+ in the .bib
database produces a field in the .bbl that neither sorts nor can be
numerically tested. The same holds for a compressed year range, as in
-tillich:system. With \mycolor{\texttt{compressyears}} set to
-\texttt{true} by default, a \textsf{date} field like
-\verb+{1951/1963}+ lets the package decide what compression is
-correct, and provides \textsf{year} and \textsf{endyear} fields that
-sort and compare numerically for both \textsf{switchdates} and
-\textsf{extradate} tests. Clearly, situations may still arise when a
-specially-crafted \textsf{year} or \textsf{origyear} field may be
-necessary, but if you can use the enhanced specifications then I
-strongly advocate doing so.
-
-\mylittlespace One\colmarginpar{\textsf{verbc}} possible drawback is
+tillich:system. With \texttt{compressyears} set to \texttt{true} by
+default, a \textsf{date} field like \verb+{1951/1963}+ lets the
+package decide what compression is correct, and provides \textsf{year}
+and \textsf{endyear} fields that sort and compare numerically for both
+\textsf{switchdates} and \textsf{extradate} tests. Clearly,
+situations may still arise when a specially-crafted \textsf{year} or
+\textsf{origyear} field may be necessary, but if you can use the
+enhanced specifications then I strongly advocate doing so.
+
+\mylittlespace One\mymarginpar{\textsf{verbc}} possible drawback is
that using these facilities makes a great many more dates available to
the \textsf{extradate} mechanism which, it turns out, is something of
a mixed blessing. The \emph{Manual} isn't entirely forthcoming about
@@ -10874,10 +11353,10 @@ what to do in the (vanishingly rare) case that two works by the same
\textsf{Biblatex-chicago} will print the \textsf{extradate} in such
situations, so that you could have \texttt{[1957?]a} followed by
\texttt{[ca.~1957]b}, which may not be exactly right, nor exactly what
-you want. Here, the new \mycolor{\textsf{verbc}} field can help ---
-giving the two entries different values of this field will prevent the
+you want. Here, the new \textsf{verbc} field can help --- giving the
+two entries different values of this field will prevent the
\textsf{extradate} from appearing. Please see the documentation of
-the \mycolor{\textsf{verbc}} field below for all the details.
+the \textsf{verbc} field below for all the details.
\mylittlespace Second, for most entry types, only a year is really
necessary, and in most situations only the year --- or year range ---
@@ -10896,8 +11375,8 @@ really only necessary for news stories that are frequently updated
comments, that may need a time stamp for disambiguation. If you wish
to specify the time zone, the \emph{Manual} (10.41) prefers
initialisms like \enquote{EST} or \enquote{PDT,} and these are most
-easily provided using the \mycolor{\texttt{timezone}} field, where you
-can include your own parentheses if so desired (cp.\ 14.191). If you
+easily provided using the \texttt{timezone} field, where you can
+include your own parentheses if so desired (cp.\ 14.191). If you
follow the recommendations of the \emph{Manual} and present newspaper
and magazine articles \enquote{entirely within the text} (15.49), then
the citations need to contain the complete \textsf{date} (and possible
@@ -10907,17 +11386,17 @@ time stamp) along with the \textsf{journaltitle}. Placing
or a \textsf{review} entry, alongside a possible
\texttt{useauthor=false}, should allow you to achieve this. For
online comments in \textsf{online} or \textsf{review} entries this
-presentation is the default when you use the new
-\mycolor{\texttt{commenton}} \textsf{relatedtype}. (See the
-documentation of those two types in section~\ref{sec:types:authdate},
-as well as \textsf{relatedtype} in section~\ref{sec:authrelated}.)
-While we're on this subject, the \emph{Manual} is flexible (in both
-specifications) on abbreviating the names of months (14.171). By
-default, \textsf{biblatex-chicago-authordate} uses the full names,
-which you can change by setting the option \texttt{dateabbrev=true} in
-the preamble. (Cf.\ ac:comment, assocpress:gun, barcott:review,
-batson, creel:house, friends:leia, holiday:fool, nass:address,
-petroff:impurity, powell:e\-mail.)
+presentation is the default when you use the new \texttt{commenton}
+\textsf{relatedtype}. (See the documentation of those two types in
+section~\ref{sec:types:authdate}, as well as \textsf{relatedtype} in
+section~\ref{sec:authrelated}.) While we're on this subject, the
+\emph{Manual} is flexible (in both specifications) on abbreviating the
+names of months (14.171). By default,
+\textsf{biblatex-chicago-authordate} uses the full names, which you
+can change by setting the option \texttt{dateabbrev=true} in the
+preamble. (Cf.\ ac:comment, assocpress:gun, barcott:review, batson,
+creel:house, friends:leia, holiday:fool, nass:address,
+petroff:impurity, powell:email.)
\mylittlespace Third, in the \textsf{misc} entry type the
\textsf{date} field can help to distinguish between two classes of
@@ -10938,25 +11417,23 @@ stamps, as it was in the 16th-edition styles. Any such data there
should be moved into the corresponding date field (either the
\textsf{date} or the \textsf{eventdate}, typically).
-\mylittlespace I recommend that you have a look through
+\mylittlespace I recommend that you have a look at
\textsf{dates-test.bib} to see how all these complications will affect
the construction of your .bib database, especially at the following
entries: aristotle:metaphy:gr, creel:house, emerson:nature,
james:ambassadors, maitland:canon, maitland:equity, schweitzer:bach,
spock:interview, white:ross:memo, and white:russ. Cf.\ also
-\textsf{origdate}, \textsf{timezone}, \mycolor{\textsf{verbc}}, and
+\textsf{origdate}, \textsf{timezone}, \textsf{verbc}, and
\textsf{year}, below; the \texttt{alldates}, \texttt{alltimes},
-\mycolor{\texttt{alwaysrange}}, \mycolor{\texttt{centuryrange}},
-\texttt{cmsdate}, \mycolor{\texttt{compressyears}},
-\texttt{datecirca}, \texttt{dateera}, \texttt{dateera\-auto},
-\texttt{dateuncertain}, \mycolor{\texttt{decaderange}},
-\mycolor{\texttt{nodatebrackets}}, \texttt{nodates},
-\mycolor{\texttt{noyearbrackets}},\break \texttt{switchdates},
-\texttt{timezones}, \mycolor{\texttt{urlstamp}}, and \texttt{urltime}
-options in sections~\ref{sec:preset:authdate}, \ref{sec:authuseropts},
-and \ref{sec:authentryopts}; and section~4.5.10 in
-\textsf{biblatex.pdf}, and section \ref{sec:authformopts}, below, for
-the \cmd{DeclareLabeldate} command.
+\texttt{alwaysrange}, \texttt{centuryrange}, \texttt{cmsdate},
+\texttt{compressyears}, \texttt{datecirca}, \texttt{dateera},
+\texttt{dateeraauto}, \texttt{dateuncertain}, \texttt{decaderange},
+\texttt{nodatebrackets}, \texttt{nodates}, \texttt{noyearbrackets},
+\texttt{switchdates}, \texttt{timezones}, \texttt{urlstamp}, and
+\texttt{urltime} options in sections~\ref{sec:preset:authdate},
+\ref{sec:authuseropts}, and \ref{sec:authentryopts}; and
+section~4.5.10 in \textsf{biblatex.pdf}, and section
+\ref{sec:authformopts}, below, for the \cmd{DeclareLabeldate} command.
\mybigspace This \mymarginpar{\textbf{day}} field, as of
\textsf{biblatex} 0.9, is obsolete, and will be ignored if you use it
@@ -11028,13 +11505,13 @@ Cf. section~\ref{sec:international}, and also \textsf{namea},
as a means to specify additional contributors to texts in a number of
editorial roles. In the Chicago styles they seem most relevant for
the audiovisual types, especially \textsf{music} and \textsf{video},
-and now also the \mycolor{\textsf{performance}} type, in all of which
-they help to identify conductors, directors, producers, and
-performers. To specify the role, use the fields \textsf{editoratype},
+and now also the \textsf{performance} type, in all of which they help
+to identify conductors, directors, producers, and performers. To
+specify the role, use the fields \textsf{editoratype},
\textsf{editorbtype}, and \textsf{editorctype}, which see. (Cf.\
bernstein:shostakovich, hamilton:miranda, handel:messiah.)
-\mybigspace Normally, \colmarginpar{\textbf{editortype}} with the
+\mybigspace Normally, \mymarginpar{\textbf{editortype}} with the
exception of the \textsf{article} and \textsf{review} types with a
\texttt{magazine} \textsf{entrysubtype},
\textsf{biblatex-chicago-authordate} will automatically find a name to
@@ -11060,18 +11537,17 @@ then you need to put \texttt{compiler} into the \textsf{editortype}
field, and \textsf{biblatex} will print the correct string after the
name in the list of references.
-\mylittlespace In \colmarginpar{New!} previous releases of
-\textsf{biblatex-chicago} you could only use defined \cmd{bibstrings}
-in this field, at least if you wanted anything printed. N.~Andrew
-Walsh pointed out that the standard \textsf{biblatex} styles will just
-print the field as-is in this case, allowing them to handle a great
-many unforeseen editorial roles with comparative ease, so I've
-implemented this, too, making sure to capitalize the string if the
-context demands it. The string you choose will differ depending on
-whether it will be printed after a name at the head of an entry or
-before a name later on in the entry, e.g., \enquote{cartographer} or
-\enquote{maps created by.} A bit of trial and error should see you
-through.
+\mylittlespace In previous releases of \textsf{biblatex-chicago} you
+could only use defined \cmd{bibstrings} in this field, at least if you
+wanted anything printed. N.~Andrew Walsh pointed out that the
+standard \textsf{biblatex} styles will just print the field as-is in
+this case, allowing them to handle a great many unforeseen editorial
+roles with comparative ease, so I've implemented this, too, making
+sure to capitalize the string if the context demands it. The string
+you choose will differ depending on whether it will be printed after a
+name at the head of an entry or before a name later on in the entry,
+e.g., \enquote{cartographer} or \enquote{maps created by.} A bit of
+trial and error should see you through.
\mylittlespace There are a few details of which you need to be aware.
Because \textsf{biblatex-chicago} has added the \textsf{namea} field,
@@ -11094,7 +11570,7 @@ should ensure presents whichever of the two editors' names
(\textsf{namea} or \textsf{editor}) appears at the head of the
reference-list entry.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mylittlespace In \textsf{biblatex} 0.9 Lehman reworked the string
concatenation mechanism, for reasons he outlines in his RELEASE file,
@@ -11123,18 +11599,18 @@ unnecessary or won't work properly in the following entry types:
\textsf{suppperiodical}.
\mybigspace These
-\colmarginpar{\textbf{editoratype\\editorbtype\\editorctype}} fields
+\mymarginpar{\textbf{editoratype\\editorbtype\\editorctype}} fields
identify the exact role of the person named in the corresponding
\textsf{editor[a-c]} field, just as \textsf{editortype} (q.v.) does
for the \textsf{editor}. Note that they are not part of the string
concatenation mechanism. I have implemented them just as the standard
styles do, that is, if the field isn't a pre-defined \cmd{bibstring}
it will be printed as-is, contextually capitalized. They have found a
-use particularly in \textsf{music}, \mycolor{\textsf{performance}},
-and \textsf{video} entries. Cf.\ bernstein:shostakovich,
+use particularly in \textsf{music}, \textsf{performance}, and
+\textsf{video} entries. Cf.\ bernstein:shostakovich,
hamilton:miranda, and handel:messiah.
-\mybigspace Standard \colmarginpar{\textbf{eid}} \textsf{biblatex}
+\mybigspace Standard \mymarginpar{\textbf{eid}} \textsf{biblatex}
field, providing a string or number some journals use uniquely to
identify a particular article. Only applicable to the
\textsf{article} entry type, and only to those without a
@@ -11146,7 +11622,7 @@ moved it in accordance with its specifications. It replaces the
\paragraph*{\protect\mymarginpar{\textbf{entrysubtype}}}
\label{sec:ad:entrysubtype}
Standard and very powerful \textsf{biblatex} field, left undefined by
-the standard styles. In \textsf{biblatex-chicago-authordate} it has
+the standard styles. In \textsf{bibla\-tex-chicago-authordate} it has
seven very specific uses, the first three of which I have designed in
order to maintain, as much as possible, backward compatibility with
the standard styles. First, in \textsf{article} and
@@ -11210,10 +11686,9 @@ larger unit (and therefore italicize). Sixth, and sticking with the
transformation, the 17th edition (14.265) now recommends that, when
presenting episodes from a TV series, the name of the series
(\textsf{booktitle}) comes before the episode name (\textsf{title}).
-The exact string \mycolor{\texttt{tvepisode}} in the
-\textsf{entrysubtype} field achieves this reversal, which includes
-using the \textsf{booktitle} as a \textsf{sorttitle} in the list of
-references.
+The exact string \texttt{tvepisode} in the \textsf{entrysubtype} field
+achieves this reversal, which includes using the \textsf{booktitle} as
+a \textsf{sorttitle} in the list of references.
\mylittlespace Seventh, and finally, you can use any
\textsf{entrysubtype} whatever in \textsf{inreference} entries in
@@ -11235,17 +11710,17 @@ though I can find no specific reference to them in the \emph{Manual}.
\mybigspace This \colmarginpar{\textbf{eventdate}} is a standard
\textsf{biblatex} field which has gradually accumulated functions in
\textsf{biblatex-chicago}. It can now play a role in
-\mycolor{\textsf{artwork}}, \mycolor{\textsf{audio}},
-\mycolor{\textsf{image}}, \textsf{music}, \textsf{review},
-\mycolor{\textsf{standard}}, \textsf{suppperiodical},
-\textsf{unpublished}, and \textsf{video} entries. In \textsf{artwork}
-and \textsf{image} entries it identifies the publication date of, most
-frequently, a photograph, in association with the
-\textsf{howpublished} field which identifies the periodical or other
-medium in which it was published (mccurry:afghangirl). In
+\textsf{artwork}, \textsf{audio}, \textsf{image},
+\mycolor{\textsf{inproceedings}}, \textsf{music},
+\mycolor{\textsf{proceedings}}, \textsf{review}, \textsf{standard},
+\textsf{suppperiodical}, \textsf{unpublished}, and \textsf{video}
+entries. In \textsf{artwork} and \textsf{image} entries it identifies
+the publication date of, most frequently, a photograph, in association
+with the \textsf{howpublished} field which identifies the periodical
+or other medium in which it was published (mccurry:afghangirl). In
\textsf{standard} entries it will also usually be associated with a
\textsf{howpublished} field, allowing you to specify a later renewal
-or reaffirmation of a standard (niso:bibref). In \textsf{audio}
+or reaffirmation of a standard (niso\hc bibref). In \textsf{audio}
entries, it specifies the release date of a single episode of a
podcast (danforth:podcast). In \textsf{music} entries, it identifies
the recording or performance date of a particular song (rather than of
@@ -11259,30 +11734,31 @@ string using the \textsf{userd} field, something you'll definitely
want to do for filmed musical performances (friends:leia,
handel:messiah, holiday:fool).
-\mylittlespace In \textsf{unpublished} entries it identifies the date
-of an event at which an unpublished work was presented, though in
-truth the \textsf{date} will do as well here (nass:address). The
-field's use in \textsf{review} and \textsf{suppperiodical} entries,
-finally, includes a possible time stamp. In this context, an
-\textsf{eventdate} helps to identify a particular comment on, or reply
-to another comment on, a blog post. Given that many such posts by a
-single \textsf{author} could appear on the same day, you can
-distinguish them by putting a time specification in the
-\textsf{eventdate} field itself (ac:comment). Please see the
-\textbf{review} type, above, for the details of how to cite these
-materials, possibly with the help of the new
-\mycolor{\texttt{commenton}} \textsf{relatedtype}. See also the
+\mylittlespace In \mycolor{\textsf{inproceedings}},
+\mycolor{\textsf{proceedings}}, and \textsf{unpublished} entries it
+identifies the date of an event at which a published or unpublished
+work was presented, though in truth the \textsf{date} will do as well
+in \textsf{unpublished} entries (nass:address). The field's use in
+\textsf{review} and \textsf{suppperiodical} entries, finally, includes
+a possible time stamp. In this context, an \textsf{eventdate} helps
+to identify a particular comment on, or reply to another comment on, a
+blog post. Given that many such posts by a single \textsf{author}
+could appear on the same day, you can distinguish them by putting a
+time specification in the \textsf{eventdate} field itself
+(ac:comment). Please see the \textbf{review} type, above, for the
+details of how to cite these materials, possibly with the help of the
+new \texttt{commenton} \textsf{relatedtype}. See also the
\textsf{date} field docs above, in particular
-table~\ref{ad:date:extras}, for\colmarginpar{New!} details on how the
-\mycolor{\textsc{iso}8601-2 Extended Format specifications} offered by
-\textsf{biblatex}, including time stamps and much else besides, have
-been implemented in \textsf{biblatex-chicago}.
+table~\ref{ad:date:extras}, for details on how the \textsc{iso}8601-2
+Extended Format specifications offered by \textsf{biblatex}, including
+time stamps and much else besides, have been implemented in
+\textsf{biblatex-chicago}.
\mylittlespace In the default configuration of \cmd{DeclareLabeldate},
dates for citations and for the head of reference list entries are
searched for in the order \textsf{date, eventdate, origdate, urldate}.
This suits the Chicago author-date styles very well, except for
-\textsf{music}, \textsf{review}, \mycolor{\textsf{standard}},
+\textsf{music}, \textsf{review}, \textsf{standard},
\textsf{suppperiodical}, and \textsf{video} entries. In
\textsf{music} and \textsf{video} entries the general rule is to
emphasize the earliest date, whether that be, for example, the
@@ -11293,12 +11769,23 @@ types, then, \cmd{DeclareLabeldate} uses the order \textsf{eventdate,
origdate, date, urldate}. (See the \texttt{avdate} option in
section~\ref{sec:authpreset}, below.)
-\mybigspace This \colmarginpar{\textbf{eventtimezone}} field can, if
+\mybigspace This \mymarginpar{\textbf{eventtimezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{eventdate}. The \emph{Manual} prefers initialisms
like \enquote{EST} for this purpose, and you can provide parentheses
around it at your discretion (cp.\ 10.41 and 14.191).
+\mybigspace A \colmarginpar{\textbf{eventtitle}} standard
+\textsf{biblatex} field for identifying the name of the event that
+produces either a published record (\mycolor{\textsf{inproceedings}}
+and \mycolor{\textsf{proceedings}} entries) or an unpublished one
+(\textsf{unpublished}).
+
+\mybigspace Standard \colmarginpar{\textbf{eventtitleaddon}}
+\textsf{biblatex} field for adding information about an
+\textsf{eventtitle}, and available in the same entry types as that
+field.
+
\mybigspace As \mymarginpar{\textbf{foreword}} with the
\textsf{afterword} field above, \textsf{foreword} will in general
function as it does in standard \textsf{biblatex}. Like
@@ -11314,27 +11801,26 @@ from the \textsf{author}. The \emph{Manual} has nothing to say on the
subject, but \textsf{biblatex-chicago} prints it (them), in
parentheses, just after the author(s).
-\mybigspace Standard \colmarginpar{\textbf{howpublished}}
+\mybigspace Standard \mymarginpar{\textbf{howpublished}}
\textsf{biblatex} field which, like the \textsf{eventdate} field, is
gradually accumulating functions in \textsf{biblatex-chicago}. In the
\textsf{booklet} type it retains something of its traditional usage,
replacing the \textsf{publisher}, and has a similar (somewhat
paradoxical) place in \textsf{unpublished} entries. In the
-\textsf{misc} and \mycolor{\textsf{performance}} types it works almost
-as a second \textsf{note} field, bringing in extra information about a
-work in close association with the \textsf{type} and \textsf{version}
-fields, while the \mycolor{\textsf{dataset}} entry type associates it
-both with those two fields and with the \textsf{number} field.
-17th-edition \textsf{music} entries require a field to provide the
-medium of downloaded music and/or the name of the streaming service,
-so \textsf{howpublished} works there as an online double of
-\textsf{type} and of \textsf{publisher}. Finally, in
-\textsf{artwork}, \textsf{image}, and \mycolor{\textsf{standard}}
-entries it serves to qualify or modify an \textsf{eventdate}, almost
-as a \textsf{userd} field modifies a \textsf{date} or
-\textsf{urldate}. Please see the docs of those entry types for more
-information, and also bedford:photo, clark:mesopot,
-mccurry:afghangirl, niso:bibref, rihanna:umbrella.
+\textsf{misc} and \textsf{performance} types it works almost as a
+second \textsf{note} field, bringing in extra information about a work
+in close association with the \textsf{type} and \textsf{version}
+fields, while the \textsf{dataset} entry type associates it both with
+those two fields and with the \textsf{number} field. 17th-edition
+\textsf{music} entries require a field to provide the medium of
+downloaded music and/or the name of the streaming service, so
+\textsf{howpublished} works there as an online double of \textsf{type}
+and of \textsf{publisher}. Finally, in \textsf{artwork},
+\textsf{image}, and \textsf{standard} entries it serves to qualify or
+modify an \textsf{eventdate}, almost as a \textsf{userd} field
+modifies a \textsf{date} or \textsf{urldate}. Please see the docs of
+those entry types for more information, and also bedford:photo,
+clark:mesopot, mccurry:afghangirl, niso:bibref, rihanna:umbrella.
\mybigspace Standard \mymarginpar{\textbf{institution}}
\textsf{biblatex} field. In the \textsf{thesis} entry type, it will
@@ -11354,6 +11840,8 @@ undefined) to make an introduction the focus of a citation.
field, for providing the International Standard Book Number of a
publication. Not typically required by the \emph{Manual}.
+\enlargethispage{-2\baselineskip}
+
\mybigspace Standard \mymarginpar{\textbf{isrn}} \textsf{biblatex}
field, for providing the International Standard Technical Report
Number of a report. Only relevant to the \textsf{report} entry type,
@@ -11368,7 +11856,7 @@ typically required by the \emph{Manual}.
field, designed for \textsf{article} or \textsf{periodical} entries
identified by something like \enquote{Spring} or \enquote{Summer}
rather than by the usual \textsf{month} or \textsf{number} fields
-(brown:bre\-mer). \textsf{Biblatex's} enhanced date handling allows
+(brown\hc bremer). \textsf{Biblatex's} enhanced date handling allows
you to specify a season in the \textsf{date} field, with the
\enquote{months} 21--24 used for Spring, Summer, Autumn, and Winter,
respectively. Cf.\ table~\ref{ad:date:extras}, above.
@@ -11490,20 +11978,20 @@ provide the parentheses (15.51; ellis:blog).
\mybigspace The \mymarginpar{\textbf{mainsubtitle}} subtitle for a
\textsf{maintitle} --- see next entry.
-\mybigspace The \colmarginpar{\textbf{maintitle}} main title for a
+\mybigspace The \mymarginpar{\textbf{maintitle}} main title for a
multi-volume work, e.g., \enquote{Opera} or \enquote{Collected Works.}
It no longer takes sentence-style capitalization in
\textsf{authordate}, though it does in \textsf{authordate-trad}. In
cross references produced using the \textsf{crossref} field, the
\textsf{title} of \textbf{mv*} entry types always becomes a
\textsf{maintitle} in the child entry. (See donne:var,
-euripides:orestes, harley:carto\-graphy, lach:asia,
+euripides:orestes, harley\hc cartography, lach:asia,
pelikan:christian, and plato:republic:gr.)
-\mylittlespace Because \colmarginpar{New!} the 17th edition of the
-\emph{Manual} recommends that you present not only the names of blogs
-but also the names of their parent (usually periodical) publications,
-I have added this field to \textsf{article}, \textsf{periodical}, and
+\mylittlespace Because the 17th edition of the \emph{Manual}
+recommends that you present not only the names of blogs but also the
+names of their parent (usually periodical) publications, I have added
+this field to \textsf{article}, \textsf{periodical}, and
\textsf{review} entries for just this purpose. See the documentation
of those entry types in section~\ref{sec:types:authdate}, above, and
also table~\ref{tab:online:adtypes} (15.51; amlen:hoot).
@@ -11552,49 +12040,111 @@ section~\ref{sec:formatting:authdate}.
\mybigspace This \colmarginpar{\textbf{nameaddon}} field is provided
by \textsf{biblatex}, though not used by the standard styles. In
-\textsf{biblatex-chicago}, it allows you to specify that an author's
-name is a pseudonym, or to provide either the real name or the
-pseudonym itself, if the other is being provided in the
-\textsf{author} field. The abbreviation
+\textsf{biblatex-chicago} its primary use, in most entry types, has
+always been to specify that an author's name is a pseudonym, or to
+provide either the real name or the pseudonym itself, if the other is
+being provided in the \textsf{author} field. The abbreviation
\enquote{\texttt{pseud.}\hspace{-2pt}}\ (always lowercase in English)
is specified, either on its own or after the pseudonym
(centinel:letters, creasey:ashe:blast, creasey:morton:hide,
-creasey:york:death, and lecarre:quest); \verb+\bibstring{pseudonym}+
-does the work for you. See under \textbf{author} above for the full
-details.
+creasey:york:death, and lecarre:quest); remember that
+\verb+\bibstring{pseudonym}+ does the work for you. See under
+\textbf{author} above for the full details.
+
+\mylittlespace The field has slowly accumulated other functions, so
+when Philipp Immel made a feature request, and pointed to a discussion
+on Stack Exchange which suggested a few more, I thought I might
+generalize the field's functionality, providing three package options
+to allow users to mould it to their needs. Before discussing these,
+allow me to emphasize that the package defaults remain exactly the
+same as before, so that, absent any of the new options, the style
+still provides square brackets around the \textsf{nameaddon} in most
+entry types, no brackets of any sort in \textsf{online, review,} and
+\textsf{suppperiodical} entries, as well as in \textsf{misc} entries
+with an \textsf{entrysubtype}, and rather specialized handling in
+\textsf{customc} entries (which ignore all but the first of the new
+options --- see below). If you're happy with the status quo, then no
+changes to your documents or\ .bib databases are necessary.
+
+\mylittlespace If you do need or want to put the field to a different
+use, the following options may help. All of them are available
+globally, per type, and per entry. The first
+\colmarginpar{\texttt{nameaddon}} new option is simply called
+\mycolor{\texttt{nameaddon}}, and determines where and when the field
+will be printed at all. There are three possible values:
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{all}:] This is the default; if an entry has a
+ \textsf{nameaddon}, it will appear in the reference list.
+\item[\qquad \texttt{none}:] The field will not appear in the
+ reference list.
+\item[\qquad \texttt{first}:] Philipp Immel requested this as a way to
+ provide an \textsf{author's} dates in the \textsf{nameaddon} field
+ and only have them printed the first time that author appears in the
+ reference list. The code tests for identical \textsf{nameaddon}
+ fields in works by identical \textsf{authors}, so other sorts of
+ \textsf{nameaddon} will be printed as usual.
+\end{description}
+
+The \colmarginpar{\texttt{nameaddonsep}}
+\mycolor{\texttt{nameaddonsep}} option controls the punctuation that
+appears before the \textsf{nameaddon}. It takes the following six
+keys:
-\mylittlespace In \textsf{online, review,} and \textsf{suppperiodical}
-entries, as well as in \textsf{misc} entries with an
-\textsf{entrysubtype}, I have removed the automatic provision of
-square brackets from the field, allowing it to be used in at least two
-ways. First, if you provide your own square brackets, then it can
-have its standard function, as above. Second you can, within
-parentheses, provide a screen name for online social media, or merely
-additional specifics about an author in a piece from an unpublished
-archive. (The 16th edition of the \emph{Manual} recommended
-specifying comments to blogs and other online content using a time
-stamp in parentheses after the \textsf{author}, but the 17th edition
-\colmarginpar{New!} handles time stamps differently. In this case the
-\emph{Manual} (15.52) now specifies that comments should appear
-\enquote{only in the text, in reference to the related post,} so I've
-provided some new functionality to enable this. Please see the
-\textbf{online} and \textbf{review} types, above, especially
-table~\ref{tab:online:adtypes}, for the details of how to cite these
-materials, possibly with the help of the new
-\mycolor{\texttt{commenton}} \textsf{relatedtype} and a separate
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{space}] = \cmd{addspace}. This is the default.
+\item[\qquad \texttt{none}] = no separator at all. It presumes that
+ you will include one in the \textsf{nameaddon} field itself.
+\item[\qquad \texttt{colon}] = \verb+\addcolon\addspace+.
+\item[\qquad \texttt{comma}] = \verb+\addcomma\addspace+.
+\item[\qquad \texttt{period}] = \verb+\addperiod\addspace+.
+\item[\qquad \texttt{semicolon}] = \verb+\addsemicolon\addspace+.
+\end{description}
+
+The \colmarginpar{\texttt{nameaddon-\\format}}
+\mycolor{\texttt{nameaddonformat}} option allows you to change the
+format of the \textsf{nameaddon} field on the fly, so its value should
+be a field format that \textsf{biblatex} understands. This includes
+standard formats like \texttt{parens,\,brackets} or \texttt{emph}, and
+also custom formats that you provide in your preamble using
+\cmd{DeclareFieldFormat}, in case the standard ones aren't adequate.
+If you don't define this option, then the usual defaults apply, as
+delineated above, and you can use your own parentheses in
+\textsf{online, review,} and \textsf{suppperiodical} entries, as well
+as in \textsf{misc} entries with an \textsf{entrysubtype}, to
+distinguish screen names or other authorial information from
+traditional pseudonyms (in brackets).
+
+\mylittlespace There are two more details. If you are using the
+17th-edition styles for the first time, please note that the 16th
+edition of the \emph{Manual} recommended specifying comments to blogs
+and other online content using a time stamp in parentheses after the
+\textsf{author}, but the 17th edition handles time stamps both
+differently and more widely, so in this case you would now put time
+data into the \textsf{date} or \textsf{eventdate} field, particularly
+when the date itself is too coarse a specification to identify a
+comment unambiguously. Also, the \emph{Manual} (15.52) now specifies
+that comments should appear \enquote{only in the text, in reference to
+ the related post,} so I've provided some new functionality to enable
+this. Please see the \textbf{online} and \textbf{review} types,
+above, especially table~\ref{tab:online:adtypes}, for the details of
+how to cite these materials, possibly with the help of the new
+\texttt{commenton} \textsf{relatedtype} and a separate
\textbf{customc} entry. See also the \textsf{date} field docs above,
in particular table~\ref{ad:date:extras}, for details on how the
-\mycolor{\textsc{iso}8601-2 Extended Format specifications} offered by
+\textsc{iso}8601-2 Extended Format specifications offered by
\textsf{biblatex}, including time stamps and much else besides, have
-been implemented in \textsf{biblatex-chicago}. Cf.\ ellis:blog,
-obrien:recycle.)
+been implemented in \textsf{biblatex-chicago}. (Cf.\ ellis:blog,
+obrien:recycle).
\mylittlespace In the \textsf{customc} entry type, finally, which is
-used to create alphabetized cross-references to other entries in the
-reference list, the \textsf{nameaddon} field allows you to change the
-default string linking the two parts of the cross-reference. The code
+used to create alphabetized cross-references to other bibliography
+entries, the \textsf{nameaddon} field allows you to change the default
+string linking the two parts of the cross-reference. The code
automatically tests for a known bibstring, which it will italicize.
-Otherwise, it prints the string as is.
+Otherwise, it prints the string as you've provided in the
+\textsf{nameaddon} field itself. The punctuation is fixed.
\mybigspace You \mymarginpar{\textbf{nameatype}} can use this field
to change the role of a \textsf{namea} just as you can use
@@ -11685,11 +12235,12 @@ cook:sotweed, emerson:nature, and rodman:walk for examples of this
usage in action.) It also has a specialized use in the periodical
types (\textsf{article}, \textsf{periodical}, and \textsf{review}),
where it holds supplemental information about a \textsf{journaltitle},
-such as \enquote{special issue} (conley:fifthgrade, good:wholeissue).
-In all uses, if your data begins with a word that would ordinarily
-only be capitalized at the beginning of a sentence, then simply ensure
-that that word is in lowercase, and \textsf{biblatex-chicago} will
-automatically do the right thing. Cf.\ \textsf{addendum}.
+such as \enquote{special issue} (conley\hc fifthgrade,
+good:wholeissue). In all uses, if your data begins with a word that
+would ordinarily only be capitalized at the beginning of a sentence,
+then simply ensure that that word is in lowercase, and
+\textsf{biblatex-chicago} will automatically do the right thing. Cf.\
+\textsf{addendum}.
\mybigspace This \mymarginpar{\textbf{number}} is a standard
\textsf{biblatex} field, steadily accumulating uses in
@@ -11700,21 +12251,21 @@ volume/number of a book (or musical recording) in a \textsf{series},
the (generally numerical) specifier of the \textsf{type} in a
\textsf{report} entry, the archive location (or database accession
number) of a \textsf{dataset} entry, and the number of a national or
-international standard in a \mycolor{\textsf{standard}} entry.
-Generally, in an \textsf{article}, \textsf{periodical}, or
-\textsf{review} entry, this will be a plain cardinal number, but in
-such entries \textsf{biblatex-chicago} does the right thing if you
-have a list or range of numbers (unsigned:ranke). In any
-\textsf{book}-like entry it may well contain considerably more
-information, including even a reference to \enquote{2nd ser.,} for
-example, while the \textsf{series} field in such an entry will contain
-the name of the series, rather than a number. This field is also the
-place for the patent number in a \textsf{patent} entry. Cf.\
-\textsf{issue} and \textsf{series}. (See 14.123--25 and boxer:china,
-palmatary:pottery, wauchope:ceramics; 14.171 and beattie:crime,
-conley:fifthgrade, friedman:learning, garrett, gibbard, hlatky:hrt,
-mcmillen:antebellum, rozner:liberation, warr:ellison; 14.257 and
-genbank:db; 14.259 and niso:bibref; 14.263 and holiday:fool.)
+international standard in a \textsf{standard} entry. Generally, in an
+\textsf{article}, \textsf{periodical}, or \textsf{review} entry, this
+will be a plain cardinal number, but in such entries
+\textsf{biblatex-chicago} does the right thing if you have a list or
+range of numbers (unsigned:ranke). In any \textsf{book}-like entry it
+may well contain considerably more information, including even a
+reference to \enquote{2nd ser.,} for example, while the
+\textsf{series} field in such an entry will contain the name of the
+series, rather than a number. This field is also the place for the
+patent number in a \textsf{patent} entry. Cf.\ \textsf{issue} and
+\textsf{series}. (See 14.123--25 and boxer:china, palmatary:pottery,
+wauchope:ceramics; 14.171 and beattie:crime, conley:fifthgrade,
+friedman:learning, garrett, gibbard, hlatky:hrt, mcmillen:antebellum,
+rozner:liberation, warr:ellison; 14.257 and genbank:db; 14.259 and
+niso:bibref; 14.263 and holiday:fool.)
\mylittlespace \textbf{NB}: This may be an opportune place to point
out that the \emph{Manual} (14.147) prefers arabic to roman numerals
@@ -11740,9 +12291,9 @@ organization sponsoring a conference in a \textsf{proceedings} or
\textsf{inproceedings} entry, and I have retained this as a
possibility, though the \emph{Manual} is silent on the matter.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
-\mybigspace This \colmarginpar{\textbf{origdate}} is a standard
+\mybigspace This \mymarginpar{\textbf{origdate}} is a standard
\textsf{biblatex} field which allows more than one full date
specification for those references which need it. (You can also
provide a time stamp in the field, after an uppercase
@@ -11772,7 +12323,7 @@ entries can work; creel:house shows the field in action in a
instead.)
\mylittlespace Because of the importance of date specifications in the
-author-date styles, \textsf{biblatex-chicago-authordate} and
+author-date styles, \textsf{biblatex-chica\-go-authordate} and
\textsf{authordate-trad} provide options and automated behaviors that
allow you to emphasize the \textsf{origdate} in citations and at the
head of entries in the list of references. In entries which have
@@ -11806,8 +12357,8 @@ searched for in the order \textsf{date, eventdate, origdate, urldate}.
If you set the \texttt{cmsdate} preamble options I've just mentioned,
this changes to \textsf{origdate, date, eventdate, urldate}. These
generally cover the needs of the Chicago author-date styles well,
-except for \textsf{music}, \mycolor{\textsf{standard}}, and
-\textsf{video} entries, and, exceptionally, some \textsf{review} and
+except for \textsf{music}, \textsf{standard}, and \textsf{video}
+entries, and, exceptionally, some \textsf{review} and
\textsf{suppperiodical} entries. Here the general rule is to
emphasize the earliest date. For these five entry types, then,
\cmd{DeclareLabeldate} uses the order \textsf{eventdate, origdate,
@@ -11858,7 +12409,7 @@ field. (The \textsf{origyear} field usually works, too.)
section~\ref{sec:authrelated}, below.
\vspace{18pt}
-\mybigspace This \colmarginpar{\textbf{origtimezone}} field can, if
+\mybigspace This \mymarginpar{\textbf{origtimezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{origdate}. The \emph{Manual} prefers initialisms
like \enquote{EST} for this purpose, and you can provide parentheses
@@ -11929,7 +12480,7 @@ different field, (which in the case of a series would be
\textsf{number} [palmatary:pottery]). Cf.\ \textsf{volume};
iso:electrodoc.
-\mybigspace Standard \colmarginpar{\textbf{publisher}}
+\mybigspace Standard \mymarginpar{\textbf{publisher}}
\textsf{biblatex} field. Remember that \enquote{\texttt{and}} is a
keyword for connecting multiple publishers, so if a publisher's name
contains \enquote{and,} then you should either use the ampersand (\&)
@@ -11964,7 +12515,7 @@ can also stand for \enquote{no place.} The \emph{Manual} also
mentions {s.n.}\,(= \emph{sine nomine}) to specify the lack of a
publisher (10.42).
-\mybigspace In \colmarginpar{\textbf{pubstate}} response to new
+\mybigspace In \mymarginpar{\textbf{pubstate}} response to new
specifications in the 17th edition of the \emph{Manual} (esp.\
14.137), I have tried to generalize the functioning of the
\textsf{pubstate} field in all entry types. Because the author-date
@@ -11985,17 +12536,16 @@ bibstrings indicating works soon to be published, i.e.,
\texttt{forthcoming}, \texttt{inpreparation}, \texttt{inpress}, and
\texttt{submitted}; and those, i.e., everything else, which will be
printed before, and in close association with, other information about
-the publisher of a work. (This \colmarginpar{\textbf{NB}} is a change
+the publisher of a work. (This \mymarginpar{\textbf{NB}} is a change
from previous behavior, where non-\texttt{reprint} strings were
printed \emph{after} the publication information, as in the standard
styles. You can still use the \textsf{addendum} field to present
information here, of course.) The four strings that replace the
\textsf{year} will always be localized, as will \texttt{reprint} and
-\mycolor{\texttt{selfpublished}} (and anything else that
-\textsf{biblatex} finds to be a \cmd{bibstring}) from the second
-category. All other strings will be printed as-is, capitalized if
-needed, just before the publisher (author:forthcoming,
-contrib:contrib, schweitzer:bach).
+\texttt{selfpublished} (and anything else that \textsf{biblatex} finds
+to be a \cmd{bibstring}) from the second category. All other strings
+will be printed as-is, capitalized if needed, just before the
+publisher (author:forthcoming, contrib:contrib, schweitzer:bach).
\mylittlespace There is one further subtlety of which you ought to be
aware. In \textsf{music} and \textsf{video} entries, the
@@ -12015,15 +12565,15 @@ purposes. Cf.\ \textsf{annotator} and \textsf{commentator}.
\mybigspace See \mymarginpar{\textbf{reprinttitle}}
section~\ref{sec:authrelated}, below.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
\mybigspace A \mymarginpar{\textbf{series}} standard \textsf{biblatex}
field, usually just a number in an \textsf{article},
\textsf{periodical}, or \textsf{review} entry, almost always the name
of a publication series in \textsf{book}-like entries, and providing
similar identifying information associated with a \textsf{number} in
-\textsf{music} and \mycolor{\textsf{standard}} entries. If you need
-to attach further information to the \textsf{series} name in a
+\textsf{music} and \textsf{standard} entries. If you need to attach
+further information to the \textsf{series} name in a
\textsf{book}-like entry, then the \textsf{number} field is the place
for it, whether it be a volume, a number, or even something like
\enquote{2nd ser.} or \enquote{\cmd{bibstring\{oldseries\}}.} Of
@@ -12121,7 +12671,7 @@ parseable by them, while with the latter you can either rely on the
conventions of your field or, alternately, provide a list of journal
abbreviations using \cmd{printbiblist\{shortjournal\}}.
-\enlargethispage{-\baselineskip}
+% \enlargethispage{-\baselineskip}
\mylittlespace For long institutional names the \emph{Manual's}
recommendation (15.37) involves using an abbreviation which will
@@ -12227,7 +12777,7 @@ change it with \verb+\DeclareFieldFormat{shortjournal-width}+ --- you
can see its default definition at the top of
\textsf{chicago-authordate.bbx}.
-\mybigspace A \colmarginpar{\textbf{shortseries}} special
+\mybigspace A \mymarginpar{\textbf{shortseries}} special
\textsf{biblatex} field, used both to provide an abbreviated form of a
(book) \textsf{series} in a reference list and to facilitate the
creation of a list of such abbreviations rather in the manner of a
@@ -12241,20 +12791,19 @@ to wit: \textsf{audio, book, bookinbook, collection, inbook,
standard, suppbook,} and \textsf{video}. There are several steps to
take in order to use the field. First, you'll need to provide both
\textsf{shortseries} and \textsf{series} fields in the entry, then
-you'll need to set the \mycolor{\texttt{seriesabbrev}} option either
-when loading \textsf{biblatex-chicago}, for the whole document or for
+you'll need to set the \texttt{seriesabbrev} option either when
+loading \textsf{biblatex-chicago}, for the whole document or for
specific entry types, or in the \textsf{options} field of individual
.bib entries. By default, this option is not set, so your
-\mycolor{\textsf{shortseries}} fields will be silently ignored.
-Setting it to \texttt{true} prints the shortened fields in the
-reference list. Should you wish to present a list of these
-abbreviations with their expansions, then you need to use the
-\verb+\printbiblist{shortseries}+ command, perhaps with a
-\texttt{title} option to differentiate the list from any
-\textsf{shorthand} list. As with \textsf{shorthand} lists, I have
-provided two \texttt{bibenvironments} for printing this list in foot-
-or endnotes (\mycolor{\texttt{shsernotes}} and
-\mycolor{\texttt{shserendnotes}}, respectively), to be used with the
+\textsf{shortseries} fields will be silently ignored. Setting it to
+\texttt{true} prints the shortened fields in the reference list.
+Should you wish to present a list of these abbreviations with their
+expansions, then you need to use the \verb+\printbiblist{shortseries}+
+command, perhaps with a \texttt{title} option to differentiate the
+list from any \textsf{shorthand} list. As with \textsf{shorthand}
+lists, I have provided two \texttt{bibenvironments} for printing this
+list in foot- or endnotes (\texttt{shsernotes} and
+\texttt{shserendnotes}, respectively), to be used with the
\texttt{env} option to \cmd{printbiblist}. Again as with
\textsf{shorthands}, you'll probably want to use the option
\texttt{heading=none} when using these environments, just to turn off
@@ -12274,14 +12823,14 @@ on which see the previous entry.) In
only very rarely (unlike in the notes \&\ bibliography style), and is
most likely to turn up in \textsf{inreference} or \textsf{reference}
entries (where the \textsf{title} takes the place of the
-\textsf{author}), in \mycolor{\textsf{dataset}} entries, or in any
-sort of entry with a \texttt{classical} \textsf{entrysubtype} or with
-\mycolor{\texttt{authortitle}} set in its \textsf{options} field.
-These latter three contexts make citations use \textsf{author} and
-\textsf{title} instead of \textsf{author} and \textsf{year}, and if an
-abbreviated version of that title would save space in your running
-text this is the field where you can provide it. (Cf.\
-ency:britannica, grove:sibelius, aristotle:metaphy:gr.)
+\textsf{author}), in \textsf{dataset} entries, or in any sort of entry
+with a \texttt{classical} \textsf{entrysubtype} or with
+\texttt{authortitle} set in its \textsf{options} field. These latter
+three contexts make citations use \textsf{author} and \textsf{title}
+instead of \textsf{author} and \textsf{year}, and if an abbreviated
+version of that title would save space in your running text this is
+the field where you can provide it. (Cf.\ ency:britannica,
+grove:sibelius, aristotle:metaphy:gr.)
\mybigspace Standard \mymarginpar{\textbf{sortkey} \\\textbf{sortname}
\\\textbf{sorttitle} \\\textbf{sortyear}} \textsf{biblatex} fields,
@@ -12305,7 +12854,7 @@ choice. Please consult \textsf{biblatex.pdf} for the details.
\mybigspace The \mymarginpar{\textbf{subtitle}} subtitle for a
\textsf{title} --- see next entry.
-\mybigspace This \colmarginpar{\textbf{timezone}} field can, if
+\mybigspace This \mymarginpar{\textbf{timezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{date}. The \emph{Manual} prefers initialisms like
\enquote{EST} for this purpose, and you can provide parentheses around
@@ -12361,9 +12910,9 @@ comply with them.
\textsf{artwork}, \textsf{book}, \textsf{bookinbook},
\textsf{booklet}, \textsf{collection}, \textsf{image},
\textsf{manual}, \textsf{misc} (with no \textsf{entrysubtype}),
- \mycolor{\textsf{performance}}, \textsf{periodical},
- \textsf{proceedings}, \textsf{report}, \mycolor{\textsf{standard}},
- \textsf{suppbook}, and \textsf{suppcollection} entry types.
+ \textsf{performance}, \textsf{periodical}, \textsf{proceedings},
+ \textsf{report}, \textsf{standard}, \textsf{suppbook}, and
+ \textsf{suppcollection} entry types.
\item[\qquad Quotation Marks:] \textsf{title} of \textsf{article},
\textsf{inbook} \textsf{incollection}, \textsf{inproceedings},
\textsf{online}, \textsf{periodical}, \textsf{thesis}, and
@@ -12406,12 +12955,12 @@ its own, require, then the following rules apply:
\cmd{mkbibquote} command does this for you automatically, and also,
I repeat, takes care of any following punctuation that needs to be
brought within the closing quotation mark(s). (See 14.94--95;
- garrett, loften:hamlet, murphy:silent, white:cal\-limachus.)
+ garrett, loften:hamlet, murphy:silent, white:callimachus.)
\item Inside a plain title (most likely in a \textsf{review} entry or
a \textsf{titleaddon} field), you should present another title as it
would appear on its own, once again formatting it yourself using
\cmd{mkbibemph} or \cmd{mkbibquote}. (barcott:review, gibbard,
- osborne:poi\-son, ratliff:review, unsigned:ranke).
+ osborne\hc poison, ratliff:review, unsigned:ranke).
\end{enumerate}
The \emph{Manual} provides a few more rules, as well. A word normally
@@ -12452,6 +13001,8 @@ serve to clarify them, and help you to understand when
\textsf{biblatex-chicago-authordate-trad} might need your help in
order to comply with them.
+\enlargethispage{2\baselineskip}
+
\mylittlespace With regard to sentence-style capitalization, the rules
of the Chicago \textsf{authordate-trad} style are fairly simple:
@@ -12468,36 +13019,33 @@ of the Chicago \textsf{authordate-trad} style are fairly simple:
sentence style.
\item[\qquad Contextual Capitalization of First Word:]
\textsf{titleaddon}, \textsf{booktitleaddon},
- \textsf{maintitle\-addon} in all entry types, also the
- \textsf{title} of \textsf{review} entries, of
- \textsf{suppperiodical} entries, and of \textsf{misc} entries with
- an \textsf{entrysubtype}.
+ \textsf{maintitleaddon} in all entry types, also the \textsf{title}
+ of \textsf{review} entries, of \textsf{suppperiodical} entries, and
+ of \textsf{misc} entries with an \textsf{entrysubtype}.
\item[\qquad Plain:] \textsf{title} in \textsf{letter} entries.
\end{description}
What this means in practice is that to get a title like \emph{The
Chicago manual of style}, your .bib entry needs to have a field that
looks something like this:
-\begin{quote}
- \texttt{title = \{The \{Chicago\} Manual of Style\}}
-\end{quote}
-
-This is completely straightforward, but remember that if an
-\textsf{article} has a title like: Review of \emph{The Chicago manual
- of style}, then the curly braces enclosing material to be formatted
-in italics will cause the capitalization algorithm to stop and leave
-all of that material as it is, so your .bib entry would need to have a
-field something like this:
-
-\begin{quote}
- \texttt{title = \{}\cmd{bibstring\{reviewof\}} \cmd{mkbibemph\{The
- Chicago manual of style\}\}}
-\end{quote}
-
-(As an aside, the use of the \texttt{reviewof} bibstring isn't
-strictly necessary here, but it helps with portability across
-languages and across the two Chicago styles. If you've noticed a lot
-of lowercase letters starting fields in \textsf{dates-test.bib},
+
+\mylittlespace\hspace*{1em}\texttt{title = \{The \{Chicago\} Manual
+ of Style\}}
+
+\mylittlespace This is completely straightforward, but remember that
+if an \textsf{article} has a title like: Review of \emph{The Chicago
+ manual of style}, then the curly braces enclosing material to be
+formatted in italics will cause the capitalization algorithm to stop
+and leave all of that material as it is, so your .bib entry would need
+to have a field something like this:
+
+\mylittlespace\hspace*{1em}\texttt{title = \{}\cmd{bibstring\{reviewof\}}
+\cmd{mkbibemph\{The Chicago manual of style\}\}}
+
+\mylittlespace (As an aside, the use of the \texttt{reviewof}
+bibstring isn't strictly necessary here, but it helps with portability
+across languages and across the two Chicago styles. If you've noticed
+a lot of lowercase letters starting fields in \textsf{dates-test.bib},
they're present because in the notes \&\ bibliography style
capitalization is complicated by notes using commas where the
bibliography uses periods, and words like \enquote{review} start in
@@ -12513,10 +13061,10 @@ fields], but it still pays to be aware of the issue.)
\textsf{journaltitle} in all entry types; \textsf{title} of
\textsf{artwork}, \textsf{book}, \textsf{bookinbook},
\textsf{booklet}, \textsf{collection}, \textsf{manual},
- \textsf{misc} (w/o \textsf{entrysubtype}),
- \mycolor{\textsf{performance}}, \textsf{periodical},
- \textsf{proceedings}, \textsf{report}, \mycolor{\textsf{standard}},
- \textsf{suppbook}, and \textsf{suppcollection} types.
+ \textsf{misc} (w/o \textsf{entrysubtype}), \textsf{performance},
+ \textsf{periodical}, \textsf{proceedings}, \textsf{report},
+ \textsf{standard}, \textsf{suppbook}, and \textsf{suppcollection}
+ types.
\item[\qquad Main Text Font (Roman):] \textsf{title} of
\textsf{article}, \textsf{image}, \textsf{inbook},
\textsf{incollection}, \textsf{inproceedings}, \textsf{letter},
@@ -12555,8 +13103,8 @@ its own, require, then the following rules apply:
as they would if they were on their own. In such cases you'll need
to do the formatting yourself, using \cmd{mkbibemph} or
\cmd{mkbibquote}. (See barcott:review, garrett, gibbard,
- loften:hamlet, loomis:structure, murphy:silent, osborne:poison,
- ratliff:review, unsigned:ranke, white:callimachus.)
+ loften:hamlet, loomis\hc structure, murphy:silent, osborne:poison,
+ ratliff:review, unsigned:ranke, white\hc callimachus.)
\end{enumerate}
The \emph{Manual} provides a few more rules, as well. A word normally
@@ -12633,7 +13181,7 @@ name for the head of a reference list entry or for a citation,
\textsf{nameb} takes precedence over \textsf{translator}.
\mylittlespace I have also provided a \textsf{namea} field, which
-holds the editor of a given \textsf{title} (euripides:ores\-tes). If
+holds the editor of a given \textsf{title} (euripides\hc orestes). If
\textsf{namea} and \textsf{nameb} are the same,
\textsf{biblatex-chicago} will concatenate them, just as
\textsf{biblatex} already does for \textsf{editor},
@@ -12660,7 +13208,7 @@ controlled with the \texttt{use<name>} switches in the
\textsf{options} field. Cf.\ \textsf{author}, \textsf{editor},
\textsf{namea}, \textsf{nameb}, and \textsf{namec}.
-\mybigspace This \colmarginpar{\textbf{type}} is a standard
+\mybigspace This \mymarginpar{\textbf{type}} is a standard
\textsf{biblatex} field, and in its normal usage serves to identify
the type of a \textsf{manual}, \textsf{patent}, \textsf{report}, or
\textsf{thesis} entry. \textsf{Biblatex} implements the possibility,
@@ -12709,7 +13257,7 @@ inherit \textsf{url} fields from their parents --- the information
seems entry-specific enough to warrant a little bit of extra typing if
you need to present the same locator in several entries.
-\mybigspace Standard \colmarginpar{\textbf{urldate}} \textsf{biblatex}
+\mybigspace Standard \mymarginpar{\textbf{urldate}} \textsf{biblatex}
field, it identifies exactly when you accessed a given url. The
\emph{Manual} prefers DOIs to URLs; in the latter case it allows the
use of access dates, particularly in contexts that require it, but
@@ -12722,51 +13270,52 @@ hlatky:hrt, osborne:poison, sirosh:visualcortex, wikiped:bibtex). In
the default setting of \cmd{DeclareLabeldate}, any entry without a
\textsf{date}, \textsf{eventdate}, or \textsf{origdate} will use the
\textsf{urldate} to find a year for citations and the list of
-references (grove:sibelius, wikiped:bibtex), but \colmarginpar{New!}
-\emph{only} if the \textsf{urldate} isn't an access date, that is,
-only if a \textsf{userd} field is present. If the only date available
-is an online access date, then the entry is considered to have no
-date, and \enquote{n.d.} will appear instead, though of course the
-access date will still be printed later in the reference list entry.
-(If you were to put the string \texttt{accessed} into the
-\textsf{userd} field, you could work around this prohibition.)
-
-\mylittlespace You can \colmarginpar{New!} also use the
-\textsf{urldate} field to specify a time stamp, should the date alone
-not be specific enough. The time stamp follows the date, separated by
-an uppercase \enquote{T}, like so:
-\texttt{yyyy-mm-dd\textbf{T}hh:mm:ss}. If you wish to specify the
+references (grove:sibelius, wikiped:bibtex), but \emph{only} if the
+\textsf{urldate} isn't an access date, that is, only if a
+\textsf{userd} field is present. If the only date available is an
+online access date, then the entry is considered to have no date, and
+\enquote{n.d.} will appear instead, though of course the access date
+will still be printed later in the reference list entry. (If you were
+to put the string \texttt{accessed} into the \textsf{userd} field, you
+could work around this prohibition.)
+
+\mylittlespace You can also use the \textsf{urldate} field to specify
+a time stamp, should the date alone not be specific enough. The time
+stamp follows the date, separated by an uppercase \enquote{T}, like
+so: \texttt{yyyy-mm-dd\textbf{T}hh:mm:ss}. If you wish to specify the
time zone, the \emph{Manual} (10.41) prefers initialisms like
\enquote{EST} or \enquote{PDT,} and these are most easily provided
-using the \mycolor{\texttt{urltimezone}} field, where you can provide
-your own parentheses if so desired (cp.\ 14.191). Following the
-examples in the \emph{Manual}, any \textsf{urldate} will by default be
-printed in 24-hour format, though other time stamps use 12-hour
-format. The \textsf{biblatex} option \texttt{urltime}, discussed in
+using the \texttt{urltimezone} field, where you can provide your own
+parentheses if so desired (cp.\ 14.191). Following the examples in
+the \emph{Manual}, any \textsf{urldate} will by default be printed in
+24-hour format, though other time stamps use 12-hour format. The
+\textsf{biblatex} option \texttt{urltime}, discussed in
section~\ref{sec:preset:authdate}, allows you to change this in your
preamble.
\mylittlespace A \textsf{urldate} time stamp (and
-\mycolor{\texttt{urltimezone}}) can appear in any entry whatsoever, if
-you judge the online source to be the sort that changes rapidly enough
-for a time stamp to be necessary (14.207, 14.233; wikiped:bibtex).
-You can stop it printing by setting the new
-\colmarginpar{\texttt{urlstamp}} \mycolor{\texttt{urlstamp}} option to
-\texttt{false} in your preamble for the whole document or for
-specified entry types, or in the \textsf{options} field of individual
-entries. Please see the documentation of \textbf{date} and also
-table~\ref{ad:date:extras}, above, for more details about time stamps
-and other parts of \textsf{biblatex's} enhanced date specifications.
+\texttt{urltimezone}) can appear in any entry whatsoever, if you judge
+the online source to be the sort that changes rapidly enough for a
+time stamp to be necessary (14.207, 14.233; wikiped:bibtex). You can
+stop it printing by setting the new \mymarginpar{\texttt{urlstamp}}
+\texttt{urlstamp} option to \texttt{false} in your preamble for the
+whole document or for specified entry types, or in the
+\textsf{options} field of individual entries. Please see the
+documentation of \textbf{date} and also table~\ref{ad:date:extras},
+above, for more details about time stamps and other parts of
+\textsf{biblatex's} enhanced date specifications.
Table~\ref{tab:online:adtypes} contains a summary of the current state
of \textsf{biblatex-chicago's} handling of online materials.
-\mybigspace This \colmarginpar{\textbf{urltimezone}} field can, if
+\mybigspace This \mymarginpar{\textbf{urltimezone}} field can, if
necessary, specify the time zone associated with a time stamp given as
part of an \textsf{urldate}. The \emph{Manual} prefers initialisms
like \enquote{EST} for this purpose, and you can provide parentheses
around it at your discretion (cp.\ 10.41 and 14.191).
-\mybigspace A \colmarginpar{\textbf{usera}} supplemental
+\enlargethispage{\baselineskip}
+
+\mybigspace A \mymarginpar{\textbf{usera}} supplemental
\textsf{biblatex} field which in certain contexts in
\textsf{biblatex-chicago} will identify the broadcast network when you
cite a radio or television program. In \textsf{article},
@@ -12815,17 +13364,17 @@ contain (14.12--13; wikiped:bibtex). In the absence of a
field to qualify a \textsf{date} in the same way it would have
modified a \textsf{urldate}. If an entry contains \emph{only} a
\textsf{urldate} and no other sort of date, and has no \textsf{userd}
-field, that entry will now \colmarginpar{New!} be treated as though it
-had no date, and \enquote{n.d.} will appear in citations and at the
-head of entries in the reference list (15.50).
+field, that entry will now be treated as though it had no date, and
+\enquote{n.d.} will appear in citations and at the head of entries in
+the reference list (15.50).
\mylittlespace Because of the rather specialized needs of some
-audio-visual references, this basic sche\-ma changes for
-\textsf{music} and \textsf{video} entries. In \textsf{music} entries
-where an \textsf{eventdate} is present, \textsf{userd} will modify
-that date instead of any \textsf{urldate} that may also be present,
-and it will modify an \textsf{origdate} if it is present and there is
-no \textsf{eventdate}. It will modify a \textsf{date} only in the
+audio-visual references, this basic schema changes for \textsf{music}
+and \textsf{video} entries. In \textsf{music} entries where an
+\textsf{eventdate} is present, \textsf{userd} will modify that date
+instead of any \textsf{urldate} that may also be present, and it will
+modify an \textsf{origdate} if it is present and there is no
+\textsf{eventdate}. It will modify a \textsf{date} only in the
absence of the other three. In \textsf{video} entries it will modify
an \textsf{eventdate} if it is present, and in its absence the
\textsf{urldate}. Given the absence of those two, it can modify a
@@ -12858,18 +13407,16 @@ section~\ref{sec:authrelated}, below.
\mybigspace Standard \colmarginpar{\textbf{venue}} \textsf{biblatex}
offers this field for use in \textsf{proceedings} and
-\textsf{inproceedings} entries, but I haven't yet implemented it
-there, mainly because the \emph{Manual} has nothing to say about it.
-Perhaps the \textsf{organization} field could be used, for the moment,
-instead. I have implemented the field in the \textbf{misc} entry
-type, both with and without an \textsf{entrysubtype}, in the new
-\mycolor{\textbf{performance}} type, and in the \textbf{unpublished}
-type. In all uses it will normally present the actual venue of an
-event, as opposed, e.g., to the \textsf{origlocation}, which might
-present where a letter was written or where an earlier edition was
-printed.
-
-\mybigspace Author-date \colmarginpar{\textbf{verbc}} styles in
+\textsf{inproceedings} entries, and after a request from Patrick
+Danilevici I have followed suit. I have also implemented the field in
+the \textsf{misc} entry type, both with and without an
+\textsf{entrysubtype}, in the \textsf{performance} type, and in the
+\textsf{unpublished} type. In all uses it will normally present the
+actual venue of an event, as opposed, e.g., to the
+\textsf{origlocation}, which might present where a letter was written
+or where an earlier edition was printed.
+
+\mybigspace Author-date \mymarginpar{\textbf{verbc}} styles in
\textsf{biblatex} use the \textsf{extradate} field, automatically
provided by \textsf{biber}, to distinguish citations of different
works by the same \textsf{author} that were published in the same
@@ -12889,8 +13436,8 @@ easy to get an extradate letter in a reference even when only one work
by that \textsf{author} appears in the list, or perhaps a series of
letters with some missing from the sequence.
-\mylittlespace The \mycolor{\textbf{verbc}} field allows you manually
-to intervene to control these side effects. (It's a standard
+\mylittlespace The \textsf{verbc} field allows you manually to
+intervene to control these side effects. (It's a standard
\textsf{biblatex} field, but isn't used in the standard styles.)
Putting anything in the field prevents that entry from interfering in
the \textsf{extradate} provision of entries that don't contain such a
@@ -12898,24 +13445,24 @@ field, and in more complicated scenarios you could group entries by
identical \textsf{verbc} field to prevent them from interfering both
with entries not having any \textsf{verbc} field \emph{and} with
entries having a different value for that field. By default, the
-\mycolor{\texttt{commenton}} \textsf{relatedtype} for \textbf{online}
-and \textbf{review} entries adds a \textsf{verbc} field to its entry,
-but you can in all cases control this and provide your own in any
+\texttt{commenton} \textsf{relatedtype} for \textsf{online} and
+\textsf{review} entries adds a \textsf{verbc} field to its entry, but
+you can in all cases control this and provide your own in any
circumstances and in any entry type you wish. Please see the
documentation of those two entry types in
section~\ref{sec:types:authdate}, and of the \textsf{commenton}
\textsf{relatedtype} in section~\ref{sec:authrelated}.
-\mybigspace Standard \colmarginpar{\textbf{version}} \textsf{biblatex}
+\mybigspace Standard \mymarginpar{\textbf{version}} \textsf{biblatex}
field, formerly only available in \textsf{artwork}, \textsf{image},
-\textsf{misc}, \textsf{music}, and \textsf{pa\-tent} entries in
-\textsf{biblatex-chicago-authordate}, but now also in \textbf{book} and
-\mycolor{\textbf{performance}} entries. In most entry types it prints
-a localized \enquote{\texttt{version}} string, but there may be
+\textsf{misc}, \textsf{music}, and \textsf{patent} entries in
+\textsf{biblatex-chicago-authordate}, but now also in \textsf{book}
+and \textsf{performance} entries. In most entry types it prints a
+localized \enquote{\texttt{version}} string, but there may be
specialist needs in \textsf{artwork} and \textsf{image} entries, so
-there you'll need to specify the type of data inside the field
-itself. In the \textsf{book} type it is particularly needed for
-presenting multimedia app content (15.57, 14.268).
+there you'll need to specify the type of data inside the field itself.
+In the \textsf{book} type it is particularly needed for presenting
+multimedia app content (15.57, 14.268).
\mybigspace Standard \mymarginpar{\textbf{volume}} \textsf{biblatex}
field. It holds the volume of a \textsf{journaltitle} in
@@ -12971,7 +13518,7 @@ option's documentation in section~\ref{sec:authpreset}, below.
field provided by \textsf{biblatex}, which prevents inheritance of any
data from the parent entry. See \textbf{crossref}, above.
-\mybigspace Standard \colmarginpar{\textbf{year}} \textsf{biblatex}
+\mybigspace Standard \mymarginpar{\textbf{year}} \textsf{biblatex}
field, especially important for the author-date specification. Please
see all the details under \textbf{date} above. Unlike the
\textsf{date} field \textsf{year} allows non-numeric input, so you can
@@ -12986,7 +13533,7 @@ bedford:photo, clark:mesopot, leo:madonna, ross:thesis.
\subsubsection{Fields for Related Entries}
\label{sec:authrelated}
-As \textsf{biblatex.pdf} puts it (§~3.4), \enquote{Almost all
+As \textsf{biblatex.pdf} puts it (\S~3.4), \enquote{Almost all
bibliography styles require authors to specify certain types of
relationship between entries such as \enquote{Reprint of},
\enquote{Reprinted in,} etc. It is impossible to provide data fields
@@ -13083,13 +13630,13 @@ help document reprint editions and their corresponding originals
\textsf{origlocation} in addition to the \textsf{origdate}, and all
will be presented in the reference list. (Cf.\ \textsf{origdate}
[section~\ref{sec:fields:authdate}], \textsf{origlocation}, and
-\textsf{pubstate}; schweitzer:\break bach.) \textbf{NB:} It is impossible to
+\textsf{pubstate}; schweitzer:bach.) \textbf{NB:} It is impossible to
present this same information, as here, \emph{inside} a single entry
using a \texttt{related} field, though the \textsf{relatedtype}
\texttt{origpubin} presents much the same information \emph{after} the
entry, using data extracted from a separate entry.
-\mybigspace In \colmarginpar{\textbf{pubstate}} response to new
+\mybigspace In \mymarginpar{\textbf{pubstate}} response to new
specifications in the 17th edition of the \emph{Manual} (esp.\
14.137), I have tried to generalize the functioning of the
\textsf{pubstate} field in all entry types. Because the author-date
@@ -13110,17 +13657,16 @@ bibstrings indicating works soon to be published, i.e.,
\texttt{forthcoming}, \texttt{inpreparation}, \texttt{inpress}, and
\texttt{submitted}; and those, i.e., everything else, which will be
printed before, and in close association with, other information about
-the publisher of a work. (This \colmarginpar{\textbf{NB}} is a change
+the publisher of a work. (This \mymarginpar{\textbf{NB}} is a change
from previous behavior, where non-\texttt{reprint} strings were
printed \emph{after} the publication information, as in the standard
styles. You can still use the \textsf{addendum} field to present
information here, of course.) The four strings that replace the
\textsf{year} will always be localized, as will \texttt{reprint} and
-\mycolor{\texttt{selfpublished}} (and anything else that
-\textsf{biblatex} finds to be a \cmd{bibstring}) from the second
-category. All other strings will be printed as-is, capitalized if
-needed, just before the publisher (author:forthcoming,
-contrib:contrib, schweitzer:bach).
+\texttt{selfpublished} (and anything else that \textsf{biblatex} finds
+to be a \cmd{bibstring}) from the second category. All other strings
+will be printed as-is, capitalized if needed, just before the
+publisher (author:forthcoming, contrib:contrib, schweitzer:bach).
\mylittlespace There is one further subtlety of which you ought to be
aware. In \textsf{music} and \textsf{video} entries, the
@@ -13159,9 +13705,9 @@ you can set this option, either in your preamble or in the
\textsf{options} or \textsf{relatedoptions} field of the relevant
entry, to \texttt{false}. For the two \textsf{relatedtypes} that
construct a single entry using data extracted from related entries ---
-\mycolor{\texttt{commenton}} and \texttt{reviewof} --- you'll need to
-make sure this is \texttt{true} to get properly-formatted citations in
-the reference list. See below for the details.
+\texttt{commenton} and \texttt{reviewof} --- you'll need to make sure
+this is \texttt{true} to get properly-formatted citations in the
+reference list. See below for the details.
\mybigspace This \mymarginpar{\textbf{relatedoptions}} field will, I
should expect, only be needed very rarely. If you want to set
@@ -13174,7 +13720,7 @@ cite it elsewhere. If you use the field yourself, then you'll need to
include \texttt{dataonly} as one of the options therein to maintain
this effect. Of course, it may be you don't want all the effects of
\texttt{dataonly}, so you can tailor it however you wish. See
-\textsf{biblatex.pdf} §~3.4.
+\textsf{biblatex.pdf} \S~3.4.
\mybigspace The \mymarginpar{\textbf{relatedstring}} procedure for
choosing a string to connect the main entry with its related entry/ies
@@ -13200,7 +13746,7 @@ context, and modified the \textsf{pubstate} mechanism to use the
\textsf{biblatex} styles define six \textsf{relatedtypes}, and I have
either simply adopted them wholesale or adapted them to the needs of
the Chicago style, retaining the basic syntax as much as possible. I
-have also added two to these six (see below):
+have also added three to these six (see below):
\begin{description}
\item[\qquad bytranslator:] This prints a full reference to a
@@ -13209,7 +13755,7 @@ have also added two to these six (see below):
\ldots} The reference is fuller in \textsf{biblatex-chicago} than
in the standard styles, and for the first time allows users to
choose the \emph{Manual's} alternate method for presenting original
- + translation (14.99; furet:passing:fr). The old \textsf{userf}
+ + translation (14.99; furet\hc passing:fr). The old \textsf{userf}
mechanism provides the other, as does the \texttt{origpubas}
\textsf{relatedtype} (see below).
\item[\qquad default:] This is the macro used when no
@@ -13242,46 +13788,47 @@ have also added two to these six (see below):
\textsf{biblatex-chicago} it contains some kludges to cope with
possible \textsf{babel} language environments, so if you find it
behaving oddly please let me know, including whether you are using
- \textsf{babel} [which I've tested] or \textsf{polyglossia} [which I
- haven't].)
+ \textsf{babel} [which I've tested] or \textsf{polyglossia} [which
+ I've tested somewhat less].)
\end{description}
Now, the Chicago-specific types:
\begin{description}
-\item[\qquad \mycolor{commenton:}] I designed the new
- \textsf{relatedtype} \mycolor{\texttt{commenton}} to facilitate
- citation of online comments, and it is available in two entry types,
- \textsf{online} and \textsf{review} (with its clone
- \textsf{suppperiodical}). In both types the \emph{Manual}
- (15.51--52) recommends that such material appear \emph{only} in the
- text and not in the reference list, but I have attempted to simplify
- the presentation of such material wherever you want it to appear.
- Following the specifications, then, the default when you use
- \mycolor{\texttt{commenton}} is for
+\item[\qquad commenton:] I designed the new \textsf{relatedtype}
+ \texttt{commenton} to facilitate citation of online comments, and it
+ is available in two entry types, \textsf{online} and \textsf{review}
+ (with its clone \textsf{suppperiodical}). In both types the
+ \emph{Manual} (15.51--52) recommends that such material appear
+ \emph{only} in the text and not in the reference list, but I have
+ attempted to simplify the presentation of such material wherever you
+ want it to appear. Following the specifications, then, the default
+ when you use \texttt{commenton} is for
\textsf{biblatex-chicago-authordate} to modify how your .bib entry
appears in the .bbl file by setting both \texttt{skipbib} and
\texttt{cmsdate=full} in the \textsf{options} field, so that nothing
appears in the reference list and citations present the full date
and possibly also a time stamp (see below). Further, the style sets
- the \mycolor{\textsf{verbc}} field so that these entries don't
- interfere with the provision of extra date letters --- the full date
- and time should be enough to individuate separate comments.
- Finally, the style creates a new \textsf{customc} entry in your .bbl
- file which you can cite after your initial
- \mycolor{\texttt{commenton}} entry using \cmd{autocites} and which
- will, as a comment to your initial entry, say whether it's a comment
- or a reply or what have you, and then giving the short citation of
- that upon which it is a comment. (Just to be clear: your .bib file
- will itself never be altered, only the .bbl file, which is produced
- by \textsf{biber} and which provides the data from which
- \textsf{biblatex} actually typesets citations.)
+ the \textsf{verbc} field so that these entries don't interfere with
+ the provision of extra date letters --- the full date and time
+ should be enough to individuate separate comments. Finally, the
+ style creates a new \textsf{customc} entry in your .bbl file which
+ you can cite after your initial \texttt{commenton} entry using
+ \cmd{autocites} and which will, as a comment to your initial entry,
+ say whether it's a comment or a reply or what have you, and then
+ giving the short citation of that upon which it is a comment. (Just
+ to be clear: your .bib file will itself never be altered, only the
+ .bbl file, which is produced by \textsf{biber} and which provides
+ the data from which \textsf{biblatex} actually typesets citations.)
+ Because of how this works, you can currently only use \emph{one}
+ entry key in the \textsf{related} field for this
+ \textsf{relatedtype}, though I may lift this restriction in the
+ future.
As an example, take the Facebook post diaz:surprise, which does
appear in the reference list. The entry licis:diazcomment presents
a comment on this post using the \textsf{relatedtype}
- \mycolor{\texttt{commenton}}, so
- \textsf{biblatex-chicago-authordate} creates a new entry,
- diaz:surprise-customc. When you cite the comment in your document a
- command like
+ \texttt{commenton}, so \textsf{biblatex-chicago-authordate} creates
+ a new entry, diaz:surprise-customc. When you cite the comment in
+ your document a command like
\verb+\autocites{licis:diazcomment}{diaz:surprise-customc}+ will
produce a citation like (Licis, February 24, 2016; comment on D\'iaz
2016). You can alter the string connecting the two citations (by
@@ -13293,24 +13840,24 @@ Now, the Chicago-specific types:
fields required.)
Those who want \textsf{online} comments to appear in the reference
- list can still use the \mycolor{\texttt{commenton}}
- \textsf{relatedtype}, and the same citation of the commented piece
- will appear there, connected by the same string that the
- \textsf{customc} entry provides. Here, though, you can also provide
- a separate \textsf{title} for the comment, and/or a separate
- \textsf{url} for it, should they exist, which will be printed
- before/after the citation of the commented piece, respectively. (In
- \textsf{review} entries, which use the same \textsf{relatedtype},
- only the generic title is available, as is always the case with such
- entries.) If you manually set either (or both) of the
- \texttt{cmsdate} or the \texttt{skipbib} options in your entry then
+ list can still use the \texttt{commenton} \textsf{relatedtype}, and
+ the same citation of the commented piece will appear there,
+ connected by the same string that the \textsf{customc} entry
+ provides. Here, though, you can also provide a separate
+ \textsf{title} for the comment, and/or a separate \textsf{url} for
+ it, should they exist, which will be printed before/after the
+ citation of the commented piece, respectively. (In \textsf{review}
+ entries, which use the same \textsf{relatedtype}, only the generic
+ title is available, as is always the case with such entries.) If
+ you manually set either (or both) of the \texttt{cmsdate} or the
+ \texttt{skipbib} options in your entry then
\textsf{biblatex-chicago} will assume you want to hand-craft that
entry without its intervention, so it won't alter the
- \textsf{options} field or indeed provide any
- \mycolor{\textsf{verbc}} field, though it will still provide the
- virtual \textsf{customc} entry in your .bbl file, as that may still
- prove convenient. Note also that any \mycolor{\textsf{verbc}} field
- you provide will never be altered by the package.
+ \textsf{options} field or indeed provide any \textsf{verbc} field,
+ though it will still provide the virtual \textsf{customc} entry in
+ your .bbl file, as that may still prove convenient. Note also that
+ any \textsf{verbc} field you provide will never be altered by the
+ package.
\item[\qquad reviewof:] Philip Kime's \textsf{biblatex-apa} package
includes this type, and user Bertold Schweitzer suggested it might
be a useful addition to \textsf{biblatex-chicago}, so I've added it
@@ -13322,6 +13869,8 @@ Now, the Chicago-specific types:
and \textsf{review} entries (along with the latter's clone,
\textsf{suppperiodical}).
+ \enlargethispage{\baselineskip}
+
In \textsf{article} entries it replaces the \textsf{titleaddon} with
the \textsf{relatedstring} followed by the \textsf{title} of the
child entry, and in \textsf{review} entries it replaces the
@@ -13343,6 +13892,15 @@ Now, the Chicago-specific types:
if the mechanism doesn't work for you in a particular context,
remember that the standard way of presenting reviewed works is still
available.
+\item[\qquad \mycolor{short:}] This \textsf{relatedtype} is like the
+ \texttt{default} type, only it prints author-date citations rather
+ than full reference-list entries. There is no default
+ \textsf{relatedstring} for this type, so if you leave that field
+ blank then the short references will simply appear at the end of the
+ parent entry in the reference list. Any entries you reference in
+ this way will by default appear separately in the reference list,
+ even if you haven't cited them anywhere else in your document.
+ Otherwise the short reference won't actually be decipherable.
\end{description}
\mybigspace \textbf{NB:} \mymarginpar{\textbf{reprinttitle}}
@@ -13521,7 +14079,7 @@ styles support this feature, though I have added the last,
style-specific, one. If the \textsf{biblatex} authors generalize it
still further in a future release, I shall do the same, if possible.
-\mybigspace I \colmarginpar{\textbf{\textbackslash letterdatelong}}
+\mybigspace I \mymarginpar{\textbf{\textbackslash letterdatelong}}
have provided this macro mainly for use in the optional postnote field
of the various citation commands. When citing a letter (published or
unpublished, \textsf{letter} or \textsf{misc}), it may be useful to
@@ -13668,7 +14226,7 @@ equivalent to \verb+\bibstring{reprint}+. It is useful in the notes
\&\ bibliography style, and I include it in the author-date styles for
compatibility.
-\mylittlespace Unlike \colmarginpar{\textbf{\textbackslash
+\mylittlespace Unlike \mymarginpar{\textbf{\textbackslash
suppress-\\bibfield[]\{\}}} the other commands presented here,
this should be used in your document preamble rather than in your
bibliographical apparatus. Also unlike them, it has two arguments,
@@ -13678,14 +14236,14 @@ provided by \textsf{biblatex-chicago} (see
section~\ref{sec:authpreset}), I might also provide a general-purpose
macro to clear fields from selected entry types when the package
options aren't quite right for a user's particular needs. The
-\mycolor{\cmd{suppressbibfield}} command does this, so that
+\cmd{suppressbibfield} command does this, so that
\verb+\suppressbibfield{note}+ clears the \textsf{note} field from
\emph{all} entries, while \verb+\suppressbibfield[report]{note}+
clears it only from \textsf{report} entries. Both arguments take
comma-separated lists, so to suppress \textsf{titleaddon} and
\textsf{volumes} fields from \textsf{report} and \textsf{manual}
entries, your preamble could contain
-\verb+\suppressbibfield[report,manual]{titleaddon,volumes}+.
+\verb+\suppressbib-field[report,manual]{titleaddon,volumes}+.
\mylittlespace A few usage notes are in order. First, you can use as
many calls to the command in your preamble as you wish. Second, the
@@ -13708,26 +14266,26 @@ and a \textsf{date} field won't be affected by a command that
suppresses the \textsf{year}. Fifth, the code for the command resides
in \textsf{biblatex-chicago.sty}, so if you load the styles without
loading that package it won't be available to you. Sixth and finally,
-the \mycolor{\cmd{suppressbibfield}} command is new and relatively
-untested, so please report any untoward behavior to me.
+the \cmd{suppressbibfield} command is new and relatively untested, so
+please report any untoward behavior to me.
\subsubsection{Citation Commands}
\label{sec:cite:authordate}
The \textsf{biblatex} package is particularly rich in citation
-commands, most of which, in \textsf{bibla\-tex-chicago-authordate} and
+commands, most of which, in \textsf{biblatex-chicago-authordate} and
\textsf{authordate-trad}, function as they do in the standard
author-date styles. If you are getting unexpected behavior when using
them please have a look in your .log file. A command like
-\cmd{supercite}, listed in §~3.6.2 of the \textsf{biblatex} manual but
-not defined by \textsf{biblatex-chicago-authordate} or by core
+\cmd{supercite}, listed in \S~3.6.2 of the \textsf{biblatex} manual
+but not defined by \textsf{biblatex-chicago-authordate} or by core
\textsf{biblatex}, defaults to \cmd{cite}, and leaves a warning in the
.log. The following commands may require some minimal explanation,
but if there are standard commands that don't work for you, or new
commands that would be useful, please let me know, and it should be
possible to fix or add them.
-\mybigspace These \colmarginpar{\textbf{\textbackslash atcite
+\mybigspace These \mymarginpar{\textbf{\textbackslash atcite
\\\textbackslash atpcite}} two new citation commands allow you
quickly and easily to provide an author-title citation of any entry,
instead of an author-date citation. The \texttt{classical}
@@ -13735,7 +14293,7 @@ instead of an author-date citation. The \texttt{classical}
in the citation, so I've provided other means to achieve the same end.
The first of these new citation commands presents the plain citation,
the second includes it in parentheses for inclusion in running text.
-The new \mycolor{\texttt{authortitle}} type and entry option
+The new \texttt{authortitle} type and entry option
(section~\ref{sec:authuseropts}) has the same effect when using the
standard citation commands, but it's possible that using these new
commands instead may give added flexibility.
@@ -13747,8 +14305,62 @@ that \textsf{biblatex-chicago-authordate} sets this command to use
the most common citation command you will use, and also works fine in
its multicite form, \textbf{\textbackslash autocites}.
+\mybigspace Although \colmarginpar{\textbf{\textbackslash citeincite}}
+the officially-sanctioned, and safest, way to present cross-references
+to other works is by using the \textsf{related} mechanism, it would
+appear, judging from various bug reports I've received, that there are
+plenty of users who need to present such references in ways that
+aren't supported by the \textsf{related} code as it stands. This new
+citation command is designed to allow you to present short references
+to other works inside other references, and to avoid some, I hope
+most, of the bugs associated with using cite commands in the fields of
+other entries. If you want to present long citations, I'm assuming
+that you wouldn't want to do that in fields right in the middle of the
+parent entry, and that, therefore, the usual methods detailed in
+section~\ref{sec:authrelated} (above) or the new
+\mycolor{\cmd{fullciteincite}} command (below) will serve your
+needs. Similarly, if you want to provide short citations at the end of
+your parent entry, the new \textsf{relatedtype}
+\mycolor{\texttt{short}} should work.
+
+\mylittlespace If, however, you must have a short reference in the
+midst of another field, then \mycolor{\cmd{citeincite}} can help. It
+is certified to work properly only in the \textsf{addendum,
+ annotation, annote, note, and titleaddon} fields, and in the
+author-date styles also in the \textsf{title} fields of
+\textsf{customc} entries, which allows you (via a multicite command)
+to include such citations as comments to other in-text citations. The
+multicite command \mycolor{\cmd{citeincites}} is also available in the
+same contexts. In previous releases of \textsf{biblatex} there were
+differences in how the case-changing backends behaved with respect to
+citation commands inside entry fields, but in my testing the two
+backends appear currently to be equivalent on this score. Still,
+should you run into problems using \cmd{citeincite}, it might still be
+worth setting \texttt{casechanger=latex2e} in your preamble to see if
+that helps.
+
+\mybigspace Ordinarily, \colmarginpar{\textbf{\textbackslash
+ fullciteincite}} you can use one of the methods discussed in
+section~\ref{sec:authrelated} to present, in a reference list, a full
+citation of a work related in some way to the current entry. The new
+command \mycolor{\cmd{citeincite}} (above) allows you to present short
+citations to other works within selected fields of the parent entry,
+or indeed as part of comments inside other in-text citations, while
+attempting to minimize the problems caused by citations within other
+citations. The \mycolor{\cmd{fullciteincite}} command works similarly
+for full citations, but really is designed for use only in
+\textsf{annotation} fields, the idea being that you might want to
+refer in an annotated reference list to works that you haven't cited
+in the main body of your text. The multicite command
+\mycolor{\cmd{fullciteincites}} is also available. It may be worth
+noting here that, because the full reference list drivers don't
+contain code for printing \textsf{postnote} fields, any postnotes that
+you provide will be silently ignored. Inconsistently enough,
+\textsf{prenote}, \textsf{multiprenote}, and \textsf{multipostnote}
+fields will appear.
+
\mybigspace Arne \mymarginpar{\textbf{\textbackslash gentextcite}}
-Skjærholt requested, for the author-date styles, a variant of the
+Skj{\ae}rholt requested, for the author-date styles, a variant of the
\cmd{textcite} command that presented the author's name in the
genitive case in running text, thereby simplifying certain syntactic
constructions (15.25). The \cmd{gentextcite} command, in effect,
@@ -13768,7 +14380,7 @@ will, as with other citation commands, be interpreted as a
\textsf{postnote}. There is a \cmd{gentextcites} command as well,
though currently you can only specify one genitival ending for all
keys, like so:\
-\cmd{gentextcites[<ending>]()()[][]\{entry:key1\}\{en\-try:key2\}},
+\cmd{gentextcites[<ending>]()()[][]\{entry:key1\}\{entry:key2\}},
though if you don't have a \textsf{pre-} or \textsf{postnote} to the
first citation you can make do with
\cmd{gentextcites[<ending>]()\{entry:key1\}\{entry:key2\}}.
@@ -13813,10 +14425,10 @@ tell you which \textsf{biblatex} options the package sets for you, I
thought I might gather them here also for your perusal. These
settings are, I believe, consistent with the specification, but you
can alter them in the options to \textsf{biblatex-chicago} in your
-preamble or by loading the package using
-\cmd{usepackage[style=chicago-authordate]\{biblatex\}}, which gives
-you the \textsf{biblatex} defaults unless you redefine them yourself
-inside the square brackets.
+preamble or by loading the package using \verb+\usepackage+
+\verb+[style=chicago-authordate]{biblatex}+, which gives you the
+\textsf{biblatex} defaults unless you redefine them yourself inside
+the square brackets.
\mylittlespace \textsf{Biblatex-chicago-authordate}
\mymarginpar{\texttt{autocite=\\inline}} and \textsf{authordate-trad}
@@ -13828,34 +14440,33 @@ for the \cmd{ifciteseen} test is enabled globally.
\mybigspace The \mymarginpar{\texttt{alldates=comp}} specification
calls for the long format when presenting dates, slightly shortened
when presenting date ranges. The new style option
-\mycolor{\texttt{compressyears}}, enabled by default, means that year
-ranges are now compressed automatically according to the
-\emph{Manual's} instructions (9.64; section~\ref{sec:authpreset}).
+\texttt{compressyears}, enabled by default, means that year ranges are
+now compressed automatically according to the \emph{Manual's}
+instructions (9.64; section~\ref{sec:authpreset}).
-\mylittlespace In \colmarginpar{\texttt{alltimes=12h}} entries which
+\mylittlespace In \mymarginpar{\texttt{alltimes=12h}} entries which
print time stamps, they will, when the stamp is part of a
\textsf{date}, \textsf{eventdate}, or \textsf{origdate}, appear in
12-hour format, i.e., \enquote{4:45 p.m.} Stamps that are part of a
-\textsf{urldate} are, by default, controlled by the
-\mycolor{\texttt{urltime}} option, which is set to
-\mycolor{\texttt{24h}}. See that option below, and
+\textsf{urldate} are, by default, controlled by the \texttt{urltime}
+option, which is set to \texttt{24h}. See that option below, and
table~\ref{ad:date:extras}.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
-\mylittlespace This \colmarginpar{\texttt{datecirca=true}} option
+\mylittlespace This \mymarginpar{\texttt{datecirca=true}} option
enables \textsf{biblatex's} enhanced \enquote{circa} date
specification, which given a \textsf{date} like \verb+1989~+ will
print [ca.\ 1989]. Cf.\ table~\ref{ad:date:extras}.
-\mylittlespace This \colmarginpar{\texttt{dateuncertain=\\true}}
+\mylittlespace This \mymarginpar{\texttt{dateuncertain=\\true}}
option enables \textsf{biblatex's} enhanced \enquote{uncertain} date
specification, which given a \textsf{date} like \verb+1989?+ will
print [1989?]. A field like \verb+1989%+ is both \enquote{circa}
\emph{and} \enquote{uncertain,} like so: [ca.\ 1989?]. Cf.\
table~\ref{ad:date:extras}.
-\mylittlespace This \colmarginpar{\texttt{datezeros=false}} ensures
+\mylittlespace This \mymarginpar{\texttt{datezeros=false}} ensures
that leading zeros don't appear in date specifications.
\mylittlespace This \mymarginpar{\texttt{ibidtracker=\\constrict}}
@@ -13869,7 +14480,7 @@ command from \textsf{biblatex} to achieve the greatest compliance, as
the package only offers automatic resetting on part, chapter, section,
and subsection boundaries, while \textsf{biblatex-chicago}
automatically resets the tracker at page breaks. (Cf.\
-\textsf{biblatex.pdf} §3.1.2.1.) Whenever there might be any
+\textsf{biblatex.pdf} \S~3.1.2.1.) Whenever there might be any
ambiguity, \textsf{biblatex} should default to printing a more
informative reference.
@@ -13903,6 +14514,8 @@ or whole spreads in twoside mode.
minor problem with punctuation in titles, ensuring that the colon
between a title and a subtitle appears in the correct, matching font.
+\enlargethispage{\baselineskip}
+
\mylittlespace This \mymarginpar{\texttt{related=true}} is the
standard \textsf{biblatex} bibliography option, and it enables the use
of \textsf{related} functionality in the list of references. I have
@@ -13922,7 +14535,7 @@ sorting order in the list of references tailored to comply with the
Chicago author-date specification. Please see the documentation of
\cmd{DeclareSortingTemplate} in section~\ref{sec:authformopts}, below.
-\mylittlespace If \colmarginpar{\texttt{timezones=true}} you provide a
+\mylittlespace If \mymarginpar{\texttt{timezones=true}} you provide a
timezone for a time stamp, usually using one of the \textsf{timezone}
fields, this option ensures it will be printed.
@@ -13943,18 +14556,18 @@ surname, using initials in the first instance, and whole names if
initials aren't enough (15.22). The option is \textsf{Biber}-only,
like the previous one.
-\mylittlespace In \colmarginpar{\texttt{urltime=24h}} entries with
+\mylittlespace In \mymarginpar{\texttt{urltime=24h}} entries with
\textsf{urldate} fields containing time stamps, that stamp will by
default appear in 24-hour format, i.e., \enquote{16:45.} Cf.\
-\mycolor{\texttt{alltimes}}, above, \mycolor{\texttt{urlstamp}} in
+\texttt{alltimes}, above, \texttt{urlstamp} in
section~\ref{sec:authpreset} below, and table~\ref{ad:date:extras}.
\mylittlespace In
-\colmarginpar{\texttt{[standard]\\useeditor=false\\usenamec=false}}
-\mycolor{\textsf{standard}} entries any editors' or compilers' names
-appear after the title, according to 14.259, so these
-entry-type-specific options encode this. You can, of course, override
-these defaults in your preamble, should you deem it necessary.
+\mymarginpar{\texttt{[standard]\\useeditor=false\\usenamec=false}}
+\textsf{standard} entries any editors' or compilers' names appear
+after the title, according to 14.259, so these entry-type-specific
+options encode this. You can, of course, override these defaults in
+your preamble, should you deem it necessary.
\mylittlespace This \mymarginpar{\texttt{usetranslator\\=true}}
enables automatic use of the \textsf{translator} at the head of
@@ -14020,7 +14633,7 @@ two types of \texttt{biblist}.
\textsf{biblatex} offer enhanced functionality in many areas,
including the next three declarations. If the default definitions
don't work well for you, you can redefine all of them in your document
-preamble --- see \textsf{biblatex.pdf} §§4.5.6 and 4.5.10.
+preamble --- see \textsf{biblatex.pdf} \S\S~4.5.6 and 4.5.10.
\mylittlespace This \mymarginpar{\cmd{Declare-}\\\texttt{Labelname}}
option allows you to add name fields for consideration when
@@ -14030,7 +14643,7 @@ appear in citations without any other intervention from the user,
rather than requiring a \textsf{shortauthor} field as previous
releases of \textsf{biblatex-chicago} did. The default definition
currently is
-\texttt{\{shortauthor,author,\\shorteditor,namea,editor,nameb,%
+\texttt{\{shortauthor,author,shorteditor,namea,editor,nameb,%
translator,namec\}}.
\mylittlespace This \mymarginpar{\cmd{Declare-}\\\texttt{Labeldate}}
@@ -14073,18 +14686,17 @@ improve the automatic sorting of entries by the same \textsf{author}.)
\mylittlespace The advantages of this scheme are, specifically, that
any entry headed by one of the supplemental name fields
-(\textsf{name[a-c]}), a \textsf{manual} or a
-\mycolor{\textsf{standard}} entry headed by an \textsf{organization},
-or an \textsf{article} or \textsf{review} entry with an
-\textsf{entrysubtype} and headed by a \textsf{journaltitle} will no
-longer need a \textsf{sortkey} set. Further, the \textsf{biblatex}
-\texttt{use<name>=false} options will remove any name field from the
-sorting order, again reducing the need for user intervention. The
-main disadvantage should only occur very rarely. In
-\textsf{author}-less \textsf{article} and \textsf{review} entries
-without an \textsf{entrysubtype}, the \textsf{title} will appear
-instead of the \textsf{journaltitle}, and since the latter appears
-before the former in the sorting scheme, you'll need a
+(\textsf{name[a-c]}), a \textsf{manual} or a \textsf{standard} entry
+headed by an \textsf{organization}, or an \textsf{article} or
+\textsf{review} entry with an \textsf{entrysubtype} and headed by a
+\textsf{journaltitle} will no longer need a \textsf{sortkey} set.
+Further, the \textsf{biblatex} \texttt{use<name>=false} options will
+remove any name field from the sorting order, again reducing the need
+for user intervention. The main disadvantage should only occur very
+rarely. In \textsf{author}-less \textsf{article} and \textsf{review}
+entries without an \textsf{entrysubtype}, the \textsf{title} will
+appear instead of the \textsf{journaltitle}, and since the latter
+appears before the former in the sorting scheme, you'll need a
\textsf{sortkey} for proper alphabetization.
\subsubsection{{Pre-set \textsf{chicago} Options}}
@@ -14154,7 +14766,7 @@ Please note that, as in standard \textsf{biblatex}, the \textsf{url}
field is always printed in \textsf{online} entries, regardless of the
state of this option.
-\mylittlespace This \colmarginpar{\texttt{urlstamp=true}} option
+\mylittlespace This \mymarginpar{\texttt{urlstamp=true}} option
controls whether any \textsf{urltime} fields, included as part of the
\textsf{urldate}, will be printed in citations and reference list. It
defaults to true, and can be set to false either in the preamble, for
@@ -14180,12 +14792,12 @@ others may find that some automatic pruning helps clear things up, at
least to a first approximation. Some per-type or per-entry work
afterward may then polish up the details. If you find that you need
control over fields that aren't included among these options, I have
-provided the \mycolor{\cmd{suppressbibfield}} command for your
-preamble, as suggested by Jan David Hauck. It is in fact a user
-interface to the source mapping feature of \textsf{biblatex}, and it
-is something of a nuclear option, preventing fields from even
-appearing in the .bbl file generated by \textsf{biber} from your .bib
-database. See the \mycolor{\cmd{suppressbibfield}} command in
+provided the \cmd{suppressbibfield} command for your preamble, as
+suggested by Jan David Hauck. It is in fact a user interface to the
+source mapping feature of \textsf{biblatex}, and it is something of a
+nuclear option, preventing fields from even appearing in the .bbl file
+generated by \textsf{biber} from your .bib database. See the
+\cmd{suppressbibfield} command in
section~\ref{sec:formatting:authdate} and the source mapping docs in
\textsf{biblatex.pdf} \S~4.5.3.
@@ -14201,23 +14813,69 @@ list entries. In the default setting of \cmd{DeclareLabeldate},
default ordering in \textsf{music} and \textsf{video} entries to the
following: \textsf{eventyear, origyear, year, urlyear}.
\textsf{Review} entries presenting on-line comments have similar
-needs, as do \mycolor{\textsf{standard}} entries, so the same
-reordering applies to those entry types, too. If you simply want to
-apply the defaults to these four entry types, you can use
-\texttt{avdate=false} in the options when loading
-\textsf{biblatex-chicago}. If, however, you want to tailor the
-algorithm to your own needs, then you can use \cmd{DeclareLabeldate}
-commands in your preamble. Please be aware, however, that some parts
-of the style hard-code the search syntax, and although they take
-account of the \texttt{avdate} setting, if you use your own
-definitions of \cmd{DeclareLabeldate} the results may, in some corner
-cases, surprise. Please see \textsf{music}, \textsf{review},
-\mycolor{\textsf{standard}}, and \textsf{video} in
+needs, as do \textsf{standard} entries, so the same reordering applies
+to those entry types, too. If you simply want to apply the defaults
+to these four entry types, you can use \texttt{avdate=false} in the
+options when loading \textsf{biblatex-chicago}. If, however, you want
+to tailor the algorithm to your own needs, then you can use
+\cmd{DeclareLabeldate} commands in your preamble. Please be aware,
+however, that some parts of the style hard-code the search syntax, and
+although they take account of the \texttt{avdate} setting, if you use
+your own definitions of \cmd{DeclareLabeldate} the results may, in
+some corner cases, surprise. Please see \textsf{music},
+\textsf{review}, \textsf{standard}, and \textsf{video} in
section~\ref{sec:types:authdate}; \textsf{date}, \textsf{eventdate},
\textsf{origdate}, and \textsf{urldate} in
section~\ref{sec:fields:authdate}; and \cmd{DeclareLabeldate} in
section~\ref{sec:authformopts}.
+\mylittlespace These
+\colmarginpar{\texttt{bibannotesep\\=vpar\\citeannotesep\\=period}}
+options define the relation of the \textsf{annotation} field to the
+main entry, \mycolor{\texttt{bibannotesep}} doing so in the reference
+list and \mycolor{\texttt{citeannotesep}} in long (legal) notes. (The
+\texttt{annotation} option in section~\ref{sec:authuseropts}
+determines where, if anywhere, the field will appear.) Both options
+have the same set of keys, though they have different default settings
+if you don't define them yourself. The possible values are:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad none] = no punctuation at all.
+\item[\qquad space] = \cmd{addspace}
+\item[\qquad comma] = \verb+\addcomma\addspace+
+\item[\qquad period] = \verb+\addperiod\addspace+
+\item[\qquad colon] = \verb+\addcolon\addspace+
+\item[\qquad semicolon] = \verb+\addsemicolon\addspace+
+\item[\qquad par:] This starts a new paragraph on the next line. Page
+ breaking is strongly inhibited before the \textsf{annotation}.
+\item[\qquad vpar:] This starts a new paragraph, and also inserts some
+ vertical space before it. In long notes that vertical space is
+ minimal (1 pt), while in the reference list it creates a blank line.
+ Page breaking is strongly inhibited before the \textsf{annotation}.
+\item[\qquad parbreak:] This is the same as \texttt{par}, but it allows
+ a page break to occur between the main entry and the start of the
+ \textsf{annotation}.
+\item[\qquad vparbreak:] This is the same as \texttt{vpar}, but it also
+ allows a page break between the main entry and the
+ \textsf{annotation}.
+\end{description}
+
+Please note that both of these options are available in the preamble
+both globally and per-type, and also in the \textsf{options} field of
+individual entries. Each defines a command (\cmd{bibannotesep} and
+\cmd{citeannotesep}) which appears in the \textsf{annotation} field's
+formatting directive, so it's possible to redefine these commands in
+your preamble if you have needs that the available values don't
+address. (You can also try sending an email to encourage me to add
+other keys.) Please also keep in mind that
+\mycolor{\texttt{bibannotesep}} interacts with the
+\mycolor{\texttt{entrybreak}} and \mycolor{\textsf{formatbib}} options
+in section~\ref{sec:authuseropts}, below, to determine the general
+layout of the reference list. Depending on the settings of those
+options, changing the \mycolor{\texttt{bibannotesep}} from entry to
+entry may not work out well.
+
\mylittlespace At \mymarginpar{\texttt{booklongxref=\\true}} the
request of Bertold Schweitzer, I have included two options for
controlling whether and where \textsf{biblatex-chicago} will print
@@ -14256,7 +14914,7 @@ behavior of \textsf{inbook}, \textsf{incollection},
recommend the use of shorthands as abbreviations for long authors'
names, particularly institutional names, which means the shorthand
will replace only the name part in citations rather than the whole
-citation (15.37; bsi:abbreviation, iso:electrodoc). Recent editions
+citation (15.37; bsi\hc abbreviation, iso:electrodoc). Recent editions
suggest placing the abbreviation at the head of the entry, followed by
its expansion inside parentheses, an arrangement automatically
provided by \textsf{biblatex-chicago-authordate} when you use the
@@ -14269,7 +14927,7 @@ document preamble. Cf.\ section~\ref{sec:fields:authdate},
s.v. \enquote{\textbf{shorthand}} above, and also
\href{file:cms-dates-intro.pdf}{\textsf{cms-dates-intro.pdf}}.
-\mylittlespace The \colmarginpar{\texttt{compressyears\\=true}}
+\mylittlespace The \mymarginpar{\texttt{compressyears\\=true}}
\emph{Manual} has long recommended (9.64, 15.41), as a space-saving
measure, the compression of year ranges when presenting dates. I
have, finally, implemented this in the current release, and have made
@@ -14285,7 +14943,7 @@ table~\ref{ad:date:extras}.
requested a way to control the punctuation printed before the
\textsf{titleaddon}, \textsf{booktitleaddon}, and
\textsf{maintitleaddon} fields. By default, this is
-\cmd{addcomma\cmd{addspace}} (\textsf{ctitleaddon}) for nearly all
+\cmd{addcomma\cmd{addspace}} (\textsf{cti\-tleaddon}) for nearly all
\textsf{book-} and \textsf{maintitleaddons} in the list of references,
while \cmd{addperiod\cmd{addspace}} (\textsf{ptitleaddon}) is the
default before most \textsf{titleaddons} there. If the punctuation
@@ -14312,16 +14970,15 @@ you use the \textsf{options} field in your other entries with a
relevant option to \texttt{none} in your entry and then include the
punctuation in the \textsf{titleaddon} field itself.
-\mylittlespace Constanza Cordoni \colmarginpar{\texttt{dashed=true}}
+\mylittlespace Constanza Cordoni \mymarginpar{\texttt{dashed=true}}
has requested a way to turn off the 3-em dash for replacing repeated
names in the reference list, and the \emph{Manual} admits that some
publishers prefer this, as the dash can carry with it certain
inconveniences, especially for electronic formats (15.17). Some of
\textsf{biblatex's} standard styles have a \texttt{dashed} option, so
-for compatibility purposes I've provided the same. By default, I have
-set it to print the name dash, but you can set
-\mycolor{\texttt{dashed=false}} in your preamble to repeat names
-instead throughout your document.
+for compatibility purposes I've provided the same. By default I have
+set it to print the name dash, but you can set \texttt{dashed=false}
+globally, per type, or per entry to repeat names as and when required.
\mylittlespace If \mymarginpar{\texttt{hidevolumes=\\true}} both a
\textsf{volume} and a \textsf{volumes} field are present, as may occur
@@ -14386,74 +15043,119 @@ and \textsf{proceedings} entries, please see \texttt{booklongxref},
above, and also the documentation of \textsf{crossref} in
section~\ref{sec:fields:authdate}.
+\mylittlespace This \colmarginpar{\texttt{nameaddonsep\\=space}}
+option sets the punctuation which appears before the
+\textsf{nameaddon} field in all entry types except \textsf{customc}.
+You can set it globally, per type, or per entry, using one of the six
+following keys:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{space}] = \cmd{addspace}. This is the default.
+\item[\qquad \texttt{none}] = no separator at all. It presumes that
+ you will include one in the \textsf{nameaddon} field itself.
+\item[\qquad \texttt{colon}] = \verb+\addcolon\addspace+.
+\item[\qquad \texttt{comma}] = \verb+\addcomma\addspace+.
+\item[\qquad \texttt{period}] = \verb+\addperiod\addspace+.
+\item[\qquad \texttt{semicolon}] = \verb+\addsemicolon\addspace+.
+\end{description}
+
+Cf.\ \mycolor{\texttt{nameaddon}} and
+\mycolor{\texttt{nameaddonformat}} in section~\ref{sec:authuseropts}.
+
\mylittlespace This \mymarginpar{\texttt{nodates=true}} option means
-that for all entry types except \textsf{misc} and
-\mycolor{\textsf{dataset}} \textsf{biblatex-chicago} will
-automatically provide \verb+\bibstring{nodate}+ for any entry that
-doesn't otherwise provide a date for citations and for the heads of
-entries in the list of references. If you set \texttt{nodates=false}
-either in your preamble (for global coverage) or in individual entries
-then the package won't perform this substitution. (The bibstring
-expands to \enquote{\texttt{n.d.}} in English.)
+that for all entry types except \textsf{misc} and \textsf{dataset}
+\textsf{biblatex-chicago} will automatically provide
+\verb+\bibstring{nodate}+ for any entry that doesn't otherwise provide
+a date for citations and for the heads of entries in the list of
+references. If you set \texttt{nodates=false} either in your preamble
+(for global coverage) or in individual entries then the package won't
+perform this substitution. (The bibstring expands to
+\enquote{\texttt{n.d.}} in English.)
\subsubsection{Style Options -- Preamble}
\label{sec:authuseropts}
These are parts of the specification that not everyone will wish to
-enable. All except the sixth and eighth can be used even if you load
-the package in the old way via a call to \textsf{biblatex}, but most
-users can just place the appropriate string(s) in the options to the
-\cmd{usepackage\{biblatex-chicago\}} call in your preamble.
+enable. All except the fifth, eighth, and twelfth can be used even if
+you load the package in the old way via a call to \textsf{biblatex},
+but most users can just place the appropriate string(s) in the options
+to the \cmd{usepackage\{biblatex-chicago\}} call in your preamble.
\mylittlespace \textsf{Biblatex-chicago}
-\colmarginpar{\texttt{alwaysrange}} now implements \textsf{biblatex's}
+\mymarginpar{\texttt{alwaysrange}} now implements \textsf{biblatex's}
enhanced date specifications, one part of which is the presentation of
decades and centuries not as year ranges but as localized strings like
-\enquote{19th c.} or \enquote{1970s.} The
-\mycolor{\texttt{alwaysrange}} option set to \texttt{true}, either in
-your preamble or in individual entries, simply tells the package to
-present the year range instead. This allows you to use the efficient
-enhanced notations in the \textsf{date} field (\verb+{18XX}+ or
-\verb+{197X}+) without the localized strings appearing, should you
-require it. The two options \mycolor{\texttt{centuryrange}} and
-\mycolor{\texttt{decaderange}} limit the same effect to centuries and
-decades, respectively. Please see table~\ref{ad:date:extras}.
-
-\mylittlespace At \mymarginpar{\texttt{annotation}} the request of
-Emil Salim, I have added to this version of \textsf{biblatex-chicago}
-the ability to produce annotated reference lists. If you turn this
-option on then the contents of your \textsf{annotation} (or
-\textsf{annote}) field will be printed after the reference. (You can
-also use external files to store annotations -- please see
-\textsf{biblatex.pdf} §~3.13.8 for details on how to do this.) This
-functionality is currently in a beta state, so before you use it
-please have a look at the documentation for the \textsf{annotation}
-field, in section~\ref{sec:fields:authdate} above.
-
-\mylittlespace In \colmarginpar{\texttt{authortitle}} a few contexts
+\enquote{19th c.} or \enquote{1970s.} The \texttt{alwaysrange} option
+set to \texttt{true}, either in your preamble or in individual
+entries, simply tells the package to present the year range instead.
+This allows you to use the efficient enhanced notations in the
+\textsf{date} field (\verb+{18XX}+ or \verb+{197X}+) without the
+localized strings appearing, should you require it. The two options
+\texttt{centuryrange} and \texttt{decaderange} limit the same effect
+to centuries and decades, respectively. Please see
+table~\ref{ad:date:extras}.
+
+\mylittlespace At \colmarginpar{\texttt{annotation}} the request of
+Emil Salim, I included in \textsf{biblatex-chicago} the ability to
+produce annotated reference lists. More recently, Moritz Wemheuer
+brought to my attention a
+\href{https://tex.stackexchange.com/questions/528374/moving-addendum-field-to-the-end-in-biblatex-chicago/540755#540755}{StackExchange}
+question which suggested that the field might be useful in several
+other contexts as well, so I've modified the \texttt{annotation}
+option to allow the field to appear in the reference list
+(\texttt{=bib} or \texttt{=true}, the default, if no string is given),
+in long (legal) notes (\texttt{=notes}), in both (\texttt{=all}), or
+in neither (\texttt{=false}). You can now set the option in the
+preamble both globally and per-type, and in the \textsf{options} field
+of individual entries. There are two new options
+(\mycolor{\texttt{bibannotesep}} and \mycolor{\texttt{citeannotesep}})
+to allow you to choose the separator between the \textsf{annotation}
+and the rest of the entry, and also two new options
+(\mycolor{\texttt{formatbib}} and \mycolor{\texttt{entrybreak}}) to
+give you fine-grained control over the presentation of the reference
+list as a whole, including an annotated one. Please have a look at
+the documentation for the latter two options just below, for the
+former two options in section~\ref{sec:authpreset}, and for the
+\textsf{annotation} field in section~\ref{sec:fields:authdate}.
+Please also see \textsf{biblatex.pdf} \S~3.13.8 for details on how to
+use external files to store annotations.
+
+\mylittlespace In \mymarginpar{\texttt{authortitle}} a few contexts
--- classical references, some archival material, perhaps scientific
-data\-bases --- the provision of a date for citations may well be
+databases --- the provision of a date for citations may well be
impossible, irrelevant, or both. The \textsf{entrysubtype} value
\texttt{classical} results in author-title citations for the entry
containing it, but it modifies punctuation in those citations in a way
that might be wrong for some sources, and it's also possible that you
may need the \textsf{entrysubtype} field for some other purpose yet
still wish to present author-title citations. You can set
-\mycolor{\texttt{authortitle}} to \texttt{true} either for a specific
-entry type in the preamble or in the \textsf{options} field of
-individual entries to achieve this. You can also use the citation
-commands \mycolor{\cmd{atcite}} and \mycolor{\cmd{atpcite}}, instead,
-if that's more convenient. The \textsf{shorttitle} field provides a
-way to abbreviate long titles in this context. Please note that
-\textsf{biblatex-chicago} by default sets this to \texttt{true} for
-the new \mycolor{\textsf{dataset}} entry type, so you can set it to
-\texttt{false} if you want to present such entries differently.
-
-\mylittlespace This \colmarginpar{\texttt{centuryrange}} option works
-just like \mycolor{\texttt{alwaysrange}}, above, but only affects
-century presentation, not decade. Cf.\ table~\ref{ad:date:extras}.
-
-\mylittlespace The \colmarginpar{\texttt{cmsbreakurl}} \emph{Manual}
+\texttt{authortitle} to \texttt{true} either for a specific entry type
+in the preamble or in the \textsf{options} field of individual entries
+to achieve this. You can also use the citation commands \cmd{atcite}
+and \cmd{atpcite}, instead, if that's more convenient. The
+\textsf{shorttitle} field provides a way to abbreviate long titles in
+this context. Please note that \textsf{biblatex-chicago} by default
+sets this to \texttt{true} for the \textsf{dataset} entry type, so
+you can set it to \texttt{false} if you want to present such entries
+differently.
+
+\mylittlespace Like \colmarginpar{\texttt{casechanger}} \texttt{mcite}
+and \texttt{natbib}, this is a standard \textsf{biblatex} option which
+\textsf{biblatex-chicago} simply passes through to that package. In
+\textsf{biblatex} it defaults to \texttt{auto}, but there were, and
+possibly still are, cases when the old \texttt{latex2e} case-changing
+code can work around some bugs when using, for example, citation
+commands inside fields that have a case-changing element as an
+automatic part of their formatting (\textsf{note},
+\textsf{titleaddon}, \textsf{type}). Cf.\ section~3.1.1 of
+\textsf{biblatex.pdf}.
+
+\mylittlespace This \mymarginpar{\texttt{centuryrange}} option works
+just like \texttt{alwaysrange}, above, but only affects century
+presentation, not decade. Cf.\ table~\ref{ad:date:extras}.
+
+\mylittlespace The \mymarginpar{\texttt{cmsbreakurl}} \emph{Manual}
gives fairly specific instructions about breaking URLs across lines
(14.18), so I have attempted to implement them by tweaking
\textsf{biblatex's} default settings, which are found in
@@ -14462,8 +15164,8 @@ gives fairly specific instructions about breaking URLs across lines
instructions, nor do the changes I have made work well in all
circumstances, being particularly unsightly if you happen to be using
the \textsf{ragged2e} package. For these reasons, I have made my
-changes dependent on a package option, \mycolor{\texttt{cmsbreakurl}},
-which you can set in your preamble. I have placed all of this code in
+changes dependent on a package option, \texttt{cmsbreakurl}, which you
+can set in your preamble. I have placed all of this code in
\textsf{biblatex-chicago.sty}, so if you load the package with a call
to \textsf{biblatex} instead, then URL line breaking will revert to
the \textsf{biblatex} defaults. See
@@ -14473,7 +15175,7 @@ also section~\ref{sec:loading:auth}, below.
\mylittlespace This \mymarginpar{\texttt{cmsdate}} option used
\emph{in the preamble} provides a method for simplifying the creation
-of data\-bases with a great many multi-date entries. Despite warnings
+of databases with a great many multi-date entries. Despite warnings
in previous releases, users have plainly already been setting this
option in their preambles, so I thought I might at least attempt to
make it work as \enquote{correctly} as I can. The switches for it are
@@ -14558,9 +15260,30 @@ for this is in \textsf{biblatex-chicago.sty}, so if you load the
package with a call to \textsf{biblatex} instead then you'll get the
default \textsf{biblatex} compression style.
-\mylittlespace This \colmarginpar{\texttt{decaderange}} option works
-just like \mycolor{\texttt{alwaysrange}}, above, but only affects
-decade presentation, not century. Cf.\ table~\ref{ad:date:extras}.
+\mylittlespace This \colmarginpar{\texttt{datamodel}} is the standard
+\textsf{biblatex} option for loading the named data model file
+(excluding its\ .dbx extension). After a request by Philipp Immel,
+you can now set this option when you load the Chicago styles with
+\verb+\usepackage{biblatex-chicago}+, and it will be passed through
+properly to \textsf{biblatex} itself. Cf.\ \textsf{biblatex.pdf}
+\S~4.5.4.
+
+\mylittlespace This \mymarginpar{\texttt{decaderange}} option works
+just like \texttt{alwaysrange}, above, but only affects decade
+presentation, not century. Cf.\ table~\ref{ad:date:extras}.
+
+\mylittlespace This \colmarginpar{\texttt{entrybreak}} option only
+makes sense when used in conjunction with the \texttt{annotenp} switch
+to the \mycolor{\texttt{formatbib}} option (below). The latter allows
+\LaTeX\ to break a page inside an \textsf{annotation} field printed
+without starting a new paragraph, and it does so by allowing such a
+break in the entry only after a set number of lines, by default set to
+3. The idea is that most reference list entries will fit within 3
+lines, so the break would generally be somewhere inside the
+\textsf{annotation}. If your document needs a value different from 3,
+provide the integer using the \mycolor{\texttt{entrybreak}} option in
+your preamble. Some experimentation may be needed to find the optimum
+number for a given document.
\mylittlespace Although \mymarginpar{\texttt{footmarkoff}} the
\emph{Manual} (14.19) recommends specific formatting for footnote (and
@@ -14577,6 +15300,68 @@ once again footnote marks will revert to the \LaTeX\ default, but of
course you also lose a fair amount of other formatting, as well. See
section~\ref{sec:loading:auth}, below.
+\mylittlespace The \colmarginpar{\texttt{formatbib}} \emph{Manual} in
+fact says very little about formatting issues in reference lists,
+e.g., whether to break entries across pages and whether to allow
+widows and orphans (single lines at the start or end of a page). A
+quick and non-scientific survey of publications issued by the
+University of Chicago Press suggests that actual practices are
+extremely varied, so I've tried to provide a number of choices for
+users of \textsf{biblatex-chicago}, most of them available as keys to
+the new \mycolor{\texttt{formatbib}} preamble option, but a few of
+them also involving settings of the \mycolor{\texttt{bibannotesep}}
+and the \mycolor{\texttt{entrybreak}} options. The keys of
+\mycolor{\texttt{formatbib}} are as follows:
+
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad max:] This is the \textsf{biblatex} default, so if you
+ don't set \mycolor{\texttt{formatbib}} at all it's what you get. It
+ provides maximal intervention, disallowing entries broken across
+ pages, including even when an entry includes a lengthy annotation.
+\item[\qquad min:] This allows page breaks just about anywhere,
+ including inside entries, and it also allows widows and orphans, so
+ it will usually provide the most efficient use of available space on
+ the pages of your bibliography.
+\item[\qquad minwo:] This is like \texttt{min}, but discourages
+ widows and orphans.
+\item[\qquad annote:] This option treats annotations separately from
+ reference list entries, allowing them to be broken across pages
+ while the entry itself won't be. It is intended for use with, and
+ will only properly work with, \mycolor{\texttt{bibannotesep}} set to
+ one of the modes that start a new paragraph for the annotation, to
+ wit, \texttt{par}, \texttt{vpar} (the default), \texttt{parbreak},
+ or \texttt{vparbreak}. See below for the meaning of the
+ \enquote{\texttt{break}} options here.
+\item[\qquad annotenp:] This option attempts to treat annotations
+ separately from reference list entries in those settings of
+ \mycolor{\texttt{bibannotesep}} which don't involve starting a new
+ paragraph. It works by setting the number of lines in an entry
+ after which page breaking is allowed. By default entries will only
+ break after 3 lines, the idea being that most reference list entries
+ fit into three lines, so at that point you're likely to be inside
+ the annotation, but you can set the \mycolor{\texttt{entrybreak}}
+ option to any integer that works for your reference apparatus.
+\end{description}
+
+Please note that there is one possible break point that isn't directly
+addressed by these options, that is, the one between the main entry
+and the annotation when that annotation starts a new paragraph. If
+you set \mycolor{\texttt{bibannotesep}} to \texttt{par} or
+\texttt{vpar}, then \LaTeX\ will try very hard not to break between
+entry and annotation, ensuring that the annotation at least starts on
+the same page as its entry. If you use \texttt{parbreak} or
+\texttt{vparbreak}, \LaTeX\ is positively encouraged to break a page
+there, as is usual between paragraphs.
+
+\mylittlespace You can of course ignore the
+\mycolor{\texttt{formatbib}} option and provide your own settings.
+\textsf{Biblatex} uses the \cmd{bibsetup} command which you can renew
+in your preamble. You can find a nice commentary on the default
+values set by the package in the file \textsf{biblatex.def}, which
+you'll find in the main \textsf{biblatex} directory of your \TeX\
+distribution.
+
\mylittlespace This \mymarginpar{\texttt{genallnames}} option affects
the choice of which names to present in the genitive case when using
the \cmd{gentextcites} command. Please see the documentation of that
@@ -14629,28 +15414,60 @@ correctly puts the \enquote{Jr.}\ part at the end, after the given
names, and in this position it always takes a comma, the presence of
which is unaffected by this option.
-\mylittlespace This \mymarginpar{\texttt{natbib}} may look like the
-standard \textsf{biblatex} option, but to keep the coding of
-\textsf{biblatex-chicago.sty} simpler for the moment I have
-reimplemented it there, from whence it is merely passed on to
-\textsf{biblatex}. If you load the Chicago style with
-\cmd{usepackage\{biblatex-chicago\}}, then the option should simply
-read \texttt{natbib}, rather than \texttt{natbib=true}. The shorter
-form also works if you use \cmd{usepackage}
-\texttt{[style=chicago-authordate]\{bibla\-tex\}}, so I hope this
-requirement isn't too onerous.
-
-\mylittlespace When \colmarginpar{\texttt{nodatebrackets}\\
+\mylittlespace This \colmarginpar{\texttt{nameaddon}} option
+determines where and when the \textsf{nameaddon }field will be
+printed. There are three possible values, available globally, per
+type, and per entry:
+\begin{description}
+\setlength{\parskip}{-4pt}
+\item[\qquad \texttt{all}:] This is the default; if an entry has a
+ \textsf{nameaddon}, it will appear in the reference list.
+\item[\qquad \texttt{none}:] The field will not appear in the
+ reference list.
+\item[\qquad \texttt{first}:] Philipp Immel requested this as a way to
+ provide an \textsf{author's} dates in the \textsf{nameaddon} field
+ and only have them printed the first time that author appears in the
+ reference list. The code tests for identical \textsf{nameaddon}
+ fields in works by identical \textsf{authors}, so other sorts of
+ \textsf{nameaddon} will be printed as usual.
+\end{description}
+
+Cf.\ \mycolor{\texttt{nameaddonformat}} just below, and
+\mycolor{\texttt{nameaddonsep}} in section~\ref{sec:authpreset}.
+
+\mylittlespace This \colmarginpar{\texttt{nameaddon-\\format}} option,
+available globally, per type, and per entry, allows you to change the
+format of the \textsf{nameaddon} field on the fly, so its value should
+be a field format that \textsf{biblatex} understands. This includes
+standard formats like \texttt{parens,\,brackets} or \texttt{emph}, and
+also custom formats that you provide in your preamble using
+\cmd{DeclareFieldFormat}, in case the standard ones aren't adequate.
+If you don't define this option, then the usual defaults apply, that
+is, no formatting in \textsf{online, review,} and
+\textsf{suppperiodical} entries, as well as in \textsf{misc} entries
+with an \textsf{entrysubtype}, while square brackets surround the
+field in all other entry types with the exception of \textsf{customc},
+which has its own rules and ignores this option. Cf.\
+\mycolor{\texttt{nameaddonsep}} in section~\ref{sec:authpreset}.
+
+\mylittlespace These \mymarginpar{\texttt{natbib}\\\texttt{mcite}} are
+the standard \textsf{biblatex} options, which formerly required
+slightly special handling when you loaded the Chicago style with
+\verb+\usepackage{biblatex-chicago}+. Both the forms \texttt{natbib}
+and \texttt{natbib=true} (\texttt{mcite} \&\ \texttt{mcite=true})
+should now work.
+
+\mylittlespace When \mymarginpar{\texttt{nodatebrackets}\\
\texttt{noyearbrackets}} you use \textsf{biblatex's} enhanced date
-specifications to present an uncertain date (\verb+{1956?}+), a
-\enquote{circa} date (\verb+{1956~}+), or one that is both at the same
-time (\verb+{1956%}+), the date that by default will appear in your
+specifications to present a \enquote{circa} date (\verb+{1956~}+), an
+uncertain date (\verb+{1956?}+), or one that is both at the same time
+(\verb+{1956%}+), the date that by default will appear in your
documents will have square brackets around it. This accords with the
\emph{Manual's} instructions concerning such dates (15.44), but may in
some circumstances prove syntactically awkward, or may perhaps be out
of step with a specific house style. These two options, which may
-appear in the preamble either for the whole document or for specific entry
-types, or in individual entries, allow you to control when these
+appear in the preamble either for the whole document or for specific
+entry types, or in individual entries, allow you to control when these
brackets will appear. The first controls, mainly, dates that appear
in the body of an entry in the reference list, while the second
controls dates in citations and at the head of entries in the
@@ -14667,7 +15484,7 @@ none of these shortened citations will appear automatically. For more
fine-grained control of individual citations you'll probably want to
use the \cmd{citereset} command, allied possibly with the
\textsf{biblatex}\ \texttt{citereset} option, on which see
-\textsf{biblatex.pdf} §3.1.2.1.
+\textsf{biblatex.pdf} \S~3.1.2.1.
\mylittlespace This \mymarginpar{\texttt{ordinalgb}} option, which
only affects users of the \texttt{british} language, restores the
@@ -14688,7 +15505,7 @@ In previous releases, you either needed to include the comment after a
page number, e.g., \cmd{autocite[16; some comment]\{citekey\}}, or
provide a separate .bib entry using the \textsf{customc} entry type,
e.g., \cmd{autocites\{chicago:manual\}\{chicago:comment\}}. With this
-option enabled, \cmd{autocite[;\,some\,comment]\{citekey\}} will do.
+option enabled, \cmd{autocite[; some comment]\{citekey\}} will do.
More generally, the \texttt{postnotepunct} option allows you to start
the \textsf{postnote} field with a punctuation mark (.\,,\,;\,:) and
have it appear as the \cmd{postnotedelim} in place of whatever the
@@ -14699,17 +15516,17 @@ which I haven't extensively tested, so I'm labeling this option
\textsf{postnote} field of citation commands, not the \textsf{pages}
field in your .bib file.
-\enlargethispage{\baselineskip}
+% \enlargethispage{\baselineskip}
-\mylittlespace This \colmarginpar{\texttt{seriesabbrev}} option
+\mylittlespace This \mymarginpar{\texttt{seriesabbrev}} option
controls the printing, in the reference list, of the
-\mycolor{\textsf{shortseries}} field in place of the \textsf{series}
-field in book-like entries. It is \texttt{false} by default, so as
-shipped \textsf{biblatex-chicago-authordate} will silently ignore such
-fields, but you can set it to \texttt{true} either in the preamble for
-the whole document or for specific entry types, or in individual
-entries, and it will appear in the reference list. For more details,
-see the documentation of \mycolor{\textsf{shortseries}} in
+\textsf{shortseries} field in place of the \textsf{series} field in
+book-like entries. It is \texttt{false} by default, so as shipped
+\textsf{biblatex-chicago-authordate} will silently ignore such fields,
+but you can set it to \texttt{true} either in the preamble for the
+whole document or for specific entry types, or in individual entries,
+and it will appear in the reference list. For more details, see the
+documentation of \textsf{shortseries} in
section~\ref{sec:fields:authdate}, above.
\mylittlespace Kenneth Pearce \mymarginpar{\texttt{shorthandfull}} has
@@ -14732,7 +15549,7 @@ rule intervenes to emphasize this continuation. I haven't tested this
code very thoroughly, and it's possible that frequent use of floats
might interfere with it. Let me know if it causes problems.
-\mylittlespace Stefan \mymarginpar{\texttt{xrefurl}} Björk pointed
+\mylittlespace Stefan \mymarginpar{\texttt{xrefurl}} Bj\"{o}rk pointed
out that when, using the \texttt{longcrossref} or
\texttt{booklongxref} options, you turn on the automatic abbreviation
of multiple entries in the same (e.g.) \textsf{collection} or
@@ -14890,8 +15707,8 @@ code that calls all of the package's localization files, which means
that you'll lose all the Chicago-specific bibstrings I've defined
unless you provide, in your preamble, a \cmd{DeclareLanguageMapping}
command, or several, adapted for your setup, on which see
-section~\ref{sec:international} below and also §§~4.9.1 and 4.11.8 in
-\textsf{biblatex.pdf}.
+section~\ref{sec:international} below and also \S\S~4.9.1 and 4.11.8
+in \textsf{biblatex.pdf}.
\mylittlespace What you \emph{will not} lose is the ability to call
the package options \texttt{annotation, strict, cmslos=false} and
@@ -14978,8 +15795,8 @@ helpfully provide as much information as is available, including
fields that users may well wish not to have printed (ISBN, URL, DOI,
\textsf{pagetotal}, inter alia). The standard \textsf{biblatex}
styles contain a series of options, detailed in \textsf{biblatex.pdf}
-§3.1.2.2, for controlling the printing of some of these fields, and I
-have implemented others that are relevant to
+\S~3.1.2.2, for controlling the printing of some of these fields, and
+I have implemented others that are relevant to
\textsf{biblatex-chicago}, along with a couple that Scot requested and
that may be of more general usefulness. There is also a general
option to excise with one command all the fields under consideration
@@ -15072,9 +15889,9 @@ contain the following fields:
\item[date] The date of the decision.
\item[location] The abbreviated name of the court, if it isn't clear
from the reporter cited. It will be associated with the
- \textsf{date} in American cases, but not in Canadian or UK case (see
- below). Being a list field, it can contain more than one item, in
- case you need a separate set of parentheses to identify a
+ \textsf{date} in American cases, but not in Canadian or UK cases
+ (see below). Being a list field, it can contain more than one item,
+ in case you need a separate set of parentheses to identify a
jurisdiction as well as a court name in Canadian or UK cases (cf.\
uk:case:square).
\end{description}}
@@ -15087,16 +15904,16 @@ supplementation by the following:
\begin{description}
\setlength{\parskip}{-2pt}
\item[entrysubtype\{square\} \textrm{or} \{round\}] The \emph{Manual}
- includes examples for citing cases in Canada and in the United
- Kingdom, and the \texttt{square} \textsf{entrysubtype} identifies
- the reporter either as Canadian or as a UK reporter for which the
- year is essential to locating the case, that is, when \enquote{there
- is either no volume number or the volumes for each year are
- numbered anew, not cumulatively} (14.298). The \texttt{round}
- subtype, by contrast, identifies a UK reporter where the volumes are
- numbered cumulatively, making the year inessential. (The names
- refer to the shapes of the brackets placed around the year in each
- case. Cf.\ canada:case, uk:case:round, and uk:case:square.)
+ includes examples for citing cases in the United Kingdom and in
+ Canada, and the \texttt{square} \textsf{entrysubtype} identifies the
+ reporter either as Canadian or as a UK reporter for which the year
+ is essential to locating the case, that is, when \enquote{there is
+ either no volume number or the volumes for each year are numbered
+ anew, not cumulatively} (14.298). The \texttt{round} subtype, by
+ contrast, identifies a UK reporter where the volumes are numbered
+ cumulatively, making the year inessential. (The names refer to the
+ shapes of the brackets placed around the year in each case. Cf.\
+ canada:case, uk:case:round, and uk:case:square.)
\item[origlocation \textrm{or} origpublisher] If you need to cite more
than one reporter for a given case, then there are two
possibilities. Either the second (and subsequent) reporter(s)
@@ -15145,8 +15962,8 @@ public and legal material.
the same \textsf{title} but differ in other respects. (Cf.\
congress:publiclaw, congress:bill, and congress:report.)
\item[number] Gives an identifying number to a \textsf{title} or a
- \textsf{titleaddon}, prefixed with \cmd{bib\-string\{number\}}. It
- too can appear in short notes.
+ \textsf{titleaddon}, with \cmd{bibstring\{number\}} prefixed to it.
+ It too can appear in short notes.
\item[note] This gives a section or other specifying information
related to a \textsf{titleaddon} and \textsf{number}. (Cf.\
congress:publiclaw.)
@@ -15169,7 +15986,7 @@ public and legal material.
contain session information pertaining to a legislative publication.
Elsewhere it will often contain just be a plain number, not unlike
in \textsf{jurisdiction} entries. (Cf.\ congress:debate:globe,
- state:statute:okla, and uk:hansard.)
+ state\hc statute:okla, and uk:hansard.)
\item[issue] This field can provide an identifying number in some
circumstances, particularly when you don't want it prefixed by any
bibstring --- cf.\ uk:command.
@@ -15190,10 +16007,10 @@ public and legal material.
associated with the \textsf{date} in long notes, but will appear
elsewhere in short notes. (Cf.\ state:statute:okla.)
\item[usera] This specifies a particular edition, possibly from a
- commercial electronic data\-base, of a legislative publication. It
+ commercial electronic database, of a legislative publication. It
will be associated with the \textsf{date} in long notes but won't
appear in short ones. (Cf.\ congress:debate:new and
- state:statute:ky.)
+ state:statute:ky.)\enlargethispage{\baselineskip}
\item[addendum] You can use this field to specify the speaker at
hearings or in debates, the Canadian or British jurisdiction of some
laws if not otherwise clear from the citation, or possibly simply
@@ -15209,13 +16026,13 @@ public and legal material.
\setlength{\parskip}{-2pt}
\item[canada] Identifies Canadian statutes (canada:statute).
\item[constitution] For constitutions, be they federal, state, or
- local (constitution:ar\-kansas and constitution:federal).
+ local (constitution\hc arkansas and constitution:federal).
\textsf{Biber} will automatically detect if the \textsf{title}
contains the string \texttt{Const} and provide the
\textsf{entrysubtype} for you, but in other cases you'll have to
provide it yourself.
\item[hansard] Identifies UK parliamentary debates as published in
- \emph{Hansard}. (Cf.\ uk:\break hansard.)
+ \emph{Hansard}. (Cf.\ uk\hc hansard.)
\item[hearing] For congressional hearings (congress:hearing).
\item[uk] Identifies UK statutes and command papers. (Cf.\
uk:command, uk:statute, and uk:statute:regnal.)
@@ -15276,13 +16093,12 @@ have to remember to use new citation commands that I've provided:
\cmd{fullcite}, \cmd{footfullcite}, and \cmd{parenfullcite}. The
first prints the reference, the second does so in a footnote, and the
third does so inside parentheses. For both styles,
-\colmarginpar{\cmd{runcite}} there is a new command that you should
-use if you are citing a \textsf{jurisdiction} entry in the running
-flow of text rather than as a stand-alone citation, whether that text
-is in a note or in the main body (14.276). This requires a different
-presentation of the \textsf{title} field, and using
-\mycolor{\cmd{runcite}} alerts \textsf{biblatex-chicago} to this
-circumstance.
+\mymarginpar{\cmd{runcite}} there is a new command that you should use
+if you are citing a \textsf{jurisdiction} entry in the running flow of
+text rather than as a stand-alone citation, whether that text is in a
+note or in the main body (14.276). This requires a different
+presentation of the \textsf{title} field, and using \cmd{runcite}
+alerts \textsf{biblatex-chicago} to this circumstance.
\subsection{Options}
\label{sec:legal:options}
@@ -15291,17 +16107,18 @@ Several new options allow you to control the presentation of legal
notes in your document. The default settings are indicated in the
margins.
-\mylittlespace This \mymarginpar{legalnotes=true} option prevents the
-printing of legal citations in a bibliography or reference list, as
-the \emph{Bluebook} recommends. You can change this to \texttt{false}
-in the preamble of your document, but you should be aware that the
-reference printed in the bibliography will be a clone of the long-note
-form, as the \emph{Bluebook} doesn't provide an alternative version.
-
-\mylittlespace This \mymarginpar{noneshort=false} option controls the
-availability of the short form of the note, intended for use in
-subsequent citations of entries already presented in full notes. By
-default, \textsf{biblatex-chicago} attempts to provide
+\mylittlespace This \mymarginpar{\texttt{legalnotes=true}} option
+prevents the printing of legal citations in a bibliography or
+reference list, as the \emph{Bluebook} recommends. You can change
+this to \texttt{false} in the preamble of your document, but you
+should be aware that the reference printed in the bibliography will be
+a clone of the long-note form, as the \emph{Bluebook} doesn't provide
+an alternative version.
+
+\mylittlespace This \mymarginpar{\texttt{noneshort=\\false}} option
+controls the availability of the short form of the note, intended for
+use in subsequent citations of entries already presented in full
+notes. By default, \textsf{biblatex-chicago} attempts to provide
\emph{Bluebook}-authorized short versions of citations in this
situation, and some of the many \textsf{entrysubtypes} are at least
partially designed to cope with the complexities of the specification.
@@ -15322,15 +16139,15 @@ repeated citations, and also that the option may give surprising
results in the presence of \textsf{shorthand} fields and/or the
\texttt{shorthandfirst} and \texttt{short} options.
-\mylittlespace I \mymarginpar{short=false} have ported this option,
-already present in the notes \&\ bibliography style, to the
+\mylittlespace I \mymarginpar{\texttt{short=false}} have ported this
+option, already present in the notes \&\ bibliography style, to the
author-date styles to allow users to present short notes from the very
first citation. I'm not certain what the use case might be for this,
as it's intended for saving space in documents where short notes can
point to references in a full bibliography. Still, if for any reason
you need this you can set the option to \texttt{true} in the preamble.
-\mylittlespace This \mymarginpar{supranotes=\\true} is a
+\mylittlespace This \mymarginpar{\texttt{supranotes=\\true}} is a
\emph{Bluebook}-specific option, and it produces, for some entry types
and subtypes, a back reference to the first, long note at the end of
subsequent, short citations. It takes the form \enquote{\emph{supra}
@@ -15350,14 +16167,15 @@ in other \enquote{American} \textsf{biblatex} styles (e.g.,
for producing a Chicago-like style in other languages. I have
supplied three lbx files, \textsf{cms-german.lbx}, its clone
\textsf{cms-ngerman.lbx}, and \textsf{cms-french.lbx}, in at least
-partial fulfillment of this request. For this release Wouter Lancee
-has provided \textsf{cms-dutch.lbx}, thereby adding to the generous
-contributions of Gustavo Barros (\textsf{cms-brazilian.lbx}), Stefan
-Björk (\textsf{cms-swedish.lbx}), Antti-Juhani Kaijahano
+partial fulfillment of this request. For this release Patrick
+Danilevici has provided \textsf{cms-romanian.lbx}, thereby adding to
+the generous contributions of Wouter Lancee (\textsf{cms-dutch.lbx}),
+Gustavo Barros (\textsf{cms-brazilian.lbx}), Stefan Bj\"{o}rk
+(\textsf{cms-swedish.lbx}), Antti-Juhani Kaijahano
(\textsf{cms-finnish.lbx}), Baldur Kristinsson
-(\textsf{cms-icelandic.lbx}), and Håkon Malmedal
-(\textsf{cms-norsk.lbx}, \textsf{cms-norwegian.lbx}, and
-\textsf{cms-ny\-norsk.lbx}). I include \textsf{cms-british.lbx} in
+(\textsf{cms-icelandic.lbx}), and H{\aa}kon Malmedal
+(\textsf{cms-norsk.lbx}, \textsf{cms-nynorsk.lbx}, and
+\textsf{cms-norwegian.lbx}). I include \textsf{cms-british.lbx} in
order to simplify and to improve the package's handling of
non-American typographical conventions in English. This means that
all --- or at least most --- of the Chicago-specific bibstrings are
@@ -15371,7 +16189,7 @@ please contact me.)
\mylittlespace Using \mymarginpar{\textbf{babel}} these facilities is
fairly simple. By default, and this functionality remains the same as
it was in the previous release of \textsf{biblatex-chicago}, calls to
-\cmd{DeclareLanguage\-Mapping} in \textsf{biblatex-chicago.sty} will
+\cmd{DeclareLanguageMapping} in \textsf{biblatex-chicago.sty} will
automatically load the American strings, and also \textsf{biblatex's}
American-style punctuation tracking, when you:
\begin{enumerate}
@@ -15383,7 +16201,7 @@ American-style punctuation tracking, when you:
\item Do not load \textsf{babel} at all.
\end{enumerate}
(This last is a change from the \textsf{biblatex} defaults --- cp.\
-§~3.12.2 in \textsf{biblatex.pdf} --- but it seems to me reasonable,
+\S~3.12.2 in \textsf{biblatex.pdf} --- but it seems to me reasonable,
in an American citation style, to expect this arrangement to work well
for the majority of users.)
@@ -15396,14 +16214,15 @@ complicated rules outlined in previous releases of
the \texttt{british} option.
\mylittlespace If you want to use Brazilian Portuguese, Dutch,
-Finnish, French, German, Icelandic, Norwegian, or Swedish strings in
-the reference apparatus, then you can load \textsf{babel} with
-\texttt{brazilian}, \texttt{dutch}, \texttt{finnish}, \texttt{french},
-\texttt{german}, \texttt{icelandic}, \texttt{ngerman}, \texttt{norsk},
-\texttt{nynorsk}, or \texttt{swedish} as the main document language.
-You no longer need any calls to \cmd{DeclareLanguageMapping} in your
-document preamble, since \textsf{biblatex-chicago.sty} automatically
-provides these if you load the package in the standard way.
+Finnish, French, German, Icelandic, Norwegian, Romanian, or Swedish
+strings in the reference apparatus, then you can load \textsf{babel}
+with \texttt{brazilian}, \texttt{dutch}, \texttt{finnish},
+\texttt{french}, \texttt{german}, \texttt{icelandic},
+\texttt{ngerman}, \texttt{norsk}, \texttt{nynorsk}, \texttt{romanian},
+or \texttt{swedish} as the main document language. You no longer need
+any calls to \cmd{DeclareLanguageMapping} in your document preamble,
+since \textsf{biblatex-chicago.sty} automatically provides these if
+you load the package in the standard way.
\mylittlespace You can also define which bibstrings to use on an
entry-by-entry basis by using the \textsf{hyphenation} field in your
@@ -15451,9 +16270,10 @@ provided may well break with established bibliographical traditions in
those languages, but my main concern when choosing them was to remain
as close as possible to the quirks of the Chicago specification. I
have entirely relied on the judgment of the creators of the Brazilian,
-Dutch, Finnish, Icelandic, Norwegian, and Swedish localizations in
-those instances. If you have strong objections to any of the strings,
-or indeed to any of my formatting decisions, please let me know.
+Dutch, Finnish, Icelandic, Norwegian, Romanian, and Swedish
+localizations in those instances. If you have strong objections to
+any of the strings, or indeed to any of my formatting decisions,
+please let me know.
\section{One\,.bib Database, Two Chicago Styles}
\label{sec:twostyles}
@@ -15553,11 +16373,11 @@ of the things you may need to address:
For \mymarginpar{\textbf{endnotes}} users of the \textsf{endnotes}
package --- or of \textsf{pagenote} --- \textsf{biblatex} offers
extensive compatibility options. Please read the documentation of the
-\texttt{notetype} option in \textsf{biblatex.pdf} §~3.1.2.1. If you
-are using the \mycolor{\texttt{noteref}} option with the notes \&\
-bibliography style and \textsf{endnotes}, please read the
-documentation in section~\ref{sec:endnoterefs} for your options, which
-include the \mycolor{\textsf{cmsendnotes.sty}} package.
+\texttt{notetype} option in \textsf{biblatex.pdf} \S~3.1.2.1. If you
+are using the \texttt{noteref} option with the notes \&\ bibliography
+style and \textsf{endnotes}, please read the documentation in
+section~\ref{sec:endnoterefs} for your options, which include the
+\textsf{cmsendnotes.sty} package.
\mylittlespace Another \mymarginpar{\textbf{memoir}} problem I have
found occurs because the \textsf{memoir} class provides its own
@@ -15572,8 +16392,8 @@ I've just mentioned also causes problems for the \textsf{ragged2e}
package, but in this case a simple workaround is to load
\textsf{biblatex} \emph{after} you've loaded \textsf{ragged2e} in your
document preamble. The URL line-breaking code activated by
-\mycolor{\texttt{cmsbreakurl}} doesn't play well with
-\textsf{ragged2e}, and so far I've not found a workaround.
+\texttt{cmsbreakurl} doesn't play well with \textsf{ragged2e}, and so
+far I've not found a workaround.
\section{TODO \&\ Known Bugs}
\label{sec:bugs}
@@ -15601,10 +16421,17 @@ please let me know.
\mylittlespace Kenneth L. Pearce has reported a bug that appears when
using multiple citation commands inside the \textsf{annotation} field
-of annotated bibliographies. If you run into this problem, he
-suggests placing all the citations together in parentheses at the end
-of the annotation, though on my machine this doesn't always work too
-well, either.
+of annotated bibliographies. I have tried to remedy this with the new
+\mycolor{\cmd{citeincite}} and \mycolor{\cmd{fullciteincite}}
+commands, which print short and long citations, respectively. The
+first is intended for use inside a small selection of fields, while
+the long version should only be used in the \textsf{annotation} field.
+See sections~\ref{sec:citecommands} and \ref{sec:cite:authordate},
+above, for details. If you still encounter problems with these
+commands then it may be worth setting the \textsf{biblatex} option
+\texttt{casechanger=latex2e} in the preamble to see if that helps,
+though in my testing the two different case-changing backends are now
+equivalent in this regard.
\mylittlespace Roger Hart, Pierric Sans, and a number of other users
have reported a bug in the formatting of title fields. This, as far
@@ -15615,6 +16442,11 @@ title, particularly Unicode ones. If you are using
set of curly braces \{\}\ at the start of the field, but I shall look
into this further.
+\mylittlespace Patrick Danilevici's new Romanian localization
+(\mycolor{\textsf{cms-romanian.lbx}}) required some fairly extensive
+changes to the basic package code, so it's possible that I could
+improve the package's handling of other languages in a similar way.
+
\mylittlespace This release fixes the formatting errors of which I am
aware. There remain the larger issues I've discussed throughout this
documentation, which mainly represent my inability to make all of
@@ -15628,10 +16460,137 @@ do my best to fix them.
\section{Revision History}
\label{sec:history}
-\textbf{2.0: Released \today}
+\textbf{2.1: Released \today}
+
+\mylittlespace This release contains several new features, some
+modifications for compatibility with the latest \textsf{biblatex}, and
+many bug fixes. All styles require the latest \textsf{biblatex}
+(3.16) and \textsf{biber} (2.16).
+
+\begin{itemize}
+\item Patrick Danilevici has very generously provided a Romanian
+ localization for \textsf{bibla\-tex-chicago}
+ (\mycolor{\textsf{cms-romanian.lbx}}) to go with the
+ \textsf{romanian.lbx} he wrote for \textsf{biblatex} itself. The
+ only hitch is that the latter file won't be in the standard
+ \textsf{biblatex} package until the next release, so you'll have to
+ grab it from
+ \href{https://github.com/plk/biblatex/tree/dev/tex/latex/biblatex/lbx}{GitHub}
+ until then.
+\item Moritz Wemheuer recommended that I include the standard
+ \textsf{biblatex} macro \texttt{begentry} at the start of all
+ drivers in both Chicago styles, with an empty definition by
+ default. This allows users to redefine it in their preambles and
+ thereby inject their code into the driver before anything is printed.
+\item Moritz also drew my attention to a question on
+ \href{https://tex.stackexchange.com/questions/528374/moving-addendum-field-to-the-end-in-biblatex-chicago/540755#540755}{StackExchange}
+ which suggested that I should expand the applicability of the
+ \textsf{annotation} field, so I've modified the \texttt{annotation}
+ option in all styles to allow the field to appear both in
+ bibliography (reference list) and in long notes, and also added two
+ new options in all styles, \mycolor{\texttt{bibannotesep}} and
+ \mycolor{\texttt{citeannotesep}}, which allow you to define how the
+ \textsf{annotation} field will relate to the main entry. The
+ options have different defaults, and although they have the same
+ pre-defined keys those keys may have slightly different meanings
+ depending on whether the \textsf{annotation} is to appear in notes
+ or bibliography. Please see the docs of field and options in
+ sections~\ref{sec:annote}, \ref{sec:chicpreset}, \ref{sec:useropts},
+ \ref{sec:fields:authdate}, \ref{sec:authpreset}, and
+ \ref{sec:authuseropts}.
+\item On a related subject, I have included two new options in all
+ styles --- \mycolor{\texttt{formatbib}} and
+ \mycolor{\texttt{entrybreak}} --- which provide fine-grained control
+ of page breaking in bibliographies and reference lists. Some of the
+ values of these options are designed to be used with specific values
+ of the \mycolor{\texttt{bibannotesep}} option, so please see the
+ documentation in sections~\ref{sec:useropts} and
+ \ref{sec:authuseropts}.
+\item In the notes \&\ bibliography style Fr.\ Norbert Keliher
+ requested a way to turn off the printing, in the first citation of a
+ work, of the introduction --- (hereafter cited as \ldots)\ --- of a
+ \textsf{shorthand} that will appear in subsequent citations. The
+ \mycolor{\texttt{shorthandintro}} option is now available globally,
+ per type, and per entry to allow you to control the (non)appearance
+ of this clarifying notification. By default, the first citation of
+ a work will continue to present the \textsf{shorthand} as it always
+ has. Please see section~\ref{sec:useropts} for the details.
+\item Philipp Immel requested a feature involving the
+ \textsf{nameaddon} field, and pointed to a discussion on
+ StackExchange which suggested that others were also unsatisfied with
+ that field's functionality, so in this release I've provided three
+ new package options to allow users to mould it to their needs. The
+ options are called \mycolor{\texttt{nameaddon}},
+ \mycolor{\texttt{nameaddonformat}}, and
+ \mycolor{\texttt{nameaddonsep}}, and you can find all the details in
+ the \textsf{nameaddon} docs in sections~\ref{sec:entryfields} and
+ \ref{sec:fields:authdate}, above. Cf.\ also the discussions of the
+ options in sections~\ref{sec:chicpreset}, \ref{sec:useropts},
+ \ref{sec:authpreset}, and \ref{sec:authuseropts}. Allow me to
+ emphasize that the package defaults remain exactly the same as
+ before, so that if you don't set any of the new options no changes
+ to your documents or\ .bib databases are necessary.
+\item Philipp Immel also requested a way to use the standard
+ \textsf{biblatex} option \texttt{datamodel} even when loading the
+ Chicago styles with
+ \verb+\usepackage{biblatex-chicago}+. Implementing this allowed me
+ to regularize how the standard \texttt{mcite} and \texttt{natbib}
+ options were passed through to \textsf{biblatex}, and also to
+ support the new \textsf{biblatex} \mycolor{\texttt{casechanger}}
+ option, which can help solve a bug reported by Peter Mukunda
+ Pasedach. See sections~\ref{sec:useropts} and
+ \ref{sec:authuseropts}, above.
+\item The new \textsf{relatedtype} \mycolor{\texttt{short}} is
+ available in all styles to allow the presentation of short
+ references rather than full ones when using the \textsf{related}
+ mechanism. See sections~\ref{sec:related} and \ref{sec:authrelated}.
+\item In a similar vein, I have provided new
+ \mycolor{\cmd{citeincite}} and \mycolor{\cmd{fullciteincite}}
+ commands to allow you, in some contexts, to cite a related work
+ inside the fields of another entry, something which, although not
+ recommended, is common practice, and which has frequently not worked
+ quite right. The \mycolor{\cmd{citeincite}} and
+ \mycolor{\cmd{citeincites}} commands always present short citations,
+ and are available in several fields, while
+ \mycolor{\cmd{fullciteincite}} and \mycolor{\cmd{fullciteincites}}
+ always present long references, and are designed only to be used in
+ the \textsf{annotation} field for cases where an annotated
+ bibliography or reference list includes references to works not
+ cited in the main text. See sections~\ref{sec:citecommands} and
+ \ref{sec:cite:authordate} for the details. If I've missed yet
+ further tricky corners in this functionality please let me know.
+\item After a request by Patrick Danilevici, I have added the four
+ fields \mycolor{\textsf{eventdate}}, \mycolor{\textsf{eventtitle}},
+ \mycolor{\textsf{eventtitleaddon}}, and \mycolor{\textsf{venue}} to
+ the \textsf{inproceedings}, \textsf{mvproceedings}, and
+ \textsf{proceedings} drivers in all styles, for compatibility with
+ standard \textsf{biblatex} usage. See the docs of those entry types
+ in sections~\ref{sec:entrytypes} and \ref{sec:types:authdate}.
+\item The \texttt{postnotepunct} option should generally work now,
+ both in more contexts and with arbitrary \textsf{postnote} field
+ contents.
+\item The \mycolor{\texttt{dashed}} option governing the use of the
+ 3-em dash in bibliographies and reference lists is now available
+ globally, per type, and per entry.
+\end{itemize}
+
+Note on the 16th-edition files:
+\begin{itemize}
+\item These have been updated for compatibility with the latest
+ \textsf{biblatex} and \textsf{biber}, and there are also a number of
+ bug fixes included. I haven't added any new functionality to the
+ files, so for instance if you want to use the new Romanian
+ localization you'll need the current 17th-edition styles. With this
+ release I am marking the 16th-edition files as deprecated, and will
+ remove them in a future release. Please consider moving your
+ documents to the current specification, where all of my development
+ time is now spent.\label{deprec:obsol}
+\end{itemize}
+
+\textbf{2.0: Released April 20, 2020}
\mylittlespace Converting from the 16th to the 17th edition in your
-.bib files and \LaTeX\ documents:\label{deprec:obsol}
+.bib files and \LaTeX\ documents:
\begin{itemize}
\item The 17th edition of the \emph{Manual} no longer encourages use
of \emph{ibid.}\ to replace repeated citations of the same work in
@@ -15747,7 +16706,7 @@ Other new features common to the notes \&\ bibliography and
author-date styles:
\begin{itemize}
\item Wouter Lancee has very generously provided a Dutch localization
- for \textsf{biblatex-chicago}, called
+ for \textsf{biblatex-chi\-cago}, called
\mycolor{\textsf{cms-dutch.lbx}}. You can use it by including
\enquote{\texttt{dutch}} when loading \textsf{babel}. Gustavo
Barros has also very kindly provided a much-revised version of his
@@ -16041,8 +17000,8 @@ Other New Features:
\item I am grateful to Gustavo Barros for providing a Brazilian
Portuguese localization for \textsf{biblatex-chicago}, contained in
the \mycolor{\textsf{cms-brazilian.lbx}} file.
-\item Gustavo also pointed out a couple of instances where the
- package's \textsf{bibstrings} couldn't accommodate the needs of his
+\item Gustavo also pointed out some instances where the package's
+ \textsf{bibstrings} couldn't accommodate the needs of his
localization, so with his help I've split the \texttt{recorded}
string into \texttt{discrecorded} and \texttt{songrecorded}, then
added it to all the .lbx files. I've also added two new
@@ -16123,8 +17082,8 @@ Other New Features:
section~\ref{sec:useropts}, above, for the details, and note that
\mycolor{\texttt{shortextrafield}} has to be set for the mechanism
to print anything at all.
-\item User Pétùr spotted two long-standing bugs: first, that the
- \texttt{url=false} option didn't stop the printing of the
+\item User P\'{e}t\`{u}r spotted two long-standing bugs: first, that
+ the \texttt{url=false} option didn't stop the printing of the
\textsf{urldate}, and second that empty parentheses would appear in
some circumstances around non-existent dates in the author-date
styles. I have fixed both.
@@ -16205,13 +17164,13 @@ added a few new options:
preamble or in individual entries, and should make this
functionality simpler to activate than the \cmd{shorthandcite}
command.
-\item Also in the notes \&\ bibliography style, Stefan Björk requested
- a way to turn off the printing of \textsf{url}, \textsf{doi}, and
- \textsf{eprint} information in notes but not in the bibliography.
- The new \mycolor{\texttt{urlnotes}} option, which you can set to
- \texttt{false} in the preamble or in individual entries, provides
- this. Please note that it does not apply to \textsf{online}
- entries.
+\item Also in the notes \&\ bibliography style, Stefan Bj\"{o}rk
+ requested a way to turn off the printing of \textsf{url},
+ \textsf{doi}, and \textsf{eprint} information in notes but not in
+ the bibliography. The new \mycolor{\texttt{urlnotes}} option, which
+ you can set to \texttt{false} in the preamble or in individual
+ entries, provides this. Please note that it does not apply to
+ \textsf{online} entries.
\item Several users pointed out the presence of warnings in .log files
caused by deprecated grammar in the default Sorting Schemes of both
styles. These should now be fixed.
@@ -16239,10 +17198,10 @@ added a few new options:
Other New Features:
\begin{itemize}
-\item Stefan Björk has very generously provided a Swedish localization
- file for the package --- \mycolor{\textsf{cms-swedish.lbx}} ---
- which can be loaded and used with \textsf{babel} just like the other
- localizations.
+\item Stefan Bj\"{o}rk has very generously provided a Swedish
+ localization file for the package ---
+ \mycolor{\textsf{cms-swedish.lbx}} --- which can be loaded and used
+ with \textsf{babel} just like the other localizations.
\item I have added support for \mycolor{\textbf{related}}
functionality to all the Chicago styles, including all the standard
\textsf{biblatex} \mycolor{\textbf{relatedtypes}}. It is turned on
@@ -16284,7 +17243,7 @@ Other New Features:
functionality, and controlled by the same \texttt{journalabbrev}
option. Please see s.v.\ \enquote{shortjournal} in
sections~\ref{sec:entryfields} and \ref{sec:fields:authdate}.
-\item Following a request by Arne Skjærholt, and his generous
+\item Following a request by Arne Skj{\ae}rholt, and his generous
provision of some code to get me started, I have implemented a new
\mycolor{\cmd{gentextcite}} citation command in all styles. The
\enquote{gen} part of the name refers to the genitive case, and it
@@ -16296,15 +17255,16 @@ Other New Features:
command by using the \mycolor{\texttt{genallnames}} preamble and
entry option. Please see sections~\ref{sec:citecommands} and
\ref{sec:cite:authordate} for the details.
-\item Stefan Björk pointed out that \textsf{url}, \textsf{doi}, and
- \textsf{eprint} information could be totally ignored in some entries
- when you used the abbreviated cross-referencing functionality
- accessed through the \textsf{crossref} and \textsf{xref} fields. At
- his request, I have provided a new \mycolor{\texttt{xrefurl}} entry
- and preamble option for all the styles to control the printing of
- this information in abbreviated notes or bibliography (reference
- list) entries. Please see sections~\ref{sec:useropts} and
- \ref{sec:authuseropts} for the details.
+\item Stefan Bj\"{o}rk pointed out that \textsf{url}, \textsf{doi},
+ and \textsf{eprint} information could be totally ignored in some
+ entries when you used the abbreviated cross-referencing
+ functionality accessed through the \textsf{crossref} and
+ \textsf{xref} fields. At his request, I have provided a new
+ \mycolor{\texttt{xrefurl}} entry and preamble option for all the
+ styles to control the printing of this information in abbreviated
+ notes or bibliography (reference list) entries. Please see
+ sections~\ref{sec:useropts} and \ref{sec:authuseropts} for the
+ details.
\item In a related change, I have stopped child entries inheriting
\textsf{url}, \textsf{doi}, and \textsf{eprint} fields from their
cross-ref'd parents, so if your documents rely on this behavior
@@ -16344,7 +17304,7 @@ Other New Features:
commands to prevent line breaks immediately after abbreviation dots.
These tests apply only in running text, never in the list of
references, where good line breaks are already hard enough to find.
-\item In addition to moving the 15th-edition styles into an
+\item In addition to moving all the 15th-edition styles into the
\texttt{obsolete} subdirectory, I have also reorganized the
author-date style files, adding
\mycolor{\textsf{chicago-dates-common.cbx}} which contains the code
@@ -16370,9 +17330,9 @@ Other New Features:
\textsf{notes-test.bib} and \textsf{dates-test.bib}.
\item I have made a number of other small enhancements to and fixed
numerous bugs in all the styles, including some subtle inaccuracies
- in author-date citations spotted by Arne Skjærholt and some macros
- in \textsf{inproceedings} entries that had been missing for years.
- I have provided some default values for counters in
+ in author-date citations spotted by Arne Skj{\ae}rholt and some
+ macros in \textsf{inproceedings} entries that had been missing for
+ years. I have provided some default values for counters in
\textsf{biblatex-chicago.sty} that aid in breaking long
\textsf{urls} across lines, but I make no pretense that these fully
adhere to the \emph{Manual's} specifications. I have added a few
@@ -16430,7 +17390,7 @@ Other New Features:
version that has been tested most thoroughly with
\textsf{biblatex-chicago}, so I strongly recommend using it.
\item I fixed several inaccuracies in the presentation of abbreviated
- cross-referen\-ces in all the Chicago styles, and while I was working
+ cross-references in all the Chicago styles, and while I was working
on that portion of the code it seemed an opportune moment to fulfill
some feature requests bearing on the same area of functionality.
\item First, following a request from Alexandre Roberts, I have added
@@ -16510,7 +17470,7 @@ Other New Features:
\textbf{incollection} entries can inherit from \textbf{book} entries
the same way they inherit from \textbf{mvbook}.
\item I've fixed a fair number of other bugs, including two in the
- \emph{Ibidem} mechanism pointed out by Bernd Rellermeyer, one in the
+ \emph{Ibidem} mechanism identified by Bernd Rellermeyer, one in the
printing of dates, and one in the \cmd{textcite} command in the
notes \&\ bibliography style, these last two pointed out by Kenneth
Beesley. The presentation of all the periodical entry types
@@ -16682,7 +17642,7 @@ Other New Features:
parent entries.
\item I discovered some unpleasant side effects of my arrangement of
the \textsf{.lbx} files devoted to Norwegian, and reverted to the
- arrangement as originally provided by Håkon Malmedal.
+ arrangement as originally provided by H{\aa}kon Malmedal.
\end{itemize}
\textbf{0.9.9c: Released March 15, 2013}
@@ -16794,10 +17754,10 @@ Other New Features:
through it that it is still something of a work in progress, but it
should cover most needs in that language very well. If you would
like to fill in some of the gaps please let me know.
-\item I am also grateful to Håkon Malmedal for providing Norwegian
+\item I am also grateful to H{\aa}kon Malmedal for providing Norwegian
localizations for \textsf{biblatex-chicago}, contained in the files
\mycolor{\textsf{cms-norsk.lbx}},
- \mycolor{\textsf{cms-norwe\-gian.lbx}}, and
+ \mycolor{\textsf{cms-norwegian.lbx}}, and
\mycolor{\textsf{cms-nynorsk.lbx}}.
\item I have added a new British localization
(\mycolor{\textsf{cms-british.lbx}}) that should make it much
@@ -16887,7 +17847,7 @@ Edition:
fields. This should reduce the instances where you need a
\textsf{shortauthor} field to provide such a name.
\item The Chicago-specific setting of another \textsf{Biber}-only
- command, \mycolor{\cmd{DeclareSorting\-Scheme=cms}}, allows
+ command, \mycolor{\cmd{DeclareSortingScheme=cms}}, allows
non-standard fields to be considered by \textsf{biblatex's} sorting
algorithms, which should reduce the instances where you need a
\textsf{sortkey} or the like in your entries. If you aren't using
@@ -16900,7 +17860,7 @@ Edition:
\begin{itemize}
\item All title fields now follow the rules for the notes \&\
bibliography style as far as punctuation, formatting, and
- capitalization are concerned. \textsf{Biblatex-chicago-\break authordate}
+ capitalization are concerned. \textsf{Biblatex-chicago-authordate}
will deal with most of this automatically, but if you have any hand
formatting of lowercase letters within curly braces in your .bib
file, you will need to restore the headline-style capitalization
@@ -16927,7 +17887,7 @@ Edition:
with sorting in the reference list --- placing the
\textsf{shorthand} also in a \textsf{sortkey} should do the trick.
\item On the subject of \textbf{customc} entries, the \emph{Manual}
- now recommends using cross-references in several contexts,
+ now recommends using cross-refer\-ences in several contexts,
particularly when a single author uses more than one pseudonym.
Adding \textsf{customc} entries makes this happen.
\item There have been significant changes when presenting book-like
@@ -17004,13 +17964,13 @@ Edition:
mean that \textsf{biblatex} no longer requires assistance when
alphabetizing such author-less entries.
\item The Chicago-specific setting of the \textsf{Biber}-only command,
- \mycolor{\cmd{DeclareSorting-\break Scheme=cms}}, allows
- non-standard fields to be considered by \textsf{biblatex's} sorting
- algorithms, which should reduce the instances where you need a
- \textsf{sortkey} or the like in your entries.
+ \mycolor{\cmd{DeclareSortingScheme\break =cms}}, allows non-standard
+ fields to be considered by \textsf{biblatex's} sorting algorithms,
+ which should reduce the instances where you need a \textsf{sortkey}
+ or the like in your entries.
\item The Chicago-specific setting of the \textsf{Biber}-only command
- \mycolor{\cmd{DeclareLabel\-name}} allows \textsf{biblatex} to find
- a name (\enquote{\textsf{label}}) for citations outside the standard
+ \mycolor{\cmd{DeclareLabelname}} allows \textsf{biblatex} to find a
+ name (\enquote{\textsf{label}}) for citations outside the standard
name fields, including, notably, in the \textsf{name[a-c]} fields.
This should reduce the instances where you need a
\textsf{shortauthor} field to provide such a name.
@@ -17053,7 +18013,7 @@ Other New Features:
\item I have added a new \mycolor{\texttt{avdate}} option to the
author-date style, set to \texttt{true} by default in
\textsf{biblatex-chicago.sty}. This alters the default setting of
- \cmd{Declare\-Labelyear} in \textbf{music}, \textbf{review}, and
+ \cmd{DeclareLabelyear} in \textbf{music}, \textbf{review}, and
\textbf{video} entries to take account of specialized instructions
in the \emph{Manual} for finding dates to appear in citations and at
the head of reference list entries. Setting \texttt{avdate=false}
@@ -17090,7 +18050,7 @@ Other New Features:
new citation command, \mycolor{\cmd{shorthandcite}}, which prints
the \textsf{shorthand} even in the first citation of a given work.
\item Following suggestions by Roger Hart, I have implemented three
- new field-exclu\-sion options in the notes \&\ bibliography style.
+ new field-exclusion options in the notes \&\ bibliography style.
In all three cases, the field in question will always appear in the
bibliography, but not in long notes, which may help to save space.
The fields at stake are \textsf{addendum}, \textsf{note}, and
@@ -17108,7 +18068,7 @@ Other New Features:
which should now by default look a little better in a wider variety
of fonts.
\item At the request of Baldur Kristinsson, I have added
- \cmd{DeclareLanguageMap\-ping} commands to
+ \cmd{DeclareLanguageMapping} commands to
\textsf{biblatex-chicago.sty} for all the languages
\textsf{biblatex-chicago} currently provides. If you load the style
in the standard way, you no longer need to provide these mappings
@@ -17218,11 +18178,11 @@ Other New Features:
\item Fixed the \cmd{smartcite} citation command in, and added a
\cmd{smartcites} command to, \textsf{chicago-notes.cbx}, so that the
notes \&\ bibliography style no longer prints parentheses around
- citations produced using \cmd{autocite(s)} commands inside\break
+ citations produced using \cmd{autocite(s)} commands inside
\cmd{footnote} commands. Many thanks to Louis-Dominique Dubeau for
pointing out this error.
\item Rembrandt Wolpert and Aaron Lambert pointed out an issue with a
- command (\cmd{lbx@fromlang}) that \textsf{biblatex} no longer
+ command (\cmd{lbx\\@fromlang}) that \textsf{biblatex} no longer
defines, and Charles Schaum very kindly suggested a temporary
workaround in a newsgroup post, a workaround that should no longer
be necessary.
@@ -17341,7 +18301,7 @@ Other New Features:
\textbf{0.9.5a: Released September 7, 2010}
\begin{itemize}
\item Quick fix for an elementary and show-stopping mistake in
- \textsf{biblatex-chica\-go.sty}, a mistake disguised if you load
+ \textsf{biblatex-chicago.sty}, a mistake disguised if you load
\textsf{csquotes}, which I do in all my test files. Mea culpa.
Many thanks indeed to Israel Jacques and Emil Salim for pointing
this out to me.
@@ -17418,7 +18378,7 @@ Other New Features:
\item Users of \textsf{biblatex-chicago-notes} no longer need a
\textsf{shortauthor} field in author-less \textsf{manual} entries,
or in author-less \textsf{article} or \textsf{review} entries with a
- \texttt{maga\-zine} \textsf{entrysubtype}. The package will now
+ \texttt{magazine} \textsf{entrysubtype}. The package will now
automatically take an author for short notes from the
\textsf{organization} field for \textsf{manual} entries and from the
\textsf{journaltitle} field for the others. You can still use a
@@ -17480,7 +18440,7 @@ Other New Features:
you can also consult the documentation of those entry types above.
\item The modified \textsf{csquotes.cfg} file I provided in earlier
releases is now obsolete, and has been removed from the package.
- Please upgrade to the latest version of \textsf{cs\-quotes} and, if
+ Please upgrade to the latest version of \textsf{csquotes} and, if
you are still using my modified .cfg file, remove it from your \TeX\
search path, or at the very least excise the code I provided.
\end{itemize}
@@ -17567,9 +18527,9 @@ Other New Features:
\texttt{footmarkoff} package option when loading
\textsf{biblatex-chicago}.
\item Updates to Lehman's \textsf{csquotes} package have rendered my
- modifications in \textsf{cs\-quotes.cfg} obsolete. Please use the
- latest version of \textsf{csquotes} (4.4a at time of writing) and
- ignore my file, which will disappear in a later release.
+ modifications in \textsf{csquotes.\break cfg} obsolete. Please use
+ the latest version of \textsf{csquotes} (4.4a at time of writing)
+ and ignore my file, which will disappear in a later release.
\item At the request of Will Small, I have included some code, still
in an alpha state, to allow you to specify, in the bibliography, the
original publication details of essays which you are citing from
@@ -17591,7 +18551,7 @@ Other New Features:
\item The \textbf{single-letter bibstrings} (\cmd{bibstring\{a\}},
\cmd{bibstring\{b\}}, etc.) are now obsolete. You should replace
any still present in your .bib file with \cmd{autocap} commands ---
- see §~3.8.4 of \textsf{biblatex.pdf}.
+ see \S~3.8.4 of \textsf{biblatex.pdf}.
\end{itemize}
Other New Features:
@@ -17629,11 +18589,11 @@ Other New Features:
package with the new default \cmd{usepackage\{biblatex-chicago\}};
users loading it the old way get default \LaTeX\ formatting.
\item At Matthew Lundin's request, I have added the citation command
- \textbf{\textbackslash head\-lesscite}, which works like
+ \textbf{\textbackslash headlesscite}, which works like
\cmd{headlessfullcite} but allows \textsf{biblatex} to decide
whether to print the full or the short note.
\item Fully adopted \textsf{biblatex's} system for providing
- end-of-entry punctuation, which should solve some of the bugs users
+ end-of-entry punctuation, which will solve some of the bugs users
have been finding. See section~\ref{sec:otherhints}, above, and do
please let me know if inconsistencies remain.
\item Added a modified \textbf{csquotes.cfg} file to address issues
@@ -17818,4 +18778,5 @@ To Do:
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
+%%% TeX-engine: xetex
%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdf
index 0f148984f0..ddac2c6b98 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex
index 8473abe458..17da8e725a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-intro.tex
@@ -1,18 +1,18 @@
\documentclass[a4paper,12pt]{article}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-%\usepackage{endnotes}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+% %\usepackage{endnotes}
+% \usepackage[latin1]{inputenc}
+\usepackage{fontspec}
\usepackage[german,french,american]{babel}
\usepackage[autostyle]{csquotes}
%\usepackage[document]{ragged2e}
\usepackage[authordate,backend=biber,autolang=none,booklongxref=false,%
-bibencoding=latin1,postnotepunct,compresspages,strict,%
-annotation,cmsbreakurl]{biblatex-chicago}
+postnotepunct,compresspages,strict,annotation,cmsbreakurl]{biblatex-chicago}
% \usepackage[style=chicago-authordate,backend=biber,usecompiler=true,%
% babel=hyphen,bibencoding=auto,sorting=nyt,cmslos,autocite=inline]{biblatex}
-\usepackage{lmodern}
-\usepackage{gentium}
+% \usepackage{lmodern}
+% \usepackage{gentium}
%\renewcommand*{\rmdefault}{fgn}% The font (gentium) used for pdf
\usepackage{ifthen}
\usepackage{setspace}
@@ -35,10 +35,22 @@ annotation,cmsbreakurl]{biblatex-chicago}
\usepackage{xr-hyper}
\externaldocument[cms-]{biblatex-chicago}%
\externaldocument[trad-]{cms-trad-appendix}
-\usepackage[pdftex,hyperref,svgnames]{xcolor}
-\usepackage[pdftex,colorlinks,urlcolor=DarkSlateGrey,citecolor=MidnightBlue,
+\usepackage[hyperref,svgnames]{xcolor}
+\usepackage[colorlinks,urlcolor=DarkSlateGrey,citecolor=MidnightBlue,
plainpages=false,breaklinks=true,linkcolor=DarkSlateGrey,filecolor=Teal,
baseurl=biblatex-chicago.pdf\#]{hyperref}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
@@ -50,7 +62,7 @@ baseurl=biblatex-chicago.pdf\#]{hyperref}
{\normalfont\normalsize\bfseries}}
\makeatother
\usepackage{cmsdocs}
-\bibliography{dates-test}
+\addbibresource{dates-test.bib}
%%\onehalfspacing
%\tracingstats=2
\begin{document}
@@ -89,7 +101,7 @@ author-date specification you will need to use \textsf{biber} to
process your .bib files, as \textsc{Bib}\TeX\ (and its more recent
variants) will no longer provide all the features the style requires.
For this release, you really need the current versions of
-\textsf{biber} (2.14) and \textsf{biblatex} (3.14), which contain
+\textsf{biber} (2.16) and \textsf{biblatex} (3.16), which contain
features and bug-fixes on which my own code relies. The advice that
follows in this document assumes that you are using \textsf{biber}; if
you wish to continue using \textsc{Bib}\TeX\ then you need
@@ -223,13 +235,13 @@ By default, in most \cmssecref[date]{cms-sec:ad:date} entry types, an
absent \textsf{date} will automatically provoke \textsf{biber} into
searching for other sorts of dates in the entry, in the order
\textsf{date, eventdate, origdate, urldate}: e.g.,
-\autocite{wikiped:bibtex}, which only has a \textsf{urldate}. In
-five entry types --- \textsf{Music}, \textsf{Review},
-\textsf{Standard}, \textsf{SuppPeriodical}, and \textsf{Video} ---
-this search order is \textsf{eventdate, origdate, date, urldate}, as
-in these types the earliest date should take precedence (cf.\
+\autocite{wikiped:bibtex}, which only has a \textsf{urldate}. In five
+entry types --- \textsf{Music}, \textsf{Review}, \textsf{Standard},
+\textsf{SuppPeriodical}, and \textsf{Video} --- this search order is
+\textsf{eventdate, origdate, date, urldate}, as in these types the
+earliest date should take precedence (cf.\
page~\pageref{sec:audiovisual}, below). You can also change the
-default search order, for all but the three types just mentioned, by
+default search order, for all but the five types just mentioned, by
using the \texttt{cmsdate} option in the preamble of your document,
instead of (or in addition to) using it in the \textsf{options} field
of individual entries. Setting that option in the preamble either to
@@ -565,8 +577,8 @@ documentation has left you perplexed, please let me know.
entrysubtype = {magazine},
author = {AC},
eventdate = {2008-07-01T10:18:00},
- related = {*\hyperlink{\getrefbykeydefault%
-{ellis:blog}{anchor}{}}{\{\colorbox{Gainsboro}{ellis:blog}\}}*},
+ related = *\hyperlink{\getrefbykeydefault%
+{ellis:blog}{anchor}{}}{\{\colorbox{Gainsboro}{ellis:blog}\}}*,
relatedtype = {commenton}
}
\end{lstlisting}
@@ -629,9 +641,9 @@ documentation has left you perplexed, please let me know.
editor = {Ross, W.~D.},
nameb = {Ross, W.~D.},
origlanguage = {greek},
- userf = {*\hyperlink{\getrefbykeydefault%
+ userf = *\hyperlink{\getrefbykeydefault%
{aristotle:metaphy:gr}{anchor}{}}%
-{\{\colorbox{Gainsboro}{aristotle:metaphy:gr}\}}*},
+{\{\colorbox{Gainsboro}{aristotle:metaphy:gr}\}}*,
maintitle = {The Works of {Aristotle}, Translated into {English}},
publisher = {Clarendon Press},
edition = 2,
@@ -868,8 +880,8 @@ documentation has left you perplexed, please let me know.
note = {copy of an undated 78 rpm disc, 3:45},
options = {ptitleaddon=space},
titleaddon = {(speech)},
- related = {*\hyperlink{\getrefbykeydefault%
-{loc:leaders}{anchor}{}}{\{\colorbox{Gainsboro}{loc:leaders}\}}*},
+ related = *\hyperlink{\getrefbykeydefault%
+{loc:leaders}{anchor}{}}{\{\colorbox{Gainsboro}{loc:leaders}\}}*,
date = {1920~},
relatedstring = {in}
}
@@ -1321,7 +1333,7 @@ documentation has left you perplexed, please let me know.
date = 1911,
author = {Schweitzer, Albert},
origlocation = {London},
- origpublisher = {Breitkopf \&\ Härtel},
+ origpublisher = {Breitkopf \&\ H*\"a*rtel},
addendum = {Citations refer to the Dover edition},
options = {cmsdate=both},
translator = {Newman, Ernest},
@@ -1376,12 +1388,12 @@ documentation has left you perplexed, please let me know.
\end{lstlisting}
\begin{lstlisting}[language=BibTeX,label=unsigned:ranke]
*\adlnbackref{Review}{unsigned:ranke}*,
- journaltitle = {Ergänzungsblätter zur Allgemeinen Literatur-Zeitung},
+ journaltitle = {Erg*\"a*nzungsbl*\"a*tter zur Allgemeinen Literatur-Zeitung},
entrysubtype = {magazine},
date = {1828-02},
- title = {unsigned review of \mkbibemph{Geschichten der romanischen und germanischen Völker}, by {Leopold von Ranke}},
+ title = {unsigned review of \mkbibemph{Geschichten der romanischen und germanischen V*\"o*lker}, by {Leopold von Ranke}},
number = {23--24},
- shortjournal = {Erg\"anzungsbl\"atter z. Allg. Lit.-Ztg.}
+ shortjournal = {Erg*\"a*nzungsbl*\"a*tter z. Allg. Lit.-Ztg.}
}
\end{lstlisting}
\begin{lstlisting}[language=BibTeX,label=verdi:corsaro]
@@ -1423,8 +1435,8 @@ documentation has left you perplexed, please let me know.
author = {White, E.~B.},
title = {EBW to Harold Ross},
titleaddon = {memorandum},
- xref = {*\hyperlink{\getrefbykeydefault%
-{white:total}{anchor}{}}{\{\colorbox{Gainsboro}{white:total}\}}*},
+ xref = *\hyperlink{\getrefbykeydefault%
+{white:total}{anchor}{}}{\{\colorbox{Gainsboro}{white:total}\}}*,
pages = 273,
origdate = {1946-05-02}
}
@@ -1433,8 +1445,8 @@ documentation has left you perplexed, please let me know.
*\adlnbackref{Letter}{white:russ}*,
author = {White, E.~B.},
title = {EBW to B.~Russell},
- xref = {*\hyperlink{\getrefbykeydefault%
-{white:total}{anchor}{}}{\{\colorbox{Gainsboro}{white:total}\}}*},
+ xref = *\hyperlink{\getrefbykeydefault%
+{white:total}{anchor}{}}{\{\colorbox{Gainsboro}{white:total}\}}*,
pages = 283,
origdate = {1946-09-02}
}
@@ -1460,7 +1472,8 @@ documentation has left you perplexed, please let me know.
}
\end{lstlisting}
\end{document}
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
-%%% End:
+%%% TeX-engine: xetex
+%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdf
index 679dea1d90..63e590a472 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex
index 2b806af631..414cc98376 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-dates-sample.tex
@@ -1,25 +1,25 @@
\documentclass[a4paper,12pt]{report}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-%\usepackage{endnotes}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+% \usepackage{endnotes}
+\usepackage{fontspec}
+% \usepackage[latin1]{inputenc}
\usepackage[german,french,american]{babel}
\usepackage[autostyle]{csquotes}
%\usepackage[document]{ragged2e}
\usepackage[authordate,backend=biber,autolang=none,booklongxref=false,%
-bibencoding=latin1,postnotepunct,compresspages,strict,%
-cmsbreakurl]{biblatex-chicago}
+postnotepunct,compresspages,strict,cmsbreakurl]{biblatex-chicago}
% \usepackage[style=chicago-authordate,backend=biber,usecompiler=true,%
% babel=hyphen,bibencoding=auto,sorting=nyt,cmslos,autocite=inline]{biblatex}
-\usepackage{lmodern}
-\usepackage{gentium}
+% \usepackage{lmodern}
+% \usepackage{gentium}
%\renewcommand*{\rmdefault}{fgn}% The font (gentium) used for pdf
\usepackage{ifthen}
\usepackage{setspace}
\usepackage{vmargin} \setpapersize{A4}
-\setmarginsrb{1in}{20pt}{1in}{.5in}{1pt}{2pt}{0pt}{2mm}
-\usepackage{url}
-\urlstyle{rm}
+\setmarginsrb{25mm}{20pt}{25.5mm}{.5in}{1pt}{2pt}{0pt}{2mm}
+% \usepackage{url}
+% \urlstyle{rm}
\appto\bibsetup{\sloppy}
\providecommand{\cmslink}[1]{#1}% In case someone prints the annotations.
\hyphenation{evans-ton clem-ens mc-hugh ho-ro-witz}
@@ -31,7 +31,19 @@ cmsbreakurl]{biblatex-chicago}
\newcommand{\cmd}[1]{\texttt{\textbackslash #1}}
\usepackage[colorlinks,urlcolor=blue,citecolor=black,
plainpages=false,breaklinks=true]{hyperref}
-\bibliography{dates-test}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
+\addbibresource{dates-test.bib}
%%\onehalfspacing
\begin{document}
@@ -533,7 +545,8 @@ Video: \autocite{american:crime}; \autocite{mayberry:brady}.
\printbibliography[notkeyword=nosample,title=References]
\end{document}
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
-%%% End:
+%%% TeX-engine: xetex
+%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdf
index ee957ed0f7..2a07a38efc 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex
index 8c90782633..1cce627b47 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-legal-sample.tex
@@ -1,15 +1,15 @@
\documentclass[a4paper,12pt]{article}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+\usepackage{fontspec}
+% \usepackage[latin1]{inputenc}
\usepackage[american]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[document]{ragged2e}
\usepackage[notes,strict,backend=biber,autolang=other,%
-bibencoding=latin1,booklongxref=false,compresspages,%
-related=true]{biblatex-chicago}
-\usepackage{lmodern}
-\usepackage{gentium}
+booklongxref=false,compresspages,related=true]{biblatex-chicago}
+% \usepackage{lmodern}
+% \usepackage{gentium}
\usepackage{ifthen}
\usepackage{setspace}
\usepackage{vmargin} \setpapersize{A4}
@@ -17,14 +17,26 @@ related=true]{biblatex-chicago}
\providecommand{\cmslink}[1]{#1}% If someone prints annotations
\protected\def\onethird{{\scriptsize\raisebox{.7ex}{1}%
\hspace{-0.1em}\raisebox{.2ex}{/}\hspace{-0.03em}3}}
-\usepackage[pdftex,hyperref,svgnames]{xcolor}
-\usepackage[pdftex,colorlinks,urlcolor=DarkSlateGrey,citecolor=MidnightBlue,
+\usepackage[hyperref,svgnames]{xcolor}
+\usepackage[colorlinks,urlcolor=DarkSlateGrey,citecolor=MidnightBlue,
plainpages=false,breaklinks=true,linkcolor=DarkSlateGrey,
filecolor=Teal]{hyperref}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
%\appto\biburlsetup{\Urlmuskip=0mu plus 4mu\relax}
\setlength{\dimen\footins}{9.5in}
\defbibnote{legal}{(U.S.\ unless noted.)}
-\bibliography{legal-test}
+\addbibresource{legal-test.bib}
%%\onehalfspacing
\begin{document}
@@ -133,7 +145,8 @@ Shorthands]{shortjournal}
\printbibliography[notkeyword=original]
\end{document}
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
-%%% End:
+%%% TeX-engine: xetex
+%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdf
index 926617f6fe..143602b0ac 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex
index f2af81322b..cf005981a4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-noteref-demo.tex
@@ -1,15 +1,16 @@
\documentclass[a4paper,12pt]{article}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+\usepackage{fontspec}
+% \usepackage[latin1]{inputenc}
\usepackage[american]{babel}
\usepackage[autostyle]{csquotes}
%\usepackage[document]{ragged2e}
\usepackage[notes,strict,backend=biber,autolang=other,cmsbreakurl,%
-bibencoding=latin1,booklongxref=false,compresspages,%
+booklongxref=false,compresspages,%
noteref=section,noterefintro=introduction]{biblatex-chicago}
-\usepackage{lmodern}
-\usepackage{gentium}
+% \usepackage{lmodern}
+% \usepackage{gentium}
%\renewcommand*{\rmdefault}{fgn}% The font (gentium) used for pdf
\usepackage{ifthen}
\usepackage{setspace}
@@ -26,22 +27,34 @@ noteref=section,noterefintro=introduction]{biblatex-chicago}
\newcommand{\mycolor}{}%[1]{\textcolor[HTML]{228B22}{#1}}
\usepackage{xr-hyper}
\externaldocument[cms-]{biblatex-chicago}%
-\usepackage[pdftex,hyperref,svgnames]{xcolor}
-\usepackage[pdftex,colorlinks,filecolor=Teal,citecolor=black,
+\usepackage[hyperref,svgnames]{xcolor}
+\usepackage[colorlinks,filecolor=Teal,citecolor=black,
plainpages=false,breaklinks=true,urlcolor=DarkSlateBlue,
linkcolor=DarkSlateBlue,baseurl=biblatex-chicago.pdf\#]{hyperref}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\large\bfseries}}
\newrobustcmd*{\cmssecref}[2][]{\marginpar{\href{\@baseurl%
- \getrefbykeydefault{#2}{anchor}{}}{\small §\,\getrefnumber{#2}}%
+ \getrefbykeydefault{#2}{anchor}{}}{\small \S\,\getrefnumber{#2}}%
\ifblank{#1}{}{\scriptsize,\, s.v.\\[1pt]\enquote{#1}}}}%
\makeatother
\newcommand{\cmd}[1]{\texttt{\textbackslash #1}}
\newcommand{\mylittlespace}{\vspace{5pt}}%.5\baselineskip}}
-\bibliography{notes-test}
+\addbibresource{notes-test.bib}
%%\onehalfspacing
%\tracingmacros=1
\begin{document}
@@ -269,4 +282,5 @@ doesn't clear up the issue, please let me know.
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
+%%% TeX-engine: xetex
%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdf
index 1401d5bf27..e3f3e92bf6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex
index f7e9eb234c..a03bb0d82c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-intro.tex
@@ -1,16 +1,17 @@
\documentclass[a4paper,12pt]{article}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+% \usepackage[utopia]{mathdesign}
+\usepackage{fontspec}
\usepackage{endnotes}
-\usepackage[latin1]{inputenc}
+% \usepackage[latin1]{inputenc}
\usepackage[american]{babel}
\usepackage[autostyle]{csquotes}
%\usepackage[document]{ragged2e}
\usepackage[notes,strict,backend=biber,autolang=other,cmsbreakurl,%
-bibencoding=latin1,booklongxref=false,annotation,%
-compresspages]{biblatex-chicago}
-\usepackage{lmodern}
-\usepackage{gentium}
+booklongxref=false,annotation,compresspages]{biblatex-chicago}
+% \usepackage{lmodern}
+% \usepackage{gentium}
%\renewcommand*{\rmdefault}{fgn}% The font (gentium) used for pdf
\usepackage{ifthen}
\usepackage{setspace}
@@ -30,10 +31,22 @@ compresspages]{biblatex-chicago}
\newcommand{\mycolor}{}%[1]{\textcolor[HTML]{228B22}{#1}}
\usepackage{xr-hyper}
\externaldocument[cms-]{biblatex-chicago}%
-\usepackage[pdftex,hyperref,svgnames]{xcolor}
-\usepackage[pdftex,colorlinks,filecolor=Teal,citecolor=black,
+\usepackage[hyperref,svgnames]{xcolor}
+\usepackage[colorlinks,filecolor=Teal,citecolor=black,
plainpages=false,breaklinks=true,urlcolor=DarkSlateBlue,
linkcolor=DarkSlateBlue,baseurl=biblatex-chicago.pdf\#]{hyperref}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
\makeatletter
\renewcommand{\@makeenmark}{\textcolor{DarkSlateGrey}{\textsf{\@theenmark}}}
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
@@ -44,7 +57,7 @@ linkcolor=DarkSlateBlue,baseurl=biblatex-chicago.pdf\#]{hyperref}
\usepackage{cmsdocs}
\newcommand{\cmd}[1]{\texttt{\textbackslash #1}}
\newcommand{\mylittlespace}{\vspace{5pt}}%.5\baselineskip}}
-\bibliography{notes-test}
+\addbibresource{notes-test.bib}
%%\onehalfspacing
%\tracingstats=2
\begin{document}
@@ -575,7 +588,7 @@ documentation has left you perplexed, please let me know.
*\lnbackref{Book}{7}*{furet:passing:eng,
title = {The Passing of an Illusion},
year = 1999,
- author = {Furet, François},
+ author = {Furet, Fran*\c{c}*ois},
userf = {furet:passing:fr},
translator = {Furet, Deborah},
publisher = uchp,
@@ -584,26 +597,26 @@ documentation has left you perplexed, please let me know.
\end{lstlisting}%\enlargethispage{-\baselineskip}
\begin{lstlisting}[language=BibTeX,label=furet:related]
*\lnbackref{Book}{7}*{furet:related,
- title = {Le passé d'une illusion},
+ title = {Le pass*\'e* d'une illusion},
year = 1995,
related = {*\hyperlink{\getrefbykeydefault%
{furet:passing:eng}{anchor}{}}{\colorbox{Gainsboro}{furet:passing:eng}}*},
relatedtype = {bytranslator},
- author = {Furet, François},
- publisher = {Éditions Robert Laffont},
+ author = {Furet, Fran*\c{c}*ois},
+ publisher = {*\'E*ditions Robert Laffont},
location = {Paris}
}
\end{lstlisting}
\begin{lstlisting}[language=BibTeX,label=garaud:gatine]
*\lnbackref{Article}{1}*{garaud:gatine,
author = {Garaud, Marcel},
- title = {Recherches sur les défrichements dans la Gâtine poitevine aux XIe et XIIe siècles},
- journaltitle = {Bulletin de la Société des antiquaires de l'Ouest},
+ title = {Recherches sur les d*\'e*frichements dans la G*\^a*tine poitevine aux XIe et XIIe si*\`e*cles},
+ journaltitle = {Bulletin de la Soci*\'e*t*\'e* des antiquaires de l'Ouest},
year = 1967,
volume = 9,
series = 4,
pages = {11--27},
- shorttitle = {Recherches sur les défrichements}
+ shorttitle = {Recherches sur les d*\'e*frichements}
}
\end{lstlisting}
\begin{lstlisting}[language=BibTeX,label=genbank:db]
@@ -968,8 +981,9 @@ documentation has left you perplexed, please let me know.
%% \printshorthands
\end{document}
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% TeX-trailer-start: "^[^%\n]*\\\\printshorthands"
-%%% End:
+%%% TeX-engine: luatex
+%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdf
index 0108ce813c..9b9a8833b2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex
index 8275277454..13e0477099 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-notes-sample.tex
@@ -1,23 +1,33 @@
\documentclass[a4paper,12pt]{report}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+% \usepackage[latin1]{inputenc}
+\usepackage{fontspec}
+\usepackage{microtype}
\usepackage[american]{babel}
\usepackage[autostyle]{csquotes}
%\usepackage[document]{ragged2e}
\usepackage[notes,strict,backend=biber,autolang=other,cmsbreakurl,%
-bibencoding=latin1,booklongxref=false,compresspages]{biblatex-chicago}
-\usepackage{lmodern}
-\usepackage{gentium}
+booklongxref=false,compresspages]{biblatex-chicago}
+% \usepackage{lmodern}
+% \usepackage{gentium}
%%\usepackage[osf]{mathpazo}
%\renewcommand*{\rmdefault}{fgn}% The font (gentium) used for pdf
\usepackage{ifthen}
-\usepackage{setspace}
-\usepackage{vmargin} \setpapersize{A4}
-\setmarginsrb{1in}{20pt}{1in}{.5in}{1pt}{2pt}{0pt}{2mm}
+% \usepackage{setspace}
+% \usepackage{vmargin} \setpapersize{A4}
+% \setmarginsrb{1in}{20pt}{1in}{.5in}{1pt}{2pt}{0pt}{2mm}
\hyphenation{A-p-ril}
%\renewcommand{\sfdefault}{phv}
%\renewcommand{\ttdefault}{pcr}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[Scale = MatchLowercase]
+\setmonofont{lmmono9-regular.otf}
+% \usepackage{unicode-math}
+% \setmathfont{texgyrepagella-math.otf}
% \usepackage{url}
% \urlstyle{rm}
%\def\UrlNoBreaks{\do\-}
@@ -25,9 +35,13 @@ bibencoding=latin1,booklongxref=false,compresspages]{biblatex-chicago}
\providecommand{\cmslink}[1]{#1}% If someone prints annotations
\protected\def\onethird{{\scriptsize\raisebox{.7ex}{1}%
\hspace{-0.1em}\raisebox{.2ex}{/}\hspace{-0.03em}3}}
-%\appto\biburlsetup{\Urlmuskip=0mu plus 4mu\relax}
+% \appto\biburlsetup{\Urlmuskip=0mu plus 4mu\relax}
+\usepackage{typearea}
+\areaset[current]{460pt}{786pt}
\setlength{\dimen\footins}{9.5in}\setlength{\parindent}{0pt}
-\bibliography{notes-test}
+\setlength{\footskip}{12pt}
+% \bibliography{notes-test}
+\addbibresource{notes-test.bib}
%\tracingmacros=1
%%\onehalfspacing
\begin{document}
@@ -99,15 +113,15 @@ note\autocite{eliot:pound} note\autocite{euripides:orestes}
note\autocite{ellet:galena} note\autocite{ellis:blog}
note\autocite{emerson:nature} note\autocite{evanston:library}
note\footnote{\headlessfullcite[3]{feydeau:farces}.}
-note\autocite{floyd:atom} note\autocite{euripides:orestes}.
+note\autocite{floyd:atom}.
-Note\autocite{frede:inproc} note\autocite{friedman:learning}
-note\autocite{evanston:library} note\autocite{feydeau:farces}
-note\autocite{floyd:atom} note\autocite{frede:inproc}
-note\autocite{friedman:learning} note\autocite{friends:leia}
-note\autocite{furet:passing:eng} note\autocite{garaud:gatine}
-note\autocite{garrett} note\autocite{genbank:db}
-note\autocite{naraya}.
+Note\autocite{euripides:orestes} note\autocite{frede:inproc}
+note\autocite{friedman:learning} note\autocite{evanston:library}
+note\autocite{feydeau:farces} note\autocite{floyd:atom}
+note\autocite{frede:inproc} note\autocite{friedman:learning}
+note\autocite{friends:leia} note\autocite{furet:passing:eng}
+note\autocite{garaud:gatine} note\autocite{garrett}
+note\autocite{genbank:db} note\autocite{naraya}.
Note\autocite{gibbard} note\autocite{friends:leia}
note\autocite{furet:passing:eng} note\autocite{garrett}
@@ -266,7 +280,8 @@ note.\footnote{\cite*{zukowsky:chicago}.}
\printbibliography[notkeyword=original]
\end{document}
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
-%%% End:
+%%% TeX-engine: xetex
+%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdf
index 0a771acc10..1a47bc683c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex
index a2c8e654de..023a20d0da 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-appendix.tex
@@ -1,25 +1,25 @@
\documentclass[a4paper,12pt]{report}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-%\usepackage{endnotes}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+% %\usepackage{endnotes}
+% \usepackage[latin1]{inputenc}
+\usepackage{fontspec}
\usepackage[german,french,american]{babel}
\usepackage[autostyle]{csquotes}
%\usepackage[document]{ragged2e}
\usepackage[authordate-trad,backend=biber,autolang=none,booklongxref=false,%
-bibencoding=latin1,postnotepunct,compresspages,strict,%
-annotation]{biblatex-chicago}
+postnotepunct,compresspages,strict,annotation]{biblatex-chicago}
% \usepackage[style=chicago-authordate,backend=biber,usecompiler=true,%
% babel=hyphen,bibencoding=auto,sorting=nyt,cmslos,autocite=inline]{biblatex}
-\usepackage{lmodern}
-\usepackage{gentium}
+% \usepackage{lmodern}
+% \usepackage{gentium}
%\renewcommand*{\rmdefault}{fgn}% The font (gentium) used for pdf
\usepackage{ifthen}
\usepackage{setspace}
\usepackage{vmargin} \setpapersize{A4}
\setmarginsrb{1in}{20pt}{1in}{.5in}{1pt}{2pt}{0pt}{2mm}
-\usepackage{url}
-\urlstyle{rm}
+% \usepackage{url}
+% \urlstyle{rm}
\appto\bibsetup{\sloppy}
\setlength{\dimen\footins}{9.5in}
\setlength{\parindent}{0pt}
@@ -29,11 +29,23 @@ annotation]{biblatex-chicago}
\protected\def\onethird{{\scriptsize\raisebox{.7ex}{1}%
\hspace{-0.1em}\raisebox{.2ex}{/}\hspace{-0.03em}3}}
\newcommand{\cmd}[1]{\texttt{\textbackslash #1}}
-\usepackage[pdftex,hyperref,svgnames]{xcolor}
-\usepackage[pdftex,colorlinks,urlcolor=DarkSlateGrey,citecolor=black,
+\usepackage[hyperref,svgnames]{xcolor}
+\usepackage[colorlinks,urlcolor=DarkSlateGrey,citecolor=black,
plainpages=false,breaklinks=true,linkcolor=DarkSlateGrey]{hyperref}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
\usepackage{cmsdocs}
-\bibliography{dates-test}
+\addbibresource{dates-test.bib}
%%\onehalfspacing
\begin{document}
@@ -104,7 +116,8 @@ plainpages=false,breaklinks=true,linkcolor=DarkSlateGrey]{hyperref}
}
\end{lstlisting}
\end{document}
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
-%%% End:
+%%% TeX-engine: xetex
+%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdf
index f678ffcaf8..d3f5394a37 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex
index f6a1a88e03..bdbf89399d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/cms-trad-sample.tex
@@ -1,24 +1,25 @@
\documentclass[a4paper,12pt]{report}
-\usepackage[T1]{fontenc}
-\usepackage{textcomp}
-%\usepackage{endnotes}
-\usepackage[latin1]{inputenc}
+% \usepackage[T1]{fontenc}
+% \usepackage{textcomp}
+% %\usepackage{endnotes}
+% \usepackage[latin1]{inputenc}
+\usepackage{fontspec}
\usepackage[german,french,american]{babel}
\usepackage[autostyle]{csquotes}
%\usepackage[document]{ragged2e}
\usepackage[authordate-trad,backend=biber,autolang=none,booklongxref=false,%
-bibencoding=latin1,postnotepunct,compresspages,strict]{biblatex-chicago}
+postnotepunct,compresspages,strict]{biblatex-chicago}
% \usepackage[style=chicago-authordate,backend=biber,usecompiler=true,%
% babel=hyphen,bibencoding=auto,sorting=nyt,cmslos,autocite=inline]{biblatex}
-\usepackage{lmodern}
-\usepackage{gentium}
+% \usepackage{lmodern}
+% \usepackage{gentium}
%\renewcommand*{\rmdefault}{fgn}% The font (gentium) used for pdf
\usepackage{ifthen}
\usepackage{setspace}
\usepackage{vmargin} \setpapersize{A4}
\setmarginsrb{1in}{20pt}{1in}{.5in}{1pt}{2pt}{0pt}{2mm}
-\usepackage{url}
-\urlstyle{rm}
+% \usepackage{url}
+% \urlstyle{rm}
\appto\bibsetup{\sloppy}
\providecommand{\cmslink}[1]{#1}% In case someone prints the annotations.
\hyphenation{evans-ton clem-ens mc-hugh ho-ro-witz}
@@ -30,7 +31,19 @@ bibencoding=latin1,postnotepunct,compresspages,strict]{biblatex-chicago}
\newcommand{\cmd}[1]{\texttt{\textbackslash #1}}
\usepackage[colorlinks,urlcolor=blue,citecolor=black,
plainpages=false,breaklinks=true]{hyperref}
-\bibliography{dates-test}
+\setmainfont{GentiumPlus-R.ttf}[
+ItalicFont = GentiumPlus-I.ttf,
+BoldFont = GenBasB.ttf,
+BoldItalicFont = GenBasBI.ttf]
+\setsansfont{ClearSans-Regular.ttf}[
+BoldFont = ClearSans-Bold.ttf,
+ItalicFont = ClearSans-Italic.ttf,
+BoldItalicFont = ClearSans-BoldItalic.ttf,
+Scale = MatchLowercase]
+\setmonofont{lmmonoprop10-regular.otf}[
+BoldFont = lmmonoproplt10-bold.otf,
+HyphenChar={-}]
+\addbibresource{dates-test.bib}
%%\onehalfspacing
\begin{document}
@@ -522,7 +535,8 @@ Video: \autocite{american:crime}; \autocite{mayberry:brady}.
\printbibliography[notkeyword=nosample,title=References]
\end{document}
-%%% Local Variables:
+%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
-%%% End:
+%%% TeX-engine: xetex
+%%% End:
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib
index 4f455ebc0f..267e3b9e54 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/dates-test.bib
@@ -1410,7 +1410,7 @@
title = {\mkbibemph{Nicomachean ethics} VII. 11--12},
subtitle = {Pleasure},
booktitle = {Aristotle},
- booksubtitle = {\mkbibquote{Nicomachean ethics}, Book VII},
+ booksubtitle = {\mkbibquote{Nicomachean ethics,} Book VII},
series = {Symposium Aristotelicum},
editor = {Carlo Natali},
publisher = {Oxford University Press},
@@ -1484,7 +1484,7 @@
@Book{furet:passing:eng,
title = {The Passing of an Illusion},
year = 1999,
- author = {Furet, François},
+ author = {Furet, Fran\c{c}ois},
translator = {Furet, Deborah},
publisher = uchp,
location = {Chicago},
@@ -1499,12 +1499,12 @@
}
@Book{furet:passing:fr,
- title = {Le passé d'une illusion},
+ title = {Le pass\'{e} d'une illusion},
year = 1995,
related = {furet:passing:eng},
relatedtype = {bytranslator},
- author = {Furet, François},
- publisher = {Éditions Robert Laffont},
+ author = {Furet, Fran\c{c}ois},
+ publisher = {\'{E}ditions Robert Laffont},
location = {Paris},
annotation = {The original of the previous entry. The related
field calls that entry, and the relatedtype
@@ -1520,9 +1520,9 @@
@Article{garaud:gatine,
author = {Garaud, Marcel},
- title = {Recherches sur les défrichements dans la Gâtine
- poitevine aux XIe et XIIe siècles},
- journaltitle = {Bulletin de la Société des antiquaires de l'Ouest},
+ title = {Recherches sur les d\'{e}frichements dans la G\^{a}tine
+ poitevine aux XIe et XIIe si\`{e}cles},
+ journaltitle = {Bulletin de la Soci\'{e}t\'{e} des antiquaires de l'Ouest},
year = 1967,
volume = 9,
langid = {french},
@@ -2269,7 +2269,7 @@
@Book{levistrauss:savage,
title = {The Savage Mind},
year = 1962,
- author = {Lévi-Strauss, Claude},
+ author = {L\'{e}vi-Strauss, Claude},
publisher = {Weidenfeld \& Nicolson},
location = {Chicago: University of Chicago Press; London},
annotation = {A standard Book entry, showing a kludge in the
@@ -2424,11 +2424,11 @@
@Book{maisonneuve:relations,
title = {Les relations publiques},
- subtitle = {Dans une société en mouvance},
+ subtitle = {Dans une soci\'{e}t\'{e} en mouvance},
year = 1998,
- author = {Maisonneuve, Danielle and Lamarche, Jean-François and
+ author = {Maisonneuve, Danielle and Lamarche, Jean-Fran\c{c}ois and
St-Amand, Yves},
- publisher = {Presses de l'Université de Québec},
+ publisher = {Presses de l'Universit\'{e} de Qu\'{e}bec},
location = {Sainte-Foy, QC},
annotation = {Standard Book entry, maintaining French
sentence-style capitalization.}
@@ -2887,7 +2887,7 @@
}
@Book{palmatary:pottery,
- title = {The Pottery of {Marajó Island, Brazil}},
+ title = {The Pottery of {Maraj\'{o} Island, Brazil}},
year = 1950,
author = {Palmatary, Helen~C.},
series = {Transactions of the American Philosophical Society},
@@ -3387,7 +3387,7 @@
date = 1911,
author = {Schweitzer, Albert},
origlocation = {London},
- origpublisher = {Breitkopf \&\ Härtel},
+ origpublisher = {Breitkopf \&\ H\"{a}rtel},
addendum = {Citations refer to the Dover edition},
options = {cmsdate=both},
translator = {Newman, Ernest},
@@ -3736,11 +3736,11 @@
}
@Review{unsigned:ranke,
- journaltitle = {Ergänzungsblätter zur Allgemeinen Literatur-Zeitung},
+ journaltitle = {Erg\"{a}nzungsbl\"{a}tter zur Allgemeinen Literatur-Zeitung},
entrysubtype = {magazine},
date = {1828-02},
title = {unsigned review of \mkbibemph{Geschichten der
- romanischen und germanischen Völker}, by {Leopold von
+ romanischen und germanischen V\"{o}lker}, by {Leopold von
Ranke}},
number = {23--24},
shortjournal = {Erg\"anzungsbl\"atter z. Allg. Lit.-Ztg.},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib
index ff9755f7a9..c5d423317c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/doc/notes-test.bib
@@ -1206,7 +1206,7 @@
@Book{furet:passing:eng,
title = {The Passing of an Illusion},
year = 1999,
- author = {Furet, François},
+ author = {Furet, Fran\c{c}ois},
userf = {furet:passing:fr},
translator = {Furet, Deborah},
publisher = uchp,
@@ -1232,11 +1232,11 @@
}
@Book{furet:passing:fr,
- title = {Le passé d'une illusion},
+ title = {Le pass\'{e} d'une illusion},
year = 1995,
keywords = {original},
- author = {Furet, François},
- publisher = {Éditions Robert Laffont},
+ author = {Furet, Fran\c{c}ois},
+ publisher = {\'{E}ditions Robert Laffont},
location = {Paris},
annote = {The original of the previous entry. The keywords
field prevents it being printed separately in the
@@ -1244,12 +1244,12 @@
}
@Book{furet:related,
- title = {Le passé d'une illusion},
+ title = {Le pass\'{e} d'une illusion},
year = 1995,
related = {furet:passing:eng},
relatedtype = {bytranslator},
- author = {Furet, François},
- publisher = {Éditions Robert Laffont},
+ author = {Furet, Fran\c{c}ois},
+ publisher = {\'{E}ditions Robert Laffont},
location = {Paris},
annote = {This entry presents the same \textsf{Book} as
\texttt{furet:passing:fr}, but does so using the
@@ -1262,14 +1262,14 @@
@Article{garaud:gatine,
author = {Garaud, Marcel},
- title = {Recherches sur les défrichements dans la Gâtine
- poitevine aux XIe et XIIe siècles},
- journaltitle = {Bulletin de la Société des antiquaires de l'Ouest},
+ title = {Recherches sur les d\'{e}frichements dans la G\^{a}tine
+ poitevine aux XIe et XIIe si\`{e}cles},
+ journaltitle = {Bulletin de la Soci\'{e}t\'{e} des antiquaires de l'Ouest},
year = 1967,
volume = 9,
series = 4,
pages = {11--27},
- shorttitle = {Recherches sur les défrichements},
+ shorttitle = {Recherches sur les d\'{e}frichements},
annote = {An \textsf{Article} entry with \textsf{author},
\textsf{title}, \textsf{journaltitle},
\textsf{year}, \textsf{volume}, \textsf{series}, and
@@ -1977,7 +1977,7 @@
@Book{levistrauss:savage,
title = {The Savage Mind},
year = 1962,
- author = {Lévi-Strauss, Claude},
+ author = {L\'{e}vi-Strauss, Claude},
publisher = {Weidenfeld \& Nicolson},
location = {Chicago: University of Chicago Press; London},
annote = {A standard Book entry, showing a kludge in the
@@ -2088,11 +2088,11 @@
@Book{maisonneuve:relations,
title = {Les relations publiques},
- subtitle = {Dans une société en mouvance},
+ subtitle = {Dans une soci\'{e}t\'{e} en mouvance},
year = 1998,
- author = {Maisonneuve, Danielle and Lamarche, Jean-François and
+ author = {Maisonneuve, Danielle and Lamarche, Jean-Fran\c{c}ois and
St-Amand, Yves},
- publisher = {Presses de l'Université de Québec},
+ publisher = {Presses de l'Universit\'{e} de Qu\'{e}bec},
location = {Sainte-Foy, QC},
annote = {Standard Book entry, maintaining French
capitalization.}
@@ -2452,7 +2452,7 @@
}
@Book{palmatary:pottery,
- title = {The Pottery of Marajó Island, Brazil},
+ title = {The Pottery of Maraj\'{o} Island, Brazil},
year = 1950,
author = {Palmatary, Helen~C.},
series = {Transactions of the American Philosophical Society},
@@ -2942,7 +2942,7 @@
author = {Schweitzer, Albert},
volumes = {2},
origlocation = {London},
- origpublisher = {Breitkopf \&\ Härtel},
+ origpublisher = {Breitkopf \&\ H\"{a}rtel},
translator = {Newman, Ernest},
publisher = {Dover},
pubstate = {reprint},
@@ -3174,11 +3174,11 @@
}
@Review{unsigned:ranke,
- journaltitle = {Ergänzungsblätter zur Allgemeinen Literatur-Zeitung},
+ journaltitle = {Erg\"{a}nzungsbl\"{a}tter zur Allgemeinen Literatur-Zeitung},
entrysubtype = {magazine},
date = {1828-02},
title = {unsigned review of \mkbibemph{Geschichten der
- romanischen und germanischen Völker}, by {Leopold von
+ romanischen und germanischen V\"{o}lker}, by {Leopold von
Ranke}},
shorttitle = {unsigned review of von Ranke},
number = {23--24},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty
index 2497d4df31..2db90186a1 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/biblatex-chicago.sty
@@ -1,4 +1,4 @@
-% Copyright (c) 2009-2020 David Fussner. This package is
+% Copyright (c) 2009-2021 David Fussner. This package is
% author-maintained.
%
% This work may be copied, distributed and/or modified under the
@@ -11,47 +11,63 @@
% but not limited to, the implied warranties of merchantability and
% fitness for a particular purpose.
-\ProvidesPackage{biblatex-chicago}[2020/04/20 v 3.14 biblatex style]
+\ProvidesPackage{biblatex-chicago}[2021/03/27 v 3.16 biblatex style]
\RequirePackage{etoolbox}
-\RequirePackage{nameref}
+\RequirePackage{nameref}% this already loads kvoptions
\RequirePackage{xstring}
-\DeclareOption{authordate}{\def\cms@style{authordate}}
-\DeclareOption{notes}{\def\cms@style{notes}}
-\DeclareOption{authordate-trad}{\def\cms@style{authordatetrad}}
-\DeclareOption{authordate16}{\def\cms@style{authordateold}}
-\DeclareOption{notes16}{\def\cms@style{notesold}}
-\DeclareOption{authordate-trad16}{\def\cms@style{authordatetrold}}
-\DeclareOption*{\eappto\cms@options{\CurrentOption,}}
+\SetupKeyvalOptions{% Use kvoptions to set biblatex load-time opts
+ family=cms@ldt,
+ prefix=cms@ldt@}
+
+\DeclareVoidOption{authordate}{\def\cms@style{authordate}}
+\DeclareVoidOption{notes}{\def\cms@style{notes}}
+\DeclareVoidOption{authordate-trad}{\def\cms@style{authordatetrad}}
+\DeclareVoidOption{authordate16}{\def\cms@style{authordateold}}
+\DeclareVoidOption{notes16}{\def\cms@style{notesold}}
+\DeclareVoidOption{authordate-trad16}{\def\cms@style{authordatetrold}}
+\DeclareDefaultOption{\eappto\cms@options{\CurrentOption,}}
\let\cms@options\empty
-\ExecuteOptions{notes}%
+\setkeys{cms@ldt}{notes}%
\newtoggle{cms@nomark}
\newtoggle{cms@urlbreak}
-\DeclareOption{footmarkoff}{\global\toggletrue{cms@nomark}}
-\DeclareOption{cmsbreakurl}{\global\toggletrue{cms@urlbreak}}
-
-\DeclareOption{natbib}{%
- \PassOptionsToPackage{natbib}{biblatex}}
+\DeclareVoidOption{footmarkoff}{\global\toggletrue{cms@nomark}}
+\DeclareVoidOption{cmsbreakurl}{\global\toggletrue{cms@urlbreak}}
-\DeclareOption{backend=biber}{%
- \PassOptionsToPackage{\CurrentOption}{biblatex}}%
+\DeclareStringOption{natbib}[true]
+\DeclareStringOption{mcite}[true]
+\DeclareStringOption{casechanger}[auto]
+\DeclareStringOption{backend}[biber]
+\DeclareStringOption{datamodel}
-\DeclareOption{backend=bibtex}{%
- \PassOptionsToPackage{\CurrentOption}{biblatex}%
- \def\blx@sorting@cms{1}}%
+\ProcessLocalKeyvalOptions{cms@ldt}
-\DeclareOption{backend=bibtex8}{%
- \PassOptionsToPackage{\CurrentOption}{biblatex}%
- \def\blx@sorting@cms{1}}%
-
-\DeclareOption{backend=bibtexu}{%
- \PassOptionsToPackage{\CurrentOption}{biblatex}%
- \def\blx@sorting@cms{1}}%
+\ifdefvoid{\cms@ldt@backend}%
+{\PassOptionsToPackage{backend=biber}{biblatex}}%
+{\PassOptionsToPackage{backend=\cms@ldt@backend}{biblatex}%
+ \ifdefstring{\cms@ldt@backend}{biber}%
+ {}%
+ {\def\blx@sorting@cms{1}}}
-\ProcessOptions*
+\ifx\cms@ldt@datamodel\@empty
+\else
+\PassOptionsToPackage{datamodel=\cms@ldt@datamodel}{biblatex}
+\fi
+\ifx\cms@ldt@mcite\@empty
+\else
+\PassOptionsToPackage{mcite=\cms@ldt@mcite}{biblatex}
+\fi
+\ifx\cms@ldt@natbib\@empty
+\else
+\PassOptionsToPackage{natbib=\cms@ldt@natbib}{biblatex}
+\fi
+\ifx\cms@ldt@casechanger\@empty
+\else
+\PassOptionsToPackage{casechanger=\cms@ldt@casechanger}{biblatex}
+\fi
\def\cms@authordate{%
\RequirePackage[style=chicago-authordate]{biblatex}%
@@ -222,6 +238,7 @@
\DeclareLanguageMapping{icelandic}{cms-icelandic}
\DeclareLanguageMapping{norsk}{cms-norsk}
\DeclareLanguageMapping{nynorsk}{cms-nynorsk}
+\DeclareLanguageMapping{romanian}{cms-romanian}
\DeclareLanguageMapping{swedish}{cms-swedish}
\ifundef\bbl@loaded{\let\bbl@loaded\@empty}{}% For old versions of babel
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx
index 9919887ea2..a9d035cd51 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad.cbx
@@ -4,7 +4,7 @@
% the author-date (trad) style of the Chicago Manual of Style, 17th
% edition.
-\ProvidesFile{chicago-authordate-trad.cbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-authordate-trad.cbx}[2021/03/27 v 3.16 biblatex
citation style]
\RequireCitationStyle{chicago-dates-common}
@@ -275,111 +275,76 @@ citation style]
\DeclareFieldFormat{title:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{\MakeSentenceCase*{#1}}}
+\DeclareFieldFormat{title:hook:alt}{%
+ \iftoggle{cms@reprintmt}%
+ {\begingroup
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
+ \endgroup}%
+ {\lbx@inittitlehook{#1}}% Inside entries don't use main doc. lang.
+ \mkbibemph{\MakeSentenceCase*{#1}}}
+
\DeclareFieldFormat{ititle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\MakeSentenceCase*{#1}}
\DeclareFieldFormat{jtitle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{#1}}
\DeclareFieldFormat{chapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1\addspace\bibstring{in}}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1\addspace\bibstring{in}}%
+ \endgroup}
\DeclareFieldFormat{avchapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1}%
+ \endgroup}
\DeclareFieldFormat{muschapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{track}}%
- \endgroup
- \bibstring{track}~#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{track}}%
+ \bibstring{track}~#1}%
+ \endgroup}%
+
+\DeclareFieldFormat{volume:hook}{%
+ \begingroup
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{volume}}%
+ \bibstring{volume}~#1}%
+ \endgroup}%
+
+\DeclareFieldFormat{parttoo:hook}{%
+ \ifnumerals{#1}%
+ {\addcomma\addspace\bibstring[\mkrelatedstringtext]{partvolume}~#1}%
+ {\addcomma\addspace\ifcapital{\MakeCapital{#1}}{#1}}}
+
+\DeclareFieldFormat{part:hook}{%
+ \begingroup
+ \ifnumerals{#1}%
+ {\mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{partvolume}}%
+ \bibstring{partvolume}~#1}}%
+ {\mkrelatedstringtext{\lbx@inittitlehook{#1}}%
+ \ifcapital{\MakeCapital{#1}}{#1}}%
+ \endgroup}
\DeclareFieldFormat{sjtnoformat}{#1}
\DeclareFieldFormat{stnoformat}{#1}
@@ -398,11 +363,23 @@ citation style]
{\iffieldundef{journaltitle}%
{\iffieldundef{maintitle}%
{}%
- {\DeclareFieldAlias{maintitle}{title:hook}}}%
+ {\toggletrue{cms@reprintmt}%
+ \ifthenelse{\(\iffieldundef{volume}\AND\iffieldundef{part}\)%
+ \OR\ifentrytype{inbook}\OR\ifentrytype{incollection}\OR%
+ \ifentrytype{inproceedings}\OR\ifentrytype{letter}}%
+ {\DeclareFieldAlias{maintitle}{title:hook}}%
+ {\iffieldundef{volume}%
+ {\DeclareFieldAlias{part}{part:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}%
+ {\DeclareFieldAlias{volume}{volume:hook}%
+ \DeclareFieldAlias{part}{parttoo:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}}}}%
{\DeclareFieldAlias{jtnoformat}{jtitle:hook}%
\DeclareFieldAlias{sjtnoformat}{title}%
\DeclareFieldAlias{journaltitle}{default}%
+ \DeclareFieldAlias{injournaltitle}{default}%
\DeclareFieldAlias{shortjournal}{series}%
+ \DeclareFieldAlias{inshortjournal}{series}%
\DeclareFieldAlias{jtsnoformat}{jtitle:hook}}}%
{\DeclareFieldAlias{booktitle}{title:hook}}}%
{\DeclareFieldAlias{tnoformat}{jtitle:hook}%
@@ -417,8 +394,10 @@ citation style]
\ifentrytype{video}}%
{\iffieldundef{title}%
{\ifentrytype{music}%
- {\DeclareFieldAlias[music]{chapter}{muschapter:hook}}%
- {\DeclareFieldAlias{chapter}{avchapter:hook}}}%
+ {\DeclareFieldAlias[music]{chapter}{muschapter:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}%
+ {\DeclareFieldAlias{chapter}{avchapter:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}}%
{\DeclareFieldAlias[video]{title}{title:hook}%
\DeclareFieldAlias[audio]{title}{title:hook}%
\DeclareFieldAlias[music]{title}{title:hook}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx
index a090b604eb..1c11045f60 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate-trad16.cbx
@@ -3,7 +3,7 @@
% providing inline citations (and a reference list) for the
% author-date (trad) style of the Chicago Manual of Style, 16th edition.
-\ProvidesFile{chicago-authordate-trad16.cbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-authordate-trad16.cbx}[2021/03/27 v 3.16 biblatex
citation style]
\RequireCitationStyle{chicago-dates-common16}
@@ -246,93 +246,38 @@ citation style]
\DeclareFieldFormat{title:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{\MakeSentenceCase*{#1}}}
\DeclareFieldFormat{ititle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\MakeSentenceCase*{#1}}
\DeclareFieldFormat{jtitle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{#1}}
\DeclareFieldFormat{chapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1\addspace\bibstring{in}}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1\addspace\bibstring{in}}%
+ \endgroup}
\DeclareFieldFormat{avchapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1}%
+ \endgroup}
\DeclareFieldFormat{sjtnoformat}{#1}
\DeclareFieldFormat{stnoformat}{#1}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx
index b5e787803e..29f8c62649 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.bbx
@@ -2,7 +2,7 @@
% Lehman's standard.bbx and from chicago-notes.bbx. It provides the
% reference list formatting for the Chicago author-date style.
-\ProvidesFile{chicago-authordate.bbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-authordate.bbx}[2021/03/27 v 3.16 biblatex
bibliography style]
%%%% Initialize and format bibliography and los %%%%
@@ -21,6 +21,7 @@ bibliography style]
{\mkbibemph{\textbf{#1}}\isdot}}%
\newlength{\lositemsep}
+\newbibmacro*{begentry}{}
\defbibenvironment{bibliography}% New for 0.9a
{\list
@@ -124,12 +125,15 @@ bibliography style]
{}}%
\defbibcheck{shortjournal}{% Only one list
- \iffieldundef{shortjournal}%
+ \ifthenelse{\iffieldundef{shortjournal}\OR%
+ \iffieldsequal{journaltitle}{shortjournal}\OR%
+ \(\iffieldundef{journaltitle}\AND\(\ifentrytype{legal}\OR%
+ \ifentrytype{legislation}\OR\ifentrytype{jurisdiction}\)\)}%
{\skipentry}%
- {\ifcsdef{\strfield{shortjournal}=\strfield{journaltitle}}%
+ {\ifcsdef{\strfield{shortjournal}}%
{\skipentry}%
{\savefieldcs{shortjournal}%
- {\strfield{shortjournal}=\strfield{journaltitle}}}}}%
+ {\strfield{shortjournal}}}}}%
% \defbibcheck{shortjournal}{% Multiple lists
% \ifcsdef{cms@shjour}%
@@ -342,28 +346,35 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}}%
{\printtext{\bibnamedash}%
\ifentrytype{customc}%
{\newunit}%
- {\setunit{\addspace}}\printfield{nameaddon}}}%
+ {\setunit{\nameaddonpunct}}\printfield{nameaddon}}}%
{\iffieldequalstr{authortype}{anon}%
- {\bibleftbracket\printnames{author}\bibrightbracket%
+ {\bibopenbracket\printnames{author}%
+ \ifentrytype{customc}%
+ {\bibclosebracket%
+ \usebibmacro{print+nameaddon}}%
+ {\usebibmacro{print+nameaddon}%
+ \bibclosebracket}%
\savefield{fullhash}{\bbx@lasthash}}%
{\iffieldequalstr{authortype}{anon?}%
- {\bibleftbracket\printnames{author}\addquestion\bibrightbracket%
+ {\bibopenbracket\printnames{author}\addquestion%
+ \ifentrytype{customc}%
+ {\bibclosebracket%
+ \usebibmacro{print+nameaddon}}%
+ {\usebibmacro{print+nameaddon}%
+ \bibclosebracket}%
\savefield{fullhash}{\bbx@lasthash}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames{author}%
- \ifentrytype{customc}{}%
- {\setunit{\addspace}\printfield{nameaddon}}\bibcloseparen%
\ifentrytype{customc}%
- {\newunit\printfield{nameaddon}}%
- {}}%
+ {\bibcloseparen\usebibmacro{print+nameaddon}}%
+ {\usebibmacro{print+nameaddon}\bibcloseparen}}%
{\printnames{author}%
- \ifentrytype{customc}{\newunit}{\setunit{\addspace}}%
- \printfield{nameaddon}}%
+ \usebibmacro{print+nameaddon}}%
\savefield{fullhash}{\bbx@lasthash}}}}}}
\newbibmacro*{moreauthor}{%
@@ -376,21 +387,24 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}}%
- {\printtext{\bibnamedash}\setunit{\addspace}\printfield{nameaddon}}}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
+ \printfield{nameaddon}}}%
{\iffieldequalstr{authortype}{anon}%
- {\bibleftbracket\printnames{author}\bibrightbracket%
+ {\bibopenbracket\printnames{author}%
+ \usebibmacro{print+nameaddon}\bibclosebracket%
\savefield{fullhash}{\bbx@lasthash}}%
{\iffieldequalstr{authortype}{anon?}%
- {\bibleftbracket\printnames{author}\addquestion\bibrightbracket%
+ {\bibopenbracket\printnames{author}\addquestion%
+ \usebibmacro{print+nameaddon}\bibclosebracket%
\savefield{fullhash}{\bbx@lasthash}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames{author}%
- \setunit{\addspace}\printfield{nameaddon}\bibcloseparen}%
+ \usebibmacro{print+nameaddon}%
+ \bibcloseparen}%
{\printnames{author}%
- \setunit{\addspace}%
- \printfield{nameaddon}}%
+ \usebibmacro{print+nameaddon}}%
\savefield{fullhash}{\bbx@lasthash}}}}}}
\newbibmacro*{pickeditor}{%
@@ -408,17 +422,16 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\editordelim}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\editordelim}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames{editor}%
- \setunit{\addspace}\printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\bibcloseparen\editordelim}%
{\printnames{editor}%
- \setunit{\addspace}%
- \printfield{nameaddon}\editordelim}%
+ \usebibmacro{print+nameaddon}\editordelim}%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{editstrg}}}%
@@ -435,17 +448,16 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\editordelim}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\editordelim}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames{editor}%
- \setunit{\addspace}\printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\bibcloseparen\editordelim}%
{\printnames{editor}%
- \setunit{\addspace}%
- \printfield{nameaddon}\editordelim}%
+ \usebibmacro{print+nameaddon}\editordelim}%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{editstrg}}}%
{\ifboolexpr{%
@@ -455,17 +467,16 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\nameadelim}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\nameadelim}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames[sortname]{namea}%
- \setunit{\addspace}\printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\bibcloseparen\nameadelim}%
{\printnames[sortname]{namea}%
- \setunit{\addspace}%
- \printfield{nameaddon}\nameadelim}%
+ \usebibmacro{print+nameaddon}\nameadelim}%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{parteditstrg}}}}
@@ -479,17 +490,16 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\nameadelim}%
- {\printtext{\bibnamedash}\setunit{\addcomma}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\nameadelim}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames[sortname]{namea}%
- \setunit{\addspace}\printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\bibcloseparen\nameadelim}%
{\printnames[sortname]{namea}%
- \setunit{\addspace}%
- \printfield{nameaddon}\nameadelim}%
+ \usebibmacro{print+nameaddon}\nameadelim}%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{parteditstrg}}}
@@ -508,17 +518,16 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\newcunit}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\newcunit}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames[sortname]{translator}%
- \setunit{\addspace}\printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\bibcloseparen\newcunit}%
{\printnames[sortname]{translator}%
- \setunit{\addspace}%
- \printfield{nameaddon}\newcunit}%
+ \usebibmacro{print+nameaddon}\newcunit}%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{transstrg}}}
@@ -532,17 +541,16 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\newcunit}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\newcunit}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames[sortname]{nameb}%
- \setunit{\addspace}\printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\bibcloseparen\newcunit}%
{\printnames[sortname]{nameb}%
- \setunit{\addspace}%
- \printfield{nameaddon}\newcunit}%
+ \usebibmacro{print+nameaddon}\newcunit}%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{parttransstrg}}}
@@ -556,20 +564,53 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\newcunit}%
- {\printtext{\bibnamedash}\setunit{\addcomma}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\newcunit}}%
{\iftoggle{cms@authorparens}%
{\bibopenparen\printnames[sortname]{namec}%
- \setunit{\addspace}\printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\bibcloseparen\newcunit}%
{\printnames[sortname]{namec}%
- \setunit{\addspace}%
- \printfield{nameaddon}\newcunit}%
+ \usebibmacro{print+nameaddon}\newcunit}%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{compilestrg}}}
+\newbibmacro*{print+nameaddon}{%
+ \ifboolexpr{%
+ togl {cms@nona}%
+ or
+ test {\iffieldundef{nameaddon}}%
+ }%
+ {}%
+ {\ifboolexpr{%
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}%
+ and
+ test {\iffieldequals{nameaddon}{\cms@lastna}}%
+ and
+ togl {cms@subseqnona}%
+ }%
+ {}%
+ {\ifentrytype{customc}{\newunit}{\setunit{\nameaddonpunct}}%
+ \printfield{nameaddon}%
+ \savefield{nameaddon}{\cms@lastna}}}}%
+
+\def\if@cms@nonameaddon{%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@nona}%
+ or
+ (
+ test {\iffieldequals{nameaddon}{\cms@lastna}}%
+ and
+ togl {cms@subseqnona}%
+ )
+ }%
+ {\@firstoftwo}%
+ {\@secondoftwo}}%
+
\renewcommand*{\revsdnamedelim}{\addcomma}
\DeclareNameAlias{author}{sortname}% Needed in 0.9
@@ -610,7 +651,7 @@ bibliography style]
\ifentrytype{periodical}}%
{\printtext[bibhyperref]{\printfield[journaltitle]{journaltitle}%
\newcunit}}%
- {\ifentrytype{manual}%
+ {\ifthenelse{\ifentrytype{manual}\OR\ifentrytype{standard}}%
{\printtext[bibhyperref]{\printlist{organization}\newcunit}}%
{}}}%
{\ifboolexpr{%
@@ -623,8 +664,8 @@ bibliography style]
)
}%
{\printnames{\thefield{labelnamesource}}\newunit}%
- {\ifentrytype{customc}%
- {\usebibmacro{justauthor}\setunit{\addspace}}%
+ {\ifthenelse{\ifentrytype{customc}\OR\ifentrytype{dataset}}%
+ {\usebibmacro{justauthor}}% Moved \addspace to field format (2.1)
{\usebibmacro{author/editor}\newunit}}}%
\printfield[lostitle]{title}%
\finentry}}}
@@ -792,6 +833,55 @@ bibliography style]
\step[fieldsource=booktitle, final]
\step[fieldset=sorttitle, origfieldval]
}
+ \map[overwrite]{
+ \pertype{customc}
+ \step[fieldsource=title,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=title,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=titleaddon,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=titleaddon,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=annotation,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=annotation,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=annote,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=annote,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=addendum,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=addendum,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=note,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=note,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
\map[overwrite]{% Backward compatibility kludges
\step[fieldsource=year,
match=\regexp{^\[(.+)\](.*)},
@@ -809,6 +899,7 @@ bibliography style]
\DeclareBibliographyDriver{article}{%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{mag+news+author}%
\newunit\newblock
\usebibmacro{cmsbibsortdate}%
@@ -857,7 +948,8 @@ bibliography style]
{}%
\usebibmacro{originally+published+as}%
\usebibmacro{finentry}}
- {\usebibmacro{bibindex}%
+{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\ifundef{\bbx@lasthash}{\usebibmacro{mag+news+title}\newunit}{}%
@@ -866,7 +958,7 @@ bibliography style]
\ifundef{\bbx@lasthash}{}{\usebibmacro{mag+news+title}}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
- \setunit*{\addperiod\addspace}\newblock% 16th ed.
+ \setunit*{\newunitpunct}\newblock% 16th ed.
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{part+editor+translator}%
@@ -908,6 +1000,7 @@ bibliography style]
\DeclareBibliographyDriver{artwork}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -956,6 +1049,7 @@ bibliography style]
\DeclareBibliographyDriver{audio}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -985,7 +1079,7 @@ bibliography style]
\usebibmacro{chapinscore}%
\usebibmacro{btitle+bstitle}%
\iffieldundef{booktitle}%
- {\setunit{\addperiod\addspace}}% Fix customc?
+ {\setunit{\newunitpunct}}% Fix customc?
{\setunit{\addcomma\addspace}}%
\iffieldundef{edition}%
{}%
@@ -1009,10 +1103,10 @@ bibliography style]
{\printfield{volume}%
\printfield{part}%
\setunit{\addspace}%
- \bibstring{ofseries}%
- \setunit{\addspace}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
\printtext{%
- \printfield{maintitle}%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
\printfield[mainsubtitle]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
@@ -1055,6 +1149,7 @@ bibliography style]
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1142,7 +1237,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{xref}}%
\usebibmacro{bibpostxref}%
@@ -1160,7 +1255,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{crossref}}%
\usebibmacro{bibpostxref}%
@@ -1175,6 +1270,7 @@ bibliography style]
\DeclareBibliographyDriver{bookinbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1192,7 +1288,7 @@ bibliography style]
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}%
+ \setunit*{\newunitpunct}%
\ifboolexpr{%
test {\iffieldundef{crossref}}%
or
@@ -1251,7 +1347,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{xref}}%
\usebibmacro{bibpostxref}%
@@ -1269,7 +1365,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{crossref}}%
\usebibmacro{bibpostxref}%
@@ -1284,6 +1380,7 @@ bibliography style]
\DeclareBibliographyDriver{booklet}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1319,6 +1416,7 @@ bibliography style]
\DeclareBibliographyDriver{collection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{editor}%
\newunit\newblock
@@ -1383,7 +1481,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{xref}}%
\usebibmacro{bibpostxref}%
@@ -1401,7 +1499,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{crossref}}%
\usebibmacro{bibpostxref}%
@@ -1416,9 +1514,14 @@ bibliography style]
\DeclareBibliographyDriver{customc}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{justauthor}%
- \iffieldundef{nameaddon}%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@nona}%
+ }%
{\newunit}%
{\setunit{\addspace}}%
\usebibmacro{italtitle+stitle}%
@@ -1426,6 +1529,7 @@ bibliography style]
\DeclareBibliographyDriver{dataset}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1495,6 +1599,7 @@ bibliography style]
\DeclareBibliographyDriver{image}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1543,6 +1648,7 @@ bibliography style]
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1550,9 +1656,9 @@ bibliography style]
\usebibmacro{cmsbibsortdate}%
\newunit\newblock
\ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}%
- \setunit{\addperiod\addspace}% 16th ed.
+ \setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}%
\ifboolexpr{%
test {\iffieldundef{crossref}}%
@@ -1564,7 +1670,7 @@ bibliography style]
or
togl {cms@crossref}%
}%
- {\setunit{\addperiod\addspace}%
+ {\setunit{\newunitpunct}%
\usebibmacro{chapincoll}%
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit
@@ -1611,7 +1717,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{xref}}%
\usebibmacro{bibpostxref}%
@@ -1629,7 +1735,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{crossref}}%
\usebibmacro{bibpostxref}%
@@ -1644,6 +1750,7 @@ bibliography style]
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1651,9 +1758,9 @@ bibliography style]
\usebibmacro{cmsbibsortdate}%
\newunit\newblock
\ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}%
- \setunit{\addperiod\addspace}% 16th ed.
+ \setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}%
\ifboolexpr{%
test {\iffieldundef{crossref}}%
@@ -1665,7 +1772,7 @@ bibliography style]
or
togl {cms@crossref}%
}%
- {\setunit{\addperiod\addspace}% Moved here.
+ {\setunit{\newunitpunct}% Moved here.
\usebibmacro{chapincoll}%
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit
@@ -1712,7 +1819,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{xref}}%
\usebibmacro{bibpostxref}%
@@ -1730,7 +1837,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{crossref}}%
\usebibmacro{bibpostxref}%
@@ -1745,6 +1852,7 @@ bibliography style]
\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -1752,9 +1860,9 @@ bibliography style]
\usebibmacro{cmsbibsortdate}%
\newunit\newblock
\ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}%
- \setunit{\addperiod\addspace}% 16th ed.
+ \setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}%
\ifboolexpr{%
test {\iffieldundef{crossref}}%
@@ -1766,7 +1874,7 @@ bibliography style]
or
togl {cms@crossref}%
}%
- {\setunit{\addperiod\addspace}%
+ {\setunit{\newunitpunct}%
\usebibmacro{chapincoll}%
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit\newblock
@@ -1777,6 +1885,14 @@ bibliography style]
\usebibmacro{ser+num}%
\newunit\newblock
\printfield{note}%
+ \setunit*{\addcomma\addspace}%
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\newunit\newblock
\usebibmacro{bibreprint}%
\usebibmacro{org+publ+loc+year}%
@@ -1806,7 +1922,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{xref}}%
\usebibmacro{bibpostxref}%
@@ -1824,7 +1940,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{crossref}}%
\usebibmacro{bibpostxref}%
@@ -1839,6 +1955,7 @@ bibliography style]
\DeclareBibliographyDriver{inreference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{reference+title}%{italtitle+stitle}
\newunit\newblock
\usebibmacro{cmsbibsortdate}%
@@ -1850,7 +1967,7 @@ bibliography style]
{}%
\newunit\newblock
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}% need asterisk?
+ \setunit*{\newunitpunct}% need asterisk?
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit
\iffieldundef{edition}%
@@ -1906,6 +2023,7 @@ bibliography style]
\DeclareBibliographyDriver{jurisdiction}{%
\iffieldequalstr{entrysubtype}{square}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{clegis+news+title}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
@@ -1963,6 +2081,7 @@ bibliography style]
\usebibmacro{finentry}}
{\iffieldequalstr{entrysubtype}{round}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{clegis+news+title}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
@@ -2019,6 +2138,7 @@ bibliography style]
{}%
\usebibmacro{finentry}}
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{clegis+news+title}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
@@ -2085,6 +2205,7 @@ bibliography style]
\DeclareBibliographyDriver{legal}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -2150,6 +2271,7 @@ bibliography style]
\DeclareBibliographyDriver{legislation}{%
\iffieldequalstr{entrysubtype}{uk}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -2213,6 +2335,7 @@ bibliography style]
\usebibmacro{finentry}}
{\iffieldequalstr{entrysubtype}{hansard}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -2269,6 +2392,7 @@ bibliography style]
{}%
\usebibmacro{finentry}}
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -2341,6 +2465,7 @@ bibliography style]
\DeclareBibliographyDriver{letter}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -2356,7 +2481,7 @@ bibliography style]
\usebibmacro{language+transtitle}%
\newunit\newblock%\bibsentence
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}%
+ \setunit*{\newunitpunct}%
\ifboolexpr{%
test {\iffieldundef{crossref}}%
or
@@ -2444,6 +2569,7 @@ bibliography style]
\DeclareBibliographyDriver{manual}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author+org}%
\newunit\newblock
@@ -2487,6 +2613,7 @@ bibliography style]
\DeclareBibliographyDriver{misc}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -2551,6 +2678,7 @@ bibliography style]
\DeclareBibliographyDriver{music}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -2609,10 +2737,10 @@ bibliography style]
{\printfield{volume}%
\printfield{part}%
\setunit{\addspace}%
- \bibstring{ofseries}%
- \setunit{\addspace}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
\printtext{%
- \printfield{maintitle}%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
\printfield[mainsubtitle]{mainsubtitle}}%
\setunit{ctitleaddonpunct}%
@@ -2670,6 +2798,7 @@ bibliography style]
\DeclareBibliographyDriver{online}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -2775,15 +2904,16 @@ bibliography style]
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author+holder}% + holder?
\newunit\newblock
\ifundef\bbx@lasthash{\usebibmacro{patenttitle+stitle}}{}%
\usebibmacro{cmscitesortdate}%
\newunit\newblock
\ifundef\bbx@lasthash{}{\usebibmacro{patenttitle+stitle}}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\printfield{note}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{bibreprint}%
\printfield{type}%
\setunit{\addspace}%
@@ -2831,6 +2961,7 @@ bibliography style]
\DeclareBibliographyDriver{performance}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -2881,6 +3012,7 @@ bibliography style]
\DeclareBibliographyDriver{periodical}{%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\newunit\newblock
\ifboolexpr{%
@@ -2942,7 +3074,8 @@ bibliography style]
{}%
\usebibmacro{originally+published+as}%
\usebibmacro{finentry}}
- {\usebibmacro{bibindex}%
+{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\newunit\newblock
\ifboolexpr{%
@@ -2975,7 +3108,7 @@ bibliography style]
\usebibmacro{issuetitle}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
- \setunit*{\addperiod\addspace}\newblock% 16th ed.
+ \setunit*{\newunitpunct}\newblock% 16th ed.
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
@@ -3009,6 +3142,7 @@ bibliography style]
\DeclareBibliographyDriver{proceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{editor}%
\newunit\newblock
@@ -3038,6 +3172,14 @@ bibliography style]
\usebibmacro{ser+num}%
\newunit\newblock
\printfield{note}%
+ \setunit*{\addcomma\addspace}%
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\newunit\newblock
\usebibmacro{bibreprint}%
\usebibmacro{org+publ+loc+year}%
@@ -3067,7 +3209,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{xref}}%
\usebibmacro{bibpostxref}%
@@ -3085,7 +3227,7 @@ bibliography style]
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{bibprexref}%
\bibxrefcite{\thefield{crossref}}%
\usebibmacro{bibpostxref}%
@@ -3100,6 +3242,7 @@ bibliography style]
\DeclareBibliographyDriver{reference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{reference+title}%{italtitle+stitle}
\newunit\newblock
\usebibmacro{cmsbibsortdate}%
@@ -3111,7 +3254,7 @@ bibliography style]
{}%
\newunit\newblock
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}% need asterisk?
+ \setunit*{\newunitpunct}% need asterisk?
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit
\iffieldundef{edition}%
@@ -3157,6 +3300,7 @@ bibliography style]
\DeclareBibliographyDriver{report}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -3202,6 +3346,7 @@ bibliography style]
\DeclareBibliographyDriver{review}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{mag+news+author}}%
{\usebibmacro{author/editor}}%
@@ -3299,6 +3444,7 @@ bibliography style]
\DeclareBibliographyDriver{standard}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\ifnameundef{author}%
{\iflistundef{organization}%
@@ -3310,13 +3456,16 @@ bibliography style]
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}}}%
{\iftoggle{cms@authorparens}%
- {\bibopenparen\printlist{organization}\bibcloseparen}%
- {\printlist{organization}}%
+ {\bibopenparen\printlist{organization}%
+ \usebibmacro{print+nameaddon}%
+ \bibcloseparen}%
+ {\printlist{organization}%
+ \usebibmacro{print+nameaddon}}%
\savelist{organization}{\bbx@lasthash}}}}%
{\usebibmacro{justauthor}}%
\newunit\newblock
@@ -3387,6 +3536,7 @@ bibliography style]
\DeclareBibliographyDriver{suppbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author}%
\newunit\newblock
@@ -3460,6 +3610,7 @@ bibliography style]
\DeclareBibliographyDriver{thesis}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -3469,9 +3620,9 @@ bibliography style]
\ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}%
\newunit% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\printfield{note}%
- \setunit{\addperiod\addspace}\newblock%
+ \setunit{\newunitpunct}\newblock%
\usebibmacro{bibreprint}%
\usebibmacro{type+inst+year}%
\newunit\newblock
@@ -3493,6 +3644,7 @@ bibliography style]
\DeclareBibliographyDriver{unpublished}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -3502,7 +3654,7 @@ bibliography style]
\ifundef\bbx@lasthash{}{\usebibmacro{italtitle+stitle}}%
\newunit%usebibmacro{byauthorpunct}% Why does this work? No idea.
\usebibmacro{byauthor}% Same in thesis type, as well. 16th ed.
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{byeditor+others}% Fix bug ???
\newunit\newblock
\usebibmacro{bibreprint}%
@@ -3540,6 +3692,7 @@ bibliography style]
\DeclareBibliographyDriver{video}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{shorthand:author}%
\usebibmacro{author/editor}%
\newunit\newblock
@@ -3567,17 +3720,17 @@ bibliography style]
\setunit{\addspace}\newblock%
\usebibmacro{language+transtitle}%
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}}
- {\setunit{\addperiod\addspace}% 16th ed.
+ {\setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{chapinscore}%
\usebibmacro{btitle+bstitle}}%
\iffieldundef{booktitle}%
- {\setunit{\addperiod\addspace}}% Fix customc?
+ {\setunit{\newunitpunct}}% Fix customc?
{\setunit{\addcomma\addspace}}%
\iffieldundef{edition}%
{}%
@@ -3601,10 +3754,10 @@ bibliography style]
{\printfield{volume}%
\printfield{part}%
\setunit{\addspace}%
- \bibstring{ofseries}%
- \setunit{\addspace}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
\printtext{%
- \printfield{maintitle}%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
\printfield[mainsubtitle]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
@@ -3675,7 +3828,7 @@ bibliography style]
{\iffieldundef{doi}%
{}%
{\printfield{doi}%
- \setunit*{\addperiod\addspace}\newblock%
+ \setunit*{\newunitpunct}\newblock%
\clearfield{url}}}%
{\ifboolexpr{%
togl {cms@doi}%
@@ -3683,7 +3836,7 @@ bibliography style]
not test {\iffieldundef{doi}}%
}%
{\printfield{doi}%
- \setunit*{\addperiod\addspace}\newblock}%
+ \setunit*{\newunitpunct}\newblock}%
{}}%
\ifboolexpr{%
togl {cms@eprint}%
@@ -3691,7 +3844,7 @@ bibliography style]
not test {\iffieldundef{eprint}}%
}%
{\usebibmacro{eprint}%
- \setunit*{\addperiod\addspace}\newblock}%
+ \setunit*{\newunitpunct}\newblock}%
{}%
\ifboolexpr{%
togl {cms@url}%
@@ -4709,7 +4862,7 @@ bibliography style]
{\printfield{volume}}% Still print this w/o part or pages???
{\ifthenelse{\iffieldnums{pages}%
\AND\iffieldundef{bookpagination}\AND\iffieldnums{volume}}%
- {\printfield[default]{volume}%
+ {\printfield[shortvol]{volume}%
\postvolpunct%
\printfield{pages}}%
{\printfield{volume}%
@@ -4781,7 +4934,7 @@ bibliography style]
{\iffieldundef{part}%
{\ifthenelse{\iffieldnums{pages}%
\AND\iffieldundef{bookpagination}\AND\iffieldnums{volume}}%
- {\newcunit\printfield[default]{volume}%
+ {\newcunit\printfield[shortvol]{volume}%
\postvolpunct%
\printfield{pages}}%
{\newcunit\printfield{volume}%
@@ -4821,6 +4974,8 @@ bibliography style]
{}%
{\printfield{volumes}}}}
+\def\cms@ofwrap#1{#1}
+
\newbibmacro*{mtitle+mstitle+vol+part+title+stitle}{%
\iffieldundef{maintitle}%
{}%
@@ -4837,10 +4992,10 @@ bibliography style]
{\printfield{volume}%
\printfield{part}%
\setunit{\addspace}%
- \bibstring{ofseries}%
- \setunit{\addspace}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
\printtext{%
- \printfield{maintitle}%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
\printfield[mainsubtitle]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
@@ -4878,17 +5033,17 @@ bibliography style]
{\printfield{volume}%
\printfield{part}%
\setunit{\addspace}%
- \bibstring{ofseries}%
- \setunit{\addspace}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
\printtext{%
- \printfield{maintitle}%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
\printfield[mainsubtitle]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}}%
\newbibmacro*{cjournal+ser+vol+num}[1]{% Moved to bbx
- \usebibmacro{journal+sub}%
+ \usebibmacro{journal+sub}{in}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\setunit*{\addspace}%
@@ -4930,7 +5085,7 @@ bibliography style]
{\ifthenelse{\iffieldundef{bookpagination}\AND%
\iffieldundef{eid}\AND\NOT\iffieldundef{volume}}%
{\setunit{\postvolpunct}}%
- {\setunit{\addcolon\addspace}}}% This may not be universally correct.
+ {\setunit{\journalpagespunct}}}% This may not be universally correct.
{\printtext[parens]{% Perhaps if it's wrong use magazine subtype?
\iffieldundef{issue}%
{\usebibmacro{date}%
@@ -4938,7 +5093,7 @@ bibliography style]
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
- \setunit{\addcolon\addspace}}%
+ \setunit{\journalpagespunct}}%
\usebibmacro{eid+or+pages}}%
\newbibmacro*{periodical+issue+year+pages}[1]{%
@@ -4957,7 +5112,7 @@ bibliography style]
{\ifthenelse{\iffieldundef{bookpagination}\AND%
\iffieldundef{eid}\AND\NOT\iffieldundef{volume}}%
{\setunit{\postvolpunct}}%
- {\setunit{\addcolon\addspace}}}%
+ {\setunit{\journalpagespunct}}}%
{\printtext[parens]{%
\iffieldundef{issue}%
{\usebibmacro{date}%
@@ -4965,7 +5120,7 @@ bibliography style]
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
- \setunit{\addcolon\addspace}}%
+ \setunit{\journalpagespunct}}%
\usebibmacro{eid+or+pages}}%
\newbibmacro*{eid+or+pages}{%
@@ -5124,6 +5279,8 @@ bibliography style]
%%%% Related functionality from standard.bbx %%%%
+\providecommand*{\mkrelatedstringtext}[1]{{{\mainlang #1}}}
+
\newcounter{bbx:relatedcount}
\newcounter{bbx:relatedtotal}
@@ -5134,13 +5291,27 @@ bibliography style]
{\let\cms@related@hash\bbx@lasthash}{}}%
\newbibmacro*{endrelated}{\ifcsdef{cms@related@hash}%
{\global\let\bbx@lasthash\cms@related@hash%
- \let\cms@related@hash\undefined}{}}%
+ \let\cms@related@hash\undefined}{}\global\undef\cbx@lasthash}%
\newbibmacro*{begrelatedloop}{}
\newbibmacro*{endrelatedloop}{}
+\renewcommand*{\begrelateddelim}{%
+ \ifthenelse{\ifentrytype{jurisdiction}\OR\ifentrytype{legal}\OR%
+ \ifentrytype{legislation}}%
+ {\newcunitpunct}%
+ {\newunitpunct}}%
+
\newcommand*{\begrelateddelimmaintitle}{\newunitpunct\par\nobreak}%
\newcommand*{\begrelateddelimmaintitlenc}{\newunitpunct\par\nobreak}%
+% The idea here is to support standard multicite presentation via the
+% 'short' relatedtype mechanism.
+
+\newcommand*{\relateddelimshort}{%
+ \iffieldequals{fullhash}{\cbx@lasthash}%
+ {\ifbool{cms:atcite}{\addsemicolon\addspace}{\addcomma\addspace}}%
+ {\addsemicolon\addspace}}%
+
\def\ifrelatedloop{%
\ifboolexpr{ test {\xifinlistcs{\strfield{entrykey}}{bbx:relatedloop}}%
or test {\xifinlistcs{\strfield{clonesourcekey}}{bbx:relatedloop}} }}%
@@ -5197,14 +5368,14 @@ bibliography style]
test {\ifbibxstring{\thefield{relatedtype}s}}%
}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}s}}}%
{\iffieldbibstring{relatedtype}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}}}}%
{}}}%
{\iffieldbibstring{relatedstring}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedstring}}}}%
{\printfield[\bbx@tempb]{relatedstring}}}%
\docsvfield{related}%
\usebibmacro{endrelatedloop}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx
index 1e37ea0ecc..b3d9453eef 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate.cbx
@@ -3,7 +3,7 @@
% intention of providing inline citations (and a reference list) for
% the author-date style of the Chicago Manual of Style, 17th edition.
-\ProvidesFile{chicago-authordate.cbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-authordate.cbx}[2021/03/27 v 3.16 biblatex
citation style]
\RequireCitationStyle{chicago-dates-common}
@@ -194,8 +194,10 @@ citation style]
{}%
\printtext[issuetitle]{%
\printfield[itnoformat]{issuetitle}%
- \setunit{\subtitlepunct}%
- \printfield[sitnoformat]{issuesubtitle}}}}
+ \iftoggle{cms@origpublished}% Complications due to \smartof
+ {}%
+ {\setunit{\subtitlepunct}%
+ \printfield[sitnoformat]{issuesubtitle}}}}}
%%%% Related macros that can't reside in common.cbx %%%%
@@ -220,93 +222,71 @@ citation style]
\DeclareFieldFormat{title:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{#1}}
+\DeclareFieldFormat{title:hook:alt}{%
+ \iftoggle{cms@reprintmt}%
+ {\begingroup
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
+ \endgroup}%
+ {\lbx@inittitlehook{#1}}% Inside entries don't use main doc. lang.
+ \mkbibemph{#1}}
+
\DeclareFieldFormat{ititle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
- \mkbibquote{#1}}
+ \iffieldundef{issuesubtitle}%
+ {\mkbibquote{#1}}%
+ {\mkbibquote{#1\subtitlepunct\printfield{issuesubtitle}}}}
\DeclareFieldFormat{chapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1\addspace\bibstring{in}}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1\addspace\bibstring{in}}
+ \endgroup}
\DeclareFieldFormat{avchapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1}
+ \endgroup}
\DeclareFieldFormat{muschapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{track}}%
- \endgroup
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{track}}%
\bibstring{track}~#1}%
+ \endgroup}
+
+\DeclareFieldFormat{volume:hook}{%
+ \begingroup
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{volume}}%
+ \bibstring{volume}~#1}%
+ \endgroup}%
+
+\DeclareFieldFormat{parttoo:hook}{%
+ \ifnumerals{#1}%
+ {\addcomma\addspace\bibstring[\mkrelatedstringtext]{partvolume}~#1}%
+ {\addcomma\addspace\ifcapital{\MakeCapital{#1}}{#1}}}
+
+\DeclareFieldFormat{part:hook}{%
+ \begingroup
+ \ifnumerals{#1}%
+ {\mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{partvolume}}%
+ \bibstring{partvolume}~#1}}%
+ {\mkrelatedstringtext{\lbx@inittitlehook{#1}}%
+ \ifcapital{\MakeCapital{#1}}{#1}}%
+ \endgroup}
\DeclareFieldFormat{sitnoformat}{#1}
\DeclareFieldFormat{sjtnoformat}{#1}
@@ -327,11 +307,23 @@ citation style]
{\iffieldundef{journaltitle}% Switch order for 17th ed.
{\iffieldundef{maintitle}%
{}%
- {\DeclareFieldAlias{maintitle}{title:hook}}}%
+ {\toggletrue{cms@reprintmt}%
+ \ifthenelse{\(\iffieldundef{volume}\AND\iffieldundef{part}\)%
+ \OR\ifentrytype{inbook}\OR\ifentrytype{incollection}\OR%
+ \ifentrytype{inproceedings}\OR\ifentrytype{letter}}%
+ {\DeclareFieldAlias{maintitle}{title:hook}}%
+ {\iffieldundef{volume}%
+ {\DeclareFieldAlias{part}{part:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}%
+ {\DeclareFieldAlias{volume}{volume:hook}%
+ \DeclareFieldAlias{part}{parttoo:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}}}}%
{\DeclareFieldAlias{jtnoformat}{title:hook}%
\DeclareFieldAlias{sjtnoformat}{title}%
\DeclareFieldAlias{journaltitle}{default}%
+ \DeclareFieldAlias{injournaltitle}{default}%
\DeclareFieldAlias{shortjournal}{series}%
+ \DeclareFieldAlias{inshortjournal}{series}%
\DeclareFieldAlias{jtsnoformat}{title:hook}}}%
{\DeclareFieldAlias{booktitle}{title:hook}}}%
{\DeclareFieldAlias{tnoformat}{title:hook}%
@@ -341,16 +333,16 @@ citation style]
\DeclareFieldAlias[music]{title}{default}%
\DeclareFieldAlias{title}{default}%
\DeclareFieldAlias[periodical]{shorttitle}{series}}}%
- {\iffieldundef{issuesubtitle}%
- {\DeclareFieldAlias{itnoformat}{ititle:hook}%
- \DeclareFieldAlias{issuetitle}{default}}%
- {\DeclareFieldAlias{issuetitle}{ititle:hook}}}}%
+ {\DeclareFieldAlias{itnoformat}{ititle:hook}%
+ \DeclareFieldAlias{issuetitle}{default}}}%
{\ifthenelse{\ifentrytype{audio}\OR\ifentrytype{music}\OR%
\ifentrytype{video}}%
{\iffieldundef{title}%
{\ifentrytype{music}%
- {\DeclareFieldAlias[music]{chapter}{muschapter:hook}}%
- {\DeclareFieldAlias{chapter}{avchapter:hook}}}%
+ {\DeclareFieldAlias[music]{chapter}{muschapter:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}%
+ {\DeclareFieldAlias{chapter}{avchapter:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}}%
{\DeclareFieldAlias{tnoformat}{title:hook}%
\DeclareFieldAlias{stnoformat}{citetitle}%
\DeclareFieldAlias[video]{title}{default}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx
index e0bde354e9..02081d0257 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.bbx
@@ -2,7 +2,7 @@
% standard.bbx and from chicago-notes.bbx. It provides the
% reference list formatting for the Chicago author-date style.
-\ProvidesFile{chicago-authordate16.bbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-authordate16.bbx}[2021/03/27 v 3.16 biblatex
bibliography style]
%%%% Initialize and format bibliography and los %%%%
@@ -4579,6 +4579,8 @@ bibliography style]
%%%% Related functionality from standard.bbx %%%%
+\providecommand*{\mkrelatedstringtext}[1]{{{\mainlang #1}}}
+
\newcounter{bbx:relatedcount}
\newcounter{bbx:relatedtotal}
@@ -4652,14 +4654,14 @@ bibliography style]
test {\ifbibxstring{\thefield{relatedtype}s}}%
}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}s}}}%
{\iffieldbibstring{relatedtype}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}}}}%
{}}}%
{\iffieldbibstring{relatedstring}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedstring}}}}%
{\printfield[\bbx@tempb]{relatedstring}}}%
\docsvfield{related}%
\usebibmacro{endrelatedloop}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx
index 725a201aec..fff90b8a0e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-authordate16.cbx
@@ -3,7 +3,7 @@
% providing inline citations (and a reference list) for the
% author-date style of the Chicago Manual of Style, 16th edition.
-\ProvidesFile{chicago-authordate16.cbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-authordate16.cbx}[2021/03/27 v 3.16 biblatex
citation style]
\RequireCitationStyle{chicago-dates-common16}
@@ -177,8 +177,10 @@ citation style]
{}%
\printtext[issuetitle]{%
\printfield[itnoformat]{issuetitle}%
- \setunit{\subtitlepunct}%
- \printfield[sitnoformat]{issuesubtitle}}}}
+ \iftoggle{cms@origpublished}% Complications due to \smartof
+ {}%
+ {\setunit{\subtitlepunct}%
+ \printfield[sitnoformat]{issuesubtitle}}}}}
%%%% Related macros that can't reside in common.cbx %%%%
@@ -203,75 +205,33 @@ citation style]
\DeclareFieldFormat{title:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{#1}}
\DeclareFieldFormat{ititle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
- \mkbibquote{#1}}
+ \iffieldundef{issuesubtitle}%
+ {\mkbibquote{#1}}%
+ {\mkbibquote{#1\subtitlepunct\printfield{issuesubtitle}}}}
\DeclareFieldFormat{chapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1\addspace\bibstring{in}}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1\addspace\bibstring{in}}
+ \endgroup}
\DeclareFieldFormat{avchapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1}
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibstring{chapter}}%
+ \bibstring{chapter}~#1}
+ \endgroup}
\DeclareFieldFormat{sitnoformat}{#1}
\DeclareFieldFormat{sjtnoformat}{#1}
@@ -306,10 +266,8 @@ citation style]
\DeclareFieldAlias[music]{title}{default}%
\DeclareFieldAlias{title}{default}%
\DeclareFieldAlias[periodical]{shorttitle}{series}}}%
- {\iffieldundef{issuesubtitle}%
- {\DeclareFieldAlias{itnoformat}{ititle:hook}%
- \DeclareFieldAlias{issuetitle}{default}}%
- {\DeclareFieldAlias{issuetitle}{ititle:hook}}}}%
+ {\DeclareFieldAlias{itnoformat}{ititle:hook}%
+ \DeclareFieldAlias{issuetitle}{default}}}%
{\ifthenelse{\ifentrytype{audio}\OR\ifentrytype{music}\OR%
\ifentrytype{video}}%
{\iffieldundef{title}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx
index 902b41fa64..7a410eba8a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common.cbx
@@ -4,7 +4,7 @@
% list) for the two author-date styles of the Chicago Manual of Style,
% 17th edition.
-\ProvidesFile{chicago-dates-common.cbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-dates-common.cbx}[2021/03/27 v 3.16 biblatex
citation style]
%%%% Biblatex initialization + Chicago options + Toggles %%%%
@@ -13,6 +13,8 @@ citation style]
\newbool{cms:bracket}
\newbool{cms:extraparens}
\newbool{cms:comma}
+\newbool{cms:atcite}
+\newbool{cms:tcit}
\providecommand*{\mkibid}[1]{#1}
@@ -58,9 +60,12 @@ citation style]
\providetoggle{cms@headlessnote}% Keep
\providetoggle{cms@noibid}% Keep
\providetoggle{cms@namedash}
+\providetoggle{cms@nona}
+\providetoggle{cms@subseqnona}
\providetoggle{cms@usecompiler}% Keep
\providetoggle{cms@origpublished}% Keep
\providetoggle{cms@annotation}% Keep
+\providetoggle{cms@cbxannote}
\providetoggle{cms@postposit}% Keep
\providetoggle{cms@fullshhand}%
\providetoggle{cms@allshort}% For legal types
@@ -77,6 +82,7 @@ citation style]
\providetoggle{cms@related}
\providetoggle{cms@linkit}
\providetoggle{cms@authortitle}
+\providetoggle{cms@shortrelated}
\AtEveryCitekey{%
\iffieldundef{userc}%
@@ -180,10 +186,133 @@ citation style]
\DeclareBiblatexOption{global,entry}[boolean]{hypertitle}[true]{%
\settoggle{cms@linkit}{#1}}%
-\DeclareBibliographyOption[boolean]{annotation}[true]{%
- \global\settoggle{cms@annotation}{#1}}%
-
-\DeclareBibliographyOption[boolean]{dashed}[true]{%
+\DeclareBiblatexOption{global,type,entry}[string]{annotation}[true]{%
+ \ifcsdef{cms@opt@annot@#1}%
+ {\csuse{cms@opt@annot@#1}}%
+ {\blx@err@invopt{annotation=#1}{}}}%
+\def\cms@opt@annot@true{%
+ \toggletrue{cms@annotation}%
+ \togglefalse{cms@cbxannote}}
+\def\cms@opt@annot@false{%
+ \togglefalse{cms@annotation}%
+ \togglefalse{cms@cbxannote}}
+\def\cms@opt@annot@notes{%
+ \togglefalse{cms@annotation}%
+ \toggletrue{cms@cbxannote}}
+\def\cms@opt@annot@bib{%
+ \toggletrue{cms@annotation}%
+ \togglefalse{cms@cbxannote}}
+\def\cms@opt@annot@all{%
+ \toggletrue{cms@annotation}%
+ \toggletrue{cms@cbxannote}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{bibannotesep}[vpar]{%
+ \ifcsdef{cms@opt@bannsep@#1}%
+ {\csuse{cms@opt@bannsep@#1}}%
+ {\blx@err@invopt{bibannotesep=#1}{}}}
+\def\cms@opt@bannsep@none{%
+ \let\bibannotesep\@empty}%
+\def\cms@opt@bannsep@comma{%
+ \def\bibannotesep{\addcomma\addspace}}%
+\def\cms@opt@bannsep@colon{%
+ \def\bibannotesep{\addcolon\addspace}}%
+\def\cms@opt@bannsep@space{%
+ \def\bibannotesep{\addspace}}%
+\def\cms@opt@bannsep@semicolon{%
+ \def\bibannotesep{\addsemicolon\addspace}}%
+\def\cms@opt@bannsep@period{%
+ \def\bibannotesep{\addperiod\addspace}}%
+\def\cms@opt@bannsep@par{%
+ \def\bibannotesep{\addperiod\par\nobreak}}%
+\def\cms@opt@bannsep@vpar{%
+ \def\bibannotesep{\addperiod\par\nobreak \vskip \bibitemsep}}%
+\def\cms@opt@bannsep@parbreak{%
+ \def\bibannotesep{\addperiod\par}}%
+\def\cms@opt@bannsep@vparbreak{%
+ \def\bibannotesep{\addperiod\par \vskip \bibitemsep}}%
+
+\DeclareBiblatexOption{global,type,entry}[string]{citeannotesep}[period]{%
+ \ifcsdef{cms@opt@cannsep@#1}%
+ {\csuse{cms@opt@cannsep@#1}}%
+ {\blx@err@invopt{citeannotesep=#1}{}}}
+\def\cms@opt@cannsep@none{%
+ \let\citeannotesep\@empty}%
+\def\cms@opt@cannsep@comma{%
+ \def\citeannotesep{\addcomma\addspace}}%
+\def\cms@opt@cannsep@colon{%
+ \def\citeannotesep{\addcolon\addspace}}%
+\def\cms@opt@cannsep@space{%
+ \def\citeannotesep{\addspace}}%
+\def\cms@opt@cannsep@semicolon{%
+ \def\citeannotesep{\addsemicolon\addspace}}%
+\def\cms@opt@cannsep@period{%
+ \def\citeannotesep{\addperiod\addspace}}%
+\def\cms@opt@cannsep@par{%
+ \def\citeannotesep{\addperiod\par\nobreak}}%
+\def\cms@opt@cannsep@vpar{%
+ \def\citeannotesep{\addperiod\par\nobreak \vskip\p@}}%
+\def\cms@opt@cannsep@parbreak{%
+ \def\citeannotesep{\addperiod\par}}%
+\def\cms@opt@cannsep@vparbreak{%
+ \def\citeannotesep{\addperiod\par \vskip\p@}}%
+
+\DeclareBiblatexOption{global}[string]{formatbib}[max]{%
+ \ifcsdef{cms@opt@formatbib@#1}%
+ {\csuse{cms@opt@formatbib@#1}}%
+ {\blx@err@invopt{formatbib=#1}{}}}%
+\def\cms@opt@formatbib@max{}%
+\def\cms@opt@formatbib@min{%
+ \renewcommand*{\bibsetup}{%
+ \interlinepenalty=0\relax
+ \widowpenalty=0\relax
+ \@clubpenalty=0\relax
+ \clubpenalty=0\relax
+ \brokenpenalty=0\relax
+ \raggedbottom
+ \frenchspacing
+ \biburlsetup}}%
+\def\cms@opt@formatbib@minwo{%
+ \patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalty=0\relax}{}{}}%
+\def\cms@opt@formatbib@annote{%
+ \patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalty=0\relax}{}{}%
+ \AtEveryBibitem{%
+ \interlinepenalty=5000\relax}}%
+\def\cms@opt@formatbib@annotenp{%
+ \AtEndPreamble{%
+ \ifdefvoid{\cms@entrybreak}%
+ {\patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalties\cmspens{3}\relax}{}{}}%
+ {\patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalties\cmspens{\cms@entrybreak}\relax}{}{}}}}%
+
+\DeclareBiblatexOption{global}[integer]{entrybreak}[3]{%
+ \IfInteger{#1}%
+ {\numdef\cms@entrybreak{#1}}%
+ {\numdef\cms@entrybreak{3}\cms@warning@noline%
+ {'entrybreak=#1' isn't a valid option.\MessageBreak
+ This option only accepts integers.\MessageBreak
+ It has been set to the default '3'.\MessageBreak
+ Please see biblatex-chicago.pdf for\MessageBreak
+ more information}}}
+
+\def\cmspens@i#1{\space
+ \ifnum#1>\@ne\number5000
+ \expandafter\cmspens@i
+ \expandafter{\number\numexpr#1-\@ne\expandafter}%
+ \else
+ \ifnum#1>\z@\number10
+ \else\unspace
+ \fi\fi}
+
+\def\cmspens#1{\space #1\cmspens@i{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[boolean]{dashed}[true]{%
\settoggle{cms@namedash}{#1}}
\DeclareBibliographyOption[boolean]{short}[true]{%
@@ -210,13 +339,8 @@ citation style]
\DeclareBibliographyOption[boolean]{compressyears}[true]{%
\global\settoggle{cms@compyears}{#1}}%
-\DeclareBibliographyOption[string]{postnotepunct}[true]{%
- \ifcsdef{cms@opt@ppunct@#1}%
- {\csuse{cms@opt@ppunct@#1}}%
- {\blx@err@invopt{postnotepunct=#1}{}}}%
-\def\cms@opt@ppunct@true{%
- \global\toggletrue{cms@modpostnote}}%
-\def\cms@opt@ppunct@false{}%
+\DeclareBibliographyOption[boolean]{postnotepunct}[true]{%
+ \global\settoggle{cms@modpostnote}{#1}}%
\DeclareBiblatexOption{global,entry}[boolean]{usecompiler}[true]{%
\settoggle{blx@usenamec}{#1}}%
@@ -292,6 +416,32 @@ citation style]
\DeclareBibliographyOption[boolean]{ordinalgb}[true]{%
\settoggle{cms@ukord}{#1}}%
+% Controlling formatting of, and punctuation before, nameaddon fields %
+
+\DeclareBiblatexOption{global,type,entry}[string]{nameaddonformat}{%
+ \def\cms@naformat{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{nameaddonsep}[space]{%
+ \ifcsdef{cms@opt@nasep@#1}%
+ {\csuse{cms@opt@nasep@#1}}%
+ {\csuse{cms@opt@nasep@space}\cms@warning@noline%
+ {'nameaddonsep=#1' is not a valid option.\MessageBreak
+ The default - 'space' - has been set.\MessageBreak
+ Please see biblatex-chicago.pdf for valid\MessageBreak
+ option keys}}}%
+\def\cms@opt@nasep@none{%
+ \let\nameaddonpunct\@empty}%
+\def\cms@opt@nasep@comma{%
+ \def\nameaddonpunct{\addcomma\addspace}}%
+\def\cms@opt@nasep@colon{%
+ \def\nameaddonpunct{\addcolon\addspace}}%
+\def\cms@opt@nasep@space{%
+ \def\nameaddonpunct{\addspace}}%
+\def\cms@opt@nasep@semicolon{%
+ \def\nameaddonpunct{\addsemicolon\addspace}}%
+\def\cms@opt@nasep@period{%
+ \def\nameaddonpunct{\addperiod\addspace}}%
+
% Controlling punctuation before titleaddon fields %
\DeclareBiblatexOption{global,type,entry}[string]{ptitleaddon}[period]{%
@@ -313,7 +463,7 @@ citation style]
\def\cms@opt@ptao@semicolon{%
\def\ptitleaddonpunct{\addsemicolon\addspace}}%
\def\cms@opt@ptao@period{%
- \def\ptitleaddonpunct{\addperiod\addspace}}%
+ \def\ptitleaddonpunct{\newunitpunct}}%
\DeclareBiblatexOption{global,type,entry}[string]{ctitleaddon}[comma]{%
\ifcsdef{cms@opt@ctao@#1}%
@@ -334,7 +484,7 @@ citation style]
\def\cms@opt@ctao@semicolon{%
\def\ctitleaddonpunct{\addsemicolon\addspace}}%
\def\cms@opt@ctao@period{%
- \def\ctitleaddonpunct{\addperiod\addspace}}%
+ \def\ctitleaddonpunct{\newunitpunct}}%
% The field-exclusion options %
@@ -372,12 +522,29 @@ citation style]
\DeclareBiblatexOption{global,type,entry}[boolean]{hidevolumes}[true]{%
\settoggle{cms@hidevolumes}{#1}}%
+\DeclareBiblatexOption{global,type,entry}[string]{nameaddon}[all]{%
+ \ifcsdef{cms@gopt@na@#1}%
+ {\csuse{cms@gopt@na@#1}}%
+ {\csuse{cms@gopt@na@all}\cms@warning@noline%
+ {'nameaddon=#1' is not a valid option.\MessageBreak
+ The default - 'all' - has been set.\MessageBreak
+ Please see biblatex-chicago.pdf for valid\MessageBreak
+ option keys}}}%
+\def\cms@gopt@na@all{}%
+\def\cms@gopt@na@none{%
+ \settoggle{cms@nona}{true}}%
+\def\cms@gopt@na@cite{\settoggle{cms@nona}{true}}%
+\def\cms@gopt@na@bib{}%
+\def\cms@gopt@na@first{\settoggle{cms@subseqnona}{true}}%
+\def\cms@gopt@na@citefirst{\settoggle{cms@nona}{true}}%
+\def\cms@gopt@na@bibfirst{\settoggle{cms@subseqnona}{true}}%
+
\DeclareBiblatexOption{type,entry}[boolean]{authortitle}[true]{%
\settoggle{cms@authortitle}{#1}}%
\ExecuteBibliographyOptions{includeall,hidevolumes,booklongxref,related,%
ctitleaddon,ptitleaddon,journalabbrev=notes,legalnotes,supranotes,%
- dashed}%
+ dashed,bibannotesep,citeannotesep,nameaddonsep=space}%
\ExecuteBibliographyOptions[standard]{useeditor=false,usenamec=false}%
\ExecuteBibliographyOptions[dataset]{authortitle=true}%
@@ -393,6 +560,22 @@ citation style]
\map{
\step[fieldsource=shorthand, final]
\step[fieldset=sortname, origfieldval]}}}}%
+ {}%
+ \iftoggle{cms@strict}%
+ {\let\splitfootnoterule\footnoterule
+ \renewcommand\footnoterule{}%
+ \advance\skip\footins 4\p@\@plus2\p@\relax
+ \gdef\split@prev{0}%
+ \let\pagefootnoterule\footnoterule
+ % \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
+ \def\footnoterule{\relax
+ \ifnum\split@prev=\z@
+ \pagefootnoterule
+ \else
+ \splitfootnoterule
+ \fi
+ \xdef\split@prev{\the\insertpenalties}%
+ }}%
{}}
\DeclareLabeltitle[legislation]{%
@@ -559,23 +742,7 @@ citation style]
\settoggle{cms@switchdates}{#1}}%
\DeclareBibliographyOption[boolean]{strict}[true]{%
- \settoggle{cms@strict}{#1}%
- \iftoggle{cms@strict}%
- {\let\splitfootnoterule\footnoterule
- \renewcommand\footnoterule{}%
- \advance\skip\footins 4\p@\@plus2\p@\relax
- \gdef\split@prev{0}%
- \let\pagefootnoterule\footnoterule
- % \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
- \def\footnoterule{\relax
- \ifnum\split@prev=\z@
- \pagefootnoterule
- \else
- \splitfootnoterule
- \fi
- \xdef\split@prev{\the\insertpenalties}%
- }}%
- {}}%
+ \settoggle{cms@strict}{#1}}%
\protected\def\blx@newcunit{%
\iftoggle{blx@keepunit}%
@@ -670,7 +837,11 @@ citation style]
\usebibmacro{cmscitesortdate}%
\usebibmacro{cite:reinit}}%
{\iffieldequals{fullhash}{\cbx@lasthash}%
- {\iffieldundef{postnote}%
+ {\ifboolexpr{%
+ test {\iffieldundef{postnote}}%
+ and
+ not bool {cms:atcite}%
+ }%
{\setunit{\compcitedelim}}%
{}%
\usebibmacro{cmscitesortdate}}%
@@ -683,7 +854,8 @@ citation style]
{\savefield{fullhash}{\cbx@lasthash}}%
{\savefield{fullhash}{\cbx@lastyear}}}}}%
{\usebibmacro{cite:shorthand}}}}%
- \setunit{\multicitedelim}}% ???
+ \ifnumless{\value{citecount}}{\value{citetotal}}%
+ {\setunit{\multicitedelim}}{}}% ???
\newbibmacro*{cmsbracketname}{%
\iffieldequalstr{authortype}{anon}%
@@ -720,7 +892,7 @@ citation style]
}% Altered for CMS
{\iffieldequals{fullhash}{\cbx@lasthash}%
{\iffieldundef{postnote}%
- {\setunit{\compcitedelim}}%
+ {\setunit{\multicitedelim}}%
{}%
\usebibmacro{cite:label}}%
{\usebibmacro{cite:label}%
@@ -728,7 +900,11 @@ citation style]
{\savefield{fullhash}{\cbx@lasthash}}%
{}}}%
{\iffieldequals{fullhash}{\cbx@lasthash}%
- {\iffieldundef{postnote}%
+ {\ifboolexpr{%
+ test {\iffieldundef{postnote}}%
+ and
+ not bool {cms:atcite}%
+ }%
{\setunit{\compcitedelim}}%
{}%
\usebibmacro{cmscitesortdate}}%
@@ -752,6 +928,8 @@ citation style]
togl {cms@authortitle}%
or
test {\iffieldequalstr{entrysubtype}{classical}}%
+ or
+ bool {cms:atcite}%
}%
{\setunit{\multicitedelim}}%
{\setunit{\compcitedelim}}}}%
@@ -883,6 +1061,8 @@ citation style]
togl {cms@authortitle}%
or
test {\iffieldequalstr{entrysubtype}{classical}}%
+ or
+ bool {cms:atcite}%
}%
{\setunit{\multicitedelim}}%
{\setunit{\compcitedelim}}}}%
@@ -898,7 +1078,9 @@ citation style]
{\iffieldequals{fullhash}{\cbx@lastyear}%
{\setunit{\multicitedelim}%
\global\undef\cbx@lastyear}%
- {\setunit{\compcitedelim}}}%
+ {\ifbool{cms:atcite}%
+ {\setunit{\multicitedelim}}%
+ {\setunit{\compcitedelim}}}}%
{\setunit{\multicitedelim}}%
\printtext[bibhyperref]{%
\printfield{shorthand}}}}%
@@ -992,7 +1174,7 @@ citation style]
\iffieldundef{postnote}%
{}%
{\savefield{fullhash}{\cbx@lastyear}%
- \setunit{\postnotewrapper}%delim}%
+ \postnotewrapper%\setunit{\postnotewrapper}
\printfield{postnote}}%
\ifthenelse{\value{multicitecount}=\value{multicitetotal}}%
{\setunit{}%
@@ -1010,7 +1192,9 @@ citation style]
\iftoggle{cms@los}%
{\iffieldequals{fullhash}{\cbx@lasthash}%
{\printtext[cmshyper]{%
- \setunit{\compcitedelim}%
+ \ifbool{cms:atcite}%
+ {\setunit{\multicitedelim}}%
+ {\setunit{\compcitedelim}}%
\usebibmacro{cmscitesortdate}}}%
{\printfield{shorthand}%
\printtext[cmshyper]{%
@@ -1081,7 +1265,8 @@ citation style]
\printfield{booktitleaddon}%
\iffieldundef{booktitleaddon}{}{\addcomma\addspace}}}%
{\printtext[cmshyper]{\printfield[citetitle]{labeltitle}}}}}}%
- {\printtext[cmshyper]{\printfield{label}}}}%
+ {\printtext[cmshyper]{\printfield{label}}}%
+ \global\booltrue{cms:atcite}}%
\newbibmacro*{cite:labelyear+extrayear}{%
\ifboolexpr{ (
@@ -1217,7 +1402,8 @@ citation style]
{\toggletrue{cms@switchdates}%
\usebibmacro{cmsciteyear}}%
{\usebibmacro{cmsciteyear}}}}%
- {\usebibmacro{cmsciteyear}}}}%
+ {\usebibmacro{cmsciteyear}}}%
+ \global\boolfalse{cms:atcite}}%
\newbibmacro*{cmsciteyear}{%
\ifentrytype{patent}% Fix for double year w/cmsdate
@@ -1228,7 +1414,13 @@ citation style]
{\usebibmacro{cite:bothyear+oldstyle}}%
{\iftoggle{cms@bothlabelold}%
{\usebibmacro{cite:bothyear+oldstyle}}%
- {\iftoggle{cms@fulldate}%
+ {\ifboolexpr{%
+ togl {cms@fulldate}%
+ and
+ not test {\iffieldequalstr{labeldatesource}{year}}%
+ and
+ not test {\iffieldequalstr{labeldatesource}{origyear}}%
+ }%
{\printtext[cmsyearhyper]{%
\csuse{print\strfield{labeldatesource}date}%
\iffieldundef{\strfield{labeldatesource}hour}%
@@ -1383,17 +1575,16 @@ citation style]
{}%
{\usebibmacro{postnote}}
-\DeclareCiteCommand{\cmshypercite}% Intended for CustomC comments
+\DeclareCiteCommand{\atcite}
{\usebibmacro{cite:init}%
- \togglefalse{blx@skipbib}%
- \togglefalse{cms@authortitle}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
+ \toggletrue{cms@authortitle}%
\usebibmacro{cite}}
{}%\multicitedelim
- {}%\usebibmacro{postnote} Stops double printing
+ {\usebibmacro{postnote}}
-\DeclareCiteCommand{\atcite}
+\DeclareCiteCommand{\atpcite}[\mkbibparens]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
@@ -1402,14 +1593,77 @@ citation style]
{}%\multicitedelim
{\usebibmacro{postnote}}
-\DeclareCiteCommand{\atpcite}[\mkbibparens]
+\DeclareCiteCommand{\citeincite}[\cmswrap]% Used in fields of other entries
{\usebibmacro{cite:init}%
+ \usebibmacro{backref+check}%
+ \togglefalse{blx@skipbib}%
+ \togglefalse{cms@authortitle}%
+ \togglefalse{cms@fulldate}%
+ \usebibmacro{prenote}}%
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}%\multicitedelim
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeincitef}[\cmswrapf]%
+ {\usebibmacro{cite:init}%
+ \usebibmacro{backref+check}%
+ \togglefalse{blx@skipbib}%
+ \togglefalse{cms@authortitle}%
+ \togglefalse{cms@fulldate}%
+ \usebibmacro{prenote}}%
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}%\multicitedelim
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\cmshypercite}[\cmswraphy]% For CustomC comments
+ {\usebibmacro{cite:init}%
+ \usebibmacro{backref+check}%
+ \togglefalse{blx@skipbib}%
+ \togglefalse{cms@authortitle}%
+ \togglefalse{cms@fulldate}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
- \toggletrue{cms@authortitle}%
\usebibmacro{cite}}
{}%\multicitedelim
- {\usebibmacro{postnote}}
+ {}%\usebibmacro{postnote} Stops double printing
+
+\DeclareCiteCommand{\fullciteincite}% For use in annotation fields
+ {\usebibmacro{prenote}}%
+ {\usebibmacro{citeindex}%
+ \toggletrue{cms@fullnote}%
+ \togglefalse{cms@shortnote}%
+ \usebibmacro{cite:driver}%
+ \usebibmacro{footcite:save}%
+ \usebibmacro{cite:save}}
+ {\multicitedelim}
+ {}
+
+\def\cmswrap#1{%
+ \ifbool{cbx:parens}{\global\booltrue{cms:tcit}}{}% For \textcites
+ \blx@initunit#1%
+ \ifdef{\blx@thepostpunct}%
+ {\ifdefvoid{\abx@field@postpunct}%
+ {\blx@dopostpunct}{}}%
+ {}%
+ \global\let\abx@field@postpunct\@empty%
+ \ifbool{cms:tcit}{\global\booltrue{cbx:parens}\global\boolfalse{cms:tcit}}%
+ {}}
+
+\def\cmswrapf#1{%
+ \ifbool{cbx:parens}{\global\booltrue{cms:tcit}}{}% For \textcites
+ \blx@initunit#1\ifdef{\blx@thepostpunct}{\cms@cicpunct}{}%
+ \ifbool{cms:tcit}{\global\booltrue{cbx:parens}\global\boolfalse{cms:tcit}}%
+ {}}
+
+\def\cmswraphy#1{%
+ \ifbool{cbx:parens}{\global\booltrue{cms:tcit}}{}% For \textcites
+ #1%
+ \ifbool{cms:tcit}{\global\booltrue{cbx:parens}\global\boolfalse{cms:tcit}}%
+ {}}
+
+\def\cms@cicpunct{}% Only needed in US; redefine in lbx
%%% Commands, macros and formats for the Legal entry types %%%
@@ -1449,11 +1703,13 @@ citation style]
\DeclareCiteCommand{\runcite}% 17th ed.
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
+ \toggletrue{cms@fullnote}%
+ \togglefalse{cms@shortnote}%
\toggletrue{cms@running@text}%
- \usebibmacro{cite}%
+ \usebibmacro{cite:full}%
\togglefalse{cms@running@text}}
{\multicitedelim}
- {\usebibmacro{cite:postnote}}
+ {}%\usebibmacro{postnote}
\newbibmacro*{cite:full}{%
\iftoggle{cms@noneshort}%
@@ -1588,6 +1844,14 @@ citation style]
and
not test {\iffieldint{volume}}%
)
+ or
+ (
+ test {\iffieldundef{volume}}% Bug fix; correct?
+ and
+ test {\iffieldundef{series}}%
+ and
+ not test {\iffieldundef{titleaddon}}%
+ )
}%
{\ifboolexpr{%
test {\iffieldundef{entrysubtype}}%
@@ -1962,6 +2226,10 @@ citation style]
\DeclareFieldFormat[jurisdiction,legal,legislation]{shortjournal}{#1\isdot}
+\DeclareFieldFormat{injournaltitle}{\mkbibemph{#1}\isdot}
+
+\DeclareFieldFormat{inshortjournal}{\mkbibemph{#1}\isdot}
+
\DeclareFieldFormat{jurisdictionser}{%
\ifinteger{#1}%
{\mkjuridordinal{#1}}%
@@ -1989,6 +2257,8 @@ citation style]
\DeclareFieldFormat{jourvol}{#1}
+\DeclareFieldFormat{shortvol}{#1}
+
\DeclareFieldFormat[jurisdiction,legal,legislation]{addendum}{%
\ifcapital{\mkbibparens{\MakeCapital{#1\isdot}}}{\mkbibparens{#1\isdot}}}
@@ -1997,11 +2267,7 @@ citation style]
{\bibsstring{part}~#1}%
{#1\isdot}}%
-\DeclareFieldFormat[legal,legislation]{chapter}{%
- \ifthenelse{\iffieldequalstr{entrysubtype}{uk}\OR%
- \iffieldequalstr{entrysubtype}{hansard}}%
- {c\adddotspace #1}%
- {\bibsstring{chapter}~#1}}%
+\DeclareFieldFormat[legal,legislation]{chapter}{c\adddotspace #1}%
\DeclareFieldFormat[music]{chapter}{\bibstring{track}~#1}
@@ -2035,7 +2301,9 @@ citation style]
\DeclareFieldAlias[dataset]{citetitle}[dataset]{title}
-\DeclareFieldAlias[dataset]{lostitle}[dataset]{title}
+\DeclareFieldFormat[dataset]{lostitle}{%
+ \addspace% Instead of in shorthand driver (2.1)
+ \mkbibparens{\ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}}
%%% Textcite commands taken verbatim from authoryear-comp.cbx %%%
@@ -2163,6 +2431,21 @@ citation style]
\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext]%
{\footcitetext}{\setunit{\multicitedelim}}
+\DeclareCitePunctuationPosition{\citeincitef}{d}
+
+\DeclareCitePunctuationPosition{\cmshypercite}{d}
+
+\DeclareCitePunctuationPosition{\citeincitefs}{d}
+
+\DeclareMultiCiteCommand{\citeincites}[\cmswrap]{\citeincite}%
+{\setunit{\multicitedelim}}%
+
+\DeclareMultiCiteCommand{\citeincitefs}[\cmswrapf]{\citeincite}%
+{\setunit{\multicitedelim}}%
+
+\DeclareMultiCiteCommand{\fullciteincites}{\fullciteincite}%
+{\setunit{\multicitedelim}}
+
\DeclareCiteCommand{\bibxrefcite}
{\usebibmacro{cite:init}%
\usebibmacro{backref+check}}%\usebibmacro{clearalmostall}} (?)
@@ -2188,13 +2471,7 @@ citation style]
\DeclareCiteCommand{\origpublcite}% Similar to above, w/o title.
{\usebibmacro{backref+check}%
- \nopunct%\unspace%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\addspace}{\unspace}%
+ \nopunct%\unspace% Remove otherlang test for 3.16.
\savebibmacro{cmsbibsortdate}%
\renewbibmacro*{cmsbibsortdate}{}}%
{\usedriver
@@ -2259,27 +2536,27 @@ citation style]
\DeclareFieldFormat{prenote}{\ifcapital{\MakeCapital{#1}}{#1}\isdot}
\DeclareFieldFormat{postnote}{% Changed for page compression option
- \ifboolexpr{%
- togl {cms@comprange}%
- and
- test {\ifpages{#1}}%
- }%
- {\iffieldundef{pagination}%
- {\mkcomprange{#1}}%
- {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}%
+ \ifpages{#1}% xetex and luatex revealed a bug in original logic
+ {\iftoggle{cms@comprange}%
+ {{\iffieldundef{pagination}%
+ {\mkcomprange{#1}}%
+ {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}}%
+ {{\iffieldundef{pagination}%
+ {\mknormrange{#1}}%
+ {\mknormrange[{\mkpageprefix[pagination]}]{#1}}}}}%
{\iffieldundef{pagination}%
{#1}%
{\mkpageprefix[pagination]{#1}}}}%
\DeclareFieldFormat[inreference]{postnote}{%
- \ifboolexpr{%
- togl {cms@comprange}%
- and
- test {\ifpages{#1}}%
- }%
- {\iffieldundef{pagination}%
- {\bibsstring{subverbo}\addnbspace\mkbibquote{#1}}%
- {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}%
+ \ifpages{#1}%
+ {\iftoggle{cms@comprange}%
+ {\iffieldundef{pagination}%
+ {\bibsstring{subverbo}\addnbspace\mkbibquote{#1}}%
+ {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}%
+ {\iffieldundef{pagination}%
+ {\bibsstring{subverbo}\addnbspace\mkbibquote{#1}}%
+ {\mknormrange[{\mkpageprefix[pagination]}]{#1}}}}%
{\iffieldundef{pagination}%
{\bibsstring{subverbo}\addnbspace\mkbibquote{#1}}%
{\mkpageprefix[pagination]{#1}}}}%
@@ -2314,7 +2591,11 @@ citation style]
\usebibmacro{list:andothers}}
\DeclareFieldFormat[customc]{title}{%
- \iffieldundef{nameaddon}%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@nona}%
+ }%
{\mkbibemph{\bibstring{see}}%
\addspace%
#1}%
@@ -2329,13 +2610,26 @@ citation style]
\addspace\cmshypercite{\cms@aa}}%
{\ifnameundef{author}%
{#1}%
- {\iffieldundef{nameaddon}%
+ {\ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@nona}%
+ }%
{\mkbibemph{\bibstring{see}}%
\addspace%
#1}%
{\printfield{nameaddon}\addspace #1}}}}
-\DeclareFieldAlias[customc]{lostitle}[customc]{title}
+\DeclareFieldFormat[customc]{lostitle}{%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@nona}%
+ }%
+ {\mkbibemph{\bibstring{see}}%
+ \addspace%
+ #1}%
+ {\addspace #1}}
\DeclareFieldFormat{shortjournal}{\mkbibemph{#1}\isdot}
@@ -2346,7 +2640,10 @@ citation style]
\DeclareFieldFormat{letterday}{\mkbibcurdinal{#1}}
\DeclareFieldFormat{note}{%
- \ifcapital{\MakeCapital{#1}}{#1}}%
+ \if@cms@capital{#1}{\MakeCapital{#1}}{#1}}%
+
+\DeclareFieldFormat{capital}{%
+ \ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat
[audio,manual,music,patent,report,suppbook,suppcollection,thesis,video]
@@ -2459,14 +2756,34 @@ citation style]
\DeclareFieldAlias{userd}{titleaddon}% 16th ed.
-\DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1\bibsentence}}% ?!
+\DeclareFieldFormat{nameaddon}{%
+ \ifdefvoid{\cms@naformat}%
+ {\mkbibbrackets{#1\bibsentence}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}%
-\DeclareFieldFormat[online,review,suppperiodical]{nameaddon}{#1\bibsentence}%
+\DeclareFieldFormat[online,review,suppperiodical]{nameaddon}{%
+ \ifdefvoid{\cms@naformat}%
+ {#1\ifboolexpr{%(
+ test {\IfEndWith{\thefield{nameaddon}}{)}}%[
+ or
+ test {\IfEndWith{\thefield{nameaddon}}{]}}%
+ }%
+ {\bibsentence}{\isdot}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}
\DeclareFieldFormat[misc]{nameaddon}{%
\iffieldundef{entrysubtype}%
- {\mkbibbrackets{#1\bibsentence}}%
- {#1\bibsentence}}
+ {\ifdefvoid{\cms@naformat}%
+ {\mkbibbrackets{#1\bibsentence}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}%
+ {\ifdefvoid{\cms@naformat}%
+ {#1\ifboolexpr{%(
+ test {\IfEndWith{\thefield{nameaddon}}{)}}%[
+ or
+ test {\IfEndWith{\thefield{nameaddon}}{]}}%
+ }%
+ {\bibsentence}{\isdot}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}}
\DeclareFieldFormat[customc]{nameaddon}{% For cross-refs
\ifbibstring{#1}%
@@ -2483,7 +2800,7 @@ citation style]
\DeclareFieldFormat{usere}{[#1]} % Better than mkbibbrackets?
\DeclareFieldFormat{titleaddon}{%
- \ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}%\custpunctc?
+ \if@cms@capital{#1}{\MakeCapital{#1\isdot}}{#1\isdot}}%\custpunctc?
\DeclareFieldAlias{booktitleaddon}{titleaddon}
@@ -2515,12 +2832,35 @@ citation style]
\DeclareFieldFormat{shortseries}{#1\isdot}
\DeclareFieldFormat{addendum}{%
- \ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}
+ \if@cms@capital{#1}{\MakeCapital{#1\isdot}}{#1\isdot}}
+
+% There was unfortunate interaction between the case-changing code and
+% cite commands when the latter were at the beginning of the
+% field. This modified \ifcapital will be used in the fields in which
+% the \citeincite(f|s) commands can appear.
+
+\newrobustcmd*{\if@cms@capital}[1]{%
+ \noexpandarg
+ \StrChar{#1}{1}[\cms@char]%
+ \ifboolexpr{%
+ test {\ifcapital}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincite}}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincites}}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincitef}}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincitefs}}%
+ }%
+ {\@firstoftwo}%
+ {\@secondoftwo}%
+}
-% This works better here than in the entrytail macro -- userf use is
-% no longer a problem, though the page breaking still isn't ideal.
+% For annotation fixes move all code for separators to the entrytail
+% macro, below.
-\DeclareFieldFormat{annotation}{\par\nobreak \vskip \bibitemsep #1}
+\DeclareFieldFormat{annotation}{#1}%
\DeclareFieldFormat{part}{%
\ifnumerals{#1}%
@@ -2544,12 +2884,20 @@ citation style]
and
not togl {cms@linkit}%
}%
- {#1}%
+ {\iftoggle{cms@shortrelated}%
+ {\ifentryinbib{\strfield{clonesourcekey}}%
+ {\bibhyperref[\strfield{clonesourcekey}]{#1}}%
+ {#1}}%
+ {#1}}%
{\bibhyperref{#1}}}%
\DeclareFieldFormat{cmsyearhyper}{% Only link when in ref list
\iftoggle{blx@skipbib}
- {#1}%
+ {\iftoggle{cms@shortrelated}%
+ {\ifentryinbib{\strfield{clonesourcekey}}%
+ {\bibhyperref[\strfield{clonesourcekey}]{#1}}%
+ {#1}}%
+ {#1}}%
{\bibhyperref{#1}}}%
%%%% Related field formats from biblatex.def %%%%
@@ -2582,7 +2930,7 @@ citation style]
{\ifcapital%
{\MakeCapital{#1}}%
{#1}}%
- \addspace}%
+ }%\addspace
%%%% Commands, for users and internal %%%%
@@ -2690,6 +3038,8 @@ citation style]
test {\ifdefstring\blx@languagename{brazilian}}%
or
test {\ifdefstring\blx@languagename{brazil}}%
+ or
+ test {\ifdefstring\blx@languagename{romanian}}%
}%
{\ifboolexpr{%
test {\iffieldundef{#1dateunspecified}}%
@@ -2817,6 +3167,8 @@ citation style]
{\addcomma\addspace}%
{\addcomma\addspace\bibstring{and}\addspace}}}
+\newcommand*{\journalpagespunct}{\addcolon\space}% Make it configurable
+
\renewcommand*{\postnotedelim}{% Cf. N&B style
\ifboolexpr{%
test {\ifciteibid}%
@@ -2834,30 +3186,49 @@ citation style]
{\togglefalse{cms@inlineibid}%
\iffieldundef{prenote}% Bug fix
{}%
- {\cms@testspace}}%
+ {\setunit{\cms@testspace}}}%
{\iffieldequalstr{entrysubtype}{classical}% For Notes+Bib, too?
{\DeclareNumChars*{abcdeABCDE:}%
\iffieldpages{postnote}%
- {\cms@testspace}%
- {\addcomma\addspace}}%
- {\addcomma\addspace}\DeclareNumChars{.}}}}
+ {\setunit{\cms@testspace}}%
+ {\newcunit}}%
+ {\newcunit}\DeclareNumChars{.}}}}
\newcommand*{\postnotewrapper}{%
- \iftoggle{cms@modpostnote}%
+ \iftoggle{cms@modpostnote}% Multiple bugs in v 2.0.
{\ifboolexpr{%
test {\iffieldstart{postnote}{,}}%
or
test {\iffieldstart{postnote}{\bibrangessep}}%
}%
- {\addcomma}% w/ or w/o \addspace?
- {\ifboolexpr{%
- test {\iffieldstart{postnote}{;}}%
- or
- test {\iffieldstart{postnote}{:}}%
- or
- test {\iffieldstart{postnote}{.}}%
- }%
- {}{\postnotedelim}}}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addcomma}}%
+ {\newcunit}}%
+ {\iffieldstart{postnote}{;}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addsemicolon}}%
+ {\setunit{\addsemicolon\addspace}}}%
+ {\iffieldstart{postnote}{:}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addcolon}}%
+ {\setunit{\addcolon\addspace}}}%
+ {\iffieldstart{postnote}{.}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addperiod}}%
+ {\newunit}}%
+ {\postnotedelim}}}}}%
{\postnotedelim}}%
\newrobustcmd*{\iffieldstart}[2]{% Philipp Lehman's code, from
@@ -2949,17 +3320,40 @@ citation style]
%%%% Formatting macros, called both by cbx and bbx %%%%
\newbibmacro*{finentry}{%{\finentry} To make annotated bibliography
- \ifbibliography
+ \ifboolexpr{%
+ togl {cms@annotation}%
+ or
+ togl {cms@cbxannote}%
+ }%
{\usebibmacro{entrytail}}%
{}%
\finentry}
\newbibmacro*{entrytail}{% From reading.bbx, for annotated bibliography
- \newunit\newblock
- \iftoggle{cms@annotation}%
- {\usebibmacro{annotation}%
- \newunit\newblock}%
- {}}%
+ \ifbibliography%
+ {\iftoggle{cms@annotation}%
+ {\togglefalse{blx@unit}%
+ \togglefalse{blx@keepunit}%
+ \setunit{\bibannotesep}%
+ \usebibmacro{annotation}%
+ \newunit\newblock}%
+ {\newunit}}%
+ {\iftoggle{cms@cbxannote}%
+ {\togglefalse{blx@unit}%
+ \togglefalse{blx@keepunit}%
+ \setunit{\citeannotesep}%
+ \usebibmacro{annotation}%
+ \newunit\newblock}%
+ {\newunit}}}%
+
+% From biblatex.def; biblatex 3.15 toggled blx@bibliography off here,
+% but we still need to be able to test it in Chicago, at least with
+% the current code, so redefine the macro.
+
+\renewbibmacro*{annotation}{%
+ \iffieldundef{annotation}%
+ {\printfile[annotation]{\bibannotationprefix\thefield{entrykey}.tex}}%
+ {\printfield{annotation}}}
\newbibmacro*{author+holder}{%
\ifnameundef{author}%
@@ -2978,7 +3372,7 @@ citation style]
{\bibstring{by}\addspace%
\printnames[byauthor]{author}}}
-\newbibmacro*{byauthorpunct}{%
+\newbibmacro*{byauthorpunct}{% Obsolete?
\ifthenelse{\ifuseauthor\OR\ifnameundef{author}}%
{\addperiod\addspace}%
{\newcunit}}
@@ -3091,7 +3485,7 @@ citation style]
togl {cms@namedash}%
}%
{\printtext{\bibnamedash}}%
- {\usebibmacro{journal+sub}%
+ {\usebibmacro{journal+sub}{}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\savefield{journaltitle}{\bbx@lasthash}}}%
@@ -3163,14 +3557,14 @@ citation style]
{\bibstring{by#2}}%
{\ifbibxstring{by\thefield{#1type}}%
{\bibstring{by\thefield{#1type}}}%
- {\printtext[note]{\thefield{#1type}}}}}%
+ {\printtext[capital]{\thefield{#1type}}}}}%
\newbibmacro*{cbytypestrg}[2]{%
\iffieldundef{#1type}%
{\bibstring{cby#2}}%
{\ifbibxstring{cby\thefield{#1type}}%
{\bibstring{cby\thefield{#1type}}}%
- {\printtext[note]{\thefield{#1type}}}}}%
+ {\printtext[capital]{\thefield{#1type}}}}}%
\newbibmacro*{cbyeditor}{%
\ifnameundef{editor}%
@@ -3396,7 +3790,11 @@ citation style]
{\printfield{chapter}\clearfield{chapter}%
\iffieldundef{booktitle}%
{}%
- {\addspace\bibstring{of}\setunit{\addspace}}}}%
+ {\iftoggle{cms@origpublished}%
+ {\DeclareFieldAlias{booktitle}{title:hook}}%
+ {\DeclareFieldAlias{booktitle}{title:hook:alt}}%
+ \addspace\bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}}}}%
\newbibmacro*{chap+as+track}{%
\iffieldundef{chapter}%
@@ -3410,7 +3808,7 @@ citation style]
{\printfield{chapter}\clearfield{chapter}%
\iffieldundef{booktitle}%
{}%
- {\addspace\bibstring{on}\setunit{\addspace}}}}%
+ {\addspace\bibstring[\cms@ofwrap]{on}\setunit{\addspace}}}}%
\newbibmacro*{music+origdate}{%
\iffieldequalstr{pubstate}{reprint}% 17th ed.
@@ -3630,7 +4028,7 @@ citation style]
{\printdate}%
{\printorigdate}}}%
-\newbibmacro*{journal+sub}{%
+\newbibmacro*{journal+sub}[1]{%
\iffieldundef{journaltitle}%
{}%
{\ifboolexpr{%
@@ -3648,9 +4046,9 @@ citation style]
togl {cms@bibjtabb}%
))
}%
- {\clearlist{location}\printtext[shortjournal]{%
+ {\clearlist{location}\printtext[#1shortjournal]{%
\printfield[jtsnoformat]{shortjournal}}}%
- {\printtext[journaltitle]{%
+ {\printtext[#1journaltitle]{%
\printfield[jtnoformat]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[sjtnoformat]{journalsubtitle}}}}}%
@@ -3699,7 +4097,7 @@ citation style]
\usebibmacro{cmsyear}}}
\newbibmacro*{mag+date+issue}{%
- \usebibmacro{journal+sub}%
+ \usebibmacro{journal+sub}{in}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\newunit\newblock
@@ -3792,8 +4190,8 @@ citation style]
\renewbibmacro*{postnote}{%
\iffieldundef{postnote}%
{}%
- {\setunit{\postnotewrapper}%delim}%
- \printfield{postnote}}}
+ {\postnotewrapper%\setunit{\postnotewrapper}
+ \printfield{postnote}}}
\newbibmacro*{part+editor+translator}{%
\ifnameundef{namea}%
@@ -3884,7 +4282,7 @@ citation style]
{\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}%
{\bibstring{\thefield{editortype}s}}%
{\bibstring{\thefield{editortype}}}}%
- {\printtext[note]{\thefield{editortype}}}}%
+ {\printtext[capital]{\thefield{editortype}}}}%
\clearname{editor}}
\newbibmacro*{parteditstrg}{%
@@ -3919,7 +4317,7 @@ citation style]
{\ifthenelse{\value{namea}>1\OR\ifandothers{namea}}%
{\bibstring{\thefield{nameatype}s}}%
{\bibstring{\thefield{nameatype}}}}%
- {\printtext[note]{\thefield{nameatype}}}}%
+ {\printtext[capital]{\thefield{nameatype}}}}%
\clearname{namea}}
\newbibmacro*{clearpublin}{%
@@ -3944,7 +4342,7 @@ citation style]
\clearfield{titleaddon}%
\clearfield{usere}%
\clearlist{language}%
- \ifentrytype{music}%
+ \ifthenelse{\ifentrytype{music}\OR\ifentrytype{audio}}%
{\clearfield{note}\clearfield{howpublished}\clearfield{eventyear}%
\clearfield{eventmonth}}%
{}}%
@@ -3953,7 +4351,12 @@ citation style]
{\clearfield{year}\clearfield{month}\clearfield{season}}%
{\clearfield{origyear}\clearfield{origmonth}\clearfield{origseason}}%
\clearfield{origlocation}}%
- {}%
+ {\ifthenelse{\ifentrytype{article}\OR\ifentrytype{periodical}\OR%
+ \ifentrytype{review}\OR\ifentrytype{suppperiodical}}%
+ {\iffieldundef{issuetitle}% For reprintfrom (?)
+ {\clearname{editor}\clearfield{note}\renewbibmacro*{bibreprint}{}}%
+ {}}%
+ {}}%
\clearfield{reprinttitle}%
}
@@ -3980,7 +4383,7 @@ citation style]
test {\iflistundef{publisher}}%
}%
{}%
- {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ {\setunit{\addspace\bibstring[\mkrelatedstringtext]{bypublisher}\space}%
\printlist{publisher}%
\setunit{\addcomma\space}%
\iflistsequal{location}{savedlocation}%
@@ -3992,13 +4395,13 @@ citation style]
\usebibmacro{at+every+item}%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}%
- {\begingroup
- \mkrelatedstring%
- \lbx@initnamehook{#1}%
- \endgroup}%
- {}}%
+ {\begingroup
+ \mkrelatedstringtext{%
+ \lbx@initnamehook{##1}}%
+ \endgroup}%
+ {}}%
\printnames[bytranslator]{translator}%
- \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
+ \setunit*{\addspace\bibstring[\mkrelatedstringtext]{astitle}\space}%
\clearname{translator}%
\usebibmacro{cite:origfull}}}%
@@ -4070,21 +4473,27 @@ citation style]
\newbibmacro*{related:commenton}[1]{% 17th ed.
\togglefalse{cms@fulldate}% Let cloned entry set it
+ \togglefalse{cms@authortitle}% Ditto
+ \toggletrue{cms@shortrelated}% This allows us to provide a hyperlink
\entrydata*{#1}{%
- \cmshypercite{\strfield{clonesourcekey}}}}
+ \ifnumequal{\value{bbx:relatedcount}}{1}%
+ {\global\boolfalse{cms:atcite}\usebibmacro{cite:reinit}}{}%
+ \usebibmacro{cite}}}
-\providetoggle{cms@otherlang}
+\newbibmacro*{related:short}[1]{% For cross-refs in ref list
+ \togglefalse{cms@fulldate}% Let cloned entry set it
+ \togglefalse{cms@authortitle}% Ditto
+ \toggletrue{cms@shortrelated}% This allows us to provide a hyperlink
+ \entrydata*{#1}{%
+ \nocite{\thefield{clonesourcekey}}% Ensure it appears in ref list
+ \ifnumequal{\value{bbx:relatedcount}}{1}%
+ {\global\boolfalse{cms:atcite}\usebibmacro{cite:reinit}}{}%
+ \usebibmacro{cite}}}
-\apptocmd\blx@opt@autolang@other%
-{\toggletrue{cms@otherlang}}%
-{\blx@info@noline{Patching 'autolang=other' option}}%
-{\PackageWarningNoLine{biblatex-chicago}%
- {Upgrading biblatex to >v2.7a recommended,\MessageBreak
- especially if you are using the "related"\MessageBreak
- functionality}}
+\providetoggle{cms@reprintmt}%
\newbibmacro*{cite:origfull}{%
- \printtext[cmshypertarget]{%
+ \printtext[cmshypertarget]{% Field format is spurious
\usedriver
{\DeclareNameAlias{sortname}{default}\clearfield{postnote}%
\clearname{author}\clearfield{userf}\clearfield{shorthand}%
@@ -4093,7 +4502,7 @@ citation style]
{\thefield{entrytype}}}}
\newbibmacro*{cite:origpubl}{%
- \printtext[cmshypertarget]{%
+ \printtext[cmshypertarget]{% Field format is spurious
\usedriver
{\DeclareNameAlias{sortname}{default}\clearfield{postnote}%
\usebibmacro{clearpublin}\clearfield{shorthand}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx
index 808388e32c..6828c66058 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-dates-common16.cbx
@@ -4,7 +4,7 @@
% for the two author-date styles of the Chicago Manual of Style, 16th
% edition.
-\ProvidesFile{chicago-dates-common16.cbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-dates-common16.cbx}[2021/03/27 v 3.16 biblatex
citation style]
%%%% Biblatex initialization + Chicago options + Toggles %%%%
@@ -1242,6 +1242,8 @@ citation style]
{}%
{\usebibmacro{postnote}}
+\def\cms@cicpunct{}%
+
%%% Commands, macros and formats for the Legal entry types %%%
\DeclareCiteCommand{\footfullcite}[\mkbibfootnote]
@@ -1965,12 +1967,6 @@ citation style]
\DeclareCiteCommand{\origpublcite}% Similar to above, w/o title.
{\usebibmacro{backref+check}%
\nopunct%\unspace%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\addspace}{\unspace}%
\savebibmacro{cmsbibsortdate}%
\renewbibmacro*{cmsbibsortdate}{}}%
{\usedriver
@@ -2304,7 +2300,7 @@ citation style]
{\ifcapital%
{\MakeCapital{#1}}%
{#1}}%
- \addspace}%
+ }%\addspace
%%%% Commands, for users and internal %%%%
@@ -3602,7 +3598,7 @@ citation style]
test {\iflistundef{publisher}}%
}%
{}%
- {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ {\setunit{\addspace\bibstring[\mkrelatedstringtext]{bypublisher}\space}%
\printlist{publisher}%
\setunit{\addcomma\space}%
\iflistsequal{location}{savedlocation}%
@@ -3614,13 +3610,13 @@ citation style]
\usebibmacro{at+every+item}%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}%
- {\begingroup
- \mkrelatedstring%
- \lbx@initnamehook{#1}%
- \endgroup}%
- {}}%
+ {\begingroup
+ \mkrelatedstringtext{%
+ \lbx@initnamehook{##1}}%
+ \endgroup}%
+ {}}%
\printnames[bytranslator]{translator}%
- \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
+ \setunit*{\addspace\bibstring[\mkrelatedstringtext]{astitle}\space}%
\clearname{translator}%
\usebibmacro{cite:origfull}}}%
@@ -3690,15 +3686,15 @@ citation style]
\newcunit}%
\usebibmacro{date}}}%
-\providetoggle{cms@otherlang}
+% \providetoggle{cms@otherlang}
-\apptocmd\blx@opt@autolang@other%
-{\toggletrue{cms@otherlang}}%
-{\blx@info@noline{Patching 'autolang=other' option}}%
-{\PackageWarningNoLine{biblatex-chicago}%
- {Upgrading biblatex to >v2.7a recommended,\MessageBreak
- especially if you are using the "related"\MessageBreak
- functionality}}
+% \apptocmd\blx@opt@autolang@other%
+% {\toggletrue{cms@otherlang}}%
+% {\blx@info@noline{Patching 'autolang=other' option}}%
+% {\PackageWarningNoLine{biblatex-chicago}%
+% {Upgrading biblatex to >v2.7a recommended,\MessageBreak
+% especially if you are using the "related"\MessageBreak
+% functionality}}
\newbibmacro*{cite:origfull}{%
\printtext[cmshypertarget]{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx
index e14d9114aa..a0a9780e25 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.bbx
@@ -2,7 +2,7 @@
% Lehman's standard.bbx. It provides the bibliography formatting for
% the Chicago notes + bibliography style.
-\ProvidesFile{chicago-notes.bbx}[2020/04/20 v 3.14 biblatex bibliography style]
+\ProvidesFile{chicago-notes.bbx}[2021/03/27 v 3.16 biblatex bibliography style]
%%%% Initialize and format bibliography and los %%%%
@@ -20,6 +20,7 @@
{\mkbibemph{\textbf{#1}}\isdot}}%
\newlength{\lositemsep}
+\newbibmacro*{begentry}{}
\defbibenvironment{bibliography}% New for 0.9a
{\list
@@ -252,12 +253,6 @@
\InitializeBibliographyStyle{%
\let\bbx@lasthash\undefined}
-%%%% Bibliography-specific bibstrings %%%%
-% \NewBibliographyString{note,preface,subsection,subsections,selfpublished,%
-% commenton,printed,track,choreographer,choreographers,cbychoreographer,%
-% bychoreographer}%
-%% Now below %%
-
%%%% Author, Editor, Translator, and Compiler Macros %%%%
\renewbibmacro*{name:last-first}[4]{%
@@ -388,23 +383,30 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}}%\addperiod\addspace
{\printtext{\bibnamedash}%
\ifentrytype{customc}%
{\newunit}%
- {\setunit{\addspace}}\printfield{nameaddon}}}%
+ {\setunit{\nameaddonpunct}}\printfield{nameaddon}}}%
{\iffieldequalstr{authortype}{anon}%
- {\bibleftbracket\printnames{author}\bibrightbracket%
+ {\bibopenbracket\printnames{author}%
+ \ifentrytype{customc}%
+ {\bibclosebracket%
+ \usebibmacro{print+nameaddon}}%
+ {\usebibmacro{print+nameaddon}%
+ \bibclosebracket}%
\savefield{fullhash}{\bbx@lasthash}}%
{\iffieldequalstr{authortype}{anon?}%
- {\bibleftbracket\printnames{author}\addquestion\bibrightbracket%
+ {\bibopenbracket\printnames{author}\addquestion%
+ \ifentrytype{customc}%
+ {\bibclosebracket%
+ \usebibmacro{print+nameaddon}}%
+ {\usebibmacro{print+nameaddon}%
+ \bibclosebracket}%
\savefield{fullhash}{\bbx@lasthash}}%
{\printnames{author}%
- \ifentrytype{customc}%
- {\ifbibliography{\newunit}{\newcunit}}%
- {\setunit{\addspace}}%
- \printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\savefield{fullhash}{\bbx@lasthash}}}}}}
\newbibmacro*{moreauthor}{%
@@ -417,18 +419,20 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}}%\addperiod\addspace
- {\printtext{\bibnamedash}\setunit{\addspace}\printfield{nameaddon}}}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
+ \printfield{nameaddon}}}%
{\iffieldequalstr{authortype}{anon}%
- {\bibleftbracket\printnames{author}\bibrightbracket%
+ {\bibopenbracket\printnames{author}%
+ \usebibmacro{print+nameaddon}\bibclosebracket%
\savefield{fullhash}{\bbx@lasthash}}%
{\iffieldequalstr{authortype}{anon?}%
- {\bibleftbracket\printnames{author}\addquestion\bibrightbracket%
+ {\bibopenbracket\printnames{author}\addquestion%
+ \usebibmacro{print+nameaddon}\bibclosebracket%
\savefield{fullhash}{\bbx@lasthash}}%
{\printnames{author}%
- \setunit{\addspace}%
- \printfield{nameaddon}%
+ \usebibmacro{print+nameaddon}%
\savefield{fullhash}{\bbx@lasthash}}}}}}
\newbibmacro*{pickeditor}{%
@@ -446,13 +450,12 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\editordelim}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\editordelim}}%
{\printnames{editor}%
- \setunit{\addspace}%
- \printfield{nameaddon}\editordelim%
+ \usebibmacro{print+nameaddon}\editordelim%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{editstrg}}}
@@ -469,13 +472,12 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\editordelim}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\editordelim}}%
{\printnames{editor}%
- \setunit{\addspace}%
- \printfield{nameaddon}\editordelim%
+ \usebibmacro{print+nameaddon}\editordelim%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{editstrg}}}%
{\ifboolexpr{%
@@ -485,13 +487,12 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\nameadelim}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\nameadelim}}%
{\printnames[sortname]{namea}%
- \setunit{\addspace}%
- \printfield{nameaddon}\nameadelim%
+ \usebibmacro{print+nameaddon}\nameadelim%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{parteditstrg}}}}%
@@ -505,13 +506,12 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\nameadelim}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\nameadelim}}%
{\printnames[sortname]{namea}%
- \setunit{\addspace}%
- \printfield{nameaddon}\nameadelim%
+ \usebibmacro{print+nameaddon}\nameadelim%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{parteditstrg}}}
@@ -530,13 +530,12 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\newcunit}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\newcunit}}%
{\printnames[sortname]{translator}%
- \setunit{\addspace}%
- \printfield{nameaddon}\newcunit%
+ \usebibmacro{print+nameaddon}\newcunit%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{transstrg}}}
@@ -550,13 +549,12 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\newcunit}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\newcunit}}%
{\printnames[sortname]{nameb}%
- \setunit{\addspace}%
- \printfield{nameaddon}\newcunit%
+ \usebibmacro{print+nameaddon}\newcunit%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{parttransstrg}}}
@@ -570,16 +568,74 @@
and
togl {cms@namedash}%
}%
- {\iffieldundef{nameaddon}%
+ {\if@cms@nonameaddon%
{\printtext{\bibnamedash}\newcunit}%
- {\printtext{\bibnamedash}\setunit{\addspace}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
\printfield{nameaddon}\newcunit}}%
{\printnames[sortname]{namec}%
- \setunit{\addspace}%
- \printfield{nameaddon}\newcunit%
+ \usebibmacro{print+nameaddon}\newcunit%
\savefield{fullhash}{\bbx@lasthash}}%
\usebibmacro{compilestrg}}}
+\newbibmacro*{print+nameaddon}{%
+ \ifbibliography%
+ {\ifboolexpr{%
+ togl {cms@bibnona}%
+ or
+ test {\iffieldundef{nameaddon}}%
+ }%
+ {}%
+ {\ifboolexpr{%
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}%
+ and
+ test {\iffieldequals{nameaddon}{\cms@lastna}}%
+ and
+ togl {cms@subseqnona}%
+ }%
+ {}%
+ {\ifentrytype{customc}{\newunit}{\setunit{\nameaddonpunct}}%
+ \printfield{nameaddon}%
+ \savefield{nameaddon}{\cms@lastna}}}}%
+ {\ifboolexpr{%
+ togl {cms@citenona}%
+ or
+ test {\iffieldundef{nameaddon}}%
+ }%
+ {\let\cms@lastna\undefined}%
+ {\ifboolexpr{%
+ test {\iffieldequals{nameaddon}{\cms@lastna}}%
+ and
+ test {\cms@ifciteidem}%
+ and
+ togl {cms@subseqnona}%
+ }%
+ {}%
+ {\ifentrytype{customc}{\newcunit}{\setunit{\nameaddonpunct}}%
+ \printfield{nameaddon}%
+ \savefield{nameaddon}{\cms@lastna}}}}}
+
+\def\if@cms@nonameaddon{%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@bibnona}%
+ or
+ (
+ test {\iffieldequals{nameaddon}{\cms@lastna}}%
+ and
+ togl {cms@subseqnona}%
+ )
+ }%
+ {\@firstoftwo}%
+ {\@secondoftwo}}%
+
+\def\cms@ifciteidem{%
+ \ifbool{citetracker}%
+ {\iftoggle{blx@footnote}%
+ {\iffieldequals{fullhash}\blx@lasthash@foot}%
+ {\iffieldequals{fullhash}\blx@lasthash@text}}%
+ {\@secondoftwo}}
+
\renewcommand*{\revsdnamedelim}{\addcomma}
\DeclareNameAlias{author}{sortname}% Needed in 0.9
@@ -601,7 +657,7 @@
{\printlist{organization}\newcunit}%
{}}}%
{\ifthenelse{\ifentrytype{customc}\OR\ifentrytype{dataset}}%
- {\usebibmacro{justauthor}\setunit{\addspace}}%
+ {\usebibmacro{justauthor}}% Moved \addspace to field format (2.1)
{\usebibmacro{author/editor}\newunit}}%
\ifboolexpr{%
test {\ifentrytype{video}}%
@@ -795,6 +851,46 @@
final]
\step[fieldset=maintitle, fieldvalue=\csgdef{@cmsst}{\@ne}, append]
}
+ \map[overwrite]{
+ \step[fieldsource=titleaddon,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=titleaddon,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=annotation,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=annotation,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=annote,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=annote,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=addendum,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=addendum,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
+ \map[overwrite]{
+ \step[fieldsource=note,
+ match=\regexp{\\citeincite(\{|\[[^\]]*\]\[\]\{)([^\}]+)\}$},%$
+ replace=\regexp{\\citeincitef$1$2\}}]
+ \step[fieldsource=note,
+ match=\regexp{\\citeincites(((\{|(\[[^\]]*\])+\{|\([^\)]*\)\(\)\{|\([^\)]*\)\(\)(\[[^\]]*\])+\{)[^\}]+\})+)((\{|\[[^\]]*\]\[\]\{)[^\}]+)\}$},%$
+ replace=\regexp{\\citeincitefs$1$6\}}]
+ }
\map[overwrite, foreach=related]{
\pertype{mvbook}
\pertype{mvcollection}
@@ -876,6 +972,7 @@
\DeclareBibliographyDriver{article}{%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{mag+news+author}%
\newunit\newblock
\usebibmacro{mag+news+title}%
@@ -920,12 +1017,13 @@
\usebibmacro{originally+published+as}%
\usebibmacro{finentry}}
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{mag+news+title}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
- \setunit*{\addperiod\addspace}\newblock% 16th ed.
+ \setunit*{\newunitpunct}\newblock% 16th ed.
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{part+editor+translator}%
@@ -965,6 +1063,7 @@
\DeclareBibliographyDriver{artwork}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -1013,6 +1112,7 @@
\DeclareBibliographyDriver{audio}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -1028,7 +1128,7 @@
\usebibmacro{chapinscore}%
\usebibmacro{btitle+bstitle}%
\iffieldundef{booktitle}%
- {\setunit{\addperiod\addspace}}% Fix customc?
+ {\setunit{\newunitpunct}}% Fix customc?
{\setunit{\addcomma\addspace}}%
\iffieldundef{edition}%
{}%
@@ -1051,11 +1151,11 @@
\printfield{part}%
\setunit{\addspace}
\bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[noformat]{maintitle}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[noformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}
\newcunit\newblock
@@ -1093,6 +1193,7 @@
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{related:mtpunct}%
\usebibmacro{italtitle+stitle}%
@@ -1179,7 +1280,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{xref}}%
\usebibmacro{xrefpostnote}%
@@ -1201,7 +1302,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{crossref}}%
\usebibmacro{xrefpostnote}%
@@ -1220,6 +1321,7 @@
\DeclareBibliographyDriver{bookinbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -1235,7 +1337,7 @@
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}%
+ \setunit*{\newunitpunct}%
\ifboolexpr{%
not togl {cms@related}%
or
@@ -1306,7 +1408,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{xref}}%
\usebibmacro{xrefpostnote}%
@@ -1328,7 +1430,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{crossref}}%
\usebibmacro{xrefpostnote}%
@@ -1366,7 +1468,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\csuse{cms@shortmtkey}}%
\usebibmacro{xrefpostnote}%
@@ -1377,6 +1479,7 @@
\DeclareBibliographyDriver{booklet}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -1409,6 +1512,7 @@
\DeclareBibliographyDriver{collection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{related:mtpunct}%
\usebibmacro{italtitle+stitle}%
@@ -1480,7 +1584,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{xref}}%
\usebibmacro{xrefpostnote}%
@@ -1502,7 +1606,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{crossref}}%
\usebibmacro{xrefpostnote}%
@@ -1521,8 +1625,13 @@
\DeclareBibliographyDriver{customc}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{justauthor}%
- \iffieldundef{nameaddon}%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@bibnona}%
+ }%
{\newunit}%
{\setunit{\addspace}}%
\usebibmacro{italtitle+stitle}%
@@ -1530,6 +1639,7 @@
\DeclareBibliographyDriver{dataset}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\setunit{\addspace}\newblock%
\printtext[parens]{%
@@ -1601,6 +1711,7 @@
\DeclareBibliographyDriver{image}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -1653,14 +1764,15 @@
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{title+stitle}%
\setunit{\addspace}\newblock%\bibsentence
\usebibmacro{language+transtitle}%
- \setunit{\addperiod\addspace}% 16th ed.
+ \setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}%
\ifboolexpr{%
not togl {cms@related}%
@@ -1683,7 +1795,7 @@
or
togl {cms@bibcrossref}%
}%
- {\setunit{\addperiod\addspace}%
+ {\setunit{\newunitpunct}%
\usebibmacro{chapincoll}%
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit
@@ -1731,7 +1843,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\thefield{xref}}%
@@ -1786,7 +1898,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\csuse{cms@shortmtkey}}%
@@ -1798,6 +1910,7 @@
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{title+stitle}%
@@ -1876,7 +1989,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\thefield{xref}}%
@@ -1899,7 +2012,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\thefield{crossref}}%
@@ -1931,7 +2044,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\csuse{cms@shortmtkey}}%
@@ -1943,14 +2056,15 @@
\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{title+stitle}%
\setunit{\addspace}\newblock%
\usebibmacro{language+transtitle}%
- \setunit{\addperiod\addspace}% 16th ed.
+ \setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}%
\ifboolexpr{%
not togl {cms@related}%
@@ -1973,7 +2087,7 @@
or
togl {cms@bibcrossref}%
}%
- {\setunit{\addperiod\addspace}%
+ {\setunit{\newunitpunct}%
\usebibmacro{chapincoll}%
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit\newblock
@@ -1984,6 +2098,14 @@
\usebibmacro{ser+num}%
\newunit\newblock
\printfield{note}%
+ \setunit*{\addcomma\addspace}%
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\newunit\newblock
\usebibmacro{org+publ+loc+year}%
\newunit\newblock
@@ -2014,7 +2136,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\thefield{xref}}%
@@ -2037,7 +2159,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\thefield{crossref}}%
@@ -2069,7 +2191,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\csuse{cms@shortmtkey}}%
@@ -2081,6 +2203,7 @@
\DeclareBibliographyDriver{inreference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iftoggle{cms@mtvolpunct}{\newcunit}{}%
\usebibmacro{italtitle+stitle}%
\usebibmacro{related:mtpunct}%\newunit\newblock
@@ -2091,7 +2214,7 @@
{}%
\usebibmacro{related:mtpunct}%\newunit\newblock
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}% need asterisk?
+ \setunit*{\newunitpunct}% need asterisk?
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit
\iffieldundef{edition}%
@@ -2153,6 +2276,7 @@
\DeclareBibliographyDriver{letter}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\printtext[title]{%
@@ -2165,7 +2289,7 @@
\usebibmacro{language+transtitle}%
\newunit\newblock%\bibsentence
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}%
+ \setunit*{\newunitpunct}%
\ifboolexpr{%
not togl {cms@related}%
or
@@ -2287,7 +2411,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\usebibmacro{chapincoll}%
\bibxrefcite{\csuse{cms@shortmtkey}}%
@@ -2299,6 +2423,7 @@
\DeclareBibliographyDriver{manual}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{bibauthor+org}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -2339,6 +2464,7 @@
\DeclareBibliographyDriver{misc}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\iffieldundef{entrysubtype}%
@@ -2398,6 +2524,7 @@
\DeclareBibliographyDriver{music}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -2441,11 +2568,11 @@
\printfield{part}%
\setunit{\addspace}
\bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[noformat]{maintitle}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[noformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}
\newcunit\newblock
@@ -2497,6 +2624,7 @@
\DeclareBibliographyDriver{mvbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{related:mtpunct}%\newunit\newpunct%
\usebibmacro{italtitle+stitle}%
@@ -2580,7 +2708,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{xref}}%
\usebibmacro{xrefpostnote}%
@@ -2602,7 +2730,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{crossref}}%
\usebibmacro{xrefpostnote}%
@@ -2628,6 +2756,7 @@
\DeclareBibliographyDriver{mvcollection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{related:mtpunct}%\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -2705,7 +2834,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{xref}}%
\usebibmacro{xrefpostnote}%
@@ -2727,7 +2856,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{crossref}}%
\usebibmacro{xrefpostnote}%
@@ -2753,6 +2882,7 @@
\DeclareBibliographyDriver{mvproceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{related:mtpunct}%\newunit\newblock%
\usebibmacro{italtitle+stitle}%
@@ -2794,6 +2924,14 @@
{\usebibmacro{mtitle+mstitle+vol+part+title+stitle}%
\newunit\newblock
\printfield{note}%
+ \setunit*{\addcomma\addspace}%
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\newunit\newblock
\usebibmacro{org+publ+loc+year}%
\newunit\newblock
@@ -2824,7 +2962,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{xref}}%
\usebibmacro{xrefpostnote}%
@@ -2846,7 +2984,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{crossref}}%
\usebibmacro{xrefpostnote}%
@@ -2872,6 +3010,7 @@
\DeclareBibliographyDriver{mvreference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{italtitle+stitle}%
\newunit\newblock
\ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{booktitle}}%
@@ -2942,6 +3081,7 @@
\DeclareBibliographyDriver{online}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\IfBeginWith{\thefield{title}}{CCCCCC}%
@@ -3013,6 +3153,7 @@
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author+holder}% + holder?
\newunit\newblock
\iffieldundef{title}%
@@ -3025,9 +3166,9 @@
\printfield{titleaddon}}%
\setunit{\addspace}\newblock%
\usebibmacro{language+transtitle}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\printfield{note}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\printfield{type}%
\setunit{\addspace}%
\printfield{number}%
@@ -3068,6 +3209,7 @@
\DeclareBibliographyDriver{performance}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{italtitle+stitle}%
@@ -3115,6 +3257,7 @@
\DeclareBibliographyDriver{periodical}{%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\newunit\newblock
\usebibmacro{issuetitle}%
@@ -3141,13 +3284,14 @@
\newunit\newblock
\usebibmacro{originally+published+as}%
\usebibmacro{finentry}}
- {\usebibmacro{bibindex}%
+{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\newunit\newblock
\usebibmacro{issuetitle}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
- \setunit*{\addperiod\addspace}\newblock% 16th ed.
+ \setunit*{\newunitpunct}\newblock% 16th ed.
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
@@ -3180,6 +3324,7 @@
\DeclareBibliographyDriver{proceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{related:mtpunct}%
\usebibmacro{italtitle+stitle}%
@@ -3207,6 +3352,14 @@
\usebibmacro{ser+num}%
\newunit\newblock
\printfield{note}%
+ \setunit*{\addcomma\addspace}%
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\newunit\newblock
\usebibmacro{org+publ+loc+year}%
\newunit\newblock
@@ -3237,7 +3390,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{xref}}%
\usebibmacro{xrefpostnote}%
@@ -3259,7 +3412,7 @@
test {\ifpunctmark{*}}%
}%
{\setunit{\addspace\bibsentence}}%
- {\setunit{\addperiod\addspace}}%
+ {\setunit{\newunitpunct}}%
\usebibmacro{xrefprenote}% Volume fix
\bookbibxrefcite{\thefield{crossref}}%
\usebibmacro{xrefpostnote}%
@@ -3278,6 +3431,7 @@
\DeclareBibliographyDriver{reference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iftoggle{cms@mtvolpunct}{\newcunit}{}%
\usebibmacro{italtitle+stitle}%
\usebibmacro{related:mtpunct}%\newunit\newblock
@@ -3288,7 +3442,7 @@
{}%
\usebibmacro{related:mtpunct}%
\usebibmacro{part+editor+translator}%
- \setunit*{\addperiod\addspace}% need asterisk?
+ \setunit*{\newunitpunct}% need asterisk?
\usebibmacro{mtitle+mstitle+vol+part+btitle+bstitle}%
\newcunit
\iffieldundef{edition}%
@@ -3335,6 +3489,7 @@
\DeclareBibliographyDriver{report}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\iffieldequalstr{entrysubtype}{unpublished}%
@@ -3379,6 +3534,7 @@
\DeclareBibliographyDriver{review}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{mag+news+author}}%
{\usebibmacro{author/editor}}%
@@ -3468,6 +3624,7 @@
\DeclareBibliographyDriver{standard}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\ifnameundef{author}%
{\iflistundef{organization}%
{}%
@@ -3478,8 +3635,12 @@
and
togl {cms@namedash}%
}%
- {\printtext{\bibnamedash}}%
+ {\if@cms@nonameaddon%
+ {\printtext{\bibnamedash}}%
+ {\printtext{\bibnamedash}\setunit{\nameaddonpunct}%
+ \printfield{nameaddon}}}%
{\printlist{organization}%
+ \usebibmacro{print+nameaddon}%
\savelist{organization}{\bbx@lasthash}}}}%
{\usebibmacro{justauthor}}%
\newunit\newblock
@@ -3547,6 +3708,7 @@
\DeclareBibliographyDriver{suppbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author}%
\newunit\newblock
\usebibmacro{inforaft}%
@@ -3611,6 +3773,7 @@
\DeclareBibliographyDriver{thesis}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{title+stitle}%
@@ -3618,9 +3781,9 @@
\usebibmacro{language+transtitle}%
\newunit% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\printfield{note}%
- \setunit{\addperiod\addspace}\newblock%
+ \setunit{\newunitpunct}\newblock%
\usebibmacro{type+inst+year}%
\newunit\newblock
\printfield{addendum}%
@@ -3643,6 +3806,7 @@
\DeclareBibliographyDriver{unpublished}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\newunit\newblock
\usebibmacro{title+stitle}%
@@ -3650,7 +3814,7 @@
\usebibmacro{language+transtitle}%
\newunit%usebibmacro{byauthorpunct}% Why does this work? No idea.
\usebibmacro{byauthor}% Same in thesis type, as well. 16th ed.
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{byeditor+others}%
\newunit\newblock%
\printfield{howpublished}%
@@ -3689,6 +3853,7 @@
\DeclareBibliographyDriver{video}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\ifboolexpr{%
test {\iffieldequalstr{entrysubtype}{tvepisode}}%
and
@@ -3710,9 +3875,9 @@
\usebibmacro{title+stitle}%
\setunit{\addspace}\newblock%\bibsentence
\usebibmacro{language+transtitle}%
- \setunit{\addperiod\addspace}% 16th ed.
+ \setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}}%
{\usebibmacro{author/editor}%
\newunit\newblock
@@ -3726,15 +3891,15 @@
\printfield{titleaddon}%\usebibmacro{title+stitle}%
\setunit{\addspace}\newblock%\bibsentence
\usebibmacro{language+transtitle}%
- \setunit{\addperiod\addspace}% 16th ed.
+ \setunit{\newunitpunct}% 16th ed.
\usebibmacro{byauthor}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{part+editor+translator}%
- \setunit{\addperiod\addspace}%
+ \setunit{\newunitpunct}%
\usebibmacro{chapinscore}%
\usebibmacro{btitle+bstitle}}%
\iffieldundef{booktitle}%
- {\setunit{\addperiod\addspace}}% Fix customc?
+ {\setunit{\newunitpunct}}% Fix customc?
{\setunit{\addcomma\addspace}}%
\iffieldundef{edition}%
{}%
@@ -3757,11 +3922,11 @@
\printfield{part}%
\setunit{\addspace}
\bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[noformat]{maintitle}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[noformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}%
\newcunit\newblock
@@ -3827,7 +3992,7 @@
{\iffieldundef{doi}%
{}%
{\printfield{doi}%
- \setunit*{\addperiod\addspace}\newblock%
+ \setunit*{\newunitpunct}\newblock%
\clearfield{url}}}%
{\ifboolexpr{%
togl {cms@doi}%
@@ -3835,7 +4000,7 @@
not test {\iffieldundef{doi}}%
}%
{\printfield{doi}%
- \setunit*{\addperiod\addspace}\newblock}%
+ \setunit*{\newunitpunct}\newblock}%
{}}%
\ifboolexpr{%
togl {cms@eprint}%
@@ -3843,7 +4008,7 @@
not test {\iffieldundef{eprint}}%
}%
{\usebibmacro{eprint}%
- \setunit*{\addperiod\addspace}\newblock}%
+ \setunit*{\newunitpunct}\newblock}%
{}%
\ifboolexpr{%
togl {cms@url}%
@@ -3914,7 +4079,7 @@
{\printfield{volume}}% Still print this w/o part or pages???
{\ifthenelse{\iffieldnums{pages}\AND%
\iffieldundef{bookpagination}\AND\iffieldnums{volume}}%
- {\printfield[default]{volume}%
+ {\printfield[shortvol]{volume}%
\postvolpunct%
\printfield{pages}}%
{\printfield{volume}%
@@ -3953,11 +4118,11 @@
\printfield{part}%
\setunit{\addspace}
\bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[noformat]{maintitle}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[noformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}}
@@ -3980,11 +4145,11 @@
\printfield{part}%
\setunit{\addspace}
\bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[noformat]{maintitle}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[noformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}}
@@ -4002,7 +4167,7 @@
{\iffieldundef{number}%
{\ifthenelse{\iffieldundef{bookpagination}\AND\iffieldundef{eid}}%
{\setunit{\postvolpunct}}%
- {\setunit{\addcolon\addspace}}%
+ {\setunit{\journalpagespunct}}%
\usebibmacro{eid+or+pages}}%
{\newcunit\usebibmacro{eid+or+pages}}}%
{\ifthenelse{\iffieldundef{volume}\AND\iffieldundef{number}}% 16th ed.
@@ -4020,7 +4185,7 @@
{\printfield{issue}%
\setunit{\addspace}%
\usebibmacro{cmsyear}}}%
- \setunit{\addcolon\addspace}%
+ \setunit{\journalpagespunct}%
\usebibmacro{eid+or+pages}}}}
\newbibmacro*{eid+or+pages}{%
@@ -4785,6 +4950,8 @@
%%%% Related functionality from standard.bbx %%%%
+\providecommand*{\mkrelatedstringtext}[1]{{{\mainlang #1}}}
+
\newcounter{bbx:relatedcount}
\newcounter{bbx:relatedtotal}
\newcounter{cms@reviewcount}%
@@ -4951,14 +5118,14 @@
test {\ifbibxstring{\thefield{relatedtype}s}}%
}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}s}}}%
{\iffieldbibstring{relatedtype}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}}}}%
{}}}%
{\iffieldbibstring{relatedstring}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedstring}}}}%
{\printfield[\bbx@tempb]{relatedstring}}}%
\docsvfield{related}%
\usebibmacro{endrelatedloop}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx
index 82f4a000d6..9d5616564d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes.cbx
@@ -4,7 +4,7 @@
% formatted according to the specifications of the Chicago Manual of
% Style.
-\ProvidesFile{chicago-notes.cbx}[2020/04/20 v 3.14 biblatex citation style]
+\ProvidesFile{chicago-notes.cbx}[2021/03/27 v 3.16 biblatex citation style]
%%%% Biblatex initialization + Chicago options + Toggles %%%%
@@ -58,6 +58,9 @@
\providetoggle{cms@noibid}
\providetoggle{cms@noidem}
\providetoggle{cms@namedash}
+\providetoggle{cms@bibnona}
+\providetoggle{cms@citenona}
+\providetoggle{cms@subseqnona}
\providetoggle{cms@useibid}
\providetoggle{cms@usecompiler}
\providetoggle{cms@shorthandibid}
@@ -65,9 +68,12 @@
\providetoggle{cms@fullshhand}
\providetoggle{cms@inheritshhand}
\providetoggle{cms@firstshort}
+\providetoggle{cms@noshintro}
+\providetoggle{cms@shandonly}
\providetoggle{cms@origpublished}
\providetoggle{cms@loccit}
\providetoggle{cms@annotation}
+\providetoggle{cms@cbxannote}
\providetoggle{cms@postposit}
\providetoggle{cms@legalnotes}% For legal types
\providetoggle{cms@supranotes}% Ditto
@@ -95,6 +101,7 @@
\providetoggle{cms@blogurl}% For 17th ed. blogs w/ comments
\providetoggle{cms@related}
\providetoggle{cms@citerel}
+\providetoggle{cms@reprintfrom}% maintitle type w/in relatedfrom type
\providetoggle{cms@gencite}
\providetoggle{cms@genallnames}
@@ -102,6 +109,16 @@
\iffieldundef{userc}%
{}%
{\nocite{\thefield{userc}}}%
+ \ifboolexpr{%
+ togl {cms@subseqnona}%
+ and
+ not togl {cms@citenona}%
+ and
+ test {\ifciteseen}%
+ and
+ not togl {cms@noneshort}%
+ }%
+ {\global\let\cms@lastna\undefined}{}%
\global\togglefalse{cms@loccit}%
\global\csundef{@cmsst}%
\ifboolexpr{%
@@ -157,8 +174,131 @@
\DeclareBiblatexOption{global,entry}[boolean]{genallnames}[true]{%
\settoggle{cms@genallnames}{#1}}
-\DeclareBibliographyOption{annotation}[true]{%
- \global\toggletrue{cms@annotation}}
+\DeclareBiblatexOption{global,type,entry}[string]{annotation}[true]{%
+ \ifcsdef{cms@opt@annot@#1}%
+ {\csuse{cms@opt@annot@#1}}%
+ {\blx@err@invopt{annotation=#1}{}}}%
+\def\cms@opt@annot@true{%
+ \toggletrue{cms@annotation}%
+ \togglefalse{cms@cbxannote}}
+\def\cms@opt@annot@false{%
+ \togglefalse{cms@annotation}%
+ \togglefalse{cms@cbxannote}}
+\def\cms@opt@annot@notes{%
+ \togglefalse{cms@annotation}%
+ \toggletrue{cms@cbxannote}}
+\def\cms@opt@annot@bib{%
+ \toggletrue{cms@annotation}%
+ \togglefalse{cms@cbxannote}}
+\def\cms@opt@annot@all{%
+ \toggletrue{cms@annotation}%
+ \toggletrue{cms@cbxannote}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{bibannotesep}[vpar]{%
+ \ifcsdef{cms@opt@bannsep@#1}%
+ {\csuse{cms@opt@bannsep@#1}}%
+ {\blx@err@invopt{bibannotesep=#1}{}}}
+\def\cms@opt@bannsep@none{%
+ \let\bibannotesep\@empty}%
+\def\cms@opt@bannsep@comma{%
+ \def\bibannotesep{\addcomma\addspace}}%
+\def\cms@opt@bannsep@colon{%
+ \def\bibannotesep{\addcolon\addspace}}%
+\def\cms@opt@bannsep@space{%
+ \def\bibannotesep{\addspace}}%
+\def\cms@opt@bannsep@semicolon{%
+ \def\bibannotesep{\addsemicolon\addspace}}%
+\def\cms@opt@bannsep@period{%
+ \def\bibannotesep{\addperiod\addspace}}%
+\def\cms@opt@bannsep@par{%
+ \def\bibannotesep{\addperiod\par\nobreak}}%
+\def\cms@opt@bannsep@vpar{%
+ \def\bibannotesep{\addperiod\par\nobreak \vskip \bibitemsep}}%
+\def\cms@opt@bannsep@parbreak{%
+ \def\bibannotesep{\addperiod\par}}%
+\def\cms@opt@bannsep@vparbreak{%
+ \def\bibannotesep{\addperiod\par \vskip \bibitemsep}}%
+
+\DeclareBiblatexOption{global,type,entry}[string]{citeannotesep}[period]{%
+ \ifcsdef{cms@opt@cannsep@#1}%
+ {\csuse{cms@opt@cannsep@#1}}%
+ {\blx@err@invopt{citeannotesep=#1}{}}}
+\def\cms@opt@cannsep@none{%
+ \let\citeannotesep\@empty}%
+\def\cms@opt@cannsep@comma{%
+ \def\citeannotesep{\addcomma\addspace}}%
+\def\cms@opt@cannsep@colon{%
+ \def\citeannotesep{\addcolon\addspace}}%
+\def\cms@opt@cannsep@space{%
+ \def\citeannotesep{\addspace}}%
+\def\cms@opt@cannsep@semicolon{%
+ \def\citeannotesep{\addsemicolon\addspace}}%
+\def\cms@opt@cannsep@period{%
+ \def\citeannotesep{\addperiod\addspace}}%
+\def\cms@opt@cannsep@par{%
+ \def\citeannotesep{\addperiod\par\nobreak}}%
+\def\cms@opt@cannsep@vpar{%
+ \def\citeannotesep{\addperiod\par\nobreak \vskip\p@}}%
+\def\cms@opt@cannsep@parbreak{%
+ \def\citeannotesep{\addperiod\par}}%
+\def\cms@opt@cannsep@vparbreak{%
+ \def\citeannotesep{\addperiod\par \vskip\p@}}%
+
+\DeclareBiblatexOption{global}[string]{formatbib}[max]{%
+ \ifcsdef{cms@opt@formatbib@#1}%
+ {\csuse{cms@opt@formatbib@#1}}%
+ {\blx@err@invopt{formatbib=#1}{}}}%
+\def\cms@opt@formatbib@max{}%
+\def\cms@opt@formatbib@min{%
+ \renewcommand*{\bibsetup}{%
+ \interlinepenalty=0\relax
+ \widowpenalty=0\relax
+ \@clubpenalty=0\relax
+ \clubpenalty=0\relax
+ \brokenpenalty=0\relax
+ \raggedbottom
+ \frenchspacing
+ \biburlsetup}}%
+\def\cms@opt@formatbib@minwo{%
+ \patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalty=0\relax}{}{}}%
+\def\cms@opt@formatbib@annote{%
+ \patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalty=0\relax}{}{}%
+ \AtEveryBibitem{%
+ \interlinepenalty=5000\relax}}%
+\def\cms@opt@formatbib@annotenp{%
+ \AtEndPreamble{%
+ \ifdefvoid{\cms@entrybreak}%
+ {\patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalties\cmspens{3}\relax}{}{}}%
+ {\patchcmd\bibsetup%
+ {\interlinepenalty=5000\relax}%
+ {\interlinepenalties\cmspens{\cms@entrybreak}\relax}{}{}}}}%
+
+\DeclareBiblatexOption{global}[integer]{entrybreak}[3]{%
+ \IfInteger{#1}%
+ {\numdef\cms@entrybreak{#1}}%
+ {\numdef\cms@entrybreak{3}\cms@warning@noline%
+ {'entrybreak=#1' isn't a valid option.\MessageBreak
+ This option only accepts integers.\MessageBreak
+ It has been set to the default '3'.\MessageBreak
+ Please see biblatex-chicago.pdf for\MessageBreak
+ more information}}}
+
+\def\cmspens@i#1{\space
+ \ifnum#1>\@ne\number5000
+ \expandafter\cmspens@i
+ \expandafter{\number\numexpr#1-\@ne\expandafter}%
+ \else
+ \ifnum#1>\z@\number10
+ \else\unspace
+ \fi\fi}
+
+\def\cmspens#1{\space #1\cmspens@i{#1}}
\DeclareBibliographyOption[boolean]{noibid}[true]{%
\global\toggletrue{cms@noibid}}
@@ -166,7 +306,7 @@
\DeclareBibliographyOption[boolean]{useibid}[true]{%
\global\toggletrue{cms@useibid}}
-\DeclareBibliographyOption[boolean]{dashed}[true]{%
+\DeclareBiblatexOption{global,type,entry}[boolean]{dashed}[true]{%
\settoggle{cms@namedash}{#1}}
\DeclareBibliographyOption[boolean]{short}[true]{%
@@ -830,30 +970,31 @@
\settoggle{cms@fullshhand}{#1}}
\DeclareBibliographyOption[boolean]{inheritshorthand}[true]{%
- \settoggle{cms@inheritshhand}{#1}%
- \iftoggle{cms@inheritshhand}%
- {\DeclareDataInheritance{*}{*}{%
- \inherit{shorthand}{shorthand}
- \inherit{shorthandintro}{shorthandintro}
- }}%
- {}}%
+ \settoggle{cms@inheritshhand}{#1}}%
\DeclareBiblatexOption{global,entry}[boolean]{shorthandfirst}[true]{%
\settoggle{cms@firstshort}{#1}}
+\DeclareBiblatexOption{global,type,entry}[string]{shorthandintro}[full]{%
+ \ifcsdef{cms@opt@shhintro@#1}%
+ {\csuse{cms@opt@shhintro@#1}}%
+ {\blx@err@invopt{shorthandintro=#1}{}}}
+\def\cms@opt@shhintro@full{%
+ \togglefalse{cms@noshintro}%
+ \togglefalse{cms@shandonly}}%
+\def\cms@opt@shhintro@short{%
+ \toggletrue{cms@shandonly}}%
+\def\cms@opt@shhintro@none{%
+ \toggletrue{cms@noshintro}}%
+
\DeclareBibliographyOption[boolean]{compresspages}[true]{%
\global\settoggle{cms@comprange}{#1}}%
\DeclareBibliographyOption[boolean]{compressyears}[true]{%
\global\settoggle{cms@compyears}{#1}}%
-\DeclareBibliographyOption[string]{postnotepunct}[true]{%
- \ifcsdef{cms@opt@ppunct@#1}%
- {\csuse{cms@opt@ppunct@#1}}%
- {\blx@err@invopt{postnotepunct=#1}{}}}%
-\def\cms@opt@ppunct@true{%
- \global\toggletrue{cms@modpostnote}}%
-\def\cms@opt@ppunct@false{}%
+\DeclareBibliographyOption[boolean]{postnotepunct}[true]{%
+ \global\settoggle{cms@modpostnote}{#1}}%
\DeclareBiblatexOption{global,entry}[boolean]{usecompiler}[true]{%
\settoggle{blx@usenamec}{#1}}
@@ -1007,6 +1148,52 @@
\settoggle{cms@bookseries}{#1}%
\settoggle{cms@notefield}{#1}}%
+\DeclareBibliographyOption[string]{nameaddon}[all]{%
+ \ifcsdef{cms@gopt@na@#1}%
+ {\csuse{cms@gopt@na@#1}}%
+ {\csuse{cms@gopt@na@all}\cms@warning@noline%
+ {'nameaddon=#1' is not a valid global\MessageBreak
+ option. The default - 'all' - has been set.\MessageBreak
+ Please see biblatex-chicago.pdf for valid\MessageBreak
+ option keys}}}%
+\def\cms@gopt@na@all{}%
+\def\cms@gopt@na@none{%
+ \settoggle{cms@bibnona}{true}%
+ \settoggle{cms@citenona}{true}}%
+\def\cms@gopt@na@cite{\settoggle{cms@bibnona}{true}}%
+\def\cms@gopt@na@bib{\settoggle{cms@citenona}{true}}%
+\def\cms@gopt@na@first{\settoggle{cms@subseqnona}{true}}%
+\def\cms@gopt@na@citefirst{%
+ \settoggle{cms@bibnona}{true}%
+ \settoggle{cms@subseqnona}{true}}%
+\def\cms@gopt@na@bibfirst{%
+ \settoggle{cms@citenona}{true}%
+ \settoggle{cms@subseqnona}{true}}%
+
+\DeclareTypeOption[string]{nameaddon}[all]{%
+ \ifcsdef{cms@opt@na@#1}%
+ {\csuse{cms@opt@na@#1}}%
+ {\csuse{cms@opt@na@all}\cms@warning@noline%
+ {'nameaddon=#1' is not a valid type\MessageBreak
+ option. The default - 'all' - has been set.\MessageBreak
+ Please see biblatex-chicago.pdf for valid\MessageBreak
+ option keys}}}%
+\def\cms@opt@na@all{}%
+\def\cms@opt@na@none{%
+ \settoggle{cms@bibnona}{true}%
+ \settoggle{cms@citenona}{true}}%
+\def\cms@opt@na@cite{\settoggle{cms@bibnona}{true}}%
+\def\cms@opt@na@bib{\settoggle{cms@citenona}{true}}%
+
+\DeclareEntryOption[string]{nameaddon}[all]{%
+ \ifcsdef{cms@opt@na@#1}%
+ {\csuse{cms@opt@na@#1}}%
+ {\csuse{cms@opt@na@all}\cms@warning@noline%
+ {'nameaddon=#1' is not a valid entry\MessageBreak
+ option. The default - 'all' - has been set.\MessageBreak
+ Please see biblatex-chicago.pdf for valid\MessageBreak
+ option keys}}}%
+
\DeclareBiblatexOption{global,type,entry}[string]{related}[bib]{%
\ifcsdef{cms@opt@rel@#1}%
{\csuse{cms@opt@rel@#1}}%
@@ -1057,6 +1244,32 @@
\def\cms@opt@shxp@period{%
\def\shortextrapunct{\addperiod\addspace}}%
+% Controlling formatting of, and punctuation before, nameaddon fields %
+
+\DeclareBiblatexOption{global,type,entry}[string]{nameaddonformat}{%
+ \def\cms@naformat{#1}}
+
+\DeclareBiblatexOption{global,type,entry}[string]{nameaddonsep}[space]{%
+ \ifcsdef{cms@opt@nasep@#1}%
+ {\csuse{cms@opt@nasep@#1}}%
+ {\csuse{cms@opt@nasep@space}\cms@warning@noline%
+ {'nameaddonsep=#1' is not a valid option.\MessageBreak
+ The default - 'space' - has been set.\MessageBreak
+ Please see biblatex-chicago.pdf for valid\MessageBreak
+ option keys}}}%
+\def\cms@opt@nasep@none{%
+ \let\nameaddonpunct\@empty}%
+\def\cms@opt@nasep@comma{%
+ \def\nameaddonpunct{\addcomma\addspace}}%
+\def\cms@opt@nasep@colon{%
+ \def\nameaddonpunct{\addcolon\addspace}}%
+\def\cms@opt@nasep@space{%
+ \def\nameaddonpunct{\addspace}}%
+\def\cms@opt@nasep@semicolon{%
+ \def\nameaddonpunct{\addsemicolon\addspace}}%
+\def\cms@opt@nasep@period{%
+ \def\nameaddonpunct{\addperiod\addspace}}%
+
% Controlling punctuation before titleaddon fields %
\DeclareBiblatexOption{global,type,entry}[string]{ptitleaddon}[period]{%
@@ -1078,7 +1291,7 @@
\def\cms@opt@ptao@semicolon{%
\def\ptitleaddonpunct{\addsemicolon\addspace}}%
\def\cms@opt@ptao@period{%
- \def\ptitleaddonpunct{\addperiod\addspace}}%
+ \def\ptitleaddonpunct{\newunitpunct}}%
\DeclareBiblatexOption{global,type,entry}[string]{ctitleaddon}[comma]{%
\ifcsdef{cms@opt@ctao@#1}%
@@ -1099,7 +1312,7 @@
\def\cms@opt@ctao@semicolon{%
\def\ctitleaddonpunct{\addsemicolon\addspace}}%
\def\cms@opt@ctao@period{%
- \def\ctitleaddonpunct{\addperiod\addspace}}%
+ \def\ctitleaddonpunct{\newunitpunct}}%
% Controlling punctuation before shorthand in notes %
@@ -1130,10 +1343,14 @@
\ExecuteBibliographyOptions{includeall,completenotes,hidevolumes,%
related,booklongxref,ptitleaddon,ctitleaddon,shorthandpunct,urlnotes,%
- legalnotes,supranotes,shortextrapunct,dashed}
+ legalnotes,supranotes,shortextrapunct,dashed,bibannotesep,citeannotesep,%
+ nameaddonsep=space}
\ExecuteBibliographyOptions[standard]{useeditor=false,usenamec=false}%
+\ExecuteBibliographyOptions[jurisdiction,legal,legislation]{%
+ shorthandintro=full}%
+
\iftoggle{cms@legalnotes}%
{\ExecuteBibliographyOptions[jurisdiction,legal,legislation]{skipbib}}%
{}%
@@ -1147,25 +1364,8 @@
\DeclareBibliographyOption{cmsdate}{}%
-\DeclareBibliographyOption[boolean]{strict}[true]{%
- \settoggle{cms@strict}{#1}%
- \iftoggle{cms@strict}%
- {\let\splitfootnoterule\footnoterule
- \renewcommand\footnoterule{}%
- \advance\skip\footins 4\p@\@plus2\p@\relax
- \gdef\split@prev{0}
- \let\pagefootnoterule\footnoterule
- % \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
- \def\footnoterule{\relax
- \ifnum\split@prev=\z@
- \pagefootnoterule
- \else
- \splitfootnoterule
- \fi
- \xdef\split@prev{\the\insertpenalties}%
- }}%
- {}}
-
+\DeclareBiblatexOption{global}[boolean]{strict}[true]{%
+ \settoggle{cms@strict}{#1}}%
\protected\def\blx@newcunit{%
\iftoggle{blx@keepunit}%
@@ -1266,7 +1466,11 @@
{\usebibmacro{cite:shorthand}%
\usebibmacro{cite:save}%
\global\toggletrue{cms@noidem}}%
- {\iftoggle{cms@allshort}%
+ {\ifboolexpr{%
+ togl {cms@allshort}%
+ and
+ not togl {cms@noneshort}%
+ }%
{\global\toggletrue{cms@shortnote}%
\global\togglefalse{cms@fullnote}%
\global\toggletrue{cms@printshhand}%
@@ -1537,6 +1741,8 @@
togl {cms@supranotes}%
and
test {\iffootnote}%
+ and
+ test {\ifciteseen}%
}%
{\newcunit%
\printtext{\bibstring{supranote}\addnbspace%
@@ -1563,6 +1769,14 @@
and
not test {\iffieldint{volume}}%
)
+ or
+ (
+ test {\iffieldundef{volume}}% Bug fix; correct?
+ and
+ test {\iffieldundef{series}}%
+ and
+ not test {\iffieldundef{titleaddon}}%
+ )
}%
{\ifboolexpr{%
test {\iffieldundef{entrysubtype}}%
@@ -1601,6 +1815,8 @@
and
test {\iffootnote}%
and
+ test {\ifciteseen}%
+ and
(
test {\iffieldequalstr{entrysubtype}{un}}%
or
@@ -1809,6 +2025,8 @@
and
togl {cms@supranotes}%
and
+ test {\ifciteseen}%
+ and
(
test {\ifentrytype{legal}}%
or
@@ -1824,23 +2042,33 @@
{\newcunit%
\printtext{\bibstring{supranote}\addnbspace%
\ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}%
- \newcunit}}% ??
- {}}%
+ \iffieldundef{postnote}{}{\printunit{\addcomma\addspace}}}}% ??
+ {}}% The printunit is for when a shorthand is also an ibidem.
\newbibmacro*{cms:shorthandintro}{% For changing the citedas phrase
- \iffieldundef{shorthand}%
+ \ifboolexpr{%
+ test {\iffieldundef{shorthand}}%
+ or
+ togl {cms@noshintro}% option shorthandintro=none
+ or
+ togl {cms@noneshort}% mainly for Bluebook
+ }%
{}%
- {\iffieldundef{shorthandintro}%
+ {\iftoggle{cms@shandonly}% option shorthandintro=short
{\ifthenelse{\ifentrytype{jurisdiction}\OR\ifentrytype{legal}\OR%
\ifentrytype{legislation}}%
- {\printtext[brackets]{%
- \bibstring{hereinafter}\addspace%
- \printfield{shorthand}}}%
- {\printtext[parens]{%
- \bibstring{citedas}\addspace%
- \printfield{shorthand}}}}%
- {%\addspace%\setunit{\addspace}% Ditto
- \printfield{shorthandintro}}}}
+ {\printtext[brackets]{\printfield{shorthand}}}%
+ {\printtext[parens]{\printfield{shorthand}}}}%
+ {\iffieldundef{shorthandintro}%
+ {\ifthenelse{\ifentrytype{jurisdiction}\OR\ifentrytype{legal}\OR%
+ \ifentrytype{legislation}}%
+ {\printtext[brackets]{%
+ \bibstring{hereinafter}\addspace%
+ \printfield{shorthand}}}%
+ {\printtext[parens]{%
+ \bibstring{citedas}\addspace%
+ \printfield{shorthand}}}}%
+ {\printfield{shorthandintro}}}}}
\newbibmacro*{cite:ibid}{%
\ifthenelse{\ifentrytype{jurisdiction}\OR\ifentrytype{legal}\OR%
@@ -1988,7 +2216,7 @@
\ifthenelse{\iffieldundef{pagination}\AND%
\iffieldundef{bookpagination}}%
{\setunit{\postvolpunct}}%
- {\setunit{\addcolon\addspace}}}}}}%
+ {\setunit{\journalpagespunct}}}}}}%
%% Macros from verbose.cbx %%
@@ -2166,21 +2394,18 @@
\ifhyperref%
{\hypertarget{cite.\the\c@refsection @\abx@field@entrykey}{}}%
{}%
- \nopunct%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\addspace}{\unspace}}%\unspace Put \nopunct and \unspace here for 0.8e.
+ \nopunct% Remove otherlang test for 3.16
+ }%\unspace Put \nopunct and \unspace here for 0.8e.
{\usedriver
{\DeclareNameAlias{sortname}{default}\clearfield{postnote}%
\usebibmacro{clearpublin}\clearfield{shorthand}%
\usebibmacro{cms:titlehook}%
+ \global\toggletrue{cms@reprintfrom}%
\toggletrue{cms@fullnote}\toggletrue{cms@headlessnote}%
\toggletrue{cms@origpublished}\frenchspacing}%
{cite:\thefield{entrytype}}%
- \iflistundef{pageref}{}{\newunit\usebibmacro{pageref}}}%
+ \iflistundef{pageref}{}{\newunit\usebibmacro{pageref}}%
+ \global\togglefalse{cms@reprintfrom}}%
{\multicitedelim}%
{\finentry}
@@ -2258,15 +2483,87 @@
\DeclareMultiCiteCommand{\surnamecites}{surnamecite}{\multicitedelim}
+\DeclareCitePunctuationPosition{\citeincitef}{d}
+
+\DeclareCitePunctuationPosition{\citeincitefs}{d}
+
+\DeclareMultiCiteCommand{\citeincites}[\cmswrap]%
+{citeincite}{\multicitedelim}
+
+\DeclareMultiCiteCommand{\citeincitefs}[\cmswrapf]%
+{citeincitef}{\multicitedelim}
+
+\DeclareMultiCiteCommand{\fullciteincites}[\cmsfwrap]%
+{fullciteincite}{\multicitedelim}
+
+\DeclareCiteCommand{\citeincite}[\cmswrap]
+{\usebibmacro{backref+check}%
+ \usebibmacro{prenote}}%
+{\toggletrue{cms@shortnote}%
+ \togglefalse{cms@fullnote}%
+ \toggletrue{cms@noidem}%
+ \usebibmacro{citeindex}%
+ \usebibmacro{cite:short}{\thefield{entrytype}}%
+ \usebibmacro{cite:save}}
+{\multicitedelim}
+{\usebibmacro{postnote}}%
+
+\DeclareCiteCommand{\citeincitef}[\cmswrapf]
+{\usebibmacro{backref+check}%
+ \usebibmacro{prenote}}%
+{\toggletrue{cms@shortnote}%
+ \togglefalse{cms@fullnote}%
+ \toggletrue{cms@noidem}%
+ \usebibmacro{citeindex}%
+ \usebibmacro{cite:short}{\thefield{entrytype}}%
+ \usebibmacro{cite:save}}
+{\multicitedelim}
+{\usebibmacro{postnote}}%
+
+\DeclareCiteCommand{\fullciteincite}[\cmsfwrap]
+{\usebibmacro{backref+check}%
+ \usebibmacro{prenote}}%
+{\usebibmacro{citeindex}%
+ \toggletrue{cms@fullnote}%
+ \togglefalse{cms@shortnote}%
+ \usebibmacro{footcite:save}%
+ \usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}
+{\multicitedelim}
+{}
+
+\def\cmsfwrap#1{\clearfield{prenote}#1}%
+
+\def\cmswrap#1{%
+ \gundef{\cms@pncic}%
+ \savefield{postnote}{\cms@pncic}%
+ \clearfield{postnote}\clearfield{prenote}%
+ \begingroup#1\endgroup%
+ \ifdef{\blx@thepostpunct}%
+ {\ifdefvoid{\abx@field@postpunct}%
+ {\blx@dopostpunct}{}}%
+ {}%
+ \global\let\abx@field@postnote\cms@pncic%
+ \global\let\abx@field@postpunct\@empty}%
+
+\def\cmswrapf#1{%
+ \gundef{\cms@pncic}%
+ \savefield{postnote}{\cms@pncic}%
+ \clearfield{postnote}\clearfield{prenote}%
+ \begingroup#1\ifdef{\blx@thepostpunct}{\cms@cicpunct}{}\endgroup
+ \global\let\abx@field@postnote\cms@pncic}%
+
+\def\cms@cicpunct{}% Only needed in US; redefine in lbx
+
\DeclareCiteCommand{\shortcite}
- {\usebibmacro{prenote}}
+ {\usebibmacro{prenote}}%
{\toggletrue{cms@shortnote}%
\togglefalse{cms@fullnote}%
\usebibmacro{citeindex}%
\usebibmacro{cite:short}{\thefield{entrytype}}%
\usebibmacro{cite:save}}
{\multicitedelim}
- {\usebibmacro{postnote}}
+ {\usebibmacro{postnote}}%
\DeclareCiteCommand*{\shortcite}
{\boolfalse{citetracker}%
@@ -2576,6 +2873,7 @@
\DeclareBibliographyDriver{cite:article}{%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{cmag+news+author}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{cmag+news+title}%
@@ -2620,6 +2918,7 @@
{}%
\usebibmacro{finentry}}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{cmag+news+title}%
@@ -2668,6 +2967,7 @@
\DeclareBibliographyDriver{cite:artwork}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\usebibmacro{citaltitle+stitle}%
@@ -2720,6 +3020,7 @@
\DeclareBibliographyDriver{cite:audio}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{ctitle+stitle}%
@@ -2757,12 +3058,12 @@
\printfield{volume}%
\printfield{part}%
\setunit{\addspace}
- \bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[mtnoformat]{maintitle}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[smtnoformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}
\printfield{maintitleaddon}}}
\newcunit
@@ -2804,6 +3105,7 @@
\DeclareBibliographyDriver{cite:book}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{citaltitle+stitle}%
@@ -2938,6 +3240,7 @@
\DeclareBibliographyDriver{cite:bookinbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{citaltitle+stitle}%
@@ -3091,6 +3394,7 @@
\DeclareBibliographyDriver{cite:booklet}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\usebibmacro{citaltitle+stitle}%
@@ -3124,6 +3428,7 @@
\DeclareBibliographyDriver{cite:collection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock%
\usebibmacro{citaltitle+stitle}%
@@ -3237,15 +3542,21 @@
\DeclareBibliographyDriver{cite:customc}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{justauthor}%
- \iffieldundef{nameaddon}%
- {\newcunit}
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@citenona}%
+ }%
+ {\newcunit}%
{\setunit{\addspace}}%
\usebibmacro{italtitle+stitle}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{cite:dataset}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\iftoggle{cms@headlessnote}{}{\setunit{\addspace}\newblock}%
\printtext[parens]{%
@@ -3319,6 +3630,7 @@
\DeclareBibliographyDriver{cite:image}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\usebibmacro{citaltitle+stitle}%
@@ -3371,6 +3683,7 @@
\DeclareBibliographyDriver{cite:inbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{ctitle+stitle}%
@@ -3511,6 +3824,7 @@
\DeclareBibliographyDriver{cite:incollection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock%
\usebibmacro{ctitle+stitle}%
@@ -3651,6 +3965,7 @@
\DeclareBibliographyDriver{cite:inproceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{ctitle+stitle}%
@@ -3696,6 +4011,14 @@
\usebibmacro{cser+num}%
\newcunit\newblock
\usebibmacro{cnotefield}%
+ \newcunit\newblock
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\setunit{\addspace}\newblock%
\printtext[parens]{%
\usebibmacro{org+publ+loc+year}}%
@@ -3787,6 +4110,7 @@
\DeclareBibliographyDriver{cite:inreference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iffieldundef{clonesourcekey}{}{\newcunit}%
\usebibmacro{citaltitle+stitle}%
\newcunit\newblock
@@ -3847,6 +4171,7 @@
\DeclareBibliographyDriver{cite:jurisdiction}{%
\iffieldequalstr{entrysubtype}{square}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{clegis+news+title}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
@@ -3908,6 +4233,7 @@
\usebibmacro{finentry}}
{\iffieldequalstr{entrysubtype}{round}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{clegis+news+title}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
@@ -3968,6 +4294,7 @@
{}%
\usebibmacro{finentry}}
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{clegis+news+title}%
\setunit{\addspace}%
\usebibmacro{language+transtitle}%
@@ -4038,6 +4365,7 @@
\DeclareBibliographyDriver{cite:legal}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -4107,6 +4435,7 @@
\DeclareBibliographyDriver{cite:legislation}{%
\iffieldequalstr{entrysubtype}{uk}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -4174,6 +4503,7 @@
\usebibmacro{finentry}}
{\iffieldequalstr{entrysubtype}{hansard}% FIXME?
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -4234,6 +4564,7 @@
{}%
\usebibmacro{finentry}}
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{clegis+news+title}%
@@ -4310,6 +4641,7 @@
\DeclareBibliographyDriver{cite:letter}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\savefield{fullhash}{\bbx@lasthash}%
\printtext[title]{%
\printfield[noformat]{title}}%
@@ -4452,6 +4784,7 @@
\DeclareBibliographyDriver{cite:manual}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author+org}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock%
\usebibmacro{citaltitle+stitle}%
@@ -4495,6 +4828,7 @@
\DeclareBibliographyDriver{cite:misc}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\iffieldundef{entrysubtype}%
@@ -4556,6 +4890,7 @@
\DeclareBibliographyDriver{cite:music}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\usebibmacro{citaltitle+stitle}%
@@ -4598,12 +4933,12 @@
\printfield{volume}%
\printfield{part}%
\setunit{\addspace}
- \bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[mtnoformat]{maintitle}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[smtnoformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}
\newcunit
@@ -4657,6 +4992,7 @@
\DeclareBibliographyDriver{cite:mvbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{citaltitle+stitle}%
@@ -4797,6 +5133,7 @@
\DeclareBibliographyDriver{cite:mvcollection}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock%
\usebibmacro{citaltitle+stitle}%
@@ -4931,6 +5268,7 @@
\DeclareBibliographyDriver{cite:mvproceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock%
\usebibmacro{citaltitle+stitle}%
@@ -4976,6 +5314,14 @@
{\usebibmacro{cmtitle+mstitle+vol+part+title+stitle}%
\newcunit\newblock
\usebibmacro{cnotefield}%
+ \newcunit\newblock
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\setunit{\addspace}\newblock%
\printtext[parens]{%
\usebibmacro{org+publ+loc+year}}%
@@ -5062,6 +5408,7 @@
\DeclareBibliographyDriver{cite:mvreference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{citaltitle+stitle}%
\newcunit\newblock
\iffieldundef{edition}%
@@ -5128,6 +5475,7 @@
\DeclareBibliographyDriver{cite:online}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\IfBeginWith{\thefield{title}}{CCCCCC}%
@@ -5204,6 +5552,7 @@
\DeclareBibliographyDriver{cite:patent}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author+holder}% +holder?
\usebibmacro{hlpunct}%\newcunit\newblock
\iffieldundef{title}%
@@ -5264,6 +5613,7 @@
\DeclareBibliographyDriver{cite:performance}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\usebibmacro{citaltitle+stitle}%
@@ -5313,6 +5663,7 @@
\DeclareBibliographyDriver{cite:periodical}{%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{issuetitle}%
@@ -5349,6 +5700,7 @@
{}%
\usebibmacro{finentry}}%
{\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{issuetitle}%
@@ -5391,6 +5743,7 @@
\DeclareBibliographyDriver{cite:proceedings}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock%
\usebibmacro{citaltitle+stitle}%
@@ -5422,6 +5775,14 @@
\usebibmacro{cser+num}%
\newcunit\newblock
\usebibmacro{cnotefield}%
+ \newcunit\newblock
+ \printfield{eventtitle}%
+ \setunit{\ctitleaddonpunct}%
+ \printfield{eventtitleaddon}%
+ \newcunit%
+ \printfield{venue}%
+ \newcunit\newblock
+ \printeventdate%
\setunit{\addspace}\newblock%
\printtext[parens]{%
\usebibmacro{org+publ+loc+year}}%
@@ -5501,6 +5862,7 @@
\DeclareBibliographyDriver{cite:reference}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iffieldundef{clonesourcekey}{}{\newcunit}%
\usebibmacro{citaltitle+stitle}%
\newcunit\newblock
@@ -5553,6 +5915,7 @@
\DeclareBibliographyDriver{cite:report}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\iffieldequalstr{entrysubtype}{unpublished}%
@@ -5600,6 +5963,7 @@
\DeclareBibliographyDriver{cite:review}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iffieldequalstr{entrysubtype}{magazine}%
{\usebibmacro{cmag+news+author}}%
{\usebibmacro{author/editor}}%
@@ -5707,12 +6071,14 @@
\DeclareBibliographyDriver{cite:standard}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\iffieldundef{entrysubtype}%
{}%
{\ifnameundef{author}%
{\iflistundef{organization}%
{}%
- {\printlist{organization}}}%
+ {\printlist{organization}%
+ \usebibmacro{print+nameaddon}}}%
{\usebibmacro{justauthor}}%
\usebibmacro{hlpunct}}%\setunit{\addcomma\addspace}\newblock%
\usebibmacro{citaltitle+stitle}%
@@ -5782,6 +6148,7 @@
\DeclareBibliographyDriver{cite:suppbook}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author}%
\usebibmacro{hlpunct}%\newcunit\newblock
\usebibmacro{inforaft}%
@@ -5845,6 +6212,7 @@
\DeclareBibliographyDriver{cite:thesis}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\usebibmacro{ctitle+stitle}%
@@ -5880,6 +6248,7 @@
\DeclareBibliographyDriver{cite:unpublished}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\usebibmacro{author/editor}%
\usebibmacro{hlpunct}%\setunit{\addcomma\addspace}\newblock
\usebibmacro{ctitle+stitle}%
@@ -5929,6 +6298,7 @@
\DeclareBibliographyDriver{cite:video}{%
\usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
\ifboolexpr{%
test {\iffieldequalstr{entrysubtype}{tvepisode}}%
and
@@ -5984,12 +6354,12 @@
\printfield{volume}%
\printfield{part}%
\setunit{\addspace}
- \bibstring{ofseries}%
- \setunit{\addspace}
- \printtext[maintitle]{%
- \printfield[mtnoformat]{maintitle}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[smtnoformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}
\newcunit
@@ -6158,29 +6528,29 @@
%% comprange code moved to .sty
\DeclareFieldFormat{postnote}{% Changed for page compression option
- \ifboolexpr{%
- togl {cms@comprange}%
- and
- test {\ifpages{#1}}%
- }%
- {\iffieldundef{pagination}%
- {\mkcomprange{#1}}%
- {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}%
+ \ifpages{#1}% xetex and luatex revealed a bug in original logic
+ {\iftoggle{cms@comprange}%
+ {{\iffieldundef{pagination}%
+ {\mkcomprange{#1}}%
+ {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}}%
+ {{\iffieldundef{pagination}%
+ {\mknormrange{#1}}%
+ {\mknormrange[{\mkpageprefix[pagination]}]{#1}}}}}%
{\iffieldundef{pagination}%
{#1}%
{\mkpageprefix[pagination]{#1}}}}%
\DeclareFieldFormat[inreference]{postnote}{%
- \ifboolexpr{%
- togl {cms@comprange}%
- and
- test {\ifpages{#1}}%
- }%
- {\iffieldundef{pagination}%
- {\bibsstring{subverbo}\addspace\mkbibquote{#1}}%
- {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}%
+ \ifpages{#1}%
+ {\iftoggle{cms@comprange}%
+ {\iffieldundef{pagination}%
+ {\bibsstring{subverbo}\addnbspace\mkbibquote{#1}}%
+ {\mkcomprange[{\mkpageprefix[pagination]}]{#1}}}%
+ {\iffieldundef{pagination}%
+ {\bibsstring{subverbo}\addnbspace\mkbibquote{#1}}%
+ {\mknormrange[{\mkpageprefix[pagination]}]{#1}}}}%
{\iffieldundef{pagination}%
- {\bibsstring{subverbo}\addspace\mkbibquote{#1}}%
+ {\bibsstring{subverbo}\addnbspace\mkbibquote{#1}}%
{\mkpageprefix[pagination]{#1}}}}%
\newrobustcmd*{\mkjuridprefix}[1]{%
@@ -6251,20 +6621,47 @@
\mkbibemph{#1}\isdot}
\DeclareFieldFormat[customc]{title}{%
- \iffieldundef{nameaddon}%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ (
+ test {\ifbibliography}%
+ and
+ togl {cms@bibnona}%
+ )
+ or
+ (
+ test {\ifcitation}%
+ and
+ togl {cms@citenona}%
+ )
+ }%
{\mkbibemph{\bibstring{see}}%
\addspace%
#1}%
{#1}}
\DeclareFieldFormat[customc]{citetitle}{%
- \iffieldundef{nameaddon}%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@citenona}%
+ }%
{\mkbibemph{\bibstring{see}}%
\addspace%
#1}%
{\printfield{nameaddon}\addspace #1}}
-\DeclareFieldAlias[customc]{lostitle}[customc]{title}
+\DeclareFieldFormat[customc]{lostitle}{%
+ \ifboolexpr{%
+ test {\iffieldundef{nameaddon}}%
+ or
+ togl {cms@bibnona}%
+ }%
+ {\mkbibemph{\bibstring{see}}%
+ \addspace%
+ #1}%
+ {\addspace #1}}
\DeclareFieldFormat[misc]{title}{%
\iffieldundef{entrysubtype}%
@@ -6288,6 +6685,7 @@
\mkbibparens{\ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}}
\DeclareFieldFormat[dataset]{lostitle}{%
+ \addspace% Instead of in shorthand driver (2.1)
\mkbibparens{\ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}}
\DeclareFieldFormat[review,suppperiodical]{title}{%
@@ -6387,7 +6785,10 @@
\DeclareFieldFormat{letterday}{\mkbibcurdinal{#1}}
\DeclareFieldFormat{note}{%
- \ifcapital{\MakeCapital{#1}}{#1}}%
+ \if@cms@capital{#1}{\MakeCapital{#1}}{#1}}%
+
+\DeclareFieldFormat{capital}{%
+ \ifcapital{\MakeCapital{#1}}{#1}}
\DeclareFieldFormat
[audio,manual,music,patent,report,suppbook,suppcollection,thesis,video]
@@ -6502,14 +6903,34 @@
\DeclareFieldAlias{userd}{titleaddon}% 16th ed.
-\DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1\bibsentence}}% ?!
+\DeclareFieldFormat{nameaddon}{%
+ \ifdefvoid{\cms@naformat}%
+ {\mkbibbrackets{#1\bibsentence}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}%
-\DeclareFieldFormat[online,review,suppperiodical]{nameaddon}{#1\bibsentence}
+\DeclareFieldFormat[online,review,suppperiodical]{nameaddon}{%
+ \ifdefvoid{\cms@naformat}%
+ {#1\ifboolexpr{%(
+ test {\IfEndWith{\thefield{nameaddon}}{)}}%[
+ or
+ test {\IfEndWith{\thefield{nameaddon}}{]}}%
+ }%
+ {\bibsentence}{\isdot}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}
\DeclareFieldFormat[misc]{nameaddon}{%
\iffieldundef{entrysubtype}%
- {\mkbibbrackets{#1\bibsentence}}%
- {#1\bibsentence}}
+ {\ifdefvoid{\cms@naformat}%
+ {\mkbibbrackets{#1\bibsentence}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}%
+ {\ifdefvoid{\cms@naformat}%
+ {#1\ifboolexpr{%(
+ test {\IfEndWith{\thefield{nameaddon}}{)}}%[
+ or
+ test {\IfEndWith{\thefield{nameaddon}}{]}}%
+ }%
+ {\bibsentence}{\isdot}}%
+ {\printtext[\cms@naformat]{#1\isdot}}}}
\DeclareFieldFormat[customc]{nameaddon}{% For cross-refs
\ifbibstring{#1}%
@@ -6544,7 +6965,7 @@
\DeclareFieldFormat{usere}{[#1]} % Better than mkbibbrackets?
\DeclareFieldFormat{titleaddon}{%
- \ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}%
+ \if@cms@capital{#1}{\MakeCapital{#1\isdot}}{#1\isdot}}%
\DeclareFieldAlias{booktitleaddon}{titleaddon}
@@ -6559,10 +6980,14 @@
\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}\isdot}
+\DeclareFieldFormat{injournaltitle}{\mkbibemph{#1}\isdot}
+
\DeclareFieldFormat{issuetitle}{\mkbibquote{#1\isdot}}
\DeclareFieldFormat{shortjournal}{\mkbibemph{#1}\isdot}
+\DeclareFieldFormat{inshortjournal}{\mkbibemph{#1}\isdot}
+
\DeclareFieldFormat[periodical]{shorttitle}{\mkbibemph{#1}\isdot}
\DeclareFieldFormat{jourser}{%
@@ -6608,6 +7033,8 @@
\DeclareFieldFormat{jourvol}{#1}
+\DeclareFieldFormat{shortvol}{#1}
+
\DeclareFieldFormat{sernum}{%
\ifnumeral{#1}%
{\addnbspace #1}%
@@ -6618,15 +7045,38 @@
\DeclareFieldFormat{shortseries}{#1\isdot}
\DeclareFieldFormat{addendum}{%
- \ifcapital{\MakeCapital{#1\isdot}}{#1\isdot}}
+ \if@cms@capital{#1}{\MakeCapital{#1\isdot}}{#1\isdot}}
\DeclareFieldFormat[jurisdiction,legal,legislation]{addendum}{%
\ifcapital{\mkbibparens{\MakeCapital{#1\isdot}}}{\mkbibparens{#1\isdot}}}
-% This works better here than in the entrytail macro -- userf use is
-% no longer a problem, though the page breaking still isn't ideal.
+% There was unfortunate interaction between the case-changing code and
+% cite commands when the latter were at the beginning of the
+% field. This modified \ifcapital will be used in the fields in which
+% the \citeincite(s) commands can appear.
+
+\newrobustcmd*{\if@cms@capital}[1]{%
+ \noexpandarg
+ \StrChar{#1}{1}[\cms@char]%
+ \ifboolexpr{%
+ test {\ifcapital}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincite}}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincitef}}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincites}}%
+ and
+ not test {\ifdefstring{\cms@char}{\citeincitefs}}%
+ }%
+ {\@firstoftwo}%
+ {\@secondoftwo}%
+}
-\DeclareFieldFormat{annotation}{\par\nobreak \vskip \bibitemsep #1}
+% For annotation fixes move all code for separators to the entrytail
+% macro, below.
+
+\DeclareFieldFormat{annotation}{#1}%
\DeclareFieldFormat{part}{% xref revision ???
\ifnumerals{#1}%
@@ -6723,10 +7173,14 @@
not togl {blx@skipbib}%
}%
{\printtext[bibhyperref]{#1}}%
- {#1}}%
+ {\ifentryinbib{\thefield{clonesourcekey}}%
+ {\printtext{\bibhyperref[\abx@field@clonesourcekey]{#1}}}%
+ {#1}}}%
{\iftoggle{cms@allshort}%
{\iftoggle{blx@skipbib}{#1}{\printtext[bibhyperref]{#1}}}%
- {\printtext[bibhyperlink]{#1}}}}%
+ {\iffieldundef{clonesourcekey}%
+ {\printtext[bibhyperlink]{#1}}%
+ {\printtext{\bibhyperlink{\abx@field@clonesourcekey}{#1}}}}}}%
\newrobustcmd*{\cmsshhyper}[1]{%
\iffootnote%
@@ -6765,7 +7219,7 @@
{#1}}%
\ifentrytype{jurisdiction}%
{\newcunit}%
- {\printunit{\relatedpunct}}}% Issue w/ printunit. Our bug?
+ {\iftoggle{smartof}{}{\printunit{\relatedpunct}}}}% Issue w/ printunit.
\DeclareFieldFormat{relatedstring:reprintfrom}{% For notes + bib
\ifboolexpr{%
@@ -6776,8 +7230,7 @@
{#1}%
{\ifcapital%
{\MakeCapital{#1}}%
- {#1}}%
- \addspace}%
+ {#1}}}%
%%%% Commands, for users and internal %%%%
@@ -6815,7 +7268,7 @@
\newcommand*{\reprintpunct}{%
\iftoggle{cms@fullnote}%
{\setunit*{\addsemicolon\addspace}}%
- {\setunit*{\addperiod\addspace}}}
+ {\setunit*{\newunitpunct}}}
\newcommand*{\encypunct}{% for named entries in an encyclopedia
\iftoggle{cms@fullnote}%
@@ -6931,7 +7384,9 @@
{\addcomma\addspace}%
{\addcomma\addspace\bibstring{and}\addspace}}}%
-\renewcommand*{\postnotedelim}{%
+\newcommand*{\journalpagespunct}{\addcolon\space}% Make it configurable
+
+\renewcommand*{\postnotedelim}{% v 2.1: Made all punct use units
\ifboolexpr{%
test {\ifciteibid}%
and
@@ -6943,40 +7398,59 @@
test {\ifentrytype{legislation}}%
)
}%
- {\addspace}%
+ {\setunit{\addspace}}%
{\iftoggle{cms@shortnote}%
{\iffieldequalstr{entrysubtype}{classical}%
{\DeclareNumChars*{abcdeABCDE:}% Makes classical
\iffieldpages{postnote}% test more accurate. See 17.253.
- {\addspace}%
- {\addcomma\addspace}\DeclareNumChars{.}}%
- {\addcomma\addspace}}% 16th ed -- no more volumes test.
+ {\setunit{\addspace}}%
+ {\newcunit}\DeclareNumChars{.}}%
+ {\newcunit}}% 16th ed -- no more volumes test.
{\iftoggle{cms@fullnote}%
{\ifthenelse{\(\ifentrytype{article}\OR
\ifentrytype{review}\OR
\ifentrytype{periodical}\OR
\ifentrytype{suppperiodical}\)\AND\NOT
\iffieldequalstr{entrysubtype}{magazine}}%
- {\addcolon\addspace}%
- {\addcomma\addspace}}%
- {\addcomma\addspace}}}}%
+ {\setunit{\journalpagespunct}}%
+ {\newcunit}}%
+ {\newcunit}}}}%
\newcommand*{\postnotewrapper}{%
- \iftoggle{cms@modpostnote}%
+ \iftoggle{cms@modpostnote}% Multiple bugs in v 2.0.
{\ifboolexpr{%
test {\iffieldstart{postnote}{,}}%
or
test {\iffieldstart{postnote}{\bibrangessep}}%
}%
- {\addcomma}% w/ or w/o \addspace?
- {\ifboolexpr{%
- test {\iffieldstart{postnote}{;}}%
- or
- test {\iffieldstart{postnote}{:}}%
- or
- test {\iffieldstart{postnote}{.}}%
- }%
- {}{\postnotedelim}}}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addcomma}}%
+ {\newcunit}}%
+ {\iffieldstart{postnote}{;}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addsemicolon}}%
+ {\setunit{\addsemicolon\addspace}}}%
+ {\iffieldstart{postnote}{:}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addcolon}}%
+ {\setunit{\addcolon\addspace}}}%
+ {\iffieldstart{postnote}{.}%
+ {\togglefalse{blx@unit}%
+ \expandarg
+ \StrGobbleLeft{\abx@field@postnote}{1}[\abx@field@postnote]%
+ \iffieldstart{postnote}{\ }%
+ {\setunit{\addperiod}}%
+ {\newunit}}%
+ {\postnotedelim}}}}}%
{\postnotedelim}}%
\newrobustcmd*{\iffieldstart}[2]{% Philipp Lehman's code, from
@@ -7077,7 +7551,11 @@
\newbibmacro*{finentry}{%{\finentry} To make annotated bibliography
\togglefalse{cms@switchdates}%
- \ifbibliography
+ \ifboolexpr{%
+ togl {cms@annotation}%
+ or
+ togl {cms@cbxannote}%
+ }%
{\usebibmacro{entrytail}}%
{}%
\finentry}
@@ -7154,11 +7632,30 @@
{}}%
\newbibmacro*{entrytail}{% From reading.bbx, for annotated bibliography
- \newunit\newblock
- \iftoggle{cms@annotation}%
- {\usebibmacro{annotation}%
- \newunit\newblock}%
- {}}%
+ \ifbibliography%
+ {\iftoggle{cms@annotation}%
+ {\togglefalse{blx@unit}%
+ \togglefalse{blx@keepunit}%
+ \setunit{\bibannotesep}%
+ \usebibmacro{annotation}%
+ \newunit\newblock}%
+ {\newunit}}%
+ {\iftoggle{cms@cbxannote}%
+ {\togglefalse{blx@unit}%
+ \togglefalse{blx@keepunit}%
+ \setunit{\citeannotesep}%
+ \usebibmacro{annotation}%
+ \newunit\newblock}%
+ {\newunit}}}%
+
+% From biblatex.def; biblatex 3.15 toggled blx@bibliography off here,
+% but we still need to be able to test it in Chicago, at least with
+% the current code, so redefine the macro.
+
+\renewbibmacro*{annotation}{%
+ \iffieldundef{annotation}%
+ {\printfile[annotation]{\bibannotationprefix\thefield{entrykey}.tex}}%
+ {\printfield{annotation}}}
\newbibmacro*{author+holder}{%
\ifnameundef{author}%
@@ -7182,7 +7679,7 @@
{\bibstring{byauthor}\addspace%
\printnames[byauthor]{author}}}}
-\newbibmacro*{byauthorpunct}{%
+\newbibmacro*{byauthorpunct}{% Obsolete?
\ifthenelse{\ifuseauthor\OR\ifnameundef{author}}%
{\addperiod\addspace}%
{\newcunit}}
@@ -7254,7 +7751,7 @@
togl {cms@namedash}%
}%
{\printtext{\bibnamedash}}%
- {\usebibmacro{journal+sub}%
+ {\usebibmacro{journal+sub}{}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\savefield{journaltitle}{\bbx@lasthash}}}%
@@ -7346,14 +7843,14 @@
{\bibstring{by#2}}%
{\ifbibxstring{by\thefield{#1type}}%
{\bibstring{by\thefield{#1type}}}%
- {\printtext[note]{\thefield{#1type}}}}}%
+ {\printtext[capital]{\thefield{#1type}}}}}%
\newbibmacro*{cbytypestrg}[2]{%
\iffieldundef{#1type}%
{\bibstring{cby#2}}%
{\ifbibxstring{cby\thefield{#1type}}%
{\bibstring{cby\thefield{#1type}}}%
- {\printtext[note]{\thefield{#1type}}}}}%
+ {\printtext[capital]{\thefield{#1type}}}}}%
\newbibmacro*{cbyeditor}{%
\ifnameundef{editor}%
@@ -7618,7 +8115,9 @@
and
not test {\IfBeginWith{\thefield{relatedtype}}{maintitl}}%
}%
- {\printfield{volume}%
+ {\DeclareFieldAlias{citetitle}{title:hook:alt}%
+ \DeclareFieldAlias{shorthand}{shorthand:hook}%
+ \printfield{volume}%
\clearfield{volume}%
\global\let\cbx@incollvol\undefined% Volume fix
\printfield{part}%
@@ -7626,7 +8125,7 @@
\global\let\cbx@incollpart\undefined% Volume fix
\setunit{\addspace}%
\bibstring{ofseries}%
- \setunit{\addspace}}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}}%
{\bibstring{in}\setunit{\addspace}}}%
{\iffieldundef{part}%
{\ifcsdef{cbx@incollpart}%
@@ -7637,13 +8136,17 @@
test {\IfBeginWith{\thefield{entrytype}}{mv}}%
and
not test {\IfBeginWith{\thefield{relatedtype}}{maintitl}}%
+ and
+ togl {cms@xrefpart}%
}%
- {\printfield[xrefpart]{part}%
+ {\DeclareFieldAlias{citetitle}{title:hook:alt}%
+ \DeclareFieldAlias{shorthand}{shorthand:hook}%
+ \printfield[xrefpart]{part}%
\clearfield{part}%
\global\let\cbx@incollpart\undefined% Volume fix
\setunit{\addspace}%
\bibstring{ofseries}%
- \setunit{\addspace}}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}}%
{\bibstring{in}\setunit{\addspace}}}}%
{\iffieldundef{part}%
{\ifcsdef{cbx@incollpart}%
@@ -7652,7 +8155,9 @@
{}%
\ifthenelse{\ifentrytype{mvbook}\OR\ifentrytype{mvcollection}\OR%
\ifentrytype{mvproceedings}\OR\ifentrytype{mvreference}}%
- {\printfield{volume}%
+ {\DeclareFieldAlias{citetitle}{title:hook:alt}%
+ \DeclareFieldAlias{shorthand}{shorthand:hook}%
+ \printfield{volume}%
\clearfield{volume}%
\global\let\cbx@incollvol\undefined% Volume fix
\printfield{part}%
@@ -7660,7 +8165,7 @@
\global\let\cbx@incollpart\undefined% Volume fix
\setunit{\addspace}%
\bibstring{ofseries}%
- \setunit{\addspace}}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}}%
{\bibstring{in}\setunit{\addspace}}}}%
\newbibmacro*{chapincoll}{%
@@ -7691,7 +8196,13 @@
{\printfield{chapter}\clearfield{chapter}%
\iffieldundef{booktitle}%
{}%
- {\addspace\bibstring{of}\setunit{\addspace}}}}%
+ {\iftoggle{cms@reprintfrom}%
+ {\DeclareFieldAlias{btnoformat}{title:hook}}%
+ {\DeclareFieldAlias{btnoformat}{title:hook:alt}}%
+ \DeclareFieldAlias{sbtnoformat}{title}%
+ \DeclareFieldAlias{booktitle}{default}%
+ \addspace\bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}}}}%
\newbibmacro*{chap+as+track}{%
\iffieldundef{chapter}%
@@ -7705,7 +8216,7 @@
{\printfield{chapter}\clearfield{chapter}%
\iffieldundef{booktitle}%
{}%
- {\addspace\bibstring{on}\setunit{\addspace}}}}%
+ {\addspace\bibstring[\cms@ofwrap]{on}\setunit{\addspace}}}}%
\newbibmacro*{caddendum}{% New macros for 16th ed. field exclusion
\ifboolexpr{%
@@ -7878,8 +8389,10 @@
{}%
\printtext[issuetitle]{%
\printfield[itnoformat]{issuetitle}%
- \setunit{\subtitlepunct}%
- \printfield[sitnoformat]{issuesubtitle}}}}
+ \iftoggle{cms@reprintfrom}% Complications due to \smartof
+ {}%
+ {\setunit{\subtitlepunct}%
+ \printfield[sitnoformat]{issuesubtitle}}}}}
\newbibmacro*{btitle+bstitle}{%
\iffieldundef{booktitle}%
@@ -8079,7 +8592,7 @@
{\bibstring{origedition}%
\setunit{\addspace}%
\printlist[edlang]{origlanguage}%
- \addcolon%
+ \addcolon\addspace%
\origfullcite{\thefield{userf}}%
\usebibmacro{endrelated}%
\newunit}%
@@ -8128,7 +8641,7 @@
{\ifthenelse{\iffieldundef{pagination}\AND%
\iffieldundef{bookpagination}\AND\iffieldundef{eid}}%
{\setunit{\postvolpunct}}%
- {\setunit{\addcolon\addspace}}}%
+ {\setunit{\journalpagespunct}}}%
{\addcomma\addspace}}%
{\ifthenelse{\iffieldundef{volume}\AND\iffieldundef{number}}% 16th ed.
{\newcunit%
@@ -8310,7 +8823,7 @@
{\printorigdate}}}%
\newbibmacro*{cjournal+ser+vol+num}{%
- \usebibmacro{journal+sub}%
+ \usebibmacro{journal+sub}{in}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\setunit*{\addspace}%
@@ -8357,7 +8870,7 @@
\setunit{\addcomma\addspace}% need * here?
\printfield[journum]{number}}% Move eid field for 17th ed.
-\newbibmacro*{journal+sub}{%
+\newbibmacro*{journal+sub}[1]{%
\iffieldundef{journaltitle}%
{}%
{\ifboolexpr{%
@@ -8375,9 +8888,9 @@
togl {cms@bibjtabb}%
))
}%
- {\clearlist{location}\printtext[shortjournal]{%
+ {\clearlist{location}\printtext[#1shortjournal]{%
\printfield[jtsnoformat]{shortjournal}}}%
- {\printtext[journaltitle]{%
+ {\printtext[#1journaltitle]{%
\printfield[jtnoformat]{journaltitle}%
\setunit{\subtitlepunct}%
\printfield[sjtnoformat]{journalsubtitle}}}}}%
@@ -8467,7 +8980,7 @@
\usebibmacro{cmsyear}}}
\newbibmacro*{cmag+date+issue}{%
- \usebibmacro{journal+sub}%
+ \usebibmacro{journal+sub}{in}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\newcunit\newblock
@@ -8485,7 +8998,7 @@
\usebibmacro{date+issue}}
\newbibmacro*{mag+date+issue}{%
- \usebibmacro{journal+sub}%
+ \usebibmacro{journal+sub}{in}%
\setunit*{\addspace}%
\printlist[periodplace]{location}%
\newunit\newblock
@@ -8540,6 +9053,8 @@
\newcunit\newblock
\usebibmacro{date+issue}}
+\def\cms@ofwrap#1{#1}
+
\newbibmacro*{cmtitle+mstitle+vol+part+title+stitle}{%
\iffieldundef{maintitle}%
{}%
@@ -8557,12 +9072,12 @@
\printfield{volume}%
\printfield{part}%
\setunit{\addspace}%
- \bibstring{ofseries}%
- \setunit{\addspace}%
- \printtext[maintitle]{%
- \printfield[mtnoformat]{maintitle}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[smtnoformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}}
@@ -8587,12 +9102,12 @@
\printfield{volume}%
\printfield{part}%
\setunit{\addspace}%
- \bibstring{ofseries}%
- \setunit{\addspace}%
- \printtext[maintitle]{%
- \printfield[mtnoformat]{maintitle}%
+ \bibstring[\cms@ofwrap]{ofseries}%
+ \iftoggle{smartof}{}{\setunit{\addspace}}%
+ \printtext[default]{%
+ \printfield[title:hook:alt]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[smtnoformat]{mainsubtitle}}%
+ \printfield[title]{mainsubtitle}}%
\setunit{\ctitleaddonpunct}%
\printfield{maintitleaddon}}}}
@@ -8747,7 +9262,7 @@
{\iffieldundef{part}%
{\ifthenelse{\iffieldnums{pages}\AND%
\iffieldundef{bookpagination}\AND\iffieldnums{volume}}%
- {\newcunit\printfield[default]{volume}%
+ {\newcunit\printfield[shortvol]{volume}%
\postvolpunct%
\printfield{pages}}%
{\newcunit\printfield{volume}%
@@ -8764,7 +9279,7 @@
{\iffieldundef{part}%
{\ifthenelse{\iffieldnums{postnote}\AND%
\iffieldundef{pagination}\AND\iffieldnums{volume}}%
- {\newcunit\printfield[default]{volume}%
+ {\newcunit\printfield[shortvol]{volume}%
\postvolpunct%
\usebibmacro{semel:postnote}}%
{\newcunit\printfield{volume}%
@@ -8925,7 +9440,7 @@
\iffieldundef{part}%
{\ifthenelse{\iffieldnums{pages}\AND%
\iffieldundef{bookpagination}\AND\iffieldnums{volume}}%
- {\newcunit\printfield[default]{volume}%
+ {\newcunit\printfield[shortvol]{volume}%
\postvolpunct%
\printfield{pages}}%
{\newcunit\printfield{volume}%
@@ -8940,7 +9455,7 @@
\iffieldundef{part}%
{\ifthenelse{\iffieldnums{postnote}\AND%
\iffieldundef{pagination}\AND\iffieldnums{volume}}%
- {\newcunit\printfield[default]{volume}%
+ {\newcunit\printfield[shortvol]{volume}%
\postvolpunct%
\usebibmacro{semel:postnote}}%
{\newcunit\printfield{volume}%
@@ -9003,7 +9518,7 @@
\newbibmacro*{hlpunct}{%
\iftoggle{cms@headlessnote}%
- {}%
+ {\iftoggle{cms@reprintfrom}{\setunit{\addspace}}{}}%
{\newcunit\newblock}}
\newbibmacro*{journalprenote}{%
@@ -9115,6 +9630,11 @@
}
\AtEndPreamble{%
+ \iftoggle{cms@inheritshhand}%
+ {\DeclareDataInheritance{*}{*}{%
+ \inherit{shorthand}{shorthand}
+ \inherit{shorthandintro}{shorthandintro}
+ }}{}%
\iftoggle{cms@blogurl}% 17th ed. blogs w/ comments
{\DeclareDataInheritance{article}{review,suppperiodical}{%
\inherit{url}{url}%
@@ -9125,6 +9645,29 @@
{\toggletrue{cms@endnote}\enoteformat}
{}
{\blx@err@patch{'endnotes' package}}}%
+ {}%
+ \iftoggle{cms@strict}%
+ {\let\splitfootnoterule\footnoterule
+ \renewcommand\footnoterule{}%
+ \advance\skip\footins 4\p@\@plus2\p@\relax
+ \gdef\split@prev{0}
+ \let\pagefootnoterule\footnoterule
+ % \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
+ \def\footnoterule{\relax
+ \ifnum\split@prev=\z@
+ \pagefootnoterule
+ \else
+ \splitfootnoterule
+ \fi
+ \xdef\split@prev{\the\insertpenalties}%
+ }}%
+ {}%
+ \ifboolexpr{% Needed for nameaddon 'first' option in notes
+ test {\ifdefvoid{\blx@idemtracker}}%
+ and
+ togl {cms@subseqnona}%
+ }%
+ {\let\blx@idemtracker\blx@idemtracker@context}%
{}}%
\DeclareDataInheritance{*}{*}{%
@@ -9276,7 +9819,7 @@
{\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}%
{\bibstring{\thefield{editortype}s}}%
{\bibstring{\thefield{editortype}}}}%
- {\printtext[note]{\thefield{editortype}}}}%
+ {\printtext[capital]{\thefield{editortype}}}}%
\clearname{editor}}%
\newbibmacro*{parteditstrg}{%
@@ -9311,7 +9854,7 @@
{\ifthenelse{\value{namea}>1\OR\ifandothers{namea}}%
{\bibstring{\thefield{nameatype}s}}%
{\bibstring{\thefield{nameatype}}}}%
- {\printtext[note]{\thefield{nameatype}}}}%
+ {\printtext[capital]{\thefield{nameatype}}}}%
\clearname{namea}}%
\newbibmacro*{clearorigin}{%
@@ -9361,7 +9904,7 @@
\clearfield{titleaddon}%
\clearfield{usere}%
\clearlist{language}%
- \ifentrytype{music}%
+ \ifthenelse{\ifentrytype{music}\OR\ifentrytype{audio}}%
{\clearfield{note}\clearfield{howpublished}\clearfield{eventyear}%
\clearfield{eventmonth}}%
{}}%
@@ -9396,6 +9939,11 @@
{\newcunitpunct}%
{\newunitpunct}}}
+\newcommand*{\relateddelimshort}{%
+ \ifnumequal{\value{bbx:relatedcount}}{\value{bbx:relatedtotal}}%
+ {\addsemicolon\addspace\bibstring{and}\space}%
+ {\addsemicolon\addspace}}%
+
\newbibmacro*{related:reviewof}[1]{%
\iftoggle{cms@shortnote}%
{\entrydata*{#1}{%
@@ -9555,13 +10103,13 @@
\usebibmacro{at+every+item}%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}%
- {\begingroup
- \mkrelatedstring%
- \lbx@initnamehook{#1}%
- \endgroup}
- {}}%
+ {\begingroup
+ \mkrelatedstringtext{%
+ \lbx@initnamehook{##1}}%
+ \endgroup}%
+ {}}%
\printnames[bytranslator]{translator}%
- \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\addspace}%
+ \setunit*{\addspace\bibstring[\mkrelatedstringtext]{astitle}\addspace}%
\clearname{translator}%
\usebibmacro{cite:origfull}}}%
@@ -9595,7 +10143,9 @@
\ifthenelse{\ifentrytype{mvbook}\OR\ifentrytype{mvcollection}\OR%
\ifentrytype{mvproceedings}\OR\ifentrytype{mvreference}}%
{\iffieldundef{volumes}{}{\savefield*{volumes}{\cms@mtvolumes}}%
- \bibstring{in}\nopunct}%
+ \iftoggle{cms@reprintfrom}%
+ {}%
+ {\bibstring{in}\nopunct}}%
{\ifcsdef{cms@mtvolumes}{\restorefield{savedvolumes}{\cms@mtvolumes}}{}%
\ifthenelse{\iffieldundef{volume}\AND\iffieldundef{part}}%
{\ifthenelse{\iffieldundef{volumes}\AND\iffieldundef{savedvolumes}}%
@@ -9637,8 +10187,12 @@
\ifcsequal{cms@mtnamec}{cms@mtsecnamec}%
{\clearname{namec}}%
{}}%
- {}}%
- \ifbibliography%
+ {}\iftoggle{cms@reprintfrom}{\newcunit}{}}%
+ \ifboolexpr{%
+ test {\ifbibliography}%
+ and
+ not togl {cms@reprintfrom}%
+ }%
{\printtext[cmsdefrelhypertarget]{%
\usedriver%
{\ifnameundef{savedauthor}%
@@ -9804,102 +10358,91 @@
}%
{}%
{\midsentence% Why is this kludge necessary?
- \setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ \setunit{\addspace\bibstring[\mkrelatedstringtext]{bypublisher}\space}%
\printlist{publisher}%
\setunit{\addcomma\space}%
\iflistsequal{location}{savedlocation}%
{}%
{\printlist{location}}}}}
+\newbibmacro*{related:short}[1]{% For cross-refs in bib.
+ \entrydata*{#1}{%
+ \toggletrue{cms@noidem}%
+ \togglefalse{cms@fullnote}%
+ \toggletrue{cms@shortnote}%
+ \usebibmacro{cite:short}{\thefield{entrytype}}}}%
+
\DeclareFieldFormat{title:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{#1}}
+\DeclareFieldFormat{title:hook:alt}{%
+ \iftoggle{cms@reprintmt}%
+ {\begingroup
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
+ \endgroup}%
+ {\lbx@inittitlehook{#1}}% Inside entries don't use main doc. lang.
+ \mkbibemph{#1}}
+
\DeclareFieldFormat{ititle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
- \mkbibquote{#1}}
+ \iffieldundef{issuesubtitle}%
+ {\mkbibquote{#1}}%
+ {\mkbibquote{#1\subtitlepunct\printfield{issuesubtitle}}}}
\DeclareFieldFormat{chapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1\addspace\bibstring{in}}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{chapter}}%
+ \bibstring{chapter}~#1\addspace\bibstring{in}}%
+ \endgroup}%
\DeclareFieldFormat{avchapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{chapter}}%
+ \bibstring{chapter}~#1}
+ \endgroup}%
\DeclareFieldFormat{muschapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{track}}%
- \endgroup
- \bibstring{track}~#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{track}}%
+ \bibstring{track}~#1}%
+ \endgroup}
+
+\DeclareFieldFormat{volume:hook}{%
+ \begingroup
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{volume}}%
+ \bibstring{volume}~#1}%
+ \endgroup}%
+
+\DeclareFieldFormat{parttoo:hook}{%
+ \ifnumerals{#1}%
+ {\addcomma\addspace\bibstring[\mkrelatedstringtext]{partvolume}~#1}%
+ {\addcomma\addspace\ifcapital{\MakeCapital{#1}}{#1}}}
+
+\DeclareFieldFormat{part:hook}{%
+ \begingroup
+ \ifnumerals{#1}%
+ {\mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{partvolume}}%
+ \bibstring{partvolume}~#1}}%
+ {\mkrelatedstringtext{\lbx@inittitlehook{#1}}%
+ \ifcapital{\MakeCapital{#1}}{#1}}%
+ \endgroup}
+
+\DeclareFieldFormat{shorthand:hook}{%
+ \lbx@inittitlehook{#1}%
+ #1}
\DeclareFieldFormat{sitnoformat}{#1}
\DeclareFieldFormat{sjtnoformat}{#1}
@@ -9913,15 +10456,7 @@
\DeclareFieldFormat{btnoformat}{#1}
\DeclareFieldFormat{mtnoformat}{#1}
-\providetoggle{cms@otherlang}
-
-\apptocmd\blx@opt@autolang@other%
-{\toggletrue{cms@otherlang}}%
-{\blx@info@noline{Patching 'autolang=other' option}}
-{\PackageWarningNoLine{biblatex-chicago}%
- {Upgrading biblatex to >v2.7a recommended,\MessageBreak
- especially if you are using the "related"\MessageBreak
- functionality}}
+\providetoggle{cms@reprintmt}
\newbibmacro*{cms:titlehook}{% Needed for full drivers in reprintfrom
\ifthenelse{\iffieldundef{chapter}\OR\NOT\(\ifentrytype{audio}\OR%
@@ -9933,14 +10468,35 @@
{\iffieldundef{booktitle}%
{\iffieldundef{journaltitle}% Switched order for 17th ed.
{\iffieldundef{maintitle}%
- {}%
- {\DeclareFieldAlias{mtnoformat}{title:hook}%
- \DeclareFieldAlias{smtnoformat}{title}%
- \DeclareFieldAlias{maintitle}{default}}}%
+ {\ifthenelse{\iffieldequalstr{relatedtype}{maintitle}\OR%
+ \iffieldequalstr{relatedtype}{maintitlenc}}%
+ {\DeclareFieldAlias{tnoformat}{title:hook}%
+ \DeclareFieldAlias{stnoformat}{citetitle}%
+ \DeclareFieldAlias[video]{title}{default}%
+ \DeclareFieldAlias[audio]{title}{default}%
+ \DeclareFieldAlias[music]{title}{default}%
+ \DeclareFieldAlias{title}{default}%
+ \DeclareFieldAlias[periodical]{shorttitle}{series}}%
+ {}}%
+ {\toggletrue{cms@reprintmt}%
+ \ifthenelse{\(\iffieldundef{volume}\AND\iffieldundef{part}\)%
+ \OR\ifentrytype{inbook}\OR\ifentrytype{incollection}\OR%
+ \ifentrytype{inproceedings}\OR\ifentrytype{letter}}%
+ {\DeclareFieldAlias{mtnoformat}{title:hook}%
+ \DeclareFieldAlias{smtnoformat}{title}%
+ \DeclareFieldAlias{maintitle}{default}}%
+ {\iffieldundef{volume}%
+ {\DeclareFieldAlias{part}{part:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}%
+ {\DeclareFieldAlias{volume}{volume:hook}%
+ \DeclareFieldAlias{part}{parttoo:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}}}}%
{\DeclareFieldAlias{jtnoformat}{title:hook}%
\DeclareFieldAlias{sjtnoformat}{title}%
\DeclareFieldAlias{journaltitle}{default}%
+ \DeclareFieldAlias{injournaltitle}{default}%
\DeclareFieldAlias{shortjournal}{series}%
+ \DeclareFieldAlias{inshortjournal}{series}%
\DeclareFieldAlias{jtsnoformat}{title:hook}}}%
{\DeclareFieldAlias{btnoformat}{title:hook}%
\DeclareFieldAlias{sbtnoformat}{title}%
@@ -9952,16 +10508,16 @@
\DeclareFieldAlias[music]{title}{default}%
\DeclareFieldAlias{title}{default}%
\DeclareFieldAlias[periodical]{shorttitle}{series}}}%
- {\iffieldundef{issuesubtitle}%
- {\DeclareFieldAlias{itnoformat}{ititle:hook}%
- \DeclareFieldAlias{issuetitle}{default}}%
- {\DeclareFieldAlias{issuetitle}{ititle:hook}}}}%
+ {\DeclareFieldAlias{itnoformat}{ititle:hook}%
+ \DeclareFieldAlias{issuetitle}{default}}}%
{\ifthenelse{\ifentrytype{audio}\OR\ifentrytype{music}\OR%
\ifentrytype{video}}%
{\iffieldundef{title}%
{\ifentrytype{music}%
- {\DeclareFieldAlias[music]{chapter}{muschapter:hook}}%
- {\DeclareFieldAlias{chapter}{avchapter:hook}}}%
+ {\DeclareFieldAlias[music]{chapter}{muschapter:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}%
+ {\DeclareFieldAlias{chapter}{avchapter:hook}%
+ \let\cms@ofwrap\mkrelatedstringtext}}%
{\DeclareFieldAlias{tnoformat}{title:hook}%
\DeclareFieldAlias{stnoformat}{citetitle}%
\DeclareFieldAlias[video]{title}{default}%
@@ -9983,10 +10539,12 @@
\usedriver
{\DeclareNameAlias{sortname}{default}\clearfield{postnote}%
\usebibmacro{clearpublin}\clearfield{shorthand}%
+ \clearfield{crossref}\clearfield{xref}%
+ \toggletrue{cms@bookcitexref}\global\toggletrue{cms@reprintfrom}%
\toggletrue{cms@fullnote}\toggletrue{cms@headlessnote}%
\toggletrue{cms@origpublished}\frenchspacing%
\usebibmacro{cms:titlehook}}%
- {cite:\thefield{entrytype}}}}
+ {cite:\thefield{entrytype}}}\global\togglefalse{cms@reprintfrom}}%
\newbibmacro*{cite:related:full}{%
\printtext[cmsdefrelhypertarget]{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx
index 383cc3cd18..e406c5847e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.bbx
@@ -2,7 +2,7 @@
% standard.bbx It provides the bibliography formatting for the Chicago
% notes + bibliography style.
-\ProvidesFile{chicago-notes16.bbx}[2020/04/20 v 3.14 biblatex
+\ProvidesFile{chicago-notes16.bbx}[2021/03/27 v 3.16 biblatex
bibliography style]
%%%% Initialize and format bibliography and los %%%%
@@ -3644,6 +3644,8 @@ bibliography style]
%%%% Related functionality from standard.bbx %%%%
+\providecommand*{\mkrelatedstringtext}[1]{{{\mainlang #1}}}
+
\newcounter{bbx:relatedcount}
\newcounter{bbx:relatedtotal}
@@ -3714,14 +3716,14 @@ bibliography style]
test {\ifbibxstring{\thefield{relatedtype}s}}%
}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}s}}}%
{\iffieldbibstring{relatedtype}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}}}}%
{}}}%
{\iffieldbibstring{relatedstring}%
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}%
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedstring}}}}%
{\printfield[\bbx@tempb]{relatedstring}}}%
\docsvfield{related}%
\usebibmacro{endrelatedloop}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx
index bf8060da7f..ae7e9b1a7a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/chicago-notes16.cbx
@@ -3,7 +3,7 @@
% of providing footnote citations and a bibliography formatted
% according to the specifications of the Chicago Manual of Style.
-\ProvidesFile{chicago-notes16.cbx}[2020/04/20 v 3.14 biblatex citation style]
+\ProvidesFile{chicago-notes16.cbx}[2021/03/27 v 3.16 biblatex citation style]
%%%% Biblatex initialization + Chicago options + Toggles %%%%
@@ -1285,13 +1285,7 @@
\ifhyperref%
{\hypertarget{cite.\the\c@refsection @\abx@field@entrykey}{}}%
{}%
- \nopunct%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\addspace}{\unspace}}%\unspace Put \nopunct and \unspace here for 0.8e.
+ \nopunct}%\unspace Put \nopunct and \unspace here for 0.8e.
{\usedriver
{\DeclareNameAlias{sortname}{default}\clearfield{postnote}%
\usebibmacro{clearpublin}\clearfield{shorthand}%
@@ -1444,6 +1438,8 @@
\DeclareMultiCiteCommand{\headlessparenshortcites}[\mkbibparens]%
{headlessparenshortcite}{\multicitedelim}
+\def\cms@cicpunct{}%
+
%% Textcite commands adapted from verbose.cbx %%
\DeclareCiteCommand{\cbx@textcite}
@@ -4472,7 +4468,7 @@
{\ifcapital%
{\MakeCapital{#1}}%
{#1}}%
- \addspace}%
+}%\addspace
%%%% Commands, for users and internal %%%%
@@ -5481,8 +5477,10 @@
{}%
\printtext[issuetitle]{%
\printfield[itnoformat]{issuetitle}%
- \setunit{\subtitlepunct}%
- \printfield[sitnoformat]{issuesubtitle}}}}
+ \iftoggle{cms@origpublished}% Complications due to \smartof
+ {}%
+ {\setunit{\subtitlepunct}%
+ \printfield[sitnoformat]{issuesubtitle}}}}}
\newbibmacro*{btitle+bstitle}{%
\iffieldundef{booktitle}%
@@ -6496,7 +6494,7 @@
\newbibmacro*{hlpunct}{%
\iftoggle{cms@headlessnote}%
- {}%
+ {\iftoggle{cms@origpublished}{\setunit{\addspace}}{}}%
{\newcunit\newblock}}
\newbibmacro*{journalprenote}{%
@@ -6906,13 +6904,13 @@
\usebibmacro{at+every+item}%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}%
- {\begingroup
- \mkrelatedstring%
- \lbx@initnamehook{#1}%
- \endgroup}
- {}}%
+ {\begingroup
+ \mkrelatedstringtext{%
+ \lbx@initnamehook{##1}}%
+ \endgroup}%
+ {}}%
\printnames[bytranslator]{translator}%
- \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\addspace}%
+ \setunit*{\addspace\bibstring[\mkrelatedstringtext]{astitle}\addspace}%
\clearname{translator}%
\usebibmacro{cite:origfull}}}%
@@ -6991,7 +6989,7 @@
}%
{}%
{\midsentence% Why is this kludge necessary?
- \setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}%
+ \setunit{\addspace\bibstring[\mkrelatedstringtext]{bypublisher}\space}%
\printlist{publisher}%
\setunit{\addcomma\space}%
\iflistsequal{location}{savedlocation}%
@@ -7000,75 +6998,33 @@
\DeclareFieldFormat{title:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
\mkbibemph{#1}}
\DeclareFieldFormat{ititle:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{#1}}%
\endgroup
- \mkbibquote{#1}}
+ \iffieldundef{issuesubtitle}%
+ {\mkbibquote{#1}}%
+ {\mkbibquote{#1\subtitlepunct\printfield{issuesubtitle}}}}
\DeclareFieldFormat{chapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1\addspace\bibstring{in}}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{chapter}}%
+ \bibstring{chapter}~#1\addspace\bibstring{in}}%
+ \endgroup}%
\DeclareFieldFormat{avchapter:hook}{%
\begingroup
- \mkrelatedstring%
- \ifboolexpr{%
- togl {cms@otherlang}%
- and
- not test {\iffieldundef{langid}}%
- }%
- {\unspace}{}%
- \ifdefstring{\blx@main@language}{french}%
- {}%
- {\iftoggle{smartof}%
- {\let\lbx@inittitlehook\lbx@fr@smartof}%
- {}}%
- \lbx@inittitlehook{\bibstring{chapter}}%
- \endgroup
- \bibstring{chapter}~#1}%
+ \mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{chapter}}%
+ \bibstring{chapter}~#1}
+ \endgroup}%
\DeclareFieldFormat{sitnoformat}{#1}
\DeclareFieldFormat{sjtnoformat}{#1}
@@ -7082,15 +7038,15 @@
\DeclareFieldFormat{btnoformat}{#1}
\DeclareFieldFormat{mtnoformat}{#1}
-\providetoggle{cms@otherlang}
+% \providetoggle{cms@otherlang}
-\apptocmd\blx@opt@autolang@other%
-{\toggletrue{cms@otherlang}}%
-{\blx@info@noline{Patching 'autolang=other' option}}
-{\PackageWarningNoLine{biblatex-chicago}%
- {Upgrading biblatex to >v2.7a recommended,\MessageBreak
- especially if you are using the "related"\MessageBreak
- functionality}}
+% \apptocmd\blx@opt@autolang@other%
+% {\toggletrue{cms@otherlang}}%
+% {\blx@info@noline{Patching 'autolang=other' option}}
+% {\PackageWarningNoLine{biblatex-chicago}%
+% {Upgrading biblatex to >v2.7a recommended,\MessageBreak
+% especially if you are using the "related"\MessageBreak
+% functionality}}
\newbibmacro*{cms:titlehook}{% Needed for full drivers in reprintfrom
\ifthenelse{\iffieldundef{chapter}\OR\NOT\(\ifentrytype{audio}\OR%
@@ -7121,10 +7077,8 @@
\DeclareFieldAlias[music]{title}{default}%
\DeclareFieldAlias{title}{default}%
\DeclareFieldAlias[periodical]{shorttitle}{series}}}%
- {\iffieldundef{issuesubtitle}%
- {\DeclareFieldAlias{itnoformat}{ititle:hook}%
- \DeclareFieldAlias{issuetitle}{default}}%
- {\DeclareFieldAlias{issuetitle}{ititle:hook}}}}%
+ {\DeclareFieldAlias{itnoformat}{ititle:hook}%
+ \DeclareFieldAlias{issuetitle}{default}}}%
{\ifthenelse{\ifentrytype{audio}\OR\ifentrytype{music}\OR%
\ifentrytype{video}}%
{\iffieldundef{title}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx
index 3934e01c8f..27a0cbea6c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-american.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-american.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-american.lbx}[2021/03/27 v 3.16 biblatex localization]
\InheritBibliographyExtras{american}
@@ -9,6 +9,8 @@
\savecommand\mkdaterangecompextra%
\savecommand\mkdaterangeterseextra%
\savecommand\mkdaterangefullextra%
+ \savecommand\cms@cicpunct%
+ \def\cms@cicpunct{\ifcitation{}{\addperiod\printunit{\space\bibsentence}}}%
\def\introductionname{Introduction}%
\def\sectionname{Section}%
\def\subsectionname{Subsection}%
@@ -125,6 +127,7 @@
\restorecommand\mkdaterangecompextra%
\restorecommand\mkdaterangeterseextra%
\restorecommand\mkdaterangefullextra%
+ \restorecommand\cms@cicpunct%
}
\DeclareBibliographyStrings{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx
index 320935b6eb..eaef1d770d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-brazilian.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-brazilian.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-brazilian.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Strings provided by native speaker Gustavo Barros.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx
index 74db7a87f7..ab14578a30 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-british.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-british.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-british.lbx}[2021/03/27 v 3.16 biblatex localization]
\InheritBibliographyExtras{british}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx
index 662909b8ad..01f30be3c0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-dutch.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-dutch.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-dutch.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Strings provided by native speaker Wouter Lancee.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx
index 571b232b77..daa43138e1 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-finnish.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-finnish.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-finnish.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated by a native speaker (Antti-Juhani Kaijanaho).
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx
index c2a6b66492..52c03352bf 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-french.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-french.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-french.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Some strings still missing
@@ -81,9 +81,10 @@
afterwordto = {{postface \`a}{postf\adddot\ \`a}},
forewordto = {{pr\'eface \`a}{pr\'ef\adddot\ \`a}},
introductionto = {{introduction \`a}{introd\adddot\ \`a}},
- partvolume = {{\unspace}{\unspace}},
+ partvolume = {{livre}{livre}},
by = {{par}{par}},
of = {{de}{de}},
+ ofseries = {{\smartof}{\smartof}},
on = {{sur}{sur}},
compiler = {{comp\adddot}{comp\adddot}},
compilers = {{comp\adddot}{comp\adddot}},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx
index 7bf991606c..51cdb8dc66 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-german.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-german.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-german.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated strings and formatting decisions need review by native
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx
index 0524c160d8..2dd0a86714 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-icelandic.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-icelandic.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-icelandic.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated by a native speaker (Baldur Kristinsson).
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx
index ac93c989b9..c18325c696 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-ngerman.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-ngerman.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-ngerman.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated strings and formatting decisions need review by native
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx
index 2b53432fb5..c5b1623efa 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norsk.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-norsk.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-norsk.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated by a native speaker (H{\aa}kon Malmedal).
@@ -421,7 +421,7 @@
verses = {{v\adddot}{v\adddot}},
number = {{nr\adddot}{nr\adddot}},
chapter = {{kap\adddot}{kap\adddot}},
- track = {{sporet}{sporet}},
+ track = {{spor}{spor}},
cfromamerican = {{fra amerikansk-engelsk av}{fra amerikansk-engelsk av}},
cfrombrazilian = {{fra brasiliansk-portugisisk av}{fra
brasiliansk-portugisisk av}},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx
index fd690c94bf..9d4e3e4a55 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-norwegian.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-norwegian.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-norwegian.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated by a native speaker (H{\aa}kon Malmedal).
@@ -421,7 +421,7 @@
verses = {{v\adddot}{v\adddot}},
number = {{nr\adddot}{nr\adddot}},
chapter = {{kap\adddot}{kap\adddot}},
- track = {{sporet}{sporet}},
+ track = {{spor}{spor}},
cfromamerican = {{fra amerikansk-engelsk av}{fra amerikansk-engelsk av}},
cfrombrazilian = {{fra brasiliansk-portugisisk av}{fra
brasiliansk-portugisisk av}},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx
index e5d451151b..98f4181d6b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-nynorsk.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-nynorsk.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-nynorsk.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated by a native speaker (H{\aa}kon Malmedal).
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-romanian.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-romanian.lbx
new file mode 100644
index 0000000000..63a213e0bf
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-romanian.lbx
@@ -0,0 +1,758 @@
+\ProvidesFile{cms-romanian.lbx}[2021/03/27 v 3.16 biblatex localization]
+
+% STATUS OF THIS FILE
+% - Strings provided by native speaker Patrick Danilevici, creator of
+% - the main romanian.lbx file in biblatex.
+
+\InheritBibliographyExtras{romanian}
+
+\DeclareBibliographyExtras{%
+ \savecommand\mkdaterangecomp%
+ \savecommand\mkdaterangeterse%
+ \savecommand\mkdaterangefull%
+ \savecommand\mkdaterangecompextra%
+ \savecommand\mkdaterangeterseextra%
+ \savecommand\mkdaterangefullextra%
+ \savecommand\cms@datelong%
+ \savecommand\postvolpunct%
+ \savecommand\journalpagespunct%
+ \savecommand\bibdaterangesep%
+ \toggletrue{cms@postposit}%
+ \def\introductionname{Introducere}%
+ \def\sectionname{Secțiune}%
+ \def\subsectionname{Subsecțiune}%
+ \def\forewordname{Prefață}%
+ \def\notesname{Note}%
+ \protected\def\mkjuridordinal{\mkbibordinal}%
+ \savefieldformat{postnote}%
+ \savefieldformat{pages}%
+ \savefieldformat{shortvol}%
+ \savefieldformat{jourvol}%
+ \savefieldformat{injournaltitle}%
+ \savefieldformat{inshortjournal}%
+ \savefieldformat{part}%
+ \savefieldformat{part:hook}%
+ \savefieldformat{parttoo:hook}%
+ \renewrobustcmd*{\bibdaterangesep}{\bibrangedash}
+ \DeclareFieldFormat{postnote}{%
+ \ifpages{#1}%
+ {\iffieldequalstr{entrysubtype}{classical}%
+ {\iftoggle{cms@comprange}%
+ {\mkcomprange{#1}}%
+ {\mknormrange{#1}}}%
+ {\iftoggle{cms@comprange}%
+ {\mkpageprefix[pagination][\mkcomprange]{#1}}%
+ {\mkpageprefix[pagination][\mknormrange]{#1}}}}%
+ {\iffieldequalstr{entrysubtype}{classical}%
+ {#1}%
+ {\mkpageprefix[pagination]{#1}}}}%
+ \DeclareFieldFormat{pages}{%
+ \ifboolexpr{%
+ togl {cms@comprange}%
+ and
+ test {\ifpages{#1}}%
+ }%
+ {\mkpageprefix[bookpagination][\mkcomprange]{#1}}%
+ {\mkpageprefix[bookpagination]{#1}}}%
+ \DeclareFieldAlias{shortvol}{volume}%
+ \DeclareFieldFormat{jourvol}{\addcomma\space\bibstring{volume}\space #1}%
+ \DeclareFieldFormat{injournaltitle}{%
+ \ifthenelse{\iffieldundef{issuetitle}\AND\iffieldundef{note}}%
+ {\bibstring{in}\space\mkbibemph{#1}\isdot}%
+ {\mkbibemph{#1}\isdot}}%
+ \DeclareFieldFormat{part}{%
+ \ifinteger{#1}
+ {\addcomma\addspace\bibstring{partvolume}~\mkcmsrompart{#1}}%
+ {\addcomma\addspace\ifcapital{\MakeCapital{#1}}{#1}}}%
+ \DeclareFieldFormat{parttoo:hook}{%
+ \ifinteger{#1}%
+ {\addcomma\addspace%
+ \bibstring[\mkrelatedstringtext]{partvolume}~\mkcmsrompart{#1}}%
+ {\addcomma\addspace\ifcapital{\MakeCapital{#1}}{#1}}}%
+ \DeclareFieldFormat{part:hook}{%
+ \begingroup
+ \ifinteger{#1}%
+ {\mkrelatedstringtext{%
+ \lbx@inittitlehook{\bibxstring{partvolume}}%
+ \bibstring{partvolume}~\mkcmsrompart{#1}}}%
+ {\mkrelatedstringtext{\lbx@inittitlehook{#1}}%
+ \ifcapital{\MakeCapital{#1}}{#1}}%
+ \endgroup}%
+ \protected\def\mkcmsrompart#1{%
+ \ifnumgreater{#1}{1}
+ {\autocap{a}~#1-a}
+ {#1}}%
+ \protected\def\cmsmkdecade#1#2{%
+ \dateeraprintpre{#2year}%
+ \bibsstring{decade}%
+ \printdelim{dateaddelim}%
+ \stripzeros{\thefield{#2year}}%
+ \cmsdateeraprint{#2endyear}\clearfield{#2endyear}%
+ \ifbool{cms:extraparens}%
+ {\usebibmacro{cmsparensextradate}%
+ \global\boolfalse{cms:extraparens}}%
+ {\usebibmacro{cmsextradate}}}%
+ \protected\def\cmsmkcentury#1{%
+ \ifnumequal{\thefield{#1year}}{1}%
+ {}{\dateeraprintpre{#1year}}%
+ \bibsstring{century}%
+ \printdelim{dateaddelim}%
+ \csuse{mkcmscentury}{#1year}%
+ \cmsdateeraprint{#1endyear}\clearfield{#1endyear}%
+ \usebibmacro{cmsparensextradate}%
+ \global\boolfalse{cms:extraparens}}%
+ \protected\def\mkcmscentury#1{%
+ \MakeUppercase{\romannumeral\numexpr\thefield{#1}/100+1}-lea}%
+ \protected\def\mkdaterangecomp{%
+ \cms@mkbibrangetrunc{long}}%
+ \protected\def\mkdaterangeterse{%
+ \cms@mkbibrangetrunc{short}}%
+ \protected\def\mkdaterangefull{%
+ \cms@mkbibrangefull}%
+ \protected\def\mkdaterangecompextra{%
+ \cms@mkyearrangeextra[]{long}}%
+ \protected\def\mkdaterangeterseextra{%
+ \cms@mkyearrangeextra[]{short}}%
+ \protected\def\mkdaterangefullextra{%
+ \cms@mkyearrangeextra[1]}%
+ \def\cms@datelong#1{\csname print#1date\endcsname}%
+ \renewcommand*{\postvolpunct}{\addcomma\space}%
+ \renewcommand*{\journalpagespunct}{\addcomma\space}}%
+
+\UndeclareBibliographyExtras{%
+ \restorecommand\mkdaterangecomp%
+ \restorecommand\mkdaterangeterse%
+ \restorecommand\mkdaterangefull%
+ \restorecommand\mkdaterangecompextra%
+ \restorecommand\mkdaterangeterseextra%
+ \restorecommand\mkdaterangefullextra%
+ \restorecommand\cms@datelong%
+ \restorecommand\postvolpunct%
+ \restorecommand\journalpagespunct%
+ \restorecommand\bibdaterangesep%
+ \togglefalse{cms@postposit}%
+ \restorefieldformat{postnote}%
+ \restorefieldformat{pages}%
+ \restorefieldformat{shortvol}%
+ \restorefieldformat{jourvol}%
+ \restorefieldformat{injournaltitle}%
+ \restorefieldformat{inshortjournal}%
+ \restorefieldformat{part}%
+ \restorefieldformat{part:hook}%
+ \restorefieldformat{parttoo:hook}%
+}
+
+\DeclareBibliographyStrings{%
+ inherit = {romanian},
+ afterwordto = {{postfață la}{postf\adddot\space la}},
+ forewordto = {{prefață la}{pref\adddot\space la}},
+ introductionto = {{introducere la}{introd\adddot\space la}},
+ partvolume = {{partea}{partea}},
+ by = {{de}{de}},
+ of = {{la}{la}},
+ on = {{în}{în}},
+ compiler = {{red\adddot}{red\adddot}},
+ compilers = {{red\adddot}{red\adddot}},
+ transcompiler = {{trad\adddot\addspace și alcăt\adddot}%
+ {trad\adddot\addspace și alcăt\adddot}},
+ transcompilers = {{trad\adddot\addspace și alcăt\adddot}%
+ {trad\adddot\addspace și alcăt\adddot}},
+ editortranscompiler = {{ed\adddot\addcomma\addspace
+ trad\adddot\addcomma\addspace și alcăt\adddot}%
+ {ed\adddot\addcomma\addspace
+ trad\adddot\addcomma\addspace și alcăt\adddot}},
+ editorcompiler = {{ed\adddot\addspace și alcăt\adddot}%
+ {ed\adddot\addspace și alcăt\adddot}},
+ editortranslator = {{ed\adddot\addspace și trad\adddot}%
+ {ed\adddot\addspace și trad\adddot}},
+ editortranscompilers = {{ed\adddot\addcomma\addspace
+ trad\adddot\addcomma\addspace și alcăt\adddot}%
+ {ed\adddot\addcomma\addspace
+ trad\adddot\addcomma\addspace și alcăt\adddot}},
+ editorcompilers = {{ed\adddot\addspace și alcăt\adddot}%
+ {ed\adddot\addspace și alcăt\adddot}},
+ editortranslators = {{ed\adddot\addspace și trad\adddot}%
+ {ed\adddot\addspace și trad\adddot}},
+ conductor = {{dirij\adddot}{dirij\adddot}},
+ conductors = {{dirij\adddot}{dirij\adddot}},
+ director = {{regiz\adddot}{regiz\adddot}},
+ directors = {{regiz\adddot}{regiz\adddot}},
+ none = {{}{}},
+ nones = {{}{}},
+ producer = {{prod\adddot}{prod\adddot}},
+ producers = {{prod\adddot}{prod\adddot}},
+ editor = {{ed\adddot}{ed\adddot}},
+ editors = {{ed\adddot}{ed\adddot}},
+ choreographer = {{coreogr\adddot}{coreogr\adddot}},
+ choreographers = {{coreogr\adddot}{coreogr\adddot}},
+ ibidem = {{ibid\adddot}{id\adddot}},% Shorter for legal
+ origpub = {{publicare originală ca\addspace}%
+ {pub\adddot\ orig\adddot\ ca\addspace}},
+ origpubin = {{prima ediție}%
+ {prima ed\adddot}},
+ origpublin = {{publicare originală în\addspace}%
+ {pub\adddot\ orig\adddot\addspace în\addspace}},
+ origpubyear = {{publicare originală în\addspace}%
+ {pub\adddot\ orig\adddot\addspace}},
+ origpubyearalt = {{prima ediție\addspace}%
+ {prima ed\adddot\addspace}},
+ origreleaseyear = {{lansare originală în\addspace}%
+ {lans\adddot\ orig\addspace}},
+ origshownyear = {{prezentare originală în\addspace}%
+ {prez\adddot\ orig\addspace}},
+ origedition ={{ediție}{ed\adddot}},
+ revisededition = {{ed\adddot\addspace reviz\adddot}%
+ {ed\adddot\addspace reviz\adddot}},
+ broadcast = {{difuzare}{difuzare}},
+ songrecorded = {{înregistrat}{înregistrat}},
+ discrecorded = {{înregistrat}{înregistrat}},
+ numbers = {{nr\adddot}{nr\adddot}},
+ nodate = {{{}f\adddot d\adddot}{{}f\adddot d\adddot}},
+ commonera = {{era noastră}{e\adddot n\adddot}}, %long
+ beforecommonera= {{înaintea erei noastre}{î\adddot e\adddot n\adddot}}, %long
+ annodomini = {{Anul Domnului}{AD}}, % long
+ beforechrist = {{înainte de Hristos}{î\adddot Hr\adddot}}, % long
+ circa = {{circa}{cca\adddot}}, % long
+ am = {{am}{a\adddot m\adddot}}, %
+ pm = {{pm}{p\adddot m\adddot}},
+ decade = {{anii}{anii}}, % very good %
+ century = {{secolul al}{sec\adddotspace al}}, %
+ pseudonym = {{pseud\adddot}{pseud\adddot}},
+ patentfiled = {{depus}{depus}},
+ patentissued = {{eliberat}{eliberat}},
+ inlang = {{în\addspace}{în\addspace}},
+ edamerican = {{engleză}{engleză}},
+ edbrazilian = {{braziliană}{braziliană}},
+ edbulgarian = {{bulgară}{bulgară}},
+ edcatalan = {{catalană}{catalană}},
+ edcroatian = {{croată}{croată}},
+ edczech = {{cehă}{cehă}},
+ eddanish = {{daneză}{daneză}},
+ eddutch = {{olandeză}{olandeză}},
+ edenglish = {{engleză}{engleză}},
+ edestonian = {{estonă}{estonă}},
+ edfinnish = {{finlandeză}{finlandeză}},
+ edfrench = {{franceză}{franceză}},
+ edgalician = {{galeză}{galeză}},
+ edgerman = {{germană}{germană}},
+ edgreek = {{greacă}{greacă}},
+ editalian = {{italiană}{italiană}},
+ edjapanese = {{japoneză}{japoneză}},
+ edlatin = {{latină}{latină}},
+ ednorwegian = {{norvegiană}{norvegiană}},
+ edportuguese = {{portugheză}{portugheză}},
+ edrussian = {{rusă}{rusă}},
+ edslovak = {{slovacă}{slovacă}},
+ edslovene = {{slovenă}{slovenă}},
+ edspanish = {{spaniolă}{spaniolă}},
+ edswedish = {{suedeză}{suedeză}},
+ edukrainian = {{ucraineană}{ucraineană}},
+ translator = {{trad\adddot}{trad\adddot}},
+ translators = {{trad\adddot}{trad\adddot}},
+ redactor = {{red\adddot}{red\adddot}},
+ redactors = {{red\adddot}{red\adddot}},
+ founder = {{fond\adddot}{fond\adddot}},
+ founders = {{fond\adddot}{fond\adddot}},
+ continuator = {{cont\adddot}{cont\adddot}}, % ?
+ continuators = {{cont\adddot}{cont\adddot}}, % ?
+ collaborator = {{colab\adddot}{colab\adddot}}, % ?
+ collaborators = {{colab\adddot}{colab\adddot}}, % ?
+ annotator = {{adnot\adddot}{adnot\adddot}},
+ annotators = {{adnot\adddot}{adnot\adddot}},
+ review = {{recenzie}{recenzie}},
+ reviewof = {{recenzie la}{recenzie la}},
+ commenton = {{comentariu la}{comentariu la}},
+ reprint = {{republicare}{repub\adddot}},
+ printed = {{publicare}{publicare}},% 17th ed.
+ selfpublished = {{publicare personală}{publ\adddot pers\adddot}},
+ shorthands = {{Abrevieri}{Abrevieri}},
+ newseries = {{s\adddot n\adddot}{s\adddot n\adddot}},
+ urlseen = {{accesat}{accesat}},
+ cbynone = {{}{}},
+ cbyauthor = {{de}{de}},
+ cbyeditor = {{ed\adddot}{ed\adddot}},
+ cbytranslator = {{trad\adddot\addspace\lbx@cfromlang}%
+ {trad\adddot\addspace\lbx@cfromlang}},
+ cbycompiler = {{alcăt\adddot}{alcăt\adddot}},
+ cbyredactor = {{red\adddot}{red\adddot}},
+ cbycommentator = {{coment\adddot}{coment\adddot}},
+ cbyannotator = {{adnot\addot}{adnot\addot}},
+ cbyfounder = {{fond\adddot}{fond\adddot}},
+ cbycontinuator = {{cont\adddot}{cont\adddot}},
+ cbycollaborator = {{în colab\adddotspace cu}%
+ {în colab\adddotspace cu}},
+ cbyconductor = {{dirij\adddot}{dirij\adddot}},
+ cbydirector = {{regiz\adddot}{regiz\adddot}},
+ cbyproducer = {{prod\adddot}{prod\adddot}},
+ cbychoreographer = {{coreogr\adddot}{coreogr\adddot}},
+ cbyeditortr = {{ed\adddot\space și
+ trad\adddot\addspace\lbx@cfromlang}%
+ {ed\adddot\space și trad\adddot\addspace\lbx@cfromlang}},
+ cbyeditorcp = {{ed\adddot\space și alcăt\adddot}%
+ {ed\adddot\space și alcăt\adddot}},
+ cbyeditorco = {{ed\adddot\space și coment\adddot}%
+ {ed\adddot\space și coment\adddot}},
+ cbyeditoran = {{ed\adddot\space și adnot\adddot}%
+ {ed\adddot\space și adnot\adddot}},
+ cbyeditorin = {{ed.,\addabbrvspace cu o introducere de}%
+ {ed.,\addabbrvspace cu o introducere de}},
+ cbyeditorfo = {{ed.,\addabbrvspace cu o prefață de}%
+ {ed.,\addabbrvspace cu o prefață de}},
+ cbyeditoraf = {{ed.,\addabbrvspace cu o postfață de}%
+ {ed.,\addabbrvspace cu o postfață de}},
+ cbyeditortrcp = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și
+ alcăt\adddot}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt\adddot}},
+ cbyeditortrco = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și
+ coment\adddot}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și coment\adddot}},
+ cbyeditortran = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și
+ adnot\adddot}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și adnot\adddot}},
+ cbyeditortrin = {{ed\adddot\space și trad.\addspace\lbx@fromlang,
+ cu o introducere de}%
+ {ed\adddot\space și trad.\addspace\lbx@fromlang, cu
+ o introducere de}},
+ cbyeditortrfo = {{ed\adddot\space și trad.\addspace\lbx@fromlang, cu
+ o prefață de}%
+ {ed\adddot\space și trad.\addspace\lbx@fromlang, cu
+ o prefață de}},
+ cbyeditortraf = {{ed\adddot\space și trad.\addspace\lbx@fromlang, cu
+ o postfață de}%
+ {ed\adddot\space și trad.\addspace\lbx@fromlang, cu
+ o postfață de}},
+ cbyeditorcpco = {{ed.,\addabbrvspace alcăt., și coment\adddot}%
+ {ed.,\addabbrvspace alcăt., și coment\adddot}},
+ cbyeditorcpan = {{ed.,\addabbrvspace alcăt., și adnot\adddot}%
+ {ed.,\addabbrvspace alcăt., și adnot\adddot}},
+ cbyeditorcpin = {{ed\adddot\space și alcăt., cu o introducere
+ de}%
+ {ed\adddot\space și alcăt., cu o introducere de}},
+ cbyeditorcpfo = {{ed\adddot\space și alcăt., cu o prefață de}%
+ {ed\adddot\space și alcăt., cu o prefață de}},
+ cbyeditorcpaf = {{ed\adddot\space și alcăt., cu o postfață de}%
+ {ed\adddot\space și alcăt., cu o postfață de}},
+ cbyeditorcpcoin = {{ed.,\addabbrvspace alcăt., și coment., cu o
+ introducere de}%
+ {ed.,\addabbrvspace alcăt., și coment., cu o introducere de}},
+ cbyeditorcpcofo = {{ed.,\addabbrvspace alcăt., și coment., cu o
+ prefață de}%
+ {ed.,\addabbrvspace alcăt., și coment., cu o prefață de}},
+ cbyeditorcpcoaf = {{ed.,\addabbrvspace alcăt., și coment., cu o
+ postfață de}%
+ {ed.,\addabbrvspace alcăt., și coment., cu o postfață de}},
+ cbyeditorcpanin = {{ed.,\addabbrvspace alcăt., și adnot., cu o
+ introducere de}%
+ {ed.,\addabbrvspace alcăt., și adnot., cu o introducere de}},
+ cbyeditorcpanfo = {{ed.,\addabbrvspace alcăt., și adnot., cu o
+ prefață de}%
+ {ed.,\addabbrvspace alcăt., și adnot., cu o prefață de}},
+ cbyeditorcpanaf = {{ed.,\addabbrvspace alcăt., și adnot., cu o
+ postfață de}%
+ {ed.,\addabbrvspace alcăt., și adnot., cu o postfață de}},
+ cbyeditortrcpco = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și coment\adddot}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment\adddot}},
+ cbyeditortrcpan = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și adnot\adddot}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot\adddot}},
+ cbyeditortrcpin = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și
+ alcăt., cu o introducere de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt.,
+ cu o introducere de}},
+ cbyeditortrcpfo = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și
+ alcăt., cu o prefață de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt.,
+ cu o prefață de}},
+ cbyeditortrcpaf = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și
+ alcăt., cu o postfață de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt.,
+ cu o postfață de}},
+ cbyeditortrcpcoin = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și coment., cu o introducere de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment., cu o introducere de}},
+ cbyeditortrcpcofo = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și coment., cu o prefață de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment.,cu o prefață de}},
+ cbyeditortrcpcoaf = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și coment., cu o postfață de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment., cu o postfață de}},
+ cbyeditortrcpanin = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și adnot., cu o introducere de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot., cu o introducere de}},
+ cbyeditortrcpanfo = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și adnot., cu o prefață de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot., cu o prefață de}},
+ cbyeditortrcpanaf = {{ed.,\addabbrvspace trad.\addspace\lbx@fromlang,
+ alcăt., și adnot., cu o postfață de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot., cu o postfață de}},
+ cbyeditorcoin = {{ed\adddot\space și coment., cu o introducere de}%
+ {ed\adddot\space și coment., cu o introducere de}},
+ cbyeditorcofo = {{ed\adddot\space și coment., cu o prefață de}%
+ {ed\adddot\space și coment., cu o prefață de}},
+ cbyeditorcoaf = {{ed\adddot\space și coment., cu o postfață de}%
+ {ed\adddot\space și coment., cu o postfață de}},
+ cbyeditoranin = {{ed\adddot\space și adnot., cu o introducere de}%
+ {ed\adddot\space și adnot., cu o introducere de}},
+ cbyeditoranfo = {{ed\adddot\space și adnot., cu o prefață de}%
+ {ed\adddot\space și adnot., cu o prefață de}},
+ cbyeditoranaf = {{ed\adddot\space și adnot., cu o postfață de}%
+ {ed\adddot\space și adnot., cu o postfață de}},
+ cbyeditortrcoin = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și coment., cu
+ o introducere de}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și coment., cu
+ o introducere de}},
+ cbyeditortrcofo = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și coment., cu
+ o prefață de}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și coment., cu
+ o prefață de}},
+ cbyeditortrcoaf = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și coment., cu
+ o postfață de}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și coment., cu
+ o postfață de}},
+ cbyeditortranin = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și adnot., cu
+ o introducere de}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și adnot., cu
+ o introducere de}},
+ cbyeditortranfo = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și adnot., cu
+ o prefață de}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și adnot., cu
+ o prefață de}},
+ cbyeditortranaf = {{ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și adnot., cu
+ o postfață de}%
+ {ed.,\addabbrvspace
+ trad\adddot\addspace\lbx@fromlang\finalandcomma\space și adnot., cu
+ o postfață de}},
+ cbytranslatorcp = {{trad\adddot\addspace\lbx@fromlang\ și alcăt\adddot}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt\adddot}},
+ cbytranslatorco = {{trad\adddot\addspace\lbx@fromlang\ și coment\adddot}%
+ {trad\adddot\addspace\lbx@fromlang\ și coment\adddot}},
+ cbytranslatoran = {{trad\adddot\addspace\lbx@fromlang\ și adnot\adddot}%
+ {trad\adddot\addspace\lbx@fromlang\ și adnot\adddot}},
+ cbytranslatorin = {{trad\adddot\addspace\lbx@fromlang, cu o
+ introducere de}%
+ {trad\adddot\addspace\lbx@fromlang, cu o introducere de}},
+ cbytranslatorfo = {{trad\adddot\addspace\lbx@fromlang, cu o
+ prefață de}%
+ {trad\adddot\addspace\lbx@fromlang, cu o prefață de}},
+ cbytranslatoraf = {{trad\adddot\addspace\lbx@fromlang, cu o
+ postfață de}%
+ {trad\adddot\addspace\lbx@fromlang, cu o postfață de}},
+ cbytranslatorcoin = {{trad\adddot\addspace\lbx@fromlang\ și coment.,
+ cu o introducere de}%
+ {trad\adddot\addspace\lbx@fromlang\ și coment., cu o introducere de}},
+ cbytranslatorcofo = {{trad\adddot\addspace\lbx@fromlang\ și coment.,
+ cu o prefață de}%
+ {trad\adddot\addspace\lbx@fromlang\ și coment., cu o prefață de}},
+ cbytranslatorcoaf = {{trad\adddot\addspace\lbx@fromlang\ și coment.,
+ cu o postfață de}%
+ {trad\adddot\addspace\lbx@fromlang\ și coment., cu o postfață de}},
+ cbytranslatoranin = {{trad\adddot\addspace\lbx@fromlang\ și adnot.,
+ cu o introducere de}%
+ {trad\adddot\addspace\lbx@fromlang\ și adnot., cu o introducere de}},
+ cbytranslatoranfo = {{trad\adddot\addspace\lbx@fromlang\ și adnot.,
+ cu o prefață de}%
+ {trad\adddot\addspace\lbx@fromlang\ și adnot., cu o prefață de}},
+ cbytranslatoranaf = {{trad\adddot\addspace\lbx@fromlang\ și adnot.,
+ cu o postfață de}%
+ {trad\adddot\addspace\lbx@fromlang\ și adnot., cu o postfață de}},
+ cbytranslatorcpco = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ coment\adddot}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment\adddot}},
+ cbytranslatorcpan = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ adnot\adddot}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot\adddot}},
+ cbytranslatorcpin = {{trad\adddot\addspace\lbx@fromlang\ și alcăt.,
+ cu o introducere de}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt., cu o introducere de}},
+ cbytranslatorcpfo = {{trad\adddot\addspace\lbx@fromlang\ și alcăt.,
+ cu o prefață de}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt., cu o prefață de}},
+ cbytranslatorcpaf = {{trad\adddot\addspace\lbx@fromlang\ și alcăt.,
+ cu o postfață de}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt., cu o postfață de}},
+ cbytranslatorcpcoin = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ coment., cu o introducere de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment.,
+ cu o introducere de}},
+ cbytranslatorcpcofo = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ coment., cu o prefață de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment.,
+ cu o prefață de}},
+ cbytranslatorcpcoaf = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ coment., cu o postfață de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment.,
+ cu o postfață de}},
+ cbytranslatorcpanin = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ adnot., cu o introducere de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot.,
+ cu o introducere de}},
+ cbytranslatorcpanfo = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ adnot., cu o prefață de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot.,
+ cu o prefață de}},
+ cbytranslatorcpanaf = {{trad\adddot\addspace\lbx@fromlang, alcăt., și
+ adnot., cu o postfață de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot.,
+ cu o postfață de}},
+ cbycompilerco = {{alcăt\adddot\space și coment\adddot}%
+ {alcăt\adddot\space și coment\adddot}},
+ cbycompileran = {{alcăt\adddot\space și adnot\adddot}%
+ {alcăt\adddot\space și adnot\adddot}},
+ cbycompilerin = {{alcăt.,\addabbrvspace cu o introducere de}%
+ {alcăt.,\addabbrvspace cu o introducere de}},
+ cbycompilerfo = {{alcăt.,\addabbrvspace cu o prefață de}%
+ {alcăt.,\addabbrvspace cu o prefață de}},
+ cbycompileraf = {{alcăt.,\addabbrvspace cu o postfață de}%
+ {alcăt.,\addabbrvspace cu o postfață de}},
+ cbycompilercoin = {{alcăt\adddot\space și coment., cu o
+ introducere de}%
+ {alcăt\adddot\space și coment., cu o introducere de}},
+ cbycompilercofo = {{alcăt\adddot\space și coment., cu o prefață de}%
+ {alcăt\adddot\space și coment., cu o prefață de}},
+ cbycompilercoaf = {{alcăt\adddot\space și coment., cu o postfață de}%
+ {alcăt\adddot\space și coment., cu o postfață de}},
+ cbycompileranin = {{alcăt\adddot\space și adnot., cu o
+ introducere de}%
+ {alcăt\adddot\space și adnot., cu o introducere de}},
+ cbycompileranfo = {{alcăt\adddot\space și adnot., cu o prefață de}%
+ {alcăt\adddot\space și adnot., cu o prefață de}},
+ cbycompileranaf = {{alcăt\adddot\space și adnot., cu o postfață de}%
+ {alcăt\adddot\space și adnot., cu o postfață de}},
+ volume = {{vol\adddot}{vol\adddot}},
+ volumes = {{vol\adddot}{vol\adddot}},
+ jourvol = {{vol\adddot}{vol\adddot}},
+ jourser = {{ser\adddot}{ser\adddot}},
+ oldseries = {{s\adddot a\adddot}{s\adddot a\adddot}},
+ edition = {{ed\adddot}{ed\adddot}},
+ version = {{versiune}{v\adddot}},
+ page = {{p\adddot}{p\adddot}},
+ pages = {{pp\adddot}{pp\adddot}},
+ column = {{col\adddot}{col\adddot}},
+ columns = {{col\adddot}{col\adddot}},
+ line = {{linie}{linie}},
+ lines = {{linii}{linii}},
+ paragraph = {{\P}{\P}},
+ paragraphs = {{\P\P}{\P\P}},
+ section = {{\S}{\S}},
+ sections = {{\S\S}{\S\S}},
+ subsection = {{\S}{\S}},
+ subsections = {{\S\S}{\S\S}},
+ preface = {{prefață}{pref\adddot}},
+ note = {{notă}{n\adddot}},
+ canadasection = {{s\adddot}{s\adddot}},% For legal citations
+ canadasections = {{s\adddot}{s\adddot}},% ditto
+ supranote = {{\mkbibemph{supra}\addspace notă\addnbspace}% ditto
+ {\mkbibemph{supra}\addspace n\adddotspace}},
+ hereinafter = {{în continuare}{în continuare}},
+ subverbo = {{s\adddot v\adddot}{s\adddot v\adddot}},
+ subverbis = {{s\adddot vv\adddot}{s\adddot vv\adddot}},
+ verse = {{v\adddot}{v\adddot}},
+ verses = {{v\adddot}{v\adddot}},
+ number = {{nr\adddot}{nr\adddot}},
+ chapter = {{cap\adddot}{cap\adddot}},%
+ part = {{parte}{part\adddot}},% for legal citations
+ track = {{pista}{pista}},
+ mathesis = {{teză de dizerație}{teză de dizerație}},
+ phdthesis = {{teză de doct\adddot}{teză de doct\adddot}},
+ techreport = {{raport tehnic}{raport tehnic}},
+ cfromamerican = {{din engleză de}{din engleză de}},
+ cfrombrazilian = {{din braziliană de}{din braziliană
+ de}},
+ cfrombulgarian = {{din bulgară de}{din bulgară de}},
+ cfromcatalan = {{din catalană de}{din catalană de}},
+ cfromcroatian = {{din croată de}{din croată de}},
+ cfromczech = {{din cehă de}{din cehă de}},
+ cfromdanish = {{din daneză de}{din daneză de}},
+ cfromdutch = {{din olandeză de}{din olandeză de}},
+ cfromenglish = {{din engleză de}{din engleză de}},
+ cfromestonian = {{din estonă de}{din estonă de}},
+ cfromfinnish = {{din finlandeză de}{din finlandeză de}},
+ cfromfrench = {{din franceză de}{din franceză de}},
+ cfromgalician = {{din galeză de}{din galeză de}},
+ cfromgerman = {{din germană de}{din germană de}},
+ cfromgreek = {{din greacă de}{din greacă de}},
+ cfromitalian = {{din italiană de}{din italiană de}},
+ cfromjapanese = {{din japoneză de}{din japoneză de}},
+ cfromlatin = {{din latină de}{din latină de}},
+ cfromnorwegian = {{din norvegiană de}{din norvegiană
+ de}},
+ cfrompolish = {{din poloneză de}{din poloneză de}},
+ cfromportuguese = {{din portugheză de}{din portugheză
+ de}},
+ cfromrussian = {{din rusă de}{din rusă de}},
+ cfromslovak = {{din slovacă de}{din slovacă de}},
+ cfromslovene = {{din slovenă de}{din slovenă de}},
+ cfromspanish = {{din spaniolă de}{din spaniolă de}},
+ cfromswedish = {{din suedeză de}{din suedeză de}},
+ cfromukrainian = {{din ucraineană de}{din ucraineană de}},
+ bynone = {{}{}},
+ bycompiler = {{alcătuire de}{alcăt\adddot}},
+ byconductor = {{dirijat de}{dirij\adddot}},
+ bydirector = {{regizat de}{regiz\adddot}},
+ byproducer = {{produs de}{prod\adddot}},
+ bychoreographer = {{coreografie de}{coreogr\adddot}},
+ byeditorcp = {{editare și alcătuire de}{ed\adddot\space și alcăt\adddot}},
+ byeditortrcp = {{editare, traducere \lbx@fromlang, și alcătuire de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt\adddot}},
+ byeditortrcpco = {{editare, traducere \lbx@fromlang, alcătuire, și
+ comentarii de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment\adddot}},
+ byeditortrcpan = {{editare, traducere \lbx@fromlang, alcătuire, și
+ adnotări de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot\adddot}},
+ byeditortrcpin = {{editare, traducere \lbx@fromlang, și alcătuire, cu
+ o introducere, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt\adddot,
+ cu o introducere, de}},
+ byeditortrcpfo = {{editare, traducere \lbx@fromlang, și alcătuire, cu o
+ prefață, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt\adddot,
+ cu o prefață, de}},
+ byeditortrcpaf = {{editare, traducere \lbx@fromlang, și alcătuire, cu
+ o postfață, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, și alcăt\adddot,
+ cu o postfață, de}},
+ byeditortrcpcoin = {{editare, traducere \lbx@fromlang, alcătuire, și
+ comentarii, cu o introducere, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment\adddot, cu o introducere, de}},
+ byeditortrcpcofo = {{editare, traducere \lbx@fromlang, alcătuire, și
+ comentarii, cu o prefață, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment\adddot, cu o prefață, de}},
+ byeditortrcpcoaf = {{editare, traducere \lbx@fromlang, alcătuire, și
+ comentarii, cu o postfață, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și coment\adddot, cu o postfață, de}},
+ byeditortrcpanin = {{editare, traducere \lbx@fromlang, alcătuire, și
+ adnotări, cu o introducere, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot\adddot, cu o introducere, de}},
+ byeditortrcpanfo = {{editare, traducere \lbx@fromlang, alcătuire, și
+ adnotări, cu o prefață, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot\adddot, cu o prefață, de}},
+ byeditortrcpanaf = {{editare, traducere \lbx@fromlang, alcătuire, și
+ adnotări, cu o postfață, de}%
+ {ed.,\addabbrvspace trad.\addspace\lbx@fromlang, alcăt.,
+ și adnot\adddot, cu o postfață, de}},
+ byeditorcpco = {{editare, alcătuire, și comentarii de}%
+ {ed.,\addabbrvspace alcăt., și coment\adddot}},
+ byeditorcpan = {{editare, alcătuire, și adnotări de}%
+ {ed.,\addabbrvspace alcăt., și adnot\adddot}},
+ byeditorcpin = {{editare și alcătuire, cu o introducere, de}%
+ {ed\adddot\space și alcăt., cu o introducere, de}},
+ byeditorcpfo = {{editare și alcătuire, cu o prefață, de}%
+ {ed\adddot\space și alcăt., cu o prefață, de}},
+ byeditorcpaf = {{editare și alcătuire, cu o postfață, de}%
+ {ed\adddot\space și alcăt., cu o postfață, de}},
+ byeditorcpcoin = {{editare, alcătuire, și comentarii, cu o
+ introducere, de}%
+ {ed.,\addabbrvspace alcăt., și coment., cu o introducere, de}},
+ byeditorcpcofo = {{editare, alcătuire, și comentarii, cu o prefață,
+ de}%
+ {ed.,\addabbrvspace alcăt., și coment., cu o prefață, de}},
+ byeditorcpcoaf = {{editare, alcătuire, și comentarii, cu o
+ postfață, de}%
+ {ed.,\addabbrvspace alcăt., și coment., cu o postfață, de}},
+ byeditorcpanin = {{editare, alcătuire, și adnotări, cu o
+ introducere, de}%
+ {ed.,\addabbrvspace alcăt., și adnot., cu o introducere, de}},
+ byeditorcpanfo = {{editare, alcătuire, și adnotări, cu o prefață,
+ de}%
+ {ed.,\addabbrvspace alcăt., și adnot., cu o prefață, de}},
+ byeditorcpanaf = {{editare, alcătuire, și adnotări, cu o
+ postfață, de}%
+ {ed.,\addabbrvspace alcăt., și adnot., cu o postfață, de}},
+ bytranslatorcp = {{traducere \lbx@fromlang\ și alcătuire de}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt\adddot}},
+ bytranslatorcpco = {{traducere \lbx@fromlang, alcătuire, și
+ comentarii de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment\adddot}},
+ bytranslatorcpan = {{traducere \lbx@fromlang, alcătuire, și
+ adnotări de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot\adddot}},
+ bytranslatorcpin = {{traducere \lbx@fromlang\ și alcătuire, cu o
+ introducere, de}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt., cu o introducere, de}},
+ bytranslatorcpfo = {{traducere \lbx@fromlang\ și alcătuire, cu o
+ prefață, de}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt., cu o prefață, de}},
+ bytranslatorcpaf = {{traducere \lbx@fromlang\ și alcătuire, cu o
+ postfață, de}%
+ {trad\adddot\addspace\lbx@fromlang\ și alcăt., cu o postfață, de}},
+ bytranslatorcpcoin = {{traducere \lbx@fromlang, alcătuire, și comentarii,
+ cu o introducere, de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment., cu o
+ introducere, de}},
+ bytranslatorcpcofo = {{traducere \lbx@fromlang, alcătuire, și comentarii,
+ cu o prefață, de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment.,
+ cu o prefață, de}},
+ bytranslatorcpcoaf = {{traducere \lbx@fromlang, alcătuire, și comentarii,
+ cu o postfață, de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și coment., cu o
+ postfață, de}},
+ bytranslatorcpanin = {{traducere \lbx@fromlang, alcătuire, și adnotări,
+ cu o introducere, de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot., cu o
+ introducere, de}},
+ bytranslatorcpanfo = {{traducere \lbx@fromlang, alcătuire, și adnotări,
+ cu o prefață, de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot.,
+ cu o prefață, de}},
+ bytranslatorcpanaf = {{traducere \lbx@fromlang, alcătuire, și adnotări,
+ cu o postfață, de}%
+ {trad\adddot\addspace\lbx@fromlang, alcăt., și adnot.,
+ cu o postfață, de}},
+ bycompilerco = {{alcătuire și comentarii de}%
+ {alcăt\adddot\space și coment\adddot}},
+ bycompileran = {{alcătuire și adnotări de}%
+ {alcăt\adddot\space și adnot\adddot}},
+ bycompilerin = {{alcătuire, cu o introducere, de}%
+ {alcăt\adddot, cu o introducere, de}},
+ bycompilerfo = {{alcătuire, cu o prefață, de}%
+ {alcăt\adddot, cu o prefață, de}},
+ bycompileraf = {{alcătuire, cu o postfață, de}%
+ {alcăt\adddot, cu o postfață, de}},
+ bycompilercoin = {{alcătuire și comentarii, cu o introducere, de}%
+ {alcăt\adddot\space și coment\adddot, cu o introducere, de}},
+ bycompilercofo = {{alcătuire și comentarii, cu o prefață, de}%
+ {alcăt\adddot\space și coment\adddot, cu o prefață, de}},
+ bycompilercoaf = {{alcătuire și comentarii, with an afterword, de}%
+ {alcăt\adddot\space și coment\adddot, cu o postfață, de}},
+ bycompileranin = {{alcătuire și adnotări, cu o introducere, de}%
+ {alcăt\adddot\space și adnot\adddot, cu o introducere, de}},
+ bycompileranfo = {{alcătuire și adnotări, cu o prefață, de}%
+ {alcăt\adddot\space și adnot\adddot, cu o prefață, de}},
+ bycompileranaf = {{alcătuire și adnotări, cu o postfață, de}%
+ {alcăt\adddot\space şi adnot\adddot, cu o postfață, de}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx
index 87c3d96268..7b7dde6e1d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cms-swedish.lbx
@@ -1,4 +1,4 @@
-\ProvidesFile{cms-swedish.lbx}[2020/04/20 v 3.14 biblatex localization]
+\ProvidesFile{cms-swedish.lbx}[2021/03/27 v 3.16 biblatex localization]
% STATUS OF THIS FILE
% - Translated by a native speaker (Stefan Bj\"{o}rk).
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty
index 08cb5f61db..317fcb1c39 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsdocs.sty
@@ -374,7 +374,7 @@
\hyperlink{\getrefbykeydefault{#1}{anchor}{}}%
{\texttt{#1}}}
-\DeclareFieldFormat{annotation}{\par\nobreak \vskip \bibitemsep%
+\DeclareFieldFormat{annotation}{%\addperiod\par\nobreak \vskip \bibitemsep%
\hyperlink{\getrefbykeydefault{\cmsdoc@entrykey}{anchor}{}}%
{\small{\textbf{[\cmsdocref@entry]\addspace}}}\small#1}
@@ -382,7 +382,7 @@
%%% biblatex-chicago.pdf.
\newrobustcmd*{\cmssecref}[2][]{\marginpar{\href{\@baseurl%
- \getrefbykeydefault{#2}{anchor}{}}{\small §\,\getrefnumber{#2}}%
+ \getrefbykeydefault{#2}{anchor}{}}{\small \S\,\getrefnumber{#2}}%
\ifblank{#1}{}{\scriptsize,\, s.v.\\[1pt]\enquote{#1}}}}
\newrobustcmd*{\cmspagref}[1]{\marginpar{\href{\@baseurl%
page.\getpagerefnumber{#1}}{p.~\getpagerefnumber{#1}}}}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty
index 5f6d430831..84425e11dd 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-chicago/latex/cmsendnotes.sty
@@ -1,6 +1,6 @@
% Copyright (c) 2003 John Lavagnino
% 2003 Ulrich Dirr
-% 2020 David Fussner
+% 2020-2021 David Fussner
%
% This package is currently maintained by David Fussner.
%
@@ -28,7 +28,7 @@
% Please see biblatex-chicago.pdf for details of how to use this
% package.
-\ProvidesPackage{cmsendnotes}[2020/04/20 v 3.14 biblatex auxiliary package]
+\ProvidesPackage{cmsendnotes}[2021/03/27 v 3.16 biblatex auxiliary package]
\RequirePackage{kvoptions}
\RequirePackage{endnotes}
diff --git a/macros/latex/contrib/physconst/CHANGELOG.md b/macros/latex/contrib/physconst/CHANGELOG.md
index ec507efcf5..6789be81a4 100644
--- a/macros/latex/contrib/physconst/CHANGELOG.md
+++ b/macros/latex/contrib/physconst/CHANGELOG.md
@@ -73,4 +73,7 @@ correctly be 1.1.x instead of 1.0.2
- Upgraded macros subsection to section (this was a prior bug).
- Corrected the description of the source of astronomical constants within the
introduction.
+## [1.1.2] - 2021/03/26
+### Changes
+- Corrected Avogadro's Number - there was a typo in the value.
diff --git a/macros/latex/contrib/physconst/physconst.dtx b/macros/latex/contrib/physconst/physconst.dtx
index 498759fa43..7286763e0a 100644
--- a/macros/latex/contrib/physconst/physconst.dtx
+++ b/macros/latex/contrib/physconst/physconst.dtx
@@ -22,7 +22,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1994/06/01]
%<package> \ProvidesPackage{physconst}
%<*package>
- [2020/03/26 v1.1.1 physconst package]
+ [2021/03/26 v1.1.2 physconst package]
%</package>
%<package>\RequirePackage{physunits}
%<package>\DeclareOption{shortconst}{ \typeout{physconst: reduced precision}%
@@ -74,10 +74,11 @@
% \changes{v1.0.2}{2020/01/26}{External changes for distribution.}
% \changes{v1.1.0}{2020/02/03}{Add Earth, Sun, Jupiter mass and radius, fix Coulomb constant.}
% \changes{v1.1.1}{2020/03/26}{Fixed bug that shortconst was having the opposite effect than intended. Additions and corrections to documentation.}
+% \changes{v1.1.2}{2021/03/26}{Corrected the value for Avogadro's Number. Prior version had a typo.}
%
% \GetFileInfo{physconst.dtx}
-% \DeclareRobustCommand{\fileversion}{v1.1.1}
-% \DeclareRobustCommand{\filedate}{2020/03/26}
+% \DeclareRobustCommand{\fileversion}{v1.1.2}
+% \DeclareRobustCommand{\filedate}{2021/03/26}
%
% \DoNotIndex{\DeclareRobustCommand,\newenvironment,\DeclareRobustCommand%
% ,\left,\right,\textbf,\mathrm}
@@ -143,7 +144,9 @@
% \changes{v1.1.1}{2020/03/26}{Added section for acknowledgements.}
%
% The author would like to thank Dr. Florian Leupold for catching a glaring
-% error in the shortconst option.%
+% error in the shortconst option, and M. Kloske for catching a typo in
+% Avogadro's Number.
+%
% \section{Bug Reporting}
% \changes{v1.1.1}{2020/03/26}{Added section for bug reporting.}
%
@@ -5546,10 +5549,10 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@MassElectron}{%
\ensuremath{%
-9.108\expandafter\physconst@decimalsseparator%
-980\expandafter\physconst@decimalsseparator%
-087\expandafter\physconst@decimalsseparator%
-382%
+9.109\expandafter\physconst@decimalsseparator%
+383\expandafter\physconst@decimalsseparator%
+701\expandafter\physconst@decimalsseparator%
+500%
\times 10^{-31}\kg}}
% \end{macrocode}
% \end{macro}
@@ -5591,10 +5594,10 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@MassElectron}{%
\ensuremath{%
-9.108\expandafter\physconst@decimalsseparator%
-980\expandafter\physconst@decimalsseparator%
-087\expandafter\physconst@decimalsseparator%
-382%
+9.109\expandafter\physconst@decimalsseparator%
+383\expandafter\physconst@decimalsseparator%
+701\expandafter\physconst@decimalsseparator%
+500%
\times 10^{-28}\gm}}
% \end{macrocode}
% \end{macro}
@@ -5637,9 +5640,9 @@
\DeclareRobustCommand{\k@eV@full@MassElectron}{%
\ensuremath{%
5.109\expandafter\physconst@decimalsseparator%
-763\expandafter\physconst@decimalsseparator%
-089\expandafter\physconst@decimalsseparator%
-046%
+989\expandafter\physconst@decimalsseparator%
+499\expandafter\physconst@decimalsseparator%
+962%
\times 10^{5}\eV\,c^{-2}}}
% \end{macrocode}
% \end{macro}
@@ -5734,7 +5737,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@MassElectronNumeric}{%
\ensuremath{%
-9.108980087382e-31}}
+9.109383701500e-31}}
% \end{macrocode}
% \end{macro}
%
@@ -5774,7 +5777,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@MassElectronNumeric}{%
\ensuremath{%
-9.108980087382e-28}}
+9.109383701500e-28}}
% \end{macrocode}
% \end{macro}
%
@@ -5814,7 +5817,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@eV@full@MassElectronNumeric}{%
\ensuremath{%
-5.109763089046e+05}}
+5.109989499962e+05}}
% \end{macrocode}
% \end{macro}
%
@@ -5910,9 +5913,9 @@
\DeclareRobustCommand{\k@SI@full@MassProton}{%
\ensuremath{%
1.672\expandafter\physconst@decimalsseparator%
-547\expandafter\physconst@decimalsseparator%
-813\expandafter\physconst@decimalsseparator%
-969%
+621\expandafter\physconst@decimalsseparator%
+923\expandafter\physconst@decimalsseparator%
+690%
\times 10^{-27}\kg}}
% \end{macrocode}
% \end{macro}
@@ -5955,9 +5958,9 @@
\DeclareRobustCommand{\k@cgs@full@MassProton}{%
\ensuremath{%
1.672\expandafter\physconst@decimalsseparator%
-547\expandafter\physconst@decimalsseparator%
-813\expandafter\physconst@decimalsseparator%
-969%
+621\expandafter\physconst@decimalsseparator%
+923\expandafter\physconst@decimalsseparator%
+690%
\times 10^{-24}\gm}}
% \end{macrocode}
% \end{macro}
@@ -5998,9 +6001,9 @@
\DeclareRobustCommand{\k@eV@full@MassProton}{%
\ensuremath{%
9.382\expandafter\physconst@decimalsseparator%
-305\expandafter\physconst@decimalsseparator%
-156\expandafter\physconst@decimalsseparator%
-558%
+720\expandafter\physconst@decimalsseparator%
+881\expandafter\physconst@decimalsseparator%
+605%
\times 10^{8}\eV\,c^{-2}}}
% \end{macrocode}
% \end{macro}
@@ -6095,7 +6098,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@MassProtonNumeric}{%
\ensuremath{%
-1.672547813969e-27}}
+1.672621923690e-27}}
% \end{macrocode}
% \end{macro}
%
@@ -6135,7 +6138,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@MassProtonNumeric}{%
\ensuremath{%
-1.672547813969e-24}}
+1.672621923690e-24}}
% \end{macrocode}
% \end{macro}
%
@@ -6173,7 +6176,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@eV@full@MassProtonNumeric}{%
\ensuremath{%
-9.382305156558e+08}}
+9.382720881605e+08}}
% \end{macrocode}
% \end{macro}
%
@@ -6269,9 +6272,9 @@
\DeclareRobustCommand{\k@SI@full@MassHydrogen}{%
\ensuremath{%
1.673\expandafter\physconst@decimalsseparator%
-458\expandafter\physconst@decimalsseparator%
-687\expandafter\physconst@decimalsseparator%
-724%
+532\expandafter\physconst@decimalsseparator%
+837\expandafter\physconst@decimalsseparator%
+806%
\times 10^{-27}\kg}}
% \end{macrocode}
% \end{macro}
@@ -6314,9 +6317,9 @@
\DeclareRobustCommand{\k@cgs@full@MassHydrogen}{%
\ensuremath{%
1.673\expandafter\physconst@decimalsseparator%
-458\expandafter\physconst@decimalsseparator%
-687\expandafter\physconst@decimalsseparator%
-724%
+532\expandafter\physconst@decimalsseparator%
+837\expandafter\physconst@decimalsseparator%
+806%
\times 10^{-24}\gm}}
% \end{macrocode}
% \end{macro}
@@ -6359,9 +6362,9 @@
\DeclareRobustCommand{\k@eV@full@MassHydrogen}{%
\ensuremath{%
9.387\expandafter\physconst@decimalsseparator%
-414\expandafter\physconst@decimalsseparator%
-783\expandafter\physconst@decimalsseparator%
-596%
+830\expandafter\physconst@decimalsseparator%
+735\expandafter\physconst@decimalsseparator%
+048%
\times 10^{8}\eV\,c^{-2}}}
% \end{macrocode}
% \end{macro}
@@ -6456,7 +6459,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@MassHydrogenNumeric}{%
\ensuremath{%
-1.673458687724e-27}}
+1.673532837806e-27}}
% \end{macrocode}
% \end{macro}
%
@@ -6496,7 +6499,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@MassHydrogenNumeric}{%
\ensuremath{%
-1.673458687724e-24}}
+1.673532837806e-24}}
% \end{macrocode}
% \end{macro}
%
@@ -6536,7 +6539,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@eV@full@MassHydrogenNumeric}{%
\ensuremath{%
-9.387414783596e+08}}
+9.387830735048e+08}}
% \end{macrocode}
% \end{macro}
%
@@ -7075,9 +7078,9 @@
\DeclareRobustCommand{\k@SI@full@MassAMU}{%
\ensuremath{%
1.660\expandafter\physconst@decimalsseparator%
-465\expandafter\physconst@decimalsseparator%
-492\expandafter\physconst@decimalsseparator%
-239%
+539\expandafter\physconst@decimalsseparator%
+066\expandafter\physconst@decimalsseparator%
+600%
\times 10^{-27}\kg}}
% \end{macrocode}
% \end{macro}
@@ -7120,9 +7123,9 @@
\DeclareRobustCommand{\k@cgs@full@MassAMU}{%
\ensuremath{%
1.660\expandafter\physconst@decimalsseparator%
-465\expandafter\physconst@decimalsseparator%
-492\expandafter\physconst@decimalsseparator%
-239%
+539\expandafter\physconst@decimalsseparator%
+066\expandafter\physconst@decimalsseparator%
+600%
\times 10^{-24}\gm}}
% \end{macrocode}
% \end{macro}
@@ -7165,9 +7168,9 @@
\DeclareRobustCommand{\k@eV@full@MassAMU}{%
\ensuremath{%
9.314\expandafter\physconst@decimalsseparator%
-528\expandafter\physconst@decimalsseparator%
-302\expandafter\physconst@decimalsseparator%
-276%
+941\expandafter\physconst@decimalsseparator%
+024\expandafter\physconst@decimalsseparator%
+171%
\times 10^{8}\eV\,c^{-2}}}
% \end{macrocode}
% \end{macro}
@@ -7262,7 +7265,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@MassAMUNumeric}{%
\ensuremath{%
-1.660465492239e-27}}
+1.660539066600e-27}}
% \end{macrocode}
% \end{macro}
%
@@ -7302,7 +7305,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@MassAMUNumeric}{%
\ensuremath{%
-1.660465492239e-24}}
+1.660539066600e-24}}
% \end{macrocode}
% \end{macro}
%
@@ -7342,7 +7345,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@eV@full@MassAMUNumeric}{%
\ensuremath{%
-9.314528302276e+08}}
+9.314941024171e+08}}
% \end{macrocode}
% \end{macro}
%
@@ -8075,9 +8078,9 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@RadiusBohr}{%
\ensuremath{%
-5.292\expandafter\physconst@decimalsseparator%
-006\expandafter\physconst@decimalsseparator%
-59%
+5.291\expandafter\physconst@decimalsseparator%
+772\expandafter\physconst@decimalsseparator%
+11%
\times 10^{-11}\m}}
% \end{macrocode}
% \end{macro}
@@ -8115,9 +8118,9 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@RadiusBohr}{%
\ensuremath{%
-5.292\expandafter\physconst@decimalsseparator%
-006\expandafter\physconst@decimalsseparator%
-59%
+5.291\expandafter\physconst@decimalsseparator%
+772\expandafter\physconst@decimalsseparator%
+11%
\times 10^{-9}\cm}}
% \end{macrocode}
% \end{macro}
@@ -8184,7 +8187,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@RadiusBohrNumeric}{%
\ensuremath{%
-5.29200659e-11}}
+5.29177211e-11}}
% \end{macrocode}
% \end{macro}
%
@@ -8220,7 +8223,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@RadiusBohrNumeric}{%
\ensuremath{%
-5.29200659e-09}}
+5.29177211e-09}}
% \end{macrocode}
% \end{macro}
%
@@ -9159,8 +9162,8 @@
\DeclareRobustCommand{\k@SI@full@Rydberg}{%
\ensuremath{%
2.179\expandafter\physconst@decimalsseparator%
-775\expandafter\physconst@decimalsseparator%
-77%
+872\expandafter\physconst@decimalsseparator%
+36%
\times 10^{-18}\Joule}}
% \end{macrocode}
% \end{macro}
@@ -9199,8 +9202,8 @@
\DeclareRobustCommand{\k@cgs@full@Rydberg}{%
\ensuremath{%
2.179\expandafter\physconst@decimalsseparator%
-775\expandafter\physconst@decimalsseparator%
-77%
+872\expandafter\physconst@decimalsseparator%
+36%
\times 10^{-11}\erg}}
% \end{macrocode}
% \end{macro}
@@ -9239,8 +9242,8 @@
\DeclareRobustCommand{\k@eV@full@Rydberg}{%
\ensuremath{%
1.360\expandafter\physconst@decimalsseparator%
-509\expandafter\physconst@decimalsseparator%
-03%
+569\expandafter\physconst@decimalsseparator%
+31%
\times 10^{1}\eV}}
% \end{macrocode}
% \end{macro}
@@ -9327,7 +9330,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@SI@full@RydbergNumeric}{%
\ensuremath{%
-2.17977577e-18}}
+2.17987236e-18}}
% \end{macrocode}
% \end{macro}
%
@@ -9363,7 +9366,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@cgs@full@RydbergNumeric}{%
\ensuremath{%
-2.17977577e-11}}
+2.17987236e-11}}
% \end{macrocode}
% \end{macro}
%
@@ -9399,7 +9402,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@eV@full@RydbergNumeric}{%
\ensuremath{%
-1.36050903e+01}}
+1.36056931e+01}}
% \end{macrocode}
% \end{macro}
%
@@ -13262,8 +13265,8 @@
\DeclareRobustCommand{\k@full@Avogadro}{%
\ensuremath{%
6.022\expandafter\physconst@decimalsseparator%
-407\expandafter\physconst@decimalsseparator%
-60%
+140\expandafter\physconst@decimalsseparator%
+76%
\times 10^{23}}}
% \end{macrocode}
% \end{macro}
@@ -13320,7 +13323,7 @@
% \begin{macrocode}
\DeclareRobustCommand{\k@full@AvogadroNumeric}{%
\ensuremath{%
-6.02240760e+23}}
+6.02214076e+23}}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/physconst/physconst.pdf b/macros/latex/contrib/physconst/physconst.pdf
index a4bc4e2172..7ec5ca1b6e 100644
--- a/macros/latex/contrib/physconst/physconst.pdf
+++ b/macros/latex/contrib/physconst/physconst.pdf
Binary files differ
diff --git a/macros/latex/contrib/physunits/CHANGELOG.md b/macros/latex/contrib/physunits/CHANGELOG.md
index d61164e263..468d7a0f61 100644
--- a/macros/latex/contrib/physunits/CHANGELOG.md
+++ b/macros/latex/contrib/physunits/CHANGELOG.md
@@ -56,4 +56,13 @@ with the unit instead of with the number. Correct both of these issues.
- Add bug reporting section to documentation
- Add prerequisites section to documentation
- Give some explanation of differences to siunitx in introduction
+## [1.1.0] - 2020/11/02
+### Added
+- Added Celsius macro (correct spelling of Celcius). Retained incorrect
+spelling for backward compatability.
+## [1.2.0] - 2021/03/26
+### Added
+- Added centigrade macro.
+### Changes
+- Fixed some versioning comments
diff --git a/macros/latex/contrib/physunits/physunits.dtx b/macros/latex/contrib/physunits/physunits.dtx
index 5bb71b3fa6..6ef6160e9b 100644
--- a/macros/latex/contrib/physunits/physunits.dtx
+++ b/macros/latex/contrib/physunits/physunits.dtx
@@ -22,7 +22,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1994/06/01]
%<package> \ProvidesPackage{physunits}
%<*package>
- [2020/03/26 v1.0.4 Physical units package]
+ [2020/03/26 v1.2.0 Physical units package]
%</package>
%<package>\ProcessOptions\relax
%<*driver>
@@ -41,7 +41,7 @@
%</driver>
% \fi
%
-% \CheckSum{490}
+% \CheckSum{496}
%
% \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
@@ -65,10 +65,12 @@
% \changes{v1.0.3}{2020/01/26}{External changes in makefile}
% \changes{v1.0.4}{2020/03/26}{Corrected version number and date in
% documentation}
+% \changes{v1.1.0}{2020/11/02}{Corrected spelling of Celsius}
+% \changes{v1.2.0}{2020/03/26}{Added centigrade}
%
% \GetFileInfo{physunits.dtx}
-% \DeclareRobustCommand{\fileversion}{v1.0.4}
-% \DeclareRobustCommand{\filedate}{2020/03/26}
+% \DeclareRobustCommand{\fileversion}{v1.2.0}
+% \DeclareRobustCommand{\filedate}{2021/03/26}
%
% \DoNotIndex{\DeclareRobustCommand,\newenvironment,\DeclareRobustCommand,
% \left,\right,\textbf,\mathrm,\ensuremath,\units@separator,\expandafter,\,}
@@ -514,9 +516,12 @@
% This macro accepts an optional argument for a prefix. If no option is
% supplied, no prefix will be prepended.
%
-% \DescribeMacro{\Celcius}
-% \index{Temperature>Celcius|usage}
-% |\Celcius| is a macro for degrees Celcius $(\Celcius)$.
+% \changes{v1.1.0}{2020/11/02}{Corrected spelling of Celsius.}
+% \changes{v1.2.0}{2020/03/26}{Added centigrade.}
+% \DescribeMacro{\Celsius}
+% \index{Temperature>Celsius|usage}
+% |\Celsius| is a macro for degrees Celsius $(\Celsius)$.
+% |\Celcius| and |\centigrade| are identical macros $(\Celsius)$.
%
% \DescribeMacro{\Rankine}
% \index{Temperature>Rankine|usage}
@@ -1662,16 +1667,20 @@
%\iffalse
%<*package>
%\fi
-% \begin{macro}{\Celcius}
+% \begin{macro}{\Celsius}
% \changes{v1.0.4}{2020/03/26}{had ${}^\circ$ outside of
% ensuremath, causing problems for text mode. It is also more common to typeset
% the $^\circ$ with the unit instead of the number. Corrects both of these
% issues}
-% |\Celcius| is a macro for degrees Celcius $(\Celcius)$.
+% \changes{v1.1.0}{2020/11/02}{corrected spelling of Celsius and added
+% duplicate macro with incorrect spelling (``Celcius'')}
+% \changes{v1.2.0}{2021/03/26}{Added centigrade}
%
% \begin{macrocode}
-\DeclareRobustCommand{\Celcius}{\ensuremath{\expandafter\units@separator{}%
+\DeclareRobustCommand{\Celsius}{\ensuremath{\expandafter\units@separator{}%
^\circ\mathrm{C}}}
+\DeclareRobustCommand{\Celcius}{\Celsius}
+\DeclareRobustCommand{\centigrade}{\Celsius}
% \end{macrocode}
% \end{macro}
%\iffalse
diff --git a/macros/latex/contrib/physunits/physunits.pdf b/macros/latex/contrib/physunits/physunits.pdf
index e6f2ad825a..84895ce2c8 100644
--- a/macros/latex/contrib/physunits/physunits.pdf
+++ b/macros/latex/contrib/physunits/physunits.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
new file mode 100644
index 0000000000..db0a42f619
--- /dev/null
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -0,0 +1,1192 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a
+Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
+[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+### Changed
+- Updates to follow LaTeX2e kernel revisions
+- No longer apply `\addtocontents` patch
+
+## [v2.8b] - 2020-02-25
+
+### Fixed
+- Correct `\ohm` when `newtxmath` is loaded
+
+## [v2.8a] - 2020-02-23
+
+### Fixed
+- Correct `\ohm` when `unicode-math` is loaded (issue #377)
+
+## [v2.8] - 2020-02-20
+
+### Changed
+- Use companion font symbols/force `textcomp` loading
+
+## [v2.7v] - 2020-02-19 [UNUSED]
+
+### Fixed
+- Appearance of superscript decimals with comma decimal marker
+
+## [v2.7u] - 2020-01-15
+
+### Changed
+- Modified internals to track `expl3` changes
+
+## [v2.7t] - 2019-10-10
+
+### Fixed
+- Combination of `round-half = even` with `round-precision = 0`
+- Include sign in astronomy-style angles
+
+## [v2.7s] - 2018-05-17
+
+### Changed
+- Revert package date format change in v2.7l
+
+## [v2.7r] - 2018-05-16
+
+### Changed
+- Modified internals to track `expl3` changes
+
+### Fixed
+- Collect tokens before `\ignorespaces` in tabulars (esp. with
+ REVTeX) (issue #337)
+
+## [v2.7q] - 2018-05-11
+
+### Fixed
+- Allow for `cellspace` "column" option (issue #315)
+
+## [v2.7p] - 2018-05-10
+
+### Changed
+- Avoid an `expl3` internal function
+- Better approach to removing `\ignorespaces`
+
+## [v2.7o] - 2018-05-02 [UNUSED]
+
+## [v2.7n] - 2018-04-27
+
+### Fixed
+- Issue with symbolic input and digit grouping
+
+## [v2.7m] - 2018-03-20
+
+### Changed
+- Update `\astronomicalunit` symbol (issue #332)
+
+## [v2.7l] - 2018-03-11
+
+### Added
+- Abbreviations for milli/microjoule
+
+### Changed
+- Switch package date format to ISO
+
+### Fixed
+- Scope of some internal variable corrected (issue #327)
+- Track `unicode-math` changes (issue #331)
+
+## [v2.7k] - 2017-11-26
+
+### Fixed
+- Incorrect internal variable renamed (issue #320)
+- Suppress leading "1" when units are not parsed (issue #318)
+- Correct default value for `arc-separator` (issue #319)
+
+## [v2.7j] - 2017-08-02
+
+### Fixed
+- Use correct name for internal boolean
+
+## [v2.7i] - 2017-07-23
+
+### Fixed
+- Incorrect internal variable renamed (issue #311)
+
+## [v2.7h] - 2017-06-13
+
+### Changed
+- Some abuses of `expl3` box functions removed (issue #309)
+
+## [v2.7g] - 2017-05-19
+
+### Changed
+- Use new `expl3` functions for some internal tests
+
+### Fixed
+- Change box collection following `expl3` update
+- Links to BIPM website
+
+## [v2.7f] - 2017-03-23
+
+### Changed
+- Name of 'hidden' function used by for bookmark generation
+
+### Fixed
+- Spacing when option `per-mode = reciprocal-positive-first` is active
+
+## [v2.7e] - 2017-03-06
+
+### Fixed
+- Properly handle signs in `table-format` key (issue #303)
+
+## [v2.7d] - 2017-02-19
+
+### Fixed
+- Avoid doubled tokens in pre-number part of tables
+
+## [v2.7c] - 2017-02-01
+
+### Fixed
+- Correct integer alignment in tables (issue #302)
+
+## [v2.7b] - 2017-01-28
+
+### Fixed
+- Fix an issue with large numbers in scientific mode (issue #301)
+
+## [v2.7a] - 2017-01-01
+
+### Changed
+- Track `expl3` changes regarding key-value management
+
+## [v2.7] - 2017-01-01
+
+### Added
+- Code-level API variable `\l_siunitx_unit_symbolic_seq`
+
+### Fixed
+- Allow for `cellspace` package in math mode
+
+## [v2.6s] - 2016-09-02
+
+### Changed
+
+- Improved a warning concerning `color` package
+
+## [v2.6r] - 2016-08-22
+
+### Changed
+- Warn if `color` is not loaded (issue #289)
+- Document some aspects of internal number processing (issue #294)
+- Minor `expl3` fixes including tracking deprecations
+
+### Fixed
+- Handling of `e0` input (issue #292)
+- Added some missing internal variable declarations
+
+## [v2.6q] - 2016-03-01
+
+### Fixed
+- Correct detection of font inside cells
+
+### Changed
+- Index formatting
+
+## [v2.6p] - 2016-01-19
+
+### Fixed
+- Formatting of `\degreeCelsius` (issue #285)
+- Allow input unit with prefix and `\per` in `exponent-to-prefix` (issue 283)
+
+## [v2.6o] - 2016-01-05
+
+### Fixed
+- Allow for unit powers when converting exponents to prefixes
+
+## [v2.6n] - 2015-12-31
+
+### Changed
+- Formatting of `\degreeCelsius` (issue #282)
+
+### Fixed
+- Appearance of ångström with LuaTeX (issue #280)
+
+## [v2.6m] - 2015-10-15
+
+### Fixed
+- Interaction with `mwtab` in some table cells
+
+## [v2.6l] - 2015-09-14
+
+### Fixed
+- An internal error in literal unit formatting
+
+## [v2.6k] - 2015-09-12
+
+### Changed
+- Track/exploit `expl3` updates
+
+## [v2.6j] - 2015-09-01
+
+### Fixed
+- Treatment of `\pm` when `exponent-to-prefix` is true
+- Print all units when `exponent-to-prefix` is true
+
+## [v2.6i] - 2015-08-18
+
+### Changed
+- Performance improvements
+- Removed one deprecated `expl3` functions
+
+### Fixed
+- Use of `\cancel` in math mode (issue #264)
+- Cope better with large numbers when rounding (issue #198)
+
+## [v2.6h] - 2015-07-17
+
+### Changed
+- Track `expl3` changes
+
+## [v2.6g] - 2015-06-25
+
+### Fixed
+- Handling of empty table cells (issue #271)
+
+## [v2.6f] - 2015-06-16
+
+### Added
+- Spanish coverage for translations
+
+### Changed
+- Approach to supporting `mathspec`
+- Remove a (probably) misplaced `\scan_stop:`
+
+### Fixed
+- Behaviour of `table-sign-exponent` and `table-sign-mantissa` when set
+ false
+
+## [v2.6e] - 2015-01-21
+
+### Changed
+- Auto-detect `mathspec`/`eulervm`
+
+## [v2.6d] - 2014-10-28
+
+### Fixed
+- Fix conversation of uncertainty part with integer mantissas
+
+## [v2.6c] - 2014-10-01
+
+### Fixed
+- `\micro` when `fontspec` is loaded
+
+## [v2.6b] - 2014-09-27
+
+### Changed
+- Method for font shape detection to allow for, _e.g._ `\scshape`
+
+### Fixed
+- Typo in standard `input-protect-tokens` options
+
+## [v2.6a] - 2014-09-15
+
+### Changed
+- Improved Unicode math symbol coverage
+
+## [v2.6] - 2014-09-05
+
+### Changes
+- Switch to math mode by default for all printing
+- Use `\mathord` before comparators
+- Only apply 'tight' spacing to `\mathbin` cases
+- Use a 'real' minus with `tex4ht`
+- Use a full width space between number and unit (issue #230)
+- Note that colour for printing powers is set by `power-font` (issue #240)
+- Use `\mathord` to get 'tight' spacing for signs (issue #241)
+- Old `repeatunits` option is partly coved by `range-units` (issue #254)
+
+### Fixed
+- Loading when `mdwtab` is in use
+- Appearance of minus sign when `tex4ht` is in use
+- Spacing when printing comparators
+- Preserve `\fg` in bookmarks (issue #226)
+- Allow for `output-exponent-marker` option in tables (issue #232)
+- Conversion of integer with separate uncertainty to 'compact' form
+ (issue #233)
+- Option name wrong in v1 table (issue #240)
+- Use `\textpm` in text mode if `textcomp` package is loaded (issue #249)
+- Ignore hard spaces in `\num` (issue #256)
+- Use `\mathord for tight spacing on 'in line' exponent (issue #257)
+
+## [v2.5s] - 2013-07-31
+
+### Fixed
+- Internal issue with one key
+
+## [v2.5r] - 2013-07-11
+
+## Fixed
+- Update internals to remove deprecated key support
+
+## [v2.5q] - 2013-03-11
+
+### Changed
+- Issue warning if `cellspace` column letter is moved
+
+### Fixed
+- Reorder creation of unit wrappers and option setting (issue #218)
+- Replace active hyphen with 'other' one (issue #222)
+
+## [v2.5p] - 2013-02-01
+
+### Fixed
+- Search/replace `\pm` and `\mp` in text mode printing
+
+## [v2.5o] - 2013-01-09
+
+### Changed
+- Track `expl3` changes
+
+## [v2.5n] - 2012-12-29
+
+### Fixed
+- Correctly calculate grouping data to send to `pgf` (issue #211)
+
+## [v2.5m] - 2012-11-27
+
+### Fixed
+- Allow for `bidi`/RTL when applying `\text`
+- Search-and-replace in UTF-8 literal units
+- Load binary-units only when requested (issue #201)
+- Disable `\hightlight` in bookmarks (issue #207)
+
+## [v2.5l] - 2012-11-21
+
+### Changed
+- Track `expl3` changes
+
+## [v2.5k] - 2012-11-13
+
+### Changed
+- Explicitly require `xparse`
+
+### Fixed
+- Skip white space after `\begin{document}`
+- Correct use of fixed dimension/skip values internally
+- Store name of `\frac` function, don't `\let` it (issue #203)
+
+## [v2.5j] - 2012-09-18
+
+### Fixed
+- Erroneous branch in test for rounding removed (issue #202)
+
+## [v2.5i] - 2012-09-11
+
+### Changed
+- Internal search for first token in some strings
+
+### Fixed
+- Align numbers with no uncertainties correctly when space is reserved
+ for uncertainty part
+
+## [v2.5h] - 2012-08-28
+
+### Changed
+- Test literal units for being 'blank' not 'empty'
+
+## [v2.5g] - 2012-07-22
+
+### Fixed
+- Function of `binary-units` option
+
+## [v2.5f] - 2012-07-16
+
+### Changed
+- Track `expl3` changes
+
+## [v2.5e] - 2012-06-13
+
+### Fixed
+- An internal error in unit expansion (introduced in v2.4f)
+
+## [v2.5d] - 2012-06-11
+
+### Added
+- Extend qualifier system to cover 'phrases'
+
+### Changed
+- Extend UTF-8 support (issue #199)
+- Track `expl3` changes
+
+## [v2.5c] - 2012-05-03
+
+### Fixed
+- Detect and skip empty `s`-column cells (issue #197)
+- Detection of zero input with fixed exponent (issue #198)
+
+## [v2.5b] - 2012-04-21
+
+### Fixed
+- Detect eulervm package (issue #195)
+- Search-and-replace for category 'other' "_' and "^" in literal
+ units (issue #196)
+
+## [v2.5a] - 2012-04-19
+
+### Fixed
+- When creating free-standing unit, allow for dynamic nature of
+ spacing (bug introduced in v2.5)
+
+## [v2.5] - 2012-04-15
+
+### Added
+- Option `zero-decimal-to-integer` (issue #178)
+- Option to omit uncertainly entirely (issue #180)
+
+### Changed
+- Reduce use of implicit math mode
+- Document that `round-mode = places` acts on the mantissa (issue #193)
+- Rearrange processing code such that exponents can be dropped (issue #192)
+
+### Fixed
+- Use a standard-width comparator for tables (issue #183)
+
+## [v2.4n] - 2012-04-12
+
+### Changed
+- Extend scientific notation code to better handle large numbers of digits
+
+## [v2.4m] - 2012-04-04
+
+### Fixed
+- Handling of a single entry in `\SIlist`
+
+## [v2.4l] - 2012-03-23
+
+### Fixed
+- Load ordering with `soulpos`
+
+## [v2.4k] - 2012-03-22
+
+### Fixed
+- Interaction of `^` and `_` with `brenw (issue #191)
+- Adapted `list-pair-separator` for `translator` package (issue #190)
+- Check for `round-minimum` with large values
+
+## [v2.4j] - 2012-01-26
+
+### Fixed
+- Ensure that typesetting is in hmode
+
+## [v2.4i] - 2012-01-19
+
+### Fixed
+- Check for zero decimal part (issue #186)
+
+## [v2.4h] - 2012-01-15
+
+### Changed
+- Shortened an internal code path
+
+### Fixed
+- Bug in `reciprocal-positive-first` implementation
+
+## [v2.4g] - 2012-01-06
+
+### Changed
+- Internal changes due to update to `expl3` (issue #131)
+
+## [v2.4f] - 2011-12-24
+
+### Changed
+- Improve performance in an internal mapping
+- Use faster data structures internally
+
+### Fixed
+- Force font update in table cells
+- One incorrect internal variable name
+
+## [v2.4e] - 2011-12-11
+
+### Fixed
+- Replacements used with `latin1` encoding
+
+## [v2.4d] - 2011-12-09
+
+### Changed
+- Source formatting
+
+### Fixed
+- Free-standing units using `xspace` in captions
+
+## [v2.4c] - 2011-12-09
+
+### Fixed
+- Test for text mode font
+
+## [v2.4b] - 2011-12-09
+
+### Fixed
+- Incorrect doubling of `#` tokens
+
+## [v2.4a] - 2011-12-04
+
+### Changed
+- Extend search-and-replace in units to cover UTF-8 symbols
+- Symbols used with UTF-8 engines (issue #176)
+
+### Fixed
+- Interaction of `textcomp` with user symbol changes (issue #181)
+
+## [v2.4] - 2012-04-15
+
+### Added
+- Option `round-half = even` (issue #40)
+- Option `list-pair-separator` (issue #136)
+- Auto-conversion for prefixes (issue #173)
+- Notes for upgraders
+
+### Changed
+- Automatically 'compress' exponents (issue #62)
+- Clean up internal `expl3` usage
+- Removed remaining 'math' options
+
+### Fixed
+- Replace minus sign in text mode (issue #161)
+
+## [v2.3h] - 2011-10-14
+
+### Changed
+- Internal logic improved
+- Explicitly load `xfac` as part of documentation
+
+### Fixed
+- Select math mode with `tex4ht` (issue #170)
+- Print superscripts using HTML tags with `tex4ht` (issue #171)
+
+## [v2.3g] - 2011-10-06
+
+### Changed
+- Mark-up in documentation
+
+### Fixed
+- Check for leading zero when dealing with rounding 'large' exponents
+ (issue #168)
+- Internal issue with undeclared variable
+
+## [v2.3f] - 2011-09-13
+
+### Fixed
+- Trap erroneous numbers in tables (issue #167)
+
+## [v2.3e] - 2011-09-09
+
+### Added
+- Advice on local installation
+
+### Changed
+- Remove deprecated `expl3` functions
+- Performance improvements
+
+## [v2.3d] - 2011-08-18
+
+### Fixed
+- Bad csname for superscripts in literal mode
+
+## [v2.3c] - 2011-08-12
+
+### Fixed
+- Use correct `\pm` for units in literal mode (issue #163)
+
+## [v2.3b] - 2011-08-08
+
+### Added
+- Additional abbreviated units (issue #162)
+
+### Fixed
+- Definition of abbreviations using option `free-standing-units`
+
+## [v2.3a] - 2011-07-17
+
+### Changed
+- Internal `expl3` updates
+
+### Fixed
+- Restore changes from v2.2l, missed in v2.3
+
+## [v2.3] - 2011-07-09
+
+### Added
+- Supported for powers in literal units (issue #152)
+- Unit abbreviation `\hl`/`\hL`
+- Demo for 'closing up' not after an integer (issue #151)
+
+### Changed
+- Load binary units as an option
+- Used an internal version of `\textsuperscript`
+- Internal `expl3` style
+- Revised `s`-column printing
+
+### Deprecated
+- Option `load-configurations`
+
+### Fixed
+- Behavior of `table-auto-round` option
+- Missing deactivation in `strict` option
+- Grouping digits (issue #133)
+- Addition of explicit sign to mantissa (issue #139)
+- Various issues with tabular alignment
+
+## [v2.2l] - 2011-06-30
+
+### Fixed
+- Group pre-unit parsing (issue #158)
+
+## [v2.2k] - 2011-06-27
+
+### Fixed
+- Avoid `\peek_...` inside the print routine (issue #157)
+
+## [v2.2j] - 2011-06-26
+
+### Fixed
+- Avoid box for range phrase (issue #156)
+
+## [v2.2i] - 2011-06-15
+
+### Fixed
+- Detect font in table cells before boxing up (issue #153)
+
+## [v2.2h] - 2011-06-03
+
+### Fixed
+- Deal correctly with 'roll-over' in rounding integer part (issue #150)
+
+## [v2.2g] - 2011-06-02
+
+### Fixed
+- Set per-unit options for list/range units when a single unit is used
+ (issue #149)
+- Add test for `parse-numbers = false` to `\tablenum` code
+
+## [v2.2f] - 2011-05-25
+
+### Fixed
+- `table-column-width = 0pt` (issue #146)
+
+## [v2.2e] - 2011-05-23
+
+### Fixed
+- Remove 'mantissa' marker for numbers with no real part (issue #145)
+
+## [v2.2d] - 2011-04-28
+
+### Fixed
+- The `strict` option (issue #143)
+- Add `\dots` to protected symbols (issue #131)
+
+## [v2.2c] - 2011-04-20
+
+### Fixed
+- Bad expansion of toks (issue #141)
+
+## [v2.2b] - 2011-04-19
+
+### Fixed
+- Bad formatting of negative exponents when using 'E' output
+- Internally one argument if `color` is not loaded (issue #138)
+- Make `\of` expandable in literal contexts (issue #137)
+
+## [v2.2a] - 2011-04-16
+
+### Changed
+- Make full text for tables, etc., hyperlinks in docs
+- Re-arrange docs
+- Performance enhancements
+
+### Fixed
+- Auto-insertion of "1" when literal mode is on (issue #135)
+- Detect `\end` macro and print output correctly (issue #134)
+- Group digits for input containing symbolic entries (issue #131)
+- Specify a default for `group-digits` (issue #130)
+- Correctly expand macros with arguments in tables (issue #129)
+- Ensure that `*` in tabular preamble works correctly with `S`/`s` columns
+ (issue #128)
+
+## [v2.2] - 2011-04-13
+
+### Added
+- `\tablenum` command (issue ##117)
+- Parse separated uncertainties (issue #57)
+- Allow `\cancel` in units (issue #4)
+- Allow `\highlight` in units
+- Option `table-column-width` (issue #105)
+- Option `bracket-negative-numbers` (issue #5)
+- Option `table-align-comparators` (issue #86)
+- Option `minimum-integer-digits` (issue #112)
+- Option to print exponent marker literally (issue #113)
+- Support for engineering-style number output (issue #114)
+- Example of centring a right-aligned column (issue #85)
+- Various unit abbreviations
+
+### Changed
+- Renamed `...-separator` options to `...-product` where appropriate
+
+### Fixed
+- Allow `\DeclareSIUnit` to take optional argument (issue #121)
+- Latent issue with micro symbol when `fontspec` is loaded
+- Right-alignment in fixed-width columns
+- Print leading `1` when units start `\per` and `per-mode = symbol`
+ (issue #125)
+
+## [v2.1p] - 2011-04-04
+
+### Fixed
+- Two bugs in comparator code
+
+## [v2.1o] - 2011-04-03
+
+### Fixed
+- Detect arev package (issue #122)
+- Allow for negative fixed exponents (issue #123)
+
+## [v2.1n] - 2011-03-31
+
+### Fixed
+- Rounding to zero significant figures should always give a 0 (issue #119)
+- `round-integer-to-decimal` when `round-precision = 0`
+
+## [v2.1m] - 2011-03-20
+
+### Added
+- `\J` as an abbreviation for `\joule`
+
+### Changed
+- Various improvements to documentation
+- Avoid expanding units when written to log as 'invalid literals'
+
+### Fixed
+- Ensure that some output occurs in when `round-precision = 0` and
+ `round-mode = places` (issue #111)
+
+## [v2.1l] - 2011-02-10
+
+### Fixed
+- A couple of errant 'weight' => 'family' changes
+
+## [v2.1k] - 2011-02-09
+
+### Added
+- Option `detect-inine-family`
+
+### Changed
+- Use an internal integer for text minus
+
+## [v2.1j] - 2011-02-01
+
+### Fixed
+- Check for `\inputencodingname` macro rather than `inputenc` package
+ (issue #107)
+
+## [v2.1i] - 2011-01-27
+
+### Changed
+- New approach for `detect-display-math`
+
+### Fixed
+- New approach to `symbol-or-fraction` (issue #104)
+
+## [v2.1h] - 2011-01-18
+
+### Changed
+- Detect AMS display-like environments
+
+## [v2.1g] - 2010-12-21
+
+### Changed
+- Update test for `expl3` and `xparse`
+
+## [v2.1f] - 2010-11-24
+
+### Fixed
+- One-letter typo (issue #101)
+
+## [v2.1e] - 2010-11-22
+
+### Fixed
+- Issue with free-standing unit options (issue #99)
+- Text mode symbols with `fontspec` (issue #98)
+
+## [v2.1d] - 2010-11-14
+
+### Fixed
+- Apply options for units when in free-standing mode (issue #97)
+- Typo in v1 configuration file
+
+## [v2.1c] - 2010-11-14
+
+### Added
+- Choice `text` for `qualifier-mode` option (issue #95)
+
+### Changed
+- Discourage line break between number and unit even when it is permitted
+ (issue #92)
+- Ensure that lists can break across lines
+- Restrict range and list functions to text mode
+- Auto-detect math mode in tables (issue #94)
+
+## [v2.1b] - 2010-11-05
+
+### Changed
+- Improve hyphen to minus correction (issue #89)
+
+### Fixed
+- One wrong variable used (issue #90)
+
+## [v2.1a] - 2010-11-05
+
+### Changed
+- Internal `expl3` improvements
+
+### Fixed
+- Print list separators in text mode (issue #87)
+- Add in some missing `\ensuremath` statements (issue #88)
+
+## [v2.1] - 2010-10-31
+
+### Added
+- Option `copy-complex-root` (issue #63)
+- Option `table-align-exponent` and `table-align-uncertainty` (issue #60)
+- Option `power-font` (issue #69)
+- Option `scientific-notation` (issue #11)
+- Option `round-integer-to-decimal` (issue #55)
+- Option `input-comparators` (issue #16)
+- Option `round-minimum` (issue #17)
+
+### Changed
+- Internal `expl3` improvements
+
+### Fixed
+- Correct abbreviation for `\kelvin`
+- Bug in conversion code for 'large' numbers to scientific format
+- Bug with rounding check if decimal part is empty
+- Remove decimal marker if rounding gives an empty decimal part
+
+## [v2.0y] - 2010-10-11
+
+### Fixed
+- Bug with `tight-spacing` option
+
+## [v2.0x] - 2010-10-05
+
+### Fixed
+- Make single-prefix detection work with non-symbolic prefixes
+ (issue #81)
+
+## [v2.0w] - 2010-09-29
+
+### Fixed
+- Problem with REVTeX and S columns (issue #80)
+
+## [v2.0v] - 2010-09-26
+
+### Changed
+- Track `expl3` changes
+
+## [v2.0u] - 2010-09-14
+
+### Fixed
+- Issue with `textpos` (issue #74)
+- Prevent infinite loop when using `\SI{}{...}` (issue #78)
+
+## [v2.0t] - 2010-08-24
+
+### Fixed
+- Correct `\exp_after:wN` (issue #77)
+
+## [v2.0s] - 2010-08-12
+
+### Added
+- Demo for headers in tables
+
+### Fixed
+- Bug in rounding code for zero decimal place (issue #76)
+
+## [v2.0r] - 2010-08-02
+
+### Fixed
+- Bug in v1 `decimalsymbol` emulation
+
+## [v2.0q] - 2010-07-29
+
+### Fixed
+- Errors with free-standing units
+
+## [v2.0p] - 2010-07-28
+
+### Fixed
+- Shape detection
+
+## [v2.0o] - 2010-07-22
+
+### Added
+- Extend detect-italic to slanted shape (issue #73)
+
+## [v2.0n] - 2010-07-15
+
+### Added
+- Various abbreviations
+
+### Changed
+- Documentation section on tables where rows have different units
+
+## [v2.0m] - 2010-07-09
+
+### Added
+- Option `locale` and notes on use with `babel`
+
+## [v2.0l] - 2010-07-07
+
+### Changed
+- Updated documentation for v1 options
+
+### Fixed
+- Move test for `\fg` so that it works independent of `babel` load order
+
+## [v2.0k] - 2010-07-04
+
+### Fixed
+- Issue with `babel` (issue #68)
+
+## [v2.0j] - 2010-06-30
+
+### Changed
+- Force `input-symbols` to print in math mode
+
+### Fixed
+- Correct appearance of `\hartree`
+
+## [v2.0i] - 2010-06-29
+
+### Fixed
+- Two missed `_` from `expl3` style switch (issue #67)
+
+## [v2.0h] - 2010-06-29
+
+### Fixed
+- Issue with localisation
+
+## [v2.0g] - 2010-06-28
+
+### Added
+- First approach to localisation (issue #61)
+- Restore 'bracket-numbers' option (issue #65)
+
+### Changed
+- Alter complex root output so that it always resets the math font
+
+### Fixed
+- Bracket complex numbers in numerator of quotient (issue #66)
+
+## [v2.0f] - 2010-06-27
+
+### Fixed
+- Spacing with `\times` in text mode (issue #64)
+
+## [v2.0e] - 2010-06-20
+
+### Fixed
+- Move save/restore of `\pm` (issue #58)
+
+## [v2.0d] - 2010-06-10
+
+### Changed
+- Document use of `\cr` in tables (issue #53)
+- Internal `expl3` improvements
+
+### Fixed
+- `table-exponent` option's handling of exponent signs (issue #56)
+
+## [v2.0c] - 2010-06-07
+
+### Changed
+- Improve emulation of v1 material
+- Performance improvements
+- Internal `expl3` improvements
+- Move `\requiresiconfigs` to v1 file
+
+### Fixed
+- Test for bottoming-out units and ensure that any 'hidden' literal units
+ print (issue #50)
+
+## [v2.0b] - 2010-06-01
+
+### Added
+- Complete emulation of v1 options
+
+## [v2.0a] - 2010-05-28
+
+### Changed
+- Allow `\SendSettingsToPgf` in the document body
+- Several improvements in v1 emulation
+
+### Fixed
+- Allow `\newunit` to take optional arguments (issue #45)
+
+## v2.0
+
+### Added
+- Complete re-write of package to add many new features
+
+## v1.0
+
+### Added
+- First official release
+
+## v0.6
+
+### Added
+- First public testing release (as `si`)
+
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v2.8b...stable
+[v2.8b]: https://github.com/josephwright/siunitx/compare/v2.8a...v2.8b
+[v2.8a]: https://github.com/josephwright/siunitx/compare/v2.8...v2.8a
+[v2.8]: https://github.com/josephwright/siunitx/compare/v2.7u...v2.8
+[v2.7v]: https://github.com/josephwright/siunitx/compare/v2.7u...v2.7v
+[v2.7u]: https://github.com/josephwright/siunitx/compare/v2.7t...v2.7u
+[v2.7t]: https://github.com/josephwright/siunitx/compare/v2.7s...v2.7t
+[v2.7s]: https://github.com/josephwright/siunitx/compare/v2.7r...v2.7s
+[v2.7r]: https://github.com/josephwright/siunitx/compare/v2.7q...v2.7r
+[v2.7q]: https://github.com/josephwright/siunitx/compare/v2.7p...v2.7q
+[v2.7p]: https://github.com/josephwright/siunitx/compare/v2.7o...v2.7p
+[v2.7o]: https://github.com/josephwright/siunitx/compare/v2.7n...v2.7o
+[v2.7n]: https://github.com/josephwright/siunitx/compare/v2.7m...v2.7n
+[v2.7m]: https://github.com/josephwright/siunitx/compare/v2.7l...v2.7m
+[v2.7l]: https://github.com/josephwright/siunitx/compare/v2.7k...v2.7l
+[v2.7k]: https://github.com/josephwright/siunitx/compare/v2.7j...v2.7k
+[v2.7j]: https://github.com/josephwright/siunitx/compare/v2.7i...v2.7j
+[v2.7i]: https://github.com/josephwright/siunitx/compare/v2.7h...v2.7i
+[v2.7h]: https://github.com/josephwright/siunitx/compare/v2.7g...v2.7h
+[v2.7g]: https://github.com/josephwright/siunitx/compare/v2.7f...v2.7g
+[v2.7f]: https://github.com/josephwright/siunitx/compare/v2.7e...v2.7f
+[v2.7e]: https://github.com/josephwright/siunitx/compare/v2.7d...v2.7e
+[v2.7d]: https://github.com/josephwright/siunitx/compare/v2.7c...v2.7d
+[v2.7c]: https://github.com/josephwright/siunitx/compare/v2.7b...v2.7c
+[v2.7b]: https://github.com/josephwright/siunitx/compare/v2.7a...v2.7b
+[v2.7a]: https://github.com/josephwright/siunitx/compare/v2.7...v2.7a
+[v2.7]: https://github.com/josephwright/siunitx/compare/v2.6s...v2.7
+[v2.6s]: https://github.com/josephwright/siunitx/compare/v2.6r...v2.6s
+[v2.6r]: https://github.com/josephwright/siunitx/compare/v2.6q...v2.6r
+[v2.6q]: https://github.com/josephwright/siunitx/compare/v2.6p...v2.6q
+[v2.6p]: https://github.com/josephwright/siunitx/compare/v2.6o...v2.6p
+[v2.6o]: https://github.com/josephwright/siunitx/compare/v2.6n...v2.6o
+[v2.6n]: https://github.com/josephwright/siunitx/compare/v2.6m...v2.6n
+[v2.6m]: https://github.com/josephwright/siunitx/compare/v2.6l...v2.6m
+[v2.6l]: https://github.com/josephwright/siunitx/compare/v2.6k...v2.6l
+[v2.6k]: https://github.com/josephwright/siunitx/compare/v2.6j...v2.6k
+[v2.6j]: https://github.com/josephwright/siunitx/compare/v2.6i...v2.6j
+[v2.6i]: https://github.com/josephwright/siunitx/compare/v2.6h...v2.6i
+[v2.6h]: https://github.com/josephwright/siunitx/compare/v2.6g...v2.6h
+[v2.6g]: https://github.com/josephwright/siunitx/compare/v2.6f...v2.6g
+[v2.6f]: https://github.com/josephwright/siunitx/compare/v2.6e...v2.6f
+[v2.6e]: https://github.com/josephwright/siunitx/compare/v2.6d...v2.6e
+[v2.6d]: https://github.com/josephwright/siunitx/compare/v2.6c...v2.6d
+[v2.6c]: https://github.com/josephwright/siunitx/compare/v2.6b...v2.6c
+[v2.6b]: https://github.com/josephwright/siunitx/compare/v2.6a...v2.6b
+[v2.6a]: https://github.com/josephwright/siunitx/compare/v2.6...v2.6a
+[v2.6]: https://github.com/josephwright/siunitx/compare/v2.5s...v2.6
+[v2.5s]: https://github.com/josephwright/siunitx/compare/v2.5r...v2.5s
+[v2.5r]: https://github.com/josephwright/siunitx/compare/v2.5q...v2.5r
+[v2.5q]: https://github.com/josephwright/siunitx/compare/v2.5p...v2.5q
+[v2.5p]: https://github.com/josephwright/siunitx/compare/v2.5o...v2.5p
+[v2.5o]: https://github.com/josephwright/siunitx/compare/v2.5n...v2.5o
+[v2.5n]: https://github.com/josephwright/siunitx/compare/v2.5m...v2.5n
+[v2.5m]: https://github.com/josephwright/siunitx/compare/v2.5l...v2.5m
+[v2.5l]: https://github.com/josephwright/siunitx/compare/v2.5k...v2.5l
+[v2.5k]: https://github.com/josephwright/siunitx/compare/v2.5j...v2.5k
+[v2.5j]: https://github.com/josephwright/siunitx/compare/v2.5i...v2.5j
+[v2.5i]: https://github.com/josephwright/siunitx/compare/v2.5h...v2.5i
+[v2.5h]: https://github.com/josephwright/siunitx/compare/v2.5g...v2.5h
+[v2.5g]: https://github.com/josephwright/siunitx/compare/v2.5f...v2.5g
+[v2.5f]: https://github.com/josephwright/siunitx/compare/v2.5e...v2.5f
+[v2.5e]: https://github.com/josephwright/siunitx/compare/v2.5d...v2.5e
+[v2.5d]: https://github.com/josephwright/siunitx/compare/v2.5c...v2.5d
+[v2.5c]: https://github.com/josephwright/siunitx/compare/v2.5b...v2.5c
+[v2.5b]: https://github.com/josephwright/siunitx/compare/v2.5a...v2.5b
+[v2.5a]: https://github.com/josephwright/siunitx/compare/v2.5...v2.5a
+[v2.5]: https://github.com/josephwright/siunitx/compare/v2.4n...v2.5
+[v2.4n]: https://github.com/josephwright/siunitx/compare/v2.4m...v2.4n
+[v2.4m]: https://github.com/josephwright/siunitx/compare/v2.4l...v2.4m
+[v2.4l]: https://github.com/josephwright/siunitx/compare/v2.4k...v2.4l
+[v2.4k]: https://github.com/josephwright/siunitx/compare/v2.4j...v2.4k
+[v2.4j]: https://github.com/josephwright/siunitx/compare/v2.4i...v2.4j
+[v2.4i]: https://github.com/josephwright/siunitx/compare/v2.4h...v2.4i
+[v2.4h]: https://github.com/josephwright/siunitx/compare/v2.4g...v2.4h
+[v2.4g]: https://github.com/josephwright/siunitx/compare/v2.4f...v2.4g
+[v2.4f]: https://github.com/josephwright/siunitx/compare/v2.4e...v2.4f
+[v2.4e]: https://github.com/josephwright/siunitx/compare/v2.4d...v2.4e
+[v2.4d]: https://github.com/josephwright/siunitx/compare/v2.4c...v2.4d
+[v2.4c]: https://github.com/josephwright/siunitx/compare/v2.4b...v2.4c
+[v2.4b]: https://github.com/josephwright/siunitx/compare/v2.4a...v2.4b
+[v2.4a]: https://github.com/josephwright/siunitx/compare/v2.4...v2.4a
+[v2.4]: https://github.com/josephwright/siunitx/compare/v2.3h...v2.4
+[v2.3h]: https://github.com/josephwright/siunitx/compare/v2.3g...v2.3h
+[v2.3g]: https://github.com/josephwright/siunitx/compare/v2.3f...v2.3g
+[v2.3f]: https://github.com/josephwright/siunitx/compare/v2.3e...v2.3f
+[v2.3e]: https://github.com/josephwright/siunitx/compare/v2.3d...v2.3e
+[v2.3d]: https://github.com/josephwright/siunitx/compare/v2.3c...v2.3d
+[v2.3c]: https://github.com/josephwright/siunitx/compare/v2.3b...v2.3c
+[v2.3b]: https://github.com/josephwright/siunitx/compare/v2.3a...v2.3b
+[v2.3a]: https://github.com/josephwright/siunitx/compare/v2.3...v2.3a
+[v2.3]: https://github.com/josephwright/siunitx/compare/v2.2l...v2.3
+[v2.2l]: https://github.com/josephwright/siunitx/compare/v2.2k...v2.2l
+[v2.2k]: https://github.com/josephwright/siunitx/compare/v2.2j...v2.2k
+[v2.2j]: https://github.com/josephwright/siunitx/compare/v2.2i...v2.2j
+[v2.2i]: https://github.com/josephwright/siunitx/compare/v2.2h...v2.2i
+[v2.2h]: https://github.com/josephwright/siunitx/compare/v2.2g...v2.2h
+[v2.2g]: https://github.com/josephwright/siunitx/compare/v2.2f...v2.2g
+[v2.2f]: https://github.com/josephwright/siunitx/compare/v2.2e...v2.2f
+[v2.2e]: https://github.com/josephwright/siunitx/compare/v2.2d...v2.2e
+[v2.2d]: https://github.com/josephwright/siunitx/compare/v2.2c...v2.2d
+[v2.2c]: https://github.com/josephwright/siunitx/compare/v2.2b...v2.2c
+[v2.2b]: https://github.com/josephwright/siunitx/compare/v2.2a...v2.2b
+[v2.2a]: https://github.com/josephwright/siunitx/compare/v2.2...v2.2a
+[v2.2]: https://github.com/josephwright/siunitx/compare/v2.1p...v2.2
+[v2.1p]: https://github.com/josephwright/siunitx/compare/v2.1o...v2.1p
+[v2.1o]: https://github.com/josephwright/siunitx/compare/v2.1n...v2.1o
+[v2.1n]: https://github.com/josephwright/siunitx/compare/v2.1m...v2.1n
+[v2.1m]: https://github.com/josephwright/siunitx/compare/v2.1l...v2.1m
+[v2.1l]: https://github.com/josephwright/siunitx/compare/v2.1k...v2.1l
+[v2.1k]: https://github.com/josephwright/siunitx/compare/v2.1j...v2.1k
+[v2.1j]: https://github.com/josephwright/siunitx/compare/v2.1i...v2.1j
+[v2.1i]: https://github.com/josephwright/siunitx/compare/v2.1h...v2.1i
+[v2.1h]: https://github.com/josephwright/siunitx/compare/v2.1g...v2.1h
+[v2.1g]: https://github.com/josephwright/siunitx/compare/v2.1f...v2.1g
+[v2.1f]: https://github.com/josephwright/siunitx/compare/v2.1e...v2.1f
+[v2.1e]: https://github.com/josephwright/siunitx/compare/v2.1d...v2.1e
+[v2.1d]: https://github.com/josephwright/siunitx/compare/v2.1c...v2.1d
+[v2.1c]: https://github.com/josephwright/siunitx/compare/v2.1b...v2.1c
+[v2.1b]: https://github.com/josephwright/siunitx/compare/v2.1a...v2.1b
+[v2.1a]: https://github.com/josephwright/siunitx/compare/v2.1...v2.1a
+[v2.1]: https://github.com/josephwright/siunitx/compare/v2.0y...v2.1
+[v2.0y]: https://github.com/josephwright/siunitx/compare/v2.0x...v2.0y
+[v2.0x]: https://github.com/josephwright/siunitx/compare/v2.0w...v2.0x
+[v2.0w]: https://github.com/josephwright/siunitx/compare/v2.0v...v2.0w
+[v2.0v]: https://github.com/josephwright/siunitx/compare/v2.0u...v2.0v
+[v2.0u]: https://github.com/josephwright/siunitx/compare/v2.0t...v2.0u
+[v2.0t]: https://github.com/josephwright/siunitx/compare/v2.0s...v2.0t
+[v2.0s]: https://github.com/josephwright/siunitx/compare/v2.0r...v2.0s
+[v2.0r]: https://github.com/josephwright/siunitx/compare/v2.0q...v2.0r
+[v2.0q]: https://github.com/josephwright/siunitx/compare/v2.0p...v2.0q
+[v2.0p]: https://github.com/josephwright/siunitx/compare/v2.0o...v2.0p
+[v2.0o]: https://github.com/josephwright/siunitx/compare/v2.0n...v2.0o
+[v2.0n]: https://github.com/josephwright/siunitx/compare/v2.0m...v2.0n
+[v2.0m]: https://github.com/josephwright/siunitx/compare/v2.0l...v2.0m
+[v2.0l]: https://github.com/josephwright/siunitx/compare/v2.0k...v2.0l
+[v2.0k]: https://github.com/josephwright/siunitx/compare/v2.0j...v2.0k
+[v2.0j]: https://github.com/josephwright/siunitx/compare/v2.0i...v2.0j
+[v2.0i]: https://github.com/josephwright/siunitx/compare/v2.0h...v2.0i
+[v2.0h]: https://github.com/josephwright/siunitx/compare/v2.0g...v2.0h
+[v2.0g]: https://github.com/josephwright/siunitx/compare/v2.0f...v2.0g
+[v2.0f]: https://github.com/josephwright/siunitx/compare/v2.0e...v2.0f
+[v2.0e]: https://github.com/josephwright/siunitx/compare/v2.0d...v2.0e
+[v2.0d]: https://github.com/josephwright/siunitx/compare/v2.0c...v2.0d
+[v2.0c]: https://github.com/josephwright/siunitx/compare/v2.0b...v2.0c
+[v2.0b]: https://github.com/josephwright/siunitx/compare/v2.0a...v2.0b
+[v2.0a]: https://github.com/josephwright/siunitx/compare/v2.0...v2.0a
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index 7609bf7877..bfef3f5f5e 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -5225,7 +5225,7 @@ This work consists of the file siunitx.dtx
%
% The usual preliminaries.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2020/02/25} {2.8b}
+\ProvidesExplPackage {siunitx} {2021/03/27} {2.8c}
{A comprehensive (SI) units package}
% \end{macrocode}
%
@@ -5279,6 +5279,15 @@ This work consists of the file siunitx.dtx
\RequirePackage{ amstext , array , l3keys2e }
% \end{macrocode}
%
+% \begin{macro}{@@_if_hooks:TF}
+% To work with updated hooks if available.
+% \begin{macrocode}
+\@ifl@t@r \fmtversion { 2020-10-01 }
+ { \cs_new_eq:NN \@@_if_hooks:TF \use_i:nn }
+ { \cs_new_eq:NN \@@_if_hooks:TF \use_ii:nn }
+% \end{macrocode}
+% \end{macro}
+%
%\begin{macro}{\@@_tmp:w}
% A scratch function.
% \begin{macrocode}
@@ -5750,11 +5759,21 @@ This work consists of the file siunitx.dtx
}
\group_end:
}
-\tl_put_right:Nn \document
+\@@_if_hooks:TF
+ {
+ \AddToHook { begindocument / end } [ siunitx ]
+ {
+ \@@_set_math_fam:n { sf }
+ \@@_set_math_fam:n { tt }
+ }
+ }
{
- \@@_set_math_fam:n { sf }
- \@@_set_math_fam:n { tt }
- \ignorespaces
+ \tl_put_right:Nn \document
+ {
+ \@@_set_math_fam:n { sf }
+ \@@_set_math_fam:n { tt }
+ \ignorespaces
+ }
}
% \end{macrocode}
%\end{macro}
@@ -11572,7 +11591,18 @@ This work consists of the file siunitx.dtx
\tl_map_function:nN { \bar \color \ng \pm \array@row@rst }
\@@_protect_symbols:N
}
-\tl_put_right:Nn \document { \@@_protect_symbols:N \fg }
+\@@_if_hooks:TF
+ {
+ \AddToHook { begindocument / end } [ siunitx ]
+ { \@@_protect_symbols:N \fg }
+ }
+ {
+ \tl_put_right:Nn \document
+ {
+ \@@_protect_symbols:N \fg
+ \ignorespaces
+ }
+ }
\cs_new_protected:Npn \@@_protect_symbols:N #1 {
\cs_if_exist:NT #1
{
@@ -15987,38 +16017,6 @@ This work consists of the file siunitx.dtx
% \pkg{hyperref}, and ensure that everything works cleanly and with
% no unnecessary warnings.
%
-% \begin{macro}{\@@_contents_add:N}
-% An updated version of \cs{addtocontents} which will ensure that
-% everything works properly. Using \cs{token_to_str:N} means that
-% there is no problem with the asynchronous nature of \TeX{}'s writing
-% mechanism.
-% \begin{macrocode}
-\AtBeginDocument
- {
- \cs_set:Npn \addtocontents #1#2
- {
- \protected@write \@auxout
- {
- \cs_set_eq:NN \label \use_none:n
- \cs_set_eq:NN \index \use_none:n
- \cs_set_eq:NN \glossary \use_none:n
- \seq_map_inline:Nn \l_siunitx_unit_symbolic_seq
- { \@@_contents_add:N ##1 }
- }
- { \token_to_str:N \@writefile {#1} {#2} }
- }
- }
-\cs_new_protected:Npn \@@_contents_add:N #1
- {
- \cs_set:Npn #1
- {
- \token_to_str:N #1
- \c_space_tl
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\@@_contents_bookmarks:}
% The idea here is two-fold. First, all of the unit macros are set
% up to simply print their literal interpretation: this is hopefully
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index fa11c665ec..ce6e9ef0f6 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index db7b69aa50..b9ca825e05 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1616793321
+date=1616879711
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=78ee3920e8f7f06f9860b86d61ac2a04
+lstdigest=b8b2e1cb827d876d31aeaccf2c888d1a
numpkg=4077
relstate=next
-version=7755
+version=7756
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: YatyRYmHq6X86RgYjZnL8Mb0fsBhNcCGuDEIuFZHo8vCYfSEpW4aS0eNqSkHmptCiTohmnMQv6NEW+KwW/ALlLnBaksNIRWYLS4a0MqOlzcagsKo8UhdTDOjgGeDumHjysEHaT3f0Jm6BcCsvhQwygE9tt60Bc3ztguxaEKo1v4hU9utagqSHCnwIyNq2bsJ3FmNG+nmfqv7+/LPQ+bx91n6wR9nUA5feBK/SJ2nBzC0MCJ24mXqRhV6PVq5an2rwX+oavcGIcvsp5dAa48cMaTKT/wnwcTh6EhiDvA0ASTLMTHzm3QWG2x7cCEPTZR4rojNeij4c5YRmaSFVFj7Dw==
+;;;; signature/miktex: E0BTCin7U7qAvMkY6L2JQpXhbMVjwuYJGh+WxY/pD0m3RmKixr8Kq6TO11ZQ43iEOAR0XzonV1HA9gGe1ax7cmSfiqC4uyVB/CmyIFkidVEWIp3Fk6WrURO10JsG8owVHrQdq+2VuFmt1mo5Pt4mnxqbVqvrAxBokuieall6/5jWFSn5h6jSXKGA2FqDJ8+b56EqBAIWiEUHiWxzMUj4qXZQARSae1clcDGBJw02x/x7Ey3ek/PAWc2u4RdNygWLrMKYyXjfZLrXLoDsLLMlhf9I78Avd/1W4ehM1Az0jb+v47nuqpAXuIEM+No9cQBTWVFMYQ7vyyvJmdf32FmkMQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 06d9ec428c..ba5bab1fa3 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1616793071
+date=1616879518
lastupd=addfont babel beamer beamer-rl cmpj covington datetime2 easybook fontsize gastex graphics-def gridpapers hyph-utf8 intopdf jlreq koma-script l3backend langsci latexindent lshort-korean
-lstdigest=ad18375e6140b2d12312c76992bdbbb9
+lstdigest=d76ecda5e621fe9060fdfd2ea9bd0872
numpkg=4077
relstate=stable
-version=7755
+version=7756
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: XlGtYkQ449EBVwvPM8pFKUGQLgoR71Ddz1CGsrftiwi49QSgo02XQzBz9I/8V2htPlNo0g5xdTDyKXN/wmaV/mZKPNmjXGh0IAX1s+cGy+W/u7kSV791Abv1VIZa3bFNhhG4LhdR6RUuGNeBM+ZxKPCO4oPWVMamN48lzpLD/wUTsMJOP7Y+4nGivxRWP1m1e/hi1JPS7QQoLEbdoLV59X3XJXCHyOHN7XW2yLjeHyb3FPG2EfYnIhlFRDIa7FA6KV7relB34ZahZ3yg5glXieroOso1nJ7YKDiv10mk+jU/zsGff9VHXnXljJf7D0CLb0/XoD+iNCG9p+Ch2ysijA==
+;;;; signature/miktex: WhogVo/5cCgdbxC++PnbiVPm12cjYeQUNDi/chGp9wTq3pCJN0vbRqD+WPV5P+8I+F5yGRPzznx+o8nyiuoPn9hwSlxKDTGS/iHFbmzVeADnrjQzSBY9e7kMvlisXBKDpQy+gjLKVTKFfXqrIrPGpxy21zbGSVY64qHxkf4lZuQ54eeiTSNvlcEHTa/BZTAMN0Cx9j9JOUYuEPOfDNgbdiuZ9VubPK3ov35GZBkEM/HyDD4HmSoq6UDIENnpCy1K87nZtPTwWtGZnwWcQlSlMS1szC0zlXCtI10FvqB7iFhsSX7cdIU92L58/CEFe0woXQIMgSFt0k9TgyAikfXYvQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index 5d6497961e..8ba252b622 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -1,5 +1,21 @@
W32TeX (x86 & x64) ChangeLog
+[2021/03/26]
+(01) biblatex-biber.tar.xz
+ Update biblatex-ieee.
+(02) context.tar.xz
+ ConTeXt version: 2021.03.25 13:59.
+(03) ltxpkgs.tar.xz
+ Update powerdot.
+(04) luasec-w32.tar.xz.
+ Update OpenSSL (1.1.1k) in luasec.
+(05) newtxpx-boondoxfonts.tar.xz
+ Update newpx and newtx fonts.
+(06) uptex-w32.tar.xz
+ Add gckanbun.
+(07) win64/luasec-w64.tar.xz.
+ Update OpenSSL (1.1.1k) in luasec.
+
[2021/03/25]
(01) aleph-w32.tar.xz
Update format files.
diff --git a/timestamp b/timestamp
index 09526194e4..58843234f9 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2021-03-27-02-02
+2021-03-28-02-02