summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-05-03 03:00:43 +0000
committerNorbert Preining <norbert@preining.info>2021-05-03 03:00:43 +0000
commitbf393e635d1fb55b009da7ade3001c104c7deb48 (patch)
tree46ff95216d294610b559d25f56ba796d875b5c2f /macros/latex/contrib/biblatex-contrib
parentdb2a2e7b5c4ca1335618a0b5f5c574229bf459f6 (diff)
CTAN sync 202105030300
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib')
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md60
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx50
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.bib124
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdfbin436673 -> 455237 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.sty8
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex819
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx912
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx20
-rw-r--r--macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx11
9 files changed, 1293 insertions, 711 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md b/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md
index 960197f84f..ea102f1f03 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md
+++ b/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md
@@ -8,6 +8,66 @@ indicate updates to Windy City's [repository on
GitHub](https://github.com/brianchase/windycity "GitHub:
brianchase/windycity").
+## 2021-05-02
+
+This release brings a long overdue redesign of the workflow for
+editors and translators. My hope is that users won't need to change
+their bibliography databases, but I did need to change one example in
+the user guide, moving an editor name list from a child entry to its
+parent, where it belonged in the first place. In all, the changes
+greatly extend the control and flexibility that users have over the
+placement of editors and translators while allowing for simpler
+internals.
+
+* highlights pertaining to editors and translators:
+
+ - added support for the following editorial roles:
+
+ + expanded by...
+ + expanded and compiled by...
+ + expanded and edited by...
+ + expanded and revised by...
+ + expanded and translated by...
+ + expanded and updated by...
+ + compiled and expanded by...
+ + edited and expanded by...
+ + revised and expanded by...
+ + translated and expanded by...
+ + updated and expanded by...
+
+ - added support for translators of `issuetitle` and `series`, which
+ means you may assign translators to every title to which you may
+ assign editors
+ - editor and translator type fields now accept comma-separated
+ bibliography strings, making all editorial roles available for
+ `issuetitle`, `maintitle`, and `series` (e.g. if `editor` is the
+ reviser of `maintitle`, put `maintitle,reviser` or
+ `reviser,maintitle` in `editortype`)
+ - added `swaptrans:issuetitle`, `swaptrans:maintitle`, and
+ `swaptrans:series` entry options to swap positions of editors and
+ translators of `issuetitle`, `maintitle`, and `series`
+ - for special circumstances (explained in the user guide), added
+ three more entry options for swapping editors and translators:
+ `swaptrans:title`, `swaptrans:booktitle`, and
+ `swaptrans:bookbooktitle`
+ - added support for printing a second tier of editors after `title`,
+ `issuetitle`, `maintitle`, and `series` (e.g. "Edited by Jane Doe.
+ Revised and Expanded by John Smith")
+ - if the editors and translators of a work are the same, you can
+ control the assignment in several ways, including with just one
+ name list and its corresponding type field (e.g. if Jane Doe is
+ the compiler and translator of `title`, you can, among other
+ options, put `Doe, Jane` in `editor` and `comptrans` in
+ `editortype` or `Doe, Jane` in `translator` and `comptrans` in
+ `translatortype`)
+ - fixed several issues, at least, affecting the placement of
+ editors and translators, mainly the latter
+
+* added preamble option `shortafter` to print the same output as the
+ preamble option `short` but with long first citations
+* for works in certain collections, fixed punctuation after the
+ `edition` field
+
## 2021-01-30
* added support for the `pubstate` field to indicate when a work is
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx b/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx
index c368285793..8d932f698f 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx
+++ b/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx
@@ -1,4 +1,4 @@
-% Last modified: Sat 30 Jan 2021 06:17:59 PM CST
+% Last modified: Sun 02 May 2021 01:14:34 PM CDT
% Permission is granted to copy, distribute and/or modify this
% software under the terms of the LaTeX Project Public License (LPPL),
@@ -11,7 +11,7 @@
% implied warranties of merchantability and fitness for a particular
% purpose.
-\ProvidesFile{american-windycity.lbx}[2021/01/30 Windy City
+\ProvidesFile{american-windycity.lbx}[2021/05/02 Windy City
localization module for biblatex]
\InheritBibliographyExtras{american}
\InheritBibliographyStrings{american}
@@ -119,9 +119,10 @@
}
\NewBibliographyString{by}
-\NewBibliographyString{comped,comped+,compiler,compiler+,comprev,comprev+,comptrans,comptrans+,compup,compup+}
-\NewBibliographyString{editor+,edcomp,edcomp+,edrev,edrev+,edtrans,edtrans+,edup,edup+}
+\NewBibliographyString{comp,comp+,comped,comped+,compex,compex+,compiler,compiler+,comprev,comprev+,comptrans,comptrans+,compup,compup+}
+\NewBibliographyString{ed,ed+,editor+,edcomp,edcomp+,edex,edex+,edrev,edrev+,edtrans,edtrans+,edup,edup+}
\NewBibliographyString{expanded}
+\NewBibliographyString{ex,ex+,excomp,excomp+,exed,exed+,expander,expander+,exrev,exrev+,extrans,extrans+,exup,exup+}
\NewBibliographyString{noplace}
\NewBibliographyString{of}
\NewBibliographyString{origpub}
@@ -132,15 +133,14 @@
\NewBibliographyString{pseudo}
\NewBibliographyString{reprint,reprinted}
\NewBibliographyString{review,reviewnoauth}
-\NewBibliographyString{revcomp,revcomp+,reved,reved+,reviser,reviser+,revtrans,revtrans+,revup,revup+}
+\NewBibliographyString{rev,rev+,revcomp,revcomp+,reved,reved+,revex,revex+,reviser,reviser+,revtrans,revtrans+,revup,revup+}
\NewBibliographyString{revised}
\NewBibliographyString{selfpub}
\NewBibliographyString{special}
\NewBibliographyString{subverbo,subverbos}
-\NewBibliographyString{transcomp,transcomp+,transed,transed+,translator+,transrev,transrev+,transup,transup+}
-\NewBibliographyString{upcomp,upcomp+,updater,updater+,uped,uped+,uprev,uprev+,uptrans,uptrans+}
+\NewBibliographyString{trans,trans+,transcomp,transcomp+,transed,transed+,transex,transex+,translator+,transrev,transrev+,transup,transup+}
+\NewBibliographyString{up,up+,upcomp,upcomp+,updater,updater+,uped,uped+,upex,upex+,uprev,uprev+,uptrans,uptrans+}
\NewBibliographyString{updated}
-\NewBibliographyString{updater}
\NewBibliographyString{working}
\DeclareBibliographyStrings{%
@@ -151,8 +151,12 @@
by = {{by}{by}},
chapter = {{chap\adddot}{chap\adddot}},
citedas = {{hereafter cited as}{hereafter cited as}},
+ comp = {{compiled by}{comp\adddot}},
+ comp+ = {{compiled by}{comps\adddot}},
comped = {{compiled and edit\-ed by}{comp\adddotspace and ed\adddot}},
comped+ = {{compiled and edit\-ed by}{comps\adddotspace and eds\adddot}},
+ compex = {{compiled and expanded by}{comp\adddotspace and exp\adddot}},
+ compex+ = {{compiled and expanded by}{comps\adddotspace and exp\adddot}},
compiler = {{compiled by}{comp\adddot}},
compiler+ = {{compiled by}{comps\adddot}},
comprev = {{compiled and revised by}{comp\adddotspace and rev\adddot}},
@@ -161,8 +165,12 @@
comptrans+ = {{compiled and translated by}{comps\adddotspace and trans\adddot}},
compup = {{compiled and updated by}{comp\adddotspace and up\adddot}},
compup+ = {{compiled and updated by}{comps\adddotspace and up\adddot}},
+ ed = {{edit\-ed by}{ed\adddot}},
+ ed+ = {{edit\-ed by}{eds\adddot}},
edcomp = {{edit\-ed and compiled by}{ed\adddotspace and comp\adddot}},
edcomp+ = {{edit\-ed and compiled by}{eds\adddotspace and comps\adddot}},
+ edex = {{edit\-ed and expanded by}{ed\adddotspace and exp\adddot}},
+ edex+ = {{edit\-ed and expanded by}{eds\adddotspace and exp\adddot}},
edition = {{ed\adddot}{ed\adddot}},
editor = {{edit\-ed by}{ed\adddot}},
editor+ = {{edit\-ed by}{eds\adddot}},
@@ -172,7 +180,21 @@
edtrans+ = {{edit\-ed and translated by}{eds\adddotspace and trans\adddot}},
edup = {{edit\-ed and updated by}{ed\adddotspace and up\adddot}},
edup+ = {{edit\-ed and updated by}{eds\adddotspace and up\adddot}},
+ ex = {{expanded by}{exp\adddot}},
+ ex+ = {{expanded by}{exp\adddot}},
+ excomp = {{expanded and compiled by}{exp\adddotspace and comp\adddot}},
+ excomp+ = {{expanded and compiled by}{exp\adddotspace and comps\adddot}},
+ exed = {{expanded and edit\-ed by}{exp\adddotspace and ed\adddot}},
+ exed+ = {{expanded and edit\-ed by}{exp\adddotspace and eds\adddot}},
expanded = {{expanded edition}{exp\adddotspace ed\adddot}},
+ expander = {{expanded by}{exp\adddot}},
+ expander+ = {{expanded by}{exp\adddot}},
+ exrev = {{expanded and revised by}{exp\adddotspace and rev\adddot}},
+ exrev+ = {{expanded and revised by}{exp\adddotspace and revs\adddot}},
+ extrans = {{expanded and translated by}{exp\adddotspace and trans\adddot}},
+ extrans+ = {{expanded and translated by}{exp\adddotspace and trans\adddot}},
+ exup = {{expanded and updated by}{exp\adddotspace and up\adddot}},
+ exup+ = {{expanded and updated by}{exp\adddotspace and up\adddot}},
foreword = {{foreword to}{foreword to}},
forthcoming = {{forthcoming}{forthcoming}},
ibidem = {{ibid\adddot}{ibid\adddot}},
@@ -195,8 +217,12 @@
references = {{Bibliography}{Bibliography}},
reprint = {{reprint}{repr\adddot}},
reprinted = {{reprinted in}{reprinted in}},
+ rev = {{revised by}{rev\adddot}},
+ rev+ = {{revised by}{revs\adddot}},
reved = {{revised and edit\-ed by}{rev\adddotspace and ed\adddot}},
reved+ = {{revised and edit\-ed by}{revs\adddotspace and eds\adddot}},
+ revex = {{revised and expanded by}{rev\adddotspace and exp\adddot}},
+ revex+ = {{revised and expanded by}{revs\adddotspace and exp\adddot}},
revcomp = {{revised and compiled by}{rev\adddotspace and comp\adddot}},
revcomp+ = {{revised and compiled by}{revs\adddotspace and comps\adddot}},
review = {{review of}{review of}},
@@ -212,16 +238,22 @@
special = {{special issue}{special issue}},
subverbo = {{s\adddot v\adddot}{s\adddot v\adddot}},
subverbos = {{s\adddot vv\adddot}{s\adddot vv\adddot}},
+ trans = {{translated by}{trans\adddot}},
+ trans+ = {{translated by}{trans\adddot}},
transcomp = {{translated and compiled by}{trans\adddotspace and comp\adddot}},
transcomp+ = {{translated and compiled by}{trans\adddotspace and comps\adddot}},
transed = {{translated and edit\-ed by}{trans\adddotspace and ed\adddot}},
transed+ = {{translated and edit\-ed by}{trans\adddotspace and eds\adddot}},
+ transex = {{translated and expanded by}{trans\adddotspace and exp\adddot}},
+ transex+ = {{translated and expanded by}{trans\adddotspace and exp\adddot}},
translator = {{translated by}{trans\adddot}},
translator+ = {{translated by}{trans\adddot}},
transrev = {{translated and revised by}{trans\adddotspace and rev\adddot}},
transrev+ = {{translated and revised by}{trans\adddotspace and revs\adddot}},
transup = {{translated and updated by}{trans\adddotspace and up\adddot}},
transup+ = {{translated and updated by}{trans\adddotspace and up\adddot}},
+ up = {{updated by}{up\adddot}},
+ up+ = {{updated by}{up\adddot}},
upcomp = {{updated and compiled by}{up\adddotspace and comp\adddot}},
upcomp+ = {{updated and compiled by}{up\adddotspace and comps\adddot}},
updated = {{updated edition}{up\adddotspace ed\adddot}},
@@ -229,6 +261,8 @@
updater+ = {{updated by}{up\adddot}},
uped = {{updated and edit\-ed by}{up\adddotspace and ed\adddot}},
uped+ = {{updated and edit\-ed by}{up\adddotspace and eds\adddot}},
+ upex = {{updated and expanded by}{up\adddotspace and exp\adddot}},
+ upex+ = {{updated and expanded by}{up\adddotspace and exp\adddot}},
uprev = {{updated and revised by}{up\adddotspace and rev\adddot}},
uprev+ = {{updated and revised by}{up\adddotspace and revs\adddot}},
uptrans = {{updated and translated by}{up\adddotspace and trans\adddot}},
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.bib b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.bib
index c26415de37..8c4342505a 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.bib
+++ b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.bib
@@ -53,6 +53,46 @@
publisher = ucp,
year = {2002}
}
+@InCollection{doe2017a,
+ options = {swaptrans:title},
+ title = {An Essay},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ pages = {18–35},
+ crossref = {jones2017}
+}
+@InCollection{doe2017b,
+ options = {swaptrans:booktitle},
+ title = {An Essay},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ pages = {18–35},
+ crossref = {jones2017}
+}
+@InCollection{doe2017c,
+ options = {swaptrans:bookbooktitle},
+ title = {An Essay},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ pages = {18–35},
+ crossref = {jones2017}
+}
+@InBook{jones2017,
+ title = {A Volume of Essays},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ volume = {1},
+ crossref = {white2017}
+}
+@Collection{white2017,
+ title = {A Collection of Essays},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ volumes = {3},
+ address = {Chicago},
+ publisher = {University of Chicago Press},
+ year = {2017}
+}
@InCollection{thoreau2007.7,
title = {Walking},
pages = {185–222},
@@ -81,42 +121,40 @@
publisher = ucp,
year = {1948}
}
-@InBook{spinoza1900.1.1,
- title = {A Theological-Political Treatise},
- crossref = {spinoza1900.1}
+@InCollection{myers2012,
+ author = {Myers, Herbert},
+ title = {Pitch and Transposition},
+ pages = {375--393},
+ crossref = {carter2012}
}
-@Collection{spinoza1900.1,
- author = {Spinoza, Benedict de},
- title = {The Chief Works of Benedict de Spinoza},
-% edition = {rev. ed.},% alternative to below:
- edition = {revised},
- translator = {Elwes, R. H. M.},
- volume = {1},
- address = {London},
- publisher = {George Bell {and} Sons},
- year = {1900}
+@Collection{carter2012,
+ title = {A Performer's Guide to Seventeenth-Century Music},
+ edition = {2},
+ editor = {Carter, Stewart},
+ editora = {Kite-Powell, Jeffery},
+ editoratype = {revex},
+ address = {Bloomington},
+ publisher = {Indiana University Press},
+ year = {2012}
}
@InCollection{doe2018,
+ keywords = {notinbib,notinref},
author = {Doe, Jane},
title = {A Poem},
translator = {Smith, John},
pages = {56–57},
crossref = {jones2018}
}
-@InCollection{edwards2018,
- author = {Adams, Mary},
- title = {Another Poem},
- pages = {128–32},
- crossref = {jones2018}
-}
@InBook{jones2018,
+ keywords = {notinbib,notinref},
editor = {Jones, David},
title = {A Volume of Poems},
volume = {2},
year = {2018},
- crossref = {blow2016}
+ crossref = {white2016}
}
-@Collection{blow2016,
+@Collection{white2016,
+ keywords = {notinbib,notinref},
editor = {White, Amy},
title = {A Collection of Poems},
volumes = {4},
@@ -124,6 +162,47 @@
publisher = ucp,
year = {2016–18}
}
+@InCollection{doe2018.alt,
+ keywords = {notinbib,notinref},
+ author = {Doe, Jane},
+ title = {A Poem},
+ translator = {Smith, John},
+ pages = {56–57},
+ booktitle = {A Volume of Poems},
+ editor = {Jones, David},
+ editortype = {booktitle},
+ bookvolume = {2},
+ year = {2018},
+ bookbooktitle = {A Collection of Poems},
+ editora = {White, Amy},
+ editoratype = {bookbooktitle},
+ volumes = {4},
+ address = {Chicago},
+ publisher = ucp,
+ bookyear = {2016–18}
+}
+@InBook{spinoza1900.1.1,
+ title = {A Theological-Political Treatise},
+ crossref = {spinoza1900.1}
+}
+@Collection{spinoza1900.1,
+ author = {Spinoza, Benedict de},
+ title = {The Chief Works of Benedict de Spinoza},
+% edition = {rev. ed.},% alternative to below:
+ edition = {revised},
+ translator = {Elwes, R. H. M.},
+ volume = {1},
+ address = {London},
+ publisher = {George Bell {and} Sons},
+ year = {1900}
+}
+@InCollection{adams2018,
+ keywords = {notinbib,notinref},
+ author = {Adams, Mary},
+ title = {Another Poem},
+ pages = {128–32},
+ crossref = {jones2018}
+}
% 13.65 Full in-text citation
@@ -682,7 +761,6 @@
@Book{maclean1976,
author = {Maclean, Norman},
title = {A River Runs through It, and Other Stories},
- shorttitle = {A River Runs through It},
address = {Chicago},
publisher = ucp,
year = {1976}
@@ -1342,7 +1420,6 @@
year = {1977}
}
@InBook{harley1994,
- editor = {Harley, J. B. and Woodward, David},
title = {Cartography in the Traditional East and Southeast Asian Societies},
volume = {2},
part = {bk. 2},
@@ -1350,6 +1427,7 @@
crossref = {cartography1987}
}
@Collection{cartography1987,
+ editor = {Harley, J. B. and Woodward, David},
title = {The History of Cartography},
address = {Chicago},
publisher = ucp,
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf
index 02d6ab3aa1..4000a3da1c 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf
+++ b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.sty b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.sty
index 718c4f6180..c001e45902 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.sty
+++ b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.sty
@@ -1,4 +1,4 @@
-% Last modified: Tue 10 Nov 2020 07:45:15 AM CST
+% Last modified: Tue 13 Apr 2021 05:25:58 PM CDT
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{windycity}
\RequirePackage{ifxetex}
@@ -164,17 +164,17 @@
\defbibheading{biblist}{%
\newpage
- \begin{center}\section*{Abbreviations}\end{center}
+ \section*{Abbreviations}
\addcontentsline{toc}{section}{Abbreviations}
\markright{Abbreviations}}%
\defbibheading{bibliography}{%
\newpage
- \begin{center}\section*{Bibliography (Standard Format)}\end{center}
+ \section*{Bibliography (Standard Format)}
\addcontentsline{toc}{section}{Bibliography (Standard Format)}
\markright{Bibliography}}%
\defbibheading{references}{%
\newpage
- \begin{center}\section*{References (Author-Date Format)}\end{center}
+ \section*{References (Author-Date Format)}
\addcontentsline{toc}{section}{References (Author-Date Format)}
\markright{References}}%
\defbibheading{none}{}%
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex
index f6ca4e6426..07f1fc504c 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex
+++ b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex
@@ -1,4 +1,4 @@
-% Last modified: Sat 30 Jan 2021 06:32:36 PM CST
+% Last modified: Sun 02 May 2021 01:06:52 PM CDT
\documentclass[11pt,letterpaper,oneside]{article}
\usepackage{windycity}
@@ -8,7 +8,7 @@
\author{Brian Chase}
\email{brianmichaelchase@gmail.com}
\website{https://github.com/brianchase/windycity}
-\version{2021-01-30}
+\version{2021-05-02}
\maketitle
\begingroup
\hypersetup{linkcolor=black}
@@ -35,13 +35,13 @@ City especially suitable for academic work.
The following sections assume familiarity with \textit{CMOS} and
\biblatex. Section \ref{overview} gives a brief overview of the
-style's features. Section \ref{edtrans} discusses the assignment and
-placement of editors, translators, and the like. Section
-\ref{collections} discusses several issues with collections, including
-options for formatting citations of individual volumes. Sections
-\ref{notes} and \ref{paren} reproduce examples from \textit{CMOS}
-chapters 14 and 15, respectively, with occasional commentary and
-references to other sections.
+style's features. Section \ref{editors} discusses the assignment and
+placement of editors and translators. Section \ref{collections}
+discusses several issues with collections, including options for
+formatting citations of individual volumes. Sections \ref{notes} and
+\ref{paren} reproduce examples from \textit{CMOS} chapters 14 and 15,
+respectively, with occasional commentary and references to other
+sections.
Windy City requires \biblatex version 3.13 or later.
@@ -63,10 +63,12 @@ some distributions of \LaTeX, you might be able to skip this step.
Either way, please consider downloading the most recent release of
Windy City from \begingroup \hypersetup{urlcolor=blue}
-\href{https://www.ctan.org/pkg/windycity}{its home on CTAN}. More
-recent but potentially less reliable updates are available from Windy
-City's \href{https://github.com/brianchase/windycity}{repository on
-GitHub}.\endgroup
+\href{https://www.ctan.org/pkg/windycity}{its home on CTAN}. Releases
+without the PDF user guide are available from Windy City's
+\href{https://github.com/brianchase/windycity/releases}{repository on
+GitHub}. More recent but potentially less reliable updates are
+available on \href{https://github.com/brianchase/windycity}{the main
+project page}.\endgroup
Windy City consists of four files:
@@ -198,11 +200,11 @@ may have problems with sorting. (You'll notice some in \ref{ref}, at
the end of this document.) For best results, use the \opt{reflist}
preamble option.
-As you proceed through the this guide, note that all examples of
-citations and bibliographies are outputs of the style from commands
-that you can inspect in the document's source, \file{windycity.tex},
-and in its style file, \file{windycity.sty}. Almost all citations are
-from \cmd{cite} or \cmd{parencite}. A few are from more specialized
+As you proceed through this guide, note that all examples of citations
+and bibliographies are outputs of the style from commands that you can
+inspect in the document's source, \file{windycity.tex}, and in its
+style file, \file{windycity.sty}. Almost all citations are from
+\cmd{cite} or \cmd{parencite}. A few are from more specialized
commands, such as \cmd{cite*} or \cmd{cites}. All example
bibliographies are outputs of the style from \cmd{printbibliography}.
All bibliographic data reside in \file{windycity.bib}.
@@ -211,7 +213,7 @@ All bibliographic data reside in \file{windycity.bib}.
\label{short}
Standard citations may take a variety of shorter forms. Windy City
-offers several preamble options and other means for reproducing them.
+offers several preamble options and other means for producing them.
Let's start with another passage of default output:
@@ -308,17 +310,19 @@ break here may affect the output.}
\item \cite[33]{morrison2004a}
\end{citeonly}
-Other ways to make citations more concise: For a compromise between
-standard and short forms, try the preamble option \opt{shortfirst}.
-It swaps long first citations for short ones but otherwise follows the
-standard (see section \ref{preamble}). Also with standard citations,
-the preamble option \opt{idemtracker} shortens the author's name of a
-work's first citation if the previous citation is of the same author
-(see section \ref{preamble}). The entry option \opt{noauth} omits the
-author's name altogether (see section \ref{entry}). And the
-\bibfield{shorthand} field allows you to set an abbreviation to stand
-in place of the author's name, the work's title, and other elements of
-a citation (see sections \ref{otherfields} and \ref{14.59}).
+For a compromise between standard and short forms, try the preamble
+option \opt{shortfirst}. It swaps long first citations for short ones
+but otherwise follows the standard form (see section \ref{preamble}).
+For another variant, try \opt{shortafter}, which gives the same output
+as \opt{short} but with long first citations. Also with standard
+citations, the preamble option \opt{idemtracker} shortens the author's
+name of a work's first citation if the previous citation is of the
+same author (see section \ref{preamble}). The entry option
+\opt{noauth} omits the author's name altogether (see section
+\ref{entry}). And the \bibfield{shorthand} field allows you to set an
+abbreviation to stand in place of the author's name, the work's title,
+and other elements of a citation (see sections \ref{otherfields} and
+\ref{14.59}).
\subsection{Preamble Options}
\label{preamble}
@@ -380,7 +384,7 @@ collections. For discussion of multivolume works, see section
\noindent This option controls whether consecutive citations of a work
on the same page receive an \textit{ibid}. The qualification ``on the
same page'' means that \textit{ibid.} always refers to a work cited on
-the current page without an \textit{ibid.} The latter isn't a
+the current page without an \textit{ibid}. The latter isn't a
requirement of \textit{CMOS} but seems reasonable, since it prevents
readers from having to look at another page to find the referent of an
\textit{ibid}. For examples of its output, see section \ref{short} and
@@ -439,13 +443,10 @@ information.
\noindent As shown in section \ref{short}, this option prints short
citations (see \textit{CMOS} \ref{14.34}). The use of \opt{short} has
-one feature in common with \opt{ibid}: Just as \textit{ibid.} appears
-only for consecutive citations of a work on the same page, and so
-never refers to a citation on a previous page, \opt{short} affects
-consecutive citations of a work on the same page, never in reference
-to a citation on a previous page. As with \textit{ibid.}, this feature
-isn't required by \textit{CMOS}, but it prevents readers from having
-to look at another page to find the title of a citation.
+one feature in common with \opt{ibid}: It affects only consecutive
+citations of a work on the same page. As with \textit{ibid.}, this
+feature isn't required by \textit{CMOS}, but it prevents readers from
+having to look at another page to find the title of a citation.
In contexts where \opt{short} would drop a title from a citation, but
where no name occupies the author's position, it prints the work's
@@ -457,15 +458,52 @@ As noted earlier, \opt{short} has the same effect on first citations
as \opt{shortfirst}. But recall from section \ref{short} that you can
combine \opt{short} and \opt{ibid} for more concise output.
+\optitem[false]{shortafter}{\opt{true}, \opt{false}}
+
+\noindent If you want the output of \opt{short} but with long first
+citations, use \opt{shortafter}. Compare the following with examples
+in \textit{CMOS} \ref{14.34}:
+
+% The option 'short' implies the option 'shortfirst'. The option
+% 'shortafter' doesn't. Hence, to display the output of 'shortafter'
+% below, you need only toggle true 'short'.
+
+\begin{citeonly}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[3]{morrison2004a}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[18]{morrison2004a}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[18]{morrison2004a}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[24--26]{morrison2004a}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[401-2]{morrison2004b}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[433]{morrison2004b}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[37--38]{diaz2008}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[403]{morrison2004b}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[152]{diaz2008}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[201-2]{diaz2008}
+\AtNextMultiCite{\toggletrue{short}}
+\item \cites[240]{morrison2004b}[32]{morrison2004a}
+\AtNextCitekey{\toggletrue{short}}
+\item \cite[33]{morrison2004a}
+\end{citeonly}
+
\optitem[false]{shortfirst}{\opt{true}, \opt{false}}
\noindent Use this option to shorten a work's first citation. The
resulting output consists mainly of the author's name and the work's
title. According to \textit{CMOS}, this approach is optional for
documents with complete bibliographies. (See \textit{CMOS}
-\ref{14.23}, also 14.29--14.36.) You may use \opt{shortfirst} in
-conjunction with \opt{ibid}. However, it adds nothing to \opt{short},
-which has the same effect on first citations.
+\ref{14.23}, also 14.29--14.36.) As with \opt{short}, you may use
+\opt{shortfirst} in conjunction with \opt{ibid} for more concise
+citations.
\optitem[false]{shortlinks}{\opt{true}, \opt{false}}
@@ -476,8 +514,8 @@ bibliography. In standard citations, these links encompass the entire
citation (minus some punctuation). With \opt{shortlinks}, they're
embedded in just one element: the title or, if no title is present,
whatever part of the citation occupies the author's position, such as
-the author's name, \textit{ibid.}, or a shorthand. For comparison,
-here's what default links are like in blue:
+the author's name, \textit{ibid.}, or a shorthand. For comparison, the
+blue text below shows default links:
\hypersetup{citecolor=blue}
\begin{citeonly}
@@ -520,10 +558,9 @@ For more information, see section \ref{collorder}.
\subsection{Entry Options}
\label{entry}
-An entry option is a value for the \bibfield{options} field of a
-work's database entry. It affects the format of that particular work.
-For options that affect the format of every work, see section
-\ref{preamble}.
+An entry option goes in the \bibfield{options} field of a work's
+database entry. It affects the format of that work. For options that
+affect the format of every work, see section \ref{preamble}.
\begin{optionlist}
@@ -604,21 +641,74 @@ to skip the \textit{date}. See section \ref{entrytypes} for examples.
translator, use \opt{swapauth}. This option works for \bibtype{book},
\bibtype{bookinbook}, \bibtype{collection}, \bibtype{inbook}, and
\bibtype{incollection} entry types. For more information, see section
-\ref{edtranspos}.
+\ref{editors:swap}.
\optitem[false]{swaptrans}{\opt{true}, \opt{false}}
\noindent According to \textit{CMOS}, if a work has an editor and a
translator, their names should appear in citations in the order in
which they appear on the work's title page (see \textit{CMOS}
-\ref{14.104}). By default, the style lists editors first. Entries with
-the option \bibfield{swaptrans} reverse this order: Their translators
-print first. If a work's translators and editors are the same,
-\bibfield{swaptrans} reverses the order of their roles, say, from
-\textit{edited and translated by} to \textit{translated and edited
-by}. The same goes for compilers, revisers, and updaters, which the
-style treats as specialized editors. For more information, see section
-\ref{edtranspos}.
+\ref{14.104}). By default, the style lists editors first. The option
+\bibfield{swaptrans} reverses this order: Their translators print
+first. If a work's translators and editors are the same,
+\bibfield{swaptrans} reverses their roles, say, from \textit{edited
+and translated by} to \textit{translated and edited by}. The same goes
+for compilers, expanders, revisers, and updaters---all of whom the
+style treats as specialized editors. For editors and translators of an
+\bibfield{issuetitle}, \bibfield{maintitle}, or \bibfield{series}, see
+their respective options below. See also section \ref{editors:swap}.
+
+\optitem[false]{swaptrans:book}{\opt{true}, \opt{false}}
+
+A short form of \opt{swaptrans:booktitle}. See below.
+
+\optitem[false]{swaptrans:bookbook}{\opt{true}, \opt{false}}
+
+A short form of \opt{swaptrans:bookbooktitle}. See below.
+
+\optitem[false]{swaptrans:bookbooktitle}{\opt{true}, \opt{false}}
+
+Like \opt{swaptrans} but narrower in scope. It applies only to the
+editors and translators of a \bibfield{bookbooktitle} (a double
+cross-referenced \bibfield{title}). See section \ref{editors:swap}.
+
+\optitem[false]{swaptrans:booktitle}{\opt{true}, \opt{false}}
+
+Like \opt{swaptrans} but narrower in scope. It applies only to the
+editors and translators of a \bibfield{booktitle} (a cross-referenced
+\bibfield{title}). See section \ref{editors:swap}.
+
+\optitem[false]{swaptrans:issue}{\opt{true}, \opt{false}}
+
+A short form of \opt{swaptrans:issuetitle}. See below.
+
+\optitem[false]{swaptrans:issuetitle}{\opt{true}, \opt{false}}
+
+Like \opt{swaptrans} but for editors and translators of an
+\bibfield{issuetitle}.
+
+\optitem[false]{swaptrans:main}{\opt{true}, \opt{false}}
+
+A short form of \opt{swaptrans:maintitle}. See below.
+
+\optitem[false]{swaptrans:maintitle}{\opt{true}, \opt{false}}
+
+Like \opt{swaptrans} but for editors and translators of a
+\bibfield{maintitle}.
+
+\optitem[false]{swaptrans:series}{\opt{true}, \opt{false}}
+
+Like \opt{swaptrans} but for editors and translators of a
+\bibfield{series}.
+
+\optitem[false]{swaptrans:title}{\opt{true}, \opt{false}}
+
+Like \opt{swaptrans} but narrower in scope. It applies only to the
+editors and translators of a \bibfield{title}, whereas
+\bibfield{swaptrans} also affects those of a \bibfield{booktitle} (a
+cross-referenced \bibfield{title}) and a \bibfield{bookbooktitle} (a
+double cross-referenced \bibfield{title}). See section
+\ref{editors:swap}.
\optitem[false]{swapvol}{\opt{true}, \opt{false}}
@@ -674,7 +764,7 @@ citation commands from \biblatex that Windy City supports:
\noindent New users should get comfortable with \cmd{cite} and
\cmd{footcite} (for notes) and \cmd{parencite} (for parenthetical
citations). Their multicite forms---\cmd{cites}, \cmd{footcites}, and
-\cmd{parencites}---take comma-separated lists of entry keys, while
+\cmd{paren\-cites}---take comma-separated lists of entry keys, while
allowing you to specify distinct \bibfield{prenote} and
\bibfield{postnote} fields for each work.
@@ -997,7 +1087,8 @@ in perhaps unexpected ways.
\label{stdfields}
Examples in this document don't always make it clear how Windy City
-uses standard data fields. The section discusses some of them.
+uses standard data fields. The list below highlights a selection of
+fields that merit special attention.
\begin{marglist}
@@ -1012,7 +1103,7 @@ From \textit{CMOS} \ref{14.79}:
\item \cite{hawkes1834}
\end{citebib}
-With respect to pseudonymous authors, another solution is to use the
+For pseudonymous authors, another solution is to use the
\bibfield{nameaddon} field. Unlike with \bibfield{authtype},
\bibfield{nameaddon} allows you to include an author's given name in
the brackets. For examples, see \textit{CMOS} \ref{14.81}.
@@ -1022,7 +1113,7 @@ edition's number in this field---for example, \textit{2} for a second
edition. To indicate a revised edition, enter either \textit{revised}
or \textit{rev. ed.} Both options give the same output. For expanded
and updated editions, you may use \textit{expanded} or
-\textit{updated}. Add additional data as necessary. For the following
+\textit{updated}. Add additional data as necessary. In the following
example from \textit{CMOS} bibliography 2.4, \bibfield{edition}
contains \textit{updated edition by Arlene O'Sean and Antoinette
Schleyer}:
@@ -1039,9 +1130,9 @@ edition, such as \textit{Sunday Book Review} (see \textit{CMOS}
\biblatex provides for electronic publishing information, even though
the output doesn't conform to \textit{CMOS}. To that end, you may use
the \bibfield{eprint} field, along with its cousins
-\bibfield{eprinttype} and \bibfield{eprintclass}, and all the
-associated options (\opt{eprint}, \opt{doi}, and \opt{url}), which are
-set to \textit{true} by default.
+\bibfield{eprinttype} and \bibfield{eprintclass}, and associated
+options (\opt{eprint}, \opt{doi}, and \opt{url}), all of which are set
+to \textit{true} by default.
\item[issue] Windy City uses this field with \bibtype{article},
\bibtype{online}, and \bibtype{review} entry types (and their aliases)
@@ -1087,7 +1178,7 @@ have an \bibtype{article} or \bibtype{periodical} entry (see
\textit{CMOS} \ref{14.172}). For forthcoming works, see \textit{CMOS}
\ref{14.146}, \ref{14.172}, and \ref{15.45}. Forthcoming works also
print correctly with \textit{forthcoming} in the \bibfield{year}
-field, as previous versions of the style required.
+field.
\begin{bibonly}
\nocite{faraday,huang2015,jubb2015,lucki1980}
@@ -1118,12 +1209,13 @@ In rare cases, \bibfield{type} is necessary for \bibtype{article} and
bibliographic information doesn't allow Windy City to distinguish a
journal article from a magazine or newspaper article. This happens
when a magazine or newspaper article has an issue number. Normally,
-Windy City would respond by printing the issue number before the date
-and enclosing the date in parentheses. But the issue number needs to
-go first, and the date shouldn't be in parentheses. The workaround is
-to include a \bibfield{type} field with the value \textit{newsmag}.
-For an example, see \textit{CMOS} \ref{14.204} and compare it with the
-citation of Beattie in \ref{14.171}.
+Windy City prints an issue number before the date and encloses the
+date in parentheses. But for magazine and newspaper articles, the
+issue number should go first, and the date shouldn't be in
+parentheses. The workaround is to include a \bibfield{type} field with
+the value \textit{newsmag}. For an example, see \textit{CMOS}
+\ref{14.204} and compare it with the citation of Beattie in
+\ref{14.171}.
\end{marglist}
@@ -1132,10 +1224,10 @@ citation of Beattie in \ref{14.171}.
Some of Windy City's nonstandard data fields are for its internal
handling of cross-referencing. Those fields aren't listed below, as
-they're not meant for use in a bibliography database. The rest store
-information that's crucial for correct formatting. Without them, quite
-a few citations in this document wouldn't match their counterparts in
-\textit{CMOS}.
+they're not usually meant for use in a bibliography database (but see
+section \ref{editors.other}). The rest store information that's
+crucial for correct formatting. Without them, quite a few citations in
+this document wouldn't match their counterparts in \textit{CMOS}.
\begin{marglist}
@@ -1144,16 +1236,23 @@ blog goes in \bibfield{blogtitle} and \bibfield{blogsubtitle}. Keep in
mind that blog posts take the usual \bibfield{title} and
\bibfield{subtitle} fields.
-\item[editoraddon] Use this field to include additional editorial
-information about a book. It's available for \bibtype{book},
-\bibtype{incollection}, and \bibfield{review} entry types and their
-aliases. (For information on aliases in Windy City, see section
-\ref{entrytypes}.) When applicable, its content appears after a book's
-editors and translators without intervening punctuation. For an
-example, see section \ref{entry}, where the citation of
-\textit{Chaucer Life-Records} prints: ``from materials compiled by
-John M. Manly and Edith Richert, with the assistance of Lilian J.
-Redstone et al.''
+\item[editoraddon] This field holds editorial information about a work
+that belongs immediately after \bibfield{editor} has printed, without
+intervening punctuation. For an example, see \textit{CMOS}
+\ref{14.105}, where the citation of \textit{Chaucer Life-Records}
+includes: ``from materials compiled by John M. Manly and Edith
+Richert, with the assistance of Lilian J. Redstone et al.'' This field
+doesn't print when \bibfield{editor} prints in the author's position.
+As a result, options that may affect where \bibfield{editor} prints,
+such as \opt{swaptrans} and \opt{swapauth}, may affect whether
+\bibfield{editoraddon} prints.
+
+% The main function of 'editoraaddon' is to inherit 'editoraddon'
+% during cross-referencing. I don't expect anyone to use it in a
+% bibliography database.
+
+%\item[editoraaddon] Like \bibfield{editoraddon} but for
+%\bibfield{editora}.
\item[seriesaddon] This field is for additional information about a
book's series. That includes information about the run of a series,
@@ -1165,16 +1264,16 @@ information like \textit{2nd ser.} and \textit{n.s.} go in the
\item[shorthand] Windy City doesn't automatically italicize a
\bibfield{shorthand}. Per \textit{CMOS} 14.60, a shorthand should be
-italicized if the title that it abbreviates is italicized. Set it the
-bibliography database with \cmd{emph} or \cmd{mkbibemph}. For examples
-of a \bibfield{shorthand}, see section \ref{14.59} and the first
-citation of \textit{CMOS} in this document's introduction.
+italicized if the title that it abbreviates is italicized. Set it in
+the bibliography database with \cmd{emph} or \cmd{mkbibemph}. For
+examples of a \bibfield{shorthand}, see section \ref{14.59} and the
+first citation of \textit{CMOS} in this document's introduction.
\item[shorthandintro] You may override the default announcement of a
\bibfield{shorthand} by adding your preferred content to
-\bibfield{shorthandintro}. For an example, see the first citation of
-\textit{CMOS} in this document's introduction, where the announcement
-is a separate sentence, rather than in parentheses.
+\bibfield{shorthandintro}. See the first citation of \textit{CMOS} in
+this document's introduction, where the announcement isn't a note in
+parentheses but its own sentence.
\item[shortmaintitle] This field contains the short form of a
\bibfield{maintitle}. It should only be necessary for certain works in
@@ -1183,23 +1282,39 @@ James} in section \ref{multivolume}.
\end{marglist}
-\section{Editors, Translators, and Friends}
-\label{edtrans}
+\section{Editors and Translators}
+\label{editors}
-Windy City offers significant control over the handling of editors,
-translators, and the like. Taking advantage of it, however, may not
-seem intuitive at first. This section covers all the relevant features
-and options.
+Windy City offers significant control over the handling of editors and
+translators. Taking advantage of it, however, may not seem intuitive
+at first. This section covers all the relevant features and options.
\subsection{Types of Editors and Translators}
-\label{edtransnames}
-For the most part, Windy City associates the \bibfield{editor} and
-\bibfield{translator} fields with the lowest level title within the
-scope of an entry. In most cases, then, you can assign editors and
-translators simply by adding the \bibfield{editor} and
-\bibfield{translator} fields to a database entry. The entry below is
-an example from \textit{CMOS} \ref{14.104}:
+Windy City has four name lists for editors (\bibfield{editor},
+\bibfield{editora}, \bibfield{editorb}, and \bibfield{editorc}) and
+three name lists for translators (\bibfield{translator},
+\bibfield{translatora}, and \bibfield{translatorb}). At points where
+it's prepared to print them, it cycles through one or both sets of
+lists, depending on the context, looking for names to print. The set
+of editors starts with \bibfield{editor}, followed by
+\bibfield{editora}, and so on. The set of translators starts with
+\bibfield{translator}, followed by \bibfield{translatora}, and so on.
+Editors precede translators, unless you reverse the order with a
+\opt{swaptrans} entry option (see section \ref{editors:swap}). Within
+each set, the style prints the first name list that meets its criteria
+for that context. Apart from exceptions discussed below, you can
+assign any editor or translator name list to any \bibfield{title},
+\bibfield{issuetitle}, \bibfield{maintitle}, or \bibfield{series}.
+
+\subsubsection{The Basics}
+\label{editors:basics}
+
+In most cases, you'll assign editors and translators to a
+\bibfield{title}. Since it's the default assignment, you can do this
+just by adding the \bibfield{editor} and \bibfield{translator} fields
+to a database entry. The entry below is an example from \textit{CMOS}
+\ref{14.104}:
\begin{verbatim}
@Collection{adorno1999,
@@ -1220,14 +1335,13 @@ an example from \textit{CMOS} \ref{14.104}:
\noindent When the style processes this entry, it identifies the
editor and translator of the work with the names in the
\bibfield{editor} and \bibfield{translator} fields. Since the entry
-doesn't use the \opt{swaptrans} entry option (see section
-\ref{edtranspos}), the resulting output lists the editor and
+doesn't use \opt{swaptrans}, the resulting output lists the editor and
translator, in that order, after the authors and title.
Cross-referencing introduces a bit more complexity, but the principle
is the same: Within the scope of an entry, the style associates
-\bibfield{editor} and \bibfield{translator} with the lowest level
-title. In this example from \textit{CMOS} \ref{14.30}, an essay is
+\bibfield{editor} and \bibfield{translator} with \bibfield{title}. In
+this example from \textit{CMOS} \ref{14.30}, an essay is
cross-referenced to a collection:
\begin{verbatim}
@@ -1288,11 +1402,51 @@ scope of the \bibtype{incollection} entry:
\noindent By the same token, since \bibfield{editor} falls within the
scope of \bibtype{collection}, the style associates it with
-\textit{The Renaissance Philosophy of Man}.
+\textit{The Renaissance Philosophy of Man}, not ``The Ascent of Mont
+Ventoux.''
+
+Windy City supports a second tier of editors after \bibfield{title},
+\bibfield{issuetitle}, \bibfield{maintitle}, and \bibfield{series}.
+Again, in your bibliography database, make sure to list editors in the
+proper order: \bibfield{editor} before \bibfield{editora}, and so on.
+Second tier editors never print in the author's position, even when
+the first does. They always print after the relevant title.
+
+In the examples below, the editors print correctly because there's no
+ambiguity about which title they're responsible for. Both fall within
+the same entry, \bibfield{carter2012}, where their default assignment
+is \textit{A Performer's Guide}. Citing a child entry,
+\bibfield{myers2012}, places the editors after the collection's title,
+starting with \bibfield{editor}, whereas citing the parent places
+\bibfield{editor} in the author's position and \bibfield{editora}
+after the collection's title.
+
+\begin{verbatim}
+ @InCollection{myers2012,
+ author = {Myers, Herbert},
+ title = {Pitch and Transposition},
+ pages = {375--393},
+ crossref = {carter2012}
+ }
+ @Collection{carter2012,
+ title = {A Performer's Guide to Seventeenth-Century Music},
+ editor = {Carter, Stewart},
+ editora = {Kite-Powell, Jeffery},
+ editoratype = {revex},
+ address = {Bloomington},
+ publisher = {Indiana University Press},
+ year = {2012}
+ }
+\end{verbatim}
-The style supports three more basic editorial roles: compiler,
-reviser, and updater. To assign them, you need to use the
-\bibfield{editortype} field. It may help to see the bibliography
+\begin{bibonly}
+\nocite{myers2012,carter2012}
+\end{bibonly}
+
+As the examples above also indicate, the style supports a variety of
+editorial roles beyond just editor and translator. They are: compiler,
+expander, reviser, and updater. To assign them, you need to use the
+editor and translator type fields. Below are some bibliography
database entries for examples in \textit{CMOS} \ref{14.103} and
\ref{14.142}:
@@ -1326,16 +1480,25 @@ database entries for examples in \textit{CMOS} \ref{14.103} and
\item \cite{turabian2013}
\end{citebib}
-In addition to the five basic roles (editor, translator, compiler,
-reviser, and updater), you may assign names to any pair of them. A
-work's editor, for example, can also be its translator, compiler,
-reviser, or updater---but no more than one of these. And just as you
-can swap the order of the editor and translator roles (again, see
-section \ref{edtranspos}), you can swap all other combinations, say,
-to identify a work as \textit{compiled and edited by} Jane Doe rather
-than \textit{edited and compiled by} her. Simply change the value of
-\bibfield{editortype}. A summary of these values appears in Table
-\ref{table:ed}.
+You may combine all six editorial roles in pairs. A work's editor, for
+example, can also be its translator, compiler, expander, reviser, or
+updater---but no more than one of these. Simply put the proper value
+in the corresponding type field. We saw this with \textit{A
+Performer's Guide}, where the bibliography string \textit{revex}
+identified Jeffery Kite-Powell as the work's reviser and expander.
+These are the key lines:
+
+\begin{verbatim}
+ editora = {Kite-Powell, Jeffery},
+ editoratype = {revex},
+\end{verbatim}
+
+\noindent Combinations that involve a translator's role, such as
+\textit{translated and compiled by}, respond to the \opt{swaptrans}
+options discussed in section \ref{editors:swap}. For these dual roles,
+however, it's probably less confusing in the long run to change values
+in the editor and translator type fields. The choice is yours. Table
+\ref{editors:table} lists all editor and translator roles.
\begin{table}[H]
\begin{tabular}{@{}r l r l@{}}
@@ -1343,47 +1506,132 @@ than \textit{edited and compiled by} her. Simply change the value of
\toprule
compiler & compiler & reviser & reviser\\
comped & compiler and editor & revcomp & reviser and compiler\\
-comprev & compiler and reviser & reved & reviser and editor\\
+compex & compiler and expander & reved & reviser and editor\\
+comprev & compiler and reviser & revex & reviser and expander\\
comptrans & compiler and translator & revtrans & reviser and translator\\
compup & compiler and updater & revup & reviser and updater\\
-edcomp & editor and compiler & edrev & editor and reviser\\
-transcomp & translator and compiler & transrev & translator and reviser\\
-\midrule
-updater & updater & uptrans & updater and translator\\
-upcomp & updater and compiler & edup & editor and updater\\
-uped & updater and editor & transup & translator and updater\\
-uprev & updater and reviser & &\\
+editor & editor & translator & translator\\
+edcomp & editor and compiler & transcomp & translator and compiler\\
+edex & editor and expander & transed & translator and editor\\
+edrev & editor and reviser & transex & translator and expander\\
+edtrans & editor and translator & transrev & translator and reviser\\
+edup & editor and updater & transup & translator and updater\\
+expander & expander & updater & updater\\
+excomp & expander and compiler & upcomp & updater and compiler\\
+exed & expander and editor & uped & updater and editor\\
+exrev & expander and reviser & upex & updater and expander\\
+extrans & expander and translator & uprev & updater and reviser\\
+exup & expander and updater & uptrans & updater and translator\\
\end{tabular}
-\caption{}\label{table:ed}
+\caption{}\label{editors:table}
\end{table}
-For examples in \textit{CMOS}, we need to turn to the bibliography.
-The first one below shows the output of \textit{reved} in the
-\bibfield{editortype} field, the second of \textit{revup}.
+For examples in \textit{CMOS} that use values from Table
+\ref{editors:table}, we need to turn to the book's bibliography. The
+first example below shows the effect of \textit{reved}, the second of
+\textit{revup}.
\begin{citebib}
\item \cite{fowler1965}
\item \cite{gowers2015}
\end{citebib}
-% Try swapping the editor type in the entries above for other values
-% in Table \ref{table:ed}. Note that \textit{edrev} is the reverse of
-% \textit{reved}---\textit{edited and revised by} instead of
-% \textit{revised and edited by}. So, too, for \textit{comprev} and
-% \textit{revcomp}, \textit{comptrans} and \textit{transcomp}, and so
-% on.
-
-Missing from Table \ref{table:ed} are \textit{editor},
-\textit{translator}, \textit{edtrans}, and \textit{transed}. Windy
-City has bibliography strings for them, too, but they're meant for the
-style's internal use. It determines which of them applies, if any,
-based on the contents of the \bibfield{editor} and
-\bibfield{translator} fields and the option \opt{swaptrans}. You never
-need to use them in a bibliography database.
-
-Three more values of \bibfield{editortype} allow you to assign editors
-to higher level titles: \textit{maintitle}, \textit{series}, and
-\textit{issuetitle}. Here's an example from \textit{CMOS}
+For editors and translators with more than two roles per title, you
+need to print more than one name list, either an editor name list and
+a translator name list or two editor names lists (see the previous
+discussion of second tier editors). This allows for complex
+assignments such as ``Edited and Translated by Jane Doe. Revised and
+Updated by Jane Doe and John Smith.'' What's not allowed is listing
+three or more roles at once, as in ``Edited, Translated, and Revised
+by Jane Doe.''
+
+\subsubsection{Other Options and Titles}
+\label{editors:other}
+
+Windy City simplifies the assignments of editors and translators in
+several ways. For one, the default assignment of every editor name
+list is \textit{editor}, and the default assignment of every
+translator name list is \textit{translator}. As a result, you never
+need to use the values \textit{editor} or \textit{translator} in the
+type fields. It's strictly optional. The name fields alone set the
+correct assignment.
+
+Much the same holds when the editor and translator of a work are the
+same. The usual way to set this assignment is with identical name
+lists:
+
+\begin{verbatim}
+ editor = {Doe, Jane},
+ translator = {Doe, Jane},
+\end{verbatim}
+
+\noindent This gives a default assignment of \textit{editor and
+translator} (\textit{edtrans} from Table \ref{editors:table}), unless you
+use the appropriate \opt{swaptrans} entry option, which gives
+\textit{translator and editor} (\textit{transed} from Table
+\ref{editors:table}). No editor or translator type field is necessary.
+
+When type fields are required, Windy City offers flexibility over how
+you structure your bibliography entries: If you like, you can set the
+assignment with just one editor or translator type field and its
+corresponding name field, or with both name fields and one type field,
+or with both name fields and both type fields. To set Jane Doe as the
+compiler and translator of a \bibfield{title}, Windy City treats all
+five options below as equivalent:
+
+\begin{enumerate}[itemsep=0.2\baselineskip]
+
+\item
+
+\begin{verbatim}
+ editor = {Doe, Jane},
+ editortype = {comptrans},
+\end{verbatim}
+
+\item
+
+\begin{verbatim}
+ translator = {Doe, Jane},
+ translatortype = {comptrans},
+\end{verbatim}
+
+\item
+
+\begin{verbatim}
+ editor = {Doe, Jane},
+ translator = {Doe, Jane},
+ editortype = {comptrans},
+\end{verbatim}
+
+\item
+
+\begin{verbatim}
+ editor = {Doe, Jane},
+ translator = {Doe, Jane},
+ translatortype = {comptrans},
+\end{verbatim}
+
+\item
+
+\begin{verbatim}
+ editor = {Doe, Jane},
+ translator = {Doe, Jane},
+ editortype = {comptrans},
+ translatortype = {comptrans},
+\end{verbatim}
+
+\end{enumerate}
+
+The last option above raises the possibility that editor and
+translator type fields may conflict. What if the editor type is
+\textit{comptrans} and the translator type is something else, say,
+\textit{extrans}? If the editors and translators are the same, but the
+type fields differ, Windy City reads the editor type field and ignores
+the translator type field.
+
+Three more values for type fields allow you to assign editors and
+translators to \bibfield{issuetitle}, \bibfield{maintitle}, and
+\bibfield{series}. Here's an example from \textit{CMOS}
\ref{14.123}:
\begin{verbatim}
@@ -1404,55 +1652,119 @@ to higher level titles: \textit{maintitle}, \textit{series}, and
\item \cite{allen2009}
\end{citebib}
-\noindent If there were no \bibfield{editortype} assigning the editor
-to the series, the output would list a book's editor. In short, for a
-title's compilers, revisers, and updaters and for any title at a
-higher level than \bibfield{title}, you need to use
-\bibfield{editortype}. Combined with Windy City's support for citing
-articles, chapters, books, and other works within books, this scheme
-allows for several sets of editors per work, although it does limit
-you to just one set of compilers, revisers, and updaters.
-
-What about translators? Unless a work's bibliography database entry
-has a \bibfield{translatortype} field with the value
-\textit{maintitle}, Windy City associates the names in
-\bibfield{translator} with the entry's lowest level title. (Recall
-``The Ascent of Mont Ventoux'' above.) You should rarely, and perhaps
-never, need more than one set of translators per work. But if you do,
-Windy City lets you assign as many as three---as long as you
-cross-reference a work with one set of translators to another with
-two.
-
-The style has three other name lists for editors: \bibfield{editora},
-\bibfield{editorb}, and \bibfield{editorc}. If a work has more than
-one set of editors, list editors of the lowest level title in
-\bibfield{editor}. Usually, those are editors of a \bibfield{title}.
-The next level up, as it were, is for \bibfield{editora}, followed by
-\bibfield{editorb}, then \bibfield{editorc}. Remember to include the
-appropriate \bibfield{type} field to indicate an editor's role. These
-fields are \bibfield{editortype} (for \bibfield{editor}),
-\bibfield{editoratype} (for \bibfield{editora}),
-\bibfield{editorbtype} (for \bibfield{editorb}), and
-\bibfield{editorctype} (for \bibfield{editorc}).
-
-As it happens, Windy City puts a lot of effort into sorting out where
-to print the names of editors and translators, so it's a bit more
-clever than the previous paragraph suggests. In particular, if you use
-\bibfield{editortype} to assign an \bibfield{editor} to a
-\bibfield{maintitle} or some other higher level title, and have an
-\bibfield{editora} with no corresponding \bibfield{editoratype}, Windy
-City will assume that \bibfield{editora} is the editor of the
-\bibfield{title}. Regardless, the best practice is to the follow the rule
-of thumb described above, reserving \bibfield{editor} for
-\bibfield{title} and working up from there.
+\noindent If there were no \bibfield{editortype} with the value
+\textit{series}, the style would have assigned \bibfield{editor} to
+\bibfield{title}. The same goes for \bibfield{issuetitle} and
+\bibfield{maintitle}: Assign editors and translators to them by
+putting \textit{issuetitle} and \textit{maintitle} in the relevant
+type fields.
+
+With the help of strings from Table \ref{editors:table}, all editor and
+translator types are available to \bibfield{issuetitle},
+\bibfield{maintitle}, and \bibfield{series}. Commas function as
+delimiters. To take the previous example, you could list Catharine
+Stimpson as the editor and compiler of the series by putting the
+values \textit{series,edcomp} or \textit{edcomp,series} in
+\bibfield{editortype}.
+
+Almost any entry that relies on cross-referencing can be written
+without it. Doing so, however, requires some fields in your
+bibliography database that are usually meant for the style's internal
+use. These fields include \bibfield{booktitle} (a cross-referenced
+\bibfield{title}) and \bibfield{bookbooktitle} (a double
+cross-referenced \bibfield{title}---a \bibfield{title}
+cross-referenced by a cross-referenced \bibfield{title}). To
+accommodate entries that don't use cross-referencing, the style
+accepts the values \textit{booktitle} and \textit{bookbooktitle} in
+editor and translator type fields. An example of double
+cross-referencing will set us up to use both:
+
+\begin{verbatim}
+ @InCollection{doe2018,
+ options = {swapvol},
+ author = {Doe, Jane},
+ title = {A Poem},
+ translator = {Smith, John},
+ pages = {56–57},
+ crossref = {jones2018}
+ }
+ @InBook{jones2018,
+ editor = {Jones, David},
+ title = {A Volume of Poems},
+ volume = {2},
+ year = {2018},
+ crossref = {white2016}
+ }
+ @Collection{white2016,
+ editor = {White, Amy},
+ title = {A Collection of Poems},
+ volumes = {4},
+ address = {Chicago},
+ publisher = {University of Chicago Press},
+ year = {2016–18}
+ }
+\end{verbatim}
+
+\begin{citebib}
+\item \cite[56]{doe2018}
+\end{citebib}
+
+\noindent The following alternative dispenses with \bibfield{crossref}
+but needs two editor type fields, plus two other fields that don't
+usually appear in bibliography databases: \bibfield{bookvolume} (a
+cross-referenced \bibfield{volume}) and \bibfield{bookyear} (a
+cross-referenced \bibfield{year}).
+
+\begin{verbatim}
+ @InCollection{doe2018.alt,
+ author = {Doe, Jane},
+ title = {A Poem},
+ translator = {Smith, John},
+ pages = {56–57},
+ booktitle = {A Volume of Poems},
+ editor = {Jones, David},
+ editortype = {booktitle},
+ bookvolume = {2},
+ year = {2018},
+ bookbooktitle = {A Collection of Poems},
+ editora = {White, Amy},
+ editoratype = {bookbooktitle},
+ volumes = {4},
+ address = {Chicago},
+ publisher = {University of Chicago Press},
+ bookyear = {2016–18}
+ }
+\end{verbatim}
+
+\begin{citebib}
+\item \cite[56]{doe2018.alt}
+\end{citebib}
+
+In short, for a title's compilers, expanders, revisers, and updaters,
+and for any title other than \bibfield{title}, you need to put the
+correct value of the assignment in the editor or translator type field
+that corresponds with the editor or translator name list
+(\bibfield{editortype} for \bibfield{editor},
+\bibfield{translatortype} for \bibfield{translator}, and so on).
+Combined with Windy City's support for citing articles, chapters,
+books, and other works within books, this scheme allows for several
+sets of editors per work.
\subsection{Switching Places and Roles}
-\label{edtranspos}
+\label{editors:swap}
+
+According to \textit{CMOS}, if a work has an editor and a translator,
+their names should appear in citations in the order in which they
+appear on the work's title page (see \textit{CMOS} \ref{14.104}). By
+default, the style lists editors first. To reverse the order, the
+style provides a suite of entry options that apply to the editors and
+translators of different titles. This means that if a work has
+multiple sets of editors and translators, you may swap positions of
+any set without affecting the others.
-Normally, Windy City lists editors first. But if translators are
-listed first on a work's title page, you should reverse the order (see
-\textit{CMOS} \ref{14.104}). For that, use the entry option
-\opt{swaptrans}. Compare:
+For simplicity, let's focus on \opt{swaptrans}. This option swaps the
+editors and translators of works other than an \bibfield{issuetitle},
+\bibfield{maintitle}, or \bibfield{series}. Compare:
\begin{citebib}
\item \cite{doe2010a}
@@ -1461,9 +1773,9 @@ listed first on a work's title page, you should reverse the order (see
\item \cite{doe2010b}
\end{citebib}
-If a work has no author, but has an editor, the style will print the
-editor's name in the author's position. The same happens if a work has
-no author but does have a translator. The following are examples from
+If a work has no author, but has editors, the style prints their names
+in the author's position. The same happens if a work has no author or
+editor but has translators. The following are examples from
\textit{CMOS} \ref{14.103}:
\begin{citebib}
@@ -1486,24 +1798,90 @@ in the author's position:
\end{citebib}
Similarly, if a work's editors and translators are the same, the style
-will print the editors' role first, as in \textit{edited and
-translated by}. Reverse them with \opt{swaptrans}. From \textit{CMOS}
+prints the editors' role first, as in \textit{edited and translated
+by}. Reverse them with \opt{swaptrans}. From \textit{CMOS}
\ref{14.104}:
\begin{citebib}
\item \cite{menchu1999}
\end{citebib}
-To make switching roles easier in these cases, you may also use the
-relevant \bibfield{editortype} field with a bibliography string from
-Table \ref{table:ed}. After all, for compilers, revisers, and
-updaters, you need to put a value in \bibfield{editortype} anyway. So,
-if you pick one that begins with \textit{trans} (\textit{transcomp},
-\textit{transed}, \textit{transrev}, or \textit{transup}), Windy City
-will assume that the translator's role goes first.
+You may also swap roles by changing the value in the relevant
+\bibfield{editortype} field (see Table \ref{editors:table} in section
+\ref{editors:basics}). For compilers, expanders, revisers, and
+updaters, you need to put a value in \bibfield{editortype} anyway. You
+may as well pick a value that has the roles in the correct order.
+Either way, if you pick one that begins with \textit{trans}
+(\textit{transcomp}, \textit{transed}, \textit{transex},
+\textit{transrev}, or \textit{transup}), Windy City assumes that the
+translator's role goes first. Using \opt{swaptrans} would then put the
+editor's role first.
+
+As often happens, cross-referencing raises some complications. The
+problem is that \opt{swaptrans} applies to the editors and translators
+of a \bibfield{title}, but cross-referenced works have more than one
+(a \bibfield{title}, a cross-referenced \bibfield{title}, and maybe
+even a double cross-referenced \bibfield{title}). Three more entry
+options allow you to pick among them so as to swap whichever set of
+editors and translators you want. Here's a silly example to showcase
+all three options:
+
+\begin{verbatim}
+ @InCollection{doe2017,
+ author = {Doe, Jane},
+ title = {An Essay},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ pages = {18–35},
+ crossref = {jones2017}
+ }
+ @InBook{jones2017,
+ title = {A Volume of Essays},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ volume = {1},
+ crossref = {white2017}
+ }
+ @Collection{white2017,
+ title = {A Collection of Essays},
+ editor = {Smith, John},
+ translator = {Smith, John},
+ volumes = {3},
+ address = {Chicago},
+ publisher = {University of Chicago Press},
+ year = {2017}
+ }
+\end{verbatim}
+
+To swap the first set of editors and translators, use
+\opt{swaptrans:title}:
+
+\begin{citebib}
+\item \cite{doe2017a}
+\end{citebib}
+
+To swap the second set of editors and translators, use
+\opt{swaptrans:booktitle} (or \opt{swaptrans:book}):
+
+\begin{citebib}
+\item \cite{doe2017b}
+\end{citebib}
+
+To swap the third set of editors and translators, use
+\opt{swaptrans:bookbooktitle} (or \opt{swaptrans:bookbook}):
+
+\begin{citebib}
+\item \cite{doe2017c}
+\end{citebib}
+
+To swap editors and translators of an \bibfield{issuetitle},
+\bibfield{maintitle}, or \bibfield{series}, use
+\opt{swaptrans:issuetitle}, \opt{swaptrans:maintitle}, or
+\opt{swaptrans:series}, respectively. The first two also have short
+forms: \opt{swaptrans:issue} and \opt{swaptrans:main}.
-On rare occasions, you may want to swap the position of an author and
-an editor or translator. \textit{CMOS} \ref{14.104} gives an example:
+On rare occasions, you may want to swap positions of an author and an
+editor or translator. From \textit{CMOS} \ref{14.104}:
\begin{citebib}
\item \cite{pound1953}
@@ -1514,13 +1892,13 @@ an editor or translator. \textit{CMOS} \ref{14.104} gives an example:
\bibtype{collection}, \bibtype{inbook}, \bibtype{incollection},
\bibtype{mvbook}, and \bibtype{mvcollection} entry types. But beware:
Windy City doesn't look ahead to see if there's really an editor or
-translator to take the author's place. If it doesn't find one, it will
-still print the author's name after the title, leaving the author's
+translator to take the author's place. If it doesn't find one, it
+still prints the author's name after the title, leaving the author's
position empty. Also, if it finds both an editor and a translator, and
-they're not the same person, it will print the editor's name in the
+they're not the same person, it prints the editor's name in the
author's position---again, giving priority to editors. If you want the
translator's name in the author's position, use \opt{swapauth} with
-\opt{swaptrans}.
+the appropriate \opt{swaptrans} option.
For correct sorting in a bibliography, a work that uses \opt{swapauth}
needs a field like \bibfield{sortname} to sort it by the name of the
@@ -1571,7 +1949,7 @@ priority, the collection's or the volume's. Consider an example from
title of the collection. In standard notes and bibliographies,
\textit{CMOS} gives you the option of reversing this order. (See
especially \textit{CMOS} \ref{14.119}, \ref{14.121}, and \ref{14.122},
-and compare \ref{14.144} and \ref{15.41}.) Windy City does as well,
+and compare \ref{14.144} and \ref{15.41}.) Windy City does as well
with the entry or preamble option \opt{swapvol}.
\begin{citebib}
@@ -1689,7 +2067,7 @@ Windy City cross-references previously cited volumes.
\begin{citebib}
\item \cite[56]{doe2018}
-\item \cite[128]{edwards2018}
+\item \cite[128]{adams2018}
\nocite{jones2018}
\end{citebib}
@@ -1699,7 +2077,7 @@ Windy City cross-references previously cited volumes.
\AtNextCitekey{\toggletrue{swapvol}}
\item \cite[56]{doe2018}
\AtNextCitekey{\toggletrue{swapvol}}
-\item \cite[128]{edwards2018}
+\item \cite[128]{adams2018}
\AtNextBibliography{\toggletrue{swapvol}}
\nocite{jones2018}
\end{citebib}
@@ -2446,7 +2824,7 @@ database.
\label{14.104}
On how to make an author and editor swap places, see section
-\ref{edtranspos}.
+\ref{editors:swap}.
\begin{citebib}
\item \cite{bonnefoy1995}
@@ -3571,6 +3949,7 @@ sorting in this section are mentioned there. Creating a reference list
in the preferred way, with the \opt{reflist} preamble option, should
prevent those issues.\\}%
+\titleformat{\section}{\large\bfseries\filcenter}{}{2ex}{}
\printbiblist[prenote=sh]{shorthand}
\refstepcounter{sh}\label{sh}
\printbibliography[notkeyword=notinbib,prenote=bib]
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx b/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx
index f52a3160f4..76b543d9a6 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx
+++ b/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx
@@ -1,4 +1,4 @@
-% Last modified: Sat 30 Jan 2021 06:17:53 PM CST
+% Last modified: Sun 02 May 2021 01:14:55 PM CDT
% Permission is granted to copy, distribute and/or modify this
% software under the terms of the LaTeX Project Public License (LPPL),
@@ -11,7 +11,7 @@
% implied warranties of merchantability and fitness for a particular
% purpose.
-\ProvidesFile{windycity.bbx}[2021/01/30 Windy City bibliography style
+\ProvidesFile{windycity.bbx}[2021/05/02 Windy City bibliography style
for biblatex]
\@ifpackagelater{biblatex}{2019/08/17}
{}
@@ -68,14 +68,14 @@
\DeclareBiblatexOption{entry}[boolean]{listvols}[true]{%
\settoggle{listvols}{#1}}%
+\providetoggle{newauth}
+\DeclareBiblatexOption{entry}[boolean]{newauth}[true]{%
+ \settoggle{newauth}{#1}}%
+
\providetoggle{noauth}
\DeclareBiblatexOption{entry}[boolean]{noauth}[true]{%
\settoggle{noauth}{#1}}%
-\providetoggle{noreprint}
-\DeclareBiblatexOption{entry}[boolean]{noreprint}[true]{%
- \settoggle{noreprint}{#1}}%
-
\DeclareBiblatexOption{global}[boolean]{nolos}[true]{%
\ifstrequal{#1}{true}
{\AtBeginBibliography{\blx@key@bibcheck{nolos}}}
@@ -85,6 +85,10 @@
\DeclareBiblatexOption{global}[boolean]{nopages}[true]{%
\settoggle{nopages}{#1}}%
+\providetoggle{noreprint}
+\DeclareBiblatexOption{entry}[boolean]{noreprint}[true]{%
+ \settoggle{noreprint}{#1}}%
+
\providetoggle{reflist}
\DeclareBiblatexOption{global}[boolean]{reflist}[true]{%
\ifstrequal{#1}{true}
@@ -106,6 +110,9 @@
\toggletrue{shortfirst}}%
{\togglefalse{short}}}
+\DeclareBiblatexOption{global}[boolean]{shortafter}[true]{%
+ \settoggle{short}{#1}}%
+
\providetoggle{shortfirst}
\DeclareBiblatexOption{global}[boolean]{shortfirst}[true]{%
\settoggle{shortfirst}{#1}}%
@@ -122,13 +129,38 @@
\DeclareBiblatexOption{entry}[boolean]{swapauth}[true]{%
\settoggle{swapauth}{#1}}%
-\providetoggle{newauth}
-\DeclareBiblatexOption{entry}[boolean]{newauth}[true]{%
- \settoggle{newauth}{#1}}%
-
\providetoggle{swaptrans}
+\providetoggle{swaptrans:booktitle}
+\providetoggle{swaptrans:bookbooktitle}
+\providetoggle{swaptrans:issuetitle}
+\providetoggle{swaptrans:maintitle}
+\providetoggle{swaptrans:series}
+\providetoggle{swaptrans:title}
\DeclareBiblatexOption{entry}[boolean]{swaptrans}[true]{%
- \settoggle{swaptrans}{#1}}%
+ \settoggle{swaptrans:title}{#1}%
+ \settoggle{swaptrans:booktitle}{#1}%
+ \settoggle{swaptrans:bookbooktitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:booktitle}[true]{%
+ \settoggle{swaptrans:booktitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:bookbooktitle}[true]{%
+ \settoggle{swaptrans:bookbooktitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:issuetitle}[true]{%
+ \settoggle{swaptrans:issuetitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:maintitle}[true]{%
+ \settoggle{swaptrans:maintitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:series}[true]{%
+ \settoggle{swaptrans:series}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:title}[true]{%
+ \settoggle{swaptrans:title}{#1}}%
+% Short forms of the options above:
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:book}[true]{%
+ \settoggle{swaptrans:booktitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:bookbook}[true]{%
+ \settoggle{swaptrans:bookbooktitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:issue}[true]{%
+ \settoggle{swaptrans:issuetitle}{#1}}%
+\DeclareBiblatexOption{entry}[boolean]{swaptrans:main}[true]{%
+ \settoggle{swaptrans:maintitle}{#1}}%
\providetoggle{swapvol}
\DeclareBiblatexOption{entry,global}[boolean]{swapvol}[true]{%
@@ -161,9 +193,6 @@
maxbibnames=10,
mincitenames=1,
maxcitenames=3,
-% Remember, if 'mincrossrefs' is greater than 1, and you cite just one
-% entrykey in a document (or refsection, etc), the field 'crossref' is
-% undefined.
mincrossrefs=2,
minxrefs=2,
pagetracker=page,
@@ -180,12 +209,7 @@
useprefix=false,
usetranslator=true}
-% If a document's language is English, set by babel or polyglossia or
-% by biblatex when neither babel nor polyglossia has been loaded, use
-% 'american-windycity.lbx':
\DeclareLanguageMapping{english}{american-windycity}
-% If the document's language isn't English, try to override
-% 'american-windycity.lbx' with '<language>-windycity.lbx':
\DeclareLanguageMappingSuffix{-windycity}
\DeclareLabeldate{% 'reflist' preamble option loads an alternative
@@ -278,10 +302,10 @@
\field{volume}
\literal{0}}}
-% Mapping for when 'journal', 'journaltitle', 'organization', or
-% 'blogtitle' goes in the author's position.
+% When 'journal', 'journaltitle', 'organization', or 'blogtitle' goes
+% in the author's position.
-\DeclareSourcemap{
+\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map[overwrite]{
\pertype{article}
@@ -310,7 +334,7 @@
}
}
}
-\DeclareSourcemap{
+\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map[overwrite]{
\pertype{online}
@@ -337,7 +361,7 @@
}
}
}
-\DeclareSourcemap{
+\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map[overwrite=false]{
\pertype{inreference}
@@ -359,6 +383,29 @@
}
}
+% Save the entry key of every editor, translator, and title.
+
+\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map[overwrite, foreach={title,booktitle,bookbooktitle}]{
+ \step[fieldsource=entrykey]
+ \step[fieldset=$MAPLOOPkey, origfieldval]
+ \step[notfield=$MAPLOOP, final]
+ \step[fieldset=$MAPLOOPkey, null]
+ }
+ \map[overwrite, foreach={%
+ editor,editora,editorb,editorc,translator,translatora,translatorb}]{
+ \step[fieldsource=entrykey]
+ \step[fieldset=$MAPLOOPtype, fieldvalue={,}, appendstrict]
+ \step[fieldset=$MAPLOOPtype, origfieldval, append]
+ \step[notfield=$MAPLOOP, final]
+ \step[fieldset=$MAPLOOPtype, null]
+ }
+ }
+}
+
+% For 'collsonly' and 'nolos' options and the 'reference' entry type.
+
\defbibcheck{collsonly}{%
\ifentrytype{inbook}
{\iffieldundef{crossref}
@@ -389,18 +436,22 @@
\ResetDataInheritance
\DefaultInheritance[\except{*}{review}{all=false}]{all=true,override=false}
\DeclareDataInheritance{*}{incollection,inbook,letter,review}{%
+ \inherit[override=true]{titlekey}{booktitlekey}
+ \inherit[override=true]{booktitlekey}{bookbooktitlekey}
\inherit{author}{bookauthor}
\inherit{authortype}{bookauthortype}
\inherit{shortauthor}{shortbookauthor}
- \inherit{editor}{editora}
- \inherit{editora}{editorb}
- \inherit{editorb}{editorc}
- \inherit{editortype}{editoratype}
- \inherit{editoratype}{editorbtype}
- \inherit{editorbtype}{editorctype}
+ \inherit[override=true]{editor}{editora}
+ \inherit[override=true]{editora}{editorb}
+ \inherit[override=true]{editorb}{editorc}
+ \inherit[override=true]{editortype}{editoratype}
+ \inherit[override=true]{editoratype}{editorbtype}
+ \inherit[override=true]{editorbtype}{editorctype}
+ \inherit{editoraddon}{editoraaddon}
\inherit{translator}{translatora}
\inherit{translatora}{translatorb}
- \inherit{translatortype}{translatoratype}
+ \inherit[override=true]{translatortype}{translatoratype}
+ \inherit[override=true]{translatoratype}{translatorbtype}
\inherit{title}{booktitle}
\inherit{subtitle}{booksubtitle}
\inherit{titleaddon}{booktitleaddon}
@@ -442,12 +493,16 @@
\let\crossreflist\empty
\let\pluga\empty
\let\plugb\empty
-\let\xeditor\empty
-\let\yeditor\empty
\let\xtitle\empty
\let\xvolume\empty
+\let\xeditor\empty
+\let\yeditor\empty
+\let\edtypes\empty
+\let\transtypes\empty
+
\providetoggle{authposition}
+\providetoggle{atleastone}
\providetoggle{bibliography}
\providetoggle{ibid:loccit}
\providetoggle{multicite}
@@ -496,8 +551,6 @@
\global\togglefalse{reflist}}%
{\item}
-% Index names only.
-
\renewbibmacro*{bibindex}{%
\ifbibindex
{\indexnames{labelname}}%
@@ -536,8 +589,8 @@
\DeclareIndexNameAlias{translator}{default}
% Affixes like 'Jr.', should appear last, delimited with a comma, when
-% inverted, as in a bibliography, but not otherwise, as in a note. See
-% CMOS, 17th ed., 6.43 and 16.41, as well as the example in 14.75.
+% the name is inverted. See CMOS, 17th ed., 6.43 and 16.41, and the
+% example in 14.75.
\renewbibmacro*{name:family-given}[4]{%
\ifuseprefix
@@ -705,14 +758,18 @@
\step[typesource=www, typetarget=online]
\step[typesource=inreference, typetarget=reference]
\step[typesource=mathesis, typetarget=thesis]
- \step[typesource=phdthesis, typetarget=thesis]}
+ \step[typesource=phdthesis, typetarget=thesis]
+ }
\map{
\step[fieldsource=school, fieldtarget=institution]
\step[fieldsource=address, fieldtarget=location]
- \step[fieldsource=journal, fieldtarget=journaltitle]}}
+ \step[fieldsource=journal, fieldtarget=journaltitle]
+ }
+}
\DeclareBibliographyAlias{collection}{book}
\DeclareBibliographyAlias{cite:collection}{cite:book}
+\DeclareBibliographyAlias{*}{book}
\DeclareBibliographyAlias{inbook}{incollection}
\DeclareBibliographyAlias{letter}{incollection}
@@ -722,8 +779,6 @@
\DeclareBibliographyAlias{unpublished}{thesis}
\DeclareBibliographyAlias{cite:unpublished}{cite:thesis}
-\DeclareBibliographyAlias{*}{book}
-
%%%%%%%%%%%%%%%%%%%%%%%%%
%% Author's Position %%
%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -738,11 +793,11 @@
{\usebibmacro{authpos+deflabel}}%
{\usebibmacro{author+bookauthor}%
\ifnameundef{\cbx@namelist}
- {\usebibmacro{edtrans:authpos}%
+ {\usebibmacro{editors:a}%
\ifnameundef{\cbx@namelist}
{\toggletrue{noauth}%
\usebibmacro{authpos+deflabel}}%
- {\usebibmacro{addplus:authpos}%
+ {\usebibmacro{addplus+etc}%
\usebibmacro{namehash+etc}}}
{\usebibmacro{namehash+etc}}}}
@@ -824,244 +879,162 @@
% For editors and translators in the author's position.
-\newbibmacro*{edtrans:authpos}{%
- \togglefalse{noed}%
- \togglefalse{notrans}%
- \usebibmacro{test:ed:authpos}%
- \usebibmacro{test:trans:authpos}%
- \ifboolexpr{ togl {noed}
- and togl {notrans}}
- {}
- {\iftoggle{noed}
- {\usebibmacro{transcombos}}%
- {\iftoggle{notrans}
- {\usebibmacro{edcombos}}%
- {\iftoggle{swaptrans}
- {\usebibmacro{transcombos}}%
- {\usebibmacro{edcombos}}}}}}
-
-\newbibmacro*{test:ed:authpos}{%
- \ifboolexpr{ test {\ifnameundef{editor}}
- and test {\ifnameundef{editora}}}
- {\toggletrue{noed}}%
- {\ifnameundef{editor}
- {\usebibmacro{test:editora:authpos}}%
- {\usebibmacro{test:editor:authpos}%
- \iftoggle{noed}
- {\global\togglefalse{noed}%
- \usebibmacro{test:editora:authpos}}%
- {}}}}
-
-\newbibmacro*{test:xeditor:a}[1]{%
- \ifboolexpr{ test {\ifnameundef{\xeditor}}
- or test {\iffieldequalstr{\xeditor type}{issuetitle}}
- or test {\iffieldequalstr{\xeditor type}{series}}}
- {\toggletrue{noed}}%
- {\ifstrequal{#1}{ap}% not 'authposition' toggle
- {\usebibmacro{test:xeditor:b:authpos}}%
- {\usebibmacro{test:xeditor:b}}}}
-
-\newbibmacro*{test:xeditor:b:authpos}{%
- \iffieldequalstr{\xeditor type}{maintitle}
- {\iftoggle{collection:bk}
- {\iftoggle{swapvol}
- {}
- {\toggletrue{noed}}}
- {\toggletrue{noed}}}
- {\ifboolexpr{ togl {collection:bk}
- and togl {swapvol}}
- {\toggletrue{noed}}%
- {\ifboolexpr{ togl {collection:icbk}
- or togl {collection:icib}}
- {\ifnameundef{translator}
- {}
- {\toggletrue{noed}}}
- {}}}}
+\newbibmacro*{editors:a}{%
+ \usebibmacro{test:ed:a}%
+ \usebibmacro{test:trans:a}%
+ \iftoggle{swapvol}
+ {\ifboolexpr{ test {\ifinlist{maintitle}{\edtypes}}
+ or test {\ifinlist{maintitle}{\transtypes}}}
+ {\usebibmacro{test:swaptrans:a}{maintitle}}%
+ {\usebibmacro{test:swaptrans:a}{booktitle}}}
+ {\usebibmacro{test:swaptrans:a}{title}}}
+
+\newbibmacro*{test:ed:a}{%
+ \renewcommand*{\do}[1]{%
+ \ifnameundef{##1}
+ {\toggletrue{noed}}%
+ {\togglefalse{noed}%
+ \renewcommand*{\xeditor}{##1}%
+ \let\edtypes\empty
+ \forcsvfield{\listadd\edtypes}{\xeditor type}%
+ \usebibmacro{test:a:types}{\edtypes}{noed}}}% needs '%'
+ \docsvlist{editor,editora,editorb,editorc}}%
+
+\newbibmacro*{test:trans:a}{%
+ \renewcommand*{\do}[1]{%
+ \ifnameundef{##1}
+ {\toggletrue{notrans}}%
+ {\togglefalse{notrans}%
+ \renewcommand*{\yeditor}{##1}%
+ \let\transtypes\empty
+ \forcsvfield{\listadd\transtypes}{\yeditor type}%
+ \usebibmacro{test:a:types}{\transtypes}{notrans}}}% needs '%'
+ \docsvlist{translator,translatora,translatorb}}%
+
+\newbibmacro*{test:a:types}[2]{%
+ \ifboolexpr{ test {\ifinlist{issuetitle}{#1}}
+ or test {\ifinlist{series}{#1}}}
+ {\toggletrue{#2}}%
+ {\ifinlist{maintitle}{#1}
+ {\iftoggle{collection:bk}
+ {\iftoggle{swapvol}
+ {\listbreak}%
+ {\toggletrue{#2}}}
+ {\toggletrue{#2}}}
+ {\ifboolexpr{ togl {collection:bk}
+ and togl {swapvol}}
+ {\toggletrue{#2}}%
+ {\usebibmacro{test:a:keys}{#1}{#2}}}}}
-\newbibmacro*{test:editor:authpos}{%
- \renewcommand*{\xeditor}{editor}%
- \usebibmacro{test:xeditor:a}{ap}%
- \iftoggle{noed}
- {}
+\newbibmacro*{test:a:keys}[2]{%
+ \xifinlist{\thefield{\xtitle titlekey}}{#1}
{\ifboolexpr{ togl {collection:ib}
- and togl {swapvol}
- and not test {\ifnameundef{editora}}}
- {\toggletrue{noed}}%
+ and togl {swapvol}}
+ {\toggletrue{#2}}%
{\ifboolexpr{ togl {swapvol}
and ( togl {collection:icbk}
or togl {collection:icib} )}
- {\toggletrue{noed}}%
- {}}}}
+ {\toggletrue{#2}}%
+ {\listbreak}}}
+ {\listbreak}}%
+
+\newbibmacro*{test:swaptrans:a}[1]{%
+ \iftoggle{swaptrans:#1}
+ {\toggletrue{swaptrans}%
+ \iftoggle{notrans}
+ {\usebibmacro{ed:a:combos}}%
+ {\usebibmacro{trans:a:combos}}%
+ \togglefalse{swaptrans}}%
+ {\iftoggle{noed}
+ {\usebibmacro{trans:a:combos}}%
+ {\usebibmacro{ed:a:combos}}}}
-\newbibmacro*{test:editora:authpos}{%
- \renewcommand*{\xeditor}{editora}%
- \usebibmacro{test:xeditor:a}{ap}%
+\newbibmacro*{ed:a:combos}{%
\iftoggle{noed}
{}
- {\ifboolexpr{ togl {collection:ib}
- and not togl {swapvol}
- and test {\ifnameundef{editor}}}
- {\toggletrue{noed}}%
- {}}}
-
-\newbibmacro*{test:trans:authpos}{%
- \usebibmacro{trans+transa+transb}%
- \ifnameundef{\yeditor}
- {\toggletrue{notrans}}%
- {\iffieldequalstr{translatortype}{maintitle}
- {\ifboolexpr{ togl {collection:bk}
- and togl {swapvol}}
- {}
- {\toggletrue{notrans}}}
- {\iffieldequalstr{translatoratype}{maintitle}
- {\ifboolexpr{ togl {collection:icbk}
- and togl {swapvol}}
- {}
- {\toggletrue{notrans}}}
- {}}}}
-
-\newbibmacro*{trans+transa+transb}{%
- \ifnameundef{translator}
- {\ifnameundef{translatora}
- {\renewcommand*{\yeditor}{translatorb}}%
- {\renewcommand*{\yeditor}{translatora}}}
- {\renewcommand*{\yeditor}{translator}}}
-
-\newbibmacro*{transcombos}{%
- \renewcommand*{\cbx@namelist}{\yeditor}%
- \ifnamesequal{\xeditor}{\yeditor}
- {\clearname{\xeditor}%
- \ifboolexpr{ test {\iffieldstart{editortype}{c}}
- or test {\iffieldequalstr{\xeditor type}{transcomp}}}
- {\renewcommand*{\cbx@bibstring}{transcomp}}%
- {\ifboolexpr{ test {\iffieldstart{\xeditor type}{r}}
- or test {\iffieldequalstr{\xeditor type}{transrev}}}
- {\renewcommand*{\cbx@bibstring}{transrev}}%
- {\ifboolexpr{ test {\iffieldstart{\xeditor type}{u}}
- or test {\iffieldequalstr{\xeditor type}{transup}}}
- {\renewcommand*{\cbx@bibstring}{transup}}%
- {\renewcommand*{\cbx@bibstring}{transed}}}}}
- {\renewcommand*{\cbx@bibstring}{translator}}}
-
-\newbibmacro*{edcombos}{%
- \renewcommand*{\cbx@namelist}{\xeditor}%
- \ifnamesequal{\xeditor}{\yeditor}
- {\clearname{\yeditor}%
- \usebibmacro{edcombos:trans}}%
- {\usebibmacro{edcombos:notrans}}}
-
-\newbibmacro*{edcombos:trans}{%
- \iffieldstart{\xeditor type}{c}
- {\renewcommand*{\cbx@bibstring}{comptrans}}%
- {\iffieldstart{\xeditor type}{r}
- {\renewcommand*{\cbx@bibstring}{revtrans}}%
- {\iffieldstart{\xeditor type}{u}
- {\renewcommand*{\cbx@bibstring}{uptrans}}%
- {\iffieldequalstr{\xeditor type}{transcomp}
- {\renewcommand*{\cbx@bibstring}{transcomp}}%
- {\iffieldequalstr{\xeditor type}{transed}
- {\renewcommand*{\cbx@bibstring}{transed}}%
- {\iffieldequalstr{\xeditor type}{transrev}
- {\renewcommand*{\cbx@bibstring}{transrev}}%
- {\iffieldequalstr{\xeditor type}{transup}
- {\renewcommand*{\cbx@bibstring}{transup}}%
- {\renewcommand*{\cbx@bibstring}{edtrans}}}}}}}}}
-
-\newbibmacro*{edcombos:notrans}{%
- \iffieldequalstr{\xeditor type}{compiler}
- {\renewcommand*{\cbx@bibstring}{compiler}}%
- {\iffieldequalstr{\xeditor type}{reviser}
- {\renewcommand*{\cbx@bibstring}{reviser}}%
- {\iffieldequalstr{\xeditor type}{updater}
- {\renewcommand*{\cbx@bibstring}{updater}}%
- {\iffieldequalstr{\xeditor type}{comped}
- {\renewcommand*{\cbx@bibstring}{comped}}%
- {\iffieldequalstr{\xeditor type}{comprev}
- {\renewcommand*{\cbx@bibstring}{comprev}}%
- {\iffieldequalstr{\xeditor type}{compup}
- {\renewcommand*{\cbx@bibstring}{compup}}%
- {\iffieldequalstr{\xeditor type}{edcomp}
- {\renewcommand*{\cbx@bibstring}{edcomp}}%
- {\iffieldequalstr{\xeditor type}{edrev}
- {\renewcommand*{\cbx@bibstring}{edrev}}%
- {\iffieldequalstr{\xeditor type}{edup}
- {\renewcommand*{\cbx@bibstring}{edup}}%
- {\iffieldequalstr{\xeditor type}{revcomp}
- {\renewcommand*{\cbx@bibstring}{revcomp}}%
- {\iffieldequalstr{\xeditor type}{reved}
- {\renewcommand*{\cbx@bibstring}{reved}}%
- {\iffieldequalstr{\xeditor type}{revup}
- {\renewcommand*{\cbx@bibstring}{revup}}%
- {\iffieldequalstr{\xeditor type}{upcomp}
- {\renewcommand*{\cbx@bibstring}{upcomp}}%
- {\iffieldequalstr{\xeditor type}{uped}
- {\renewcommand*{\cbx@bibstring}{uped}}%
- {\iffieldequalstr{\xeditor type}{uprev}
- {\renewcommand*{\cbx@bibstring}{uprev}}%
- {\renewcommand*{\cbx@bibstring}{editor}}}}}}}}}}}}}}}}}
-
-% Thanks to David Fussner's biblatex-chicago for pointing me to this
-% command by Philipp Lehman. Source:
-% https://groups.google.com/forum/#!topic/comp.text.tex/kG003fkZK1I
-
-\newrobustcmd*{\iffieldstart}[2]{%
- \iffieldundef{#1}
- {\@secondoftwo}% originally '\@gobbletwo'
- {\begingroup
- \edef\@tempa{%
- \long\def\noexpand\iffieldstart@i####1\detokenize{#2}####2}%
- \@tempa\@nil{\endgroup\ifblank{##1}}%
- \savefield*{#1}{\@tempa}%
- \expandafter\iffieldstart@i\detokenize
- \expandafter\expandafter\expandafter{%
- \expandafter\@tempa\detokenize{#2}}\@nil}}%
-
-\newbibmacro*{addplus:authpos}{%
- \iftoggle{cbx:short}
- {}
- {\usebibmacro{addplus}%
- \renewcommand*{\plugb}{%
- \addcomma\space\bibsstring{\cbx@bibstring}}}}
+ {\usebibmacro{edcombos:a}}}
-\newbibmacro*{addplus}{%
- \ifnameundef{\xeditor}
- {\ifnameundef{\yeditor}
- {}
- {\ifnumgreater{\value{\yeditor}}{1}
- {\edef\cbx@bibstring{\cbx@bibstring +}}%
- {}}}
- {\ifnumgreater{\value{\xeditor}}{1}
- {\edef\cbx@bibstring{\cbx@bibstring +}}%
- {}}}
-
-% For editors and translators not in the author's position.
-
-\newbibmacro*{edtrans}{%
- \iftoggle{swaptrans}
- {\usebibmacro{transcombos+etc}%
- \usebibmacro{edcombos+etc}}%
- {\usebibmacro{edcombos+etc}%
- \usebibmacro{transcombos+etc}}%
- \usebibmacro{editoraddon}}%
-
-\newbibmacro*{transcombos+etc}{%
- \togglefalse{noed}%
- \togglefalse{notrans}%
- \usebibmacro{test:ed}%
- \usebibmacro{test:trans}%
+\newbibmacro*{trans:a:combos}{%
\iftoggle{notrans}
{}
- {\usebibmacro{transcombos}%
- \usebibmacro{pluga+etc}}}
-
-\newbibmacro*{edcombos+etc}{%
- \togglefalse{noed}%
- \togglefalse{notrans}%
- \usebibmacro{test:ed}%
- \usebibmacro{test:trans}%
+ {\usebibmacro{transcombos:a}}}
+
+% For editors and translators after the author's position.
+
+\newbibmacro*{editors:b}{%
+ \usebibmacro{test:ed:b}%
+ \usebibmacro{test:trans:b}%
+ \ifdefstring{\xtitle}{book}
+ {\usebibmacro{test:swaptrans:b}{booktitle}}%
+ {\ifdefstring{\xtitle}{bookbook}
+ {\usebibmacro{test:swaptrans:b}{bookbooktitle}}%
+ {\usebibmacro{test:swaptrans:b}{title}}}}
+
+\newbibmacro*{test:ed:b}{%
+ \renewcommand*{\do}[1]{%
+ \ifnameundef{##1}
+ {\toggletrue{noed}}%
+ {\togglefalse{noed}%
+ \renewcommand*{\xeditor}{##1}%
+ \let\edtypes\empty
+ \forcsvfield{\listadd\edtypes}{\xeditor type}%
+ \usebibmacro{test:b:types}{\edtypes}{noed}}}% needs '%'
+ \docsvlist{editor,editora,editorb,editorc}}%
+
+\newbibmacro*{test:trans:b}{%
+ \renewcommand*{\do}[1]{%
+ \ifnameundef{##1}
+ {\toggletrue{notrans}}%
+ {\togglefalse{notrans}%
+ \renewcommand*{\yeditor}{##1}%
+ \let\transtypes\empty
+ \forcsvfield{\listadd\transtypes}{\yeditor type}%
+ \usebibmacro{test:b:types}{\transtypes}{notrans}}}% needs '%'
+ \docsvlist{translator,translatora,translatorb}}%
+
+\newbibmacro*{test:b:types}[2]{%
+ \ifboolexpr{ test {\ifinlist{issuetitle}{#1}}
+ or test {\ifinlist{maintitle}{#1}}
+ or test {\ifinlist{series}{#1}}}
+ {\toggletrue{#2}}%
+ {\ifinlist{booktitle}{#1}
+ {\ifdefstring{\xtitle}{book}
+ {\usebibmacro{test:b:keys}{#1}{#2}}%
+ {\toggletrue{#2}}}
+ {\ifinlist{bookbooktitle}{#1}
+ {\ifdefstring{\xtitle}{bookbook}
+ {\usebibmacro{test:b:keys}{#1}{#2}}%
+ {\toggletrue{#2}}}
+ {\usebibmacro{test:b:keys}{#1}{#2}}}}}
+
+\newbibmacro*{test:b:keys}[2]{%
+ \xifinlist{\thefield{\xtitle titlekey}}{#1}
+ {\listbreak}%
+ {\toggletrue{#2}}}
+
+\newbibmacro*{test:swaptrans:b}[1]{%
+ \iftoggle{swaptrans:#1}
+ {\toggletrue{swaptrans}%
+ \usebibmacro{trans:b:combos}%
+ \usebibmacro{ed:b:combos}%
+ \togglefalse{swaptrans}}%
+ {\usebibmacro{ed:b:combos}%
+ \usebibmacro{trans:b:combos}}}
+
+\newbibmacro*{ed:b:combos}{%
\iftoggle{noed}
+ {\usebibmacro{ed:b:second}}%
+ {\usebibmacro{edcombos:a}%
+ \usebibmacro{pluga+etc}%
+ \usebibmacro{editoraddon}{editor}%
+ \usebibmacro{editoraddon}{editora}%
+ \usebibmacro{ed:b:second}%
+ \usebibmacro{editoraddon}{editora}}}
+
+\newbibmacro*{trans:b:combos}{%
+ \iftoggle{notrans}
{}
- {\usebibmacro{edcombos}%
+ {\usebibmacro{transcombos:a}%
\usebibmacro{pluga+etc}}}
\newbibmacro*{pluga+etc}{%
@@ -1086,141 +1059,64 @@
{\setunit{\addcomma\space}}%
{\newunit}}%
-% Tests for 'edtrans' macro.
-
-\newbibmacro*{test:ed}{%
- \iftoggle{edshift}
- {\usebibmacro{eda+edb+edc}}%
- {\ifnameundef{editor}
- {\usebibmacro{test:editora}}%
- {\usebibmacro{test:editor}%
- \iftoggle{noed}
- {\togglefalse{noed}%
- \usebibmacro{test:editora}}%
- {}}}}
-
-\newbibmacro*{eda+edb+edc}{%
- \ifnameundef{editor}
- {\ifnameundef{editora}
- {\ifnameundef{editorb}
- {\renewcommand*{\xeditor}{editorc}}%
- {\renewcommand*{\xeditor}{editorb}}%
- \usebibmacro{test:editorb}}%
- {\usebibmacro{test:editora}%
- \iftoggle{noed}
- {\togglefalse{noed}%
- \renewcommand*{\xeditor}{editorb}%
- \usebibmacro{test:editorb}}%
- {}}}
- {\usebibmacro{test:editor}%
- \iftoggle{noed}
- {\togglefalse{noed}%
- \usebibmacro{test:editora}}%
- {}}}
-
-\newbibmacro*{test:editor}{%
- \renewcommand*{\xeditor}{editor}%
- \usebibmacro{test:xeditor:a}{}%
+\newbibmacro*{ed:b:second}{%
+ \usebibmacro{test:ed:b}%
\iftoggle{noed}
{}
- {\ifdefstring{\xtitle}{book}
- {\toggletrue{noed}}%
- {}}}
+ {\usebibmacro{edcombos:a}%
+ \usebibmacro{pluga+etc}}}
-\newbibmacro*{test:editora}{%
- \renewcommand*{\xeditor}{editora}%
- \usebibmacro{test:xeditor:a}{}%
+% For editors and translators of an 'issuetitle', 'maintitle', or 'series'.
+
+\newbibmacro*{editors:c}[1]{%
+ \usebibmacro{test:ed:c}{#1}%
+ \usebibmacro{test:trans:c}{#1}%
+ \iftoggle{swaptrans:#1}
+ {\toggletrue{swaptrans}%
+ \usebibmacro{trans:c:combos}%
+ \usebibmacro{ed:c:combos}{#1}%
+ \togglefalse{swaptrans}}%
+ {\usebibmacro{ed:c:combos}{#1}%
+ \usebibmacro{trans:c:combos}}}
+
+\newbibmacro*{test:ed:c}[1]{%
+ \renewcommand*{\do}[1]{%
+ \ifnameundef{##1}
+ {\toggletrue{noed}}%
+ {\togglefalse{noed}%
+ \renewcommand*{\xeditor}{##1}%
+ \let\edtypes\empty
+ \forcsvfield{\listadd\edtypes}{\xeditor type}%
+ \ifinlist{#1}{\edtypes}
+ {\listbreak}%
+ {\toggletrue{noed}}}}% needs '%'
+ \docsvlist{editor,editora,editorb,editorc}}%
+
+\newbibmacro*{test:trans:c}[1]{%
+ \renewcommand*{\do}[1]{%
+ \ifnameundef{##1}
+ {\toggletrue{notrans}}%
+ {\togglefalse{notrans}%
+ \renewcommand*{\yeditor}{##1}%
+ \let\transtypes\empty
+ \forcsvfield{\listadd\transtypes}{\yeditor type}%
+ \ifinlist{#1}{\transtypes}
+ {\listbreak}%
+ {\toggletrue{notrans}}}}% needs '%'
+ \docsvlist{translator,translatora,translatorb}}%
+
+\newbibmacro*{ed:c:combos}[1]{%
\iftoggle{noed}
{}
- {\ifboolexpr{ test {\ifdefempty{\xtitle}}
- and ( togl {collection:ib}
- or togl {collection:icbk}
- or togl {collection:icib}
- or not togl {collection} )}
- {\toggletrue{noed}}%
- {\ifboolexpr{ test {\ifdefstring{\xtitle}{bookbook}}
- and togl {swapvol}
- and ( togl {collection:icib}
- or togl {collection:icbk} )}
- {\toggletrue{noed}}%
- {}}}}
-
-\newbibmacro*{test:editorb}{%
- \usebibmacro{test:xeditor:a}{}%
- \iftoggle{collection:icib}
- {\ifdefstring{\xtitle}{book}
- {\toggletrue{noed}}%
- {}}
- {}}
-
-\newbibmacro*{test:xeditor:b}{%
- \iffieldequalstr{\xeditor type}{maintitle}
- {\toggletrue{noed}}%
- {\ifdefempty{\xtitle}
- {\ifboolexpr{ test {\iffieldequalstr{\xeditor type}{compiler}}
- or test {\iffieldequalstr{\xeditor type}{comped}}
- or test {\iffieldequalstr{\xeditor type}{comprev}}
- or test {\iffieldequalstr{\xeditor type}{comptrans}}
- or test {\iffieldequalstr{\xeditor type}{compup}}
- or test {\iffieldequalstr{\xeditor type}{editor}}
- or test {\iffieldequalstr{\xeditor type}{edcomp}}
- or test {\iffieldequalstr{\xeditor type}{edrev}}
- or test {\iffieldequalstr{\xeditor type}{edtrans}}
- or test {\iffieldequalstr{\xeditor type}{edup}}
- or test {\iffieldequalstr{\xeditor type}{reviser}}
- or test {\iffieldequalstr{\xeditor type}{revcomp}}
- or test {\iffieldequalstr{\xeditor type}{reved}}
- or test {\iffieldequalstr{\xeditor type}{revtrans}}
- or test {\iffieldequalstr{\xeditor type}{revup}}
- or test {\iffieldequalstr{\xeditor type}{transcomp}}
- or test {\iffieldequalstr{\xeditor type}{transed}}
- or test {\iffieldequalstr{\xeditor type}{transrev}}
- or test {\iffieldequalstr{\xeditor type}{transup}}
- or test {\iffieldequalstr{\xeditor type}{updater}}
- or test {\iffieldequalstr{\xeditor type}{upcomp}}
- or test {\iffieldequalstr{\xeditor type}{uped}}
- or test {\iffieldequalstr{\xeditor type}{uprev}}
- or test {\iffieldequalstr{\xeditor type}{uptrans}}
- or test {\iffieldequalstr{\xeditor type}{title}}
- or test {\iffieldundef{\xeditor type}}}
- {}
- {\toggletrue{noed}}}
- {}}}
-
-\newbibmacro*{test:trans}{%
- \usebibmacro{trans+transa+transb}%
- \ifnameundef{\yeditor}
- {\toggletrue{notrans}}%
- {\iffieldequalstr{\yeditor type}{maintitle}
- {\toggletrue{notrans}}%
- {\ifdefstring{\yeditor}{translatorb}
- {\ifboolexpr{ test {\ifdefempty{\xtitle}}
- or test {\ifdefstring{\xtitle}{book}}}
- {\toggletrue{notrans}}%
- {}}
- {\ifdefstring{\yeditor}{translatora}
- {\ifboolexpr{ test {\ifdefempty{\xtitle}}
- or test {\ifdefstring{\xtitle}{bookbook}}}
- {\toggletrue{notrans}}%
- {}}
- {\ifboolexpr{ togl {collection}
- and togl {swapvol}
- and test {\ifdefstring{\xtitle}{book}}}
- {\toggletrue{notrans}}%
- {}}}}}}
-
-% For editors of an 'issuetitle', 'maintitle', or 'series'.
-
-\newbibmacro*{editortypes}[1]{%
- \ifboolexpr{ test {\iffieldequalstr{editortype}{#1}}
- or test {\iffieldequalstr{editoratype}{#1}}
- or test {\iffieldequalstr{editorbtype}{#1}}
- or test {\iffieldequalstr{editorctype}{#1}}}
{\usebibmacro{edtranspunct:c}%
- \renewcommand*{\cbx@bibstring}{editor}%
- \usebibmacro{editorlists}{#1}%
- \usebibmacro{pluga+printnames}}%
- {}}
+ \usebibmacro{edcombos:a}%
+ \usebibmacro{pluga+printnames}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{editoraddon}{editor}%
+ \usebibmacro{editoraddon}{editora}%
+ \usebibmacro{ed:c:second}{#1}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{editoraddon}{editora}}}
\newbibmacro*{edtranspunct:c}{%
\ifboolexpr{ togl {collection:bk}
@@ -1228,41 +1124,163 @@
{\newunit}%
{\setunit{\addcomma\space}}}
-\newbibmacro*{editorlists}[1]{%
- \iffieldequalstr{editortype}{#1}
- {\renewcommand*{\cbx@namelist}{editor}}%
- {\iffieldequalstr{editoratype}{#1}
- {\renewcommand*{\cbx@namelist}{editora}}%
- {\iffieldequalstr{editorbtype}{#1}
- {\renewcommand*{\cbx@namelist}{editorb}}%
- {\renewcommand*{\cbx@namelist}{editorc}}}}}
-
-% For translators of a 'maintitle'.
+\newbibmacro*{trans:c:combos}{%
+ \iftoggle{notrans}
+ {}
+ {\usebibmacro{edtranspunct:c}%
+ \usebibmacro{transcombos:a}%
+ \usebibmacro{pluga+printnames}}}
-\newbibmacro*{translatortypes}{%
- \ifboolexpr{ test {\iffieldequalstr{translatortype}{maintitle}}
- or test {\iffieldequalstr{translatoratype}{maintitle}}}
+\newbibmacro*{ed:c:second}[1]{%
+ \usebibmacro{test:ed:c}{#1}%
+ \iftoggle{noed}
+ {}
{\usebibmacro{edtranspunct:c}%
- \renewcommand*{\cbx@bibstring}{translator}%
- \iffieldequalstr{translatortype}{maintitle}
- {\renewcommand*{\cbx@namelist}{translator}}%
- {\renewcommand*{\cbx@namelist}{translatora}}%
- \usebibmacro{pluga+printnames}}%
- {}}
+ \usebibmacro{edcombos:a}%
+ \usebibmacro{pluga+printnames}}}
+
+% Macros common to 'editors:a', 'editors:b', and 'editors:c'.
-% A catchall for additional editorial information about a 'title'.
+\newbibmacro*{edcombos:a}{%
+ \renewcommand*{\cbx@namelist}{\xeditor}%
+ \ifnamesequal{\xeditor}{\yeditor}
+ {\clearname{\yeditor}%
+ \toggletrue{notrans}%
+ \usebibmacro{edcombos:b}{\edtypes}{edtrans}%
+ \iftoggle{atleastone}
+ {}
+ {\usebibmacro{edcombos:b}{\transtypes}{edtrans}}}
+ {\usebibmacro{edcombos:c}}}
-\newbibmacro*{editoraddon}{%
- \iffieldundef{editoraddon}
+\newbibmacro*{transcombos:a}{%
+ \renewcommand*{\cbx@namelist}{\yeditor}%
+ \ifnamesequal{\xeditor}{\yeditor}
+ {\clearname{\xeditor}%
+ \toggletrue{noed}%
+ \usebibmacro{transcombos:b}{\edtypes}{transed}%
+ \iftoggle{atleastone}
+ {}
+ {\usebibmacro{transcombos:b}{\transtypes}{transed}}}
+ {\usebibmacro{transcombos:c}}}
+
+\newbibmacro*{edcombos:b}[2]{%
+ \togglefalse{atleastone}%
+ \renewcommand*{\do}[1]{%
+ \ifinlist{##1}{#1}
+ {\toggletrue{atleastone}%
+ \listbreak}%
+ {}}% needs '%'
+ \docsvlist{comptrans,comp,compiler,comped,compex,comprev,compup,transcomp}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{comptrans}}%
+ {\docsvlist{extrans,ex,excomp,exed,expander,exrev,exup,transex}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{extrans}}%
+ {\docsvlist{revtrans,rev,revcomp,reved,revex,reviser,revup,transrev}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{revtrans}}%
+ {\docsvlist{uptrans,up,upcomp,updater,uped,upex,uprev,transup}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{uptrans}}%
+ {\renewcommand*{\cbx@bibstring}{#2}}}}}}
+
+\newbibmacro*{edcombos:c}{%
+ \renewcommand*{\do}[1]{%
+ \ifboolexpr{ test {\ifinlist{##1}{\edtypes}}
+ or test {\ifstrequal{##1}{editor}}}
+ {\usebibmacro{swapstrings}{##1}%
+ \listbreak}%
+ {}}% needs '%'
+ \docsvlist{comp,comped,compex,compiler,comprev,comptrans,compup,ed,edcomp,edex,edrev,edtrans,edup,
+ ex,excomp,exed,expander,exrev,extrans,exup,rev,revcomp,reved,revex,reviser,revtrans,
+ revup,transcomp,transed,transex,transrev,transup,up,upcomp,updater,uped,upex,uprev,
+ uptrans,editor}}%
+
+\newbibmacro*{transcombos:b}[2]{%
+ \togglefalse{atleastone}%
+ \renewcommand*{\do}[1]{%
+ \ifinlist{##1}{#1}
+ {\toggletrue{atleastone}%
+ \listbreak}%
+ {}}% needs '%'
+ \docsvlist{transcomp,comp,comped,compex,compiler,comprev,comptrans,compup}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{transcomp}}%
+ {\docsvlist{transex,ex,excomp,exed,expander,exrev,extrans,exup}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{transex}}%
+ {\docsvlist{transrev,rev,revcomp,reved,revex,reviser,revtrans,revup}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{transrev}}%
+ {\docsvlist{transup,up,upcomp,updater,uped,upex,uprev,uptrans}%
+ \iftoggle{atleastone}
+ {\renewcommand*{\cbx@bibstring}{transup}}%
+ {\renewcommand*{\cbx@bibstring}{#2}}}}}}
+
+\newbibmacro*{transcombos:c}{%
+ \renewcommand*{\do}[1]{%
+ \ifboolexpr{ test {\ifinlist{##1}{\transtypes}}
+ or test {\ifstrequal{##1}{translator}}}
+ {\usebibmacro{swapstrings}{##1}%
+ \listbreak}%
+ {}}% needs '%'
+ \docsvlist{comptrans,edtrans,extrans,revtrans,transcomp,transed,transex,transrev,transup,uptrans,
+ translator}}%
+
+\newbibmacro*{swapstrings}[1]{%
+ \iftoggle{swaptrans}
+ {\ifstrequal{#1}{comptrans}
+ {\renewcommand*{\cbx@bibstring}{transcomp}}%
+ {\ifstrequal{#1}{edtrans}
+ {\renewcommand*{\cbx@bibstring}{transed}}%
+ {\ifstrequal{#1}{extrans}
+ {\renewcommand*{\cbx@bibstring}{transex}}%
+ {\ifstrequal{#1}{revtrans}
+ {\renewcommand*{\cbx@bibstring}{transrev}}%
+ {\ifstrequal{#1}{transcomp}
+ {\renewcommand*{\cbx@bibstring}{comptrans}}%
+ {\ifstrequal{#1}{transed}
+ {\renewcommand*{\cbx@bibstring}{edtrans}}%
+ {\ifstrequal{#1}{transex}
+ {\renewcommand*{\cbx@bibstring}{extrans}}%
+ {\ifstrequal{#1}{transrev}
+ {\renewcommand*{\cbx@bibstring}{revtrans}}%
+ {\ifstrequal{#1}{transup}
+ {\renewcommand*{\cbx@bibstring}{uptrans}}%
+ {\ifstrequal{#1}{uptrans}
+ {\renewcommand*{\cbx@bibstring}{transup}}%
+ {\renewcommand*{\cbx@bibstring}{#1}}}}}}}}}}}}
+ {\renewcommand*{\cbx@bibstring}{#1}}}
+
+\newbibmacro*{addplus+etc}{%
+ \iftoggle{cbx:short}
{}
- {\nopunct\printfield{editoraddon}%
- \clearfield{editoraddon}}}
+ {\usebibmacro{addplus}%
+ \renewcommand*{\plugb}{%
+ \addcomma\space\bibsstring{\cbx@bibstring}}}}
+
+\newbibmacro*{addplus}{%
+ \ifnameundef{\xeditor}
+ {\ifnameundef{\yeditor}
+ {}
+ {\ifnumgreater{\value{\yeditor}}{1}
+ {\edef\cbx@bibstring{\cbx@bibstring +}}%
+ {}}}
+ {\ifnumgreater{\value{\xeditor}}{1}
+ {\edef\cbx@bibstring{\cbx@bibstring +}}%
+ {}}}
+
+\newbibmacro*{editoraddon}[1]{%
+ \ifboolexpr{ test {\iffieldundef{#1addon}}
+ or not test {\ifdefstring{\xeditor}{#1}}}
+ {}
+ {\nopunct\printfield{#1addon}%
+ \clearfield{#1addon}}}
%%%%%%%%%%%%%%%%%%%%%%%%
%% Names and Dashes %%
%%%%%%%%%%%%%%%%%%%%%%%%
-% HERE
\newbibmacro*{printnames+etc}{%
\ifboolexpr{ togl {authposition}
and togl {bibliography}}
@@ -1304,7 +1322,7 @@
\printfield[parens]{handle}%
\clearfield{handle}}}
-% In short citations, omit addons. See CMOS, 17th ed., 14.80 and
+% Omit addons in short citations. See CMOS, 17th ed., 14.80 and
% 14.209.
\newbibmacro*{nameaddon}{%
@@ -1333,7 +1351,7 @@
\let\anona\empty
\let\anonb\empty
\let\pluga\empty
- \let\plugb\empty}%
+ \let\plugb\empty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Titles and Subtitles %%
@@ -1442,7 +1460,7 @@
{\bibstring{in}\space
\renewcommand*{\xtitle}{issue}%
\usebibmacro{longtitle+titleaddon}%
- \usebibmacro{editortypes}{issuetitle}}%
+ \usebibmacro{editors:c}{issuetitle}}%
\newunit\bibstring{special}%
\setunit{\addcomma\space}}}
@@ -1886,7 +1904,7 @@
\usebibmacro{author+bookauthor+etc}%
\usebibmacro{title+labelyear}%
\usebibmacro{note}%
- \usebibmacro{edtrans}}%
+ \usebibmacro{editors:b}}%
\newbibmacro*{articles}{%
\newunit
@@ -1947,14 +1965,14 @@
\usebibmacro{longtitle+titleaddon}%
\toggletrue{edshift}%
\usebibmacro{byauthor}%
- \usebibmacro{edtrans}%
+ \usebibmacro{editors:b}%
\usebibmacro{volumes+bookseries+etc}}%
{\usebibmacro{title+labelyear}%
\usebibmacro{byauthor}%
\iffieldundef{maintitle}
{\usebibmacro{note+edition+etc}%
\usebibmacro{volumes+bookseries+etc}}%
- {\usebibmacro{edtrans}%
+ {\usebibmacro{editors:b}%
\usebibmacro{volumes+bookseries+etc}%
\usebibmacro{maintitle+note+etc}}}
\usebibmacro{date+loc+etc}%
@@ -1970,15 +1988,15 @@
{\usebibmacro{author+bookauthor+etc}%
\iffieldundef{title}
{\usebibmacro{booktitle}%
- \usebibmacro{edtrans}}%
+ \usebibmacro{editors:b}}%
{\ifboolexpr{ togl {collection:ib}
and togl {swapvol}
and not togl {collection:icib}}
{\usebibmacro{booktitle}%
- \usebibmacro{edtrans}}%
+ \usebibmacro{editors:b}}%
{\usebibmacro{title+labelyear}%
\usebibmacro{byauthor}%
- \usebibmacro{edtrans}%
+ \usebibmacro{editors:b}%
\usebibmacro{chapter+in}}}}
{\usebibmacro{supplement}%
\newunit
@@ -1996,7 +2014,7 @@
\ifcsdef{c@\thefield{crossref}}
{\setcounter{\thefield{crossref}}{0}}%
{\newcounter{\thefield{crossref}}}% needs '%'
- \usebibmacro{incollections}}}}
+ \usebibmacro{incollections}}}}
\newbibmacro*{websites}{%
\ifboolexpr{ test {\iffieldundef{blogtitle}}
@@ -2029,7 +2047,7 @@
\iftoggle{shortfirst}
{}
{\toggletrue{edshift}%
- \usebibmacro{edtrans}}}
+ \usebibmacro{editors:b}}}
\newbibmacro*{inst+loc+date}{%
\usebibmacro{thesis+type}%
@@ -2095,7 +2113,7 @@
\printfield{series}}%
\isdot\addcomma
\usebibmacro{seriesaddon}%
- \usebibmacro{editortypes}{series}%
+ \usebibmacro{editors:c}{series}%
\newunit}}%
\newbibmacro*{volume}{%
@@ -2197,11 +2215,7 @@
\usebibmacro{maintitle}%
\usebibmacro{note}%
\usebibmacro{edition}{}%
- \iftoggle{swaptrans}
- {\usebibmacro{translatortypes}%
- \usebibmacro{editortypes}{maintitle}}%
- {\usebibmacro{editortypes}{maintitle}%
- \usebibmacro{translatortypes}}}
+ \usebibmacro{editors:c}{maintitle}}%
\newbibmacro*{volume+number+etc}{%
\iffieldundef{\xvolume volume}
@@ -2247,14 +2261,13 @@
\newbibmacro*{note+edition+etc}{%
\usebibmacro{note}%
\usebibmacro{edition}{}%
- \usebibmacro{edtrans}}%
+ \usebibmacro{editors:b}}%
\newbibmacro*{edition}[1]{%
\iffieldundef{edition}
{}
{\iftoggle{edshift}
- {\setunit{\addcomma\space}%
- \togglefalse{edshift}}%
+ {\setunit{\addcomma\space}}%
{\newunit}%
\iffieldbibstring{edition}
{\bibstring{\thefield{edition}}}
@@ -2431,8 +2444,7 @@
\newunit
\printfield{series}%
\usebibmacro{seriesaddon}%
- \usebibmacro{editortypes}{series}%
- \setunit{\addcomma\space}}}
+ \usebibmacro{editors:c}{series}}}
\newbibmacro*{seriesaddon}{%
\iffieldundef{seriesaddon}
@@ -2468,10 +2480,8 @@
{}}
\newbibmacro*{other:number}{%
- \ifboolexpr{ test {\iffieldequalstr{editortype}{series}}
- or test {\iffieldequalstr{editoratype}{series}}
- or test {\iffieldequalstr{editorbtype}{series}}
- or test {\iffieldequalstr{editorctype}{series}}}
+ \ifboolexpr{ test {\ifinlist{series}{\edtypes}}
+ or test {\ifinlist{series}{\transtypes}}}
{\setunit{\addcomma\space}%
\printfield{number}}%
{\setunit{\addspace}% not '\setunit{\space}'
@@ -2513,7 +2523,7 @@
\usebibmacro{longtitle+titleaddon}%
\toggletrue{edshift}%
\usebibmacro{byauthor}%
- \usebibmacro{edtrans}}%
+ \usebibmacro{editors:b}}%
{\usebibmacro{volume+number+etc}%
\toggletrue{edshift}%
\usebibmacro{booktitle}%
@@ -2531,10 +2541,10 @@
\usebibmacro{volumes+bookseries+etc}%
\toggletrue{edshift}%
\usebibmacro{booktitle}%
- \usebibmacro{edtrans}}%
+ \usebibmacro{editors:b}}%
{\toggletrue{edshift}%
\usebibmacro{booktitle}%
- \usebibmacro{edtrans}%
+ \usebibmacro{editors:b}%
\renewcommand*{\xvolume}{book}%
\usebibmacro{volume+number+etc}%
\iftoggle{collection:icbk}
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx b/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx
index bb0ca85e87..f73248dcf5 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx
+++ b/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx
@@ -1,4 +1,4 @@
-% Last modified: Sat 30 Jan 2021 06:17:55 PM CST
+% Last modified: Sun 02 May 2021 01:14:43 PM CDT
% Permission is granted to copy, distribute and/or modify this
% software under the terms of the LaTeX Project Public License (LPPL),
@@ -11,7 +11,7 @@
% implied warranties of merchantability and fitness for a particular
% purpose.
-\ProvidesFile{windycity.cbx}[2021/01/30 Windy City citation style for
+\ProvidesFile{windycity.cbx}[2021/05/02 Windy City citation style for
biblatex]
\@ifpackagelater{biblatex}{2019/08/17}
{}
@@ -360,6 +360,22 @@
{}
{\newunit}}%
+% Thanks to David Fussner's biblatex-chicago for pointing me to this
+% command by Philipp Lehman. Source:
+% https://groups.google.com/forum/#!topic/comp.text.tex/kG003fkZK1I
+
+\newrobustcmd*{\iffieldstart}[2]{%
+ \iffieldundef{#1}
+ {\@secondoftwo}% originally '\@gobbletwo'
+ {\begingroup
+ \edef\@tempa{%
+ \long\def\noexpand\iffieldstart@i####1\detokenize{#2}####2}%
+ \@tempa\@nil{\endgroup\ifblank{##1}}%
+ \savefield*{#1}{\@tempa}%
+ \expandafter\iffieldstart@i\detokenize
+ \expandafter\expandafter\expandafter{%
+ \expandafter\@tempa\detokenize{#2}}\@nil}}%
+
\newbibmacro*{volume+page}{%
\iffieldundef{volume}
{}
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx b/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx
index 51a83057e7..1bdbc03b64 100644
--- a/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx
+++ b/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx
@@ -1,4 +1,4 @@
-\ProvidesFile{windycity.dbx}[2021/01/30 Windy City data model file for
+\ProvidesFile{windycity.dbx}[2021/05/02 Windy City data model file for
biblatex]
\DeclareDatamodelFields[type=field,datatype=literal]{%
blogsubtitle,
@@ -6,10 +6,13 @@
blogtitleaddon,
bookauthortype,
bookbooktitle,
- bookbookvolume,
bookvolume,
+ bookbookvolume,
+ booktitlekey,
+ bookbooktitlekey,
bookyear,
editoraddon,
+ editoraaddon,
endbookyear,
handle,
seriesaddon,
@@ -17,8 +20,10 @@
shortbooktitle,
shortmaintitle,
shortorganization,
+ titlekey,
+ translatortype,
translatoratype,
- translatortype}
+ translatorbtype}
\DeclareDatamodelFields[type=list,datatype=name]{%
preface,
shortbookauthor,