diff options
87 files changed, 10342 insertions, 1940 deletions
diff --git a/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bltxml b/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bltxml new file mode 100644 index 00000000000..78f60c71f05 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/biblatex/biblatex/biblatex-examples.bltxml @@ -0,0 +1,2851 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="biblatex-examples.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> +<!-- Auto-generated by Biber::Output::biblatexml --> + +<bltx:entries xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml"> + <bltx:entry id="tolstoy" entrytype="book"> + <bltx:names type="author"> + <bltx:name > + <bltx:namepart type="given" initial="Л">Лев</bltx:namepart> + <bltx:namepart type="patronymic" initial="Н">Николаевич</bltx:namepart> + <bltx:namepart type="family" initial="Т">Толстой</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:title>Война и мир</bltx:title> + <bltx:date>1877</bltx:date> + </bltx:entry> + <bltx:entry id="bulgakov" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="given" initial="М">Михаи́л</bltx:namepart> + <bltx:namepart type="patronymic" initial="А">Афана́сьевич</bltx:namepart> + <bltx:namepart type="family" initial="Б">Булга́ков</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:title>Мастер и Маргарита</bltx:title> + <bltx:date>1966</bltx:date> + </bltx:entry> + <bltx:entry id="westfahl:space" entrytype="incollection"> + <bltx:crossref>westfahl:frontier</bltx:crossref> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Westfahl</bltx:namepart> + <bltx:namepart type="given" initial="G">Gary</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A cross-referenced article from a \texttt{collection}. This is an \texttt{incollection} entry with a \texttt{crossref} field. Note the \texttt{subtitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:crossref>westfahl:frontier</bltx:crossref> + <bltx:indextitle>True Frontier, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>Confronting and Avoiding the Realities of Space in {American} Science Fiction Films</bltx:subtitle> + <bltx:title>The True Frontier</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>55</bltx:start> + <bltx:end>65</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + </bltx:entry> + <bltx:entry id="set" entrytype="set"> + <bltx:annotation>A \texttt{set} with three members. The \texttt{crossref} field in the \texttt{@set} entry and the \texttt{entryset} field in each set member entry is needed only when using BibTeX as the backend</bltx:annotation> + </bltx:entry> + <bltx:entry id="stdmodel" entrytype="set"> + <bltx:annotation>A \texttt{set} with three members discussing the standard model of particle physics. The \texttt{crossref} field in the \texttt{@set} entry and the \texttt{entryset} field in each set member entry is needed only when using BibTeX as the backend</bltx:annotation> + </bltx:entry> + <bltx:entry id="aksin" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aksın</bltx:namepart> + <bltx:namepart type="given" initial="Ö">Özge</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="T">Türkmen</bltx:namepart> + <bltx:namepart type="given" initial="H">Hayati</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="A">Artok</bltx:namepart> + <bltx:namepart type="given" initial="L">Levent</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Ç">Çetinkaya</bltx:namepart> + <bltx:namepart type="given" initial="B">Bekir</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N">Ni</bltx:namepart> + <bltx:namepart type="given" initial="C">Chaoying</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Büyükgüngör</bltx:namepart> + <bltx:namepart type="given" initial="O">Orhan</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Ö">Özkal</bltx:namepart> + <bltx:namepart type="given" initial="E">Erhan</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:indextitle>Effect of immobilization on catalytic characteristics</bltx:indextitle> + <bltx:journaltitle>J.~Organomet. Chem.</bltx:journaltitle> + <bltx:number>13</bltx:number> + <bltx:title>Effect of immobilization on catalytic characteristics of saturated {Pd-N}-heterocyclic carbenes in {Mizoroki-Heck} reactions</bltx:title> + <bltx:volume>691</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>3027</bltx:start> + <bltx:end>3036</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="angenendt" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Angenendt</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A German article in a French journal. Apart from that, a typical \texttt{article} entry. Note the \texttt{indextitle} field</bltx:annotation> + <bltx:indextitle>In Honore Salvatoris</bltx:indextitle> + <bltx:journaltitle>Revue d'Histoire Ecclésiastique</bltx:journaltitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>In Honore Salvatoris</bltx:shorttitle> + <bltx:title>In Honore Salvatoris~-- Vom Sinn und Unsinn der Patrozinienkunde</bltx:title> + <bltx:volume>97</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>431</bltx:start> + <bltx:end>456</bltx:end> + </bltx:item> + <bltx:item> + <bltx:start>791</bltx:start> + <bltx:end>823</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2002</bltx:date> + </bltx:entry> + <bltx:entry id="baez/article" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Baez</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">John</bltx:namepart> + <bltx:namepart initial="C">C.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Lauda</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="A">Aaron</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} with \texttt{eprint} and \texttt{eprinttype} fields. Note that the arXiv reference is transformed into a clickable link if \texttt{hyperref} support has been enabled. Compare \texttt{baez\slash online}, which is the same item given as an \texttt{online} entry</bltx:annotation> + <bltx:eprint>math/0307200v3</bltx:eprint> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:journaltitle>Theory and Applications of Categories</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Higher-Dimensional Algebra {V}: 2-Groups</bltx:title> + <bltx:version>3</bltx:version> + <bltx:volume>12</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>423</bltx:start> + <bltx:end>491</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2004</bltx:date> + </bltx:entry> + <bltx:entry id="bertram" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Bertram</bltx:namepart> + <bltx:namepart type="given" initial="A">Aaron</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wentworth</bltx:namepart> + <bltx:namepart type="given" initial="R">Richard</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with a \texttt{volume} and a \texttt{number} field</bltx:annotation> + <bltx:journaltitle>J.~Amer. Math. Soc.</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>2</bltx:number> + <bltx:shorttitle>Gromov invariants</bltx:shorttitle> + <bltx:title>Gromov invariants for holomorphic maps on {Riemann} surfaces</bltx:title> + <bltx:volume>9</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>529</bltx:start> + <bltx:end>571</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1996</bltx:date> + </bltx:entry> + <bltx:entry id="doody" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="D">Doody</bltx:namepart> + <bltx:namepart type="given" initial="T">Terrence</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry cited as an excerpt from a \texttt{collection} entry. Note the format of the \texttt{related} and \texttt{relatedstring} fields</bltx:annotation> + <bltx:journaltitle>The Journal of Narrative Technique</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>3</bltx:number> + <bltx:relatedstring>\autocap{e}xcerpt in</bltx:relatedstring> + <bltx:title>Hemingway's Style and {Jake's} Narration</bltx:title> + <bltx:volume>4</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>212</bltx:start> + <bltx:end>225</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1974</bltx:date> + </bltx:entry> + <bltx:entry id="matuz:doody" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="M">Matuz</bltx:namepart> + <bltx:namepart type="given" initial="R">Roger</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Detroit</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Gale</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{collection} entry providing the excerpt information for the \texttt{doody} entry. Note the format of the \texttt{pages} field</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Contemporary Literary Criticism</bltx:title> + <bltx:volume>61</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>204</bltx:start> + <bltx:end>208</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1990</bltx:date> + </bltx:entry> + <bltx:entry id="gillies" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gillies</bltx:namepart> + <bltx:namepart type="given" initial="A">Alexander</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with a \texttt{series} and a \texttt{volume} field. Note that format of the \texttt{series} field in the database file</bltx:annotation> + <bltx:journaltitle>Publications of the English Goethe Society</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:series>newseries</bltx:series> + <bltx:title>Herder and the Preparation of {Goethe's} Idea of World Literature</bltx:title> + <bltx:volume>9</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>46</bltx:start> + <bltx:end>67</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1933</bltx:date> + </bltx:entry> + <bltx:entry id="glashow" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Glashow</bltx:namepart> + <bltx:namepart type="given" initial="S">Sheldon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:journaltitle>Nucl.~Phys.</bltx:journaltitle> + <bltx:title>Partial Symmetries of Weak Interactions</bltx:title> + <bltx:volume>22</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>579</bltx:start> + <bltx:end>588</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1961</bltx:date> + </bltx:entry> + <bltx:entry id="herrmann" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Herrmann</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">Wolfgang</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Ö">Öfele</bltx:namepart> + <bltx:namepart type="given" initial="K">Karl</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Schneider</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Sabine</bltx:namepart> + <bltx:namepart initial="K">K.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Herdtweck</bltx:namepart> + <bltx:namepart type="given" initial="E">Eberhardt</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Hoffmann</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Stephan</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:indextitle>Carbocyclic carbene as an efficient catalyst, A</bltx:indextitle> + <bltx:journaltitle>Angew.~Chem. Int.~Ed.</bltx:journaltitle> + <bltx:number>23</bltx:number> + <bltx:title>A carbocyclic carbene as an efficient catalyst ligand for {C--C} coupling reactions</bltx:title> + <bltx:volume>45</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>3859</bltx:start> + <bltx:end>3862</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="kastenholz" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kastenholz</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">M.</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Hünenberger</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="P">Philippe</bltx:namepart> + <bltx:namepart initial="H">H.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>The computation of ionic solvation free energies from atomistic simulations is a surprisingly difficult problem that has found no satisfactory solution for more than 15 years. The reason is that the charging free energies evaluated from such simulations are affected by very large errors. One of these is related to the choice of a specific convention for summing up the contributions of solvent charges to the electrostatic potential in the ionic cavity, namely, on the basis of point charges within entire solvent molecules (M scheme) or on the basis of individual point charges (P scheme). The use of an inappropriate convention may lead to a charge-independent offset in the calculated potential, which depends on the details of the summation scheme, on the quadrupole-moment trace of the solvent molecule, and on the approximate form used to represent electrostatic interactions in the system. However, whether the M or P scheme (if any) represents the appropriate convention is still a matter of on-going debate. The goal of the present article is to settle this long-standing controversy by carefully analyzing (both analytically and numerically) the properties of the electrostatic potential in molecular liquids (and inside cavities within them).</bltx:abstract> + <bltx:annotation>An \texttt{article} entry with an \texttt{eid} and a \texttt{doi} field. Note that the \textsc{doi} is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:doi>10.1063/1.2172593</bltx:doi> + <bltx:eid>124106</bltx:eid> + <bltx:indextitle>Computation of ionic solvation free energies</bltx:indextitle> + <bltx:journaltitle>J.~Chem. Phys.</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>{I}. {The} electrostatic potential in molecular liquids</bltx:subtitle> + <bltx:title>Computation of methodology\hyphen independent ionic solvation free energies from molecular simulations</bltx:title> + <bltx:volume>124</bltx:volume> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="murray" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hostetler</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Michael</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wingate</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">Julia</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Z">Zhong</bltx:namepart> + <bltx:namepart type="given" initial="C-J">Chuan-Jian</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Harris</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">Jay</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="V">Vachet</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Richard</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Clark</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Michael</bltx:namepart> + <bltx:namepart initial="R">R.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Londono</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">J.</bltx:namepart> + <bltx:namepart initial="D">David</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="G">Green</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Stephen</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Stokes</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">Jennifer</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wignall</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">George</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="G">Glish</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gary</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="P">Porter</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Marc</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Evans</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="N">Neal</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Murray</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Royce</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with \arabic{author} authors. By default, long author and editor lists are automatically truncated. This is configurable</bltx:annotation> + <bltx:indextitle>Alkanethiolate gold cluster molecules</bltx:indextitle> + <bltx:journaltitle>Langmuir</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>1</bltx:number> + <bltx:shorttitle>Alkanethiolate gold cluster molecules</bltx:shorttitle> + <bltx:subtitle>Core and monolayer properties as a function of core size</bltx:subtitle> + <bltx:title>Alkanethiolate gold cluster molecules with core diameters from 1.5 to 5.2~{nm}</bltx:title> + <bltx:volume>14</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>17</bltx:start> + <bltx:end>30</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="reese" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="R">Reese</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="T">Trevor</bltx:namepart> + <bltx:namepart initial="R">R.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with a \texttt{series} and a \texttt{volume} field. Note the format of the series. If the value of the \texttt{series} field is an integer, this number is printed as an ordinal and the string \enquote*{series} is appended automatically</bltx:annotation> + <bltx:journaltitle>William and Mary Quarterly</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:series>3</bltx:series> + <bltx:title>Georgia in {Anglo-Spanish} Diplomacy, 1736--1739</bltx:title> + <bltx:volume>15</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>168</bltx:start> + <bltx:end>190</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1958</bltx:date> + </bltx:entry> + <bltx:entry id="sarfraz" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Sarfraz</bltx:namepart> + <bltx:namepart type="given" initial="M">M.</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Razzak</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">M.</bltx:namepart> + <bltx:namepart initial="F">F.</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with an \texttt{issn} field</bltx:annotation> + <bltx:issn>0097-8493</bltx:issn> + <bltx:journaltitle>Computers and Graphics</bltx:journaltitle> + <bltx:number>5</bltx:number> + <bltx:title>Technical section: {An} algorithm for automatic capturing of the font outlines</bltx:title> + <bltx:volume>26</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>795</bltx:start> + <bltx:end>804</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2002</bltx:date> + </bltx:entry> + <bltx:entry id="shore" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Shore</bltx:namepart> + <bltx:namepart type="given" initial="B">Bradd</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with \texttt{series}, \texttt{volume}, and \texttt{number} fields. Note the format of the \texttt{series} which is a localization key</bltx:annotation> + <bltx:journaltitle>American Anthropologist</bltx:journaltitle> + <bltx:number>1</bltx:number> + <bltx:series>newseries</bltx:series> + <bltx:subtitle>Meaning Construction and Cultural Cognition</bltx:subtitle> + <bltx:title>Twice-Born, Once Conceived</bltx:title> + <bltx:volume>93</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>9</bltx:start> + <bltx:end>27</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1991-03</bltx:date> + </bltx:entry> + <bltx:entry id="sigfridsson" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Sigfridsson</bltx:namepart> + <bltx:namepart type="given" initial="E">Emma</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Ryde</bltx:namepart> + <bltx:namepart type="given" initial="U">Ulf</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>Four methods for deriving partial atomic charges from the quantum chemical electrostatic potential (CHELP, CHELPG, Merz-Kollman, and RESP) have been compared and critically evaluated. It is shown that charges strongly depend on how and where the potential points are selected. Two alternative methods are suggested to avoid the arbitrariness in the point-selection schemes and van der Waals exclusion radii: CHELP-BOW, which also estimates the charges from the electrostatic potential, but with potential points that are Boltzmann-weighted after their occurrence in actual simulations using the energy function of the program in which the charges will be used, and CHELMO, which estimates the charges directly from the electrostatic multipole moments. Different criteria for the quality of the charges are discussed.</bltx:abstract> + <bltx:annotation>An \texttt{article} entry with \texttt{volume}, \texttt{number}, and \texttt{doi} fields. Note that the \textsc{doi} is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:doi>10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P</bltx:doi> + <bltx:indextitle>Methods for deriving atomic charges</bltx:indextitle> + <bltx:journaltitle>Journal of Computational Chemistry</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>4</bltx:number> + <bltx:title>Comparison of methods for deriving atomic charges from the electrostatic potential and moments</bltx:title> + <bltx:volume>19</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>377</bltx:start> + <bltx:end>395</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="spiegelberg" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Spiegelberg</bltx:namepart> + <bltx:namepart type="given" initial="H">Herbert</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry. Note the \texttt{sorttitle} and \texttt{indexsorttitle} fields and the markup of the quotes in the database file</bltx:annotation> + <bltx:indexsorttitle>Intention und Intentionalitat in der Scholastik, bei Brentano und Husserl</bltx:indexsorttitle> + <bltx:journaltitle>Studia Philosophica</bltx:journaltitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Intention und Intentionalität</bltx:shorttitle> + <bltx:sorttitle>Intention und Intentionalitat in der Scholastik, bei Brentano und Husserl</bltx:sorttitle> + <bltx:title>\mkbibquote{Intention} und \mkbibquote{Intentionalität} in der Scholastik, bei Brentano und Husserl</bltx:title> + <bltx:volume>29</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>189</bltx:start> + <bltx:end>216</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1969</bltx:date> + </bltx:entry> + <bltx:entry id="springer" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Springer</bltx:namepart> + <bltx:namepart type="given" initial="O">Otto</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A plain \texttt{article} entry</bltx:annotation> + <bltx:journaltitle>Mediaeval Studies</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Mediaeval Pilgrim Routes</bltx:shorttitle> + <bltx:title>Mediaeval Pilgrim Routes from {Scandinavia} to {Rome}</bltx:title> + <bltx:volume>12</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>92</bltx:start> + <bltx:end>122</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1950</bltx:date> + </bltx:entry> + <bltx:entry id="weinberg" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Weinberg</bltx:namepart> + <bltx:namepart type="given" initial="S">Steven</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:journaltitle>Phys.~Rev.~Lett.</bltx:journaltitle> + <bltx:title>A Model of Leptons</bltx:title> + <bltx:volume>19</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>1264</bltx:start> + <bltx:end>1266</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1967</bltx:date> + </bltx:entry> + <bltx:entry id="yoon" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="Y">Yoon</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Myeong</bltx:namepart> + <bltx:namepart initial="S">S.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Ryu</bltx:namepart> + <bltx:namepart type="given" initial="D">Dowook</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="K">Kim</bltx:namepart> + <bltx:namepart type="given" initial="J">Jeongryul</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="A">Ahn</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="K">Kyo</bltx:namepart> + <bltx:namepart initial="H">Han</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:indextitle>Palladium pincer complexes</bltx:indextitle> + <bltx:journaltitle>Organometallics</bltx:journaltitle> + <bltx:number>10</bltx:number> + <bltx:title>Palladium pincer complexes with reduced bond angle strain: efficient catalysts for the {Heck} reaction</bltx:title> + <bltx:volume>25</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>2409</bltx:start> + <bltx:end>2411</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:anima" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hicks</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Robert</bltx:namepart> + <bltx:namepart initial="D">Drew</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Cambridge</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Cambridge University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with an \texttt{author} and an \texttt{editor}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:title>De Anima</bltx:title> + <bltx:date>1907</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:physics" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="W">Wicksteed</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="P">P.</bltx:namepart> + <bltx:namepart initial="H">H.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Cornford</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="F">F.</bltx:namepart> + <bltx:namepart initial="M">M.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>G. P. Putnam</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with a \texttt{translator} field</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Physics</bltx:shorttitle> + <bltx:title>Physics</bltx:title> + <bltx:date>1929</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:poetics" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="L">Lucas</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">D.</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Oxford</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Clarendon Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with an \texttt{author} and an \texttt{editor} as well as a \texttt{series} field</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:series>Clarendon {Aristotle}</bltx:series> + <bltx:shorttitle>Poetics</bltx:shorttitle> + <bltx:title>Poetics</bltx:title> + <bltx:date>1968</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:rhetoric" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="commentator"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cope</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="E">Edward</bltx:namepart> + <bltx:namepart initial="M">Meredith</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cope</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="E">Edward</bltx:namepart> + <bltx:namepart initial="M">Meredith</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:publisher> + <bltx:item>Cambridge University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A commented edition. Note the concatenation of the \texttt{editor} and \texttt{commentator} fields as well as the \texttt{volumes}, \texttt{sorttitle}, and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Rhetoric of {Aristotle}, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Rhetoric</bltx:shorttitle> + <bltx:sorttitle>Rhetoric of Aristotle</bltx:sorttitle> + <bltx:title>The Rhetoric of {Aristotle} with a commentary by the late {Edward Meredith Cope}</bltx:title> + <bltx:volumes>3</bltx:volumes> + <bltx:date>1877</bltx:date> + </bltx:entry> + <bltx:entry id="augustine" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Augustine</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Robert</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Marcel Dekker</bltx:item> + </bltx:publisher> + <bltx:annotation>A plain \texttt{book} entry</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Heterogeneous catalysis</bltx:shorttitle> + <bltx:title>Heterogeneous catalysis for the synthetic chemist</bltx:title> + <bltx:date>1995</bltx:date> + </bltx:entry> + <bltx:entry id="averroes/bland" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Averroes</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="B">Bland</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="K">Kalman</bltx:namepart> + <bltx:namepart initial="P">P.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="B">Bland</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="K">Kalman</bltx:namepart> + <bltx:namepart initial="P">P.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Jewish Theological Seminary of America</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with a \texttt{series} and a \texttt{number}. Note the concatenation of the \texttt{editor} and \texttt{translator} fields as well as the \texttt{indextitle} field</bltx:annotation> + <bltx:indextitle>Epistle on the Possibility of Conjunction, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>7</bltx:number> + <bltx:series>Moreshet: Studies in {Jewish} History, Literature and Thought</bltx:series> + <bltx:shorttitle>Possibility of Conjunction</bltx:shorttitle> + <bltx:title>The Epistle on the Possibility of Conjunction with the Active Intellect by {Ibn Rushd} with the Commentary of {Moses Narboni}</bltx:title> + <bltx:date>1982</bltx:date> + </bltx:entry> + <bltx:entry id="averroes/hannes" entrytype="book"> + <bltx:names type="annotator"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hannes</bltx:namepart> + <bltx:namepart type="given" initial="L">Ludwig</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Averroes</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hannes</bltx:namepart> + <bltx:namepart type="given" initial="L">Ludwig</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hannes</bltx:namepart> + <bltx:namepart type="given" initial="L">Ludwig</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Halle an der Saale</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>C.~A. Kaemmerer</bltx:item> + </bltx:publisher> + <bltx:annotation>An annotated edition. Note the concatenation of the \texttt{editor}, \texttt{translator}, and \texttt{annotator} fields. Also note the \texttt{shorttitle}, \texttt{indextitle}, \texttt{sorttitle}, and \texttt{indexsorttitle} fields</bltx:annotation> + <bltx:indexsorttitle>Uber die Moglichkeit der Conjunktion</bltx:indexsorttitle> + <bltx:indextitle>Über die Möglichkeit der Conjunktion</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Über die Möglichkeit der Conjunktion</bltx:shorttitle> + <bltx:sorttitle>Uber die Moglichkeit der Conjunktion</bltx:sorttitle> + <bltx:title>Des Averroës Abhandlung: \mkbibquote{Über die Möglichkeit der Conjunktion} oder \mkbibquote{Über den materiellen Intellekt}</bltx:title> + <bltx:date>1892</bltx:date> + </bltx:entry> + <bltx:entry id="averroes/hercz" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Averroes</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hercz</bltx:namepart> + <bltx:namepart type="given" initial="J">J.</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hercz</bltx:namepart> + <bltx:namepart type="given" initial="J">J.</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>S.~Hermann</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the concatenation of the \texttt{editor} and \texttt{translator} fields as well as the \texttt{indextitle} and \texttt{indexsorttitle} fields</bltx:annotation> + <bltx:indexsorttitle>Drei Abhandlungen uber die Conjunction</bltx:indexsorttitle> + <bltx:indextitle>Drei Abhandlungen über die Conjunction</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Drei Abhandlungen</bltx:shorttitle> + <bltx:subtitle>Von Averroes (Vater und Sohn), aus dem Arabischen übersetzt von Samuel Ibn Tibbon</bltx:subtitle> + <bltx:title>Drei Abhandlungen über die Conjunction des separaten Intellects mit dem Menschen</bltx:title> + <bltx:date>1869</bltx:date> + </bltx:entry> + <bltx:entry id="cicero" entrytype="book"> + <bltx:names type="afterword"> + <bltx:name> + <bltx:namepart type="family" initial="T">Thraede</bltx:namepart> + <bltx:namepart type="given" initial="K">Klaus</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cicero</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Marcus</bltx:namepart> + <bltx:namepart initial="T">Tullius</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="B-S">Blank-Sangmeister</bltx:namepart> + <bltx:namepart type="given" initial="U">Ursula</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="B-S">Blank-Sangmeister</bltx:namepart> + <bltx:namepart type="given" initial="U">Ursula</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:language> + <bltx:item>langlatin</bltx:item> + <bltx:item>langgerman</bltx:item> + </bltx:language> + <bltx:location> + <bltx:item>Stuttgart</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Reclam</bltx:item> + </bltx:publisher> + <bltx:annotation>A bilingual edition of Cicero's \emph{De natura deorum}, with a German translation. Note the format of the \texttt{language} field in the database file, the concatenation of the \texttt{editor} and \texttt{translator} fields, and the \texttt{afterword} field</bltx:annotation> + <bltx:indextitle>De natura deorum</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>De natura deorum</bltx:shorttitle> + <bltx:title>De natura deorum. Über das Wesen der Götter</bltx:title> + <bltx:date>1995</bltx:date> + </bltx:entry> + <bltx:entry id="coleridge" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Coleridge</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Samuel</bltx:namepart> + <bltx:namepart initial="T">Taylor</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Coburn</bltx:namepart> + <bltx:namepart type="given" initial="K">Kathleen</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Engell</bltx:namepart> + <bltx:namepart type="given" initial="J">James</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Bate</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">W.</bltx:namepart> + <bltx:namepart initial="J">Jackson</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Routledge {and} Kegan Paul</bltx:item> + </bltx:publisher> + <bltx:annotation>One (partial) volume of a multivolume book. This is a \texttt{book} entry with a \texttt{volume} and a \texttt{part} field which explicitly refers to the second (physical) part of the seventh (logical) volume. Also note the \texttt{series} and \texttt{number} fields</bltx:annotation> + <bltx:indextitle>Biographia literaria</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:maintitle>The collected works of {Samuel Taylor Coleridge}</bltx:maintitle> + <bltx:number>75</bltx:number> + <bltx:part>2</bltx:part> + <bltx:series>Bollingen Series</bltx:series> + <bltx:shorttitle>Biographia literaria</bltx:shorttitle> + <bltx:title>Biographia literaria, or {Biographical} sketches of my literary life and opinions</bltx:title> + <bltx:volume>7</bltx:volume> + <bltx:date>1983</bltx:date> + </bltx:entry> + <bltx:entry id="companion" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Goossens</bltx:namepart> + <bltx:namepart type="given" initial="M">Michel</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Mittelbach</bltx:namepart> + <bltx:namepart type="given" initial="F">Frank</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Samarin</bltx:namepart> + <bltx:namepart type="given" initial="A">Alexander</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>A book with three authors. Note the formatting of the author list. By default, only the first name is reversed in the bibliography</bltx:annotation> + <bltx:edition>1</bltx:edition> + <bltx:indextitle>LaTeX Companion, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:pagetotal>528</bltx:pagetotal> + <bltx:shorttitle>LaTeX Companion</bltx:shorttitle> + <bltx:sorttitle>LaTeX Companion</bltx:sorttitle> + <bltx:title>The {LaTeX} Companion</bltx:title> + <bltx:date>1994</bltx:date> + </bltx:entry> + <bltx:entry id="cotton" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cotton</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="F">Frank</bltx:namepart> + <bltx:namepart initial="A">Albert</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wilkinson</bltx:namepart> + <bltx:namepart type="given" initial="G">Geoffrey</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Murillio</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="C">Carlos</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Bochmann</bltx:namepart> + <bltx:namepart type="given" initial="M">Manfred</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Chichester</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Wiley</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with \arabic{author} authors and an \texttt{edition} field. By default, long \texttt{author} and \texttt{editor} lists are automatically truncated. This is configurable</bltx:annotation> + <bltx:edition>6</bltx:edition> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:title>Advanced inorganic chemistry</bltx:title> + <bltx:date>1999</bltx:date> + </bltx:entry> + <bltx:entry id="gerhardt" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gerhardt</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Michael</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{book} entry. Note the format of the \texttt{location} field as well as the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Federal Appointments Process, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Federal Appointments Process</bltx:shorttitle> + <bltx:sorttitle>Federal Appointments Process</bltx:sorttitle> + <bltx:subtitle>A Constitutional and Historical Analysis</bltx:subtitle> + <bltx:title>The Federal Appointments Process</bltx:title> + <bltx:date>2000</bltx:date> + </bltx:entry> + <bltx:entry id="gonzalez" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gonzalez</bltx:namepart> + <bltx:namepart type="given" initial="R">Ray</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Tucson</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>The University of Arizona Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A collection of short stories. This is a \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indextitle} fields in the database file. There's also an \texttt{isbn} field</bltx:annotation> + <bltx:indextitle>Ghost of {John Wayne} and Other Stories, The</bltx:indextitle> + <bltx:isbn>0-816-52066-6</bltx:isbn> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Ghost of {John Wayne}</bltx:shorttitle> + <bltx:sorttitle>Ghost of John Wayne and Other Stories</bltx:sorttitle> + <bltx:title>The Ghost of {John Wayne} and Other Stories</bltx:title> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="hammond" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hammond</bltx:namepart> + <bltx:namepart type="given" initial="C">Christopher</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Oxford</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>International Union of Crystallography</bltx:item> + <bltx:item>Oxford University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indextitle} fields as well as the format of the \texttt{publisher} field</bltx:annotation> + <bltx:indextitle>Basics of crystallography and diffraction, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Crystallography and diffraction</bltx:shorttitle> + <bltx:sorttitle>Basics of crystallography and diffraction</bltx:sorttitle> + <bltx:title>The basics of crystallography and diffraction</bltx:title> + <bltx:date>1997</bltx:date> + </bltx:entry> + <bltx:entry id="iliad" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Homer</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="introduction"> + <bltx:name> + <bltx:namepart type="family" initial="L">Latacz</bltx:namepart> + <bltx:namepart type="given" initial="J">Joachim</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="S">Schadewaldt</bltx:namepart> + <bltx:namepart type="given" initial="W">Wolfgang</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Düsseldorf</bltx:item> + <bltx:item>Zürich</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Artemis \& Winkler</bltx:item> + </bltx:publisher> + <bltx:annotation>A German translation of the \emph{Iliad}. Note the \texttt{translator} and \texttt{introduction} fields and the format of the \texttt{location} field in the database file. Also note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:edition>3</bltx:edition> + <bltx:indextitle>Ilias, Die</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Ilias</bltx:shorttitle> + <bltx:sorttitle>Ilias</bltx:sorttitle> + <bltx:title>Die Ilias</bltx:title> + <bltx:date>2004</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>A five-volume book cited as a whole. This is a \texttt{book} entry, note the \texttt{volumes} field</bltx:annotation> + <bltx:indexsorttitle>Computers & Typesetting</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:sorttitle>Computers & Typesetting</bltx:sorttitle> + <bltx:sortyear>1984-0</bltx:sortyear> + <bltx:title>Computers \& Typesetting</bltx:title> + <bltx:volumes>5</bltx:volumes> + <bltx:date> + <bltx:start>1984</bltx:start> + <bltx:end>1986</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:a" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The first volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields. We want this volume to be listed after the entry referring to the entire five-volume set. Also note the \texttt{indextitle} and \texttt{indexsorttitle} fields. Indexing packages that don't generate robust index entries require some control sequences to be protected from expansion</bltx:annotation> + <bltx:indexsorttitle>The TeXbook</bltx:indexsorttitle> + <bltx:indextitle>\protect\TeX book, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>\TeX book</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting A</bltx:sorttitle> + <bltx:sortyear>1984-1</bltx:sortyear> + <bltx:title>The {\TeX} book</bltx:title> + <bltx:volume>A</bltx:volume> + <bltx:date>1984</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:b" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The second volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields. Also note the \texttt{indexsorttitle} field</bltx:annotation> + <bltx:indexsorttitle>TeX: The Program</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>\TeX</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting B</bltx:sorttitle> + <bltx:sortyear>1986-1</bltx:sortyear> + <bltx:title>\TeX: The Program</bltx:title> + <bltx:volume>B</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:c" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The third volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields as well as the \texttt{indextitle} field</bltx:annotation> + <bltx:indextitle>METAFONTbook, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>METAFONTbook</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting C</bltx:sorttitle> + <bltx:sortyear>1986-2</bltx:sortyear> + <bltx:title>The {METAFONTbook}</bltx:title> + <bltx:volume>C</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:d" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The fourth volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>METAFONT</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting D</bltx:sorttitle> + <bltx:sortyear>1986-3</bltx:sortyear> + <bltx:title>METAFONT: The Program</bltx:title> + <bltx:volume>D</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:e" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The fifth volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:sorttitle>Computers & Typesetting E</bltx:sorttitle> + <bltx:sortyear>1986-4</bltx:sortyear> + <bltx:title>{Computer Modern} Typefaces</bltx:title> + <bltx:volume>E</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:related" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>A five-volume book cited as a whole and related to its individual volumes. Note the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:indexsorttitle>Computers & Typesetting</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:relatedtype>multivolume</bltx:relatedtype> + <bltx:sorttitle>Computers & Typesetting</bltx:sorttitle> + <bltx:sortyear>1984-0</bltx:sortyear> + <bltx:title>Computers \& Typesetting</bltx:title> + <bltx:volumes>5</bltx:volumes> + <bltx:date> + <bltx:start>1984</bltx:start> + <bltx:end>1986</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="kullback" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kullback</bltx:namepart> + <bltx:namepart type="given" initial="S">Solomon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>John Wiley \& Sons</bltx:item> + </bltx:publisher> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Information Theory and Statistics</bltx:title> + <bltx:date>1959</bltx:date> + </bltx:entry> + <bltx:entry id="kullback:reprint" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kullback</bltx:namepart> + <bltx:namepart type="given" initial="S">Solomon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:origpublisher> + <bltx:item>John Wiley \& Sons</bltx:item> + </bltx:origpublisher> + <bltx:publisher> + <bltx:item>Dover Publications</bltx:item> + </bltx:publisher> + <bltx:annotation>A reprint of the \texttt{kullback} entry. Note the format of \texttt{origyear} and \texttt{origpublisher}. These fields are not used by the standard bibliography styles</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Information Theory and Statistics</bltx:title> + <bltx:date>1997</bltx:date> + <bltx:date type="orig">1959</bltx:date> + </bltx:entry> + <bltx:entry id="kullback:related" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kullback</bltx:namepart> + <bltx:namepart type="given" initial="S">Solomon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Dover Publications</bltx:item> + </bltx:publisher> + <bltx:annotation>A reprint of the \texttt{kullback} entry. Note the format of the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:relatedtype>origpubin</bltx:relatedtype> + <bltx:title>Information Theory and Statistics</bltx:title> + <bltx:date>1997</bltx:date> + </bltx:entry> + <bltx:entry id="malinowski" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Malinowski</bltx:namepart> + <bltx:namepart type="given" initial="B">Bronis{ł}aw</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Routledge {and} Kegan Paul</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{book} entry. Note the format of the \texttt{publisher} and \texttt{edition} fields as well as the \texttt{subtitle} field</bltx:annotation> + <bltx:edition>8</bltx:edition> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Argonauts</bltx:shorttitle> + <bltx:subtitle>An account of native enterprise and adventure in the Archipelagoes of {Melanesian New Guinea}</bltx:subtitle> + <bltx:title>Argonauts of the {Western Pacific}</bltx:title> + <bltx:date>1972</bltx:date> + </bltx:entry> + <bltx:entry id="maron" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Maron</bltx:namepart> + <bltx:namepart type="given" initial="M">Monika</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="G">Goldstein</bltx:namepart> + <bltx:namepart type="given" initial="B">Brigitte</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Lincoln</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>University of Nebraska Press</bltx:item> + </bltx:publisher> + <bltx:annotation>An English translation of a German novel with a French title. In other words: a \texttt{book} entry with a \texttt{translator} field. Note the \texttt{origlanguage} field which is concatenated with the \texttt{translator}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:origlanguage>german</bltx:origlanguage> + <bltx:shorttitle>Animal Triste</bltx:shorttitle> + <bltx:title>Animal Triste</bltx:title> + <bltx:date>2000</bltx:date> + </bltx:entry> + <bltx:entry id="massa" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Massa</bltx:namepart> + <bltx:namepart type="given" initial="W">Werner</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Spinger</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with an \texttt{edition} field</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:title>Crystal structure determination</bltx:title> + <bltx:date>2004</bltx:date> + </bltx:entry> + <bltx:entry id="moore" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Moore</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gordon</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:journaltitle>Electronics</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>8</bltx:number> + <bltx:title>Cramming more components onto integrated circuits</bltx:title> + <bltx:volume>38</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>114</bltx:start> + <bltx:end>117</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1965</bltx:date> + </bltx:entry> + <bltx:entry id="moore:related" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Moore</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gordon</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A reprint of Moore's law. Note the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:journaltitle>Proceedings of the {IEEE}</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>1</bltx:number> + <bltx:relatedtype>reprintfrom</bltx:relatedtype> + <bltx:title>Cramming more components onto integrated circuits</bltx:title> + <bltx:volume>86</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>82</bltx:start> + <bltx:end>85</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="nietzsche:ksa" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Colli</bltx:namepart> + <bltx:namepart type="given" initial="G">Giorgio</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Montinari</bltx:namepart> + <bltx:namepart type="given" initial="M">Mazzino</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>München</bltx:item> + <bltx:item>Berlin</bltx:item> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Deutscher Taschenbuch-Verlag</bltx:item> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>The critical edition of Nietzsche's works. This is a \texttt{book} entry referring to a 15-volume work as a whole. Note the \texttt{volumes} field and the format of the \texttt{publisher} and \texttt{location} fields in the database file. Also note the \texttt{sorttitle} and \texttt{sortyear} fields which are used to fine-tune the sorting order of the bibliography. We want this item listed first in the bibliography</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:indexsorttitle>Samtliche Werke</bltx:indexsorttitle> + <bltx:langid>german</bltx:langid> + <bltx:sorttitle>Werke-00-000</bltx:sorttitle> + <bltx:sortyear>1988-0</bltx:sortyear> + <bltx:subtitle>Kritische Studienausgabe</bltx:subtitle> + <bltx:title>Sämtliche Werke</bltx:title> + <bltx:volumes>15</bltx:volumes> + <bltx:date>1988</bltx:date> + </bltx:entry> + <bltx:entry id="nietzsche:ksa1" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Colli</bltx:namepart> + <bltx:namepart type="given" initial="G">Giorgio</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Montinari</bltx:namepart> + <bltx:namepart type="given" initial="M">Mazzino</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>München</bltx:item> + <bltx:item>Berlin</bltx:item> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Deutscher Taschenbuch-Verlag</bltx:item> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>A single volume from the critical edition of Nietzsche's works. This \texttt{book} entry explicitly refers to the first volume only. Note the \texttt{title} and \texttt{maintitle} fields. Also note the \texttt{sorttitle} and \texttt{sortyear} fields. We want this entry to be listed after the entry referring to the entire edition</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:indexsorttitle>Samtliche Werke I</bltx:indexsorttitle> + <bltx:indextitle>Sämtliche Werke I</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:mainsubtitle>Kritische Studienausgabe</bltx:mainsubtitle> + <bltx:maintitle>Sämtliche Werke</bltx:maintitle> + <bltx:shorttitle>Sämtliche Werke I</bltx:shorttitle> + <bltx:sorttitle>Werke-01-000</bltx:sorttitle> + <bltx:sortyear>1988-1</bltx:sortyear> + <bltx:title>Die Geburt der Tragödie. Unzeitgemä{ß}e Betrachtungen I--IV. Nachgelassene Schriften 1870--1973</bltx:title> + <bltx:volume>1</bltx:volume> + <bltx:date>1988</bltx:date> + </bltx:entry> + <bltx:entry id="nussbaum" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nussbaum</bltx:namepart> + <bltx:namepart type="given" initial="M">Martha</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Princeton</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Princeton University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indexsorttitle} fields and the markup of the quotes in the database file</bltx:annotation> + <bltx:indexsorttitle>Aristotle's De Motu Animalium</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:sorttitle>Aristotle's De Motu Animalium</bltx:sorttitle> + <bltx:title>Aristotle's \mkbibquote{De Motu Animalium}</bltx:title> + <bltx:date>1978</bltx:date> + </bltx:entry> + <bltx:entry id="piccato" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="P">Piccato</bltx:namepart> + <bltx:namepart type="given" initial="P">Pablo</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{book} entry. Note the format of the \texttt{location} field in the database file</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>City of Suspects</bltx:shorttitle> + <bltx:subtitle>Crime in {Mexico City}, 1900--1931</bltx:subtitle> + <bltx:title>City of Suspects</bltx:title> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="vangennep" entrytype="book"> + <bltx:options>useprefix</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gennep</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + <bltx:namepart type="prefix" initial="v">van</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Paris</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Nourry</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the format of the printed name and compare the \texttt{useprefix} option in the \texttt{options} field as well as \texttt{brandt} and \texttt{geer}</bltx:annotation> + <bltx:indextitle>Rites de passage, Les</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:shorttitle>Rites de passage</bltx:shorttitle> + <bltx:sorttitle>Rites de passage</bltx:sorttitle> + <bltx:title>Les rites de passage</bltx:title> + <bltx:date>1909</bltx:date> + </bltx:entry> + <bltx:entry id="vangennep:trans" entrytype="book"> + <bltx:options>useprefix</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gennep</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + <bltx:namepart type="prefix" initial="v">van</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="V">Vizedom</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Monika</bltx:namepart> + <bltx:namepart initial="B">B.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Caffee</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gabrielle</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:language> + <bltx:item>english</bltx:item> + </bltx:language> + <bltx:publisher> + <bltx:item>University of Chicago Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A translation of the \texttt{vangennep} entry. Note the \texttt{translator} and \texttt{origlanguage} fields. Compare with the \texttt{vangennep:related} entry.</bltx:annotation> + <bltx:indextitle>Rites of Passage, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:origlanguage>french</bltx:origlanguage> + <bltx:shorttitle>Rites of Passage</bltx:shorttitle> + <bltx:sorttitle>Rites of Passage</bltx:sorttitle> + <bltx:title>The Rites of Passage</bltx:title> + <bltx:date>1960</bltx:date> + </bltx:entry> + <bltx:entry id="vangennep:related" entrytype="book"> + <bltx:options>useprefix</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gennep</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + <bltx:namepart type="prefix" initial="v">van</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Paris</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Nourry</bltx:item> + </bltx:publisher> + <bltx:annotation>A variant of the \texttt{vangennep} entry related to its translation. Note the format of the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:indextitle>Rites de passage, Les</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:relatedtype>bytranslator</bltx:relatedtype> + <bltx:shorttitle>Rites de passage</bltx:shorttitle> + <bltx:sorttitle>Rites de passage</bltx:sorttitle> + <bltx:title>Les rites de passage</bltx:title> + <bltx:date>1909</bltx:date> + </bltx:entry> + <bltx:entry id="vizedom:related" entrytype="book"> + <bltx:options>usetranslator</bltx:options> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="V">Vizedom</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Monika</bltx:namepart> + <bltx:namepart initial="B">B.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Caffee</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gabrielle</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:language> + <bltx:item>english</bltx:item> + </bltx:language> + <bltx:publisher> + <bltx:item>University of Chicago Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A translated work from \texttt{vangennep}. Note the format of the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:indextitle>Rites of Passage, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:relatedtype>translationof</bltx:relatedtype> + <bltx:shorttitle>Rites of Passage</bltx:shorttitle> + <bltx:sorttitle>Rites of Passage</bltx:sorttitle> + <bltx:title>The Rites of Passage</bltx:title> + <bltx:date>1960</bltx:date> + </bltx:entry> + <bltx:entry id="vazques-de-parga" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="V">Vázques{</bltx:namepart> + <bltx:namepart>de</bltx:namepart> + <bltx:namepart>}Parga</bltx:namepart> + </bltx:namepart> + <bltx:namepart type="given" initial="L">Luis</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Lacarra</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">José</bltx:namepart> + <bltx:namepart initial="M">María</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="U">Uría</bltx:namepart> + <bltx:namepart initial="R">Ríu</bltx:namepart> + </bltx:namepart> + <bltx:namepart type="given" initial="J">Juan</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Pamplona</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Iberdrola</bltx:item> + </bltx:publisher> + <bltx:annotation>A multivolume book cited as a whole. This is a \texttt{book} entry with \texttt{volumes}, \texttt{note}, \texttt{sorttitle}, and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Peregrinaciones a Santiago de Compostela, Las</bltx:indextitle> + <bltx:langid>spanish</bltx:langid> + <bltx:note>Ed. facs. de la realizada en 1948--49</bltx:note> + <bltx:shorttitle>Peregrinaciones</bltx:shorttitle> + <bltx:sorttitle>Peregrinaciones a Santiago de Compostela</bltx:sorttitle> + <bltx:title>Las Peregrinaciones a Santiago de Compostela</bltx:title> + <bltx:volumes>3</bltx:volumes> + <bltx:date>1993</bltx:date> + </bltx:entry> + <bltx:entry id="wilde" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Wilde</bltx:namepart> + <bltx:namepart type="given" initial="O">Oscar</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:publisher> + <bltx:item>Leonard Smithers {and} Company</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} with \texttt{eprint} and \texttt{eprinttype} fields.</bltx:annotation> + <bltx:eprint>4HIWAAAAYAAJ</bltx:eprint> + <bltx:eprinttype>googlebooks</bltx:eprinttype> + <bltx:series>English and {American} drama of the Nineteenth Century</bltx:series> + <bltx:title>The Importance of Being Earnest: A Trivial Comedy for Serious People</bltx:title> + <bltx:date>1899</bltx:date> + </bltx:entry> + <bltx:entry id="worman" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Worman</bltx:namepart> + <bltx:namepart type="given" initial="N">Nancy</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Austin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>University of Texas Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Cast of Character, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Cast of Character</bltx:shorttitle> + <bltx:sorttitle>Cast of Character</bltx:sorttitle> + <bltx:subtitle>Style in {Greek} Literature</bltx:subtitle> + <bltx:title>The Cast of Character</bltx:title> + <bltx:date>2002</bltx:date> + </bltx:entry> + <bltx:entry id="britannica" entrytype="collection"> + <bltx:options>useeditor=false</bltx:options> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="P">Preece</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">Warren</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Chicago, Ill.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Encyclop{æ}dia Britannica</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{collection} entry for an encyclopedia. Note the \texttt{useeditor} option in the \texttt{options} field as well as the \texttt{sorttitle} field. We want this entry to be cited and alphabetized by title even though there is an editor. In addition to that, we want the title to be alphabetized under \enquote*{E} rather than \enquote*{T}. Also note the \texttt{label} field which is provided for author-year citation styles</bltx:annotation> + <bltx:edition>15</bltx:edition> + <bltx:indextitle>{Encyclop{æ}dia Britannica}, The {New}</bltx:indextitle> + <bltx:label>EB</bltx:label> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>{Encyclop{æ}dia Britannica}</bltx:shorttitle> + <bltx:sorttitle>Encyclop{æ}dia Britannica</bltx:sorttitle> + <bltx:title>The {New Encyclop{æ}dia Britannica}</bltx:title> + <bltx:volumes>32</bltx:volumes> + <bltx:date>2003</bltx:date> + </bltx:entry> + <bltx:entry id="gaonkar" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gaonkar</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dilip</bltx:namepart> + <bltx:namepart initial="P">Parameshwar</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{collection} entry. Note the format of the \texttt{location} field in the database file as well as the \texttt{isbn} field</bltx:annotation> + <bltx:isbn>0-822-32714-7</bltx:isbn> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Alternative Modernities</bltx:title> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="gaonkar:in" entrytype="incollection"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gaonkar</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dilip</bltx:namepart> + <bltx:namepart initial="P">Parameshwar</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gaonkar</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dilip</bltx:namepart> + <bltx:namepart initial="P">Parameshwar</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:booktitle>Alternative Modernities</bltx:booktitle> + <bltx:isbn>0-822-32714-7</bltx:isbn> + <bltx:title>On Alternative Modernities</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>1</bltx:start> + <bltx:end>23</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="jaffe" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="J">Jaffé</bltx:namepart> + <bltx:namepart type="given" initial="P">Philipp</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editora"> + <bltx:name> + <bltx:namepart type="family" initial="L">Loewenfeld</bltx:namepart> + <bltx:namepart type="given" initial="S">Samuel</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="K">Kaltenbrunner</bltx:namepart> + <bltx:namepart type="given" initial="F">Ferdinand</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Ewald</bltx:namepart> + <bltx:namepart type="given" initial="P">Paul</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Leipzig</bltx:item> + </bltx:location> + <bltx:annotation>A \texttt{collection} entry with \texttt{edition} and \texttt{volumes} fields. Note the \texttt{editora} and \texttt{editoratype} fields</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:editoratype>redactor</bltx:editoratype> + <bltx:indextitle>Regesta Pontificum Romanorum</bltx:indextitle> + <bltx:langid>latin</bltx:langid> + <bltx:shorttitle>Regesta Pontificum Romanorum</bltx:shorttitle> + <bltx:title>Regesta Pontificum Romanorum ab condita ecclesia ad annum post Christum natum \textsc{mcxcviii}</bltx:title> + <bltx:volumes>2</bltx:volumes> + <bltx:date> + <bltx:start>1885</bltx:start> + <bltx:end>1888</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="westfahl:frontier" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="W">Westfahl</bltx:namepart> + <bltx:namepart type="given" initial="G">Gary</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Westport, Conn.</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Greenwood</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{collection} entry. Note the format of the \texttt{location} field as well as the \texttt{subtitle} and \texttt{booksubtitle} fields</bltx:annotation> + <bltx:booksubtitle>The Frontier Theme in Science Fiction</bltx:booksubtitle> + <bltx:booktitle>Space and Beyond</bltx:booktitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>The Frontier Theme in Science Fiction</bltx:subtitle> + <bltx:title>Space and Beyond</bltx:title> + <bltx:date>2000</bltx:date> + </bltx:entry> + <bltx:entry id="kant:kpv" entrytype="inbook"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>An edition of Kant's \emph{Collected Works}, volume five. This is an \texttt{inbook} entry which explicitly refers to the \emph{Critique of Practical Reason} only, not to the entire fifth volume. Note the \texttt{author} and \texttt{bookauthor} fields in the database file. By default, the \texttt{bookauthor} is omitted if the values of the \texttt{author} and \texttt{bookauthor} fields are identical</bltx:annotation> + <bltx:booktitle>Kritik der praktischen Vernunft. Kritik der Urtheilskraft</bltx:booktitle> + <bltx:langid>german</bltx:langid> + <bltx:maintitle>Kants Werke. Akademie Textausgabe</bltx:maintitle> + <bltx:shorthand>KpV</bltx:shorthand> + <bltx:shorttitle>Kritik der praktischen Vernunft</bltx:shorttitle> + <bltx:title>Kritik der praktischen Vernunft</bltx:title> + <bltx:volume>5</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>1</bltx:start> + <bltx:end>163</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1968</bltx:date> + </bltx:entry> + <bltx:entry id="kant:ku" entrytype="inbook"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>An edition of Kant's \emph{Collected Works}, volume five. This is an \texttt{inbook} entry which explicitly refers to the \emph{Critique of Judgment} only, not to the entire fifth volume</bltx:annotation> + <bltx:booktitle>Kritik der praktischen Vernunft. Kritik der Urtheilskraft</bltx:booktitle> + <bltx:langid>german</bltx:langid> + <bltx:maintitle>Kants Werke. Akademie Textausgabe</bltx:maintitle> + <bltx:shorthand>KU</bltx:shorthand> + <bltx:title>Kritik der Urtheilskraft</bltx:title> + <bltx:volume>5</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>165</bltx:start> + <bltx:end>485</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1968</bltx:date> + </bltx:entry> + <bltx:entry id="nietzsche:historie" entrytype="inbook"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Colli</bltx:namepart> + <bltx:namepart type="given" initial="G">Giorgio</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Montinari</bltx:namepart> + <bltx:namepart type="given" initial="M">Mazzino</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>München</bltx:item> + <bltx:item>Berlin</bltx:item> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Deutscher Taschenbuch-Verlag</bltx:item> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>A single essay from the critical edition of Nietzsche's works. This \texttt{inbook} entry explicitly refers to an essay found in the first volume. Note the \texttt{title}, \texttt{booktitle}, and \texttt{maintitle} fields. Also note the \texttt{sorttitle} and \texttt{sortyear} fields. We want this entry to be listed after the entry referring to the entire first volume</bltx:annotation> + <bltx:booktitle>Die Geburt der Tragödie. Unzeitgemä{ß}e Betrachtungen I--IV. Nachgelassene Schriften 1870--1973</bltx:booktitle> + <bltx:indexsorttitle>Vom Nutzen und Nachtheil der Historie fur das Leben</bltx:indexsorttitle> + <bltx:indextitle>Vom Nutzen und Nachtheil der Historie für das Leben</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:mainsubtitle>Kritische Studienausgabe</bltx:mainsubtitle> + <bltx:maintitle>Sämtliche Werke</bltx:maintitle> + <bltx:shorttitle>Vom Nutzen und Nachtheil der Historie</bltx:shorttitle> + <bltx:sorttitle>Werke-01-243</bltx:sorttitle> + <bltx:sortyear>1988-2</bltx:sortyear> + <bltx:subtitle>Vom Nutzen und Nachtheil der Historie für das Leben</bltx:subtitle> + <bltx:title>Unzeitgemässe Betrachtungen. Zweites Stück</bltx:title> + <bltx:volume>1</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>243</bltx:start> + <bltx:end>334</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1988</bltx:date> + </bltx:entry> + <bltx:entry id="brandt" entrytype="incollection"> + <bltx:options>useprefix=false</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Brandt</bltx:namepart> + <bltx:namepart type="given" initial="A">Ahasver</bltx:namepart> + <bltx:namepart type="prefix" initial="v">von</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Hoffmann</bltx:namepart> + <bltx:namepart type="given" initial="E">Erich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="S">Seibt</bltx:namepart> + <bltx:namepart type="given" initial="F">Ferdinand</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Stuttgart</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Klett-Cotta</bltx:item> + </bltx:publisher> + <bltx:annotation>An \texttt{incollection} entry with a \texttt{series} and a \texttt{number}. Note the format of the printed name and compare the \texttt{useprefix} option in the \texttt{options} field as well as \texttt{vangennep}. Also note the \texttt{indextitle, and \texttt{indexsorttitle} fields}</bltx:annotation> + <bltx:booktitle>Europa im Hoch- und Spätmittelalter</bltx:booktitle> + <bltx:indexsorttitle>Nordischen Lander von der Mitte des 11. Jahrhunderts bis 1448</bltx:indexsorttitle> + <bltx:indextitle>Nordischen Länder von der Mitte des 11.~Jahrhunderts bis 1448, Die</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:number>2</bltx:number> + <bltx:series>Handbuch der europäischen Geschichte</bltx:series> + <bltx:shorttitle>Die nordischen Länder</bltx:shorttitle> + <bltx:title>Die nordischen Länder von der Mitte des 11.~Jahrhunderts bis 1448</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>884</bltx:start> + <bltx:end>917</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1987</bltx:date> + </bltx:entry> + <bltx:entry id="hyman" entrytype="incollection"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hyman</bltx:namepart> + <bltx:namepart type="given" initial="A">Arthur</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="O">O'Meara</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dominic</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Washington, D.C.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>The Catholic University of America Press</bltx:item> + </bltx:publisher> + <bltx:annotation>An \texttt{incollection} entry with a \texttt{series} and \texttt{number} field</bltx:annotation> + <bltx:booktitle>Studies in {Aristotle}</bltx:booktitle> + <bltx:indextitle>Aristotle's Theory of the Intellect</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>9</bltx:number> + <bltx:series>Studies in Philosophy and the History of Philosophy</bltx:series> + <bltx:shorttitle>Aristotle's Theory of the Intellect</bltx:shorttitle> + <bltx:title>Aristotle's Theory of the Intellect and its Interpretation by {Averroes}</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>161</bltx:start> + <bltx:end>191</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1981</bltx:date> + </bltx:entry> + <bltx:entry id="pines" entrytype="incollection"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="P">Pines</bltx:namepart> + <bltx:namepart type="given" initial="S">Shlomo</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="T">Twersky</bltx:namepart> + <bltx:namepart type="given" initial="I">Isadore</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Cambridge, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Harvard University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A typical \texttt{incollection} entry. Note the \texttt{indextitle} field</bltx:annotation> + <bltx:booktitle>Studies in Medieval {Jewish} History and Literature</bltx:booktitle> + <bltx:indextitle>Limitations of Human Knowledge According to {Al-Farabi}, {ibn Bajja}, and {Maimonides}, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Limitations of Human Knowledge</bltx:shorttitle> + <bltx:title>The Limitations of Human Knowledge According to {Al-Farabi}, {ibn Bajja}, and {Maimonides}</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>82</bltx:start> + <bltx:end>109</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1979</bltx:date> + </bltx:entry> + <bltx:entry id="moraux" entrytype="inproceedings"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Moraux</bltx:namepart> + <bltx:namepart type="given" initial="P">Paul</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="L">Lloyd</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">G.</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + <bltx:namepart initial="R">R.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="O">Owen</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">G.</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Cambridge</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Cambridge University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a typical \texttt{inproceedings} entry. Note the \texttt{booksubtitle}, \texttt{shorttitle}, \texttt{indextitle}, and \texttt{indexsorttitle} fields. Also note the \texttt{eventdate} field.</bltx:annotation> + <bltx:booktitle>Aristotle on Mind and the Senses</bltx:booktitle> + <bltx:booktitleaddon>Proceedings of the Seventh Symposium Aristotelicum</bltx:booktitleaddon> + <bltx:indexsorttitle>De Anima dans la tradition grecque</bltx:indexsorttitle> + <bltx:indextitle>\emph{De Anima} dans la tradition grècque, Le</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:shorttitle>\emph{De Anima} dans la tradition grècque</bltx:shorttitle> + <bltx:subtitle>Quelques aspects de l'interpretation du traité, de Theophraste à Themistius</bltx:subtitle> + <bltx:title>Le \emph{De Anima} dans la tradition grècque</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>281</bltx:start> + <bltx:end>324</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1979</bltx:date> + <bltx:date type="event">1975</bltx:date> + </bltx:entry> + <bltx:entry id="salam" entrytype="inproceedings"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Salam</bltx:namepart> + <bltx:namepart type="given" initial="A">Abdus</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="S">Svartholm</bltx:namepart> + <bltx:namepart type="given" initial="N">Nils</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Stockholm</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Almquist \& Wiksell</bltx:item> + </bltx:publisher> + <bltx:booksubtitle>Relativistic groups and analyticity</bltx:booksubtitle> + <bltx:booktitle>Elementary particle theory</bltx:booktitle> + <bltx:booktitleaddon>Proceedings of the {Eighth Nobel Symposium}</bltx:booktitleaddon> + <bltx:title>Weak and Electromagnetic Interactions</bltx:title> + <bltx:venue>Aspenäsgarden, Lerum</bltx:venue> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>367</bltx:start> + <bltx:end>377</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1968</bltx:date> + <bltx:date type="event"> + <bltx:start>1968-05-19</bltx:start> + <bltx:end>1968-05-25</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="cms" entrytype="manual"> + <bltx:location> + <bltx:item>Chicago, Ill.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>University of Chicago Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{manual} entry without an \texttt{author} or \texttt{editor}. Note the \texttt{label} field in the database file which is provided for author-year citation styles. Also note the \texttt{sorttitle} and \texttt{indextitle} fields. By default, all entries without an \texttt{author} or \texttt{editor} are alphabetized by \texttt{title} but we want this entry to be alphabetized under \enquote*{C} rather than \enquote*{T}. There's also an \texttt{isbn} field</bltx:annotation> + <bltx:edition>15</bltx:edition> + <bltx:indextitle>Chicago Manual of Style, The</bltx:indextitle> + <bltx:isbn>0-226-10403-6</bltx:isbn> + <bltx:label>CMS</bltx:label> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Chicago Manual of Style</bltx:shorttitle> + <bltx:sorttitle>Chicago Manual of Style</bltx:sorttitle> + <bltx:subtitle>The Essential Guide for Writers, Editors, and Publishers</bltx:subtitle> + <bltx:title>The {Chicago} Manual of Style</bltx:title> + <bltx:date>2003</bltx:date> + </bltx:entry> + <bltx:entry id="baez/online" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Baez</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">John</bltx:namepart> + <bltx:namepart initial="C">C.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Lauda</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="A">Aaron</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{online} reference from arXiv. Note the \texttt{eprint} and \texttt{eprinttype} fields. Compare \texttt{baez\slash article} which is the same item given as an \texttt{article} entry with eprint information</bltx:annotation> + <bltx:eprint>math/0307200v3</bltx:eprint> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Higher-Dimensional Algebra {V}: 2-Groups</bltx:title> + <bltx:version>3</bltx:version> + <bltx:date>2004-10-27</bltx:date> + </bltx:entry> + <bltx:entry id="ctan" entrytype="online"> + <bltx:annotation>This is an \texttt{online} entry. The \textsc{url}, which is given in the \texttt{url} field, is transformed into a clickable link if \texttt{hyperref} support has been enabled. Note the format of the \texttt{urldate} field (\texttt{yyyy-mm-dd}) in the database file. Also note the \texttt{label} field which may be used as a fallback by citation styles which need an \texttt{author} and\slash or a \texttt{year}</bltx:annotation> + <bltx:label>CTAN</bltx:label> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>The {Comprehensive TeX Archive Network}</bltx:subtitle> + <bltx:title>CTAN</bltx:title> + <bltx:url>http://www.ctan.org</bltx:url> + <bltx:date>2006</bltx:date> + <bltx:date type="url">2006-10-01</bltx:date> + </bltx:entry> + <bltx:entry id="itzhaki" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="I">Itzhaki</bltx:namepart> + <bltx:namepart type="given" initial="N">Nissan</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>We discuss the limitations of 't Hooft's proposal for the black hole S-matrix. We find that the validity of the S-matrix implies violation of the semi-classical approximation at scales large compared to the Planck scale. We also show that the effect of the centrifugal barrier on the S-matrix is crucial even for large transverse distances.</bltx:abstract> + <bltx:annotation>An \texttt{online} reference from arXiv. Note the \texttt{eprint} and \texttt{eprinttype} fields. Also note that the arXiv reference is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:eprint>hep-th/9603067</bltx:eprint> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Some remarks on {'t Hooft's} {S}-matrix for black holes</bltx:title> + <bltx:version>1</bltx:version> + <bltx:date>1996-03-11</bltx:date> + </bltx:entry> + <bltx:entry id="markey" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Markey</bltx:namepart> + <bltx:namepart type="given" initial="N">Nicolas</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{online} entry for a tutorial. Note the format of the \texttt{date} field (\texttt{yyyy-mm-dd}) in the database file.</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:sorttitle>Tame the Beast</bltx:sorttitle> + <bltx:subtitle>The {B} to {X} of {BibTeX}</bltx:subtitle> + <bltx:title>Tame the {BeaST}</bltx:title> + <bltx:url>http://tug.ctan.org/tex-archive/info/bibtex/tamethebeast/ttb_en.pdf</bltx:url> + <bltx:version>1.3</bltx:version> + <bltx:date>2005-10-16</bltx:date> + <bltx:date type="url">2006-10-01</bltx:date> + </bltx:entry> + <bltx:entry id="wassenberg" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Wassenberg</bltx:namepart> + <bltx:namepart type="given" initial="J">Jan</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Sanders</bltx:namepart> + <bltx:namepart type="given" initial="P">Peter</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>Sorting algorithms are the deciding factor for the performance of common operations such as removal of duplicates or database sort-merge joins. This work focuses on 32-bit integer keys, optionally paired with a 32-bit value. We present a fast radix sorting algorithm that builds upon a microarchitecture-aware variant of counting sort</bltx:abstract> + <bltx:annotation>A recent \texttt{online} reference from arXiv using the new (April 2007 onward) identifier format. Note the \texttt{eprint}, \texttt{eprinttype}, and \texttt{eprintclass} fields. Also note that the arXiv reference is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:eprint>1008.2849v1</bltx:eprint> + <bltx:eprintclass>cs.DS</bltx:eprintclass> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Faster Radix Sort via Virtual Memory and Write-Combining</bltx:title> + <bltx:version>1</bltx:version> + <bltx:date>2010-08-17</bltx:date> + </bltx:entry> + <bltx:entry id="almendro" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Almendro</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">José</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Martín</bltx:namepart> + <bltx:namepart type="given" initial="J">Jacinto</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Sánchez</bltx:namepart> + <bltx:namepart type="given" initial="A">Alberto</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N">Nozal</bltx:namepart> + <bltx:namepart type="given" initial="F">Fernando</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>countryfr</bltx:item> + <bltx:item>countryuk</bltx:item> + <bltx:item>countryde</bltx:item> + </bltx:location> + <bltx:annotation>This is a \texttt{patent} entry with a \texttt{location} field. The number is given in the \texttt{number} field. Note the format of the \texttt{location} field in the database file. Compare \texttt{laufenberg}, \texttt{sorace}, and \texttt{kowalik}</bltx:annotation> + <bltx:langid>german</bltx:langid> + <bltx:number>EU-29702195U</bltx:number> + <bltx:title>Elektromagnetisches Signalhorn</bltx:title> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="kowalik" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kowalik</bltx:namepart> + <bltx:namepart type="given" initial="F">F.</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="I">Isard</bltx:namepart> + <bltx:namepart type="given" initial="M">M.</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>This is a \texttt{patent} entry for a French patent request with a full date. The number is given in the \texttt{number} field. Note the format of the \texttt{type} and \texttt{date} fields in the database file. Compare \texttt{almendro}, \texttt{laufenberg}, and \texttt{sorace}</bltx:annotation> + <bltx:indextitle>Estimateur d'un défaut de fonctionnement</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:number>9500261</bltx:number> + <bltx:title>Estimateur d'un défaut de fonctionnement d'un modulateur en quadrature et étage de modulation l'utilisant</bltx:title> + <bltx:type>patreqfr</bltx:type> + <bltx:date>1995-01-11</bltx:date> + </bltx:entry> + <bltx:entry id="laufenberg" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="L">Laufenberg</bltx:namepart> + <bltx:namepart type="given" initial="X">Xaver</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Eynius</bltx:namepart> + <bltx:namepart type="given" initial="D">Dominique</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Suelzle</bltx:namepart> + <bltx:namepart type="given" initial="H">Helmut</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="U">Usbeck</bltx:namepart> + <bltx:namepart type="given" initial="S">Stephan</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Spaeth</bltx:namepart> + <bltx:namepart type="given" initial="M">Matthias</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N-H">Neuser-Hoffmann</bltx:namepart> + <bltx:namepart type="given" initial="M">Miriam</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Myrzik</bltx:namepart> + <bltx:namepart type="given" initial="C">Christian</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Schmid</bltx:namepart> + <bltx:namepart type="given" initial="M">Manfred</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietfeld</bltx:namepart> + <bltx:namepart type="given" initial="F">Franz</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="T">Thiel</bltx:namepart> + <bltx:namepart type="given" initial="A">Alexander</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Braun</bltx:namepart> + <bltx:namepart type="given" initial="H">Harald</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Ebner</bltx:namepart> + <bltx:namepart type="given" initial="N">Norbert</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="holder"> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="R">Robert</bltx:namepart> + <bltx:namepart>Bosch</bltx:namepart> + <bltx:namepart>GmbH</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="D">Daimler</bltx:namepart> + <bltx:namepart>Chrysler</bltx:namepart> + <bltx:namepart>AG</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="B">Bayerische</bltx:namepart> + <bltx:namepart>Motoren</bltx:namepart> + <bltx:namepart>Werke</bltx:namepart> + <bltx:namepart>AG</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>The invention relates to an electric device comprising a generator, in particular for use in the vehicle electric system of a motor vehicle and a controller for controlling the generator voltage. The device is equipped with a control zone, in which the voltage is controlled and zones, in which the torque is controlled. The invention also relates to methods for operating a device of this type.</bltx:abstract> + <bltx:annotation>This is a \texttt{patent} entry with a \texttt{holder} field. Note the format of the \texttt{type} and \texttt{location} fields in the database file. Compare \texttt{almendro}, \texttt{sorace}, and \texttt{kowalik}</bltx:annotation> + <bltx:file>http://v3.espacenet.com/textdoc?IDX=EP1700367</bltx:file> + <bltx:langid>german</bltx:langid> + <bltx:number>1700367</bltx:number> + <bltx:title>Elektrische Einrichtung und Betriebsverfahren</bltx:title> + <bltx:type>patenteu</bltx:type> + <bltx:date>2006-09-13</bltx:date> + </bltx:entry> + <bltx:entry id="sorace" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Sorace</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Ronald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Reinhardt</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="V">Victor</bltx:namepart> + <bltx:namepart initial="S">S.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="V">Vaughn</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Steven</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="holder"> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="H">Hughes</bltx:namepart> + <bltx:namepart>Aircraft</bltx:namepart> + <bltx:namepart>Company</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>This is a \texttt{patent} entry with a \texttt{holder} field. Note the format of the \texttt{type} and \texttt{date} fields in the database file. Compare \texttt{almendro}, \texttt{laufenberg}, and \texttt{kowalik}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>5668842</bltx:number> + <bltx:title>High-Speed Digital-to-{RF} Converter</bltx:title> + <bltx:type>patentus</bltx:type> + <bltx:date>1997-09-16</bltx:date> + </bltx:entry> + <bltx:entry id="jcg" entrytype="periodical"> + <bltx:annotation>This is a \texttt{periodical} entry with an \texttt{issn} field.</bltx:annotation> + <bltx:issn>0097-8493</bltx:issn> + <bltx:issuetitle>Semantic {3D} Media and Content</bltx:issuetitle> + <bltx:number>4</bltx:number> + <bltx:title>Computers and Graphics</bltx:title> + <bltx:volume>35</bltx:volume> + <bltx:date>2011</bltx:date> + </bltx:entry> + <bltx:entry id="chiu" entrytype="report"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Chiu</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">Willy</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Chow</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">We</bltx:namepart> + <bltx:namepart initial="M">Min</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>IBM</bltx:item> + </bltx:institution> + <bltx:annotation>This is a \texttt{report} entry for a research report. Note the format of the \texttt{type} field in the database file which uses a localization key. The number of the report is given in the \texttt{number} field. Also note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Hybrid Hierarchical Model, A</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>RC-6947</bltx:number> + <bltx:sorttitle>Hybrid Hierarchical Model of a Multiple Virtual Storage (MVS) Operating System</bltx:sorttitle> + <bltx:title>A Hybrid Hierarchical Model of a {Multiple Virtual Storage} ({MVS}) Operating System</bltx:title> + <bltx:type>resreport</bltx:type> + <bltx:date>1978</bltx:date> + </bltx:entry> + <bltx:entry id="padhye" entrytype="report"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="P">Padhye</bltx:namepart> + <bltx:namepart type="given" initial="J">Jitendra</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="F">Firoiu</bltx:namepart> + <bltx:namepart type="given" initial="V">Victor</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="T">Towsley</bltx:namepart> + <bltx:namepart type="given" initial="D">Don</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>University of Massachusetts</bltx:item> + </bltx:institution> + <bltx:location> + <bltx:item>Amherst, Mass.</bltx:item> + </bltx:location> + <bltx:abstract>The steady state performance of a bulk transfer TCP flow (i.e. a flow with a large amount of data to send, such as FTP transfers) may be characterized by three quantities. The first is the send rate, which is the amount of data sent by the sender in unit time. The second is the throughput, which is the amount of data received by the receiver in unit time. Note that the throughput will always be less than or equal to the send rate due to losses. Finally, the number of non-duplicate packets received by the receiver in unit time gives us the goodput of the connection. The goodput is always less than or equal to the throughput, since the receiver may receive two copies of the same packet due to retransmissions by the sender. In a previous paper, we presented a simple model for predicting the steady state send rate of a bulk transfer TCP flow as a function of loss rate and round trip time. In this paper, we extend that work in two ways. First, we analyze the performance of bulk transfer TCP flows using more precise, stochastic analysis. Second, we build upon the previous analysis to provide both an approximate formula as well as a more accurate stochastic model for the steady state throughput of a bulk transfer TCP flow.</bltx:abstract> + <bltx:annotation>This is a \texttt{report} entry for a technical report. Note the format of the \texttt{type} field in the database file which uses a localization key. The number of the report is given in the \texttt{number} field. Also note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:file>ftp://gaia.cs.umass.edu/pub/Padhey99-markov.ps</bltx:file> + <bltx:indextitle>Stochastic Model of {TCP Reno} Congestion Avoidance and Control, A</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>99-02</bltx:number> + <bltx:sorttitle>A Stochastic Model of TCP Reno Congestion Avoidance and Control</bltx:sorttitle> + <bltx:title>A Stochastic Model of {TCP Reno} Congestion Avoidance and Control</bltx:title> + <bltx:type>techreport</bltx:type> + <bltx:date>1999</bltx:date> + </bltx:entry> + <bltx:entry id="geer" entrytype="thesis"> + <bltx:options>useprefix=false</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Geer</bltx:namepart> + <bltx:namepart type="given" initial="I">Ingrid</bltx:namepart> + <bltx:namepart type="prefix" initial="d">de</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>Uppsala Universitet</bltx:item> + </bltx:institution> + <bltx:location> + <bltx:item>Uppsala</bltx:item> + </bltx:location> + <bltx:annotation>This is a typical \texttt{thesis} entry for a PhD thesis. Note the \texttt{type} field in the database file which uses a localization key. Also note the format of the printed name and compare the \texttt{useprefix} option in the \texttt{options} field as well as \texttt{vangennep}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:subtitle>The {Orkney Earldom} of the Twelfth Century. {A} Musicological Study</bltx:subtitle> + <bltx:title>Earl, Saint, Bishop, Skald~-- and Music</bltx:title> + <bltx:type>phdthesis</bltx:type> + <bltx:date>1985</bltx:date> + </bltx:entry> + <bltx:entry id="loh" entrytype="thesis"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="L">Loh</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="N">Nin</bltx:namepart> + <bltx:namepart initial="C">C.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>Massachusetts Institute of Technology</bltx:item> + </bltx:institution> + <bltx:location> + <bltx:item>Cambridge, Mass.</bltx:item> + </bltx:location> + <bltx:annotation>This is a typical \texttt{thesis} entry for an MA thesis. Note the \texttt{type} field in the database file which uses a localization key</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>High-Resolution Micromachined Interferometric Accelerometer</bltx:title> + <bltx:type>mathesis</bltx:type> + <bltx:date>1992</bltx:date> + </bltx:entry> +</bltx:entries> diff --git a/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst b/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst index c8fef68b1d9..56184c314de 100644 --- a/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst +++ b/Master/texmf-dist/bibtex/bst/biblatex/biblatex.bst @@ -176,7 +176,7 @@ STRINGS { ctrl.alphaothers templist tempstrga tempstrgb resvstrga last.name last.hash last.year last.extra } FUNCTION {initialize} { - "$Revision: 3.0 $" + "$Revision: 3.3 $" #12 entry.max$ substring$ #-3 entry.max$ substring$ "Biblatex version: " swap$ * top$ @@ -1775,7 +1775,7 @@ FUNCTION {input:control:options} { % This version corresponds to the .bbl version, *not* the biblatex version! FUNCTION {input:control:version} { input:control:parse - "$Revision: 2.5 $" + "$Revision: 2.6 $" #12 entry.max$ substring$ #-3 entry.max$ substring$ 'tempstrga := @@ -2599,7 +2599,7 @@ SORT % This version corresponds to the .bbl version, *not* the biblatex version! FUNCTION {output:main:begin} { "% $ biblatex auxiliary file $" write$ newline$ - "% $ biblatex version " "$Revision: 2.5 $" + "% $ biblatex version " "$Revision: 2.6 $" #12 entry.max$ substring$ #-3 entry.max$ substring$ * " $" * write$ newline$ "% Do not modify the above lines!" write$ newline$ "%" write$ newline$ diff --git a/Master/texmf-dist/doc/latex/biblatex/RELEASE b/Master/texmf-dist/doc/latex/biblatex/RELEASE index f77b69cc67d..4bb203b278d 100644 --- a/Master/texmf-dist/doc/latex/biblatex/RELEASE +++ b/Master/texmf-dist/doc/latex/biblatex/RELEASE @@ -1,3 +1,96 @@ +RELEASE NOTES FOR VERSION 3.3 + +* Biber version 2.4 is required for biblatex 3.3 +* The \Declare*Option commands have a new optional argument when using + biber which declares the datatype of the option. It defaults to + "boolean" if not specified. If you define any custom options in your + style, you may want to specify the correct datatype (see docs). However, + it is unlikely that this will impact anything at the moment as this option + only used internally by biber for some checks. +* INCOMPATIBLE CHANGE - There have been major changes to the handling of + name lists in order to generalise name handling beyond the narrow + confines of the legacy bibtex name parts of "last, first, prefix, + suffix". These changes only apply when using biber as the backend and + mainly affect style authors. + * In general in macro names, "first" is now "given" and "last" is now "family": + + The option "firstinits" has been renamed to "giveninits" and the option "sortfirstinits" + to "sortgiveninits". The old names are available as legacy aliases. + Style authors using the internal toggles associated with these options will + need to change "first" to "given" in their names. + + Name formats and the \mkbibname* macros have been internally renamed by + replacing "first" with "given" and "last" with "family". There are aliases in place for the + older names. Please use the new names in any custom styles. + + * The most significant change concerns the definition of name formats. + Style authors will need to update any styles which use + \DeclareNameFormat or \DeclareIndexNameFormat which no longer accept + 8 arguments which are hard coded to the nameparts which bibtex + understands. These macros now take one argument which is a + comma-separated list which must be parsed with: + + \nameparts{#1}% + + All name formats should include this line, usually as the first line in + the format. Valid nameparts are now defined by the datamodel and the + default is compatible with standard bibtex with "last" renamed to + "family" and "first" renamed to "given". The default datamodel + declaration is: + + \DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given} + + This declaration automatically creates the \mkbibname<namepart> macros and the + internal machinery for the \nameparts macro. After using the \nameparts macro + as described above, each namepart will be available in two macros with + the following name structure: + + \namepart<namepart> + \namepart<namepart>i + + The macro ending in "i" is the macro contain the namepart initials. + So, use of \nameparts{#1} in the default datamodel will result in these + macros being defined for use: + + \namepartprefix + \namepartprefixi + \namepartfamily + \namepartfamilyi + \namepartsuffix + \namepartsuffixi + \namepartgiven + \namepartgiveni + + As a further example, the name format: + + \DeclareNameFormat{first-last}{% + \iffirstinits + {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} + {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% + \usebibmacro{name:andothers}} + + is now: + + \DeclareNameAlias{first-last}{given-family}% legacy alias + \DeclareNameFormat{given-family}{% + \nameparts{#1}% + \ifgiveninits + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% + \usebibmacro{name:andothers}} + + See the example 93-nameparts.tex example file for an example of + defining and using a custom namepart, which is now possible due to + these changes. + RELEASE NOTES FOR VERSION 3.2 * Biber version 2.3 is required for biblatex 3.2 diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf b/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf Binary files differindex 1dbd731c296..a4762be524d 100644 --- a/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf +++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.pdf diff --git a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex index 2fdbbe39971..6ed0af92e75 100644 --- a/Master/texmf-dist/doc/latex/biblatex/biblatex.tex +++ b/Master/texmf-dist/doc/latex/biblatex/biblatex.tex @@ -1,7 +1,7 @@ \documentclass{ltxdockit}[2011/03/25] \usepackage{btxdockit} \usepackage{fontspec} -\setmonofont[Ligatures=TeX]{Courier New} +\setmonofont{Courier New} \setmainfont[Ligatures=TeX]{Linux Libertine O} \setsansfont[Ligatures=TeX]{Linux Biolinum O} \usepackage[american]{babel} @@ -13,8 +13,16 @@ \usepackage{pifont} \usepackage{microtype} \usepackage{typearea} +\usepackage{mdframed} \areaset[current]{370pt}{700pt} -\lstset{basicstyle=\ttfamily,keepspaces=true} +\lstset{ + basicstyle=\ttfamily, + keepspaces=true, + upquote=true, + frame=single, + breaklines=true, + postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}} +} \KOMAoptions{numbers=noenddot} \addtokomafont{title}{\sffamily} \addtokomafont{paragraph}{\spotcolor} @@ -38,7 +46,9 @@ \MakeShortVerb{\|} \newcommand*{\biber}{Biber\xspace} -\newcommand*{\biblatex}{Biblatex\xspace} +\newcommand*{\biblatex}{BibLaTeX\xspace} +\newcommand*{\biblatexml}{BibLaTeXML\xspace} +\newcommand*{\ris}{RIS\xspace} \newcommand*{\biblatexhome}{http://sourceforge.net/projects/biblatex/} \newcommand*{\biblatexctan}{% http://www.ctan.org/tex-archive/macros/latex/contrib/biblatex/} @@ -49,8 +59,8 @@ url={\biblatexhome}, author={Philipp Lehman \\(with Philip Kime, Audrey Boruvka and Joseph Wright)}, email={}, - revision={3.2}, - date={27/12/2015}} + revision={3.4}, + date={//2016}} \hypersetup{% pdftitle={The \biblatex Package}, @@ -677,9 +687,18 @@ In datasources such as a \file{bib} file, all bibliographic data is specified in \begin{description} -\item[Name lists] are parsed and split up into the individual items at the \texttt{and} delimiter. Each item in the list is then dissected into four name components: the first name, the name prefix (von, van, of, da, de, della, \dots), the last name, and the name suffix (junior, senior, \dots). Name lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. Typical examples of name lists are \bibfield{author} and \bibfield{editor}. +\item[Name lists] are parsed and split up into the individual items at the \texttt{and} delimiter. Each item in the list is then dissected into four name components: the given name, the name prefix (von, van, of, da, de, della, \dots), the family name, and the name suffix (junior, senior, \dots). Name lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. Typical examples of name lists are \bibfield{author} and \bibfield{editor}. + +\BiberOnlyMark With \biber, name list fields automatically have an \cmd{ifuse*} test created as per the name lists in the default data model (see \secref{aut:aux:tst}). They are also automatically have a \opt{ifuse*} option created which controls labelling and sorting behaviour with the name (see \secref{use:opt:bib:hyb}). \biber supports a customisable list of name parts but current this is defined to be the same set of parts as supported by \bibtex: -\BiberOnlyMark With \biber, name list fields automatically have an \cmd{ifuse*} test created as per the name lists in the default data model (see \secref{aut:aux:tst}). They are also automatically have a \opt{ifuse*} option created which controls labelling and sorting behaviour with the name (see \secref{use:opt:bib:hyb}). +\begin{itemize} +\item Family name (also known as <last> part) +\item Given name (also known as <first> part) +\item Name prefix (also known as <von> part) +\item Name suffix (also known as <Jr> part) +\end{itemize} + +The supported list of name parts is defined as a constant list in the default data model using the \cmd{DeclareDatamodelConstant} command (see \ref{aut:ctm:dm}). However, it is not enough to simply add to this list in order to add support for another name part as name parts typically have to be hard coded into bibliography drivers and the backend processing. This constant is used as much as possible and is intended as a basis for future generalisation and extension. \item[Literal lists] are parsed and split up into the individual items at the \texttt{and} delimiter but not dissected further. Literal lists may be truncated in the \file{bib} file with the keyword <\texttt{and others}>. There are two subtypes: @@ -1192,11 +1211,11 @@ langidopts = {variant=british}, % would wrap the bibliography entry in: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \english[variant=british] ... \endenglish -\end{lstlisting} +\end{ltxexample} % \fielditem{ids}{separated list of entrykeys\BiberOnlyMark} @@ -1831,15 +1850,15 @@ Not only \bibtex, \latex needs to know about the encoding as well. See \secref{b Supporting Unicode implies much more than handling \utf input. Unicode is a complex standard covering more than its most well-known parts, the Unicode character encoding and transport encodings such as \utf. It also standardizes aspects such as string collation, which is required for language-sensitive sorting. For example, by using the Unicode Collation Algorithm, \biber can handle the character <ß> mentioned as an example in \secref{bib:cav:enc:bt8} without any manual intervention. All you need to do to get localized sorting is specify the locale: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[backend=biber,sortlocale=de]{biblatex} -\end{lstlisting} +\end{ltxexample} % or if you are using german as the main document language via Babel or Polyglossia: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[backend=biber,sortlocale=auto]{biblatex} -\end{lstlisting} +\end{ltxexample} % This will make \biblatex pass the Babel/Polyglossia main document language as the locale which \biber will map into a suitable default locale. \biber @@ -1861,56 +1880,56 @@ When using a non-Ascii encoding in the \file{bib} file, it is important to under \item Ascii notation in both the \file{tex} and the \file{bib} file with \pdftex or traditional \tex (this will work with \bibtex, \file{bibtex8}, and \biber): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage{biblatex} -\end{lstlisting} +\end{ltxexample} \item Latin\,1 encoding (\acr{ISO}-8859-1) in the \file{tex} file, Ascii notation in the \file{bib} file with \pdftex or traditional \tex (\bibtex, \file{bibtex8}, \biber): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[latin1]{inputenc} \usepackage[bibencoding=ascii]{biblatex} -\end{lstlisting} +\end{ltxexample} \item Latin\,9 encoding (\acr{ISO}-8859-15) in both the \file{tex} and the \file{bib} file with \pdftex or traditional \tex (\file{bibtex8}, \biber): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[latin9]{inputenc} \usepackage[bibencoding=auto]{biblatex} -\end{lstlisting} +\end{ltxexample} % Since \kvopt{bibencoding}{auto} is the default setting, the option is omissible. The following setup will have the same effect: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[latin9]{inputenc} \usepackage{biblatex} -\end{lstlisting} +\end{ltxexample} \item \utf encoding in the \file{tex} file, Latin\,1 (\acr{ISO}-8859-1) in the \file{bib} file with \pdftex or traditional \tex (\file{bibtex8}, \biber): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[utf8]{inputenc} \usepackage[bibencoding=latin1]{biblatex} -\end{lstlisting} +\end{ltxexample} The same scenario with \xetex or \luatex in native \utf mode: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[bibencoding=latin1]{biblatex} -\end{lstlisting} +\end{ltxexample} \item Using \utf encoding in both the \file{tex} and the \file{bib} file is not possible with traditional \bibtex or \bin{bibtex8} since neither of them is capable of handling \utf. Unless you switch to \biber, you need to use an 8-bit encoding such as Latin\,1 (see above) or resort to Ascii notation in this case: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[utf8]{inputenc} \usepackage[bibencoding=ascii]{biblatex} -\end{lstlisting} +\end{ltxexample} The same scenario with \xetex or \luatex in native \utf mode: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[bibencoding=ascii]{biblatex} -\end{lstlisting} +\end{ltxexample} \end{itemize} @@ -1920,30 +1939,30 @@ The same scenario with \xetex or \luatex in native \utf mode: \item Transparent \utf workflow, \ie \utf encoding in both the \file{tex} and the \file{bib} file with \pdftex or traditional \tex: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[utf8]{inputenc} \usepackage[bibencoding=auto]{biblatex} -\end{lstlisting} +\end{ltxexample} % Since \kvopt{bibencoding}{auto} is the default setting, the option is omissible: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[utf8]{inputenc} \usepackage{biblatex} -\end{lstlisting} +\end{ltxexample} The same scenario with \xetex or \luatex in native \utf mode: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage{biblatex} -\end{lstlisting} +\end{ltxexample} \item It is even possible to combine an 8-bit encoded \file{tex} file with \utf encoding in the \file{bib} file, provided that all characters in the \file{bib} file are also covered by the selected 8-bit encoding: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[latin1]{inputenc} \usepackage[bibencoding=utf8]{biblatex} -\end{lstlisting} +\end{ltxexample} \end{itemize} @@ -1953,10 +1972,10 @@ Some workarounds may be required when using traditional \tex or \pdftex with \ut \item If you are affected by this problem, try setting the \opt{safeinputenc} option: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[utf8]{inputenc} \usepackage[safeinputenc]{biblatex} -\end{lstlisting} +\end{ltxexample} % If this option is enabled, \biblatex will ignore \sty{inputenc}'s \opt{utf8} option and use Ascii. \biber will then try to convert the \file{bib} data to Ascii notation. For example, it will convert \texttt{\k{S}} to |\k{S}|. This option is similar to setting \kvopt{texencoding}{ascii} but will only take effect in this specific scenario (\sty{inputenc}\slash \sty{inputenx} with \utf). This workaround takes advantage of the fact that both Unicode and the \utf transport encoding are backwards compatible with Ascii. @@ -2452,7 +2471,7 @@ This option controls whether \bibfield{eprint} information is printed. \paragraph{Internal} \label{use:opt:pre:int} -The default settings of the following preamble options are controlled by bibliography and citation styles. Apart from the \opt{pagetracker} and \opt{firstinits} options, which you may want to adapt, there is normally no need to set them explicitly. +The default settings of the following preamble options are controlled by bibliography and citation styles. Apart from the \opt{pagetracker} and \opt{giveninits} options, which you may want to adapt, there is normally no need to set them explicitly. \begin{optionlist} @@ -2557,13 +2576,13 @@ This option controls the parenthesis tracker which keeps track of nested parenth The maximum permitted nesting level of parentheses and brackets. If parentheses and brackets are nested deeper than this value, \biblatex will issue errors. -\boolitem[false]{firstinits} +\boolitem[false]{giveninits} -When enabled, all first and middle names will be rendered as initials. The option will affect the \cmd{iffirstinits} test from \secref{aut:aux:tst}. +When enabled, all first and middle names will be rendered as initials. The option will affect the \cmd{ifgiveninits} test from \secref{aut:aux:tst}. -\boolitem[false]{sortfirstinits} +\boolitem[false]{sortgiveninits} -When enabled, sorting names will only use their initials. \BiberOnlyMark This is separate from \opt{firstinits} in case users want to show only inits but sort on full names, for example. +When enabled, sorting names will only use their initials. \BiberOnlyMark This is separate from \opt{giveninits} in case users want to show only inits but sort on full names, for example. \boolitem[false]{terseinits} @@ -2698,10 +2717,11 @@ With the standard styles, the \bibfield{translator} is printed after the title b As per \opt{useauthor}, \opt{useeditor} and \opt{usetranslator}, all name lists defined in the data model have an option controlling their behaviour in sorting and labelling automatically defined. Global, per-type and per-entry options called <use$<$name$>$>are automatically created. + \boolitem[false]{useprefix} Whether the name prefix (von, van, of, da, de, della, etc.) is considered when printing the last name in citations. This also affects the sorting and formatting of the bibliography as well as the generation of certain types of labels. If this option is enabled, \biblatex always precedes the last name with the prefix. For example, Ludwig van Beethoven would be cited as «Beethoven» and alphabetized as «Beethoven, Ludwig van» by default. If this option is enabled, he is cited as «van Beethoven» and alphabetized as «Van Beethoven, Ludwig» instead. -\BiberOnlyMark With \biber, this option is also settable on a per-type basis. +\BiberOnlyMark With \biber, this option is also settable on a per-type scope. With \biblatexml datasources, this is settable on per-namelist and per-name scopes. \optitem{indexing}{\opt{true}, \opt{false}, \opt{cite}, \opt{bib}} @@ -2727,8 +2747,7 @@ If this option is enabled, the entry is excluded from the list of shorthands. It \boolitem[false]{skipbiblist}[\BiberOnly] -This is the same as the \opt{skiplos} option when using the \bibtex backend. It is renamed for \biber to be consistent with the more generalised bibliography list functionality See \secref{use:bib:biblist}. -If this option is enabled, the entry is excluded from the list of shorthands. It is still included in the bibliography and it may also be cited by shorthand. +This is the same as the \opt{skiplos} option when using the \bibtex backend. It is renamed for \biber to be consistent with the more generalised bibliography list functionality, see \secref{use:bib:biblist}. If this option is enabled, the entry is excluded from and bibliography lists. It is still included in the bibliography and it may also be cited by shorthand etc. This option is also settable on a per-type basis. \boolitem[false]{skiplab} @@ -3022,12 +3041,12 @@ Using special fields such as \bibfield{sortkey}, \bibfield{sortname}, or \bibfie Adds a \prm{resource}, such as a \file{.bib} file, to the default resource list. This command is only available in the preamble. It replaces the \cmd{bibliography} legacy command. Note that files must be specified with their full name, including the extension. Do not omit the \file{.bib} extension from the filename. Also note that the \prm{resource} is a single resource. Invoke \cmd{addbibresource} multiple times to add more resources, for example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \addbibresource{bibfile1.bib} \addbibresource{bibfile2.bib} \addbibresource[location=remote]{http://www.citeulike.org/bibtex/group/9517} \addbibresource[location=remote,label=lan]{ftp://192.168.1.57/~user/file.bib} -\end{lstlisting} +\end{ltxexample} % Since the \prm{resource} string is read in a verbatim-like mode, it may contain arbitrary characters. The only restriction is that any curly braces must be balanced. The following \prm{options} are available: @@ -3049,15 +3068,13 @@ The type of resource. Currently, the only supported type is \texttt{file}. The data type (format) of the resource. The following formats are currently supported: -\begin{valuelist}[zoterordfxml] +\begin{valuelist} \item[bibtex] \bibtex format. -\item[ris]\BiberOnlyMark Research Information Systems (\acr{RIS}) format.\fnurl{http://en.wikipedia.org/wiki/RIS_(file_format)} Note that an \texttt{ID} tag is required in all \acr{RIS} records. The \texttt{ID} value corresponds to the entry key. Support for this format is experimental. - -\item[zoterordfxml]\BiberOnlyMark Zotero \acr{RDF}/\acr{XML} format. Support for this format is experimental. Refer to the \biber manual for details. +\item[biblatexml]\BiberOnlyMark Experimental XML format for \biblatex. See \secref{apx:biblatexml}. -\item[endnotexml]\BiberOnlyMark EndNote \acr{XML} format. Support for this format is experimental. Refer to the \biber manual for details. +\item[ris]\BiberOnlyMark Research Information Systems (\acr{RIS}) format.\fnurl{http://en.wikipedia.org/wiki/RIS_(file_format)} Note that an \texttt{ID} tag is required in all \acr{RIS} records. The \texttt{ID} value corresponds to the entry key. Support for this format is experimental. \end{valuelist} @@ -3235,9 +3252,9 @@ In terms of sorting the list, the default is to sort use the sorting scheme name The most common bibliography list is a list of shorthand abbreviations for certain entries and so this has a convenience alias \cmd{printshorthands[\dots]} for backwards compatibility which is defined as: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printbiblist[...]{shorthand} -\end{lstlisting} +\end{ltxexample} \biblatex provides automatic support for data source fields in the default data model marked as <Label fields> (See \secref{bib:fld:dat}). Such fields automatically have defined for them: @@ -3249,16 +3266,16 @@ The most common bibliography list is a list of shorthand abbreviations for certa % Therefore only a minimal setup is required to print bibliography lists with such fields. For example, to print a list of journal title abbreviations, you can minimally put this in your preamble: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBibliographyDriver{shortjournal}{% \printfield{journaltitle}} -\end{lstlisting} +\end{ltxexample} % Then you can put this in your document where you want to print the list: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printbiblist[title={Journal Shorthands}]{shortjournal} -\end{lstlisting} +\end{ltxexample} % Since \bibfield{shortjournal} is defined in the default data model as a <Label field>, this example: \begin{itemize} @@ -3266,32 +3283,34 @@ Since \bibfield{shortjournal} is defined in the default data model as a <Label f \item Uses the automatically created <shortjournal> bibliography list filter to return only entries with a \bibfield{shortjournal} field in the \file{.bbl} \item Uses the defined <shortjournal> bibliography driver to print the entries \item Uses the default <biblist> heading but overrides the title with <Journal Shorthands> -\item Uses the current bibliography context sorting scheme no scheme exists with the name \bibfield{shortjournal} +\item Uses the current bibliography context sorting scheme if no scheme exists with the name \bibfield{shortjournal} \end{itemize} % Often, you will want to sort on the label field of the list and since a sorting scheme is automatically picked up if it is named after the list, in this case you could simply do: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSortingScheme{shortjournal}{ \sort{ \field{shortjournal} } } -\end{lstlisting} +\end{ltxexample} Naturally all defaults can be overridden by options to \cmd{printbiblist} and definitions of the environments, filters etc. and in this way arbitrary types of bibliography lists can be printed containing a variety of information from the bibliography data. \end{ltxsyntax} Bibliography lists are often used to print lists of various kinds of shorthands and this can result in duplicate entries if more than one bibliography entry has the same shorthand. For example, several journal articles in the same journal would result in duplicate entries in a list of journal shorthands. You can use the fact that such lists automatically pick up a \cmd{bibcheck} with the same name as the list to define a check to remove duplicates. If you are defining a list to print all of the journal shorthands using the \bibfield{shortjournal} field, you could define a \cmd{bibcheck} like this: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibcheck{shortjournal}{% - \iffieldundef{shortjournal}{\skipentry}{% - \iffieldundef{journal}{\skipentry}{% - \ifcsdef{\strfield{shortjournal}=\strfield{journal}} + \iffieldundef{shortjournal} + {\skipentry} + {\iffieldundef{journal} {\skipentry} - {\savefieldcs{journal}{\strfield{shortjournal}=\strfield{journal}}}}}} -\end{lstlisting} + {\ifcsdef{\strfield{shortjournal}=\strfield{journal}} + {\skipentry} + {\savefieldcs{journal}{\strfield{shortjournal}=\strfield{journal}}}}}} +\end{ltxexample} \subsubsection{Bibliography Sections} \label{use:bib:sec} @@ -3354,7 +3373,7 @@ Assigns a \prm{key} to a \prm{category}, to be used in conjunction with the \opt This command defines bibliography environments. The \prm{name} is an identifier passed to the \opt{env} option of \cmd{printbibliography} and \cmd{printbiblist} when selecting the environment. The \prm{begin code} is \latex code to be executed at the beginning of the environment; the \prm{end code} is executed at the end of the environment; the \prm{item code} is code to be executed at the beginning of each entry in the bibliography or a bibliography list. Here is an example of a definition based on the standard \latex \env{list} environment: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibenvironment{bibliography} {\list{} {\setlength{\leftmargin}{\bibhang}% @@ -3363,7 +3382,7 @@ This command defines bibliography environments. The \prm{name} is an identifier \setlength{\parsep}{\bibparsep}}} {\endlist} {\item} -\end{lstlisting} +\end{ltxexample} % As seen in the above example, usage of \cmd{defbibenvironment} is roughly similar to \cmd{newenvironment} except that there is an additional mandatory argument for the \prm{item code}. @@ -3371,11 +3390,11 @@ As seen in the above example, usage of \cmd{defbibenvironment} is roughly simila This command defines bibliography headings. The \prm{name} is an identifier to be passed to the \opt{heading} option of \cmd{printbibliography} or \cmd{printbibheading} and \cmd{printbiblist} when selecting the heading. The \prm{code} should be \latex code generating a fully"=fledged heading, including page headers and an entry in the table of contents, if desired. If \cmd{printbibliography} or \cmd{printbiblist} are invoked with a \opt{title} option, the title will be passed to the heading definition as |#1|. If not, the default title specified by the optional \prm{title} argument is passed as |#1| instead. The \prm{title} argument will typically be \cmd{bibname}, \cmd{refname}, or \cmd{biblistname} (see \secref{aut:lng:key:bhd}). This command is often needed after changes to document headers in the preamble. Here is an example of a simple heading definition: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibheading{bibliography}[\bibname]{% \chapter*{#1}% \markboth{#1}{#1}} -\end{lstlisting} +\end{ltxexample} \end{ltxsyntax} @@ -3469,23 +3488,23 @@ Matches all entries assigned to \prm{category} with \cmd{addtocategory}. Here is an example of a filter expression: -\begin{lstlisting}[style=latex,keywords={and,or,not,type,keyword}]{} +\begin{ltxexample}[style=latex,keywords={and,or,not,type,keyword}]{} \defbibfilter{example}{% ( type=book or type=inbook ) and keyword=abc and not keyword={x y z} } -\end{lstlisting} +\end{ltxexample} % This filter will match all entries whose entry type is either \bibtype{book} or \bibtype{inbook} and whose \bibfield{keywords} field includes the keyword <\texttt{abc}> but not <\texttt{x y z}>. As seen in the above example, all elements are separated by whitespace (spaces, tabs, or line endings). There is no spacing around the equal sign. The logical operators are evaluated with the \cmd{ifboolexpr} command from the \sty{etoolbox} package. See the \sty{etoolbox} manual for details about the syntax. The syntax of the \cmd{ifthenelse} command from the \sty{ifthen} package, which has been employed in older versions of \biblatex, is still supported. This is the same test using \sty{ifthen}-like syntax: -\begin{lstlisting}[style=ifthen,morekeywords={\\type,\\keyword}]{} +\begin{ltxexample}[style=ifthen,morekeywords={\\type,\\keyword}]{} \defbibfilter{example}{% \( \type{book} \or \type{inbook} \) \and \keyword{abc} \and \not \keyword{x y z} } -\end{lstlisting} +\end{ltxexample} % Note that custom filters are local to the reference section in which they are used. Use the \texttt{section} filter of \cmd{printbibliography} to select a different section. This is not possible from within a custom filter. @@ -3495,23 +3514,23 @@ Note that custom filters are local to the reference section in which they are us Defines the custom bibliography filter \prm{name}, to be used via the \opt{check} option of \cmd{printbibliography}. \cmd{defbibcheck} is similar in concept to \cmd{defbibfilter} but much more low-level. Rather than a high-level expression, the \prm{code} is \latex code, much like the code used in driver definitions, which may perform arbitrary tests to decide whether or not a given entry is to be printed. The bibliographic data of the respective entry is available when the \prm{code} is executed. Issuing the command \cmd{skipentry} in the \prm{code} will cause the current entry to be skipped. For example, the following filter will only output entries with an \bibfield{abstract} field: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibcheck{<<abstract>>}{% \iffieldundef{abstract}{<<\skipentry>>}{}} ... \printbibliography[<<check=abstract>>] -\end{lstlisting} +\end{ltxexample} % The following check will exclude all entries published before the year 2000: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibcheck{recent}{% \iffieldint{year} {\ifnumless{\thefield{year}}{2000} {\skipentry} {}} {\skipentry}} -\end{lstlisting} +\end{ltxexample} % See the author guide, in particular \secref{aut:aux:tst,aut:aux:ife}, for further details. @@ -3524,12 +3543,13 @@ References in a bibliography are cited and printed in a <context>. The context d \begin{itemize} \item A sorting scheme + \item A scheme for constructing the sorting keys for names \end{itemize} % The point of bibliography contexts is twofold. Firstly, they are used to set options which influence a printed bibliography and secondly to influence the data printed by citation commands. The former use is the most common when one needs to print more than one bibliography list with different, for example, sorting. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[sorting=nyt]{biblatex} \begin{document} \cite{one} @@ -3537,13 +3557,13 @@ The former use is the most common when one needs to print more than one bibliogr \printbibliography \newrefcontext[sorting=ydnt] \printbibliography -\end{lstlisting} +\end{ltxexample} % Here we print two bibliographies, one with the default <nyt> sorting scheme and one with the <ydnt> sorting scheme. To demonstrate the second type of use of bibliography contexts, we have to understand that the actual data for an entry can vary depending on the context. This is most obvious in the case of the \opt{extra*} fields like \opt{extrayear} which are generated by the backend according to the order of entries \emph{after} sorting so that they come out in the expected <a, b, c> order. This clearly shows that the \emph{data} in an entry can be different between sorting schemes. If a document contains more than one bibliography list with different sorting schemes, it can happen then that the \file{.bbl} contains sorting lists with the same entry but containing different data (a different value for \bibfield{extrayear}, for example). The purpose of bibliography contexts is to encapsulate things inside a context so that \biblatex can use the correct entry data. An example is printing a bibliography list with a different sorting order to the global sorting order where the \opt{extra*} fields are different for the same entry between sorting lists: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \usepackage[sorting=nyt,style=authoryear]{biblatex} \DeclareSortingScheme{yntd}{ \sort{ @@ -3569,7 +3589,7 @@ To demonstrate the second type of use of bibliography contexts, we have to under \cite{one} \cite{two} \printbibliography -\end{lstlisting} +\end{ltxexample} % Here, the second use of the citations, along with the \cmd{printbibliography} command will use data from the context of the custom <yntd> sorting scheme which may well be different from the data associated with the default <nyt> scheme. That is, the citation labels (in an authoryear style which uses \opt{extrayear}) may be different \emph{for the exact same entries} between different bibliography contexts and so the citations themselves may look different. @@ -3585,6 +3605,10 @@ Wraps a bibliography context environment. The options define the context attribu Specify a sorting scheme defined previously with \cmd{DeclareSortingScheme}. This scheme is used to determine which data to retrieve and/or print for an entry in the commands inside the context. +\valitem{sortingnamekeyscheme}{name} + +Specify a sorting name key scheme defined previously with \cmd{DeclareSortingNamekeyScheme}. This scheme is used to construct sorting keys for names inside the context. + \end{optionlist*} % The \opt{refcontext} environment cannot be nested and \biblatex will generate an error if you try to do so. @@ -3596,6 +3620,30 @@ This command is similar to the \env{refcontext} environment except that it is a % At the beginning of the document, there is always a global context containing global settings for each of the context attributes. +\begin{ltxsyntax} + +\cmditem{assignrefcontextkeyws}[key=value, \dots]{keyword1,keyword2, ...} +\cmditem{assignrefcontextcats}[key=value, \dots]{category1, category2, ...} +\cmditem{assignrefcontextentries}[key=value, \dots]{entrykey1, entrykey2, ...} + +\end{ltxsyntax} +These commands automate putting citations into refcontexts. Instead of wrapping citation commands in \env{refcontext} environments, which might be error-prone and tedious, you can register a comma"=separated list of \prm{keywords}, \prm{categories} or \prm{entrykeys} which, respectively, make the entries with any of the specified keywords, entries in any of the specified categories (see \secref{use:use:div}) or entries with any of the specified citation keys be cited in a particular refcontext specified by the \prm{refcontext key/values} which are parsed exactly as the per \env{refcontext} options. Such refcontext auto-assignments are specific to the current refsection. This is useful if you have multiple bibliographies, differently sorted whilst using \opt{defernumbers} as then \biblatex needs to know which bibliography (which is always in a particular refcontext) it should construct the citation from since the citations could well have different numbers in different bibliographies. You may specify the same citation key in any of these commands but be aware that assignment is done in the order \prm{keywords}, \prm{categories}, \prm{entrykeys} with the later specifications overriding the earlier. An example: + +\begin{ltxexample}[style=latex]{} +\assignrefcontextentries[sorting=nty]{key1,key2} +\cite{key1}, \cite{key2} +\end{ltxexample} +% +This forces all citations of entries \bibfield{key1} and \bibfield{key2} to be drawn from the refcontext specified by \opt{sorting=nty}. It is identical in function to: + +\begin{ltxexample}[style=latex]{} +\begin{refcontext}[sorting=nty] +\cite{key1}, \cite{key2} +\end{refcontext} +\end{ltxexample} +% +which is not so convenient as such manual specification of refcontexts for citations requires manual insertion of refcontext changing commands wherever the citations occur. + \subsubsection{Dynamic Entry Sets} \label{use:bib:set} @@ -3682,30 +3730,30 @@ This command, which is only provided by the numeric styles, prints numeric citat This package supports a class of special citation commands called <multicite> commands. The point of these commands is that their argument is a list of citations where each item forms a fully qualified citation with a pre- and\slash or postnote. This is particularly useful with parenthetical citations and citations given in footnotes. It is also possible to assign a pre- and\slash or postnote to the entire list. The multicite commands are built on top of backend commands like \cmd{parencite} and \cmd{footcite}. The citation style provides a multicite definition with \cmd{DeclareMultiCiteCommand} (see \secref{aut:cbx:cbx}). The following example illustrates the syntax of multicite commands: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \parencites[35]{key1}[88--120]{key2}[23]{key3} -\end{lstlisting} +\end{ltxexample} % The format of the arguments is similar to that of the regular citation commands, except that only one citation command is given. If only one optional argument is given for an item in the list, it is taken as a postnote. If you want to specify a prenote but no postnote, you need to leave the second optional argument of the respective item empty: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \parencites[35]{key1}[chapter 2 in][]{key2}[23]{key3} -\end{lstlisting} +\end{ltxexample} % In addition to that, the entire citation list may also have a pre- and\slash or postnote. The syntax of these global notes differs from other optional arguments in that they are given in parentheses rather than the usual brackets: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \parencites<<(>>and chapter 3<<)>>[35]{key1}[78]{key2}[23]{key3} \parencites<<(>>Compare<<)()>>[35]{key1}[78]{key2}[23]{key3} \parencites<<(>>See<<)(>>and the introduction<<)>>[35]{key1}[78]{key2}[23]{key3} -\end{lstlisting} +\end{ltxexample} % Note that the multicite commands keep on scanning for arguments until they encounter a token that is not the start of an optional or mandatory argument. If a left brace or bracket follows a multicite command, you need to mask it by adding \cmd{relax} or a control space (a backslash followed by a space) after the last valid argument. This will cause the scanner to stop. -\begin{lstlisting}[style=latex,showspaces]{} +\begin{ltxexample}[style=latex,showspaces]{} \parencites[35]{key1}[78]{key2}<<\relax>>[...] \parencites[35]{key1}[78]{key2}<<\ >>{...} -\end{lstlisting} +\end{ltxexample} % By default, this package provides the following multicite commands which correspond to regular commands from \secref{use:cit:std, use:cit:cbx}: @@ -3986,30 +4034,30 @@ The \opt{natbib} package option loads a \sty{natbib} compatibility module. The m The \opt{mcite} package option loads a special citation module which provides \sty{mcite}\slash \sty{mciteplus}-like citation commands. Strictly speaking, what the module provides are wrappers for the commands of the main citation style. For example, the following command: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \mcite{key1,setA,*keyA1,*keyA2,*keyA3,key2,setB,*keyB1,*keyB2,*keyB3} -\end{lstlisting} +\end{ltxexample} % is essentially equivalent to this: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibentryset{setA}{keyA1,keyA2,keyA3}% \defbibentryset{setB}{keyB1,keyB2,keyB3}% \cite{key1,setA,key2,setB} -\end{lstlisting} +\end{ltxexample} % The \cmd{mcite} command will work with any style since the \cmd{cite} backend command is controlled by the main citation style as usual. The \texttt{mcite} module provides wrappers for the standard commands in \secref{use:cit:std,use:cit:cbx}. See \tabref{use:cit:mct:tab2} for an overview. Pre and postnotes as well as starred variants of all commands are also supported. The parameters will be passed to the backend command. For example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \mcite*[pre][post]{setA,*keyA1,*keyA2,*keyA3} -\end{lstlisting} +\end{ltxexample} % will execute: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibentryset{setA}{keyA1,keyA2,keyA3}% \cite*[pre][post]{setA} -\end{lstlisting} +\end{ltxexample} % Note that the \texttt{mcite} module is not a compatibility module. It provides commands which are very similar but not identical in syntax and function to \sty{mcite}'s commands. When migrating from \sty{mcite}\slash\sty{mciteplus} to \biblatex, legacy files must be updated. With \sty{mcite}, the first member of the citation group is also the identifier of the group as a whole. Borrowing an example from the \sty{mcite} manual, this group: @@ -4035,15 +4083,15 @@ Note that the \texttt{mcite} module is not a compatibility module. It provides c \label{use:cit:mct:tab1} \end{table} -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite{<<glashow>>,*salam,*weinberg} -\end{lstlisting} +\end{ltxexample} % consists of three entries and the entry key of the first one also serves as identifier of the entire group. In contrast to that, a \biblatex entry set is an entity in its own right. Therefore, it requires a unique entry key which is assigned to the set as it is defined: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \mcite{<<set1>>,*glashow,*salam,*weinberg} -\end{lstlisting} +\end{ltxexample} % Once defined, an entry set is handled like any regular entry in a \file{bib} file. When using one of the \texttt{numeric} styles which ship with \texttt{biblatex} and activating its \opt{subentry} option, it is even possible to refer to set members. See \tabref{use:cit:mct:tab2} for some examples. Restating the original definition of the set is redundant, but permissible. In contrast to \sty{mciteplus}, however, restating a part of the original definition is invalid. Use the entry key of the set instead. @@ -4079,14 +4127,14 @@ The \biblatex package provides translations for key terms such as <edition> or < This command is used to define localization strings. The \prm{language} must be a language name known to the \sty{babel}/\sty{polyglossia} packages, \ie one of the identifiers listed in \tabref{bib:fld:tab1} on page \pageref{bib:fld:tab1}. The \prm{definitions} are \keyval pairs which assign an expression to an identifier: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DefineBibliographyStrings{american}{% bibliography = {Bibliography}, shorthands = {Abbreviations}, editor = {editor}, editors = {editors}, } -\end{lstlisting} +\end{ltxexample} % A complete list of all keys supported by default is given is \secref{aut:lng:key}. Note that all expressions should be capitalized as they usually are when used in the middle of a sentence. The \biblatex package will automatically capitalize the first word when required at the beginning of a sentence. Expressions intended for use in headings should be capitalized in a way that is suitable for titling. In contrast to \cmd{DeclareBibliographyStrings}, \cmd{DefineBibliographyStrings} overrides both the full and the abbreviated version of the string. See \secref{aut:lng:cmd} for further details. @@ -4103,11 +4151,11 @@ This command is used to restore the original definition of any commands modified This is a \latex frontend to \tex's \cmd{hyphenation} command which defines hyphenation exceptions. The \prm{language} must be a language name known to the \sty{babel}/\sty{polyglossia} packages. The \prm{text} is a whitespace"=separated list of words. Hyphenation points are marked with a dash: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DefineHyphenationExceptions{american}{% hy-phen-ation ex-cep-tion } -\end{lstlisting} +\end{ltxexample} \cmditem{NewBibliographyString}{key} @@ -4125,7 +4173,7 @@ The commands and facilities presented in this section may be used to adapt the f \subsubsection{Generic Commands and Hooks} \label{use:fmt:fmt} -The commands in this section may be redefined with \cmd{renewcommand} in the document preamble. Note that all commands starting with \cmd{mk\dots} take one argument. All of these commands are defined in \path{biblatex.def}. +The commands in this section may be redefined with \cmd{renewcommand} in the document preamble. Note that all commands starting with \cmd{mk\dots} take one argument. All of these commands are defined in \path{biblatex$_$.def}. \begin{ltxsyntax} @@ -4201,9 +4249,9 @@ Replaces \cmd{bibinithyphendelim} in the index. \csitem{revsdnamepunct} The punctuation to be printed between the first and last name parts when a name is reversed. Here is an example showing a name with the default comma as \cmd{revsdnamedelim}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} Jones<<,>> Edward -\end{lstlisting} +\end{ltxexample} This command should be used with \cmd{bibnamedelimd} as a reversed-name separator in formatting directives for name lists. Please refer to \secref{use:cav:nam} for further details. @@ -4231,19 +4279,19 @@ The delimiter printed between multiple items in a name list like \bibfield{autho \csitem{finalnamedelim} The delimiter printed instead of \cmd{multinamedelim} before the final name in a name list. The default is the localized term <and>, separated by interword spaces. Here is an example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} Michel Goossens<<,>> Frank Mittelbach <<and>> Alexander Samarin Edward Jones <<and>> Joe Williams -\end{lstlisting} +\end{ltxexample} % The comma in the first example is the \cmd{multinamedelim} whereas the string <and> in both examples is the \cmd{finalnamedelim}. See also \cmd{finalandcomma} in \secref{use:fmt:lng}. \csitem{revsdnamedelim} -An extra delimiter printed after the first name in a name list if the first name is reversed. The default is an empty string, \ie no extra delimiter will be printed. Here is an example showing a name list with a comma as \cmd{revsdnamedelim}: +An extra delimiter printed after the first name in a name list if the first name is reversed (only in lists with two names). The default is an empty string, \ie no extra delimiter will be printed. Here is an example showing a name list with a comma as \cmd{revsdnamedelim}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} Jones, Edward<<, and>> Joe Williams -\end{lstlisting} +\end{ltxexample} % In this example, the comma after <Edward> is the \cmd{revsdnamedelim} whereas the string <and> is the \cmd{finalnamedelim}, printed in addition to the former. @@ -4277,16 +4325,19 @@ The delimiter printed between the author\slash editor and the title by author-ti \csitem{nameyeardelim} The delimiter printed between the author\slash editor and the year by author-year citation styles. The default definition is an interword space. +\csitem{nonameyeardelim} +The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation styles. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used. The default definition is an interword space. + \csitem{labelalphaothers} A string to be appended to the non"=numeric portion of the \bibfield{labelalpha} field (\ie the field holding the citation label used by alphabetic citation styles) if the number of authors\slash editors exceeds the \opt{maxalphanames} threshold or the \bibfield{author}\slash \bibfield{editor} list was truncated in the \file{bib} file with the keyword <\texttt{and others}>. This will typically be a single character such as a plus sign or an asterisk. The default is a plus sign. This command may also be redefined to an empty string to disable this feature. In any case, it must be redefined in the preamble. \csitem{sortalphaothers}\BiberOnlyMark Similar to \cmd{labelalphaothers} but used in the sorting process. Setting it to a different value is advisable if the latter contains formatting commands, for example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \renewcommand*{\labelalphaothers}{\textbf{+}} \renewcommand*{\sortalphaothers}{+} -\end{lstlisting} +\end{ltxexample} % If \cmd{sortalphaothers} is not redefined, it defaults to \cmd{labelalphaothers}. @@ -4296,29 +4347,38 @@ The delimiter printed after the \prm{prenote} argument of a citation command. Se \csitem{postnotedelim} The delimiter printed before the \prm{postnote} argument of a citation command. See \secref{use:cit} for details. The default is a comma plus an interword space. -\cmditem{mkbibnamelast}{text} -This command, which takes one argument, is used to format the last name of all authors, editors, translators, etc. +\csitem{extpostnotedelim} +The delimiter printed between the citation and the parenthetical \prm{postnote} argument of a citation command when the postnote occurs outside of the citation parentheses. In the standard styles, this occurs when the citation uses the shorthand field of the entry. See \secref{use:cit} for details. The default is an interword space. -\cmditem{mkbibnamefirst}{text} -Similar to \cmd{mkbibnamelast}, but intended for the first name. +\cmditem{mkbibname<namepart>}{text} +This command, which takes one argument, is used to format the name part <namepart> of name list fields. The default datamodel defines the name parts <family>, <given>, <prefix> and <suffix> and therefore the following macros are automatically defined: -\cmditem{mkbibnameprefix}{text} -Similar to \cmd{mkbibnamelast}, but intended for the name prefix. +\begin{ltxexample} +\makebibnamefamily +\makebibnamegiven +\makebibnameprefix +\makebibnamesuffix +\end{ltxexample} +% +For backwards compatibility with the legacy \bibtex name parts, the following are also defined: -\cmditem{mkbibnameaffix}{text} -Similar to \cmd{mkbibnamelast}, but intended for the name affix. +\begin{ltxexample} +\makebibnamelast +\makebibnamefirst +\makebibnameaffix +\end{ltxexample} \csitem{relatedpunct} The separator between the \bibfield{relatedtype} bibliography localization string and the data from the first related entry. Here is an example with \cmd{relatedpunct} set to a dash: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} A. Smith. Title. 2000, (Orig. pub. as<<->>Origtitle) -\end{lstlisting} +\end{ltxexample} \csitem{relateddelim} The separator between the data of multiple related entries. The default definition is an optional dot plus linebreak. Here is an example where volumes A-E are related entries of the 5 volume main work: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} Donald E. Knuth. Computers & Typesetting. 5 vols. Reading, Mass.: Addison- Wesley, 1984-1986. Vol. A: The TEXbook. 1984. @@ -4326,7 +4386,7 @@ Vol. B: TEX: The Program. 1986. Vol. C: The METAFONTbook. By. 1986. Vol. D: METAFONT: The Program. 1986. Vol. E: Computer Modern Typefaces. 1986. -\end{lstlisting} +\end{ltxexample} \end{ltxsyntax} @@ -4361,9 +4421,9 @@ Similar to \cmd{mkbibdatelong} but using the language specific short date format Prints the comma to be inserted before the final <and> in a list, if applicable in the respective language. Here is an example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} Michel Goossens, Frank Mittelbach<<,>> and Alexander Samarin -\end{lstlisting} +\end{ltxexample} % \cmd{finalandcomma} is the comma before the word <and>. See also \cmd{multinamedelim}, \cmd{finalnamedelim}, \cmd{textcitedelim}, and \cmd{revsdnamedelim} in \secref{use:fmt:fmt}. @@ -4371,9 +4431,9 @@ Michel Goossens, Frank Mittelbach<<,>> and Alexander Samarin Prints the semicolon to be inserted before the final <and> in a list of lists, if applicable in the respective language. Here is an example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} Goossens, Mittelbach, and Samarin; Bertram and Wenworth<<;>> and Knuth -\end{lstlisting} +\end{ltxexample} % \cmd{finalandsemicolon} is the semicolon before the word <and>. See also \cmd{textcitedelim} in \secref{use:fmt:fmt}. @@ -4495,21 +4555,21 @@ Generic command which typesets an acronym using the small caps variant of the cu Automatically converts the \prm{character} to its uppercase form if \biblatex's punctuation tracker would capitalize a localization string at the current location. This command is robust. It is useful for conditional capitalization of certain strings in an entry. Note that the \prm{character} argument is a single character given in lowercase. For example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \autocap{s}pecial issue -\end{lstlisting} +\end{ltxexample} % will yield <Special issue> or <special issue>, as appropriate. If the string to be capitalized starts with an inflected character given in Ascii notation, include the accent command in the \prm{character} argument as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \autocap{\'e}dition sp\'eciale -\end{lstlisting} +\end{ltxexample} % This will yield <Édition spéciale> or <édition spéciale>. If the string to be capitalized starts with a command which prints a character, such as \cmd{ae} or \cmd{oe}, simply put the command in the \prm{character} argument: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \autocap{\oe}uvres -\end{lstlisting} +\end{ltxexample} % This will yield <Œuvres> or <œuvres>. @@ -4525,15 +4585,15 @@ The facilities discussed in this section are specific to certain localization mo The American localization module uses \cmd{uspunctuation} from \secref{aut:pct:cfg} to enable <American-style> punctuation. If this feature is enabled, all trailing commas and periods after \cmd{mkbibquote} will be moved inside the quotes. If you want to disable this feature, use \cmd{stdpunctuation} as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DefineBibliographyExtras{american}{% \stdpunctuation } -\end{lstlisting} +\end{ltxexample} % By default, the <American punctuation> feature is enabled by the \texttt{american} localization module only. The above code is only required if you want American localization without American punctuation. Since standard punctuation is the package default, it would be redundant with any other language. -It is highly advisable to always specify \texttt{american}, \texttt{british}, \texttt{australian}, etc. rather than \texttt{english} when loading the \sty{babel}/\sty{polyglossia} packages to avoid any possible confusion. Older versions of the \sty{babel} package used to treat \opt{english} as an alias for \opt{british}; more recent ones treat it as an alias for \opt{american}. The biblatex package essentially treats \texttt{english} as an alias for \opt{american}, except for the above feature which is only enabled if \texttt{american} is requested explicitly. +It is highly advisable to always specify \texttt{american}, \texttt{british}, \texttt{australian}, etc. rather than \texttt{english} when loading the \sty{babel}/\sty{polyglossia} packages to avoid any possible confusion. Older versions of the \sty{babel} package used to treat \opt{english} as an alias for \opt{british}; more recent ones treat it as an alias for \opt{american}. The \biblatex package essentially treats \texttt{english} as an alias for \opt{american}, except for the above feature which is only enabled if \texttt{american} is requested explicitly. \subsubsection{Spanish} \label{use:loc:esp} @@ -4701,18 +4761,18 @@ If \cmd{printbibliography} is used inside a \env{refsection} environment, it aut % Note the definition of the bibliography heading in the above example. This is the definition taking care of the subheadings in the bibliography. The main heading is generated with a plain \cmd{chapter} command in this case. The \biblatex package automatically sets a label at the beginning of every \env{refsection} environment, using the standard \cmd{label} command. The identifier used is the string \texttt{refsection:} followed by the number of the respective \env{refsection} environment. The number of the current section is accessible via the \cnt{refsection} counter. When using the \opt{section} option of \cmd{printbibliography}, this counter is also set locally. This means that you may use the counter in heading definitions to print subheadings like «References for Chapter 3», as shown above. You could also use the title of the respective chapter as a subheading by loading the \sty{nameref} package and using \cmd{nameref} instead of \cmd{ref}: -\begin{lstlisting}[style=latex] +\begin{ltxexample} \usepackage{<<nameref>>} \defbibheading{subbibliography}{% \section*{<<\nameref{refsection:\therefsection}>>}} -\end{lstlisting} +\end{ltxexample} % Since giving one \cmd{printbibliography} command for each part of a subdivided bibliography is tedious, \biblatex provides a shorthand. The \cmd{bibbysection} command automatically loops over all reference sections. This is equivalent to giving one \cmd{printbibliography} command for every section but has the additional benefit of automatically skipping sections without references. In the example above, the bibliography would then be generated as follows: -\begin{lstlisting}[style=latex] +\begin{ltxexample} \printbibheading <<\bibbysection[heading=subbibliography]>> -\end{lstlisting} +\end{ltxexample} % When using a format with one cumulative bibliography subdivided by chapter (or any other document division) it may be more appropriate to use \env{refsegment} rather than \env{refsection} environments. The difference is that the \env{refsection} environment generates labels local to the environment while \env{refsegment} does not affect the generation of labels, hence they will be unique across the entire document. Note that when using \bibtex as the backend, \env{refsegment} environments do not require additional \file{aux} files. The next example could also be given in \secref{use:use:div} because, visually, it creates one global bibliography subdivided into multiple segments. @@ -4739,10 +4799,10 @@ When using a format with one cumulative bibliography subdivided by chapter (or a % The use of \env{refsegment} is similar to \env{refsection} and there is also a corresponding \opt{segment} option for \cmd{printbibliography}. The \biblatex package automatically sets a label at the beginning of every \env{refsegment} environment using the string \texttt{refsegment:} followed by the number of the respective \env{refsegment} environment as an identifier. There is a matching \cnt{refsegment} counter which may be used in heading definitions, as shown above. As with reference sections, there is also a shorthand command which automatically loops over all reference segments: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printbibheading <<\bibbysegment[heading=subbibliography]>> -\end{lstlisting} +\end{ltxexample} % This is equivalent to giving one \cmd{printbibliography} command for every segment in the current \env{refsection}. @@ -4768,17 +4828,17 @@ It is very common to subdivide a bibliography by certain criteria. For example, % You may also use more than two subdivisions: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printbibliography[<<type=article>>,...] \printbibliography[<<type=book>>,...] \printbibliography[<<nottype=article>>,<<nottype=book>>,...] -\end{lstlisting} +\end{ltxexample} % It is even possible to give a chain of different types of filters: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printbibliography[<<section=2>>,<<type=book>>,<<keyword=abc>>,<<notkeyword=xyz>>] -\end{lstlisting} +\end{ltxexample} % This would print all works cited in reference section~2 whose entry type is \bibtype{book} and whose \bibfield{keywords} field includes the keyword <abc> but not <xyz>. When using bibliography filters in conjunction with a numeric style, see \secref{use:cav:lab}. If you need complex filters with conditional expressions, use the \opt{filter} option in conjunction with a custom filter defined with \cmd{defbibfilter}. See \secref{use:bib:flt} for details on custom filters. @@ -4798,10 +4858,10 @@ This would print all works cited in reference section~2 whose entry type is \bib % Dividing a bibliography into primary and secondary sources is possible with a \bibfield{keyword} filter, as shown in the above example. In this case, with only two subdivisions, it would be sufficient to use one keyword as filter criterion: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printbibliography[<<keyword=primary>>,...] \printbibliography[<<notkeyword=primary>>,...] -\end{lstlisting} +\end{ltxexample} % Since \biblatex has no way of knowing if an item in the bibliography is considered to be primary or secondary literature, we need to supply the bibliography filter with the required data by adding a \bibfield{keywords} field to each entry in the \file{bib} file. These keywords may then be used as targets for the \opt{keyword} and \opt{notkeyword} filters, as shown above. It may be a good idea to add such keywords right away while building a \file{bib} file. @@ -4833,10 +4893,10 @@ An alternative way of subdividing the list of references are bibliography catego % In this case it would also be sufficient to use one category only: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printbibliography[<<category=primary>>,...] \printbibliography[<<notcategory=primary>>,...] -\end{lstlisting} +\end{ltxexample} % It is still a good idea to declare all categories used in the bibliography explicitly because there is a \cmd{bibbycategory} command which automatically loops over all categories. This is equivalent to giving one \cmd{printbibliography} command for every category, in the order in which they were declared. @@ -5046,7 +5106,7 @@ Styles which print the fields \bibfield{abstract} and\slash or \bibfield{annotat ... abstract = {This is an abstract of entry `key1'.} } -\end{ltxexample} +\end{lstlisting} % in the \file{bib} file, you may create a file named \path{bibabstract-key1.tex} and put the abstract in this file: @@ -5097,7 +5157,7 @@ Expands to \prm{true} or \prm{false}, depending on \sty{memoir}'s \cmd{bibintoc} If the \prm{postnote} argument to a citation command is a page number or page range, \biblatex will automatically prefix it with <p.> or <pp.> by default. This works reliably in typical cases, but sometimes manual intervention may be required. In this case, it is important to understand how this argument is handled in detail. First, \biblatex checks if the postnote is an Arabic or Roman numeral (case insensitive). If this test succeeds, the postnote is considered as a single page or other number which will be prefixed with <p.> or some other string which depends on the \sty{pagination} field (see \secref{bib:use:pag}). If it fails, a second test is performed to find out if the postnote is a range or a list of Arabic or Roman numerals. If this test succeeds, the postnote will be prefixed with <pp.> or some other string in the plural form. If it fails as well, the postnote is printed as is. Note that both tests expand the \prm{postnote}. All commands used in this argument must therefore be robust or prefixed with \cmd{protect}. Here are a few examples of \prm{postnote} arguments which will be correctly recognized as a single number, a range of numbers, or a list of numbers, respectively: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite[25]{key} \cite[vii]{key} \cite[XIV]{key} @@ -5107,66 +5167,66 @@ If the \prm{postnote} argument to a citation command is a page number or page ra \cite[XI \& XV]{key} \cite[3, 5, 7]{key} \cite[vii--x; 5, 7]{key} -\end{lstlisting} +\end{ltxexample} % In some other cases, however, the tests may get it wrong and you need to resort to the auxiliary commands \cmd{pno}, \cmd{ppno}, and \cmd{nopp} from \secref{use:cit:msc}. For example, suppose a work is cited by a special pagination scheme consisting of numbers and letters. In this scheme, the string <|27a|> would mean <page~27, part~a>. Since this string does not look like a number or a range to \biblatex, you need to force the prefix for a single number manually: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite[\pno~27a]{key} -\end{lstlisting} +\end{ltxexample} % There is also a \cmd{ppno} command which forces a range prefix as well as a \cmd{nopp} command which suppresses all prefixes: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite[\ppno~27a--28c]{key} \cite[\nopp 25]{key} -\end{lstlisting} +\end{ltxexample} % These commands may be used anywhere in the \prm{postnote} argument. They may also be used multiple times. For example, when citing by volume and page number, you may want to suppress the prefix at the beginning of the postnote and add it in the middle of the string: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite[VII, \pno~5]{key} \cite[VII, \pno~3, \ppno~40--45]{key} \cite[see][\ppno~37--46, in particular \pno~40]{key} -\end{lstlisting} +\end{ltxexample} % There are also two auxiliary command for suffixes like <the following page(s)>. Instead of inserting such suffixes literally (which would require \cmd{ppno} to force a prefix): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite[\ppno~27~sq.]{key} \cite[\ppno~55~sqq.]{key} -\end{lstlisting} +\end{ltxexample} % use the auxiliary commands \cmd{psq} and \cmd{psqq}. Note that there is no space between the number and the command. This space will be inserted automatically and may be modified by redefining the macro \cmd{sqspace}. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite[27\psq]{key} \cite[55\psqq]{key} -\end{lstlisting} +\end{ltxexample} % Since the postnote is printed without any prefix if it includes any character which is not an Arabic or Roman numeral, you may also type the prefix manually: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite[p.~5]{key} -\end{lstlisting} +\end{ltxexample} % It is possible to suppress the prefix on a per"=entry basis by setting the \bibfield{pagination} field of an entry to <\texttt{none}>, see \secref{bib:use:pag} for details. If you do not want any prefixes at all or prefer to type them manually, you can also disable the entire mechanism in the document preamble or the configuration file as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldFormat{postnote}{#1} -\end{lstlisting} +\end{ltxexample} % The \prm{postnote} argument is handled as a field and the formatting of this field is controlled by a field formatting directive which may be freely redefined. The above definition will simply print the postnote as is. See \secref{aut:cbx:fld, aut:bib:fmt} in the author guide for further details. \subsubsection{Name Parts and Name Spacing} \label{use:cav:nam} -The \biblatex package gives users and style authors very fine"=grained control of name spacing and the line"=breaking behavior of names, especially when they are using \biber as the backend. The commands discussed in the following are documented in \secref{use:fmt:fmt,aut:fmt:fmt}. This section is meant to give an overview of how they are put together. A note on terminology: a name \emph{part} is a basic part of the name, for example the first or the last name. Each part of a name may be a single name or it may be composed of multiple names. For example, the name part \enquote*{first name} may be composed of a first and a middle name. The latter are referred to as name \emph{elements} in this section. Let's consider a simple name first: \enquote{John Edward Doe}. This name is composed of the following parts: +The \biblatex package gives users and style authors very fine"=grained control of name spacing and the line"=breaking behavior of names, especially when they are using \biber as the backend. The commands discussed in the following are documented in \secref{use:fmt:fmt,aut:fmt:fmt}. This section is meant to give an overview of how they are put together. A note on terminology: a name \emph{part} is a basic part of the name, for example the given or the family name. Each part of a name may be a single name or it may be composed of multiple names. For example, the name part \enquote*{given name} may be composed of a given and a middle name. The latter are referred to as name \emph{elements} in this section. Let's consider a simple name first: \enquote{John Edward Doe}. This name is composed of the following parts: \begin{nameparts} -First & John Edward \\ +Given & John Edward \\ Prefix & --- \\ -Last & Doe \\ +Family & Doe \\ Suffix & --- \\ \end{nameparts} % @@ -5175,10 +5235,10 @@ The spacing, punctuation and line"=breaking behavior of names is controlled by s \begin{namedelims} a & \cmd{bibnamedelima} & Inserted by the backend after the first element of every name part if that element is less than three characters long and before the last element of every name part. \\ b & \cmd{bibnamedelimb} & Inserted by the backend between all elements of a name part where \cmd{bibnamedelima} does not apply. \\ -c & \cmd{bibnamedelimc} & Inserted by a formatting directive between the name prefix and the last name if \kvopt{useprefix}{true}. If \kvopt{useprefix}{false}, \cmd{bibnamedelimd} is used instead. \\ +c & \cmd{bibnamedelimc} & Inserted by a formatting directive between the name prefix and the family name if \kvopt{useprefix}{true}. If \kvopt{useprefix}{false}, \cmd{bibnamedelimd} is used instead. \\ d & \cmd{bibnamedelimd} & Inserted by a formatting directive between name parts where \cmd{bibnamedelimc} does not apply. \\ i & \cmd{bibnamedelimi} & Replaces \cmd{bibnamedelima/b} after initials \\ -p & \cmd{revsdnamepunct} & Inserted by a formatting directive after the last name when the name parts are reversed. +p & \cmd{revsdnamepunct} & Inserted by a formatting directive after the family name when the name parts are reversed. \end{namedelims} % This is how the delimiters are employed: @@ -5197,9 +5257,9 @@ Initials in the \file{bib} file get a special delimiter: Let's consider a more complex name: \enquote{Charles-Jean Étienne Gustave Nicolas de La Vallée Poussin}. This name is composed of the following parts: \begin{nameparts} -First & Charles-Jean Étienne Gustave Nicolas \\ +Given & Charles-Jean Étienne Gustave Nicolas \\ Prefix & de \\ -Last & La Vallée Poussin \\ +Family & La Vallée Poussin \\ Suffix & --- \\ \end{nameparts} % @@ -5241,12 +5301,12 @@ Packages using active characters, such as \sty{babel}, \sty{polyglossia}, \sty{c All \latex environments enclosed in \cmd{begin} and \cmd{end} form a group. This may have undesirable side effects if the environment contains anything that does not expect to be used within a group. This issue is not specific to \env{refsection} and \env{refsegment} environments, but it obviously applies to them as well. Since these environments will usually enclose much larger portions of the document than a typical \env{itemize} or similar environment, they are simply more likely to trigger problems related to grouping. If you observe any malfunctions after adding \env{refsection} environments to a document (for example, if anything seems to be <trapped> inside the environment), try the following syntax instead: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \chapter{...} <<\refsection>> ... <<\endrefsection>> -\end{lstlisting} +\end{ltxexample} % This will not from a group, but otherwise works as usual. As far as \biblatex is concerned, it does not matter which syntax you use. The alternative syntax is also supported by the \env{refsegment} environment. Note that the commands \cmd{newrefsection} and \cmd{newrefsegment} do not form a group. See \secref{use:bib:sec, use:bib:seg} for details. @@ -5298,29 +5358,29 @@ Note that all bibliographic data is written to the \file{bbl} file in the final % With the \path{plain.bst} style, \bibtex exports this entry to the \file{bbl} file as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \bibitem{companion} Michel Goossens, Frank Mittelbach, and Alexander Samarin. \newblock {\em The LaTeX Companion}. \newblock Addison-Wesley, Reading, Mass., 1994. -\end{lstlisting} +\end{ltxexample} % By default, \latex generates numeric citation labels, hence \cmd{bibitem} writes lines such as the following to the \file{aux} file: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \bibcite{companion}{1} -\end{lstlisting} +\end{ltxexample} % Implementing a different citation style implies that more data has to be transferred via the \file{aux} file. With the \sty{natbib} package, for example, the \file{aux} file contains lines like this one: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \bibcite{companion}{{1}{1994}{{Goossens et~al.}}{{Goossens, Mittelbach, and Samarin}}} -\end{lstlisting} +\end{ltxexample} % The \biblatex package supports citations in any arbitrary format, hence citation commands need access to all bibliographic data. What this would mean within the scope of the procedure outlined above becomes obvious when looking at the output of the \sty{jurabib} package which also makes all bibliographic data available in citations: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \bibcite{companion}{{Goossens\jbbfsasep Mittelbach\jbbstasep Samarin}% {}{{0}{}{book}{1994}{}{}{}{}{Reading, Mass.\bpubaddr{}Addison-Wesley% \bibbdsep{} 1994}}{{The LaTeX Companion}{}{}{2}{}{}{}{}{}}{\bibnf @@ -5328,7 +5388,7 @@ The \biblatex package supports citations in any arbitrary format, hence citation {}{}\Bibbstasep\bibnf{Samarin}{Alexander}{A.}{}{}}{\bibtfont{The LaTeX Companion}.\ \apyformat{Reading, Mass.\bpubaddr{} Addison-Wesley\bibbdsep{} 1994}}} -\end{lstlisting} +\end{ltxexample} % In this case, the contents of the entire \env{thebibliography} environment are effectively transferred via the \file{aux} file. The data is read from the \file{bbl} file, written to the \file{aux} file, read back from the \file{aux} file and then kept in memory. The bibliography itself is still generated as the \file{bbl} file is read in. The \biblatex package would also be forced to cycle all data through the \file{aux} file. This implies processing overhead and is also redundant because the data has to be kept in memory anyway. @@ -5371,7 +5431,7 @@ Let's consider the sample entry given above once more: % With \biblatex and the \biber backend, this entry is essentially exported in the following format: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \entry{companion}{book}{} \labelname{author}{3}{}{% {{uniquename=0,hash=...}{Goossens}{G.}{Michel}{M.}{}{}{}{}}% @@ -5392,14 +5452,14 @@ With \biblatex and the \biber backend, this entry is essentially exported in the \field{title}{The LaTeX Companion} \field{year}{1994} \endentry -\end{lstlisting} +\end{ltxexample} % As seen in this example, the data is presented in a structured format that resembles the structure of a \file{bib} file to some extent. At this point, no decision concerning the final format of the bibliography entry has been made. The formatting of the bibliography and all citations is controlled by \latex macros, which are defined in bibliography and citation style files. \subsection{Bibliography Styles} \label{aut:bbx} -A bibliography style is a set of macros which print the entries in the bibliography. Such styles are defined in files with the suffix \file{bbx}. The \biblatex package loads the selected bibliography style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard bibliography styles is included in \path{biblatex.def}. This file is loaded at the end of the package as well, prior to the selected bibliography style. +A bibliography style is a set of macros which print the entries in the bibliography. Such styles are defined in files with the suffix \file{bbx}. The \biblatex package loads the selected bibliography style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard bibliography styles is included in \path{biblatex$_$.def}. This file is loaded at the end of the package as well, prior to the selected bibliography style. \subsubsection{Bibliography Style Files} \label{aut:bbx:bbx} @@ -5446,17 +5506,22 @@ Defines a bibliography driver. A <driver> is a macro which handles a specific en If a bibliography driver covers more than one entry type, this command may be used to define an alias where \prm{entrytype} is the name of a defined driver. This command is optional. The \prm{alias} argument may also be an asterisk. In this case, the \prm{entrytype} driver serves as a fallback which is used if no specific driver for an entry has been defined. -\cmditem{DeclareBibliographyOption}{key}[value]{code} +\cmditem{DeclareBibliographyOption}[datatype]{key}[value]{code} -This command defines additional preamble options in \keyval format. The \prm{key} is the option key. The \prm{code} is arbitrary \tex code to be executed whenever the option is used. The value passed to the option is passed on to the \prm{code} as |#1|. The optional \prm{value} is a default value to be used if the bare key is given without any value. This is useful for boolean switches. For example, with a definition like the following: +This command defines additional preamble options in \keyval format. The \prm{key} is the option key. The \prm{code} is arbitrary \tex code to be executed whenever the option is used. The value passed to the option is passed on to the \prm{code} as |#1|. The optional \prm{value} is a default value to be used if the bare key is given without any value. This is useful for boolean switches. +The \prm{datatype} is a the datatype for the option. This optional parameter can only be used when using \biber which uses the value internally for various checks. If omitted, it defaults to <boolean>. For example, with a definition like the following: -\begin{lstlisting}[style=latex] -\DeclareBibliographyOption{somekey}[true]{...} -\end{lstlisting} +\begin{ltxexample} +\DeclareBibliographyOption[boolean]{somekey}[true]{...} +\end{ltxexample} % -giving <\texttt{somekey}> without a value is equivalent to <\kvopt{somekey}{true}>. +giving <\texttt{somekey}> without a value is equivalent to <\kvopt{somekey}{true}>. Valid \prm{datatype} values are defined in the default \biber Datamodel as: + +\begin{ltxexample} +\DeclareDatamodelConstant[type=list]{optiondatatypes}{boolean,integer,string,xml} +\end{ltxexample} -\cmditem{DeclareEntryOption}{key}[value]{code} +\cmditem{DeclareEntryOption}[datatype]{key}[value]{code} Similar to \cmd{DeclareBibliographyOption} but defines options which are settable on a per"=entry basis in the \bibfield{options} field from \secref{bib:fld:spc}. The \prm{code} is executed whenever \biblatex prepares the data of the entry for use by a citation command or a bibliography driver. @@ -5467,7 +5532,7 @@ Similar to \cmd{DeclareBibliographyOption} but defines options which are settabl Apart from defining bibliography drivers, the bibliography style is also responsible for the environments which control the layout of the bibliography and bibliography lists. These environments are defined with \cmd{defbibenvironment}. By default, \cmd{printbibliography} uses the environment \opt{bibliography}. Here is a definition suitable for a bibliography style which does not print any labels in the bibliography: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibenvironment{bibliography} {\list {} @@ -5477,11 +5542,11 @@ Apart from defining bibliography drivers, the bibliography style is also respons \setlength{\parsep}{\bibparsep}}} {\endlist} {\item} -\end{lstlisting} +\end{ltxexample} % This definition employs a \env{list} environment with hanging indentation, using the \cmd{bibhang} length register provided by \biblatex. It allows for a certain degree of configurability by using \cmd{bibitemsep} and \cmd{bibparsep}, two length registers provided by \biblatex for this very purpose (see \secref{aut:fmt:len}). The \texttt{authoryear} and \texttt{authortitle} bibliography styles use a definition similar to this example. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibenvironment{bibliography} {\list {\printfield[labelnumberwidth]{labelnumber}} @@ -5494,13 +5559,13 @@ This definition employs a \env{list} environment with hanging indentation, using \renewcommand*{\makelabel}[1]{\hss##1}} {\endlist} {\item} -\end{lstlisting} +\end{ltxexample} % Some bibliography styles print labels in the bibliography. For example, a bibliography style designed for a numeric citation scheme will print the number of every entry such that the bibliography looks like a numbered list. In the first example, the first argument to \cmd{list} was empty. In this example, we need it to insert the number, which is provided by \biblatex in the \bibfield{labelnumber} field. We also employ several length registers and other facilities provided by \biblatex, see \secref{aut:fmt:ich, aut:fmt:ilc} for details. The \texttt{numeric} bibliography style uses the definition given above. The \texttt{alphabetic} style is similar, except that \textsf{\texttt{labelnumber}} is replaced by \texttt{labelalpha} and \texttt{labelnumberwidth} by \texttt{labelalphawidth}. Bibliography lists are handled in a similar way. \cmd{printbiblist} uses the environment named after the bibliography list by default (when using \bibtex, \cmd{printshorthands} always uses the \texttt{shorthand} environment). A typical example is given below. See \secref{aut:fmt:ich, aut:fmt:ilc} for details on the length registers and facilities used in this example. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \defbibenvironment{shorthand} {\list {\printfield[shorthandwidth]{shorthand}} @@ -5513,14 +5578,14 @@ Bibliography lists are handled in a similar way. \cmd{printbiblist} uses the env \renewcommand*{\makelabel}[1]{##1\hss}}} {\endlist} {\item} -\end{lstlisting} +\end{ltxexample} \subsubsection{Bibliography Drivers} \label{aut:bbx:drv} Before we go over the commands which form the data interface of the \biblatex package, it may be instructive to have a look at the structure of a bibliography driver. Note that the example given below is greatly simplified, but still functional. For the sake of readability, we omit several fields which may be part of a \bibtype{book} entry and also simplify the handling of those which are considered. The main point is to give you an idea of how a driver is structured. For information about the mapping of the \bibtex file format fields to \biblatex's data types, see \secref{bib:fld}. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBibliographyDriver{book}{% \printnames{author}% \newunit\newblock @@ -5532,56 +5597,77 @@ Before we go over the commands which form the data interface of the \biblatex pa \newunit \printfield{year}% \finentry} -\end{lstlisting} +\end{ltxexample} % The standard bibliography styles employ two bibliography macros \texttt{begentry} and \texttt{finentry}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBibliographyDriver{<<entrytype>>}{% \usebibmacro{begentry} ... \usebibmacro{finentry}} -\end{lstlisting} +\end{ltxexample} % with the default definitions -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \newbibmacro*{begentry}{} \newbibmacro*{finentry}{\finentry} -\end{lstlisting} +\end{ltxexample} % Use of these macros is recommended for easy hooks into the beginning and end of the driver. Returning to the driver for the \texttt{book} entrytype above, there is still one piece missing: the formatting directives used by \cmd{printnames}, \cmd{printlist}, and \cmd{printfield}. To give you an idea of what a formatting directive looks like, here are some fictional ones used by our sample driver. Field formats are straightforward, the value of the field is passed to the formatting directive as an argument which may be formatted as desired. The following directive will simply wrap its argument in an \cmd{emph} command: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldFormat{title}{\emph{#1}} -\end{lstlisting} +\end{ltxexample} % List formats are slightly more complex. After splitting up the list into individual items, \biblatex will execute the formatting directive once for every item in the list. The item is passed to the directive as an argument. The separator to be inserted between the individual items in the list is also handled by the corresponding directive, hence we have to check whether we are in the middle of the list or at the end when inserting it. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareListFormat{location}{% #1% \ifthenelse{\value{listcount}<\value{liststop}} {\addcomma\space} {}} -\end{lstlisting} +\end{ltxexample} +% +Formatting directives for names are similar to those for literal lists, but depend on the datamodel constant <nameparts> which has the default definition: + +\begin{ltxexample} +\DeclareDatamodelConstant[type=list]{nameparts} + {prefix,family,suffix,given} +\end{ltxexample} % -Formatting directives for names are similar to those for literal lists, but the individual items in the list are names which are automatically dissected into their components. The list formatting directive is executed once for each name in the list and the components of the name are passed to the formatting directive as separate arguments. For example, |#1| is the last name and |#3| is the first name. Here is a simplified example: +All name formats should use the macro: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} +\nameparts{#1}% +\end{ltxexample} +% +which populates two macros for each name part defined in the datamodel: + +\begin{ltxexample} +\namepart<namepart> +\namepart<namepart>i +\end{ltxexample} +% +The name formatting directive is executed once for each name in the name list. Here is an example: + +\begin{ltxexample} \DeclareNameFormat{author}{% + \nameparts{#1}% \ifthenelse{\value{listcount}=1} - {#1% - \ifblank{#3}{}{\addcomma\space #3}} - {\ifblank{#3}{}{#3\space}% - #1}% + {\namepartfamily% + \ifblank{\namepartgiven}{}{\addcomma\space\namepartgiven}} + {\ifblank{\namepartgiven}{}{\namepartgiven\space}% + \namepartfamily}% \ifthenelse{\value{listcount}<\value{liststop}} {\addcomma\space} {}} -\end{lstlisting} +\end{ltxexample} % -The above directive reverses the name of the first author («Last, First») and prints the remaining names in their regular sequence («First Last»). Note that the only component which is guaranteed to be available is the last name, hence we have to check which parts of the name are actually present. If a certain component of a name is not available, the corresponding argument will be blank. As with directives for literal lists, the separator to be inserted between the individual items in the list is also handled by the formatting directive, hence we have to check whether we are in the middle of the list or at the end when inserting it. This is what the second \cmd{ifthenelse} test does. +The above directive reverses the name of the first author («Last, First») and prints the remaining names in their regular sequence («First Last»). Note that the only component which is guaranteed to be available is the last name, hence we have to check which parts of the name are actually present. If a certain name part is not available, the corresponding macro will be empty. As with directives for literal lists, the separator to be inserted between the individual items in the name list is also handled by the formatting directive, hence we have to check whether we are in the middle of the list or at the end when inserting it. This is what the second \cmd{ifthenelse} test does. \subsubsection{Special Fields} \label{aut:bbx:fld} @@ -5605,7 +5691,7 @@ When citing a subentry of an entry set, \biblatex provides the data of the paren Holds the prefix coming before <date> of the date field name chosen by \cmd{DeclareLabeldate}. For example, if the label date field is \bibfield{eventdate}, then \bibfield{datelabelsource} will be <event>. In case \cmd{DeclareLabeldate} selects the \bibfield{date} field, then \bibfield{datelabelsource} will be defined but will be an empty string as the prefix coming before <date> in the date label name is empty. This is so that the contents of \bibfield{datelabelsource} can be used in constructing references to the field which \cmd{DeclareLabeldate} chooses. Since \cmd{DeclareLabeldate} can also select literal strings for fallbacks, if \bibfield{datelabelsource} is undefined, then either the \opt{labeldate} package option is set to false or \cmd{DeclareLabeldate} chose a literal string instead of a date field. Bear in mind that \cmd{DeclareLabeldate} can also be used to select non-date fields as a fallback and so \bibfield{datelabelsource} might contain a field name. So, in summary, the rules are -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \iffieldundef{datelabelsource} { % labeldate package option is not set or @@ -5621,7 +5707,7 @@ Holds the prefix coming before <date> of the date field name chosen by \cmd{Decl % datelabelsource contains a non-date field } } -\end{lstlisting} +\end{ltxexample} \fielditem{entrytype}{string} @@ -5900,7 +5986,7 @@ If the date specification in the \bibfield{urldate} field is a range, this field \subsection{Citation Styles} \label{aut:cbx} -A citation style is a set of commands such as \cmd{cite} which print different types of citations. Such styles are defined in files with the suffix \file{cbx}. The \biblatex package loads the selected citation style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard citation styles is also included in \path{biblatex.def}. This file is loaded at the end of the package as well, prior to the selected citation style. It also contains the definitions of the commands from \secref{use:cit:txt}. +A citation style is a set of commands such as \cmd{cite} which print different types of citations. Such styles are defined in files with the suffix \file{cbx}. The \biblatex package loads the selected citation style file at the end of the package. Note that a small repertory of frequently used macros shared by several of the standard citation styles is also included in \path{biblatex$_$.def}. This file is loaded at the end of the package as well, prior to the selected citation style. It also contains the definitions of the commands from \secref{use:cit:txt}. \subsubsection{Citation Style Files} \label{aut:cbx:cbx} @@ -5937,27 +6023,27 @@ This is the core command used to define all citation commands. It takes one opti \cmditem{DeclareMultiCiteCommand}{command}[wrapper]{cite}{delimiter} -This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{command} is the multicite command to be defined, for example \cmd{cites}. It is automatically made robust. Multicite commands are built on top of backend commands defined with \cmd{DeclareCiteCommand} and the \prm{cite} argument specifies the name of the backend command to be used. Note that the wrapper of the backend command (\ie the \prm{wrapper} argument passed to \cmd{DeclareCiteCommand}) is ignored. Use the optional \prm{wrapper} argument to specify an alternative wrapper. The \prm{delimiter} is the string to be printed as a separator between the individual citations in the list. This will typically be \cmd{multicitedelim}. The following examples are real definitions taken from \path{biblatex.def}: +This command defines <multicite> commands (\secref{use:cit:mlt}). The \prm{command} is the multicite command to be defined, for example \cmd{cites}. It is automatically made robust. Multicite commands are built on top of backend commands defined with \cmd{DeclareCiteCommand} and the \prm{cite} argument specifies the name of the backend command to be used. Note that the wrapper of the backend command (\ie the \prm{wrapper} argument passed to \cmd{DeclareCiteCommand}) is ignored. Use the optional \prm{wrapper} argument to specify an alternative wrapper. The \prm{delimiter} is the string to be printed as a separator between the individual citations in the list. This will typically be \cmd{multicitedelim}. The following examples are real definitions taken from \path{biblatex$_$.def}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareMultiCiteCommand{\cites}% {\cite}{\multicitedelim} \DeclareMultiCiteCommand{\parencites}[\mkbibparens]% {\parencite}{\multicitedelim} \DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]% {\footcite}{\multicitedelim} -\end{lstlisting} +\end{ltxexample} \cmditem{DeclareAutoCiteCommand}{name}[position]{cite}{multicite} -This command provides definitions for the \cmd{autocite} and \cmd{autocites} commands from \secref{use:cit:aut}. The definitions are enabled with the \opt{autocite} package option from \secref{use:opt:pre:gen}. The \prm{name} is an identifier which serves as the value passed to the package option. The autocite commands are built on top of backend commands like \cmd{parencite} and \cmd{parencites}. The arguments \prm{cite} and \prm{multicite} specify the backend commands to use. The \prm{cite} argument refers to \cmd{autocite} and \prm{multicite} refers to \cmd{autocites}. The \prm{position} argument controls the handling of any punctuation marks after the citation. Possible values are \texttt{l}, \texttt{r}, \texttt{f}. \texttt{r} means that the punctuation is placed to the right of the citation, \ie it will not be moved around. \texttt{l} means that any punctuation after the citation is moved to the left of the citation. \texttt{f} is like \texttt{r} in a footnote and like \texttt{l} otherwise. This argument is optional and defaults to \texttt{r}. See also \cmd{DeclareAutoPunctuation} in \secref{aut:pct:cfg} and the \opt{autopunct} package option in \secref{use:opt:pre:gen}. The following examples are real definitions taken from \path{biblatex.def}: +This command provides definitions for the \cmd{autocite} and \cmd{autocites} commands from \secref{use:cit:aut}. The definitions are enabled with the \opt{autocite} package option from \secref{use:opt:pre:gen}. The \prm{name} is an identifier which serves as the value passed to the package option. The autocite commands are built on top of backend commands like \cmd{parencite} and \cmd{parencites}. The arguments \prm{cite} and \prm{multicite} specify the backend commands to use. The \prm{cite} argument refers to \cmd{autocite} and \prm{multicite} refers to \cmd{autocites}. The \prm{position} argument controls the handling of any punctuation marks after the citation. Possible values are \texttt{l}, \texttt{r}, \texttt{f}. \texttt{r} means that the punctuation is placed to the right of the citation, \ie it will not be moved around. \texttt{l} means that any punctuation after the citation is moved to the left of the citation. \texttt{f} is like \texttt{r} in a footnote and like \texttt{l} otherwise. This argument is optional and defaults to \texttt{r}. See also \cmd{DeclareAutoPunctuation} in \secref{aut:pct:cfg} and the \opt{autopunct} package option in \secref{use:opt:pre:gen}. The following examples are real definitions taken from \path{biblatex$_$.def}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareAutoCiteCommand{plain}{\cite}{\cites} \DeclareAutoCiteCommand{inline}{\parencite}{\parencites} \DeclareAutoCiteCommand{footnote}[l]{\footcite}{\footcites} \DeclareAutoCiteCommand{footnote}[f]{\smartcite}{\smartcites} -\end{lstlisting} +\end{ltxexample} % A definition provided in the document preamble can be subsequently adopted with the following: (see \secref{use:cfg:opt}). @@ -6020,23 +6106,23 @@ This command loops over all items in a \prm{literal list}, starting at item numb This command loops over all items in a \prm{name list}, starting at item number \prm{start} and stopping at item number \prm{stop}, including \prm{start} and \prm{stop} (all lists are numbered starting at~1). Each item is printed using the formatting directive \prm{format}, as defined with \cmd{DeclareNameFormat}. If a type"=specific \prm{format} has been declared, the type"=specific formatting directive takes precedence over the generic one. If the \prm{name list} is undefined, nothing is printed. If the \prm{format} is omitted, \cmd{printnames} tries using the name of the list as a format name. In this case, any type"=specific formatting directive will also take precedence over the generic one. If all of these formats are undefined, it falls back to \texttt{default} as a last resort. The \prm{start} argument defaults to 1; \prm{stop} defaults to the total number of items in the list. If the total number is greater than \prm{maxnames}, \prm{stop} defaults to \prm{minnames} (see \secref{use:opt:pre:gen}). If you want to select a range but use the default list format, the first optional argument must still be given, but is left empty: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printnames[][1-3]{...} -\end{lstlisting} +\end{ltxexample} One of \prm{start} and \prm{stop} may be omitted, hence the following arguments are all valid: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printnames[...][-1]{...} \printnames[...][2-]{...} \printnames[...][1-3]{...} -\end{lstlisting} +\end{ltxexample} If you want to override \prm{maxnames} and \prm{minnames} and force printing of the entire list, you may refer to the \cnt{listtotal} counter in the second optional argument: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printnames[...][-\value{listtotal}]{...} -\end{lstlisting} +\end{ltxexample} Whenever \cmd{printnames} and \cmd{printlist} process a list, information concerning the current state is accessible by way of four counters: the \cnt{listtotal} counter holds the total number of items in the current list, \cnt{listcount} holds the number of the item currently being processed, \cnt{liststart} is the \prm{start} argument passed to \cmd{printnames} or \cmd{printlist}, \cnt{liststop} is the \prm{stop} argument. These counters are intended for use in list formatting directives. \cnt{listtotal} may also be used in the second optional argument to \cmd{printnames} and \cmd{printlist}. Note that these counters are local to list formatting directives and do not hold meaningful values when used anywhere else. For every list, there is also a counter by the same name which holds the total number of items in the corresponding list. For example, the \cnt{author} counter holds the total number of items in the \bibfield{author} list. These counters are similar to \cnt{listtotal} except that they may also be used independently of list formatting directives. There are also \cnt{maxnames} and \cnt{minnames} as well as \cnt{maxitems} and \cnt{minitems} counters which hold the values of the corresponding package options. See \secref{aut:fmt:ilc} for a complete list of such internal counters. Note that \cmd{printnames} provides the name of the name list currently being processed in \cmd{currentname} for use in name formatting directives. @@ -6101,9 +6187,9 @@ This command is intended for use in bibliography drivers handling \bibtype{set} This command can be used to define a data input handler for \prm{field} when it is read from the \file{.bbl}. Within the \prm{code}, the macro \cmd{NewValue} contains the value of the field. For example, to ignore the \bibfield{volumes} field when it appears, you could do -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldInputHandler{volumes}{\def\NewValue{}} -\end{lstlisting} +\end{ltxexample} % Generally, you would want to use \cmd{DeclareSourcemap} (see \secref{aut:ctm:map}) to remove and modify fields but this alternative method may be useful in some circumstances when the emphasis is on appearance rather than data since the \prm{code} can be arbitraty \tex. @@ -6122,7 +6208,7 @@ contains the value of the name, \cmd{NewCount} contains the number of individual \subsubsection{Formatting Directives} \label{aut:bib:fmt} -This section introduces the commands used to define the formatting directives required by the data commands from \secref{aut:bib:dat}. Note that all standard formats are defined in \path{biblatex.def}. +This section introduces the commands used to define the formatting directives required by the data commands from \secref{aut:bib:dat}. Note that all standard formats are defined in \path{biblatex$_$.def}. \begin{ltxsyntax} @@ -6139,21 +6225,35 @@ Defines the literal list format \prm{format}. This formatting directive is arbit \cmditem{DeclareNameFormat}[entrytype, \dots]{format}{code} \cmditem*{DeclareNameFormat}*{format}{code} -Defines the name list format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed for every name in a list processed by \cmd{printnames}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. The individual parts of a name will be passed to the \prm{code} as separate arguments. These arguments are as follows: +Defines the name list format \prm{format}. This formatting directive is arbitrary \prm{code} to be executed for every name in a list processed by \cmd{printnames}. If an \prm{entrytype} is specified, the format is specific to that type. The \prm{entrytype} argument may be a comma"=separated list of values. The individual parts of a name will be passed to the \prm{code} as a comma"=separated list which should be processed by \cmd{nameparts} (see example above). The default data mode defines four name part which correspond to the standard \bibtex name parts arguments: \begin{argumentlist}{00} -\item[\#1] The last names. If a name consists of a single part only (for example, <Aristotle>), this part will be treated as the last name. -\item[\#2] The last names, given as initials. -\item[\#3] The first names. This argument also includes all middle names. -\item[\#4] The first names, given as initials. -\item[\#5] The name prefixes, for example von, van, of, da, de, del, della, etc. Note that name prefixes are referred to as the <von part> of the name in the \bibtex file format documentation. -\item[\#6] The name prefixes, given as initials. -\item[\#7] The name affixes, for example <junior>, <senior>, <der Jüngere>, <der Ältere>, etc. -Note that name affixes are referred to as the <junior part> of the name in the \bibtex file format documentation. -\item[\#8] The name affixes, given as initials. +\item[family] The family name(s), know as <last> in \bibtex. If a name consists of a single part only (for example, <Aristotle>), this part will be treated as the family name. +\item[given] The given name(s). Note that given names are referred to as the <first> names in the \bibtex file format documentation. +\item[prefix] Any name prefices, for example von, van, of, da, de, del, della, etc. Note that name prefices are referred to as the <von> part of the name in the \bibtex file format documentation. +\item[suffix] Any name suffices, for example Jr, Sr. Note that name suffices are referred to as the <Jr> part of the name in the \bibtex file format documentation. \end{argumentlist} % -If a certain part of a name is not available, the corresponding argument will be empty, hence you may use \cmd{ifblank} tests to check for the individual parts of a name. The name of the name list currently being processed is available to the \prm{code} as \cmd{currentname}. Note that the formatting directive also handles the punctuation to be inserted between separate names and between the individual parts of a name. You need to check whether you are in the middle of or at the end of the list, \ie whether \cnt{listcount} is smaller than or equal to \cnt{liststop}. See also \secref{use:cav:nam}. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. +Each format should use the macro: + +\begin{ltxexample} +\nameparts{#1}% +\end{ltxexample} +% +which populates two macros for each name part in the datamodel for the name. So, for example, in the default data model, name formats will have defined the following macros: + +\begin{ltxexample} +\namepartprefix +\namepartprefixi +\namepartfamily +\namepartfamilyi +\namepartsuffix +\namepartsuffixi +\namepartgiven +\namepartgiveni +\end{ltxexample} +% +If a certain part of a name is not available, the corresponding macro will be empty, hence you may use \cmd{ifempty} (see \secref{aut:aux:tst}) tests to check for the individual parts of a name. The name of the name list currently being processed is available to the \prm{code} as \cmd{currentname}. Note that the formatting directive also handles the punctuation to be inserted between separate names and between the individual parts of a name. You need to check whether you are in the middle of or at the end of the list, \ie whether \cnt{listcount} is smaller than or equal to \cnt{liststop}. See also \secref{use:cav:nam}. The starred variant of this command is similar to the regular version, except that all type-specific formats are cleared. \cmditem{DeclareIndexFieldFormat}[entrytype, \dots]{format}{code} \cmditem*{DeclareIndexFieldFormat}*{format}{code} @@ -6217,7 +6317,7 @@ The special fields are \bibfield{related}, \bibfield{relatedtype}, \bibfield{rel \item[relatedoptions] A list of per"=entry options to set on the related entry (actually on the clone of the related entry which is used as a data source---the actual related entry is not modified because it might be cited directly itself). \end{keymarglist} -The related entry feature is enabled by default by the package option \opt{related} from \secref{use:opt:pre:gen}. The related information entry data from the related entries is included via a \cmd{usebibmacro\{related\}} call. Standard styles call this macro towards the end of each driver. Style authors should ensure the existence of (or take note of existing) localization strings which are useful as values for the \bibfield{relatedtype} field, such as \texttt{translationof} or perhaps \texttt{translatedas}. A plural variant can be identified with the localization key \prm{relatedtype}\texttt{s}. This key's corresponding string is printed whenever more than one entry is specified in \bibfield{related}. Bibliography macros and formatting directives for printing entries related by \prm{relatedtype} should be defined using the name \texttt{related:\prm{relatedtype}}. The file \path{biblatex.def} contains macros and formats for some common relation types which can be used as templates. In particular, the \cmd{entrydata*} command is essential in such macros in order to make the data of the related entries available. Examples of entries using this feature can be found in the \biblatex distribution examples file \path{biblatex-examples.bib}. There are some specific formatting macros for this feature which control delimiters and separators in related entry information, see \secref{aut:fmt:fmt}. +The related entry feature is enabled by default by the package option \opt{related} from \secref{use:opt:pre:gen}. The related information entry data from the related entries is included via a \cmd{usebibmacro\{related\}} call. Standard styles call this macro towards the end of each driver. Style authors should ensure the existence of (or take note of existing) localization strings which are useful as values for the \bibfield{relatedtype} field, such as \texttt{translationof} or perhaps \texttt{translatedas}. A plural variant can be identified with the localization key \prm{relatedtype}\texttt{s}. This key's corresponding string is printed whenever more than one entry is specified in \bibfield{related}. Bibliography macros and formatting directives for printing entries related by \prm{relatedtype} should be defined using the name \texttt{related:\prm{relatedtype}}. The file \path{biblatex$_$.def} contains macros and formats for some common relation types which can be used as templates. In particular, the \cmd{entrydata*} command is essential in such macros in order to make the data of the related entries available. Examples of entries using this feature can be found in the \biblatex distribution examples file \path{biblatex-examples.bib}. There are some specific formatting macros for this feature which control delimiters and separators in related entry information, see \secref{aut:fmt:fmt}. \subsubsection{Dynamic Modification of Data} \label{aut:ctm:map} @@ -6259,7 +6359,7 @@ Contains an ordered set of \cmd{map} elements each of which is a logically relat \begin{optionlist*} -\choitem[bibtex]{datatype}{bibtex, biblatexml, ris, zoterordfxml, endnotexml} +\choitem[bibtex]{datatype}{bibtex, biblatexml, ris} Data source type to which the contained \cmd{map} directives apply (\secref{use:bib:res}). @@ -6279,6 +6379,12 @@ A container for an ordered set of map \cmd{step}s, optionally restricted to part As the same option on the parent \cmd{maps} element. This option allows an override on a per-map group basis. If this option is not specified, the default is the parent \cmd{maps} element option value. The short form \opt{overwrite} is equivalent to \kvopt{overwrite}{true}. +\valitem{foreach}{field} + +Loop over all \cmd{step}s in this \cmd{map}, setting the special variable |$MAPLOOP| %$ +to each of the comma-separated values contained in the entry field \prm{field}. This allows the user to repeat a group of \cmd{step}s for each value of another CSV field. Using regexp maps, it is possible to create a CSV field for use with this functionality. The special variable |$MAPUNIQ| %$ +may also be used the \cmd{step}s to generate a random unique string. This can be useful when creating keys for new entries. + \end{optionlist*} \cmditem{perdatasource}{datasource} @@ -6309,6 +6415,9 @@ A mapping step. Each step is applied sequentially to every relevant entry where \valitem{fieldset}{entryfield} \valitem{fieldvalue}{string} \valitem{entryclone}{string} +\valitem{entrynew}{string} +\valitem{entrynewtype}{string} +\valitem{entrytarget}{string} \boolitem[false]{entrynull} \boolitem[false]{append} \boolitem[false]{final} @@ -6322,6 +6431,14 @@ For all boolean \cmd{step} options, the short form \opt{option} is equivalent to \renewcommand{\labelitemii}{$\circ$} \begin{itemize} +\item If \texttt{entrynew} is set, a new entry is created with the entry key given as the value + to \texttt{entrynew} and the entry type given in the option \texttt{entrynewtype}. This + entry is only in-scope during the processing of the current entry and can be referenced by + \texttt{entrytarget}. +\item When a \texttt{fieldset} step has \texttt{entrytarget} set to the entrykey of an entry + created by \texttt{entrynew}, the target for the field set will be the \texttt{entrytarget} entry + rather than the entry being currently processed. This allows users to create new entries and set + fields in them. \item If \texttt{entrynull} is set, processing of the \cmd{map} immediately terminates and the current entry is not created. It is as if it did not exist in the datasource. Obviously, you should @@ -6366,7 +6483,7 @@ For all boolean \cmd{step} options, the short form \opt{option} is equivalent to \noindent With \bibtex\ and RIS datasources, you may specify the pseudo-field \bibfield{entrykey} for \texttt{fieldsource} -which is the citation key of the entry. Naturally, this <field> cannot +which is the citation key of the entry. With \biblatexml\ the \bibfield{entrykey} is a normal attribute and can be reference like any other attribute. Naturally, this <field> cannot be changed (used as \texttt{fieldset}, \texttt{fieldtarget} or changed using \texttt{replace}). \begin{ltxsyntax} @@ -6387,7 +6504,7 @@ This command sets the driver default source mappings for the specified \prm{driv Here are some data source mapping examples: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6399,12 +6516,12 @@ Here are some data source mapping examples: } } } -\end{lstlisting} +\end{ltxexample} % This would add a \bibfield{keywords} field with value <keyw1, keyw2> and set the \bibfield{note} field to the entry key to all entries which are found in either the \texttt{examples1.bib} or \texttt{examples2.bib} files. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6413,12 +6530,12 @@ This would add a \bibfield{keywords} field with value <keyw1, keyw2> and set the } } } -\end{lstlisting} +\end{ltxexample} % Copy the \bibfield{title} field to the \bibfield{note} field unless the \bibfield{note} field already exists. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6427,7 +6544,7 @@ Copy the \bibfield{title} field to the \bibfield{note} field unless the } } } -\end{lstlisting} +\end{ltxexample} % Any \bibfield{chat} entrytypes would become \bibfield{customa} entrytypes and would automatically have a \bibfield{type} field set to @@ -6437,7 +6554,7 @@ would automatically have a \bibfield{type} field set to \texttt{typesource} does not match the entry entrytype, processing of this \cmd{map} immediately terminates. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6449,13 +6566,13 @@ would automatically have a \bibfield{type} field set to } } } -\end{lstlisting} +\end{ltxexample} % Any entries of entrytype \bibtype{article} or \bibtype{book} from the \texttt{examples.bib} datasource would have their \bibfield{abstract} fields removed and a \bibfield{note} field added with value <Auto-created this field>. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6465,13 +6582,13 @@ fields removed and a \bibfield{note} field added with value <Auto-created this f } } } -\end{lstlisting} +\end{ltxexample} % This removes \bibfield{abstract} fields from any entry, changes \bibfield{conductor} fields to \bibfield{namea} fields and changes \bibfield{gps} fields to \bibfield{usera} fields. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6481,14 +6598,14 @@ fields to \bibfield{usera} fields. } } } -\end{lstlisting} +\end{ltxexample} % Applies only to entries with \bibfield{pubmed} fields and maps \bibfield{pubmedid} fields to \bibfield{eprint} fields, sets the \bibfield{eprinttype} field to <pubmedid> and also sets the \bibfield{userd} field to the string <Some string of things>. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6498,11 +6615,11 @@ field to <pubmedid> and also sets the \bibfield{userd} field to the string } } } -\end{lstlisting} +\end{ltxexample} %$<- to stop emacs highlighting breaking Here, the contents of the \bibfield{series} field have leading numbers stripped and the remainder of the contents lowercased. Since regular expressions usually contain all sort of special characters, it is best to enclose them in the provided \cmd{regexp} macro as shown---this will pass the expression through to \biber\ correctly. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6513,11 +6630,11 @@ Here, the contents of the \bibfield{series} field have leading numbers stripped } } } -\end{lstlisting} +\end{ltxexample} %$<- to stop emacs highlighting breaking Here, if for an entry, the \bibfield{maintitle} field matches a particular regular expression, we set a special keyword so we can, for example, make a references section just for certain items. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6526,11 +6643,11 @@ Here, if for an entry, the \bibfield{maintitle} field matches a particular regul } } } -\end{lstlisting} +\end{ltxexample} % If an entry has a \bibfield{lista} field which matches regular expression <regexp>, then it is removed. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map[overwrite=false]{ @@ -6540,14 +6657,14 @@ If an entry has a \bibfield{lista} field which matches regular expression <regex } } } -\end{lstlisting} +\end{ltxexample} %$<- to stop emacs highlighting breaking For any entry with an \bibfield{author} field, try to set \bibfield{editor} to the same as \bibfield{author}. If this fails because \bibfield{editor} already exists, stop, otherwise truncate \bibfield{editor} to just the first name in the name list. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6560,11 +6677,11 @@ For any entry with an \bibfield{author} field, try to set } } } -\end{lstlisting} +\end{ltxexample} % Here, we use multiple match/replace for the same field to regularise some inconstant name variants. Bear in mind that \cmd{step} processing within a \opt{map} element is sequential and so the changes from a previous \cmd{step}s are already committed. Note that we don't need the \cmd{regexp} macro to protect the regular expressions in this example as they contain no characters which need special escaping. Please note that due to the difficulty of protecting regular expressions in \LaTeX, there should be no literal spaces in the argument to \cmd{regexp}. Please use escape code equivalents if spaces are needed. For example, this example, if using \cmd{regexp}, should be: % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6577,11 +6694,11 @@ Here, we use multiple match/replace for the same field to regularise some incons } } } -\end{lstlisting} +\end{ltxexample} % Here, we have used the hexadecimal escape sequence <|\x20|> in place of literal spaces in the replacement strings. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map[overwrite]{ @@ -6597,11 +6714,11 @@ Here, we have used the hexadecimal escape sequence <|\x20|> in place of literal } } } -\end{lstlisting} +\end{ltxexample} % Only applies to entries with an \bibfield{author} field matching <Doe,>. First the \bibfield{author} field is copied to both the \bibfield{shortauthor} and \bibfield{sortname} fields, overwriting them if they already exist. Then, these two new fields are modified to canonicalise a particular name, which presumably has some variants in the data source. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map[overwrite]{ @@ -6614,11 +6731,11 @@ Only applies to entries with an \bibfield{author} field matching <Doe,>. First t } } } -\end{lstlisting} +\end{ltxexample} % This example demonstrates the sequential nature of the step processing and the \opt{append} option. If an entry has a \bibfield{verba} field then first, a forward slash is appended to the \bibfield{verbb} field. Then, the contents of \bibfield{verba} are appended to the \bibfield{verbb} field. A slash is then appended to the \bibfield{verbc} field and the contents of \bibfield{verbb} are appended to the \bibfield{verbc} field. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map[overwrite]{ @@ -6636,11 +6753,11 @@ This example demonstrates the sequential nature of the step processing and the \ } } } -\end{lstlisting}%$ <- keep AucTeX highlighting happy +\end{ltxexample}%$ <- keep AucTeX highlighting happy % -This example assumes you have created a field called \bibfield{autourl} using the datamodel macros from \secref{aut:ctm:dm} in order to hold, for example, a Google Scholar query URL auto-created from elements of the entry. The example progressively extracts information from the entry, constructing the URL as it goes. It demonstrates that it is possible to refer to parenthetical matches from the most recent \texttt{match} in any following \texttt{fieldvalue} which allows extracting the lastname from the \bibfield{author}, assuming a <last, first> format. The resulting field could then be used as a hyperlink from, for example, the title of the work in the bibliography. +This example assumes you have created a field called \bibfield{autourl} using the datamodel macros from \secref{aut:ctm:dm} in order to hold, for example, a Google Scholar query URL auto-created from elements of the entry. The example progressively extracts information from the entry, constructing the URL as it goes. It demonstrates that it is possible to refer to parenthetical matches from the most recent \texttt{match} in any following \texttt{fieldvalue} which allows extracting the family name from the \bibfield{author}, assuming a <family, given> format. The resulting field could then be used as a hyperlink from, for example, the title of the work in the bibliography. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6649,11 +6766,11 @@ This example assumes you have created a field called \bibfield{autourl} using th } } } -\end{lstlisting} +\end{ltxexample} % Any entry with a \bibfield{title} field matching <A Title> will be completely ignored. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6663,11 +6780,11 @@ Any entry with a \bibfield{title} field matching <A Title> will be completely ig } } } -\end{lstlisting} +\end{ltxexample} % Any entry which is not a \bibtype{book} or \bibtype{article} will be ignored. % -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSourcemap{ \maps[datatype=bibtex]{ \map{ @@ -6676,16 +6793,51 @@ Any entry which is not a \bibtype{book} or \bibtype{article} will be ignored. } } } -\end{lstlisting} +\end{ltxexample} % Here, a clone of an entry from the specified data source will be created. The entry key of the clone will be the same as the original but prefixed by the value of the \texttt{entryclone} parameter. The cloned entry would still need to be cited in the document using its new entry key. This type of mapping step should be used with care as it may produce labelling problems in authoryear styles which use, for example, \opt{extrayear}. One use case is for numeric styles which contain multiple bibliographies containing the same entry. In this case, you may need different bibliography number labeld for the same entry and this is very tricky when there is only one entry which needs different labels. Creating clones with different entry keys solves this problem. + +\biblatexml\ datasources are more structured than \bibtex\ or \ris\ since they are XML. Sourcemapping is possible with \biblatexml\ too but the specifications of source and target fields etc. also support XPath 1.0 paths in order to be able to work with the structured data. Fields can be specified as per the \bibtex\ examples above and these are converted into XPath 1.0 queries internally as necessary. For example: + +\begin{ltxexample} +\DeclareSourcemap{ + \maps[datatype=biblatexml]{ + \map{ + \step[fieldsource=\regexp{./bltx:names[@type='author']/bltx:name[2]/bltx:namepart[@type='family']}, + match=\regexp{\ASmith}, + replace={Jones}] + } + \map{ + \step[fieldsource=editor, fieldtarget=translator] + } + \map{ + \step[fieldsource=\regexp{./bltx:names[@type='editor']}, + fieldtarget=\regexp{./bltx:names[@type='translator']}] + } + \map{ + \step[fieldset=\regexp{./bltx:names[@type='author']/bltx:name[2]/@useprefix}, + fieldvalue={false}] + } + } +} +\end{ltxexample} % +These maps, respectively, + +\begin{itemize} +\item Replace the family name <Smith> of the second \bibfield{author} name with <Jones> +\item Move the \bibfield{editor} to \bibfield{translator} +\item Move the \bibfield{editor} to \bibfield{translator} but with explicit XPaths +\item Set the pre-namelist \opt{useprefix} option on the \bibfield{author} name list to <false> +\end{itemize} + \subsubsection{Data Model Specification}\BiberOnlyMark \label{aut:ctm:dm} The data model which \biblatex uses consists of four main elements: \begin{itemize} +\item Specification of constant strings and lists of strings \item Specification of valid Entrytypes \item Specification of valid Fields along with their type, datatype and any special flags \item Specification of which Fields are valid in which Entrytypes @@ -6715,6 +6867,18 @@ Alternatively, the name of the data model file can be different from any of the \begin{ltxsyntax} +\cmditem{DeclareDatamodelConstant}[options]{name}{constantdef}\BiberOnlyMark + +Declares the \prm{name} as a datamodel constant with definition \prm{constantdef}. Such constants are typically used internally by the \biber backend. + +\begin{optionlist*} + +\choitem[string]{type}{string, list} + +A constant can be a simple string (default if the \prm{type} option is omitted) or a comma"=separated list of strings. + +\end{optionlist*} + \cmditem{DeclareDatamodelEntrytypes}[options]{entrytypes}\BiberOnlyMark Declares the comma"=separated list of \prm{entrytypes} to be valid entrytypes in the data model. As usual in \tex csv lists, make sure each element is immediately followed by a comma or the closing brace---no extraneous whitespace. @@ -6855,7 +7019,7 @@ Clear all data model fields Constraints information. Here is an example of a simple data model. Refer to the core \biblatex file \file{blx-dm.def} for the default data model specification. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \ResetDatamodelEntrytypes \ResetDatamodelFields \ResetDatamodelEntryfields @@ -6892,7 +7056,7 @@ Here is an example of a simple data model. Refer to the core \biblatex file \fil } } } -\end{lstlisting} +\end{ltxexample} % This model specifies: @@ -6929,7 +7093,7 @@ Specifies the elements used to build the label. The \prm{elements} are an undeli \cmditem{field}[options]{field} -If \prm{field} is non-empty, use it as the current label \cmd{labelelement}, subject to the options below. Useful values for \prm{field} are typically the name list type fields, date fields, and title fields. You may also use the `citekey' pseudo-field to specify the citation key as part of the label. Name list fields are treated specially and the options which take substrings of the \prm{field} to use in the \cmd{labelelement} are applied to the lastname of every name in a name list (see below). +If \prm{field} is non-empty, use it as the current label \cmd{labelelement}, subject to the options below. Useful values for \prm{field} are typically the name list type fields, date fields, and title fields. You may also use the `citekey' pseudo-field to specify the citation key as part of the label. Name list fields are treated specially and the options which take substrings of the \prm{field} to use in the \cmd{labelelement} are applied to the family name of every name in a name list (see below). \begin{optionlist*} @@ -6967,7 +7131,7 @@ Forces the label part derived from the field to uppercase. By default, the case \boolitem[false]{varwidth} -Use a variable width, left-side substring of characters from the \prm{field} (each lastname in name list fields). The length of the string is determined by the minimum length needed to disambiguate the substring from all other \prm{field} elements in the same position in the label. For name list fields, this means that each name substring is disambiguated from all other name substrings which occur in the same position in the name list (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidth} is equivalent to \kvopt{varwidth}{true}. For name list fields, if \kvopt{useprefix}{true}, the first character of the name prefix is prepended to the substring. +Use a variable width, left-side substring of characters from the \prm{field} (each family name in name list fields). The length of the string is determined by the minimum length needed to disambiguate the substring from all other \prm{field} elements in the same position in the label. For name list fields, this means that each name substring is disambiguated from all other name substrings which occur in the same position in the name list (see examples below). This option overrides \texttt{strwidth} if both are used. The short form \opt{varwidth} is equivalent to \kvopt{varwidth}{true}. For name list fields, if \kvopt{useprefix}{true}, the first character of the name prefix is prepended to the substring. \boolitem[false]{varwidthnorm} @@ -6987,7 +7151,7 @@ When using \texttt{varwidthnorm}, there must be at least \texttt{strfixedcount} \boolitem[false]{compound} -For static (non-varwidth) disambiguation, treat lastname name components separated by whitespace or hyphens (compound last names) as separate names for label generation. This means that when forming a label out of, for example the surname <Ballam Forsyth> with a 1 character, left-side substring, this name would give <BF> with \kvopt{compound}{true} and <B> with \kvopt{compound}{false}. The short form \opt{compound} is equivalent to \kvopt{compound}{true}. +For static (non-varwidth) disambiguation, treat family name name components separated by whitespace or hyphens (compound last names) as separate names for label generation. This means that when forming a label out of, for example the surname <Ballam Forsyth> with a 1 character, left-side substring, this name would give <BF> with \kvopt{compound}{true} and <B> with \kvopt{compound}{false}. The short form \opt{compound} is equivalent to \kvopt{compound}{true}. \boolitem[false]{pcompound} @@ -6999,11 +7163,19 @@ Only use this \cmd{field} specification if it is a name list field with \texttt{ \intitem{names} -By default, for name list fields, the number of names considered when building the label obeys the \cnt{maxalphanames}\slash \cnt{minalphanames} truncation. This option can be used to override this with an explicit upper limit of how many names to consider. This is useful if you have some very long name lists which might result in a very long label. +By default, for name list fields, the names used range from the first name to the \cnt{maxalphanames}\slash \cnt{minalphanames} truncation. This option can be used to override this with an explicit range of names to consider. The plus <+> sign is a special end of range marker denoting the truncation point of max/minalphanames. The range seperator can be any number of characters with the Unicode Dash property. For example: -\choitem[none]{lang}{<language specifier>} +\begin{lstlisting}[language=xml] +name=3 -> Use first 3 names in the name list +name={2-3} -> Use second and thirds names only +name={-3} -> Same as 1-3 +name={2-} -> Use all names starting with the second name (ignoring max/minalphanames truncation) +name={2-+} -> Use all names starting with the second name (respecting max/minalphanames truncation) +\end{lstlisting} + +\boolitem[false]{noalphaothers} -Specifies the \sty{babel}/\sty{polyglossia} language variant of a field if the datasource you are using supports this. The default, if no \prm{lang} option is set, this means to use the field variant in the datasource which has no explicit language defined. +By default, \cmd{labelalphaothers} is appended to label parts derived from name lists if there are more names in the list than are shown in the label part. This option can be used to disable the default behaviour. \end{optionlist*} @@ -7015,9 +7187,9 @@ Insert the literal \prm{characters} into the label at this point. Note that the template for labels can be defined per-type and you should be aware of this when using the automatically disambiguated label functionality. Disambiguation is not per-type as this might lead to ambiguity due to different label formats for different types being isolated from each others disambiguation process. Normally, you will want to use very different label formats for different types to make the type obvious by the label. -Here are some examples. The default global \biblatex alphabetic label template is defined below. Firstly, \bibfield{shorthand} has \kvopt{final}{true} and so if there is a \bibfield{shorthand} field, it is used as the label and nothing more of the template is considered. Next, the \bibfield{label} field is used as the first label element if it exists. Otherwise, if there is only one name (\kvopt{ifnames}{1}) in the \bibfield{labelname} list, then three characters from the left side of the lastname in the \bibfield{labelname} are used as the first label element. If the \bibfield{labelname} has more than one name in it, one character from the left side of each lastname is used as the first label element. The second label element consists of 2 characters from the right side of the \bibfield{year} field. +Here are some examples. The default global \biblatex alphabetic label template is defined below. Firstly, \bibfield{shorthand} has \kvopt{final}{true} and so if there is a \bibfield{shorthand} field, it is used as the label and nothing more of the template is considered. Next, the \bibfield{label} field is used as the first label element if it exists. Otherwise, if there is only one name (\kvopt{ifnames}{1}) in the \bibfield{labelname} list, then three characters from the left side of the family name in the \bibfield{labelname} are used as the first label element. If the \bibfield{labelname} has more than one name in it, one character from the left side of each family name is used as the first label element. The second label element consists of 2 characters from the right side of the \bibfield{year} field. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \field[final]{<<shorthand>>} @@ -7029,7 +7201,7 @@ Here are some examples. The default global \biblatex alphabetic label template i \field[strwidth=2,strside=right]{<<year>>} } } -\end{lstlisting} +\end{ltxexample} % To get an idea of how the label automatic disambiguation works, consider the following author lists: @@ -7043,13 +7215,13 @@ Borg, Connors, Emerson (2004) % Assuming a template declaration such as: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \field[varwidth]{<<labelname>>} } } -\end{lstlisting} +\end{ltxexample} % Then the labels would be: @@ -7063,13 +7235,13 @@ Borg, Connors, Emerson [BConEm] % With normalised variable width labels defined: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \field[varwidthnorm]{<<labelname>>} } } -\end{lstlisting} +\end{ltxexample} % You would get the following as the substrings of names in each position are extended to the length of the longest substring in that same position: @@ -7083,15 +7255,15 @@ Borg, Connors, Emerson [BConEm] % With a restriction to two characters for the name components of the label element defined like this: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \field[varwidthnorm,strwidthmax=2]{<<labelname>>} } } -\end{lstlisting} +\end{ltxexample} % -This would be the result (note that the individual lastname label parts are no longer unambiguous): +This would be the result (note that the individual family name label parts are no longer unambiguous): \begin{lstlisting}{} Agassi, Chang, Laver [AChLa] @@ -7103,13 +7275,13 @@ Borg, Connors, Emerson [BCoEm] % Alternatively, you could choose to disambiguate the name lists as a whole with: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \field[varwidthlist]{<<labelname>>} } } -\end{lstlisting} +\end{ltxexample} % Which would result in: @@ -7122,13 +7294,13 @@ Borg, Connors, Emerson [BCE] \end{lstlisting} % Perhaps you only want to consider at most two names for label generation but disambiguate at the whole name list level: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \field[varwidthlist,names=2]{<<labelname>>} } } -\end{lstlisting} +\end{ltxexample} % Which would result in: \begin{lstlisting}{} @@ -7143,7 +7315,7 @@ In this last example, you can see \cmd{labelalphaothers} has been appended to sh Finally, here is an example using multiple label elements: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \field[varwidthlist]{<<labelname>>} @@ -7155,7 +7327,7 @@ Finally, here is an example using multiple label elements: \field[strwidth=3,strside=right]{<<labelyear>>} } } -\end{lstlisting} +\end{ltxexample} % Which would result in: \begin{lstlisting}{} @@ -7168,7 +7340,7 @@ Borg, Connors, Emerson [BCEm-004] % Here is another rather contrived example showing that you don't need to specially quote \latex special characters (apart from <\%>, obviously) when specifying padding characters and literals: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelalphaTemplate{ \labelelement{ \literal{>} @@ -7186,7 +7358,7 @@ Here is another rather contrived example showing that you don't need to speciall \field[strwidth=2,strside=right]{<<year>>} } } -\end{lstlisting} +\end{ltxexample} % which given: \begin{lstlisting}[style=bibtex]{} @@ -7217,12 +7389,12 @@ Any number of \cmd{nolabel} commands can be given each of which specifies to rem If there is no \cmd{DeclareNolabel} specification, \biber will default to: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareNolabel{ % strip punctuation, symbols, separator and control characters \nolabel{\regexp{<<[\p{P}\p{S}\p{C}]+>>}} } -\end{lstlisting} +\end{ltxexample} % This \biber default strips punctuation, symbol, separator and control characters from fields before passing the field string to the label generation system. @@ -7301,9 +7473,9 @@ The \cmd{field} element adds a \prm{field} to the sorting specification. If the Pads a field on the \texttt{left} or \texttt{right} side using \opt{padchar} so that its width is \opt{padwidth}. If no padding option is set, no padding is done at all. If any padding option is specified, then padding is performed and the missing options are assigned built-in default values. If padding and substring matching are both specified, the substring match is performed first. Padding is particularly useful with numeric fields. For example, the command -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \field[padside=left,padwidth=2,padchar=0]{<<volume>>} -\end{lstlisting} +\end{ltxexample} % will pad the \bibfield{volume} field with leading zeros to a width of two characters. This way, volumes are sorted by numeric value (\texttt{01\slash 02\slash 11\slash 12}) rather than in alphabetic order (\texttt{1\slash 11\slash 12\slash 2}). @@ -7333,34 +7505,126 @@ The \cmd{literal} element adds a literal \prm{string} to the sorting specificati The \cmd{citeorder} element has a special meaning. It requests a sort based on the lexical order of the actual citations. For entries cited within the same citation command like: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \cite{one,two} -\end{lstlisting} +\end{ltxexample} % there is a distinction between the lexical order and the semantic order. Here «one» and «two» have the same semantic order but a unique lexical order. The semantic order only matters if you specify further sorting to disambiguate entries with the same semantic order. For example, this is the definition of the \opt{none} sorting scheme: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSortingScheme{none}{ \sort{\citeorder} } -\end{lstlisting} +\end{ltxexample} % This sorts the bibliography purely lexically by the order of the keys in the citation commands. In the example above, it sorts «one» before «two». However, suppose that you consider «one» and «two» to have the same order (semantic order) since they are cited at the same time and want to further sort these by year. Suppose «two» has an earlier \bibfield{year} than «one»: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSortingScheme{noneyear}{ \sort{\citeorder} \sort{<<year>>} } -\end{lstlisting} +\end{ltxexample} % This sorts «two» before «one», even though lexically, «one» would sort before «two». This is possible because the semantic order can be disambiguated by the further sorting on year. With the standard \opt{none} sorting scheme, the lexical order and semantic order are identical because there is nothing further to disambiguate them. This means that you can use \cmd{citeorder} just like any other sorting specification element, choosing how to further sort entries cited at the same time (in the same citation command). +\cmditem{DeclareSortingNamekeyScheme}[schemename]{specification}\BiberOnlyMark + +Defines how the sorting keys for names are constructed. This can change the sorting order of names arbitrarily because you can choose how to put together the name parts when constructing the string to compare when sorting. The sorting key construction scheme so defined is called \prm{schemename} which defaults to «global» if this optional parameter is absent. When constructing the sorting key for a name, a sorting key for each name part is constructed and the key for each name is formed into an ordered key list with a special internal separator. The point of this option is to accommodate languages or situations where sorting of names needs to be customised (for example, Icelandic names are sometimes sorted by given names rather than by family names). This macro may be used multiple times to define schemes with different names which can then be referred to later. Sorting name key schemes can have the following scopes, in order of increasing precedence: + +\begin{itemize} +\item The default scheme defined without the optional name argument +\item Given as the \opt{sortingnamekeyscheme} option to a reference context (see \secref{use:bib:context}) +\item Given as a per-entry option \opt{sortnamekeyscheme} in a bibliography data source entry +\item Given as a per-namelist option \opt{sortnamekeyscheme} in datasources which support this\footnote{Current only the \biblatexml data source format support this.} +\item Given as a per-name option \opt{sortnamekeyscheme} in datasources which support this\footnote{Current only the \biblatexml data source format support this.} +\end{itemize} + +By default there is only a global scheme which has the following \prm{specification}: + +\begin{ltxexample} +\DeclareSortingNamekeyScheme{ + \keypart{ + \namepart[use=true]{<<prefix>>} + } + \keypart{ + \namepart{<<family>>} + } + \keypart{ + \namepart{<<given>>} + } + \keypart{ + \namepart{<<suffix>>} + } + \keypart{ + \namepart[use=false]{<<prefix>>} + } +} +\end{ltxexample} +% +This means that the key is constructed by concatenating, in order, the name prefix (only if the \opt{useprefix} option is true), the family name(s), the given names(s), the name suffix and then the name prefix (only if the \opt{useprefix} option is false). + +\cmditem{keypart}{part} + +\prm{part} is an ordered list of of \cmd{namepart} and \cmd{literal} specifications which are concatenated together when constructing a part of the name sorting key. + +\cmditem{literal}{string} + +A literal string to insert into the name sorting key. + +\cmditem{namepart}{name} + +Specifies the \prm{name} of a namepart to use in constructing the name sorting key. + +\begin{optionlist*} + +\boolitem[true]{use} + +Indicates that the namepart \prm{name} is only to be used in this concatenation position if the corresponding \opt{use<name>} option is set to the specified boolean value. + +\end{optionlist*} + \end{ltxsyntax} -Here are some examples of sorting schemes. In the first example, we define a simple name\slash title\slash year scheme. The name element may be either the \bibfield{author}, the \bibfield{editor}, or the \bibfield{translator}. Given this specification, the sorting routine will use the first element which is available and continue with the \bibfield{title}. Note that the options \opt{use$<$name$>$} options are considered automatically in the sorting process: +As an example, suppose you wanted to be able to sort names by given name rather than family name, you could define a sorting name key scheme like this: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} +\DeclareSortingNamekeyScheme[givenfirst]{ + \keypart{ + \namepart{<<given>>} + } + \keypart{ + \namepart[use=true]{<<prefix>>} + } + \keypart{ + \namepart{<<family>>} + } + \keypart{ + \namepart[use=false]{<<prefix>>} + } +} +\end{ltxexample} +% +You can then use the name \opt{givenfirst} at the appropriate scope in order to make \biber use this scheme when constructing sorting name keys. For example, you could enable this for one bibliography list like this: + +\begin{ltxexample} +\begin{refcontext}[sortnamekeyscheme=givenfirst] +\printbibliography +\end{refcontext} +\end{ltxexample} +% +or perhaps you only want to do this for a particular entry: + +\begin{lstlisting}[style=bibtex]{} +@BOOK{key, + OPTIONS = {sortnamekeyscheme=givenfirst}, + AUTHOR = {Arnar Vigfusson} +} +\end{lstlisting} +% +Now we give some examples of sorting schemes. In the first example, we define a simple name\slash title\slash year scheme. The name element may be either the \bibfield{author}, the \bibfield{editor}, or the \bibfield{translator}. Given this specification, the sorting routine will use the first element which is available and continue with the \bibfield{title}. Note that the options \opt{use$<$name$>$} options are considered automatically in the sorting process: + +\begin{ltxexample} \DeclareSortingScheme{sample}{ \sort{ \field{<<author>>} @@ -7374,11 +7638,11 @@ Here are some examples of sorting schemes. In the first example, we define a sim \field{<<year>>} } } -\end{lstlisting} +\end{ltxexample} % In the next example, we define the same scheme in a more elaborate way, considering special fields such as \bibfield{presort}, \bibfield{sortkey}, \bibfield{sortname}, etc. Since the \bibfield{sortkey} field specifies the master sort key, it needs to override all other elements except for \bibfield{presort}. This is indicated by the \opt{final} option. If the \bibfield{sortkey} field is available, processing will stop at this point. If not, the sorting routine continues with the next \cmd{sort} directive. This setup corresponds to the default definition of the \texttt{nty} scheme: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSortingScheme{nty}{ \sort{ \field{<<presort>>} @@ -7403,11 +7667,11 @@ In the next example, we define the same scheme in a more elaborate way, consider \field{<<year>>} } } -\end{lstlisting} +\end{ltxexample} % Finally, here is an example of a sorting scheme which overrides the global sorting locale and additionally overrides again when sorting by the \bibfield{origtitle} field. Note the use in the scheme-level override of a babel/polyglossia language name instead of a real locale identifier. \biber will map this to a suitable, real locale identifier (in this case, \texttt{sv\_SE}): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareSortingScheme[locale=swedish]{custom}{ \sort{ \field{<<sortname>>} @@ -7421,7 +7685,7 @@ Finally, here is an example of a sorting scheme which overrides the global sorti \field{<<origtitle>>} } } -\end{lstlisting} +\end{ltxexample} \begin{ltxsyntax} @@ -7467,11 +7731,11 @@ A wrapper around one or more \cmd{filter} commands specifying that they form a d Fields in the datamodel which are marked as <Label fields> (see \secref{aut:ctm:dm}) automatically have a filter defined for them with the same name and which filters out any entries which do no contain the field. For example, \biblatex automatically generates a filter for the \bibfield{shorthand} field: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBiblistFilter{<<shorthand>>}{ \filter[type=field,filter=shorthand] } -\end{lstlisting} +\end{ltxexample} \subsubsection{Controlling Name Initials Generation} \label{aut:ctm:noinit} @@ -7492,14 +7756,14 @@ Any number of \cmd{noinit} commands can be given each of which specifies to remo If there is no \cmd{DeclareNoinit} specification, \biber will default to: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareNoinit{ % strip lowercase prefixes like 'al-' when generating initials from names \noinit{\regexp{<<\b\p{Ll}{2}\p{Pd}>>}} % strip some common diacritics when generating initials from names \noinit{\regexp{<<[\x{2bf}\x{2018}]>>}} } -\end{lstlisting} +\end{ltxexample} % This \biber default strips a couple of diacritics and also strips lowercase prefixes from names before generating initials. @@ -7522,30 +7786,30 @@ Any number of \cmd{nosort} commands can be given each of which specifies to remo If there is no \cmd{DeclareNosort} specification, \biber will default to: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareNosort{ % strip prefixes like 'al-' when sorting names \nosort{type_names}{\regexp{<<\A\p{L}{2}\p{Pd}>>}} % strip some diacritics when sorting names \nosort{type_names}{\regexp{<<[\x{2bf}\x{2018}]>>}} } -\end{lstlisting} +\end{ltxexample} % This \biber default strips a couple of diacritics and also strips prefixes from names when sorting. Suppose you wanted to ignore «The» at the beginning of a \bibfield{title} field when sorting: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareNosort{ \nosort{<<title>>}{\regexp{<<\AThe\s+>>}} } -\end{lstlisting} +\end{ltxexample} % Or if you wanted to ignore «The» at the beginning of any title field: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareNosort{ \nosort{<<type_title>>}{\regexp{<<\AThe\s+>>}} } -\end{lstlisting} +\end{ltxexample} \begin{table}[h] \tablesetup @@ -7596,7 +7860,7 @@ Some of the automatically generated fields from \secref{aut:bbx:fld:lab} may be Defines the fields to consider when generating the \bibfield{labelname} field (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} commands. The fields are checked in the order listed and the first field which is available will be used as \bibfield{labelname}. This is the default definition: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabelname{% \field{shortauthor} \field{author} @@ -7604,7 +7868,7 @@ Defines the fields to consider when generating the \bibfield{labelname} field (s \field{editor} \field{translator} } -\end{lstlisting} +\end{ltxexample} % The \bibfield{labelname} field may be customized globally or on a per-type basis. If the optional \prm{entrytype} argument is given, the specification applies to the respective entry type. If not, it is applied globally. The \prm{entrytype} argument may be a comma"=separated list of values. This command may only be used in the preamble. @@ -7612,7 +7876,7 @@ The \bibfield{labelname} field may be customized globally or on a per-type basis Defines the date components to consider when generating \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} or \cmd{literal} commands. The items are checked in the order listed and the first item which is available will be used to popluate the \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields. Note that the \cmd{field} items do not have to be datetype <date> in the data model so that you can create pseudo-year labels by, for example, using a \bibfield{pubstate} field contents, if available, as the year label by defining \cmd{DeclareLabeldate} suitably. Note also that a \cmd{literal} command will always be used when found and so this should always be the last thing in the list. If the value of a \cmd{literal} command is a valid localization string, then this will be resolved in the current language, otherwise the value is used as a literal string as-is. This is the default definition: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabeldate{% \field{date} \field{eventdate} @@ -7620,7 +7884,7 @@ Defines the date components to consider when generating \bibfield{labelyear}, \b \field{urldate} \literal{nodate} } -\end{lstlisting} +\end{ltxexample} % Note that the \bibfield{date} field is split by the backend into \bibfield{year}, \bibfield{month} which are also valid fields in the default data model. In order to support legacy data which directly sets \bibfield{year} and/or \bibfield{month}, the specification <\bibfield{date}> in \cmd{DeclareLabeldate} will also match \bibfield{year} and \bibfield{month} fields, if present. The \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields may be customized globally or on a per-type basis. If the optional \prm{entrytype} argument is given, the specification applies to the respective entry type. If not, it is applied globally. The \prm{entrytype} argument may be a comma"=separated list of values. This command may only be used in the preamble. See also \secref{aut:bbx:fld:dat}. @@ -7629,12 +7893,12 @@ The \bibfield{labelyear}, \bibfield{labelmonth} and \bibfield{labelday} fields m Defines the fields to consider when generating the \bibfield{labeltitle} field (see \secref{aut:bbx:fld:lab}). The \prm{specification} is an ordered list of \cmd{field} commands. The fields are checked in the order listed and the first field which is available will be used as \bibfield{labeltitle}. This is the default definition: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLabeltitle{% \field{shorttitle} \field{title} } -\end{lstlisting} +\end{ltxexample} % The \bibfield{labeltitle} field may be customized globally or on a per-type basis. If the optional \prm{entrytype} argument is given, the specification applies to the respective entry type. If not, it is applied globally. The \prm{entrytype} argument may be a comma"=separated list of values. This command may only be used in the preamble. @@ -7685,60 +7949,60 @@ Clears all inheritance rules defined with \cmd{DeclareDataInheritance}. This com Here are some practical examples: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DefaultInheritance{<<all=true>>,<<override=false>>} -\end{lstlisting} +\end{ltxexample} % This example shows how to configure the default inheritance behavior. The above settings are the package defaults. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DefaultInheritance[ \except{<<*>>}{<<online>>}{<<all=false>>} ]{all=true,override=false} -\end{lstlisting} +\end{ltxexample} % This example is similar to the one above but adds one exception: entries of type \bibtype{online} will, by default, not inherit any data from any parent. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareDataInheritance{<<collection>>}{<<incollection>>}{ \inherit{<<title>>}{<<booktitle>>} \inherit{<<subtitle>>}{<<booksubtitle>>} \inherit{<<titleaddon>>}{<<booktitleaddon>>} } -\end{lstlisting} +\end{ltxexample} % So far we have looked at setting up the defaults. For example, \kvopt{all}{true} means that the \bibfield{publisher} field of a source entry is copied to the \bibfield{publisher} field of the target entry. In some cases, however, asymmetric mappings are required. They are defined with \cmd{DeclareDataInheritance}. The above example sets up three typical rules for \bibtype{incollection} entries referencing a \bibtype{collection}. We map the \bibfield{title} and related fields of the source to the corresponding \bibfield{booktitle} fields of the target. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareDataInheritance{<<mvbook,book>>}{<<inbook,bookinbook>>}{ \inherit{<<author>>}{<<author>>} \inherit{<<author>>}{<<bookauthor>>} } -\end{lstlisting} +\end{ltxexample} % This rule is an example of one-to-many mapping: it maps the \bibfield{author} field of the source to both the \bibfield{author} and the \bibfield{bookauthor} fields of the target in order to allow for compact \bibfield{inbook}\slash \bibfield{bookinbook} entries. The source may be either a \bibtype{mvbook} or a \bibtype{book} entry, the target either an \bibtype{inbook} or a \bibtype{bookinbook} entry. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareDataInheritance{<<*>>}{<<inbook,incollection>>}{ \noinherit{<<introduction>>} } -\end{lstlisting} +\end{ltxexample} % This rule prevents inheritance of the \bibfield{introduction} field. It applies to all targets of type \bibtype{inbook} or \bibtype{incollection}, regardless of the source entry type. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareDataInheritance{<<*>>}{<<*>>}{ \noinherit{<<abstract>>} } -\end{lstlisting} +\end{ltxexample} % This rule, which applies to all entries, regardless of the source and target entry types, prevents inheritance of the \bibfield{abstract} field. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DefaultInheritance{all=true,override=false} \ResetDataInheritance -\end{lstlisting} +\end{ltxexample} % This example demonstrates how to emulate traditional \bibtex's cross"=referencing mechanism. It enables inheritance by default, disables overwriting, and clears all other inheritance rules and mappings. @@ -7774,10 +8038,18 @@ Executes \prm{command} using the unformatted \prm{field} as its argument. Expands to the unformatted \prm{literal list}. If the list is undefined, this command expands to an empty string. Note that this command will dump the \prm{literal list} in the internal format used by this package. This format is not suitable for printing. +\cmditem{strlist}{literal list} + +Similar to \cmd{thelist}, except that the list internal representation is automatically sanitized such that its value may safely be used in the formation of a control sequence name. + \cmditem{thename}{name list} Expands to the unformatted \prm{name list}. If the list is undefined, this command expands to an empty string. Note that this command will dump the \prm{name list} in the internal format used by this package. This format is not suitable for printing. +\cmditem{strname}{name list} + +Similar to \cmd{thename}, except that the name internal representation is automatically sanitized such that its value may safely be used in the formation of a control sequence name. + \cmditem{savefield}{field}{macro} \cmditem*{savefield*}{field}{macro} @@ -7841,6 +8113,14 @@ The commands in this section are various kinds of stand"=alone tests for use in \begin{ltxsyntax} +\cmditem{ifempty}{arg}{true}{false} + +Fully expands \prm{arg} and then uses the \sty{etoolbox} \cmd{ifblank} test to determine whether to expand to \prm{true} or \prm{false}. This is useful for testing for emptiness of \prm{arg} regardless of whether \prm{arg} consists of macros or strings. + +\cmditem{ifsortnamekeyscheme}{string}{true}{false} + +Expands to \prm{true} if the \prm{string} is equal to the current in scope sorting name key scheme name (see \ref{aut:ctm:srt}), and to \prm{false} otherwise. + \cmditem{iffieldundef}{field}{true}{false} Expands to \prm{true} if the \prm{field} is undefined, and to \prm{false} otherwise. @@ -7953,9 +8233,9 @@ Expands to \prm{true} if the current name list has been or will be truncated, an This command is similar to \cmd{ifmorenames} but checks the current literal list. It is intended for use in formatting directives for literal lists. It will always expand to \prm{false} when used elsewhere. -\cmditem{iffirstinits}{true}{false} +\cmditem{ifgiveninits}{true}{false} -Expands to \prm{true} or \prm{false}, depending on the state of the \opt{firstinits} package option (see \secref{use:opt:pre:int}). This command is intended for use in formatting directives for name lists. +Expands to \prm{true} or \prm{false}, depending on the state of the \opt{giveninits} package option (see \secref{use:opt:pre:int}). This command is intended for use in formatting directives for name lists. \cmditem{ifterseinits}{true}{false} @@ -7989,9 +8269,9 @@ Executes \prm{true} if the entry currently being processed has been cited before A variant of \cmd{ifciteseen} which takes an entry key as its first argument. Since the \prm{entrykey} is expanded prior to performing the test, it is possible to test for entry keys in a field such as \bibfield{xref}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \ifentryseen{<<\thefield{xref}>>}{true}{false} -\end{lstlisting} +\end{ltxexample} % Apart from the additional argument, \cmd{ifentryseen} behaves like \cmd{ifciteseen}. @@ -8031,9 +8311,9 @@ The behavior of this command is responsive to the package option \opt{pagetracke This command expands to \prm{true} if two instances of a reference are located on the same page or double-page spread, and to \prm{false} otherwise. An instance of a reference may be a citation or an entry in the bibliography or a bibliography list. These instances are identified by the value of the \cnt{instcount} counter, see \secref{aut:fmt:ilc}. The behavior of this command is responsive to the package option \opt{pagetracker}. If this option is set to \texttt{spread}, \cmd{ifsamepage} is in fact an <if same spread> test. If the page tracker is disabled, this test always yields \prm{false}. The arguments \prm{instance 1} and \prm{instance 2} are treated as integer expressions in the sense of \etex's \cmd{numexpr}. This implies that it is possible to make calculations within these arguments, for example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \ifsamepage{<<\value>>{instcount}}{<<\value>>{instcount}<<-1>>}{true}{false} -\end{lstlisting} +\end{ltxexample} Note that \cmd{value} is not prefixed by \cmd{the} and that the subtraction is included in the second argument in the above example. If \prm{instance 1} or \prm{instance 2} is an invalid number (for example, a negative one), the test yields \prm{false}. Also note that this test does not distinguish between body text and footnotes. Also see the \cmd{pagetrackertrue} and \cmd{pagetrackerfalse} switches in \secref{aut:aux:msc}. @@ -8182,7 +8462,7 @@ The section introduced miscellaneous commands and little helpers for use in bibl \cmditem{newbibmacro}{name}[arguments][optional]{definition} \cmditem*{newbibmacro*}{name}[arguments][optional]{definition} -Defines a macro to be executed via \cmd{usebibmacro} later. The syntax of this command is very similar to \cmd{newcommand} except that \prm{name} may contain characters such as numbers and punctuation marks and does not start with a backslash. The optional argument \prm{arguments} is an integer specifying the number of arguments taken by the macro. If \prm{optional} is given, it specifies a default value for the first argument of the macro, which automatically becomes an optional argument. In contrast to \cmd{newcommand}, \cmd{newbibmacro} issues a warning message if the macro is already defined, and automatically falls back to \cmd{renewbibmacro}. As with \cmd{newcommand}, the regular variant of this command uses the \cmd{long} prefix in the definition while the starred one does not. If a macro has been declared to be long, it may take arguments containing \cmd{par} tokens. \cmd{newbibmacro} and \cmd{renewbibmacro} are provided for convenience. Style authors are free to use \cmd{newcommand} or \cmd{def} instead. However, note that most shared definitions found in \path{biblatex.def} are defined with \cmd{newbibmacro}, hence they must be used and modified accordingly. +Defines a macro to be executed via \cmd{usebibmacro} later. The syntax of this command is very similar to \cmd{newcommand} except that \prm{name} may contain characters such as numbers and punctuation marks and does not start with a backslash. The optional argument \prm{arguments} is an integer specifying the number of arguments taken by the macro. If \prm{optional} is given, it specifies a default value for the first argument of the macro, which automatically becomes an optional argument. In contrast to \cmd{newcommand}, \cmd{newbibmacro} issues a warning message if the macro is already defined, and automatically falls back to \cmd{renewbibmacro}. As with \cmd{newcommand}, the regular variant of this command uses the \cmd{long} prefix in the definition while the starred one does not. If a macro has been declared to be long, it may take arguments containing \cmd{par} tokens. \cmd{newbibmacro} and \cmd{renewbibmacro} are provided for convenience. Style authors are free to use \cmd{newcommand} or \cmd{def} instead. However, note that most shared definitions found in \path{biblatex$_$.def} are defined with \cmd{newbibmacro}, hence they must be used and modified accordingly. \cmditem{renewbibmacro}{name}[arguments][optional]{definition} \cmditem*{renewbibmacro*}{name}[arguments][optional]{definition} @@ -8273,10 +8553,10 @@ Similar to \cmd{MakeUppercase} but only coverts the first printable character in Converts its \prm{text} argument to sentence case, \ie the first word is capitalized and the remainder of the string is converted to lowercase. This command is robust. The starred variant differs from the regular version in that it considers the language of the entry, as specified in the \bibfield{langid} field. It only converts the \prm{text} to sentence case if the \bibfield{langid} field is undefined or if it holds a language declared with \cmd{DeclareCaseLangs} (see below).\footnote{By default, converting to sentence case is enabled for the following language identifiers: \texttt{american}, \texttt{british}, \texttt{canadian}, \texttt{english}, \texttt{australian}, \texttt{newzealand} as well as the aliases \texttt{USenglish} and \texttt{UKenglish}. Use \cmd{DeclareCaseLangs} to extend or change this list.} Otherwise, the \prm{text} is not altered in any way. It is recommended to use \cmd{MakeSentenceCase*} rather than the regular variant in formatting directives. Both variants support the traditional \bibtex convention for \file{bib} files that anything wrapped in a pair of curly braces is not modified when changing the case. For example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \MakeSentenceCase{an Introduction to LaTeX} \MakeSentenceCase{an Introduction to {LaTeX}} -\end{lstlisting} +\end{ltxexample} % would yield: @@ -8297,10 +8577,10 @@ The problem with this convention is that the braces will suppress the kerning on This command is intended for use in field formatting directives which format the page numbers in the \prm{postnote} argument of citation commands and the \bibfield{pages} field of bibliography entries. It will parse its \prm{text} argument and prefix it with <p.> or <pp.> by default. The optional \prm{pagination} argument holds the name of a field indicating the pagination type. This may be either \bibfield{pagination} or \bibfield{bookpagination}, with \bibfield{pagination} being the default. The spacing between the prefix and the \prm{text} may be modified by redefining \cmd{ppspace}. The default is an unbreakable interword space. See \secref{bib:use:pag, use:cav:pag} for further details. See also \cmd{DeclareNumChars}, \cmd{DeclareRangeChars}, \cmd{DeclareRangeCommands}, and \cmd{NumCheckSetup}. The optional \prm{postpro} argument specifies a macro to be used for post-processing the \prm{text}. If only one optional argument is given, it is taken as \prm{pagination}. Here are two typical examples: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldFormat{postnote}{<<\mkpageprefix[pagination]{#1}>>} \DeclareFieldFormat{pages}{<<\mkpageprefix[bookpagination]{#1}>>} -\end{lstlisting} +\end{ltxexample} % The optional argument \bibfield{pagination} in the first example is omissible. @@ -8308,9 +8588,9 @@ The optional argument \bibfield{pagination} in the first example is omissible. This command is similar to \cmd{mkpageprefix} except that it is intended for the \bibfield{pagetotal} field of bibliography entries, \ie it will print «123 pages» rather than «page 123». The optional \prm{pagination} argument defaults to \bibfield{bookpagination}. The spacing inserted between the pagination suffix and the \prm{text} may be modified by redefining the macro \cmd{ppspace}. The optional \prm{postpro} argument specifies a macro to be used for post-processing the \prm{text}. If only one optional argument is given, it is taken as \prm{pagination}. Here is a typical example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldFormat{pagetotal}{<<\mkpagetotal[bookpagination]{#1}>>} -\end{lstlisting} +\end{ltxexample} % The optional argument \bibfield{bookpagination} is omissible in this case. @@ -8355,57 +8635,57 @@ The optional argument \bibfield{bookpagination} is omissible in this case. This command, which is intended for use in field formatting directives, will parse its \prm{text} argument for page ranges and compress them. For example, «125--129» may be formatted as «125--9». You may configure the behavior of \cmd{mkcomprange} by adjusting the \latex counters \cnt{mincomprange}, \cnt{maxcomprange}, and \cnt{mincompwidth}, as illustrated in \tabref{aut:aux:tab1}. The default settings are \texttt{10}, \texttt{100000}, and \texttt{1}, respectively. This means that the command tries to compress as much as possible by default. Use \cmd{setcounter} to adjust the parameters. The scanner recognizes \cmd{bibrangedash} and hyphens as range dashes. It will normalize the dash by replacing any number of consecutive hyphens with \cmd{bibrangedash}. Lists of ranges delimited with \cmd{bibrangessep} (\biber\footnote{\biber will always convert commas/semicolon multi-range separators into \cmd{bibrangessep} so that it can be controlled in the style.}) or commas/semicolons (BibTeX) are also supported. With \biber, the scanner will normalise any comma or semi-colons surrounded by optional space by replacing them with \cmd{bibrangessep}. If you want to hide a character from the list/range scanner for some reason, wrap the character or the entire string in curly braces. The optional \prm{postpro} argument specifies a macro to be used for post-processing the \prm{text}. This is important if you want to combine \cmd{mkcomprange} with other formatting macros which also need to parse their \prm{text} argument, such as \cmd{mkpageprefix}. Simply nesting these commands will not work as expected. Use the \prm{postpro} argument to set up the processing chain as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldFormat{postnote}{\mkcomprange[<<{>>\mkpageprefix[pagination]<<}>>]{#1}} -\end{lstlisting} +\end{ltxexample} % Note that \cmd{mkcomprange} is executed first, using \cmd{mkpageprefix} as post-processor. Also note that the \prm{postpro} argument is wrapped in an additional pair of braces. This is only required in this particular case to prevent \latex's optional argument scanner from getting confused by the nested brackets. The starred version of this command differs from the regular one in the way the \prm{postpro} argument is applied to a list of values. For example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \mkcomprange[\mkpageprefix]{5, 123-129, 423-439} \mkcomprange*[\mkpageprefix]{5, 123-129, 423-439} -\end{lstlisting} +\end{ltxexample} % will output: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} pp. 5, 123-9, 423-39 p. 5, pp. 123-9, pp. 423-39 -\end{lstlisting} +\end{ltxexample} \cmditem{mkfirstpage}[postpro]{text} \cmditem*{mkfirstpage*}[postpro]{text} This command, which is intended for use in field formatting directives, will parse its \prm{text} argument for page ranges and print the start page of the range only. The scanner recognizes \cmd{bibrangedash} and hyphens as range dashes. Lists of ranges delimited with \cmd{bibrangessep} (\biber\footnote{\biber will always convert commas/semicolon multi-range separators into \cmd{bibrangessep} so that it can be controlled in the style.}) or commas/semicolons (BibTeX) are also supported. If you want to hide a character from the list/range scanner for some reason, wrap the character or the entire string in curly braces. The optional \prm{postpro} argument specifies a macro to be used for post-processing the \prm{text}. See \cmd{mkcomprange} on how to use this argument. The starred version of this command differs from the regular one in the way the \prm{postpro} argument is applied to a list of values. For example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \mkfirstpage[\mkpageprefix]{5, 123-129, 423-439} \mkfirstpage*[\mkpageprefix]{5, 123-129, 423-439} -\end{lstlisting} +\end{ltxexample} % will output: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} pp. 5, 123, 423 p. 5, p. 123, p. 423 -\end{lstlisting} +\end{ltxexample} \cmditem{rangelen}{text} This command will parse its argument as a range and return the length of the range. It will return -1 for open-ended ranges. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \rangelen{5-10} returns '5' \rangelen{-10} returns '0' \rangelen{5-} returns '0' \rangelen{5} returns '1' -\end{lstlisting} +\end{ltxexample} % This can be used as part of tests in styles which require, for example, <f> as a suffix for ranges of only two pages as when a page range <36-37> should be printed as <36f>. This could be done using \cmd{ifnumcomp}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \ifnumcomp{\rangelen{\thefield{pages}}}{=}{1}{add 'f'}{do nothing} -\end{lstlisting} +\end{ltxexample} \cmditem{frangelen}{rangefield}\BiberOnlyMark @@ -8435,18 +8715,18 @@ pages = <ⅥⅠ-ⅻ, 145-7, 135-39> & |\frangelen{pages}| returns '14' As with \cmd{rangelen}, \cmd{frangelen} can be used in tests: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \ifnumcomp{\frangelen{pages}}{=}{1}{add 'f'}{do nothing} -\end{lstlisting} +\end{ltxexample} \cmditem{DeclareNumChars}{characters} \cmditem*{DeclareNumChars*}{characters} This command configures the \cmd{ifnumeral}, \cmd{ifnumerals}, and \cmd{ifpages} tests from \secref{aut:aux:tst}. The setup will also affect \cmd{iffieldnum}, \cmd{iffieldnums}, \cmd{iffieldpages} as well as \cmd{mkpageprefix} and \cmd{mkpagetotal}. The \prm{characters} argument is an undelimited list of characters which are to be considered as being part of a number. The regular version of this command replaces the current setting, the starred version appends its argument to the current list. The default setting is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareNumChars{.} -\end{lstlisting} +\end{ltxexample} % This means that a (section or other) number like <3.4.5> will be considered as a number. Note that Arabic and Roman numerals are detected by default, there is no need to declare them explicitly. @@ -8455,9 +8735,9 @@ This means that a (section or other) number like <3.4.5> will be considered as a This command configures the \cmd{ifnumerals} and \cmd{ifpages} tests from \secref{aut:aux:tst}. The setup will also affect \cmd{iffieldnums} and \cmd{iffieldpages} as well as \cmd{mkpageprefix} and \cmd{mkpagetotal}. The \prm{characters} argument is an undelimited list of characters which are to be considered as range indicators. The regular version of this command replaces the current setting, the starred version appends its argument to the current list. The default setting is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareRangeChars{~,;-+/} -\end{lstlisting} +\end{ltxexample} % This means that strings like <3--5>, <35+>, <8/9> and so on will be considered as a range by \cmd{ifnumerals} and \cmd{ifpages}. Non-range characters in such strings are recognized as numbers. So strings like <3a--5a> and <35b+> are not deemed to be ranges by default. See also \secref{bib:use:pag, use:cav:pag} for further details. @@ -8466,9 +8746,9 @@ This means that strings like <3--5>, <35+>, <8/9> and so on will be considered a This command is similar to \cmd{DeclareRangeChars}, except that the \prm{commands} argument is an undelimited list of commands which are to be considered as range indicators. The regular version of this command replaces the current setting, the starred version appends its argument to the current list. The default list is rather long and should cover all common cases; here is a shorter example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareRangeCommands{\&\bibrangedash\textendash\textemdash\psq\psqq} -\end{lstlisting} +\end{ltxexample} % See also \secref{bib:use:pag, use:cav:pag} for further details. @@ -8477,9 +8757,9 @@ See also \secref{bib:use:pag, use:cav:pag} for further details. This command is similar to \cmd{DeclareRangeCommands}, except that it only affects the \cmd{ifpages} and \cmd{iffieldpages} tests but not \cmd{ifnumerals} and \cmd{iffieldnums}. The default setting is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclarePageCommands{\pno\ppno} -\end{lstlisting} +\end{ltxexample} \cmditem{NumCheckSetup}{code} @@ -8490,11 +8770,11 @@ Use this command to temporarily redefine any commands which interfere with the t Defines the list of languages which are considered by the \cmd{MakeSentenceCase*} command as it converts a string to sentence case. The \prm{languages} argument is a comma"=separated list of \sty{babel}/\sty{polyglossia} languages identifiers. The regular version of this command replaces the current setting, the starred version appends its argument to the current list. The default setting is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareCaseLangs{% american,british,canadian,english,australian,newzealand, USenglish,UKenglish} -\end{lstlisting} +\end{ltxexample} % See the \sty{babel}/\sty{polyglossia} manuals and \tabref{bib:fld:tab1} for a list of languages identifiers. @@ -8705,19 +8985,19 @@ The following commands configure various features related to punctuation and aut \cmditem{DeclarePrefChars}{characters} -This command declares characters that are to be treated specially when testing to see if \cmd{bibnamedelimc} is to be inserted between a name prefix and a lastname. If a character is in the list of \prm{characters}, \cmd{bibnamedelimc} is not inserted. It is used to allow abbreviated name prefices like <d'Argent> where no space should be inserted after the apostrophe. The default setting is: +This command declares characters that are to be treated specially when testing to see if \cmd{bibnamedelimc} is to be inserted between a name prefix and a family name. If a character is in the list of \prm{characters}, \cmd{bibnamedelimc} is not inserted. It is used to allow abbreviated name prefices like <d'Argent> where no space should be inserted after the apostrophe. The default setting is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclarePrefChars{'} -\end{lstlisting} +\end{ltxexample} \cmditem{DeclareAutoPunctuation}{characters} This command defines the punctuation marks to be considered by the citation commands as they scan ahead for punctuation. Note that \prm{characters} is an undelimited list of characters. Valid \prm{characters} are period, comma, semicolon, colon, exclamation and question mark. The default setting is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareAutoPunctuation{.,;:!?} -\end{lstlisting} +\end{ltxexample} % This definition is restored automatically whenever the \opt{autopunct} package option is set to \texttt{true}. Executing |\DeclareAutoPunctuation{}| is equivalent to setting \kvopt{autopunct}{false}, \ie it disables this feature. @@ -8725,9 +9005,9 @@ This definition is restored automatically whenever the \opt{autopunct} package o When \biblatex inserts localization strings, \ie key terms such as <edition> or <volume>, it automatically capitalizes them after terminal punctuation marks. This command defines the punctuation marks which will cause localization strings to be capitalized if one of them precedes a string. Note that \prm{characters} is an undelimited list of characters. Valid \prm{characters} are period, comma, semicolon, colon, exclamation and question mark. The package default is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareCapitalPunctuation{.!?} -\end{lstlisting} +\end{ltxexample} % Using \cmd{DeclareCapitalPunctuation} with an empty argument is equivalent to disabling automatic capitalization. Since this feature is language specific, this command must be used in the argument to \cmd{DefineBibliographyExtras} (when used in the preamble) or \cmd{DeclareBibliographyExtras} (when used in a localization module). See \secref{use:lng, aut:lng} for details. By default, strings are capitalized after periods, exclamation marks, and question marks. All strings are generally capitalized at the beginning of a paragraph (in fact whenever \tex is in vertical mode). @@ -8735,13 +9015,13 @@ Using \cmd{DeclareCapitalPunctuation} with an empty argument is equivalent to di Use this command to declare valid pairs of punctuation marks. This will affect the punctuation commands discussed in \secref{aut:pct:pct}. For example, the description of \cmd{addcomma} states that this command adds a comma unless it is preceded by another comma, a semicolon, a colon, or a period. In other words, commas after abbreviation dots, exclamation marks, and question marks are permitted. These valid pairs are declared as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclarePunctuationPairs{comma}{*!?} -\end{lstlisting} +\end{ltxexample} % The \prm{identifier} selects the command to be configured. The identifiers correspond to the names of the punctuation commands from \secref{aut:pct:pct} without the \cmd{add} prefix, \ie valid \prm{identifier} strings are \texttt{dot}, \texttt{comma}, \texttt{semicolon}, \texttt{colon}, \texttt{period}, \texttt{exclam}, \texttt{question}. The \prm{characters} argument is an undelimited list of punctuation marks. Valid \prm{characters} are comma, semicolon, colon, period, exclamation mark, question mark, and asterisk. A period in the \prm{characters} argument denotes an end-of"=sentence period, an asterisk the dot after an abbreviation. This is the default setup, which is automatically restored whenever \biblatex switches languages and corresponds to the behavior described in \secref{aut:pct:pct}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclarePunctuationPairs{dot}{} \DeclarePunctuationPairs{comma}{*!?} \DeclarePunctuationPairs{semicolon}{*!?} @@ -8749,7 +9029,7 @@ The \prm{identifier} selects the command to be configured. The identifiers corre \DeclarePunctuationPairs{period}{} \DeclarePunctuationPairs{exclam}{*} \DeclarePunctuationPairs{question}{*} -\end{lstlisting} +\end{ltxexample} % Since this feature is language specific, \cmd{DeclarePunctuationPairs} must be used in the argument to \cmd{DefineBibliographyExtras} (when used in the preamble) or \cmd{DeclareBibliographyExtras} (when used in a localization module). See \secref{use:lng, aut:lng} for details. Note that some localization modules may use a setup which is different from the package default.\footnote{As of this writing, the \texttt{american} module uses different settings for <American-style> punctuation.} @@ -8757,9 +9037,9 @@ Since this feature is language specific, \cmd{DeclarePunctuationPairs} must be u This command controls <American-style> punctuation. The \cmd{mkbibquote} wrapper from \secref{aut:fmt:ich} can interact with the punctuation facilities discussed in \secref{aut:pct:new, aut:pct:pct, aut:pct:spc}. Punctuation marks after \cmd{mkbibquote} will be moved inside the quotes if they have been registered with \cmd{DeclareQuotePunctuation}. Note that \prm{characters} is an undelimited list of characters. Valid \prm{characters} are period, comma, semicolon, colon, exclamation and question mark. Here is an example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareQuotePunctuation{.,} -\end{lstlisting} +\end{ltxexample} % Executing |\DeclareQuotePunctuation{}| is equivalent to disabling this feature. This is the package default. Since this feature is language specific, this command must be used in the argument to \cmd{DefineBibliographyExtras} (when used in the preamble) or \cmd{DeclareBibliographyExtras} (when used in a localization module). See \secref{use:lng, aut:lng} for details. See also \secref{use:loc:us}. @@ -8885,34 +9165,34 @@ The user"=level versions of the localization commands were already introduced in This command is only available in \file{lbx} files. It is used to define localization strings. The \prm{definitions} consist of \keyval pairs which assign an expression to an identifier. A complete list of all keys supported by default is given is \secref{aut:lng:key}. Note that the syntax of the value is different in \file{lbx} files. The value assigned to a key consists of two expressions, each of which is wrapped in an additional pair of brackets. This is best shown by example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBibliographyStrings{% bibliography = {{Bibliography}{Bibliography}}, shorthands = {{List of Abbreviations}{Abbreviations}}, editor = {{editor}{ed.}}, editors = {{editors}{eds.}}, } -\end{lstlisting} +\end{ltxexample} % The first value is the long, written out expression, the second one is an abbreviated or short form. Both strings must always be given even though they may be identical if an expression is always (or never) abbreviated. Depending on the setting of the \opt{abbreviate} package option (see \secref{use:opt:pre:gen}), \biblatex selects one expression when loading the \file{lbx} file. There is also a special key named \texttt{inherit} which copies the strings from a different language. This is intended for languages which only differ in a few expressions, such as German and Austrian or American and British English. For example, here are the complete definitions for Austrian: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBibliographyStrings{% inherit = {german}, january = {{J\"anner}{J\"an.}}, } -\end{lstlisting} +\end{ltxexample} The above examples are slightly simplified. Real localization files should use the punctuation and formatting commands discussed in \secref{aut:pct:pct, use:fmt} instead of literal punctuation. Here is an excerpt from a real localization file: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} bibliography = {{Bibliography}{Bibliography}}, shorthands = {{List of Abbreviations}{Abbreviations}}, editor = {{editor}{ed\adddot}}, editors = {{editors}{eds\adddot}}, byeditor = {{edited by}{ed\adddotspace by}}, mathesis = {{Master's thesis}{MA\addabbrvspace thesis}}, -\end{lstlisting} +\end{ltxexample} % Note the handling of abbreviation dots, the spacing in abbreviated expressions, and the capitalization in the example above. All expressions should be capitalized as they usually are when used in the middle of a sentence. The \biblatex package will automatically capitalize the first word when required at the beginning of a sentence, see \cmd{DeclareCapitalPunctuation} in \secref{aut:pct:cfg} for details. Expressions intended for use in headings are special. They should be capitalized in a way that is suitable for titling and should not be abbreviated (but they may have a short form). @@ -8941,12 +9221,12 @@ This command corresponds to \cmd{DefineHyphenationExceptions} from \secref{use:l This command provides the language mappings required by the \opt{clearlang} option from \secref{use:opt:pre:gen}. The \prm{language} is the string given in the \bibfield{language} field (without the optional \texttt{lang} prefix); \prm{langid} is \sty{babel}/\sty{polyglossia}'s language identifier, as given in the optional argument of \cmd{usepackage} when loading \sty{babel} or the argument of \cmd{setdefaultlanguage} or \cmd{setotherlanguages} when using \sty{polyglossia}. This command may be used in \file{lbx} files or in the document preamble. Here are some examples: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareRedundantLanguages{french}{french} \DeclareRedundantLanguages{german}{german,ngerman,austrian,naustrian} \DeclareRedundantLanguages{english,american}{english,american,british, canadian,australian,newzealand,USenglish,UKenglish} -\end{lstlisting} +\end{ltxexample} % Note that this feature needs to be enabled globally with the \opt{clearlang} option from \secref{use:opt:pre:gen}. If it is disabled, all mappings will be ignored. If the \prm{langid} parameter is blank, \biblatex will clear the mappings for the corresponding \prm{language}, \ie the feature will be disabled for this \prm{language} only. @@ -9513,7 +9793,7 @@ This section corresponds to \secref{use:fmt} in the user part of this manual. Bi \subsubsection{User-definable Commands and Hooks} \label{aut:fmt:fmt} -This section corresponds to \secref{use:fmt:fmt} in the user part of the manual. The commands and hooks discussed here are meant to be redefined by users, but bibliography and citation styles may provide a default definition which is different from the package default. These commands are defined in \path{biblatex.def}. Note that all commands starting with \cmd{mk\dots} take one mandatory argument. +This section corresponds to \secref{use:fmt:fmt} in the user part of the manual. The commands and hooks discussed here are meant to be redefined by users, but bibliography and citation styles may provide a default definition which is different from the package default. These commands are defined in \path{biblatex$_$.def}. Note that all commands starting with \cmd{mk\dots} take one mandatory argument. \begin{ltxsyntax} @@ -9593,7 +9873,7 @@ The delimiter to be printed between multiple items in a name list like \bibfield Use this command instead of \cmd{multinamedelim} before the final name in a name list. \csitem{revsdnamedelim} -The extra delimiter to be printed after the first name in a name list (in addition to \cmd{finalnamedelim}) if the first name is reversed. This command should be incorporated in all formatting directives for name lists. +The extra delimiter to be printed after the first name in a name list consisting of two names (in addition to \cmd{finalnamedelim}) if the first name is reversed. This command should be incorporated in all formatting directives for name lists. \csitem{andothersdelim} The delimiter to be printed before the localization string <\texttt{andothers}> if a name list like \bibfield{author} or \bibfield{editor} is truncated. This command should be incorporated in all formatting directives for name lists. @@ -9625,6 +9905,9 @@ The delimiter to be printed between the author\slash editor and the title. This \csitem{nameyeardelim} The delimiter to be printed between the author\slash editor and the year. This command should be incorporated in the definition of all citation commands of author-year citation styles. +\csitem{nonameyeardelim} +The delimiter printed between the substitute for the labelname when it does not exist (usually the label or title in standard styles) and the year in author-year citation styles. This is only used when there is no labelname since when the labelname exists, \cmd{nameyeardelim} is used. + \csitem{volcitedelim} The delimiter to be printed between the volume portion and the page/text portion of \cmd{volcite} and related commands (\secref{use:cit:spc}). @@ -9634,6 +9917,9 @@ The delimiter to be printed after the \prm{prenote} argument of a citation comma \csitem{postnotedelim} The delimiter to be printed after the \prm{postnote} argument of a citation command. +\csitem{extpostnotedelim} +The delimiter printed between the citation and the parenthetical \prm{postnote} argument of a citation command when the postnote occurs outside of the citation parentheses. In the standard styles, this occurs when the citation uses the shorthand field of the entry. + \cmditem{mkbibnamelast}{text} Formatting hook for the last name, to be used in all formatting directives for name lists. @@ -9819,15 +10105,15 @@ Similar to \cmd{mkbibendnote} but uses the \cmd{endnotetext} command. Please not An inner wrapper which encloses the \prm{text} argument of \cmd{mkbibfootnote} and \cmd{mkbibfootnotetext}. For example, \cmd{mkbibfootnote} eventually boils down to this: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \footnote{<<\bibfootnotewrapper{>>text<<}>>} -\end{lstlisting} +\end{ltxexample} % The wrapper ensures capitalization at the beginning of the note and adds a period at the end. The default definition is: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \newcommand{\bibfootnotewrapper}[1]{<<\bibsentence>> #1<<\addperiod>>} -\end{lstlisting} +\end{ltxexample} % If you don't want capitalization at the beginning or a period at the end of the note, do not modify \cmd{mkbibfootnote} but redefine \cmd{bibfootnotewrapper} instead. @@ -10030,9 +10316,9 @@ Appends the \prm{code} to an internal hook executed at the beginning of the list When using \biber, this is just an alias for: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \AtBeginBiblist{shorthand}{code} -\end{lstlisting} +\end{ltxexample} \cmditem{AtBeginBiblist}{biblistname}{code}\BiberOnlyMark @@ -10048,9 +10334,9 @@ Appends the \prm{code} to an internal hook executed at the beginning of every it When using \biber, this is just an alias for: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \AtEveryBiblistitem{shorthand}{code} -\end{lstlisting} +\end{ltxexample} \cmditem{AtEveryBiblistitem}{biblistname}{code}\BiberOnlyMark @@ -10136,28 +10422,28 @@ This section provides some additional hints concerning the author interface of t Entry sets have already been introduced in \secref{use:use:set}. This section discusses how to process entry sets in a bibliography style. From the perspective of the driver, there is no difference between static and dynamic entry sets. Both types are handled in the same way. You will normally use the \cmd{entryset} command from \secref{aut:bib:dat} to loop over all set members (in the order in which they are listed in the \bibfield{entryset} field of the \bibtype{set} entry, or in the order in which they were passed to \cmd{defbibentryset}, respectively) and append \cmd{finentry} at the end. That's it. The formatting is handled by the drivers for the entry types of the individual set members: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBibliographyDriver{set}{% <<\entryset>>{}{}% \finentry} -\end{lstlisting} +\end{ltxexample} % You may have noticed that the \texttt{numeric} styles which ship with this package support subdivided entry sets, \ie the members of the set are marked with a letter or some other marker such that citations may either refer to the entire set or to a specific set member. The markers are generated as follows by the bibliography style: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareBibliographyDriver{set}{% \entryset {<<\printfield{entrysetcount}>>% <<\setunit*{\addnbspace}>>} {}% \finentry} -\end{lstlisting} +\end{ltxexample} % The \bibfield{entrysetcount} field holds an integer indicating the position of a set member in the entry set. The conversion of this number to a letter or some other marker is handled by the formatting directive of the \bibfield{entrysetcount} field. All the driver needs to do is print the field and add some white space (or start a new line). Printing the markers in citations works in a similar way. Where a numeric style normally says |\printfield{labelnumber}|, you simply append the \bibfield{entrysetcount} field: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printfield{labelnumber}<<\printfield{entrysetcount}>> -\end{lstlisting} +\end{ltxexample} % Since this field is only defined when processing citations referring to a set member, there is no need to add any additional tests. @@ -10166,27 +10452,27 @@ Since this field is only defined when processing citations referring to a set me The standard styles feature dedicated support for arXiv references. Support for other resources is easily added. The standard styles handle the \bibfield{eprint} field as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \iffieldundef{eprinttype} {\printfield{eprint}} {\printfield[<<eprint:\strfield{eprinttype}>>]{eprint}} -\end{lstlisting} +\end{ltxexample} % If an \bibfield{eprinttype} field is available, the above code tries to use the field format \texttt{eprint:\prm{eprinttype}}. If this format is undefined, \cmd{printfield} automatically falls back to the field format \texttt{eprint}. There are two predefined field formats, the type"=specific format \texttt{eprint:arxiv} and the fallback format \texttt{eprint}: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldFormat{<<eprint>>}{...} \DeclareFieldFormat{<<eprint:arxiv>>}{...} -\end{lstlisting} +\end{ltxexample} % In other words, adding support for additional resources is as easy as defining a field format named \texttt{eprint:\prm{resource}} where \prm{resource} is an identifier to be used in the \bibfield{eprinttype} field. \subsubsection{External Abstracts and Annotations} \label{aut:cav:prf} -External abstracts and annotations have been discussed in \secref{use:use:prf}. This section provides some more background for style authors. The standard styles use the following macros (from \path{biblatex.def}) to handle abstracts and annotations: +External abstracts and annotations have been discussed in \secref{use:use:prf}. This section provides some more background for style authors. The standard styles use the following macros (from \path{biblatex$_$.def}) to handle abstracts and annotations: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \newbibmacro*{annotation}{% \iffieldundef{annotation} {\printfile[annotation]{<<\bibannotationprefix\thefield{entrykey}.tex>>}}% @@ -10198,7 +10484,7 @@ External abstracts and annotations have been discussed in \secref{use:use:prf}. {\printfile[abstract]{<<\bibabstractprefix\thefield{entrykey}.tex>>}}% {\printfield{abstract}}} \newcommand*{<<\bibabstractprefix>>}{bibabstract-} -\end{lstlisting} +\end{ltxexample} % If the \bibfield{abstract}\slash \bibfield{annotation} field is undefined, the above code tries to load the abstracts\slash annotations from an external file. The \cmd{printfile} commands also incorporate file name prefixes which may be redefined by users. Note that you must enable \cmd{printfile} explicitly by setting the \opt{loadfiles} package option from \secref{use:opt:pre:gen}. This feature is disabled by default for performance reasons. @@ -10446,13 +10732,13 @@ If a citation is given in a float (typically in the caption of a figure or table The \biblatex package provides two main programming interfaces for style authors. The \cmd{DeclareBibliographyDriver} command, which defines a handler for an entry type, is typically used in \file{bbx} files. \cmd{DeclareCiteCommand}, which defines a new citation command, is typically used in \file{cbx} files. However, in some cases it is convenient to mix these two interfaces. For example, the \cmd{fullcite} command prints a verbose citation similar to the full bibliography entry. It is essentially defined as follows: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareCiteCommand{\fullcite} {...} {<<\usedriver>>{...}{<<\thefield{entrytype}>>}} {...} {...} -\end{lstlisting} +\end{ltxexample} % As you can see, the core code which prints the citations simply executes the bibliography driver defined with \cmd{DeclareBibliographyDriver} for the type of the current entry. When writing a citation style for a verbose citation scheme, it is often convenient to use the following structure: @@ -10524,13 +10810,13 @@ When defining \cmd{bbx@xref}, the \prm{precode}, \prm{postcode}, and \prm{sepcod There is one fundamental principle style authors should keep in mind when designing a bibliography driver: block and unit punctuation is handled asynchronously. This is best explained by way of example. Consider the following code snippet: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printfield{title}% \newunit \printfield{edition}% \newunit \printfield{note}% -\end{lstlisting} +\end{ltxexample} % If there is no \bibfield{edition} field, this piece of code will not print: @@ -10558,19 +10844,19 @@ because the unit punctuation tracker works asynchronously. \cmd{newunit} will no % Block and unit punctuation will only be inserted if \emph{all} of these conditions apply. Let's reconsider the above example: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printfield{title}% \newunit \printfield{edition}% \newunit \printfield{note}% -\end{lstlisting} +\end{ltxexample} % Here's what happens if the \bibfield{edition} field is undefined. The first \cmd{printfield} command prints the title and sets an internal <new~text> flag. The first \cmd{newunit} sets an internal <new~unit> flag. No punctuation has been printed at this point. The second \cmd{printfield} does nothing because the \bibfield{edition} field is undefined. The next \cmd{newunit} command sets the internal flag <new unit> again. Still no punctuation has been printed. The third \cmd{printfield} checks if the \bibfield{note} field is defined. If so, it looks at the <new~text> and <new~unit> flags. If both are set, it inserts the punctuation buffer before printing the note. It then clears the <new~unit> flag and sets the <new~text> flag again. This may all sound more complicated than it is. In practice, it means that it is possible to write large parts of a bibliography driver in a sequential way. The advantage of this approach becomes obvious when trying to write the above code without using the punctuation tracker. Such an attempt will lead to a rather convoluted set of \cmd{iffieldundef} tests required to check for all possible field combinations (note that the code below handles three fields; a typical driver may need to cater for some two dozen fields): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \iffieldundef{title}% {\iffieldundef{edition} {\printfield{note}} @@ -10585,17 +10871,17 @@ This may all sound more complicated than it is. In practice, it means that it is \iffieldundef{note} {} {. \printfield{note}}}% -\end{lstlisting} +\end{ltxexample} \paragraph{Common Mistakes} It is a fairly common misconception to think of the unit punctuation as something that is handled synchronously. This typically causes problems if the driver includes any literal text. Consider this erroneous code snippet which will generate misplaced unit punctuation: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printfield{title}% \newunit <<(>>\printfield{series} \printfield{number}<<)>>% -\end{lstlisting} +\end{ltxexample} % This code will yield the following result: @@ -10605,7 +10891,7 @@ Title <<(.>> Series Number<<)>> % Here's what happens. The first \cmd{printfield} prints the title. Then \cmd{newunit} marks a unit boundary but does not print anything. The unit punctuation is printed by the \emph{next} \cmd{printfield} command. That's the asynchronous part mentioned before. However, the opening parenthesis is printed immediately before the next \cmd{printfield} inserts the unit punctuation, leading to a misplaced period. When inserting \emph{any} literal text such as parentheses (including those printed by commands such as \cmd{bibopenparen} and \cmd{mkbibparens}), always wrap the text in a \cmd{printtext} command. For the punctuation tracker to work as expected, it needs to know about all literal text inserted by a driver. This is what \cmd{printtext} is all about. \cmd{printtext} interfaces with the punctuation tracker and ensures that the punctuation buffer is inserted before the literal text gets printed. It also sets the internal <new~text> flag. Note there is in fact a third piece of literal text in this example: the space after |\printfield{series}|. In the corrected example, we will use the punctuation tracker to handle that space. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \printfield{title}% \newunit <<\printtext{(}>>% @@ -10613,34 +10899,34 @@ Here's what happens. The first \cmd{printfield} prints the title. Then \cmd{newu <<\setunit*{\addspace}>>% \printfield{number}% <<\printtext{)}>>% -\end{lstlisting} +\end{ltxexample} % While the above code will work as expected, the recommended way to handle parentheses, quotes, and other things which enclose more than one field, is to define a field format: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareFieldFormat{<<parens>>}{<<\mkbibparens{#1}>>} -\end{lstlisting} +\end{ltxexample} % Field formats may be used with both \cmd{printfield} and \cmd{printtext}, hence we can use them to enclose several fields in a single pair of parentheses: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} <<\printtext[parens]{>>% \printfield{series}% \setunit*{\addspace}% \printfield{number}% <<}>>% -\end{lstlisting} +\end{ltxexample} % We still need to handle cases in which there is no series information at all, so let's improve the code some more: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} <<\iffieldundef{series}>> {} {\printtext[parens]{% \printfield{series}% \setunit*{\addspace}% \printfield{number}}}% -\end{lstlisting} +\end{ltxexample} % One final hint: localization strings are not literal text as far as the punctuation tracker is concerned. Since \cmd{bibstring} and similar commands interface with the punctuation tracker, there is no need to wrap them in a \cmd{printtext} command. @@ -10648,7 +10934,7 @@ One final hint: localization strings are not literal text as far as the punctuat The punctuation tracker may also be used to handle more complex scenarios. For example, suppose that we want the fields \bibfield{location}, \bibfield{publisher}, and \bibfield{year} to be rendered in one of the following formats, depending on the available data: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} ...text<<. Location: Publisher, Year.>> Text... ...text<<. Location: Publisher.>> Text... ...text<<. Location: Year.>> Text... @@ -10656,11 +10942,11 @@ The punctuation tracker may also be used to handle more complex scenarios. For e ...text<<. Location.>> Text... ...text<<. Publisher.>> Text... ...text<<. Year.>> Text... -\end{lstlisting} +\end{ltxexample} % This problem can be solved with a rather convoluted set of \cmd{iflistundef} and \cmd{iffieldundef} tests which check for all possible field combinations: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \iflistundef{location} {\iflistundef{publisher} {\printfield{year}} @@ -10677,11 +10963,11 @@ This problem can be solved with a rather convoluted set of \cmd{iflistundef} and \iffieldundef{year} {} {, \printfield{year}}}}% -\end{lstlisting} +\end{ltxexample} % The above could be written in a somewhat more readable way by employing \cmd{ifthenelse} and the boolean operators discussed in \secref{aut:aux:ife}. The approach would still be essentially the same. However, it may also be written sequentially: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \newunit \printlist{location}% \setunit*{\addcolon\space}% @@ -10689,11 +10975,11 @@ The above could be written in a somewhat more readable way by employing \cmd{ift \setunit*{\addcomma\space}% \printfield{year}% \newunit -\end{lstlisting} +\end{ltxexample} % In practice, you will often use a combination of explicit tests and the implicit tests performed by the punctuation tracker. For example, consider the following format (note the punctuation after the location if there is no publisher): -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} ...text. Location: Publisher, Year. Text... ...text. Location: Publisher. Text... ...text<<. Location, Year.>> Text... @@ -10701,11 +10987,11 @@ In practice, you will often use a combination of explicit tests and the implicit ...text. Location. Text... ...text. Publisher. Text... ...text. Year. Text... -\end{lstlisting} +\end{ltxexample} % This can be handled by the following code: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \newunit \printlist{location}% \iflistundef{publisher} @@ -10715,7 +11001,7 @@ This can be handled by the following code: \setunit*{\addcomma\space}% \printfield{year}% \newunit -\end{lstlisting} +\end{ltxexample} % Since the punctuation after the location is special if there is no publisher, we need one \cmd{iflistundef} test to catch this case. Everything else is handled by the punctuation tracker. @@ -10724,15 +11010,15 @@ Since the punctuation after the location is special if there is no publisher, we Style guides may include provisions as to how strings like <edition> should be abbreviated or they may mandate certain fixed expressions. For example, the \acr{mla} style guide requires authors to use the term <Works~Cited> rather than <Bibliography> or <References> in the heading of the bibliography. Localization commands such as \cmd{DefineBibliographyStrings} from \secref{use:lng} may indeed be used in \file{cbx} and \file{bbx} files to handle such cases. However, overloading style files with translations is rather inconvenient. This is where \cmd{DeclareLanguageMapping} from \secref{aut:lng:cmd} comes into play. This command maps an \file{lbx} file with alternative translations to a \sty{babel}/\sty{polyglossia} language. For example, you could create a file named \path{french-humanities.lbx} which provides French translations adapted for use in the humanities and map it to the \sty{babel}/\sty{polyglossia} language \texttt{french} in the preamble or in the configuration file: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLanguageMapping{french}{french-humanities} -\end{lstlisting} +\end{ltxexample} % If the document language is set to \texttt{french}, \path{french-humanities.lbx} will replace \path{french.lbx}. Coming back to the \acr{mla} example mentioned above, an \acr{mla} style may come with an \path{american-mla.lbx} file to provide strings which comply with the \acr{mla} style guide. It would declare the following mapping in the \file{cbx} and/or \file{bbx} file: -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareLanguageMapping{american}{american-mla} -\end{lstlisting} +\end{ltxexample} % Since the alternative \file{lbx} file can inherit strings from the standard \path{american.lbx} module, \path{american-mla.lbx} may be as short as this: @@ -10805,7 +11091,7 @@ These are the driver default source mappings. For drivers other than \opt{bibtex \subsection{\opt{bibtex}} The \opt{bibtex} driver is of course the most comprehensive and mature of the \biblatex/\biber supported data formats. These source mapping defaults are how the aliases from sections \secref{bib:typ:als} and \secref{bib:fld:als} are implemented. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareDriverSourcemap[datatype=bibtex]{ \map{ \step[typesource=conference, typetarget=inproceedings] @@ -10835,143 +11121,13 @@ The \opt{bibtex} driver is of course the most comprehensive and mature of the \b \step[fieldsource=pdf, fieldtarget=file] } } -\end{lstlisting} - -\subsection{\opt{endnotexml}} - -The \opt{endnotexml} driver for \biber uses the following mappings. This format is quite messy and not well suited to robust typesetting of bibliographic data. It is presented largely as an example of \biber's modular datasource abilities and also of how to map foreign data models into the \biblatex data model. Mappings from such messy and relatively simple data models are inevitably fragile and are of limited use. - -\begin{lstlisting}[style=latex]{} -\DeclareDriverSourcemap[datatype=endnotexml]{ - \map{ - \step[typesource={Aggregated Database}, typetarget=misc] - \step[typesource={Ancient Text}, typetarget=misc] - \step[typesource=Artwork, typetarget=artwork] - \step[typesource={Audiovisual Material}, typetarget=misc] - \step[typesource=Bill, typetarget=jurisdiction] - \step[typesource=Blog, typetarget=online] - \step[typesource=Book, typetarget=book] - \step[typesource={Book Section}, typetarget=inbook] - \step[typesource=Case, typetarget=jurisdiction] - \step[typesource=Catalog, typetarget=misc] - \step[typesource={Chart or Table}, typetarget=misc] - \step[typesource={Classical Work}, typetarget=misc] - \step[typesource={Computer Program}, typetarget=software] - \step[typesource={Conference Paper}, typetarget=inproceedings] - \step[typesource={Conference Proceedings}, typetarget=proceedings] - \step[typesource=Dictionary, typetarget=inreference] - \step[typesource={Edited Book}, typetarget=collection] - \step[typesource={Electronic Article}, typetarget=article] - \step[typesource={Electronic Book}, typetarget=book] - \step[typesource={Encyclopedia}, typetarget=reference] - \step[typesource=Equation, typetarget=misc] - \step[typesource=Figure, typetarget=misc] - \step[typesource={Film or Broadcast}, typetarget=movie] - \step[typesource={Government Document}, typetarget=report] - \step[typesource=Grant, typetarget=misc] - \step[typesource=Hearing, typetarget=jurisdiction] - \step[typesource={Journal Article}, typetarget=article] - \step[typesource={Legal Rule or Regulation}, typetarget=legislation] - \step[typesource={Magazine Article}, typetarget=article] - \step[typesource=Manuscript, typetarget=unpublished] - \step[typesource=Map, typetarget=misc] - \step[typesource={Newspaper Article}, typetarget=article] - \step[typesource={Online Database}, typetarget=online] - \step[typesource={Online Multimedia}, typetarget=online] - \step[typesource=Pamphlet, typetarget=booklet] - \step[typesource=Patent, typetarget=patent] - \step[typesource={Personal Communication}, typetarget=letter] - \step[typesource=Report, typetarget=report] - \step[typesource=Serial, typetarget=periodical] - \step[typesource=Standard, typetarget=standard] - \step[typesource=Statute, typetarget=legislation] - \step[typesource=Thesis, typetarget=thesis] - \step[typesource={Unpublished Work}, typetarget=unpublished] - \step[typesource={Web Page}, typetarget=online] - } - \map{ - \step[fieldsource={electronic-resource-num}, fieldtarget=eprint] - \step[fieldsource={alt-title}, fieldtarget=shorttitle] - \step[fieldsource={meeting-place}, fieldtarget=venue] - \step[fieldsource={pub-location}, fieldtarget=location] - \step[fieldsource={orig-pub}, fieldtarget=origpublisher] - \step[fieldsource={authors}, fieldtarget=author] - \step[fieldsource={secondary-authors}, fieldtarget=editor] - \step[fieldsource={tertiary-authors}, fieldtarget=commentator] - \step[fieldsource={subsidiary-authors}, fieldtarget=translator] - \step[fieldsource={year}, fieldtarget=date] - \step[fieldsource={pub-dates}, fieldtarget=date] - \step[fieldsource={num-vols}, fieldtarget=volumes] - \step[fieldsource={call-num}, fieldtarget=library] - \step[fieldsource={notes}, fieldtarget=note] - \step[fieldsource={secondary-title}, fieldtarget=subtitle] - \step[fieldsource={work-type}, fieldtarget=type] - } - \map{ - \pertype{Edited Book} - \step[fieldsource=contributors/authors, fieldtarget=contributors/editor] - } - \map{ - \pertype{Electronic Article} - \pertype{Journal Article} - \pertype{Magazine Article} - \pertype{Newspaper Article} - \step[fieldsource=isbn, fieldtarget=issn] - } - \map{ - \pertype{Patent} - \pertype{Report} - \pertype{Government Document} - \pertype{Legal Rule or Regulation} - \step[fieldsource=isbn, fieldtarget=number] - } - \map{ - \pertype{Blog} - \pertype{Online Database} - \pertype{Online Multimedia} - \pertype{Web Page} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/title}] - } - \map{ - \pertype{Book Section} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/booktitle}] - } - \map{ - \pertype{Book} - \pertype{Electronic Book} - \pertype{Manuscript} - \pertype{Unpublished Work} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/series}] - } - \map{ - \pertype{Conference Paper} - \pertype{Conference Proceedings} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/eventtitle}] - } - \map{ - \pertype{Electronic Article} - \pertype{Journal Article} - \pertype{Magazine Article} - \pertype{Newspaper Article} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/journaltitle}] - } - \map{ - \pertype{Book Section} - \step[fieldsource={titles/tertiary-title}, fieldtarget={titles/booktitle}] - } - \map{ - \pertype{Conference Proceedings} - \pertype{periodical} - \step[fieldsource={titles/tertiary-title}, fieldtarget={titles/series}] - } -} -\end{lstlisting} +\end{ltxexample} \subsection{\opt{ris}} The \opt{ris} driver reflects the fact that \opt{ris} itself is a very simple and stable format. It is in fact so simple, it's hardly of any use for most \biblatex users. Again, here more as a proof of concept example. -\begin{lstlisting}[style=latex]{} +\begin{ltxexample} \DeclareDriverSourcemap[datatype=ris]{ \map{ \step[typesource=ART, typetarget=artwork] @@ -11031,117 +11187,7 @@ The \opt{ris} driver reflects the fact that \opt{ris} itself is a very simple an \step[fieldsource=L1, fieldtarget=file] } } -\end{lstlisting} - -\subsection{\opt{zoterordfxml}} - -The \opt{zoterordfxml} driver reads the Zotero\footnote{\url{www.zotero.org}} XML representation of its RDF format. From the \biblatex point of view, it suffers from a lack of the notion of a citation key and so is of limited use. The format may include a citation key in the future at which point the \biber driver and these default mappings will be updated. As with \opt{endnotexml}, the format is somewhat messy with, in particular, a very limited way of dealing with related entries which makes the driver setup rather ugly. As can be seen below, it is possible to map into a field prefixed with «BIBERCUSTOM» which is not a real field in the data model but can be detected in the \biber driver itself and used to process a source field which does not map naturally to any \biblatex data model field as it needs special treatment. This is messy but is due largely due to messy source data models. - -\begin{lstlisting}[style=latex]{} -\DeclareDriverSourcemap[datatype=zoterordfxml]{ - \map{ - \step[typesource=conferencePaper, typetarget=inproceedings] - \step[typesource=bookSection, typetarget=inbook] - \step[typesource=journalArticle, typetarget=article] - \step[typesource=magazineArticle, typetarget=article] - \step[typesource=newspaperArticle, typetarget=article] - \step[typesource=encyclopediaArticle, typetarget=inreference] - \step[typesource=manuscript, typetarget=unpublished] - \step[typesource=document, typetarget=misc] - \step[typesource=dictionaryEntry, typetarget=inreference] - \step[typesource=interview, typetarget=misc] - \step[typesource=film, typetarget=movie] - \step[typesource=webpage, typetarget=online] - \step[typesource=note, typetarget=misc] - \step[typesource=attachment, typetarget=misc] - \step[typesource=bill, typetarget=legislation] - \step[typesource=case, typetarget=jurisdiction] - \step[typesource=hearing, typetarget=jurisdiction] - \step[typesource=statute, typetarget=legislation] - \step[typesource=email, typetarget=letter] - \step[typesource=map, typetarget=image] - \step[typesource=blogPost, typetarget=online] - \step[typesource=instantMessage, typetarget=letter] - \step[typesource=forumPost, typetarget=online] - \step[typesource=audioRecording, typetarget=audio] - \step[typesource=presentation, typetarget=inproceedings] - \step[typesource=videoRecording, typetarget=video] - \step[typesource=tvBroadcast, typetarget=misc] - \step[typesource=radioBroadcast, typetarget=misc] - \step[typesource=podcast, typetarget=online] - \step[typesource=computerProgram, typetarget=software] - } - \map{ - \step[fieldsource=bib:contributors, fieldtarget=author] - \step[fieldsource=bib:authors, fieldtarget=author] - \step[fieldsource=z:interviewers, fieldtarget=author] - \step[fieldsource=z:directors, fieldtarget=author] - \step[fieldsource=z:scriptwriters, fieldtarget=author] - \step[fieldsource=z:bookAuthor, fieldtarget=author] - \step[fieldsource=z:inventors, fieldtarget=author] - \step[fieldsource=z:recipients, fieldtarget=author] - \step[fieldsource=z:counsels, fieldtarget=author] - \step[fieldsource=z:artists, fieldtarget=author] - \step[fieldsource=z:podcasters, fieldtarget=author] - \step[fieldsource=z:presenters, fieldtarget=author] - \step[fieldsource=z:commenters, fieldtarget=author] - \step[fieldsource=z:programers, fieldtarget=author] - \step[fieldsource=z:composers, fieldtarget=author] - \step[fieldsource=z:producers, fieldtarget=author] - \step[fieldsource=z:performers, fieldtarget=author] - \step[fieldsource=bib:editors, fieldtarget=editor] - \step[fieldsource=z:translators, fieldtarget=translator] - \step[fieldsource=z:seriesEditors, fieldtarget=editor] - \step[fieldsource=dc:date, fieldtarget=date] - \step[fieldsource=bib:pages, fieldtarget=pages] - \step[fieldsource=dc:title, fieldtarget=title] - \step[fieldsource=z:proceedingsTitle, fieldtarget=title] - \step[fieldsource=z:encyclopediaTitle, fieldtarget=title] - \step[fieldsource=z:dictionaryTitle, fieldtarget=title] - \step[fieldsource=z:websiteTitle, fieldtarget=title] - \step[fieldsource=z:forumTitle, fieldtarget=title] - \step[fieldsource=z:blogTitle, fieldtarget=title] - \step[fieldsource=z:nameOfAct, fieldtarget=title] - \step[fieldsource=z:caseName, fieldtarget=title] - \step[fieldsource=z:meetingName, fieldtarget=eventtitle] - \step[fieldsource=prism:volume, fieldtarget=volume] - \step[fieldsource=numberOfVolumes, fieldtarget=volumes] - \step[fieldsource=z:numPages, fieldtarget=pagetotal] - \step[fieldsource=prism:edition, fieldtarget=edition] - \step[fieldsource=dc:description, fieldtarget=note] - \step[fieldsource=dc:alternative, fieldtarget=shortjournal] - \step[fieldsource=dcterms:abstract, fieldtarget=abstract] - \step[fieldsource=dc:type, fieldtarget=type] - \step[fieldsource=z:shortTitle, fieldtarget=shorttitle] - \step[fieldsource=z:bookTitle, fieldtarget=booktitle] - \step[fieldsource=prism:number, fieldtarget=number] - \step[fieldsource=z:patentNumber, fieldtarget=number] - \step[fieldsource=z:codeNumber, fieldtarget=number] - \step[fieldsource=z:reportNumber, fieldtarget=number] - \step[fieldsource=z:billNumber, fieldtarget=number] - \step[fieldsource=z:documentNumber, fieldtarget=number] - \step[fieldsource=z:publicLawNumber, fieldtarget=number] - \step[fieldsource=z:applicationNumber, fieldtarget=number] - \step[fieldsource=z:episodeNumber, fieldtarget=number] - \step[fieldsource=dc:coverage, fieldtarget=location] - \step[fieldsource=z:university, fieldtarget=institution] - \step[fieldsource=z:language, fieldtarget=language] - \step[fieldsource=z:version, fieldtarget=version] - \step[fieldsource=z:libraryCatalog, fieldtarget=library] - \step[fieldsource=dcterms:isPartOf, fieldtarget=BIBERCUSTOMpartof] - \step[fieldsource=dc:identifier, fieldtarget=BIBERCUSTOMidentifier] - \step[fieldsource=dc:publisher, fieldtarget=BIBERCUSTOMpublisher] - \step[fieldsource=dc:presentedAt, fieldtarget=BIBERCUSTOMpresentedat] - \step[fieldsource=dc:subject, fieldtarget=BIBERCUSTOMsubject] - \step[fieldsource={dcterms:BIBERCUSTOMpartof/bib:Journal}, - fieldtarget={dcterms:BIBERCUSTOMpartof/periodical}] - \step[fieldsource={dcterms:BIBERCUSTOMpartof/bib:Book}, - fieldtarget={dcterms:BIBERCUSTOMpartof/book}] - \step[fieldsource={dcterms:BIBERCUSTOMpartof/bib:ConferenceProceedings}, - fieldtarget={dcterms:BIBERCUSTOMpartof/proceedings}] - } -} -\end{lstlisting} +\end{ltxexample} \section{Default Inheritance Setup} \label{apx:ref} @@ -11352,6 +11398,221 @@ ydnt & presort\alt mm & \end{longtable} \endgroup +\section{\biblatexml}\BiberOnlyMark +\label{apx:biblatexml} +The \biblatexml\ XML datasource format is designed to be an extensible and modern data source format for \biblatex\ users. There are limitations with \bibtex\ format \file{.bib} files, in particular one might mention UTF-8 support and name formats. \biber\ goes some way to addressing the UTF-8 limitations by using a modified version of the \texttt{btparse} C library but the rather archaic name parsing rules for \bibtex\ are hard-coded and specific to simple Western names. + +\biblatexml is an XML format for bibliographic data. When \biber\ either reads or writes \biblatexml\ format datasources, it automatically writes a RelaXNG XML schema for the datasources which is dynamically generated from the active \biblatex\ datamodel. There is no static schema for \biblatexml\ datasources because the allowable fields etc. depend on the data model. The format of \biblatexml\ datasources is relatively self-explanatory---it is usually only necessary to generate a \biblatexml\ datasource from existing \bibtex\ format datasources (using \biber's <tool> mode) in order to understand the format. \biber also allows users to validate \biblatexml\ datasources against the data model generated schema. + +Since the \biblatexml\ format is XML and depends on the data model and the data model is extensible by the user (see \secref{aut:ctm:dm}), the \biblatexml\ format can deal with extensions that \bibtex\ format data sources cannot, e.g. new nameparts, options at sub-entry scope. Since it is an XML format, it is relatively easy to transform it into other XML formats or HTML using standard XML processing libraries and tools. + +Here is an explanation of the format with examples. By convention, \biblatexml\ files have a \file{.bltxml} extension and \file{kpsewhich} understands this file extension. + +\subsection{Header} +\biblatexml\ files begin with the standard XML header: + +\begin{lstlisting}[language=xml] +<?xml version="1.0" encoding="UTF-8"?> +\end{lstlisting} +% +The schema model, type and schema type namespace are given in the following line: + +\begin{lstlisting}[language=xml] +<?xml-model href="biblatexml.rng" + type="application/xml" + schematypens="http://relaxng.org/ns/structure/1.0"?> +\end{lstlisting} +% +When \biber\ generates \biblatexml\ data sources, it automatically adds this line and points the schema model (href) attribute at the automatically generated RelaXNG XML schema for ease of validation. + +\subsection{Body} + +The body of a \biblatexml\ data source looks like: + +\begin{lstlisting}[language=xml] +<bltx:entries + xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml"> + + <bltx:entry id="" entrytype=""> + </bltx:entry> + . + . + . + <bltx:entry id="" entrytype=""> + </bltx:entry> + +</bltx:entries> +\end{lstlisting} +% +The body is one or more \bibfield{entry} elements inside the top-level \bibfield{entries} element and everything is in the \bibfield{bltx} namespace. An entry has an \bibfield{id} attribute corresponding to a \bibtex\ entry key and a \bibfield{entrytype} attribute corresponding to a \bibtex\ entrytype. For example, the \biblatexml\ + +\begin{lstlisting}[language=xml] +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="biblatexml.rng" + type="application/xml" + schematypens="http://relaxng.org/ns/structure/1.0"?> +<bltx:entries + xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml"> + <bltx:entry id="key1" entrytype="book"> + </bltx:entry> +</bltx:entries> +\end{lstlisting} +% +Corresponds to the \bibtex\ \file{.bib} + +\begin{lstlisting}[style=bibtex]{} +@book{key1, +} +\end{lstlisting} +% +In general, the XML elements in a \biblatexml\ format datasource file have names corresponding to the fields in the datamodel, just like \bibtex\ format datasources. So for example, the \bibtex\ format source + +\begin{lstlisting}[style=bibtex]{} +@book{key1, + TITLE = {...}, + ISSUE = {...}, + NOTE = {...} +} +\end{lstlisting} +% +would be, in \biblatexml + +\begin{lstlisting}[language=xml] + <bltx:entry id="key1" entrytype="book"> + <bltx:title>...</bltx:title> + <bltx:issue>...</bltx:issue> + <bltx:note>...</bltx:note> + </bltx:entry> +\end{lstlisting} +% +The following exceptions to this simple mapping are to be noted + +\subsubsection{Key aliases} +Citation key aliases are specified like this: + +\begin{lstlisting}[language=xml] + <bltx:ids> + <bltx:key>alias1</bltx:key> + <bltx:key>alias2</bltx:key> + </bltx:ids> +\end{lstlisting} +% +this corresponds to the \bibtex\ format + +\begin{lstlisting}[style=bibtex]{} +@book{key1, + IDS = {alias1,alias2} +} +\end{lstlisting} + +\subsubsection{Names} + +Name specifications in \biblatexml\ are somewhat more complex in order to generalise the name handling abilities of \biblatex. The user has to be more explicit about the name parts and this allows a much great scope for the handling of different types of names and name parts. A name in \biblatexml\ format looks like this + +\begin{lstlisting}[language=xml] + <bltx:names type="author" morenames="1" useprefix="true"> + <bltx:name gender="sm"> + <bltx:namepart type="given"> + <bltx:namepart initial="J">John</bltx:namepart> + <bltx:namepart initial="A">Arthur</bltx:namepart> + </bltx:namepart> + <bltx:namepart type="family">Smith</bltx:namepart> + <bltx:namepart type="prefix" initial="v">von</bltx:namepart> + </bltx:name> + <bltx:name useprefix="false"> + <bltx:namepart type="given"> + <bltx:namepart>Raymond</bltx:namepart> + </bltx:namepart> + <bltx:namepart type="family">Brown</bltx:namepart> + </bltx:name> + </bltx:names> +\end{lstlisting} +% +A name list field is contained in the \bibfield{names} element with the mandatory \bibfield{type} attribute giving the name of the name list. Things to note: + +\begin{itemize} + \item The optional \bibfield{morenames} attribute performs the same task as the \bibtex\ datasource format <and others> string at the end of a name. + \item Note that optional \opt{useprefix} option can be specified can be specified at the level of a name list or an individual name in the name list. This is impossible with \bibtex\ datasources. + \item Individual names may have an optional \bibfield{gender} attribute which must be one of those defined in the datamodel <gender> constant list. This is currently not used by standard styles but is available in \biblatex name formats if necessary. + \item A name list is composed of one or more \bibfield{name} elements. + \item Each name is composed of name parts of a \bibfield{type} defined by the data model <nameparts> constant. + \item Each name part may have an option \bibfield{initial} attribute which makes explicit the initial of the name part. If this is not present, \biber\ attempts to automatically determine the initial from the name part. + \item Name parts may have name parts so that compound names can be handled. +\end{itemize} +% +Ignoring the \biblatexml-only features, a corresponding \bibtex\ format datasource would look like this: + +\begin{lstlisting}[style=bibtex]{} + AUTHOR = {von Smith, John Arthur and Brown, Raymond and others} +\end{lstlisting} + +\subsubsection{Lists} +Datasource list fields (see \secref{bib:fld:typ}) can be represented in two ways, depending on whether there is more than one element in the list: + +\begin{lstlisting}[language=xml] + <bltx:publisher>London</bltx:publisher> + <bltx:location> + <bltx:item>London</bltx:item> + <bltx:item>Moscow</bltx:item> + </bltx:location> +\end{lstlisting} + +\subsubsection{Ranges} +Datasource range fields (see \secref{bib:fld:typ}) are represented like this: + +\begin{lstlisting}[language=xml] + <bltx:pages> + <bltx:item> + <bltx:start>1</bltx:start> + <bltx:end>10</bltx:end> + </bltx:item> + <bltx:item> + <bltx:start>30</bltx:start> + <bltx:end>34</bltx:end> + </bltx:item> + </bltx:pages> +\end{lstlisting} +% +A range field is a list of ranges, each with its own \bibfield{item}. A range item has a \bibfield{start} element and an optional \bibfield{end} element, since ranges can be open-ended. + +\subsubsection{Dates} +Datasource date fields (see \secref{bib:fld:typ}) can be represented in two ways, depending on whether they constitute a date range: + +\begin{lstlisting}[language=xml] + <bltx:date>1985-04-02</bltx:date> + <bltx:date type="event"> + <bltx:start>1990-05-16</bltx:start> + <bltx:end>1990-05-17</bltx:end> + </bltx:date> +\end{lstlisting} +% +The \bibfield{type} attribute on a date element corresponds to a particular type of date defined in the data model. + +\subsubsection{Related Entries} + +Related entries are specified as follows: +\begin{lstlisting}[language=xml] + <bltx:related> + <bltx:item type="reprint" + ids="rel1,rel2" + string="Somestring" + options="skipbiblist"/> + </bltx:related> +\end{lstlisting} +% +This corresponds to the \bibtex\ format: + +\begin{lstlisting}[style=bibtex]{} +@book{key1, + RELATED = {rel2,rel2}, + RELATEDTYPE = {reprint}, + RELATEDSTRING = {Somestring}, + RELATEDOPTIONS = {skipbiblist} +} +\end{lstlisting} +% +As per \secref{aut:ctm:rel}, the \bibfield{string} and \bibfield{options} attributes are optional. + \section{Option Scope} \label{apx:opt} @@ -11407,7 +11668,7 @@ defernumbers &\+&\+&\_&\_\\ doi &\+&\+&\_&\_\\ % style eprint &\+&\+&\_&\_\\ % style eventdate &\+&\+&\_&\_\\ -firstinits &\+&\+&\_&\_\\ +giveninits &\+&\+&\_&\_\\ hyperref &\+&\+&\_&\_\\ ibidtracker &\+&\+&\_&\_\\ idemtracker &\+&\+&\_&\_\\ @@ -11454,8 +11715,9 @@ skiplab &\_&\_&\+&\+\\ skiplos &\_&\_&\+&\+\\ sortcase &\+&\+&\_&\_\\ sortcites &\+&\+&\_&\_\\ -sortfirstinits &\+&\+&\_&\_\\ +sortgiveninits &\+&\+&\_&\_\\ sorting &\+&\+&\_&\_\\ +sortnamekeyscheme &\_&\_&\_&\+\\ sortlocale &\+&\+&\_&\_\\ sortlos &\+&\+&\_&\_\\ sortupper &\+&\+&\_&\_\\ @@ -11478,7 +11740,22 @@ This revision history is a list of changes relevant to users of this package. Ch \begin{changelog} -\begin{release}{3.2}{} +\begin{release}{3.3}{2016-03-01} +\item Schema documentation for \biblatexml\see{apx:biblatexml}\BiberOnlyMark +\item Sourcemapping documentation and examples for \biblatexml\see{aut:ctm:map}\BiberOnlyMark +\item Changes for name formats to generalise available name parts\see{aut:bib:fmt}\BiberOnlyMark +\item \opt{useprefix} can now be specified per-namelist and per-name in \biblatexml datasources +\item New sourcemapping options for creating new entries dynamically and looping over map steps\see{aut:ctm:map}\BiberOnlyMark +\item Added \opt{noalphaothers} and enhanced name range selection in \cmd{DeclareLabelalphaTemplate}\see{aut:ctm:lab} +\item Added \cmd{DeclareDatamodelConstant}\see{aut:ctm:dm}\BiberOnlyMark +\item Renamed \opt{firstinits} and \opt{sortfirstinits} +\item Added \cmd{DeclareSortingNamekeyScheme}\see{aut:ctm:srt} +\item Removed messy experimental endnote and zoterordf support for \biber +\item Added \cmd{nonameyeardelim}\see{use:fmt:fmt} +\item Added \cmd{extpostnotedelim}\see{use:fmt:fmt} +\end{release} + +\begin{release}{3.2}{2015-12-28} \item Added \opt{pstrwidth} and \opt{pcompound} to \cmd{DeclareLabelalphaTemplate}\see{aut:ctm:lab}\BiberOnlyMark \item Added \cmd{AtEachCitekey}\see{aut:fmt:hok} \end{release} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction.tex b/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction.tex index 21713630997..b08ae561249 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/01-introduction.tex @@ -4,6 +4,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} % % We load the babel package and specify the main language of the % document. If babel is detected, biblatex will automatically adjust diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations.tex b/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations.tex index 809dc32b6de..21975d90f8b 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/02-annotations.tex @@ -6,6 +6,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=reading,abstract=false,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex index 87b12801f19..4e7d82fbbdc 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/03-localization-keys.tex @@ -7,6 +7,7 @@ % localization modules % - ascii \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} %\usepackage[brazilian]{babel} %\usepackage[catalan]{babel} %\usepackage[croatian]{babel} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section.tex b/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section.tex index 70a7f686156..1743e5bf1e2 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/10-references-per-section.tex @@ -26,6 +26,7 @@ % \documentclass[a4paper,oneside]{book} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=numeric,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section.tex b/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section.tex index 75fec27d144..a97f7cc7ad2 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/11-references-by-section.tex @@ -24,6 +24,7 @@ % \documentclass[a4paper,oneside]{book} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment.tex b/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment.tex index a3c537eb797..ccefb9a7c9c 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/12-references-by-segment.tex @@ -5,6 +5,7 @@ % \documentclass[a4paper,oneside]{book} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword.tex b/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword.tex index 7c4c9ea0f0f..56c65e1f1b2 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/13-references-by-keyword.tex @@ -19,6 +19,7 @@ % \documentclass[a4paper,oneside]{book} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category.tex b/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category.tex index 3099f8bd9f9..970250019a4 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/14-references-by-category.tex @@ -7,6 +7,7 @@ % \documentclass[a4paper,oneside]{book} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type.tex b/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type.tex index 483bdb386a1..1af848df153 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/15-references-by-type.tex @@ -4,6 +4,7 @@ % \documentclass[a4paper,oneside]{book} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1.tex b/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1.tex index d88471fc40d..8835878e049 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/16-numeric-prefixed-1.tex @@ -10,6 +10,7 @@ % \documentclass[a4paper,oneside]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} % When using prefixed numerical labels, the labels must be assigned diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2.tex b/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2.tex index 1b0320982cd..f16d2886146 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/17-numeric-prefixed-2.tex @@ -4,6 +4,7 @@ % \documentclass[a4paper,oneside]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=numeric,defernumbers,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid.tex b/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid.tex index eff34127d7f..ccd6d379437 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/18-numeric-hybrid.tex @@ -8,6 +8,7 @@ \documentclass[a4paper,oneside]{article} \usepackage[T1]{fontenc} \usepackage[american]{babel} +\usepackage[utf8]{inputenc} \usepackage{csquotes} % We use the authoryear style as a basis but we want numerical % labels for all online references. Therefore, we request numeric diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex b/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex index dbf40cc0bb6..2b130c7fe74 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/19-alphabetic-prefixed.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper,oneside]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=alphabetic,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single.tex b/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single.tex index d905168b33e..d580400e2b8 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/20-indexing-single.tex @@ -13,6 +13,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} % diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple.tex b/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple.tex index 482e4608cef..81d8eee825a 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/21-indexing-multiple.tex @@ -15,6 +15,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} % % The 'index' package provides advanced indexing facilities with % support for multiple indexes. @@ -51,9 +52,18 @@ % the \index command, which happens to be the first argument of the % 'index:name' bibmacro. % -\DeclareIndexNameFormat{default}{% - \usebibmacro{index:name}{\index[names]}{#1}{#3}{#5}{#7}% -} +\makeatletter +\@ifpackageloaded{biblatex_legacy} + {\DeclareIndexNameFormat{default}{% + \usebibmacro{index:name}{\index[names]}{#1}{#3}{#5}{#7}}} + {\DeclareIndexNameFormat{default}{% + \nameparts{#1}% + \usebibmacro{index:name}{\index[names]} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}} +\makeatother % % Titles are handled in a similar way. The formatting directive we % need to modify is 'indextitle'. It's default definition looks like diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry.tex b/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry.tex index 1fc83fde2f8..52f92ecbf52 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/22-indexing-subentry.tex @@ -12,6 +12,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} % % The 'imakeidx' package provides advanced indexing facilities with support for % multiple indexes. Unlike the 'index' package, 'imakeidx' does not generate @@ -40,10 +41,26 @@ % arguments as the 'index:name' bibmacro. Note that the title fields are accessed % inside the name indexing directive. So we have to test for missing titles. % -\DeclareIndexNameFormat{name:title}{% - \iffieldundef{title} - {\usebibmacro{index:name}{\index[name-title]}{#1}{#3}{#5}{#7}} - {\usebibmacro{index:name:title}{\index[name-title]}{#1}{#3}{#5}{#7}}} +\makeatletter +\@ifpackageloaded{biblatex_legacy} + {\DeclareIndexNameFormat{name:title}{% + \iffieldundef{title} + {\usebibmacro{index:name}{\index[name-title]}{#1}{#3}{#5}{#7}} + {\usebibmacro{index:name:title}{\index[name-title]}{#1}{#3}{#5}{#7}}}} + {\DeclareIndexNameFormat{name:title}{% + \nameparts{#1}% + \iffieldundef{title} + {\usebibmacro{index:name}{\index[name-title]} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{index:name:title}{\index[name-title]} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}}} +\makeatother % % Auxiliary indexing macros in biblatex.def can be used to define additional % indexing directives with subentries. The following directive creates entries diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric.tex b/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric.tex index 335e5bfe4a5..5051790f6e9 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/30-style-numeric.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=numeric,subentry,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp.tex b/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp.tex index 4cb1a8e6805..2faff053a2e 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/31-style-numeric-comp.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=numeric-comp,subentry,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb.tex b/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb.tex index a4d0bacce0c..bee8deb900a 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/32-style-numeric-verb.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=numeric-verb,subentry,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic.tex b/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic.tex index 1561614b507..42b4f8c4c4d 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/40-style-alphabetic.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=alphabetic,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb.tex b/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb.tex index 0644a782fe7..1b3e5045ea1 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/41-style-alphabetic-verb.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=alphabetic-verb,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template.tex b/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template.tex index 43f84e66b2f..e7511032baf 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/42-style-alphabetic-template.tex @@ -4,6 +4,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[backend=biber,style=alphabetic,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear.tex b/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear.tex index 9389f5b702f..c022f3ae743 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/50-style-authoryear.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid.tex b/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid.tex index ed76e03b0c9..c36503c1920 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/51-style-authoryear-ibid.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear-ibid,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp.tex b/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp.tex index 3133f7c8686..88c1dad39fa 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/52-style-authoryear-comp.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear-comp,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp.tex b/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp.tex index a6ffe4a5abc..34826c6cabc 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/53-style-authoryear-icomp.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear-icomp,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle.tex b/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle.tex index b4911028d54..618980e7620 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/60-style-authortitle.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid.tex b/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid.tex index 60c0eb8913c..b5ec52ddd48 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/61-style-authortitle-ibid.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle-ibid,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp.tex b/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp.tex index 8ed5859b0f5..4d05b5001f1 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/62-style-authortitle-comp.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle-comp,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp.tex b/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp.tex index 5cb8b32b2e6..f2dd67a7dbd 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/63-style-authortitle-icomp.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle-icomp,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse.tex b/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse.tex index 0d34bbe6ca9..fa02dae29ca 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/64-style-authortitle-terse.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle-terse,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp.tex b/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp.tex index 6156825c927..9a17acb78ba 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/65-style-authortitle-tcomp.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle-tcomp,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp.tex b/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp.tex index f0b6bc16db7..f0224b32578 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/66-style-authortitle-ticomp.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authortitle-ticomp,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose.tex b/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose.tex index 5a84c979873..0a14791a72a 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/70-style-verbose.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=verbose,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid.tex b/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid.tex index 453b13f919a..ea79f79ff28 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/71-style-verbose-ibid.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=verbose-ibid,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note.tex b/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note.tex index 171bdbab1bd..acc5f49afe8 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/72-style-verbose-note.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=verbose-note,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote.tex b/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote.tex index bba21bf5ed4..5eb9b120290 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/73-style-verbose-inote.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=verbose-inote,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1.tex b/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1.tex index ac79202f416..62fd7b88934 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/74-style-verbose-trad1.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[german,american]{babel} \usepackage{csquotes} \usepackage[style=verbose-trad1,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2.tex b/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2.tex index 1059726d852..04b2d3d671c 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/75-style-verbose-trad2.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=verbose-trad2,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3.tex b/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3.tex index 493c32db920..02d23b08268 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/76-style-verbose-trad3.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=verbose-trad3,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading.tex b/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading.tex index 7a1f3da6636..7a4a04bbbbc 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/80-style-reading.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=reading,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft.tex b/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft.tex index 3c3ea29c189..6d526addc21 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/81-style-draft.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=draft,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug.tex b/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug.tex index 12c922f0e95..6d8edde6ffe 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/82-style-debug.tex @@ -3,6 +3,7 @@ % \documentclass[a4paper]{article} \usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=debug,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/90-related-entries.tex b/Master/texmf-dist/doc/latex/biblatex/examples/90-related-entries.tex index 3d376be8bb7..a037d7554cd 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/90-related-entries.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/90-related-entries.tex @@ -2,7 +2,10 @@ % This file presents related entries from biblatex-examples.bib % \documentclass[a4paper]{article} -\usepackage[T1]{fontenc} +\usepackage{fontspec} +\setmainfont{Cambria} +\setsansfont{Arial} +\setmonofont{Courier New} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=reading,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes.tex b/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes.tex index a00c9eb751d..7591fc234cb 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/91-sorting-schemes.tex @@ -3,7 +3,10 @@ % citation lists and the bibliography. % \documentclass[a4paper]{article} -\usepackage[T1]{fontenc} +\usepackage{fontspec} +\setmainfont{Cambria} +\setsansfont{Arial} +\setmonofont{Courier New} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear,sortcites,sorting=ynt,backend=biber]{biblatex} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists.tex b/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists.tex index 829d87be6e5..ff60eddc275 100644 --- a/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists.tex +++ b/Master/texmf-dist/doc/latex/biblatex/examples/92-bibliographylists.tex @@ -1,9 +1,12 @@ % % This file demonstrates the facilities for printing arbitrary bibliography -% lists containing information about abbreviations etc. +% lists containing information about abbreviations etc. Biber only. % \documentclass[a4paper]{article} -\usepackage[T1]{fontenc} +\usepackage{fontspec} +\setmainfont{Cambria} +\setsansfont{Arial} +\setmonofont{Courier New} \usepackage[american]{babel} \usepackage{csquotes} \usepackage[style=authoryear,backend=biber]{biblatex} @@ -25,7 +28,7 @@ } % This is optional and in fact equivalent to the automatically created -% filter for all field like "shorttitle" which are declared as "label +% filter for all fields like "shorttitle" which are declared as "label % fields" in the data model. However, if you define it, you can overwrite % the default definition which is shown here \DeclareBiblistFilter{shorttitle}{ diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.dbx b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.dbx new file mode 100644 index 00000000000..d94fec6e122 --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.dbx @@ -0,0 +1 @@ +\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,patronymic} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex new file mode 100644 index 00000000000..c59cba1065a --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex/examples/93-nameparts.tex @@ -0,0 +1,66 @@ +% +% This file demonstrates modification of the datamodel to allow new +% nameparts. Biber only. +% +\documentclass[a4paper]{article} +\usepackage{fontspec} +\setmainfont{Cambria} +\setsansfont{Arial} +\setmonofont{Courier New} +\usepackage[russian]{babel} +\usepackage{csquotes} +\usepackage[style=authoryear,datamodel=93-nameparts,backend=biber]{biblatex} +\usepackage{hyperref} +\addbibresource[datatype=biblatexml]{biblatex-examples.bltxml} + +% A format using the new name part +\DeclareNameFormat{author}{% + \nameparts{#1}% + \usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \mkbibnamefamily{\namepartfamily}% + \ifempty{\namepartgiven} + {} + {\revsdnamepunct + \bibnamedelimd + \mkbibnamegiven{\namepartgiven}% + \space + \mkbibnamepatronymic{\namepartpatronymic}\isdot} + \usebibmacro{name:andothers}} + +% We want to sort names using these name parts in this order +\DeclareSortingNamekeyScheme{ + \keypart{ + \namepart{patronymic} + } + \keypart{ + \namepart{family} + } + \keypart{ + \namepart{given} + } +} + +\begin{document} +% Historically, name handling in latex bibliographies has been determined by +% the name parsing rules of bibtex. In a modern context, this name handling +% is rather archaic, restricted to Western names with the four parts +% "family", "given", "prefix", "suffix" (often referred to in bibtex +% documentation as "last", "first", "von" and "Jr" parts). When using biber, +% it is possible to define arbitrary name parts since the allowable name +% parts are defined in the data model (see accompanying file 93-nameparts.dbx). + +% Here we demonstrate the possibility of adding a new "patronymic" name part to the +% datamodel and then using it in formatting, sorting etc. It requires +% the biblatexml datasource format (see accompanying file biblatex-examples.bltxml) + +% Notice that we can use the <patronymic> name part type in the datasource +% which is now allowable due to the enhanced datamodel constant definition. +% We have also defined a new name format and method of sorting names which +% are aware of the new name part. +% +\noindent\textcite{tolstoy}\\ +\textcite{bulgakov} + +\printbibliography +\end{document} diff --git a/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml b/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml new file mode 100644 index 00000000000..78f60c71f05 --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex/examples/biblatex-examples.bltxml @@ -0,0 +1,2851 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-model href="biblatex-examples.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> +<!-- Auto-generated by Biber::Output::biblatexml --> + +<bltx:entries xmlns:bltx="http://biblatex-biber.sourceforge.net/biblatexml"> + <bltx:entry id="tolstoy" entrytype="book"> + <bltx:names type="author"> + <bltx:name > + <bltx:namepart type="given" initial="Л">Лев</bltx:namepart> + <bltx:namepart type="patronymic" initial="Н">Николаевич</bltx:namepart> + <bltx:namepart type="family" initial="Т">Толстой</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:title>Война и мир</bltx:title> + <bltx:date>1877</bltx:date> + </bltx:entry> + <bltx:entry id="bulgakov" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="given" initial="М">Михаи́л</bltx:namepart> + <bltx:namepart type="patronymic" initial="А">Афана́сьевич</bltx:namepart> + <bltx:namepart type="family" initial="Б">Булга́ков</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:title>Мастер и Маргарита</bltx:title> + <bltx:date>1966</bltx:date> + </bltx:entry> + <bltx:entry id="westfahl:space" entrytype="incollection"> + <bltx:crossref>westfahl:frontier</bltx:crossref> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Westfahl</bltx:namepart> + <bltx:namepart type="given" initial="G">Gary</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A cross-referenced article from a \texttt{collection}. This is an \texttt{incollection} entry with a \texttt{crossref} field. Note the \texttt{subtitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:crossref>westfahl:frontier</bltx:crossref> + <bltx:indextitle>True Frontier, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>Confronting and Avoiding the Realities of Space in {American} Science Fiction Films</bltx:subtitle> + <bltx:title>The True Frontier</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>55</bltx:start> + <bltx:end>65</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + </bltx:entry> + <bltx:entry id="set" entrytype="set"> + <bltx:annotation>A \texttt{set} with three members. The \texttt{crossref} field in the \texttt{@set} entry and the \texttt{entryset} field in each set member entry is needed only when using BibTeX as the backend</bltx:annotation> + </bltx:entry> + <bltx:entry id="stdmodel" entrytype="set"> + <bltx:annotation>A \texttt{set} with three members discussing the standard model of particle physics. The \texttt{crossref} field in the \texttt{@set} entry and the \texttt{entryset} field in each set member entry is needed only when using BibTeX as the backend</bltx:annotation> + </bltx:entry> + <bltx:entry id="aksin" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aksın</bltx:namepart> + <bltx:namepart type="given" initial="Ö">Özge</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="T">Türkmen</bltx:namepart> + <bltx:namepart type="given" initial="H">Hayati</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="A">Artok</bltx:namepart> + <bltx:namepart type="given" initial="L">Levent</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Ç">Çetinkaya</bltx:namepart> + <bltx:namepart type="given" initial="B">Bekir</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N">Ni</bltx:namepart> + <bltx:namepart type="given" initial="C">Chaoying</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Büyükgüngör</bltx:namepart> + <bltx:namepart type="given" initial="O">Orhan</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Ö">Özkal</bltx:namepart> + <bltx:namepart type="given" initial="E">Erhan</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:indextitle>Effect of immobilization on catalytic characteristics</bltx:indextitle> + <bltx:journaltitle>J.~Organomet. Chem.</bltx:journaltitle> + <bltx:number>13</bltx:number> + <bltx:title>Effect of immobilization on catalytic characteristics of saturated {Pd-N}-heterocyclic carbenes in {Mizoroki-Heck} reactions</bltx:title> + <bltx:volume>691</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>3027</bltx:start> + <bltx:end>3036</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="angenendt" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Angenendt</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A German article in a French journal. Apart from that, a typical \texttt{article} entry. Note the \texttt{indextitle} field</bltx:annotation> + <bltx:indextitle>In Honore Salvatoris</bltx:indextitle> + <bltx:journaltitle>Revue d'Histoire Ecclésiastique</bltx:journaltitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>In Honore Salvatoris</bltx:shorttitle> + <bltx:title>In Honore Salvatoris~-- Vom Sinn und Unsinn der Patrozinienkunde</bltx:title> + <bltx:volume>97</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>431</bltx:start> + <bltx:end>456</bltx:end> + </bltx:item> + <bltx:item> + <bltx:start>791</bltx:start> + <bltx:end>823</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2002</bltx:date> + </bltx:entry> + <bltx:entry id="baez/article" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Baez</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">John</bltx:namepart> + <bltx:namepart initial="C">C.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Lauda</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="A">Aaron</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} with \texttt{eprint} and \texttt{eprinttype} fields. Note that the arXiv reference is transformed into a clickable link if \texttt{hyperref} support has been enabled. Compare \texttt{baez\slash online}, which is the same item given as an \texttt{online} entry</bltx:annotation> + <bltx:eprint>math/0307200v3</bltx:eprint> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:journaltitle>Theory and Applications of Categories</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Higher-Dimensional Algebra {V}: 2-Groups</bltx:title> + <bltx:version>3</bltx:version> + <bltx:volume>12</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>423</bltx:start> + <bltx:end>491</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2004</bltx:date> + </bltx:entry> + <bltx:entry id="bertram" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Bertram</bltx:namepart> + <bltx:namepart type="given" initial="A">Aaron</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wentworth</bltx:namepart> + <bltx:namepart type="given" initial="R">Richard</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with a \texttt{volume} and a \texttt{number} field</bltx:annotation> + <bltx:journaltitle>J.~Amer. Math. Soc.</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>2</bltx:number> + <bltx:shorttitle>Gromov invariants</bltx:shorttitle> + <bltx:title>Gromov invariants for holomorphic maps on {Riemann} surfaces</bltx:title> + <bltx:volume>9</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>529</bltx:start> + <bltx:end>571</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1996</bltx:date> + </bltx:entry> + <bltx:entry id="doody" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="D">Doody</bltx:namepart> + <bltx:namepart type="given" initial="T">Terrence</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry cited as an excerpt from a \texttt{collection} entry. Note the format of the \texttt{related} and \texttt{relatedstring} fields</bltx:annotation> + <bltx:journaltitle>The Journal of Narrative Technique</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>3</bltx:number> + <bltx:relatedstring>\autocap{e}xcerpt in</bltx:relatedstring> + <bltx:title>Hemingway's Style and {Jake's} Narration</bltx:title> + <bltx:volume>4</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>212</bltx:start> + <bltx:end>225</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1974</bltx:date> + </bltx:entry> + <bltx:entry id="matuz:doody" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="M">Matuz</bltx:namepart> + <bltx:namepart type="given" initial="R">Roger</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Detroit</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Gale</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{collection} entry providing the excerpt information for the \texttt{doody} entry. Note the format of the \texttt{pages} field</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Contemporary Literary Criticism</bltx:title> + <bltx:volume>61</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>204</bltx:start> + <bltx:end>208</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1990</bltx:date> + </bltx:entry> + <bltx:entry id="gillies" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gillies</bltx:namepart> + <bltx:namepart type="given" initial="A">Alexander</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with a \texttt{series} and a \texttt{volume} field. Note that format of the \texttt{series} field in the database file</bltx:annotation> + <bltx:journaltitle>Publications of the English Goethe Society</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:series>newseries</bltx:series> + <bltx:title>Herder and the Preparation of {Goethe's} Idea of World Literature</bltx:title> + <bltx:volume>9</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>46</bltx:start> + <bltx:end>67</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1933</bltx:date> + </bltx:entry> + <bltx:entry id="glashow" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Glashow</bltx:namepart> + <bltx:namepart type="given" initial="S">Sheldon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:journaltitle>Nucl.~Phys.</bltx:journaltitle> + <bltx:title>Partial Symmetries of Weak Interactions</bltx:title> + <bltx:volume>22</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>579</bltx:start> + <bltx:end>588</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1961</bltx:date> + </bltx:entry> + <bltx:entry id="herrmann" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Herrmann</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">Wolfgang</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Ö">Öfele</bltx:namepart> + <bltx:namepart type="given" initial="K">Karl</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Schneider</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Sabine</bltx:namepart> + <bltx:namepart initial="K">K.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Herdtweck</bltx:namepart> + <bltx:namepart type="given" initial="E">Eberhardt</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Hoffmann</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Stephan</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:indextitle>Carbocyclic carbene as an efficient catalyst, A</bltx:indextitle> + <bltx:journaltitle>Angew.~Chem. Int.~Ed.</bltx:journaltitle> + <bltx:number>23</bltx:number> + <bltx:title>A carbocyclic carbene as an efficient catalyst ligand for {C--C} coupling reactions</bltx:title> + <bltx:volume>45</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>3859</bltx:start> + <bltx:end>3862</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="kastenholz" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kastenholz</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">M.</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Hünenberger</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="P">Philippe</bltx:namepart> + <bltx:namepart initial="H">H.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>The computation of ionic solvation free energies from atomistic simulations is a surprisingly difficult problem that has found no satisfactory solution for more than 15 years. The reason is that the charging free energies evaluated from such simulations are affected by very large errors. One of these is related to the choice of a specific convention for summing up the contributions of solvent charges to the electrostatic potential in the ionic cavity, namely, on the basis of point charges within entire solvent molecules (M scheme) or on the basis of individual point charges (P scheme). The use of an inappropriate convention may lead to a charge-independent offset in the calculated potential, which depends on the details of the summation scheme, on the quadrupole-moment trace of the solvent molecule, and on the approximate form used to represent electrostatic interactions in the system. However, whether the M or P scheme (if any) represents the appropriate convention is still a matter of on-going debate. The goal of the present article is to settle this long-standing controversy by carefully analyzing (both analytically and numerically) the properties of the electrostatic potential in molecular liquids (and inside cavities within them).</bltx:abstract> + <bltx:annotation>An \texttt{article} entry with an \texttt{eid} and a \texttt{doi} field. Note that the \textsc{doi} is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:doi>10.1063/1.2172593</bltx:doi> + <bltx:eid>124106</bltx:eid> + <bltx:indextitle>Computation of ionic solvation free energies</bltx:indextitle> + <bltx:journaltitle>J.~Chem. Phys.</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>{I}. {The} electrostatic potential in molecular liquids</bltx:subtitle> + <bltx:title>Computation of methodology\hyphen independent ionic solvation free energies from molecular simulations</bltx:title> + <bltx:volume>124</bltx:volume> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="murray" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hostetler</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Michael</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wingate</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">Julia</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="Z">Zhong</bltx:namepart> + <bltx:namepart type="given" initial="C-J">Chuan-Jian</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Harris</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">Jay</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="V">Vachet</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Richard</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Clark</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Michael</bltx:namepart> + <bltx:namepart initial="R">R.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Londono</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">J.</bltx:namepart> + <bltx:namepart initial="D">David</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="G">Green</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Stephen</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Stokes</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">Jennifer</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wignall</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">George</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="G">Glish</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gary</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="P">Porter</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Marc</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Evans</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="N">Neal</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Murray</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Royce</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with \arabic{author} authors. By default, long author and editor lists are automatically truncated. This is configurable</bltx:annotation> + <bltx:indextitle>Alkanethiolate gold cluster molecules</bltx:indextitle> + <bltx:journaltitle>Langmuir</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>1</bltx:number> + <bltx:shorttitle>Alkanethiolate gold cluster molecules</bltx:shorttitle> + <bltx:subtitle>Core and monolayer properties as a function of core size</bltx:subtitle> + <bltx:title>Alkanethiolate gold cluster molecules with core diameters from 1.5 to 5.2~{nm}</bltx:title> + <bltx:volume>14</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>17</bltx:start> + <bltx:end>30</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="reese" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="R">Reese</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="T">Trevor</bltx:namepart> + <bltx:namepart initial="R">R.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with a \texttt{series} and a \texttt{volume} field. Note the format of the series. If the value of the \texttt{series} field is an integer, this number is printed as an ordinal and the string \enquote*{series} is appended automatically</bltx:annotation> + <bltx:journaltitle>William and Mary Quarterly</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:series>3</bltx:series> + <bltx:title>Georgia in {Anglo-Spanish} Diplomacy, 1736--1739</bltx:title> + <bltx:volume>15</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>168</bltx:start> + <bltx:end>190</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1958</bltx:date> + </bltx:entry> + <bltx:entry id="sarfraz" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Sarfraz</bltx:namepart> + <bltx:namepart type="given" initial="M">M.</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Razzak</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">M.</bltx:namepart> + <bltx:namepart initial="F">F.</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with an \texttt{issn} field</bltx:annotation> + <bltx:issn>0097-8493</bltx:issn> + <bltx:journaltitle>Computers and Graphics</bltx:journaltitle> + <bltx:number>5</bltx:number> + <bltx:title>Technical section: {An} algorithm for automatic capturing of the font outlines</bltx:title> + <bltx:volume>26</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>795</bltx:start> + <bltx:end>804</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2002</bltx:date> + </bltx:entry> + <bltx:entry id="shore" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Shore</bltx:namepart> + <bltx:namepart type="given" initial="B">Bradd</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry with \texttt{series}, \texttt{volume}, and \texttt{number} fields. Note the format of the \texttt{series} which is a localization key</bltx:annotation> + <bltx:journaltitle>American Anthropologist</bltx:journaltitle> + <bltx:number>1</bltx:number> + <bltx:series>newseries</bltx:series> + <bltx:subtitle>Meaning Construction and Cultural Cognition</bltx:subtitle> + <bltx:title>Twice-Born, Once Conceived</bltx:title> + <bltx:volume>93</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>9</bltx:start> + <bltx:end>27</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1991-03</bltx:date> + </bltx:entry> + <bltx:entry id="sigfridsson" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Sigfridsson</bltx:namepart> + <bltx:namepart type="given" initial="E">Emma</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Ryde</bltx:namepart> + <bltx:namepart type="given" initial="U">Ulf</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>Four methods for deriving partial atomic charges from the quantum chemical electrostatic potential (CHELP, CHELPG, Merz-Kollman, and RESP) have been compared and critically evaluated. It is shown that charges strongly depend on how and where the potential points are selected. Two alternative methods are suggested to avoid the arbitrariness in the point-selection schemes and van der Waals exclusion radii: CHELP-BOW, which also estimates the charges from the electrostatic potential, but with potential points that are Boltzmann-weighted after their occurrence in actual simulations using the energy function of the program in which the charges will be used, and CHELMO, which estimates the charges directly from the electrostatic multipole moments. Different criteria for the quality of the charges are discussed.</bltx:abstract> + <bltx:annotation>An \texttt{article} entry with \texttt{volume}, \texttt{number}, and \texttt{doi} fields. Note that the \textsc{doi} is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:doi>10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P</bltx:doi> + <bltx:indextitle>Methods for deriving atomic charges</bltx:indextitle> + <bltx:journaltitle>Journal of Computational Chemistry</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>4</bltx:number> + <bltx:title>Comparison of methods for deriving atomic charges from the electrostatic potential and moments</bltx:title> + <bltx:volume>19</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>377</bltx:start> + <bltx:end>395</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="spiegelberg" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Spiegelberg</bltx:namepart> + <bltx:namepart type="given" initial="H">Herbert</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{article} entry. Note the \texttt{sorttitle} and \texttt{indexsorttitle} fields and the markup of the quotes in the database file</bltx:annotation> + <bltx:indexsorttitle>Intention und Intentionalitat in der Scholastik, bei Brentano und Husserl</bltx:indexsorttitle> + <bltx:journaltitle>Studia Philosophica</bltx:journaltitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Intention und Intentionalität</bltx:shorttitle> + <bltx:sorttitle>Intention und Intentionalitat in der Scholastik, bei Brentano und Husserl</bltx:sorttitle> + <bltx:title>\mkbibquote{Intention} und \mkbibquote{Intentionalität} in der Scholastik, bei Brentano und Husserl</bltx:title> + <bltx:volume>29</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>189</bltx:start> + <bltx:end>216</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1969</bltx:date> + </bltx:entry> + <bltx:entry id="springer" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Springer</bltx:namepart> + <bltx:namepart type="given" initial="O">Otto</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A plain \texttt{article} entry</bltx:annotation> + <bltx:journaltitle>Mediaeval Studies</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Mediaeval Pilgrim Routes</bltx:shorttitle> + <bltx:title>Mediaeval Pilgrim Routes from {Scandinavia} to {Rome}</bltx:title> + <bltx:volume>12</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>92</bltx:start> + <bltx:end>122</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1950</bltx:date> + </bltx:entry> + <bltx:entry id="weinberg" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Weinberg</bltx:namepart> + <bltx:namepart type="given" initial="S">Steven</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:journaltitle>Phys.~Rev.~Lett.</bltx:journaltitle> + <bltx:title>A Model of Leptons</bltx:title> + <bltx:volume>19</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>1264</bltx:start> + <bltx:end>1266</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1967</bltx:date> + </bltx:entry> + <bltx:entry id="yoon" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="Y">Yoon</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Myeong</bltx:namepart> + <bltx:namepart initial="S">S.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Ryu</bltx:namepart> + <bltx:namepart type="given" initial="D">Dowook</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="K">Kim</bltx:namepart> + <bltx:namepart type="given" initial="J">Jeongryul</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="A">Ahn</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="K">Kyo</bltx:namepart> + <bltx:namepart initial="H">Han</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:indextitle>Palladium pincer complexes</bltx:indextitle> + <bltx:journaltitle>Organometallics</bltx:journaltitle> + <bltx:number>10</bltx:number> + <bltx:title>Palladium pincer complexes with reduced bond angle strain: efficient catalysts for the {Heck} reaction</bltx:title> + <bltx:volume>25</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>2409</bltx:start> + <bltx:end>2411</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2006</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:anima" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hicks</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Robert</bltx:namepart> + <bltx:namepart initial="D">Drew</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Cambridge</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Cambridge University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with an \texttt{author} and an \texttt{editor}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:title>De Anima</bltx:title> + <bltx:date>1907</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:physics" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="W">Wicksteed</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="P">P.</bltx:namepart> + <bltx:namepart initial="H">H.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Cornford</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="F">F.</bltx:namepart> + <bltx:namepart initial="M">M.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>G. P. Putnam</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with a \texttt{translator} field</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Physics</bltx:shorttitle> + <bltx:title>Physics</bltx:title> + <bltx:date>1929</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:poetics" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="L">Lucas</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">D.</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Oxford</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Clarendon Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with an \texttt{author} and an \texttt{editor} as well as a \texttt{series} field</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:series>Clarendon {Aristotle}</bltx:series> + <bltx:shorttitle>Poetics</bltx:shorttitle> + <bltx:title>Poetics</bltx:title> + <bltx:date>1968</bltx:date> + </bltx:entry> + <bltx:entry id="aristotle:rhetoric" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Aristotle</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="commentator"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cope</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="E">Edward</bltx:namepart> + <bltx:namepart initial="M">Meredith</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cope</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="E">Edward</bltx:namepart> + <bltx:namepart initial="M">Meredith</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:publisher> + <bltx:item>Cambridge University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A commented edition. Note the concatenation of the \texttt{editor} and \texttt{commentator} fields as well as the \texttt{volumes}, \texttt{sorttitle}, and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Rhetoric of {Aristotle}, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Rhetoric</bltx:shorttitle> + <bltx:sorttitle>Rhetoric of Aristotle</bltx:sorttitle> + <bltx:title>The Rhetoric of {Aristotle} with a commentary by the late {Edward Meredith Cope}</bltx:title> + <bltx:volumes>3</bltx:volumes> + <bltx:date>1877</bltx:date> + </bltx:entry> + <bltx:entry id="augustine" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Augustine</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Robert</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Marcel Dekker</bltx:item> + </bltx:publisher> + <bltx:annotation>A plain \texttt{book} entry</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Heterogeneous catalysis</bltx:shorttitle> + <bltx:title>Heterogeneous catalysis for the synthetic chemist</bltx:title> + <bltx:date>1995</bltx:date> + </bltx:entry> + <bltx:entry id="averroes/bland" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Averroes</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="B">Bland</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="K">Kalman</bltx:namepart> + <bltx:namepart initial="P">P.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="B">Bland</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="K">Kalman</bltx:namepart> + <bltx:namepart initial="P">P.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Jewish Theological Seminary of America</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with a \texttt{series} and a \texttt{number}. Note the concatenation of the \texttt{editor} and \texttt{translator} fields as well as the \texttt{indextitle} field</bltx:annotation> + <bltx:indextitle>Epistle on the Possibility of Conjunction, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>7</bltx:number> + <bltx:series>Moreshet: Studies in {Jewish} History, Literature and Thought</bltx:series> + <bltx:shorttitle>Possibility of Conjunction</bltx:shorttitle> + <bltx:title>The Epistle on the Possibility of Conjunction with the Active Intellect by {Ibn Rushd} with the Commentary of {Moses Narboni}</bltx:title> + <bltx:date>1982</bltx:date> + </bltx:entry> + <bltx:entry id="averroes/hannes" entrytype="book"> + <bltx:names type="annotator"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hannes</bltx:namepart> + <bltx:namepart type="given" initial="L">Ludwig</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Averroes</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hannes</bltx:namepart> + <bltx:namepart type="given" initial="L">Ludwig</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hannes</bltx:namepart> + <bltx:namepart type="given" initial="L">Ludwig</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Halle an der Saale</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>C.~A. Kaemmerer</bltx:item> + </bltx:publisher> + <bltx:annotation>An annotated edition. Note the concatenation of the \texttt{editor}, \texttt{translator}, and \texttt{annotator} fields. Also note the \texttt{shorttitle}, \texttt{indextitle}, \texttt{sorttitle}, and \texttt{indexsorttitle} fields</bltx:annotation> + <bltx:indexsorttitle>Uber die Moglichkeit der Conjunktion</bltx:indexsorttitle> + <bltx:indextitle>Über die Möglichkeit der Conjunktion</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Über die Möglichkeit der Conjunktion</bltx:shorttitle> + <bltx:sorttitle>Uber die Moglichkeit der Conjunktion</bltx:sorttitle> + <bltx:title>Des Averroës Abhandlung: \mkbibquote{Über die Möglichkeit der Conjunktion} oder \mkbibquote{Über den materiellen Intellekt}</bltx:title> + <bltx:date>1892</bltx:date> + </bltx:entry> + <bltx:entry id="averroes/hercz" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Averroes</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hercz</bltx:namepart> + <bltx:namepart type="given" initial="J">J.</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hercz</bltx:namepart> + <bltx:namepart type="given" initial="J">J.</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>S.~Hermann</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the concatenation of the \texttt{editor} and \texttt{translator} fields as well as the \texttt{indextitle} and \texttt{indexsorttitle} fields</bltx:annotation> + <bltx:indexsorttitle>Drei Abhandlungen uber die Conjunction</bltx:indexsorttitle> + <bltx:indextitle>Drei Abhandlungen über die Conjunction</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Drei Abhandlungen</bltx:shorttitle> + <bltx:subtitle>Von Averroes (Vater und Sohn), aus dem Arabischen übersetzt von Samuel Ibn Tibbon</bltx:subtitle> + <bltx:title>Drei Abhandlungen über die Conjunction des separaten Intellects mit dem Menschen</bltx:title> + <bltx:date>1869</bltx:date> + </bltx:entry> + <bltx:entry id="cicero" entrytype="book"> + <bltx:names type="afterword"> + <bltx:name> + <bltx:namepart type="family" initial="T">Thraede</bltx:namepart> + <bltx:namepart type="given" initial="K">Klaus</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cicero</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Marcus</bltx:namepart> + <bltx:namepart initial="T">Tullius</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="B-S">Blank-Sangmeister</bltx:namepart> + <bltx:namepart type="given" initial="U">Ursula</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="B-S">Blank-Sangmeister</bltx:namepart> + <bltx:namepart type="given" initial="U">Ursula</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:language> + <bltx:item>langlatin</bltx:item> + <bltx:item>langgerman</bltx:item> + </bltx:language> + <bltx:location> + <bltx:item>Stuttgart</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Reclam</bltx:item> + </bltx:publisher> + <bltx:annotation>A bilingual edition of Cicero's \emph{De natura deorum}, with a German translation. Note the format of the \texttt{language} field in the database file, the concatenation of the \texttt{editor} and \texttt{translator} fields, and the \texttt{afterword} field</bltx:annotation> + <bltx:indextitle>De natura deorum</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>De natura deorum</bltx:shorttitle> + <bltx:title>De natura deorum. Über das Wesen der Götter</bltx:title> + <bltx:date>1995</bltx:date> + </bltx:entry> + <bltx:entry id="coleridge" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Coleridge</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Samuel</bltx:namepart> + <bltx:namepart initial="T">Taylor</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Coburn</bltx:namepart> + <bltx:namepart type="given" initial="K">Kathleen</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Engell</bltx:namepart> + <bltx:namepart type="given" initial="J">James</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Bate</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">W.</bltx:namepart> + <bltx:namepart initial="J">Jackson</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Routledge {and} Kegan Paul</bltx:item> + </bltx:publisher> + <bltx:annotation>One (partial) volume of a multivolume book. This is a \texttt{book} entry with a \texttt{volume} and a \texttt{part} field which explicitly refers to the second (physical) part of the seventh (logical) volume. Also note the \texttt{series} and \texttt{number} fields</bltx:annotation> + <bltx:indextitle>Biographia literaria</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:maintitle>The collected works of {Samuel Taylor Coleridge}</bltx:maintitle> + <bltx:number>75</bltx:number> + <bltx:part>2</bltx:part> + <bltx:series>Bollingen Series</bltx:series> + <bltx:shorttitle>Biographia literaria</bltx:shorttitle> + <bltx:title>Biographia literaria, or {Biographical} sketches of my literary life and opinions</bltx:title> + <bltx:volume>7</bltx:volume> + <bltx:date>1983</bltx:date> + </bltx:entry> + <bltx:entry id="companion" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Goossens</bltx:namepart> + <bltx:namepart type="given" initial="M">Michel</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Mittelbach</bltx:namepart> + <bltx:namepart type="given" initial="F">Frank</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Samarin</bltx:namepart> + <bltx:namepart type="given" initial="A">Alexander</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>A book with three authors. Note the formatting of the author list. By default, only the first name is reversed in the bibliography</bltx:annotation> + <bltx:edition>1</bltx:edition> + <bltx:indextitle>LaTeX Companion, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:pagetotal>528</bltx:pagetotal> + <bltx:shorttitle>LaTeX Companion</bltx:shorttitle> + <bltx:sorttitle>LaTeX Companion</bltx:sorttitle> + <bltx:title>The {LaTeX} Companion</bltx:title> + <bltx:date>1994</bltx:date> + </bltx:entry> + <bltx:entry id="cotton" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Cotton</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="F">Frank</bltx:namepart> + <bltx:namepart initial="A">Albert</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="W">Wilkinson</bltx:namepart> + <bltx:namepart type="given" initial="G">Geoffrey</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Murillio</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="C">Carlos</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Bochmann</bltx:namepart> + <bltx:namepart type="given" initial="M">Manfred</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Chichester</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Wiley</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with \arabic{author} authors and an \texttt{edition} field. By default, long \texttt{author} and \texttt{editor} lists are automatically truncated. This is configurable</bltx:annotation> + <bltx:edition>6</bltx:edition> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:title>Advanced inorganic chemistry</bltx:title> + <bltx:date>1999</bltx:date> + </bltx:entry> + <bltx:entry id="gerhardt" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gerhardt</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Michael</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{book} entry. Note the format of the \texttt{location} field as well as the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Federal Appointments Process, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Federal Appointments Process</bltx:shorttitle> + <bltx:sorttitle>Federal Appointments Process</bltx:sorttitle> + <bltx:subtitle>A Constitutional and Historical Analysis</bltx:subtitle> + <bltx:title>The Federal Appointments Process</bltx:title> + <bltx:date>2000</bltx:date> + </bltx:entry> + <bltx:entry id="gonzalez" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gonzalez</bltx:namepart> + <bltx:namepart type="given" initial="R">Ray</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Tucson</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>The University of Arizona Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A collection of short stories. This is a \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indextitle} fields in the database file. There's also an \texttt{isbn} field</bltx:annotation> + <bltx:indextitle>Ghost of {John Wayne} and Other Stories, The</bltx:indextitle> + <bltx:isbn>0-816-52066-6</bltx:isbn> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Ghost of {John Wayne}</bltx:shorttitle> + <bltx:sorttitle>Ghost of John Wayne and Other Stories</bltx:sorttitle> + <bltx:title>The Ghost of {John Wayne} and Other Stories</bltx:title> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="hammond" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hammond</bltx:namepart> + <bltx:namepart type="given" initial="C">Christopher</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Oxford</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>International Union of Crystallography</bltx:item> + <bltx:item>Oxford University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indextitle} fields as well as the format of the \texttt{publisher} field</bltx:annotation> + <bltx:indextitle>Basics of crystallography and diffraction, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Crystallography and diffraction</bltx:shorttitle> + <bltx:sorttitle>Basics of crystallography and diffraction</bltx:sorttitle> + <bltx:title>The basics of crystallography and diffraction</bltx:title> + <bltx:date>1997</bltx:date> + </bltx:entry> + <bltx:entry id="iliad" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Homer</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="introduction"> + <bltx:name> + <bltx:namepart type="family" initial="L">Latacz</bltx:namepart> + <bltx:namepart type="given" initial="J">Joachim</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="S">Schadewaldt</bltx:namepart> + <bltx:namepart type="given" initial="W">Wolfgang</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Düsseldorf</bltx:item> + <bltx:item>Zürich</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Artemis \& Winkler</bltx:item> + </bltx:publisher> + <bltx:annotation>A German translation of the \emph{Iliad}. Note the \texttt{translator} and \texttt{introduction} fields and the format of the \texttt{location} field in the database file. Also note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:edition>3</bltx:edition> + <bltx:indextitle>Ilias, Die</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:shorttitle>Ilias</bltx:shorttitle> + <bltx:sorttitle>Ilias</bltx:sorttitle> + <bltx:title>Die Ilias</bltx:title> + <bltx:date>2004</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>A five-volume book cited as a whole. This is a \texttt{book} entry, note the \texttt{volumes} field</bltx:annotation> + <bltx:indexsorttitle>Computers & Typesetting</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:sorttitle>Computers & Typesetting</bltx:sorttitle> + <bltx:sortyear>1984-0</bltx:sortyear> + <bltx:title>Computers \& Typesetting</bltx:title> + <bltx:volumes>5</bltx:volumes> + <bltx:date> + <bltx:start>1984</bltx:start> + <bltx:end>1986</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:a" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The first volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields. We want this volume to be listed after the entry referring to the entire five-volume set. Also note the \texttt{indextitle} and \texttt{indexsorttitle} fields. Indexing packages that don't generate robust index entries require some control sequences to be protected from expansion</bltx:annotation> + <bltx:indexsorttitle>The TeXbook</bltx:indexsorttitle> + <bltx:indextitle>\protect\TeX book, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>\TeX book</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting A</bltx:sorttitle> + <bltx:sortyear>1984-1</bltx:sortyear> + <bltx:title>The {\TeX} book</bltx:title> + <bltx:volume>A</bltx:volume> + <bltx:date>1984</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:b" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The second volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields. Also note the \texttt{indexsorttitle} field</bltx:annotation> + <bltx:indexsorttitle>TeX: The Program</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>\TeX</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting B</bltx:sorttitle> + <bltx:sortyear>1986-1</bltx:sortyear> + <bltx:title>\TeX: The Program</bltx:title> + <bltx:volume>B</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:c" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The third volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields as well as the \texttt{indextitle} field</bltx:annotation> + <bltx:indextitle>METAFONTbook, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>METAFONTbook</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting C</bltx:sorttitle> + <bltx:sortyear>1986-2</bltx:sortyear> + <bltx:title>The {METAFONTbook}</bltx:title> + <bltx:volume>C</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:d" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The fourth volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:shorttitle>METAFONT</bltx:shorttitle> + <bltx:sorttitle>Computers & Typesetting D</bltx:sorttitle> + <bltx:sortyear>1986-3</bltx:sortyear> + <bltx:title>METAFONT: The Program</bltx:title> + <bltx:volume>D</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:e" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>The fifth volume of a five-volume book. Note the \texttt{sorttitle} and \texttt{sortyear} fields</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:maintitle>Computers \& Typesetting</bltx:maintitle> + <bltx:sorttitle>Computers & Typesetting E</bltx:sorttitle> + <bltx:sortyear>1986-4</bltx:sortyear> + <bltx:title>{Computer Modern} Typefaces</bltx:title> + <bltx:volume>E</bltx:volume> + <bltx:date>1986</bltx:date> + </bltx:entry> + <bltx:entry id="knuth:ct:related" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Knuth</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Donald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Reading, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Addison-Wesley</bltx:item> + </bltx:publisher> + <bltx:annotation>A five-volume book cited as a whole and related to its individual volumes. Note the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:indexsorttitle>Computers & Typesetting</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:relatedtype>multivolume</bltx:relatedtype> + <bltx:sorttitle>Computers & Typesetting</bltx:sorttitle> + <bltx:sortyear>1984-0</bltx:sortyear> + <bltx:title>Computers \& Typesetting</bltx:title> + <bltx:volumes>5</bltx:volumes> + <bltx:date> + <bltx:start>1984</bltx:start> + <bltx:end>1986</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="kullback" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kullback</bltx:namepart> + <bltx:namepart type="given" initial="S">Solomon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>John Wiley \& Sons</bltx:item> + </bltx:publisher> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Information Theory and Statistics</bltx:title> + <bltx:date>1959</bltx:date> + </bltx:entry> + <bltx:entry id="kullback:reprint" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kullback</bltx:namepart> + <bltx:namepart type="given" initial="S">Solomon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:origpublisher> + <bltx:item>John Wiley \& Sons</bltx:item> + </bltx:origpublisher> + <bltx:publisher> + <bltx:item>Dover Publications</bltx:item> + </bltx:publisher> + <bltx:annotation>A reprint of the \texttt{kullback} entry. Note the format of \texttt{origyear} and \texttt{origpublisher}. These fields are not used by the standard bibliography styles</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Information Theory and Statistics</bltx:title> + <bltx:date>1997</bltx:date> + <bltx:date type="orig">1959</bltx:date> + </bltx:entry> + <bltx:entry id="kullback:related" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kullback</bltx:namepart> + <bltx:namepart type="given" initial="S">Solomon</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Dover Publications</bltx:item> + </bltx:publisher> + <bltx:annotation>A reprint of the \texttt{kullback} entry. Note the format of the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:relatedtype>origpubin</bltx:relatedtype> + <bltx:title>Information Theory and Statistics</bltx:title> + <bltx:date>1997</bltx:date> + </bltx:entry> + <bltx:entry id="malinowski" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Malinowski</bltx:namepart> + <bltx:namepart type="given" initial="B">Bronis{ł}aw</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Routledge {and} Kegan Paul</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{book} entry. Note the format of the \texttt{publisher} and \texttt{edition} fields as well as the \texttt{subtitle} field</bltx:annotation> + <bltx:edition>8</bltx:edition> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>Argonauts</bltx:shorttitle> + <bltx:subtitle>An account of native enterprise and adventure in the Archipelagoes of {Melanesian New Guinea}</bltx:subtitle> + <bltx:title>Argonauts of the {Western Pacific}</bltx:title> + <bltx:date>1972</bltx:date> + </bltx:entry> + <bltx:entry id="maron" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Maron</bltx:namepart> + <bltx:namepart type="given" initial="M">Monika</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="G">Goldstein</bltx:namepart> + <bltx:namepart type="given" initial="B">Brigitte</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Lincoln</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>University of Nebraska Press</bltx:item> + </bltx:publisher> + <bltx:annotation>An English translation of a German novel with a French title. In other words: a \texttt{book} entry with a \texttt{translator} field. Note the \texttt{origlanguage} field which is concatenated with the \texttt{translator}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:origlanguage>german</bltx:origlanguage> + <bltx:shorttitle>Animal Triste</bltx:shorttitle> + <bltx:title>Animal Triste</bltx:title> + <bltx:date>2000</bltx:date> + </bltx:entry> + <bltx:entry id="massa" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Massa</bltx:namepart> + <bltx:namepart type="given" initial="W">Werner</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Spinger</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry with an \texttt{edition} field</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:title>Crystal structure determination</bltx:title> + <bltx:date>2004</bltx:date> + </bltx:entry> + <bltx:entry id="moore" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Moore</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gordon</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:journaltitle>Electronics</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>8</bltx:number> + <bltx:title>Cramming more components onto integrated circuits</bltx:title> + <bltx:volume>38</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>114</bltx:start> + <bltx:end>117</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1965</bltx:date> + </bltx:entry> + <bltx:entry id="moore:related" entrytype="article"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Moore</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gordon</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>A reprint of Moore's law. Note the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:journaltitle>Proceedings of the {IEEE}</bltx:journaltitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>1</bltx:number> + <bltx:relatedtype>reprintfrom</bltx:relatedtype> + <bltx:title>Cramming more components onto integrated circuits</bltx:title> + <bltx:volume>86</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>82</bltx:start> + <bltx:end>85</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="nietzsche:ksa" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Colli</bltx:namepart> + <bltx:namepart type="given" initial="G">Giorgio</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Montinari</bltx:namepart> + <bltx:namepart type="given" initial="M">Mazzino</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>München</bltx:item> + <bltx:item>Berlin</bltx:item> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Deutscher Taschenbuch-Verlag</bltx:item> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>The critical edition of Nietzsche's works. This is a \texttt{book} entry referring to a 15-volume work as a whole. Note the \texttt{volumes} field and the format of the \texttt{publisher} and \texttt{location} fields in the database file. Also note the \texttt{sorttitle} and \texttt{sortyear} fields which are used to fine-tune the sorting order of the bibliography. We want this item listed first in the bibliography</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:indexsorttitle>Samtliche Werke</bltx:indexsorttitle> + <bltx:langid>german</bltx:langid> + <bltx:sorttitle>Werke-00-000</bltx:sorttitle> + <bltx:sortyear>1988-0</bltx:sortyear> + <bltx:subtitle>Kritische Studienausgabe</bltx:subtitle> + <bltx:title>Sämtliche Werke</bltx:title> + <bltx:volumes>15</bltx:volumes> + <bltx:date>1988</bltx:date> + </bltx:entry> + <bltx:entry id="nietzsche:ksa1" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Colli</bltx:namepart> + <bltx:namepart type="given" initial="G">Giorgio</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Montinari</bltx:namepart> + <bltx:namepart type="given" initial="M">Mazzino</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>München</bltx:item> + <bltx:item>Berlin</bltx:item> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Deutscher Taschenbuch-Verlag</bltx:item> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>A single volume from the critical edition of Nietzsche's works. This \texttt{book} entry explicitly refers to the first volume only. Note the \texttt{title} and \texttt{maintitle} fields. Also note the \texttt{sorttitle} and \texttt{sortyear} fields. We want this entry to be listed after the entry referring to the entire edition</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:indexsorttitle>Samtliche Werke I</bltx:indexsorttitle> + <bltx:indextitle>Sämtliche Werke I</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:mainsubtitle>Kritische Studienausgabe</bltx:mainsubtitle> + <bltx:maintitle>Sämtliche Werke</bltx:maintitle> + <bltx:shorttitle>Sämtliche Werke I</bltx:shorttitle> + <bltx:sorttitle>Werke-01-000</bltx:sorttitle> + <bltx:sortyear>1988-1</bltx:sortyear> + <bltx:title>Die Geburt der Tragödie. Unzeitgemä{ß}e Betrachtungen I--IV. Nachgelassene Schriften 1870--1973</bltx:title> + <bltx:volume>1</bltx:volume> + <bltx:date>1988</bltx:date> + </bltx:entry> + <bltx:entry id="nussbaum" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nussbaum</bltx:namepart> + <bltx:namepart type="given" initial="M">Martha</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Princeton</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Princeton University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indexsorttitle} fields and the markup of the quotes in the database file</bltx:annotation> + <bltx:indexsorttitle>Aristotle's De Motu Animalium</bltx:indexsorttitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:sorttitle>Aristotle's De Motu Animalium</bltx:sorttitle> + <bltx:title>Aristotle's \mkbibquote{De Motu Animalium}</bltx:title> + <bltx:date>1978</bltx:date> + </bltx:entry> + <bltx:entry id="piccato" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="P">Piccato</bltx:namepart> + <bltx:namepart type="given" initial="P">Pablo</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{book} entry. Note the format of the \texttt{location} field in the database file</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>City of Suspects</bltx:shorttitle> + <bltx:subtitle>Crime in {Mexico City}, 1900--1931</bltx:subtitle> + <bltx:title>City of Suspects</bltx:title> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="vangennep" entrytype="book"> + <bltx:options>useprefix</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gennep</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + <bltx:namepart type="prefix" initial="v">van</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Paris</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Nourry</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the format of the printed name and compare the \texttt{useprefix} option in the \texttt{options} field as well as \texttt{brandt} and \texttt{geer}</bltx:annotation> + <bltx:indextitle>Rites de passage, Les</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:shorttitle>Rites de passage</bltx:shorttitle> + <bltx:sorttitle>Rites de passage</bltx:sorttitle> + <bltx:title>Les rites de passage</bltx:title> + <bltx:date>1909</bltx:date> + </bltx:entry> + <bltx:entry id="vangennep:trans" entrytype="book"> + <bltx:options>useprefix</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gennep</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + <bltx:namepart type="prefix" initial="v">van</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="V">Vizedom</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Monika</bltx:namepart> + <bltx:namepart initial="B">B.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Caffee</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gabrielle</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:language> + <bltx:item>english</bltx:item> + </bltx:language> + <bltx:publisher> + <bltx:item>University of Chicago Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A translation of the \texttt{vangennep} entry. Note the \texttt{translator} and \texttt{origlanguage} fields. Compare with the \texttt{vangennep:related} entry.</bltx:annotation> + <bltx:indextitle>Rites of Passage, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:origlanguage>french</bltx:origlanguage> + <bltx:shorttitle>Rites of Passage</bltx:shorttitle> + <bltx:sorttitle>Rites of Passage</bltx:sorttitle> + <bltx:title>The Rites of Passage</bltx:title> + <bltx:date>1960</bltx:date> + </bltx:entry> + <bltx:entry id="vangennep:related" entrytype="book"> + <bltx:options>useprefix</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gennep</bltx:namepart> + <bltx:namepart type="given" initial="A">Arnold</bltx:namepart> + <bltx:namepart type="prefix" initial="v">van</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Paris</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Nourry</bltx:item> + </bltx:publisher> + <bltx:annotation>A variant of the \texttt{vangennep} entry related to its translation. Note the format of the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:indextitle>Rites de passage, Les</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:relatedtype>bytranslator</bltx:relatedtype> + <bltx:shorttitle>Rites de passage</bltx:shorttitle> + <bltx:sorttitle>Rites de passage</bltx:sorttitle> + <bltx:title>Les rites de passage</bltx:title> + <bltx:date>1909</bltx:date> + </bltx:entry> + <bltx:entry id="vizedom:related" entrytype="book"> + <bltx:options>usetranslator</bltx:options> + <bltx:names type="translator"> + <bltx:name> + <bltx:namepart type="family" initial="V">Vizedom</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="M">Monika</bltx:namepart> + <bltx:namepart initial="B">B.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Caffee</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">Gabrielle</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:language> + <bltx:item>english</bltx:item> + </bltx:language> + <bltx:publisher> + <bltx:item>University of Chicago Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A translated work from \texttt{vangennep}. Note the format of the \texttt{related} and \texttt{relatedtype} fields</bltx:annotation> + <bltx:indextitle>Rites of Passage, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:relatedtype>translationof</bltx:relatedtype> + <bltx:shorttitle>Rites of Passage</bltx:shorttitle> + <bltx:sorttitle>Rites of Passage</bltx:sorttitle> + <bltx:title>The Rites of Passage</bltx:title> + <bltx:date>1960</bltx:date> + </bltx:entry> + <bltx:entry id="vazques-de-parga" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="V">Vázques{</bltx:namepart> + <bltx:namepart>de</bltx:namepart> + <bltx:namepart>}Parga</bltx:namepart> + </bltx:namepart> + <bltx:namepart type="given" initial="L">Luis</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Lacarra</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">José</bltx:namepart> + <bltx:namepart initial="M">María</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="U">Uría</bltx:namepart> + <bltx:namepart initial="R">Ríu</bltx:namepart> + </bltx:namepart> + <bltx:namepart type="given" initial="J">Juan</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Pamplona</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Iberdrola</bltx:item> + </bltx:publisher> + <bltx:annotation>A multivolume book cited as a whole. This is a \texttt{book} entry with \texttt{volumes}, \texttt{note}, \texttt{sorttitle}, and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Peregrinaciones a Santiago de Compostela, Las</bltx:indextitle> + <bltx:langid>spanish</bltx:langid> + <bltx:note>Ed. facs. de la realizada en 1948--49</bltx:note> + <bltx:shorttitle>Peregrinaciones</bltx:shorttitle> + <bltx:sorttitle>Peregrinaciones a Santiago de Compostela</bltx:sorttitle> + <bltx:title>Las Peregrinaciones a Santiago de Compostela</bltx:title> + <bltx:volumes>3</bltx:volumes> + <bltx:date>1993</bltx:date> + </bltx:entry> + <bltx:entry id="wilde" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Wilde</bltx:namepart> + <bltx:namepart type="given" initial="O">Oscar</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:publisher> + <bltx:item>Leonard Smithers {and} Company</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} with \texttt{eprint} and \texttt{eprinttype} fields.</bltx:annotation> + <bltx:eprint>4HIWAAAAYAAJ</bltx:eprint> + <bltx:eprinttype>googlebooks</bltx:eprinttype> + <bltx:series>English and {American} drama of the Nineteenth Century</bltx:series> + <bltx:title>The Importance of Being Earnest: A Trivial Comedy for Serious People</bltx:title> + <bltx:date>1899</bltx:date> + </bltx:entry> + <bltx:entry id="worman" entrytype="book"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Worman</bltx:namepart> + <bltx:namepart type="given" initial="N">Nancy</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Austin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>University of Texas Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A \texttt{book} entry. Note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Cast of Character, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Cast of Character</bltx:shorttitle> + <bltx:sorttitle>Cast of Character</bltx:sorttitle> + <bltx:subtitle>Style in {Greek} Literature</bltx:subtitle> + <bltx:title>The Cast of Character</bltx:title> + <bltx:date>2002</bltx:date> + </bltx:entry> + <bltx:entry id="britannica" entrytype="collection"> + <bltx:options>useeditor=false</bltx:options> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="P">Preece</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">Warren</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Chicago, Ill.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Encyclop{æ}dia Britannica</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{collection} entry for an encyclopedia. Note the \texttt{useeditor} option in the \texttt{options} field as well as the \texttt{sorttitle} field. We want this entry to be cited and alphabetized by title even though there is an editor. In addition to that, we want the title to be alphabetized under \enquote*{E} rather than \enquote*{T}. Also note the \texttt{label} field which is provided for author-year citation styles</bltx:annotation> + <bltx:edition>15</bltx:edition> + <bltx:indextitle>{Encyclop{æ}dia Britannica}, The {New}</bltx:indextitle> + <bltx:label>EB</bltx:label> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:shorttitle>{Encyclop{æ}dia Britannica}</bltx:shorttitle> + <bltx:sorttitle>Encyclop{æ}dia Britannica</bltx:sorttitle> + <bltx:title>The {New Encyclop{æ}dia Britannica}</bltx:title> + <bltx:volumes>32</bltx:volumes> + <bltx:date>2003</bltx:date> + </bltx:entry> + <bltx:entry id="gaonkar" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gaonkar</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dilip</bltx:namepart> + <bltx:namepart initial="P">Parameshwar</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{collection} entry. Note the format of the \texttt{location} field in the database file as well as the \texttt{isbn} field</bltx:annotation> + <bltx:isbn>0-822-32714-7</bltx:isbn> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Alternative Modernities</bltx:title> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="gaonkar:in" entrytype="incollection"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gaonkar</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dilip</bltx:namepart> + <bltx:namepart initial="P">Parameshwar</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="G">Gaonkar</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dilip</bltx:namepart> + <bltx:namepart initial="P">Parameshwar</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Durham</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Duke University Press</bltx:item> + </bltx:publisher> + <bltx:booktitle>Alternative Modernities</bltx:booktitle> + <bltx:isbn>0-822-32714-7</bltx:isbn> + <bltx:title>On Alternative Modernities</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>1</bltx:start> + <bltx:end>23</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>2001</bltx:date> + </bltx:entry> + <bltx:entry id="jaffe" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="J">Jaffé</bltx:namepart> + <bltx:namepart type="given" initial="P">Philipp</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editora"> + <bltx:name> + <bltx:namepart type="family" initial="L">Loewenfeld</bltx:namepart> + <bltx:namepart type="given" initial="S">Samuel</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="K">Kaltenbrunner</bltx:namepart> + <bltx:namepart type="given" initial="F">Ferdinand</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Ewald</bltx:namepart> + <bltx:namepart type="given" initial="P">Paul</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Leipzig</bltx:item> + </bltx:location> + <bltx:annotation>A \texttt{collection} entry with \texttt{edition} and \texttt{volumes} fields. Note the \texttt{editora} and \texttt{editoratype} fields</bltx:annotation> + <bltx:edition>2</bltx:edition> + <bltx:editoratype>redactor</bltx:editoratype> + <bltx:indextitle>Regesta Pontificum Romanorum</bltx:indextitle> + <bltx:langid>latin</bltx:langid> + <bltx:shorttitle>Regesta Pontificum Romanorum</bltx:shorttitle> + <bltx:title>Regesta Pontificum Romanorum ab condita ecclesia ad annum post Christum natum \textsc{mcxcviii}</bltx:title> + <bltx:volumes>2</bltx:volumes> + <bltx:date> + <bltx:start>1885</bltx:start> + <bltx:end>1888</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="westfahl:frontier" entrytype="collection"> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="W">Westfahl</bltx:namepart> + <bltx:namepart type="given" initial="G">Gary</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Westport, Conn.</bltx:item> + <bltx:item>London</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Greenwood</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{collection} entry. Note the format of the \texttt{location} field as well as the \texttt{subtitle} and \texttt{booksubtitle} fields</bltx:annotation> + <bltx:booksubtitle>The Frontier Theme in Science Fiction</bltx:booksubtitle> + <bltx:booktitle>Space and Beyond</bltx:booktitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>The Frontier Theme in Science Fiction</bltx:subtitle> + <bltx:title>Space and Beyond</bltx:title> + <bltx:date>2000</bltx:date> + </bltx:entry> + <bltx:entry id="kant:kpv" entrytype="inbook"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>An edition of Kant's \emph{Collected Works}, volume five. This is an \texttt{inbook} entry which explicitly refers to the \emph{Critique of Practical Reason} only, not to the entire fifth volume. Note the \texttt{author} and \texttt{bookauthor} fields in the database file. By default, the \texttt{bookauthor} is omitted if the values of the \texttt{author} and \texttt{bookauthor} fields are identical</bltx:annotation> + <bltx:booktitle>Kritik der praktischen Vernunft. Kritik der Urtheilskraft</bltx:booktitle> + <bltx:langid>german</bltx:langid> + <bltx:maintitle>Kants Werke. Akademie Textausgabe</bltx:maintitle> + <bltx:shorthand>KpV</bltx:shorthand> + <bltx:shorttitle>Kritik der praktischen Vernunft</bltx:shorttitle> + <bltx:title>Kritik der praktischen Vernunft</bltx:title> + <bltx:volume>5</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>1</bltx:start> + <bltx:end>163</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1968</bltx:date> + </bltx:entry> + <bltx:entry id="kant:ku" entrytype="inbook"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kant</bltx:namepart> + <bltx:namepart type="given" initial="I">Immanuel</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Berlin</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>An edition of Kant's \emph{Collected Works}, volume five. This is an \texttt{inbook} entry which explicitly refers to the \emph{Critique of Judgment} only, not to the entire fifth volume</bltx:annotation> + <bltx:booktitle>Kritik der praktischen Vernunft. Kritik der Urtheilskraft</bltx:booktitle> + <bltx:langid>german</bltx:langid> + <bltx:maintitle>Kants Werke. Akademie Textausgabe</bltx:maintitle> + <bltx:shorthand>KU</bltx:shorthand> + <bltx:title>Kritik der Urtheilskraft</bltx:title> + <bltx:volume>5</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>165</bltx:start> + <bltx:end>485</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1968</bltx:date> + </bltx:entry> + <bltx:entry id="nietzsche:historie" entrytype="inbook"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="bookauthor"> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietzsche</bltx:namepart> + <bltx:namepart type="given" initial="F">Friedrich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="C">Colli</bltx:namepart> + <bltx:namepart type="given" initial="G">Giorgio</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Montinari</bltx:namepart> + <bltx:namepart type="given" initial="M">Mazzino</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>München</bltx:item> + <bltx:item>Berlin</bltx:item> + <bltx:item>New York</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Deutscher Taschenbuch-Verlag</bltx:item> + <bltx:item>Walter de Gruyter</bltx:item> + </bltx:publisher> + <bltx:annotation>A single essay from the critical edition of Nietzsche's works. This \texttt{inbook} entry explicitly refers to an essay found in the first volume. Note the \texttt{title}, \texttt{booktitle}, and \texttt{maintitle} fields. Also note the \texttt{sorttitle} and \texttt{sortyear} fields. We want this entry to be listed after the entry referring to the entire first volume</bltx:annotation> + <bltx:booktitle>Die Geburt der Tragödie. Unzeitgemä{ß}e Betrachtungen I--IV. Nachgelassene Schriften 1870--1973</bltx:booktitle> + <bltx:indexsorttitle>Vom Nutzen und Nachtheil der Historie fur das Leben</bltx:indexsorttitle> + <bltx:indextitle>Vom Nutzen und Nachtheil der Historie für das Leben</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:mainsubtitle>Kritische Studienausgabe</bltx:mainsubtitle> + <bltx:maintitle>Sämtliche Werke</bltx:maintitle> + <bltx:shorttitle>Vom Nutzen und Nachtheil der Historie</bltx:shorttitle> + <bltx:sorttitle>Werke-01-243</bltx:sorttitle> + <bltx:sortyear>1988-2</bltx:sortyear> + <bltx:subtitle>Vom Nutzen und Nachtheil der Historie für das Leben</bltx:subtitle> + <bltx:title>Unzeitgemässe Betrachtungen. Zweites Stück</bltx:title> + <bltx:volume>1</bltx:volume> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>243</bltx:start> + <bltx:end>334</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1988</bltx:date> + </bltx:entry> + <bltx:entry id="brandt" entrytype="incollection"> + <bltx:options>useprefix=false</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Brandt</bltx:namepart> + <bltx:namepart type="given" initial="A">Ahasver</bltx:namepart> + <bltx:namepart type="prefix" initial="v">von</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="H">Hoffmann</bltx:namepart> + <bltx:namepart type="given" initial="E">Erich</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="S">Seibt</bltx:namepart> + <bltx:namepart type="given" initial="F">Ferdinand</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Stuttgart</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Klett-Cotta</bltx:item> + </bltx:publisher> + <bltx:annotation>An \texttt{incollection} entry with a \texttt{series} and a \texttt{number}. Note the format of the printed name and compare the \texttt{useprefix} option in the \texttt{options} field as well as \texttt{vangennep}. Also note the \texttt{indextitle, and \texttt{indexsorttitle} fields}</bltx:annotation> + <bltx:booktitle>Europa im Hoch- und Spätmittelalter</bltx:booktitle> + <bltx:indexsorttitle>Nordischen Lander von der Mitte des 11. Jahrhunderts bis 1448</bltx:indexsorttitle> + <bltx:indextitle>Nordischen Länder von der Mitte des 11.~Jahrhunderts bis 1448, Die</bltx:indextitle> + <bltx:langid>german</bltx:langid> + <bltx:number>2</bltx:number> + <bltx:series>Handbuch der europäischen Geschichte</bltx:series> + <bltx:shorttitle>Die nordischen Länder</bltx:shorttitle> + <bltx:title>Die nordischen Länder von der Mitte des 11.~Jahrhunderts bis 1448</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>884</bltx:start> + <bltx:end>917</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1987</bltx:date> + </bltx:entry> + <bltx:entry id="hyman" entrytype="incollection"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="H">Hyman</bltx:namepart> + <bltx:namepart type="given" initial="A">Arthur</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="O">O'Meara</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="D">Dominic</bltx:namepart> + <bltx:namepart initial="J">J.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Washington, D.C.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>The Catholic University of America Press</bltx:item> + </bltx:publisher> + <bltx:annotation>An \texttt{incollection} entry with a \texttt{series} and \texttt{number} field</bltx:annotation> + <bltx:booktitle>Studies in {Aristotle}</bltx:booktitle> + <bltx:indextitle>Aristotle's Theory of the Intellect</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>9</bltx:number> + <bltx:series>Studies in Philosophy and the History of Philosophy</bltx:series> + <bltx:shorttitle>Aristotle's Theory of the Intellect</bltx:shorttitle> + <bltx:title>Aristotle's Theory of the Intellect and its Interpretation by {Averroes}</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>161</bltx:start> + <bltx:end>191</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1981</bltx:date> + </bltx:entry> + <bltx:entry id="pines" entrytype="incollection"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="P">Pines</bltx:namepart> + <bltx:namepart type="given" initial="S">Shlomo</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="T">Twersky</bltx:namepart> + <bltx:namepart type="given" initial="I">Isadore</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Cambridge, Mass.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Harvard University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>A typical \texttt{incollection} entry. Note the \texttt{indextitle} field</bltx:annotation> + <bltx:booktitle>Studies in Medieval {Jewish} History and Literature</bltx:booktitle> + <bltx:indextitle>Limitations of Human Knowledge According to {Al-Farabi}, {ibn Bajja}, and {Maimonides}, The</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Limitations of Human Knowledge</bltx:shorttitle> + <bltx:title>The Limitations of Human Knowledge According to {Al-Farabi}, {ibn Bajja}, and {Maimonides}</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>82</bltx:start> + <bltx:end>109</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1979</bltx:date> + </bltx:entry> + <bltx:entry id="moraux" entrytype="inproceedings"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Moraux</bltx:namepart> + <bltx:namepart type="given" initial="P">Paul</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="L">Lloyd</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">G.</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + <bltx:namepart initial="R">R.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="O">Owen</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="G">G.</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Cambridge</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Cambridge University Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a typical \texttt{inproceedings} entry. Note the \texttt{booksubtitle}, \texttt{shorttitle}, \texttt{indextitle}, and \texttt{indexsorttitle} fields. Also note the \texttt{eventdate} field.</bltx:annotation> + <bltx:booktitle>Aristotle on Mind and the Senses</bltx:booktitle> + <bltx:booktitleaddon>Proceedings of the Seventh Symposium Aristotelicum</bltx:booktitleaddon> + <bltx:indexsorttitle>De Anima dans la tradition grecque</bltx:indexsorttitle> + <bltx:indextitle>\emph{De Anima} dans la tradition grècque, Le</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:shorttitle>\emph{De Anima} dans la tradition grècque</bltx:shorttitle> + <bltx:subtitle>Quelques aspects de l'interpretation du traité, de Theophraste à Themistius</bltx:subtitle> + <bltx:title>Le \emph{De Anima} dans la tradition grècque</bltx:title> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>281</bltx:start> + <bltx:end>324</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1979</bltx:date> + <bltx:date type="event">1975</bltx:date> + </bltx:entry> + <bltx:entry id="salam" entrytype="inproceedings"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Salam</bltx:namepart> + <bltx:namepart type="given" initial="A">Abdus</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="editor"> + <bltx:name> + <bltx:namepart type="family" initial="S">Svartholm</bltx:namepart> + <bltx:namepart type="given" initial="N">Nils</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>Stockholm</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>Almquist \& Wiksell</bltx:item> + </bltx:publisher> + <bltx:booksubtitle>Relativistic groups and analyticity</bltx:booksubtitle> + <bltx:booktitle>Elementary particle theory</bltx:booktitle> + <bltx:booktitleaddon>Proceedings of the {Eighth Nobel Symposium}</bltx:booktitleaddon> + <bltx:title>Weak and Electromagnetic Interactions</bltx:title> + <bltx:venue>Aspenäsgarden, Lerum</bltx:venue> + <bltx:pages> + <bltx:list> + <bltx:item> + <bltx:start>367</bltx:start> + <bltx:end>377</bltx:end> + </bltx:item> + </bltx:list> + </bltx:pages> + <bltx:date>1968</bltx:date> + <bltx:date type="event"> + <bltx:start>1968-05-19</bltx:start> + <bltx:end>1968-05-25</bltx:end> + </bltx:date> + </bltx:entry> + <bltx:entry id="cms" entrytype="manual"> + <bltx:location> + <bltx:item>Chicago, Ill.</bltx:item> + </bltx:location> + <bltx:publisher> + <bltx:item>University of Chicago Press</bltx:item> + </bltx:publisher> + <bltx:annotation>This is a \texttt{manual} entry without an \texttt{author} or \texttt{editor}. Note the \texttt{label} field in the database file which is provided for author-year citation styles. Also note the \texttt{sorttitle} and \texttt{indextitle} fields. By default, all entries without an \texttt{author} or \texttt{editor} are alphabetized by \texttt{title} but we want this entry to be alphabetized under \enquote*{C} rather than \enquote*{T}. There's also an \texttt{isbn} field</bltx:annotation> + <bltx:edition>15</bltx:edition> + <bltx:indextitle>Chicago Manual of Style, The</bltx:indextitle> + <bltx:isbn>0-226-10403-6</bltx:isbn> + <bltx:label>CMS</bltx:label> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:shorttitle>Chicago Manual of Style</bltx:shorttitle> + <bltx:sorttitle>Chicago Manual of Style</bltx:sorttitle> + <bltx:subtitle>The Essential Guide for Writers, Editors, and Publishers</bltx:subtitle> + <bltx:title>The {Chicago} Manual of Style</bltx:title> + <bltx:date>2003</bltx:date> + </bltx:entry> + <bltx:entry id="baez/online" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="B">Baez</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">John</bltx:namepart> + <bltx:namepart initial="C">C.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="L">Lauda</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="A">Aaron</bltx:namepart> + <bltx:namepart initial="D">D.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{online} reference from arXiv. Note the \texttt{eprint} and \texttt{eprinttype} fields. Compare \texttt{baez\slash article} which is the same item given as an \texttt{article} entry with eprint information</bltx:annotation> + <bltx:eprint>math/0307200v3</bltx:eprint> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Higher-Dimensional Algebra {V}: 2-Groups</bltx:title> + <bltx:version>3</bltx:version> + <bltx:date>2004-10-27</bltx:date> + </bltx:entry> + <bltx:entry id="ctan" entrytype="online"> + <bltx:annotation>This is an \texttt{online} entry. The \textsc{url}, which is given in the \texttt{url} field, is transformed into a clickable link if \texttt{hyperref} support has been enabled. Note the format of the \texttt{urldate} field (\texttt{yyyy-mm-dd}) in the database file. Also note the \texttt{label} field which may be used as a fallback by citation styles which need an \texttt{author} and\slash or a \texttt{year}</bltx:annotation> + <bltx:label>CTAN</bltx:label> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:subtitle>The {Comprehensive TeX Archive Network}</bltx:subtitle> + <bltx:title>CTAN</bltx:title> + <bltx:url>http://www.ctan.org</bltx:url> + <bltx:date>2006</bltx:date> + <bltx:date type="url">2006-10-01</bltx:date> + </bltx:entry> + <bltx:entry id="itzhaki" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="I">Itzhaki</bltx:namepart> + <bltx:namepart type="given" initial="N">Nissan</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>We discuss the limitations of 't Hooft's proposal for the black hole S-matrix. We find that the validity of the S-matrix implies violation of the semi-classical approximation at scales large compared to the Planck scale. We also show that the effect of the centrifugal barrier on the S-matrix is crucial even for large transverse distances.</bltx:abstract> + <bltx:annotation>An \texttt{online} reference from arXiv. Note the \texttt{eprint} and \texttt{eprinttype} fields. Also note that the arXiv reference is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:eprint>hep-th/9603067</bltx:eprint> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Some remarks on {'t Hooft's} {S}-matrix for black holes</bltx:title> + <bltx:version>1</bltx:version> + <bltx:date>1996-03-11</bltx:date> + </bltx:entry> + <bltx:entry id="markey" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="M">Markey</bltx:namepart> + <bltx:namepart type="given" initial="N">Nicolas</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>An \texttt{online} entry for a tutorial. Note the format of the \texttt{date} field (\texttt{yyyy-mm-dd}) in the database file.</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:sorttitle>Tame the Beast</bltx:sorttitle> + <bltx:subtitle>The {B} to {X} of {BibTeX}</bltx:subtitle> + <bltx:title>Tame the {BeaST}</bltx:title> + <bltx:url>http://tug.ctan.org/tex-archive/info/bibtex/tamethebeast/ttb_en.pdf</bltx:url> + <bltx:version>1.3</bltx:version> + <bltx:date>2005-10-16</bltx:date> + <bltx:date type="url">2006-10-01</bltx:date> + </bltx:entry> + <bltx:entry id="wassenberg" entrytype="online"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="W">Wassenberg</bltx:namepart> + <bltx:namepart type="given" initial="J">Jan</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Sanders</bltx:namepart> + <bltx:namepart type="given" initial="P">Peter</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>Sorting algorithms are the deciding factor for the performance of common operations such as removal of duplicates or database sort-merge joins. This work focuses on 32-bit integer keys, optionally paired with a 32-bit value. We present a fast radix sorting algorithm that builds upon a microarchitecture-aware variant of counting sort</bltx:abstract> + <bltx:annotation>A recent \texttt{online} reference from arXiv using the new (April 2007 onward) identifier format. Note the \texttt{eprint}, \texttt{eprinttype}, and \texttt{eprintclass} fields. Also note that the arXiv reference is transformed into a clickable link if \texttt{hyperref} support has been enabled</bltx:annotation> + <bltx:eprint>1008.2849v1</bltx:eprint> + <bltx:eprintclass>cs.DS</bltx:eprintclass> + <bltx:eprinttype>arxiv</bltx:eprinttype> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>Faster Radix Sort via Virtual Memory and Write-Combining</bltx:title> + <bltx:version>1</bltx:version> + <bltx:date>2010-08-17</bltx:date> + </bltx:entry> + <bltx:entry id="almendro" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="A">Almendro</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="J">José</bltx:namepart> + <bltx:namepart initial="L">L.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Martín</bltx:namepart> + <bltx:namepart type="given" initial="J">Jacinto</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Sánchez</bltx:namepart> + <bltx:namepart type="given" initial="A">Alberto</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N">Nozal</bltx:namepart> + <bltx:namepart type="given" initial="F">Fernando</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:location> + <bltx:item>countryfr</bltx:item> + <bltx:item>countryuk</bltx:item> + <bltx:item>countryde</bltx:item> + </bltx:location> + <bltx:annotation>This is a \texttt{patent} entry with a \texttt{location} field. The number is given in the \texttt{number} field. Note the format of the \texttt{location} field in the database file. Compare \texttt{laufenberg}, \texttt{sorace}, and \texttt{kowalik}</bltx:annotation> + <bltx:langid>german</bltx:langid> + <bltx:number>EU-29702195U</bltx:number> + <bltx:title>Elektromagnetisches Signalhorn</bltx:title> + <bltx:date>1998</bltx:date> + </bltx:entry> + <bltx:entry id="kowalik" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="K">Kowalik</bltx:namepart> + <bltx:namepart type="given" initial="F">F.</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="I">Isard</bltx:namepart> + <bltx:namepart type="given" initial="M">M.</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>This is a \texttt{patent} entry for a French patent request with a full date. The number is given in the \texttt{number} field. Note the format of the \texttt{type} and \texttt{date} fields in the database file. Compare \texttt{almendro}, \texttt{laufenberg}, and \texttt{sorace}</bltx:annotation> + <bltx:indextitle>Estimateur d'un défaut de fonctionnement</bltx:indextitle> + <bltx:langid>french</bltx:langid> + <bltx:number>9500261</bltx:number> + <bltx:title>Estimateur d'un défaut de fonctionnement d'un modulateur en quadrature et étage de modulation l'utilisant</bltx:title> + <bltx:type>patreqfr</bltx:type> + <bltx:date>1995-01-11</bltx:date> + </bltx:entry> + <bltx:entry id="laufenberg" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="L">Laufenberg</bltx:namepart> + <bltx:namepart type="given" initial="X">Xaver</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Eynius</bltx:namepart> + <bltx:namepart type="given" initial="D">Dominique</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Suelzle</bltx:namepart> + <bltx:namepart type="given" initial="H">Helmut</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="U">Usbeck</bltx:namepart> + <bltx:namepart type="given" initial="S">Stephan</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Spaeth</bltx:namepart> + <bltx:namepart type="given" initial="M">Matthias</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N-H">Neuser-Hoffmann</bltx:namepart> + <bltx:namepart type="given" initial="M">Miriam</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="M">Myrzik</bltx:namepart> + <bltx:namepart type="given" initial="C">Christian</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="S">Schmid</bltx:namepart> + <bltx:namepart type="given" initial="M">Manfred</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="N">Nietfeld</bltx:namepart> + <bltx:namepart type="given" initial="F">Franz</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="T">Thiel</bltx:namepart> + <bltx:namepart type="given" initial="A">Alexander</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="B">Braun</bltx:namepart> + <bltx:namepart type="given" initial="H">Harald</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="E">Ebner</bltx:namepart> + <bltx:namepart type="given" initial="N">Norbert</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="holder"> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="R">Robert</bltx:namepart> + <bltx:namepart>Bosch</bltx:namepart> + <bltx:namepart>GmbH</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="D">Daimler</bltx:namepart> + <bltx:namepart>Chrysler</bltx:namepart> + <bltx:namepart>AG</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="B">Bayerische</bltx:namepart> + <bltx:namepart>Motoren</bltx:namepart> + <bltx:namepart>Werke</bltx:namepart> + <bltx:namepart>AG</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:abstract>The invention relates to an electric device comprising a generator, in particular for use in the vehicle electric system of a motor vehicle and a controller for controlling the generator voltage. The device is equipped with a control zone, in which the voltage is controlled and zones, in which the torque is controlled. The invention also relates to methods for operating a device of this type.</bltx:abstract> + <bltx:annotation>This is a \texttt{patent} entry with a \texttt{holder} field. Note the format of the \texttt{type} and \texttt{location} fields in the database file. Compare \texttt{almendro}, \texttt{sorace}, and \texttt{kowalik}</bltx:annotation> + <bltx:file>http://v3.espacenet.com/textdoc?IDX=EP1700367</bltx:file> + <bltx:langid>german</bltx:langid> + <bltx:number>1700367</bltx:number> + <bltx:title>Elektrische Einrichtung und Betriebsverfahren</bltx:title> + <bltx:type>patenteu</bltx:type> + <bltx:date>2006-09-13</bltx:date> + </bltx:entry> + <bltx:entry id="sorace" entrytype="patent"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="S">Sorace</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="R">Ronald</bltx:namepart> + <bltx:namepart initial="E">E.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="R">Reinhardt</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="V">Victor</bltx:namepart> + <bltx:namepart initial="S">S.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="V">Vaughn</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="S">Steven</bltx:namepart> + <bltx:namepart initial="A">A.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:names type="holder"> + <bltx:name> + <bltx:namepart type="family"> + <bltx:namepart initial="H">Hughes</bltx:namepart> + <bltx:namepart>Aircraft</bltx:namepart> + <bltx:namepart>Company</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:annotation>This is a \texttt{patent} entry with a \texttt{holder} field. Note the format of the \texttt{type} and \texttt{date} fields in the database file. Compare \texttt{almendro}, \texttt{laufenberg}, and \texttt{kowalik}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>5668842</bltx:number> + <bltx:title>High-Speed Digital-to-{RF} Converter</bltx:title> + <bltx:type>patentus</bltx:type> + <bltx:date>1997-09-16</bltx:date> + </bltx:entry> + <bltx:entry id="jcg" entrytype="periodical"> + <bltx:annotation>This is a \texttt{periodical} entry with an \texttt{issn} field.</bltx:annotation> + <bltx:issn>0097-8493</bltx:issn> + <bltx:issuetitle>Semantic {3D} Media and Content</bltx:issuetitle> + <bltx:number>4</bltx:number> + <bltx:title>Computers and Graphics</bltx:title> + <bltx:volume>35</bltx:volume> + <bltx:date>2011</bltx:date> + </bltx:entry> + <bltx:entry id="chiu" entrytype="report"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="C">Chiu</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">Willy</bltx:namepart> + <bltx:namepart initial="W">W.</bltx:namepart> + </bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="C">Chow</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="W">We</bltx:namepart> + <bltx:namepart initial="M">Min</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>IBM</bltx:item> + </bltx:institution> + <bltx:annotation>This is a \texttt{report} entry for a research report. Note the format of the \texttt{type} field in the database file which uses a localization key. The number of the report is given in the \texttt{number} field. Also note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:indextitle>Hybrid Hierarchical Model, A</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>RC-6947</bltx:number> + <bltx:sorttitle>Hybrid Hierarchical Model of a Multiple Virtual Storage (MVS) Operating System</bltx:sorttitle> + <bltx:title>A Hybrid Hierarchical Model of a {Multiple Virtual Storage} ({MVS}) Operating System</bltx:title> + <bltx:type>resreport</bltx:type> + <bltx:date>1978</bltx:date> + </bltx:entry> + <bltx:entry id="padhye" entrytype="report"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="P">Padhye</bltx:namepart> + <bltx:namepart type="given" initial="J">Jitendra</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="F">Firoiu</bltx:namepart> + <bltx:namepart type="given" initial="V">Victor</bltx:namepart> + </bltx:name> + <bltx:name> + <bltx:namepart type="family" initial="T">Towsley</bltx:namepart> + <bltx:namepart type="given" initial="D">Don</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>University of Massachusetts</bltx:item> + </bltx:institution> + <bltx:location> + <bltx:item>Amherst, Mass.</bltx:item> + </bltx:location> + <bltx:abstract>The steady state performance of a bulk transfer TCP flow (i.e. a flow with a large amount of data to send, such as FTP transfers) may be characterized by three quantities. The first is the send rate, which is the amount of data sent by the sender in unit time. The second is the throughput, which is the amount of data received by the receiver in unit time. Note that the throughput will always be less than or equal to the send rate due to losses. Finally, the number of non-duplicate packets received by the receiver in unit time gives us the goodput of the connection. The goodput is always less than or equal to the throughput, since the receiver may receive two copies of the same packet due to retransmissions by the sender. In a previous paper, we presented a simple model for predicting the steady state send rate of a bulk transfer TCP flow as a function of loss rate and round trip time. In this paper, we extend that work in two ways. First, we analyze the performance of bulk transfer TCP flows using more precise, stochastic analysis. Second, we build upon the previous analysis to provide both an approximate formula as well as a more accurate stochastic model for the steady state throughput of a bulk transfer TCP flow.</bltx:abstract> + <bltx:annotation>This is a \texttt{report} entry for a technical report. Note the format of the \texttt{type} field in the database file which uses a localization key. The number of the report is given in the \texttt{number} field. Also note the \texttt{sorttitle} and \texttt{indextitle} fields</bltx:annotation> + <bltx:file>ftp://gaia.cs.umass.edu/pub/Padhey99-markov.ps</bltx:file> + <bltx:indextitle>Stochastic Model of {TCP Reno} Congestion Avoidance and Control, A</bltx:indextitle> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:number>99-02</bltx:number> + <bltx:sorttitle>A Stochastic Model of TCP Reno Congestion Avoidance and Control</bltx:sorttitle> + <bltx:title>A Stochastic Model of {TCP Reno} Congestion Avoidance and Control</bltx:title> + <bltx:type>techreport</bltx:type> + <bltx:date>1999</bltx:date> + </bltx:entry> + <bltx:entry id="geer" entrytype="thesis"> + <bltx:options>useprefix=false</bltx:options> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="G">Geer</bltx:namepart> + <bltx:namepart type="given" initial="I">Ingrid</bltx:namepart> + <bltx:namepart type="prefix" initial="d">de</bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>Uppsala Universitet</bltx:item> + </bltx:institution> + <bltx:location> + <bltx:item>Uppsala</bltx:item> + </bltx:location> + <bltx:annotation>This is a typical \texttt{thesis} entry for a PhD thesis. Note the \texttt{type} field in the database file which uses a localization key. Also note the format of the printed name and compare the \texttt{useprefix} option in the \texttt{options} field as well as \texttt{vangennep}</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=british</bltx:langidopts> + <bltx:subtitle>The {Orkney Earldom} of the Twelfth Century. {A} Musicological Study</bltx:subtitle> + <bltx:title>Earl, Saint, Bishop, Skald~-- and Music</bltx:title> + <bltx:type>phdthesis</bltx:type> + <bltx:date>1985</bltx:date> + </bltx:entry> + <bltx:entry id="loh" entrytype="thesis"> + <bltx:names type="author"> + <bltx:name> + <bltx:namepart type="family" initial="L">Loh</bltx:namepart> + <bltx:namepart type="given"> + <bltx:namepart initial="N">Nin</bltx:namepart> + <bltx:namepart initial="C">C.</bltx:namepart> + </bltx:namepart> + </bltx:name> + </bltx:names> + <bltx:institution> + <bltx:item>Massachusetts Institute of Technology</bltx:item> + </bltx:institution> + <bltx:location> + <bltx:item>Cambridge, Mass.</bltx:item> + </bltx:location> + <bltx:annotation>This is a typical \texttt{thesis} entry for an MA thesis. Note the \texttt{type} field in the database file which uses a localization key</bltx:annotation> + <bltx:langid>english</bltx:langid> + <bltx:langidopts>variant=american</bltx:langidopts> + <bltx:title>High-Resolution Micromachined Interferometric Accelerometer</bltx:title> + <bltx:type>mathesis</bltx:type> + <bltx:date>1992</bltx:date> + </bltx:entry> +</bltx:entries> diff --git a/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx b/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx index 557a8e44704..a3f26dd9fe2 100644 --- a/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx +++ b/Master/texmf-dist/tex/latex/biblatex/bbx/authortitle.bbx @@ -4,7 +4,7 @@ \RequireBibliographyStyle{standard} \ExecuteBibliographyOptions{pagetracker} -\DeclareBibliographyOption{dashed}[true]{% +\DeclareBibliographyOption[boolean]{dashed}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{pagetracker}% \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} diff --git a/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx b/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx index f4413275e39..6b3984ebade 100644 --- a/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx +++ b/Master/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx @@ -3,13 +3,13 @@ \RequireBibliographyStyle{standard} -\DeclareBibliographyOption{dashed}[true]{% +\DeclareBibliographyOption[boolean]{dashed}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{pagetracker}% \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} {\renewbibmacro*{bbx:savehash}{}}} -\DeclareBibliographyOption{mergedate}[true]{% +\DeclareBibliographyOption[boolean]{mergedate}[true]{% \ifcsdef{bbx@opt@mergedate@#1} {\csuse{bbx@opt@mergedate@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/bbx/debug.bbx b/Master/texmf-dist/tex/latex/biblatex/bbx/debug.bbx index afd8b5e311e..319b26e0553 100644 --- a/Master/texmf-dist/tex/latex/biblatex/bbx/debug.bbx +++ b/Master/texmf-dist/tex/latex/biblatex/bbx/debug.bbx @@ -35,22 +35,38 @@ {\endlist} {\item} -\DeclareNameFormat{debug}{% - \bbx@mklabel{\currentname}% - \ifblank{#3}{}{\detokenize{#3}\space}% - \ifblank{#5}{}{\detokenize{#5}\ifpunctmark{'}{}{\space}}% - \detokenize{#1}% - \ifblank{#7}{}{\space\detokenize{#7}}% - \ifblank{#3}{}{\bbx@mksublabel{first}\detokenize{#3}}% - \ifblank{#1}{}{\bbx@mksublabel{last}\detokenize{#1}}% - \ifblank{#5}{}{\bbx@mksublabel{prefix}\detokenize{#5}}% - \ifblank{#7}{}{\bbx@mksublabel{affix}\detokenize{#7}}% - \bbx@mksublabel{inits}% - \ifblank{#4}{}{\detokenize{#4}\space}% - \ifblank{#6}{}{\detokenize{#6}\ifpunctmark{'}{}{\space}}% - \detokenize{#2}% - \ifblank{#8}{}{\space\detokenize{#8}}% -} +\@ifpackageloaded{biblatex_legacy} + {\DeclareNameFormat{debug}{% + \bbx@mklabel{\currentname}% + \ifblank{#3}{}{\detokenize{#3}\space}% + \ifblank{#5}{}{\detokenize{#5}\ifpunctmark{'}{}{\space}}% + \detokenize{#1}% + \ifblank{#7}{}{\space\detokenize{#7}}% + \ifblank{#3}{}{\bbx@mksublabel{given}\detokenize{#3}}% + \ifblank{#1}{}{\bbx@mksublabel{family}\detokenize{#1}}% + \ifblank{#5}{}{\bbx@mksublabel{prefix}\detokenize{#5}}% + \ifblank{#7}{}{\bbx@mksublabel{affix}\detokenize{#7}}% + \bbx@mksublabel{inits}% + \ifblank{#4}{}{\detokenize{#4}\space}% + \ifblank{#6}{}{\detokenize{#6}\ifpunctmark{'}{}{\space}}% + \detokenize{#2}% + \ifblank{#8}{}{\space\detokenize{#8}}}} + {\DeclareNameFormat{debug}{% + \nameparts{#1}% + \bbx@mklabel{\currentname}% + \ifdefvoid{\namepartgiven}{}{\expandafter\detokenize\expandafter{\namepartgiven}\space}% + \ifdefvoid{\namepartprefix}{}{\expandafter\detokenize\expandafter{\namepartprefix}\ifpunctmark{'}{}{\space}}% + \expandafter\detokenize\expandafter{\namepartfamily}% + \ifdefvoid{\namepartsuffix}{}{\expandafter\space\expandafter\detokenize\expandafter{\namepartsuffix}}% + \ifdefvoid{\namepartgiven}{}{\bbx@mksublabel{given}\expandafter\detokenize\expandafter{\namepartgiven}}% + \ifdefvoid{\namepartfamily}{}{\bbx@mksublabel{family}\expandafter\detokenize\expandafter{\namepartfamily}}% + \ifdefvoid{\namepartprefix}{}{\bbx@mksublabel{prefix}\expandafter\detokenize\expandafter{\namepartprefix}}% + \ifdefvoid{\namepartsuffix}{}{\bbx@mksublabel{suffix}\expandafter\detokenize\expandafter{\namepartsuffix}}% + \bbx@mksublabel{inits}% + \ifdefvoid{\namepartgiveni}{}{\expandafter\detokenize\expandafter{\namepartgiveni}\space}% + \ifdefvoid{\namepartprefixi}{}{\expandafter\detokenize\expandafter{\namepartprefixi}\ifpunctmark{'}{}{\space}}% + \expandafter\detokenize\expandafter{\namepartfamilyi}% + \ifdefvoid{\namepartsuffixi}{}{\expandafter\space\expandafter\detokenize\expandafter{\namepartsuffixi}}}} \DeclareListFormat{debug}{% \bbx@mklabel{\currentlist}% diff --git a/Master/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx b/Master/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx index ddbd31b81c0..02299df2a6a 100644 --- a/Master/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx +++ b/Master/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx @@ -6,7 +6,7 @@ \providebool{bbx:subentry} -\DeclareBibliographyOption{subentry}[true]{% +\DeclareBibliographyOption[boolean]{subentry}[true]{% \setbool{bbx:subentry}{#1}} \DeclareNameAlias{author}{default} diff --git a/Master/texmf-dist/tex/latex/biblatex/bbx/reading.bbx b/Master/texmf-dist/tex/latex/biblatex/bbx/reading.bbx index f571a5a633c..6e9e25be2d1 100644 --- a/Master/texmf-dist/tex/latex/biblatex/bbx/reading.bbx +++ b/Master/texmf-dist/tex/latex/biblatex/bbx/reading.bbx @@ -102,21 +102,21 @@ \newbool{bbx:library} \newbool{bbx:file} -\DeclareBibliographyOption{entryhead}[true]{% +\DeclareBibliographyOption[boolean]{entryhead}[true]{% \ifcsdef{bbx@item@#1} {\letcs\bbx@item{bbx@item@#1}} {\PackageError{biblatex} {Invalid option 'header=#1'} {Valid values: header=true, false, full, name.}}} -\DeclareBibliographyOption{entrykey}[true]{% +\DeclareBibliographyOption[boolean]{entrykey}[true]{% \setbool{bbx:entrykey}{#1}} -\DeclareBibliographyOption{annotation}[true]{% +\DeclareBibliographyOption[boolean]{annotation}[true]{% \setbool{bbx:annotation}{#1}} -\DeclareBibliographyOption{abstract}[true]{% +\DeclareBibliographyOption[boolean]{abstract}[true]{% \setbool{bbx:abstract}{#1}} -\DeclareBibliographyOption{library}[true]{% +\DeclareBibliographyOption[boolean]{library}[true]{% \setbool{bbx:library}{#1}} -\DeclareBibliographyOption{file}[true]{% +\DeclareBibliographyOption[boolean]{file}[true]{% \setbool{bbx:file}{#1}} \ExecuteBibliographyOptions{loadfiles,entryhead,entrykey,annotation,abstract,library,file} diff --git a/Master/texmf-dist/tex/latex/biblatex/bbx/standard.bbx b/Master/texmf-dist/tex/latex/biblatex/bbx/standard.bbx index f81dd4aaaad..c1d480d4d70 100644 --- a/Master/texmf-dist/tex/latex/biblatex/bbx/standard.bbx +++ b/Master/texmf-dist/tex/latex/biblatex/bbx/standard.bbx @@ -7,15 +7,15 @@ \newtoggle{bbx:eprint} \newtoggle{bbx:related} -\DeclareBibliographyOption{isbn}[true]{% +\DeclareBibliographyOption[boolean]{isbn}[true]{% \settoggle{bbx:isbn}{#1}} -\DeclareBibliographyOption{url}[true]{% +\DeclareBibliographyOption[boolean]{url}[true]{% \settoggle{bbx:url}{#1}} -\DeclareBibliographyOption{doi}[true]{% +\DeclareBibliographyOption[boolean]{doi}[true]{% \settoggle{bbx:doi}{#1}} -\DeclareBibliographyOption{eprint}[true]{% +\DeclareBibliographyOption[boolean]{eprint}[true]{% \settoggle{bbx:eprint}{#1}} -\DeclareBibliographyOption{related}[true]{% +\DeclareBibliographyOption[boolean]{related}[true]{% \settoggle{bbx:related}{#1}} \ExecuteBibliographyOptions{isbn,url,doi,eprint,related} diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex.sty index 2effcae5d26..3271b7b39a5 100644 --- a/Master/texmf-dist/tex/latex/biblatex/biblatex.sty +++ b/Master/texmf-dist/tex/latex/biblatex/biblatex.sty @@ -3,8 +3,8 @@ %% % Set up the version strings here, so they are the same for both branches -\def\abx@date{2015/12/22} -\def\abx@version{3.2} +\def\abx@date{2016/03/03} +\def\abx@version{3.3} \def\abx@bbxid{\abx@date\space v\abx@version\space biblatex bibliography style (PK/JW/AB)} \def\abx@cbxid{\abx@date\space v\abx@version\space biblatex citation style (PK/JW/AB)} \def\abx@lbxid{\abx@date\space v\abx@version\space biblatex localization (PK/JW/AB)} @@ -12,18 +12,18 @@ % This is not updated by build script as the controlfile version % does not necessarily change with the package version. % This is used when writing the .bcf -\def\blx@bcfversion{2.9} +\def\blx@bcfversion{3.0} % This is not updated by build script as the bbl version % does not necessarily change with the package version. % This is used when checking the .bbl -\def\blx@bblversion{2.5} +\def\blx@bblversion{2.6} \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{biblatex} [\abx@date\space v\abx@version\space programmable bibliographies (PK/JW/AB)] % Set up a switch for choosing the version -\newif\ifblx@load@version@one +\newif\ifblx@load@version@legacy % A switch so we can issue a message about the backend \newif\ifblx@load@backend@seen @@ -31,31 +31,31 @@ % Fake keyval options to detect the backend % All basically the same, so passing the backend is done simply \DeclareOption{backend=bibtex}{% - \PassOptionsToPackage{\CurrentOption}{biblatex1}% - \blx@load@version@onetrue + \PassOptionsToPackage{\CurrentOption}{biblatex_legacy}% + \blx@load@version@legacytrue \blx@load@backend@seentrue } \DeclareOption{backend=bibtex8}{% - \PassOptionsToPackage{\CurrentOption}{biblatex1}% - \blx@load@version@onetrue + \PassOptionsToPackage{\CurrentOption}{biblatex_legacy}% + \blx@load@version@legacytrue \blx@load@backend@seentrue } \DeclareOption{backend=bibtexu}{% - \PassOptionsToPackage{\CurrentOption}{biblatex1}% - \blx@load@version@onetrue + \PassOptionsToPackage{\CurrentOption}{biblatex_legacy}% + \blx@load@version@legacytrue \blx@load@backend@seentrue } \DeclareOption{backend=biber}{% - \blx@load@version@onefalse + \blx@load@version@legacyfalse \blx@load@backend@seentrue } \DeclareOption*{% - \PassOptionsToPackage{\CurrentOption}{biblatex1}% - \PassOptionsToPackage{\CurrentOption}{biblatex2}% + \PassOptionsToPackage{\CurrentOption}{biblatex_legacy}% + \PassOptionsToPackage{\CurrentOption}{biblatex_}% } % Default to the Biber backend -\blx@load@version@onefalse +\blx@load@version@legacyfalse \ProcessOptions\relax \ifblx@load@backend@seen @@ -70,25 +70,16 @@ % Now do the loading: avoid any awkward stuff with the conditional by % expanding first -\ifblx@load@version@one +\ifblx@load@version@legacy \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi - {% - % A few things not defined by v1 so has to be handled if using v1 - \protected\long\def\DeclareDriverSourcemap[#1]#2{}% - \protected\long\def\DeclareLabelalphaTemplate#1{}% - \protected\long\def\DeclareLabeltitle#1{}% - \protected\long\def\DeclareLabelname#1{}% - \protected\long\def\DeclareLabeldate#1{}% - \protected\long\def\abx@dointernalfields{}% - \RequirePackage{biblatex1}% - } - {\RequirePackage{biblatex2}} + {\RequirePackage{biblatex_legacy}} + {\RequirePackage{biblatex_}} %% Copyright (C) 2006-2011 Philipp Lehman -%% 2012-2014 Philip Kime, Audrey Boruvka, Joseph Wright +%% 2012-2016 Philip Kime, Audrey Boruvka, Joseph Wright %% %% It may be distributed and/or modified under the conditions of %% the LaTeX Project Public License (LPPL), either version 1.3c of diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex.def b/Master/texmf-dist/tex/latex/biblatex/biblatex_.def index 51414258a7d..1ac6cc1f723 100644 --- a/Master/texmf-dist/tex/latex/biblatex/biblatex.def +++ b/Master/texmf-dist/tex/latex/biblatex/biblatex_.def @@ -1,5 +1,5 @@ % -*- mode: LaTeX -*- -\ProvidesFile{biblatex.def} +\ProvidesFile{biblatex_.def} % ------------------------------------------------------------------ % FORMATTING COMMANDS @@ -10,10 +10,19 @@ % Used in citations, bibliography and bibliography lists -\newcommand*{\mkbibnamefirst}[1]{#1} -\newcommand*{\mkbibnamelast}[1]{#1} -\newcommand*{\mkbibnameprefix}[1]{#1} -\newcommand*{\mkbibnameaffix}[1]{#1} +% Define namepart keys from datamodel constant list +% \namepart<namepart> - e.g. \namepartfamily +% \namepart<namepart>i - e.g. \namepartfamilyi +\def\nameparts#1{\setkeys{blx@opt@namepart}{#1}} +\def\do#1{% + \csdef{mkbibname#1}##1{##1}% + \define@key{blx@opt@namepart}{#1}{\csdef{namepart#1}{##1}}% + \define@key{blx@opt@namepart}{#1_i}{\csdef{namepart#1i}{##1}}} +\expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts} + +\newcommand*{\mkbibnamefirst}[1]{#1}% legacy alias +\newcommand*{\mkbibnamelast}[1]{#1}% legacy alias +\newcommand*{\mkbibnameaffix}[1]{#1}% legacy alias \newcommand*{\bibellipsis}{[\textellipsis\unkern]\midsentence} % Delimiters used in citations, bibliography and bibliography lists @@ -38,8 +47,10 @@ \newcommand*{\supercitedelim}{\addcomma} \newcommand*{\prenotedelim}{\addspace} \newcommand*{\postnotedelim}{\addcomma\space} +\newcommand*{\extpostnotedelim}{\addspace} \newcommand*{\nametitledelim}{\addcomma\space} \newcommand*{\nameyeardelim}{\addspace} +\newcommand*{\nonameyeardelim}{\addspace} \newcommand*{\volcitedelim}{\addcomma\space} \newcommand*{\textcitedelim}{% \iffinalcitedelim @@ -267,7 +278,7 @@ % Style of compressed page ranges in back references -\DeclareBibliographyOption{backrefstyle}{% +\DeclareBibliographyOption[string]{backrefstyle}{% \ifcsdef{abx@opt@pagerefstyle@#1} {\letcs\abx@pagerefstyle{abx@opt@pagerefstyle@#1}} {\PackageError{biblatex} @@ -290,7 +301,7 @@ % pdf = PDF version % format = format selector -\DeclareBibliographyOption{arxiv}{\def\abx@arxivpath{#1}} +\DeclareBibliographyOption[string]{arxiv}{\def\abx@arxivpath{#1}} \newcommand*{\abx@arxivpath}{abs} % ------------------------------------------------------------------ @@ -661,52 +672,84 @@ % NAME LIST FORMATS % ------------------------------------------------------------------ -% Argments passed to formatting directives for name lists: -% -% #1 = last name -% #2 = last name (initials) -% #3 = first name -% #4 = first name (initials) -% #5 = name prefix, a.k.a. 'von part' -% #6 = name prefix (initials) -% #7 = name affix, a.k.a. 'junior part' -% #8 = name affix (initials) - % Formatting directives for name lists % ------------------------------------------------------------------ -\DeclareNameFormat{first-last}{% - \iffirstinits - {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} - {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}% +\DeclareNameAlias{first-last}{given-family}% legacy alias +\DeclareNameFormat{given-family}{% + \nameparts{#1}% + \ifgiveninits + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% \usebibmacro{name:andothers}} -\DeclareNameFormat{last-first}{% - \iffirstinits - {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} - {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% +\DeclareNameAlias{last-first}{family-given}% legacy alias +\DeclareNameFormat{family-given}{% + \nameparts{#1}% + \ifgiveninits + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% \usebibmacro{name:andothers}} -\DeclareNameFormat{last-first/first-last}{% +\DeclareNameAlias{last-first/first-last}{family-given/given-family}% legacy aliAs +\DeclareNameFormat{family-given/given-family}{% + \nameparts{#1}% \ifnumequal{\value{listcount}}{1} - {\iffirstinits - {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} - {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% - \ifblank{#3#5} + {\ifgiveninits + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}% + \ifempty{\namepartgiven\namepartprefix} {} {\usebibmacro{name:revsdelim}}} - {\iffirstinits - {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} - {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}% + {\ifgiveninits + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}}}% \usebibmacro{name:andothers}} \DeclareNameFormat{initsonly}{% - \usebibmacro{name:first-last}{#2}{#4}{#6}{#8}% + \nameparts{#1}% + \usebibmacro{name:given-family} + {\namepartfamilyi} + {\namepartgiveni} + {\namepartprefixi} + {\namepartsuffixi}% \usebibmacro{name:andothers}} % Fallback used by \printnames -\DeclareNameAlias{default}{first-last} +\DeclareNameAlias{default}{given-family} % Default used by \citename @@ -715,20 +758,37 @@ % Used in some citations \DeclareNameFormat{labelname}{% + \nameparts{#1}% \ifcase\value{uniquename}% - \usebibmacro{name:last}{#1}{#3}{#5}{#7}% + \usebibmacro{name:family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% \or \ifuseprefix - {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}} - {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}% + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffixi}} + {\usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefixi} + {\namepartsuffixi}}% \or - \usebibmacro{name:first-last}{#1}{#3}{#5}{#7}% + \usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}% \fi \usebibmacro{name:andothers}} % Used in the bibliography -\DeclareNameAlias{sortname}{last-first/first-last} +\DeclareNameAlias{sortname}{family-given/given-family} \DeclareNameAlias{author}{default} \DeclareNameAlias{bookauthor}{author} @@ -758,11 +818,11 @@ % Auxiliary macros for name formatting directives % ------------------------------------------------------------------ -\newbibmacro*{name:last}[4]{% +\newbibmacro*{name:family}[4]{% \ifuseprefix {\usebibmacro{name:delim}{#3#1}% \usebibmacro{name:hook}{#3#1}% - \ifblank{#3} + \ifempty{#3} {} {\ifcapital {\mkbibnameprefix{\MakeCapital{#3}}\isdot} @@ -770,39 +830,51 @@ \ifprefchar{}{\bibnamedelimc}}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}}% - \mkbibnamelast{#1}\isdot}% + \mkbibnamefamily{#1}\isdot}% +\newbibmacro*{name:last}[4]{% legacy alias + \blx@warning@noline{% + 'name:last' is deprecated, please use 'name:family'}% + \usebibmacro{name:family}{#1}{#2}{#3}{#4}} -\newbibmacro*{name:first-last}[4]{% +\newbibmacro*{name:given-family}[4]{% \usebibmacro{name:delim}{#2#3#1}% \usebibmacro{name:hook}{#2#3#1}% - \ifblank{#2}{}{\mkbibnamefirst{#2}\isdot\bibnamedelimd}% - \ifblank{#3}{}{% + \ifempty{#2}{}{\mkbibnamegiven{#2}\isdot\bibnamedelimd}% + \ifempty{#3}{}{% \mkbibnameprefix{#3}\isdot - \ifprefchar{} + \ifprefchar {} {\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}% - \mkbibnamelast{#1}\isdot - \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}} - -\newbibmacro*{name:last-first}[4]{% + \mkbibnamefamily{#1}\isdot + \ifempty{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}} +\newbibmacro*{name:first-last}[4]{% legacy alias + \blx@warning@noline{% + 'name:first-last' is deprecated, please use 'name:given-family'}% + \usebibmacro{name:given-family}{#1}{#2}{#3}{#4}} + +\newbibmacro*{name:family-given}[4]{% \ifuseprefix {\usebibmacro{name:delim}{#3#1}% \usebibmacro{name:hook}{#3#1}% - \ifblank{#3}{}{% + \ifempty{#3}{}{% \ifcapital {\mkbibnameprefix{\MakeCapital{#3}}\isdot} {\mkbibnameprefix{#3}\isdot}% \ifprefchar{}{\bibnamedelimc}}% - \mkbibnamelast{#1}\isdot - \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% - \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{#2}\isdot}} + \mkbibnamefamily{#1}\isdot + \ifempty{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifempty{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% - \mkbibnamelast{#1}\isdot - \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% - \ifblank{#2#3}{}{\revsdnamepunct}% - \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}% - \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}} + \mkbibnamefamily{#1}\isdot + \ifempty{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifempty{#2#3}{}{\revsdnamepunct}% + \ifempty{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}% + \ifempty{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}} +\newbibmacro*{name:last-first}[4]{% legacy alias + \blx@warning@noline{% + 'name:last-first' is deprecated, please use 'name:family-given'}% + \usebibmacro{name:family-given}{#1}{#2}{#3}{#4}} \newbibmacro*{name:hook}[1]{% \ifnumequal{\value{listcount}}{1} @@ -891,24 +963,19 @@ % INDEX FORMATS FOR NAME LISTS % ------------------------------------------------------------------ -% Argments passed to indexing directives for name lists: -% -% #1 = last name -% #2 = last name (initials) -% #3 = first name -% #4 = first name (initials) -% #5 = name prefix, a.k.a 'von part' -% #6 = name prefix (initials) -% #7 = name affix, a.k.a 'junior part' -% #8 = name affix (initials) - % Indexing directives for name lists % ------------------------------------------------------------------ % The fallback used by \indexnames \DeclareIndexNameFormat{default}{% - \usebibmacro{index:name}{\index}{#1}{#3}{#5}{#7}} + \nameparts{#1}% + \usebibmacro{index:name} + {\index} + {\namepartfamily} + {\namepartgiven} + {\namepartprefix} + {\namepartsuffix}} % Used in citations @@ -925,15 +992,13 @@ % When generating an index entry, we need to test which parts of a % name are actually available to prevent spurious punctuation and -% spaces. Since those parts which are not available yield an empty -% argument, we can use the \ifblank test from etoolbox.sty to analyze -% the name. +% spaces. % % Note that the standard LaTeX \index command simply writes its % argument to the .idx file without preventing expansion. This means -% that all \ifblank tests are expanded on the way and will not end +% that all \ifblank etc. tests are expanded on the way and will not end % up in the index. The index package, however, prevents expansion. -% This would lead to \ifblank ending up in the .idx file. To avoid +% This would lead to \ifblank etc. ending up in the .idx file. To avoid % that, we preprocess the index entry inside an \edef. We use % \unexpanded to protect the \index command and the actual data from % expansion. This definition will work with both index.sty and the @@ -953,7 +1018,7 @@ \newbibmacro*{index:name}[5]{% \usebibmacro{index:entry}{#1}{\mkbibindexname{#2}{#3}{#4}{#5}}} -% {<last name>}{<first name>}{<first initials>}{<last name prefix>} +% {<family name>}{<given name>}{<given initials>}{<family name prefix>} \newcommand*{\mkbibindexname}[4]{% \ifuseprefix @@ -1029,129 +1094,6 @@ } } -\DeclareDriverSourcemap[datatype=endnotexml]{ - \map{ - \step[typesource={Aggregated Database}, typetarget=misc] - \step[typesource={Ancient Text}, typetarget=misc] - \step[typesource=Artwork, typetarget=artwork] - \step[typesource={Audiovisual Material}, typetarget=misc] - \step[typesource=Bill, typetarget=jurisdiction] - \step[typesource=Blog, typetarget=online] - \step[typesource=Book, typetarget=book] - \step[typesource={Book Section}, typetarget=inbook] - \step[typesource=Case, typetarget=jurisdiction] - \step[typesource=Catalog, typetarget=misc] - \step[typesource={Chart or Table}, typetarget=misc] - \step[typesource={Classical Work}, typetarget=misc] - \step[typesource={Computer Program}, typetarget=software] - \step[typesource={Conference Paper}, typetarget=inproceedings] - \step[typesource={Conference Proceedings}, typetarget=proceedings] - \step[typesource=Dictionary, typetarget=inreference] - \step[typesource={Edited Book}, typetarget=collection] - \step[typesource={Electronic Article}, typetarget=article] - \step[typesource={Electronic Book}, typetarget=book] - \step[typesource={Encyclopedia}, typetarget=reference] - \step[typesource=Equation, typetarget=misc] - \step[typesource=Figure, typetarget=misc] - \step[typesource={Film or Broadcast}, typetarget=movie] - \step[typesource={Government Document}, typetarget=report] - \step[typesource=Grant, typetarget=misc] - \step[typesource=Hearing, typetarget=jurisdiction] - \step[typesource={Journal Article}, typetarget=article] - \step[typesource={Legal Rule or Regulation}, typetarget=legislation] - \step[typesource={Magazine Article}, typetarget=article] - \step[typesource=Manuscript, typetarget=unpublished] - \step[typesource=Map, typetarget=misc] - \step[typesource={Newspaper Article}, typetarget=article] - \step[typesource={Online Database}, typetarget=online] - \step[typesource={Online Multimedia}, typetarget=online] - \step[typesource=Pamphlet, typetarget=booklet] - \step[typesource=Patent, typetarget=patent] - \step[typesource={Personal Communication}, typetarget=letter] - \step[typesource=Report, typetarget=report] - \step[typesource=Serial, typetarget=periodical] - \step[typesource=Standard, typetarget=standard] - \step[typesource=Statute, typetarget=legislation] - \step[typesource=Thesis, typetarget=thesis] - \step[typesource={Unpublished Work}, typetarget=unpublished] - \step[typesource={Web Page}, typetarget=online] - } - \map{ - \step[fieldsource={electronic-resource-num}, fieldtarget=eprint] - \step[fieldsource={alt-title}, fieldtarget=shorttitle] - \step[fieldsource={meeting-place}, fieldtarget=venue] - \step[fieldsource={pub-location}, fieldtarget=location] - \step[fieldsource={orig-pub}, fieldtarget=origpublisher] - \step[fieldsource={authors}, fieldtarget=author] - \step[fieldsource={secondary-authors}, fieldtarget=editor] - \step[fieldsource={tertiary-authors}, fieldtarget=commentator] - \step[fieldsource={subsidiary-authors}, fieldtarget=translator] - \step[fieldsource={year}, fieldtarget=date] - \step[fieldsource={pub-dates}, fieldtarget=date] - \step[fieldsource={num-vols}, fieldtarget=volumes] - \step[fieldsource={call-num}, fieldtarget=library] - \step[fieldsource={notes}, fieldtarget=note] - \step[fieldsource={secondary-title}, fieldtarget=subtitle] - \step[fieldsource={work-type}, fieldtarget=type] - } - \map{ - \pertype{Edited Book} - \step[fieldsource=contributors/authors, fieldtarget=contributors/editor] - } - \map{ - \pertype{Electronic Article} - \pertype{Journal Article} - \pertype{Magazine Article} - \pertype{Newspaper Article} - \step[fieldsource=isbn, fieldtarget=issn] - } - \map{ - \pertype{Patent} - \pertype{Report} - \pertype{Government Document} - \pertype{Legal Rule or Regulation} - \step[fieldsource=isbn, fieldtarget=number] - } - \map{ - \pertype{Blog} - \pertype{Online Database} - \pertype{Online Multimedia} - \pertype{Web Page} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/title}] - } - \map{ - \pertype{Book Section} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/booktitle}] - } - \map{ - \pertype{Book} - \pertype{Electronic Book} - \pertype{Manuscript} - \pertype{Unpublished Work} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/series}] - } - \map{ - \pertype{Conference Paper} - \pertype{Conference Proceedings} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/eventtitle}] - } - \map{ - \pertype{Electronic Article} - \pertype{Journal Article} - \pertype{Magazine Article} - \pertype{Newspaper Article} - \step[fieldsource={titles/secondary-title}, fieldtarget={titles/journaltitle}] - } - \map{ - \pertype{Book Section} - \step[fieldsource={titles/tertiary-title}, fieldtarget={titles/booktitle}] - } - \map{ - \pertype{Conference Proceedings} - \pertype{periodical} - \step[fieldsource={titles/tertiary-title}, fieldtarget={titles/series}] - } -} \DeclareDriverSourcemap[datatype=ris]{ \map{ \step[typesource=ART, typetarget=artwork] @@ -1211,109 +1153,6 @@ \step[fieldsource=L1, fieldtarget=file] } } -\DeclareDriverSourcemap[datatype=zoterordfxml]{ - \map{ - \step[typesource=conferencePaper, typetarget=inproceedings] - \step[typesource=bookSection, typetarget=inbook] - \step[typesource=journalArticle, typetarget=article] - \step[typesource=magazineArticle, typetarget=article] - \step[typesource=newspaperArticle, typetarget=article] - \step[typesource=encyclopediaArticle, typetarget=inreference] - \step[typesource=manuscript, typetarget=unpublished] - \step[typesource=document, typetarget=misc] - \step[typesource=dictionaryEntry, typetarget=inreference] - \step[typesource=interview, typetarget=misc] - \step[typesource=film, typetarget=movie] - \step[typesource=webpage, typetarget=online] - \step[typesource=note, typetarget=misc] - \step[typesource=attachment, typetarget=misc] - \step[typesource=bill, typetarget=legislation] - \step[typesource=case, typetarget=jurisdiction] - \step[typesource=hearing, typetarget=jurisdiction] - \step[typesource=statute, typetarget=legislation] - \step[typesource=email, typetarget=letter] - \step[typesource=map, typetarget=image] - \step[typesource=blogPost, typetarget=online] - \step[typesource=instantMessage, typetarget=letter] - \step[typesource=forumPost, typetarget=online] - \step[typesource=audioRecording, typetarget=audio] - \step[typesource=presentation, typetarget=inproceedings] - \step[typesource=videoRecording, typetarget=video] - \step[typesource=tvBroadcast, typetarget=misc] - \step[typesource=radioBroadcast, typetarget=misc] - \step[typesource=podcast, typetarget=online] - \step[typesource=computerProgram, typetarget=software] - } - \map{ - \step[fieldsource=bib:contributors, fieldtarget=author] - \step[fieldsource=bib:authors, fieldtarget=author] - \step[fieldsource=z:interviewers, fieldtarget=author] - \step[fieldsource=z:directors, fieldtarget=author] - \step[fieldsource=z:scriptwriters, fieldtarget=author] - \step[fieldsource=z:bookAuthor, fieldtarget=author] - \step[fieldsource=z:inventors, fieldtarget=author] - \step[fieldsource=z:recipients, fieldtarget=author] - \step[fieldsource=z:counsels, fieldtarget=author] - \step[fieldsource=z:artists, fieldtarget=author] - \step[fieldsource=z:podcasters, fieldtarget=author] - \step[fieldsource=z:presenters, fieldtarget=author] - \step[fieldsource=z:commenters, fieldtarget=author] - \step[fieldsource=z:programers, fieldtarget=author] - \step[fieldsource=z:composers, fieldtarget=author] - \step[fieldsource=z:producers, fieldtarget=author] - \step[fieldsource=z:performers, fieldtarget=author] - \step[fieldsource=bib:editors, fieldtarget=editor] - \step[fieldsource=z:translators, fieldtarget=translator] - \step[fieldsource=z:seriesEditors, fieldtarget=editor] - \step[fieldsource=dc:date, fieldtarget=date] - \step[fieldsource=bib:pages, fieldtarget=pages] - \step[fieldsource=dc:title, fieldtarget=title] - \step[fieldsource=z:proceedingsTitle, fieldtarget=title] - \step[fieldsource=z:encyclopediaTitle, fieldtarget=title] - \step[fieldsource=z:dictionaryTitle, fieldtarget=title] - \step[fieldsource=z:websiteTitle, fieldtarget=title] - \step[fieldsource=z:forumTitle, fieldtarget=title] - \step[fieldsource=z:blogTitle, fieldtarget=title] - \step[fieldsource=z:nameOfAct, fieldtarget=title] - \step[fieldsource=z:caseName, fieldtarget=title] - \step[fieldsource=z:meetingName, fieldtarget=eventtitle] - \step[fieldsource=prism:volume, fieldtarget=volume] - \step[fieldsource=numberOfVolumes, fieldtarget=volumes] - \step[fieldsource=z:numPages, fieldtarget=pagetotal] - \step[fieldsource=prism:edition, fieldtarget=edition] - \step[fieldsource=dc:description, fieldtarget=note] - \step[fieldsource=dc:alternative, fieldtarget=shortjournal] - \step[fieldsource=dcterms:abstract, fieldtarget=abstract] - \step[fieldsource=dc:type, fieldtarget=type] - \step[fieldsource=z:shortTitle, fieldtarget=shorttitle] - \step[fieldsource=z:bookTitle, fieldtarget=booktitle] - \step[fieldsource=prism:number, fieldtarget=number] - \step[fieldsource=z:patentNumber, fieldtarget=number] - \step[fieldsource=z:codeNumber, fieldtarget=number] - \step[fieldsource=z:reportNumber, fieldtarget=number] - \step[fieldsource=z:billNumber, fieldtarget=number] - \step[fieldsource=z:documentNumber, fieldtarget=number] - \step[fieldsource=z:publicLawNumber, fieldtarget=number] - \step[fieldsource=z:applicationNumber, fieldtarget=number] - \step[fieldsource=z:episodeNumber, fieldtarget=number] - \step[fieldsource=dc:coverage, fieldtarget=location] - \step[fieldsource=z:university, fieldtarget=institution] - \step[fieldsource=z:language, fieldtarget=language] - \step[fieldsource=z:version, fieldtarget=version] - \step[fieldsource=z:libraryCatalog, fieldtarget=library] - \step[fieldsource=dcterms:isPartOf, fieldtarget=BIBERCUSTOMpartof] - \step[fieldsource=dc:identifier, fieldtarget=BIBERCUSTOMidentifier] - \step[fieldsource=dc:publisher, fieldtarget=BIBERCUSTOMpublisher] - \step[fieldsource=dc:presentedAt, fieldtarget=BIBERCUSTOMpresentedat] - \step[fieldsource=dc:subject, fieldtarget=BIBERCUSTOMsubject] - \step[fieldsource={dcterms:BIBERCUSTOMpartof/bib:Journal}, - fieldtarget={dcterms:BIBERCUSTOMpartof/periodical}] - \step[fieldsource={dcterms:BIBERCUSTOMpartof/bib:Book}, - fieldtarget={dcterms:BIBERCUSTOMpartof/book}] - \step[fieldsource={dcterms:BIBERCUSTOMpartof/bib:ConferenceProceedings}, - fieldtarget={dcterms:BIBERCUSTOMpartof/proceedings}] - } -} % ------------------------------------------------------------------ % META-FIELDS @@ -1360,6 +1199,24 @@ % SORTING % ------------------------------------------------------------------ +\DeclareSortingNamekeyScheme{ + \keypart{ + \namepart[use=true]{prefix} + } + \keypart{ + \namepart{family} + } + \keypart{ + \namepart{given} + } + \keypart{ + \namepart{suffix} + } + \keypart{ + \namepart[use=false]{prefix} + } +} + \DeclarePresort{mm} \DeclareSortingScheme{shorthand}{ diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex_.sty index 75d6b1a3372..0bc186ad0f0 100644 --- a/Master/texmf-dist/tex/latex/biblatex/biblatex2.sty +++ b/Master/texmf-dist/tex/latex/biblatex/biblatex_.sty @@ -1,4 +1,5 @@ % Copyright (c) 2006-2011 Philipp Lehman. +% 2012-2016 Philip Kime, Audrey Boruvka, Joseph Wright % % Permission is granted to copy, distribute and/or modify this % software under the terms of the LaTeX Project Public License @@ -10,7 +11,7 @@ % particular purpose. \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{biblatex2} +\ProvidesPackage{biblatex_} [\abx@date\space v\abx@version\space programmable bibliographies (biber) (PK/JW/AB)] %% Dependencies @@ -31,6 +32,12 @@ This is a fatal error. I'm aborting now.}% \endinput} +% Tests for emptiness, regardless whether the arg is macro or literal +% Expand everything and test as string +\def\ifempty#1{% + \edef\z{#1}% + \expandafter\ifblank\expandafter{\z}} + %% Category codes \def\blx@docatcodes{% @@ -475,8 +482,8 @@ \newtoggle{blx@loadfiles} \newtoggle{blx@singletitle} \newtoggle{blx@terseinits} -\newtoggle{blx@firstinits} -\newtoggle{blx@sortfirstinits} +\newtoggle{blx@giveninits} +\newtoggle{blx@sortgiveninits} \newtoggle{blx@useprefix} \newtoggle{blx@addset} \newtoggle{blx@setonly} @@ -506,14 +513,14 @@ \dolistcsloop{abx@rnames}% } -% Option scope trackers for passing to .bcf -\global\let\blx@globalopts\@empty -\global\let\blx@typeopts\@empty -\global\let\blx@entryopts\@empty +% Used to track sorting name key specifications +\global\let\blx@biber@sortingnamekeyspecs\@empty % Initialise some lists which track changing citations/sortschemes % etc. between runs \global\let\blx@cites\@empty +\global\let\blx@sortnamekeyschemes\@empty +\global\let\blx@lastsortnamekeyschemes\@empty \global\let\blx@sortschemes\@empty \global\let\blx@lastsortschemes\@empty \global\let\blx@biblists\@empty @@ -532,18 +539,10 @@ \do\blx@onlypreamble} %% Initialization - \def\blx@blxinit{% \let\blx@blxinit\relax \blx@initunit} -\newcommand*{\labelalphaothers}{+} -\newcommand*{\sortalphaothers}{\labelalphaothers} -\listadd\blx@globalopts{alphaothers}% for passing to the .bcf -\listadd\blx@typeopts{alphaothers}% for passing to the .bcf -\listadd\blx@globalopts{sortalphaothers}% for passing to the .bcf -\listadd\blx@typeopts{sortalphaothers}% for passing to the .bcf - \def\blx@secinit{% \csgdef{blx@sections@\the\c@refsection}{true}% just to say we have a section for tests later \ifcsundef{blx@bsee@\the\c@refsection} @@ -769,7 +768,6 @@ \edef\blx@ver@bcf{% \detokenize{<bcf:controlfile version="}\blx@bcfversion \detokenize{" xmlns:bcf="https://sourceforge.net/projects/biblatex">}} -\listadd\blx@globalopts{controlversion}% for passing to the .bcf % {<true>}{<false>} \newrobustcmd*{\lbx@ifutfinput}{\ifboolexpr{% @@ -966,6 +964,9 @@ \def\blx@warn@conflopt#1{% \blx@warning{Conflicting options.\MessageBreak#1}} +\def\blx@warn@badoptdt#1{% + \blx@warning{Invalid option datatype '#1'.\MessageBreak Defaulting to 'boolean'}} + \def\blx@warn@depropt#1{% \blx@warning{Deprecated option.\MessageBreak Ignoring '#1'}} @@ -995,7 +996,8 @@ \def\blx@msg@cundefon#1{% Citation '#1' on page \the\c@page\space undefined} -% Dummy as biblatex 2 is biber only. Some style may still use this though. +% Dummy as backend is biber by default. Some style may still use this to +% check though. \newrobustcmd*{\RequireBiber}[1][2]{} % \blx@list@active active aux files (basename) @@ -1741,56 +1743,6 @@ \expandafter\noexpand\csname blx@bbx@#2\endcsname}} \@onlypreamble\DeclareBibliographyAlias -% {<key>}[<value>]{<code>} -\newrobustcmd*{\DeclareBibliographyOption}[1]{% - \ifinlist{#1}\blx@globalopts - {} - {\listadd\blx@globalopts{#1}}% - \@ifnextchar[%] - {\blx@defbibopt{#1}} - {\blx@defbibopt{#1}[]}} - -\long\def\blx@defbibopt#1[#2]#3{% - \ifcsundef{KV@blx@opt@ldt@#1} - {\ifcsundef{KV@blx@opt@pre@#1} - {\ifblank{#2} - {\define@key{blx@opt@pre}{#1}{#3}} - {\define@key{blx@opt@pre}{#1}[#2]{#3}}} - {\blx@err@optdef{#1}}} - {\blx@err@optdef{#1}}} - -% {<key>}[<value>]{<code>} -\newrobustcmd*{\DeclareTypeOption}[1]{% - \ifinlist{#1}\blx@typeopts - {} - {\listadd\blx@typeopts{#1}}% - \@ifnextchar[%] - {\blx@deftypeopt{#1}} - {\blx@deftypeopt{#1}[]}} - -\long\def\blx@deftypeopt#1[#2]#3{% - \ifcsundef{KV@blx@opt@typ@#1} - {\ifblank{#2} - {\define@key{blx@opt@typ}{#1}{#3}} - {\define@key{blx@opt@typ}{#1}[#2]{#3}}} - {\blx@err@optdef{#1}}} - -% {<key>}[<value>]{<code>} -\newrobustcmd*{\DeclareEntryOption}[1]{% - \ifinlist{#1}\blx@entryopts - {} - {\listadd\blx@entryopts{#1}}% - \@ifnextchar[%] - {\blx@defentryopt{#1}} - {\blx@defentryopt{#1}[]}} - -\long\def\blx@defentryopt#1[#2]#3{% - \ifcsundef{KV@blx@opt@ent@#1} - {\ifblank{#2} - {\define@key{blx@opt@ent}{#1}{#3}} - {\define@key{blx@opt@ent}{#1}[#2]{#3}}} - {\blx@err@optdef{#1}}} - %% Auxiliary commands \newrobustcmd*{\citereset}{% \csuse{blx@hook@cbxinit}% @@ -1904,9 +1856,21 @@ % {<plainlist>} \def\blx@imc@thelist#1{\csuse{abx@list@#1}} +\def\blx@imc@strlist#1{% + \ifcsdef{abx@list@#1} + {\detokenize\expandafter\expandafter\expandafter + {\csname abx@list@#1\endcsname}} + {}} + % {<namelist>} \def\blx@imc@thename#1{\csuse{abx@name@#1}} +\def\blx@imc@strname#1{% + \ifcsdef{abx@name@#1} + {\detokenize\expandafter\expandafter\expandafter + {\csname abx@name@#1\endcsname}} + {}} + % {<field>} \protected\def\blx@imc@clearfield#1{% \csundef{abx@field@#1}} @@ -2015,11 +1979,12 @@ {\blx@ifnamesequal@iii#1% \blx@ifnamesequal@ii}} -\def\blx@ifnamesequal@iii#1#2#3#4#5#6#7#8#9{% +\def\blx@ifnamesequal@iii#1#2{% \setkeys{blx@opt@name}{#1}% + \setkeys{blx@opt@namepart}{#2}% \ifdef\abx@field@hash {\eappto\blx@tempa{{\abx@field@hash}}} - {\appto\blx@tempa{{{#2}{#4}{#6}{#8}}}}} + {\eappto\blx@tempa{{{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}}}}} % {<field>}{<macro>}{<true>}{<false>} \def\blx@imc@iffieldequals#1#2{% @@ -3164,7 +3129,7 @@ \global\toggletrue{blx@block}} \blx@regimcs{% - \ifdriver \thefield \strfield \csfield \usefield \thelist \thename + \ifdriver \thefield \strfield \csfield \usefield \thelist \strlist \thename \strname \clearfield \clearlist \clearname \restorefield \restorelist \restorename \ifcategory \ifentrycategory \ifkeyword \ifentrykeyword \ifciteseen \ifentryseen \ifentryinbib \ifciteibid \ifciteidem \ifopcit \ifloccit @@ -3190,7 +3155,8 @@ \def\iffootnote{\iftoggle{blx@footnote}}% \def\ifuseprefix{\iftoggle{blx@useprefix}}% \def\ifterseinits{\iftoggle{blx@terseinits}}% - \def\iffirstinits{\iftoggle{blx@firstinits}}% + \def\iffirstinits{\iftoggle{blx@giveninits}}% legacy name for \ifgiveninits + \def\ifgiveninits{\iftoggle{blx@giveninits}}% \def\ifsingletitle{\iftoggle{abx@bool@singletitle}}% \def\ifandothers#1{\iftoggle{abx@bool@more#1}}% \protected\def\pno{\bibstring{page}}% @@ -3467,6 +3433,7 @@ \@ifstar {\blx@defformat\blx@defnameformat{nfd}*} {\blx@defformat\blx@defnameformat{nfd}{}}} + \newrobustcmd*{\DeclareIndexNameFormat}{% \@ifstar {\blx@defformat\blx@defnameformat{nid}*} @@ -3519,7 +3486,7 @@ \long\def\blx@defformat@d##1} \def\blx@defnameformat{% - \long\def\blx@defformat@d##1##2##3##4##5##6##7##8} + \long\def\blx@defformat@d##1} \def\blx@resetformat#1#2{% \let\blx@saved@do\do @@ -3716,12 +3683,19 @@ \c@uniquelist\z@ \ifblank{#1} {} - {\setkeys{blx@opt@name}{#1}}% + {\setkeys{blx@opt@namelist}{#1}}% \def\blx@thedata{#2}} -\define@key{blx@opt@name}{uniquelist}{\c@uniquelist#1\relax} +% Per-namelist options +\define@key{blx@opt@namelist}{uniquelist}{\c@uniquelist#1\relax} +\define@key{blx@opt@namelist}{useprefix}{\settoggle{blx@useprefix}{#1}} +\define@key{blx@opt@namelist}{sortnamekeyscheme}{\def\blx@refcontext@sortingnamekey{#1}} + +% Per-name options \define@key{blx@opt@name}{uniquename}{\c@uniquename#1\relax} \define@key{blx@opt@name}{hash}{\edef\abx@field@hash{\detokenize{#1}}} +\define@key{blx@opt@name}{useprefix}{\settoggle{blx@useprefix}{#1}} +\define@key{blx@opt@name}{sortnamekeyscheme}{\def\blx@refcontext@sortingnamekey{#1}} \newrobustcmd*{\bibinitperiod}{\adddot} \newrobustcmd*{\bibinitdelim}{\addnbspace} @@ -3777,6 +3751,11 @@ \ifblank{#1} {} {\setkeys{blx@opt@name}{#1}}% + % reset all the nameparts to empty between names + \def\do##1{% + \cslet{namepart##1}\@empty + \cslet{namepart##1i}\@empty}% + \expandafter\docsvlist\expandafter{\blx@datamodel@constant@nameparts}% \blx@theformat} \long\def\blx@namebreak#1&{} @@ -5072,6 +5051,119 @@ % Override with user-defined data model if there is one \blx@inputonce{biblatex-dm.cfg}{biblatex custom data model}{}{}{}{} +% Initialise option datatypes lists +\global\let\blx@bcf@options@scope@global\@empty +\global\let\blx@bcf@options@scope@type\@empty +\global\let\blx@bcf@options@scope@entry\@empty +\global\let\blx@bcf@options@scope@namelist\@empty +\global\let\blx@bcf@options@scope@name\@empty +\global\let\blx@globalopts@datatypes\@empty +\global\let\blx@typeopts@datatypes\@empty +\global\let\blx@entryopts@datatypes\@empty +\global\let\blx@namelistopts@datatypes\@empty +\global\let\blx@nameopts@datatypes\@empty +\def\do#1{% + \global\cslet{blx@globalopts@#1}\@empty + \global\cslet{blx@typeopts@#1}\@empty + \global\cslet{blx@entryopts@#1}\@empty + \global\cslet{blx@namelistopts@#1}\@empty + \global\cslet{blx@nameopts@#1}\@empty} +\expandafter\expandafter\expandafter\docsvlist\expandafter\expandafter\expandafter{\csname blx@datamodel@constant@optiondatatypes\endcsname} + +% Helper for collecting options and datatypes +% {<datatype>}{<scope>}{<name>} +\def\blx@collectopts#1#2#3{% + \ifinlistcs{#1}{#2@datatypes} + {} + {\listcsgadd{#2@datatypes}{#1}}% + \ifinlistcs{#3}{#2@#1} + {} + {\listcsgadd{#2@#1}{#3}}} + +% useprefix namelist/name scope +\blx@collectopts{boolean}{blx@namelistopts}{useprefix}% for passing to bcf +\blx@collectopts{boolean}{blx@nameopts}{useprefix}% for passing to the .bcf + +% sortnamekeyscheme namelist/name scope +\blx@collectopts{string}{blx@namelistopts}{sortnamekeyscheme}% for passing to bcf +\blx@collectopts{string}{blx@nameopts}{sortnamekeyscheme}% for passing to the .bcf + +% Misc globalopts +\blx@collectopts{xml}{blx@globalopts}{datamodel}% for passing to the .bcf +\blx@collectopts{string}{blx@globalopts}{controlversion}% for passing to the .bcf + +\newcommand*{\labelalphaothers}{+} +\newcommand*{\sortalphaothers}{\labelalphaothers} +\blx@collectopts{string}{blx@globalopts}{alphaothers}% for passing to the .bcf +\blx@collectopts{string}{blx@typeopts}{alphaothers}% for passing to the .bcf +\blx@collectopts{string}{blx@globalopts}{sortalphaothers}% for passing to the .bcf +\blx@collectopts{string}{blx@typeopts}{sortalphaothers}% for passing to the .bcf + +% The Declare*Option macros are for options which need to be visible +% to biblatex. For options which only biber needs to see, they can be +% passed to the .bcf directly using \blx@collectopts +% [<datatype>]{<key>}[<value>]{<code>} +\newrobustcmd*{\DeclareBibliographyOption}[2][]{% + \ifblank{#1} + {\def\blx@tempa{boolean}} + {\ifcsundef{blx@globalopts@#1} + {\blx@warn@badoptdt{#1}% + \def\blx@tempa{boolean}} + {\def\blx@tempa{#1}}}% + \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@globalopts}{#2}% + \@ifnextchar[%] + {\blx@defbibopt{#2}} + {\blx@defbibopt{#2}[]}} + +\long\def\blx@defbibopt#1[#2]#3{% + \ifcsundef{KV@blx@opt@ldt@#1} + {\ifcsundef{KV@blx@opt@pre@#1} + {\ifblank{#2} + {\define@key{blx@opt@pre}{#1}{#3}} + {\define@key{blx@opt@pre}{#1}[#2]{#3}}} + {\blx@err@optdef{#1}}} + {\blx@err@optdef{#1}}} + +% [<datatype>]{<key>}[<value>]{<code>} +\newrobustcmd*{\DeclareTypeOption}[2][]{% + \ifblank{#1} + {\def\blx@tempa{boolean}} + {\ifcsundef{blx@typeopts@#1} + {\blx@warn@badoptdt{#1}% + \def\blx@tempa{boolean}} + {\def\blx@tempa{#1}}}% + \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@typeopts}{#2}% + \@ifnextchar[%] + {\blx@deftypeopt{#2}} + {\blx@deftypeopt{#2}[]}} + +\long\def\blx@deftypeopt#1[#2]#3{% + \ifcsundef{KV@blx@opt@typ@#1} + {\ifblank{#2} + {\define@key{blx@opt@typ}{#1}{#3}} + {\define@key{blx@opt@typ}{#1}[#2]{#3}}} + {\blx@err@optdef{#1}}} + +% [<datatype>]{<key>}[<value>]{<code>} +\newrobustcmd*{\DeclareEntryOption}[2][]{% + \ifblank{#1} + {\def\blx@tempa{boolean}} + {\ifcsundef{blx@entryopts@#1} + {\blx@warn@badoptdt{#1}% + \def\blx@tempa{boolean}} + {\def\blx@tempa{#1}}}% + \expandafter\blx@collectopts\expandafter{\blx@tempa}{blx@entryopts}{#2}% + \@ifnextchar[%] + {\blx@defentryopt{#2}} + {\blx@defentryopt{#2}[]}} + + \long\def\blx@defentryopt#1[#2]#3{% + \ifcsundef{KV@blx@opt@ent@#1} + {\ifblank{#2} + {\define@key{blx@opt@ent}{#1}{#3}} + {\define@key{blx@opt@ent}{#1}[#2]{#3}}} + {\blx@err@optdef{#1}}} + % These are internal fields which are not part of the data model but % which need to be dealt with along with data model fields in places \def\abx@dointernalfields{% @@ -5100,7 +5192,6 @@ \def\abx@dobooleans{% \do{singletitle}} - % Name toggles like \ifauthor etc. need to be dynamically created for all % name datatypes in the data model and we have to do this here after the % datamodel is available. Need to be careful about expansions here as these @@ -5124,9 +5215,9 @@ \appto\blx@blxinit{\appto\blx@TE@hook{\blx@nametogglesite}} % Define \ifuse<name> options scope for biber -\def\do#1{\listadd\blx@globalopts{use#1}% - \listadd\blx@typeopts{use#1}% - \listadd\blx@entryopts{use#1}} +\def\do#1{\blx@collectopts{boolean}{blx@globalopts}{use#1}% + \blx@collectopts{boolean}{blx@typeopts}{use#1}% + \blx@collectopts{boolean}{blx@entryopts}{use#1}} \dolistcsloop{blx@biber@datamodel@names} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -5442,11 +5533,11 @@ \unexpanded{#1}\ifblank{#2}{}{=\unexpanded{#2}}}}} \def\blx@ifdata#1{% - \ifcsdef{blx@data@\the\c@refsection @\blx@refcontext@sorting @#1}} + \ifcsdef{blx@data@\the\c@refsection @\blx@refcontext@context @#1}} \let\blx@imc@ifentryinbib\blx@ifdata \def\blx@getdata#1{% - \csuse{blx@data@\the\c@refsection @\blx@refcontext@sorting @#1}% + \csuse{blx@data@\the\c@refsection @\blx@refcontext@context @#1}% % Here we resolve label* bib fields to their real fields. Doing this here % dynamically means that we can vary the field chosen depending on the refcontext. % biber used to resolve these and materialise them in the .bbl but this @@ -5554,6 +5645,17 @@ \csgdef{blx@keyalias@\the\c@refsection @#1}{\detokenize{#2}}% \listcsgadd{blx@keyaliases@\the\c@refsection}{#1}} +% blx@slist@list@<section>@<scheme> - a list of list items in a scheme in a +% section (for tracking bibliography lists, +% obeys skipbiblist) +% blx@slist@entry@<section>@<scheme> - a list of normal entries in a scheme in a +% section (for tracking bibliographies, +% obeys skipbib) +% blx@slist@centry@<section>@<scheme> - a list of normal entries in a scheme in a +% section (for tracking citations, +% obeys skipbib). Same as @entry@ but +% with added set children + % {<entrykey>}{<entrytype>}{<options>} \protected\def\blx@bbl@entry#1#2#3{% \begingroup @@ -5561,7 +5663,7 @@ \blx@setoptions@type{#2}% \blx@bbl@options{#3}% \blx@setoptions@entry - \edef\blx@bbl@data{blx@data@\the\c@refsection @\blx@slist@scheme @\abx@field@entrykey}% + \edef\blx@bbl@data{blx@data@\the\c@refsection @\blx@slist@name @\abx@field@entrykey}% \csuse\blx@bbl@data \blx@bbl@addfield{entrykey}{\abx@field@entrykey}% \blx@bbl@addfield{entrytype}{#2}% @@ -5575,20 +5677,26 @@ {} {\blx@addpageref{\abx@field@entrykey}}% \nottoggle{blx@setonly} - {\listcsxadd{blx@slists@\the\c@refsection @entry@\blx@slist@scheme}{\abx@field@entrykey}} + {} {\global\toggletrue{blx@addset}% \toggletrue{blx@skipbib}% \toggletrue{blx@skipbiblist}% \toggletrue{blx@skiplab}}% \nottoggle{blx@skipbib} - {\listcsxadd{blx@slistsbib@\the\c@refsection @entry@\blx@slist@scheme}{\abx@field@entrykey}% - \listcsxadd{blx@type@\the\c@refsection @\abx@field@entrytype}{\abx@field@entrykey}% - \ifdef\abx@field@entrysubtype - {\listcsxadd{blx@subt@\the\c@refsection @\abx@field@entrysubtype}{\abx@field@entrykey}} - {}} + {\expandafter\ifstrequal\expandafter{\blx@slist@type}{entry} + {\listcsxadd{blx@slist@entry@\the\c@refsection @\blx@slist@name}{\abx@field@entrykey}% + \listcsxadd{blx@slist@centry@\the\c@refsection @\blx@slist@name}{\abx@field@entrykey}% + \listcsxadd{blx@type@\the\c@refsection @\abx@field@entrytype}{\abx@field@entrykey}% + \ifdef\abx@field@entrysubtype + {\listcsxadd{blx@subt@\the\c@refsection @\abx@field@entrysubtype}{\abx@field@entrykey}} + {}} + {}}% {}% \nottoggle{blx@skipbiblist} - {\blx@bbl@labelfields} + {\expandafter\ifstrequal\expandafter{\blx@slist@type}{list} + {\blx@bbl@labelfields + \listcsxadd{blx@slist@\blx@slist@type @\the\c@refsection @\blx@slist@name}{\abx@field@entrykey}} + {}}% {}% \nottoggle{blx@skiplab} {\iftoggle{blx@labelnumber} @@ -5612,20 +5720,22 @@ \blx@bbl@hooks \endgroup} -% This, at the end of the .bbl, puts any set parents into the -% current context sort list of citations as this is needed for the subentry citing +% This, at the end of the .bbl, puts any set parent children into the +% current context sort list of citations (a separate list *@centry@* to the +% bibliography *@entry@* which doesn't want the children adding if they weren't +% cited) as this is needed for the subentry citing % when sortcites is enabled as for sortcites, the current context sorting list % is used and the parent set of a subentry is not necessarily % available in the current context sortlist. \def\blx@addset{% \begingroup - \letcs\blx@tempa{blx@slists@\the\c@refsection @entry@\blx@refcontext@sorting}% - \global\cslet{blx@slists@\the\c@refsection @entry@\blx@refcontext@sorting}\@empty + \letcs\blx@tempa{blx@slist@centry@\the\c@refsection @\blx@refcontext@context}% + \global\cslet{blx@slist@centry@\the\c@refsection @\blx@refcontext@context}\@empty \forlistloop\blx@addset@i\blx@tempa \endgroup} \def\blx@addset@i#1{% - \listcsgadd{blx@slists@\the\c@refsection @entry@\blx@refcontext@sorting}{#1}% + \listcsgadd{blx@slist@centry@\the\c@refsection @\blx@refcontext@context}{#1}% \ifcsdef{blx@setp@\the\c@refsection @#1} {\expandafter\expandafter\expandafter\forcsvlist \expandafter\expandafter\expandafter\blx@addset@ii @@ -5634,7 +5744,7 @@ {}} \def\blx@addset@ii#1{% - \listcsgadd{blx@slists@\the\c@refsection @entry@\blx@refcontext@sorting}{#1}} + \listcsgadd{blx@slist@centry@\the\c@refsection @\blx@refcontext@context}{#1}} \def\blx@bbl@labelfields{% \def\do##1{% @@ -5671,12 +5781,12 @@ % in cite styles like numeric-comp will die. {\ifundef\abx@field@localnumber {\numdef\abx@field@localnumber{0}% - \blx@bbl@fielddef{labelnumber}{0}} + \blx@bbl@fielddef{labelnumber}{0}} {}} - {\csnumgdef{blx@labelnumber@\the\c@refsection @\blx@slist@scheme}{% - \csuse{blx@labelnumber@\the\c@refsection @\blx@slist@scheme}+1}% + {\csnumgdef{blx@labelnumber@\the\c@refsection @\blx@slist@name}{% + \csuse{blx@labelnumber@\the\c@refsection @\blx@slist@name}+1}% \edef\abx@field@localnumber{% - \csuse{blx@labelnumber@\the\c@refsection @\blx@slist@scheme}}% + \csuse{blx@labelnumber@\the\c@refsection @\blx@slist@name}}% \blx@bbl@fieldedef{labelnumber}{\abx@field@localnumber}}% \iftoggle{blx@skipbib} {} @@ -5809,6 +5919,11 @@ \protected\def\abx@aux@sortscheme#1{% \listgadd{\blx@lastsortschemes}{#1}} +% {<sortnamekeyschemename>} +% Get the saved information on which sorting name key schemes were mentioned last run +\protected\def\abx@aux@sortnamekeyscheme#1{% + \listgadd{\blx@lastsortnamekeyschemes}{#1}} + % {<sortschemename>} % Get the saved information on which shorthand sorting schemes were mentioned last run \protected\def\abx@aux@biblist#1{% @@ -5854,6 +5969,14 @@ {} {\blx@logreq@active{}}} {}% + % Test if we removed any mention of a sorting name key scheme since last run. + % If we did, we need to re-run biber + \def\do#1{\ifinlist{#1}{\blx@sortnamekeyschemes}{}{\blx@logreq@active{}}\relax}% + \dolistloop\blx@lastsortnamekeyschemes + % Test if we added any mention of a sorting name key scheme since last run + % If we did, we need to re-run biber + \def\do#1{\ifinlist{#1}{\blx@lastsortnamekeyschemes}{}{\blx@logreq@active{}}\relax}% + \dolistloop\blx@sortnamekeyschemes % Test if we removed any mention of a sorting scheme since last run. % If we did, we need to re-run biber \def\do#1{\ifinlist{#1}{\blx@sortschemes}{}{\blx@logreq@active{}}\relax}% @@ -5866,7 +5989,7 @@ % If we did, we need to re-run biber \def\do#1{\ifinlist{#1}{\blx@biblists}{}{\blx@logreq@active{}}\relax}% \dolistloop\blx@lastbiblists - % Test to see if we added any mention of a biblist sorting scheme since last run. + % Test to see if we added any mention of a biblist since last run. % If we did, we need to re-run biber \def\do#1{\ifinlist{#1}{\blx@lastbiblists}{}{\blx@logreq@active{}}\relax}% \dolistloop\blx@biblists @@ -5908,12 +6031,12 @@ test {\ifcsundef{blx@defer@\the\c@refsection @\abx@field@entrykey}} } {\iftoggle{blx@omitnumbers} {\let\abx@field@localnumber\@empty} - {\csnumgdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@sorting}{% - \csuse{blx@labelnumber@\the\c@refsection @\blx@refcontext@sorting}+1}% + {\csnumgdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@context}{% + \csuse{blx@labelnumber@\the\c@refsection @\blx@refcontext@context}+1}% \edef\abx@field@localnumber{% - \csuse{blx@labelnumber@\the\c@refsection @\blx@refcontext@sorting}}% + \csuse{blx@labelnumber@\the\c@refsection @\blx@refcontext@context}}% \blx@bbl@addentryfield{\abx@field@entrykey}{\the\c@refsection}% - {localnumber}{\blx@refcontext@sorting}{\abx@field@localnumber}}} + {localnumber}{\blx@refcontext@context}{\abx@field@localnumber}}} {}% % If localnumbers were already in the .aux, add them % again from the .aux. This prevents some cycling @@ -5927,7 +6050,7 @@ {\the\c@instcount}% {\abx@field@entrykey}% {\the\c@refsection}% - {\blx@refcontext@sorting}% + {\blx@refcontext@context}% {\abx@field@localnumber}}% % record that we have already generated and output localnum % for this key in this refsection @@ -5945,11 +6068,11 @@ {\edef\abx@field@prefixnumber{\expandonce\blx@prefixnumbers}% \ifundef\abx@field@prefixnumber {\blx@bbl@addentryfield{\abx@field@entrykey}{\the\c@refsection}% - {prefixnumber}{\blx@refcontext@sorting}{\expandonce\abx@field@prefixnumber}} + {prefixnumber}{\blx@refcontext@context}{\expandonce\abx@field@prefixnumber}} {}% \blx@auxwrite\@mainaux{}{% \string\blx@aux@numprefix{\abx@field@entrykey}% - {\the\c@refsection}{\blx@refcontext@sorting}{\expandonce\abx@field@prefixnumber}}} + {\the\c@refsection}{\blx@refcontext@context}{\expandonce\abx@field@prefixnumber}}} {}} {}} {}} @@ -5958,14 +6081,17 @@ \protected\def\blx@aux@numprefix#1#2#3#4{% \blx@bbl@addentryfield{\detokenize{#1}}{#2}{prefixnumber}{#3}{#4}} -% {<sortlistname>}{<sortlistsortscheme>} -\def\blx@bbl@slist#1#2{% +% {<sortlistname>} +\def\blx@bbl@slist[#1]#2{% \begingroup - \def\blx@slist@scheme{#2}% + \def\blx@slist@type{#1}% + \def\blx@slist@name{#2}} + % This macro (\key) will only be called in sortlists of type "list" - \def\key##1{\listcsxadd{blx@slistsbib@\the\c@refsection @#1@#2}{\detokenize{##1}}}} +% \def\key##1{\listcsxadd{blx@slists@\the\c@refsection @#1}{\detokenize{##1}}}} + \def\blx@bbl@endslist{% - \csnumgdef{blx@labelnumber@\the\c@refsection @\blx@slist@scheme}{0}% + \csnumgdef{blx@labelnumber@\the\c@refsection @\blx@slist@name}{0}% \endgroup} \def\blx@addpageref#1{% @@ -6383,10 +6509,10 @@ \define@key{blx@bib2}{resetnumbers}[true]{% \iftoggle{blx@defernumbers} {\ifstrequal{#1}{true} - {\csnumdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@sorting}{0}} + {\csnumdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@context}{0}} {\ifstrequal{#1}{false} {} - {\csnumdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@sorting}{#1-1}}}} + {\csnumdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@context}{#1-1}}}} {\blx@warning{% Option 'resetnumbers' requires 'defernumbers=true'.\MessageBreak Ignoring 'resetnumbers=true'}}} @@ -6403,7 +6529,7 @@ \define@key{blx@bib2}{prefixnumbers}{% \def\blx@prefixnumbers{#1}% \iftoggle{blx@defernumbers} - {\csnumdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@sorting}{0}} + {\csnumdef{blx@labelnumber@\the\c@refsection @\blx@refcontext@context}{0}} {\iftoggle{blx@labelnumber} {\blx@warning{% Option 'prefixnumbers' requires global\MessageBreak @@ -6454,35 +6580,32 @@ \csuse{blx@biber@sorting@\blx@refcontext@sorting}}}% default to context \edef\blx@tempe{\the\c@refsection}% default refsection is current \blx@safe@actives - % Add the sortscheme to the list of sortschemes - % so we can compare on next run - \xifinlist{\blx@refcontext@sorting}{\blx@sortschemes} - {} - {\listxadd\blx@sortschemes{\blx@refcontext@sorting}% - \blx@auxwrite\@mainaux{}{\string\abx@aux@sortscheme{\blx@refcontext@sorting}}}% - \edef\blx@tempd{% - \blx@xml@sorting{% - \ifcsdef{blx@sortdef@locale@\blx@refcontext@sorting} - { locale="\csuse{blx@sortdef@locale@\blx@refcontext@sorting}"} - {}}{% + % Add the sortscheme to the list of sortschemes + % so we can compare on next run + \xifinlist{\blx@refcontext@sorting}{\blx@sortschemes} + {} + {\listxadd\blx@sortschemes{\blx@refcontext@sorting}% + \blx@auxwrite\@mainaux{}{\string\abx@aux@sortscheme{\blx@refcontext@sorting}}}% + \edef\blx@tempd{% + \blx@xml@sorting{% + \ifcsdef{blx@sortdef@locale@\blx@refcontext@sorting} + { locale="\csuse{blx@sortdef@locale@\blx@refcontext@sorting}"} + {}}{% \csuse{blx@biber@sorting@\blx@refcontext@sorting}}}% \setkeys{blx@bib1}{#1}% Set section only, if present ... \blx@rest@actives - \ifcsvoid{blx@slistsbib@\blx@tempe @entry@\blx@refcontext@sorting} + \ifcsvoid{blx@slist@entry@\blx@tempe @\blx@refcontext@context} {} - {\letcs\blx@tempa{blx@slistsbib@\blx@tempe @entry@\blx@refcontext@sorting}}% - {\ifcsvoid{blx@sbib@\blx@tempe} - {} - {\letcs\blx@tempa{blx@sbib@\blx@tempe}}}% + {\letcs\blx@tempa{blx@slist@entry@\blx@tempe @\blx@refcontext@context}}% \blx@safe@actives - % Must reset omitnumbers as it's a global macro and if we don't, any + % Must reset omitnumbers as it's a global macro and if we don't, any % \printbibliography following one with this set will inherit any % previous "true" value \togglefalse{blx@omitnumbers}% \setkeys{blx@bib2}{#1}% ... now we have correct \blx@tempa, set rest of options \blx@rest@actives - \csxappto{blx@xml@slistsbib}{% - \blx@xml@slist{\blx@refcontext@sorting}{entry}{\blx@tempe}{\blx@refcontext@sorting}{\blx@tempd}{}}% + \csxappto{blx@biber@slists}{% + \blx@xml@slist{\blx@refcontext@context}{entry}{\blx@tempe}{\blx@refcontext@sorting}{\blx@refcontext@sortingnamekey}{\blx@tempd}{}}% \ifdefvoid\blx@tempa {\blx@warn@bibempty\endgroup} {\blx@bibliography\blx@tempa}} @@ -6512,11 +6635,11 @@ \blx@refsections} \def\blx@refsections{% - \ifcsvoid{blx@slistsbib@\the\c@refsection @entry@\blx@refcontext@sorting} + \ifcsvoid{blx@slist@entry@\the\c@refsection @\blx@refcontext@context} {} {\toggletrue{blx@tempa}% \begingroup - \expandafter\blx@bibliography\csname blx@slistsbib@\the\c@refsection @entry@\blx@refcontext@sorting\endcsname}% + \expandafter\blx@bibliography\csname blx@slist@entry@\the\c@refsection @\blx@refcontext@context\endcsname}% \ifnum\c@refsection<\blx@maxsection \advance\c@refsection\@ne \expandafter\blx@refsections @@ -6555,9 +6678,9 @@ {\toggletrue{blx@tempa}% \begingroup \let\blx@tempa\@empty - \ifcsvoid{blx@slistsbib@\the\c@refsection @entry@\blx@refcontext@sorting} + \ifcsvoid{blx@slist@entry@\the\c@refsection @\blx@refcontext@context} {} - {\letcs\blx@tempa{blx@slistsbib@\the\c@refsection @entry@\blx@refcontext@sorting}}% + {\letcs\blx@tempa{blx@slist@entry@\the\c@refsection @\blx@refcontext@context}}% \blx@filter\blx@tempa{blx@segm@\the\c@refsection @\the\c@refsegment}% \blx@bibliography\blx@tempa}% \ifnum\c@refsegment<\csname blx@maxsegment@\the\c@refsection\endcsname @@ -6600,9 +6723,9 @@ \begingroup \blx@key@heading{#1}% \let\blx@tempa\@empty - \ifcsvoid{blx@slistsbib@\the\c@refsection @entry@\blx@refcontext@sorting} + \ifcsvoid{blx@slist@entry@\the\c@refsection @\blx@refcontext@context} {} - {\letcs\blx@tempa{blx@slistsbib@\the\c@refsection @entry@\blx@refcontext@sorting}}% + {\letcs\blx@tempa{blx@slist@entry@\the\c@refsection @\blx@refcontext@context}}% \blx@filter\blx@tempa{blx@catg@#1}% \blx@bibliography\blx@tempa}}% @@ -6828,19 +6951,20 @@ \ifcsdef{blx@biber@sorting@#2} {#2} {\blx@refcontext@sorting}}% + % locally define this since we want to fetch data from the slist named + % after the list we are printing rather than the data in refcontext list + \edef\blx@refcontext@context{\blx@tempc/\blx@refcontext@sortingnamekey}% \edef\blx@tempd{% \blx@xml@sorting {\ifcsdef{blx@sortdef@locale@#2} { locale="\csuse{blx@sortdef@locale@#2}"} {}} - {\ifcsdef{blx@biber@sorting@#2} - {\csuse{blx@biber@sorting@#2}} - {\csuse{blx@biber@sorting@\blx@refcontext@sorting}}}}% + {\csuse{blx@biber@sorting@\blx@tempc}}}% \let\blx@printbibchecks\relax \edef\blx@tempe{\the\c@refsection}% default refsection is current \blx@safe@actives \blx@printbibchecks - % Add the sortscheme to the list of sortschemes for this biblist + % Add the sortscheme to the list of sortschemes for this biblist % so we can compare on next run \xifinlist{\blx@tempc}{\blx@biblists} {} @@ -6854,9 +6978,9 @@ \csuse{blx@biber@sorting@\blx@tempc}}}% \setkeys{blx@biblist1}{#1}% Set section only, if present ... \blx@rest@actives - \ifcsvoid{blx@slistsbib@\blx@tempe @#2@\blx@tempc} + \ifcsvoid{blx@slist@list@\blx@tempe @\blx@refcontext@context} {} - {\letcs\blx@tempa{blx@slistsbib@\blx@tempe @#2@\blx@tempc}}% + {\letcs\blx@tempa{blx@slist@list@\blx@tempe @\blx@refcontext@context}}% \blx@safe@actives \setkeys{blx@biblist2}{#1}% ... now we have correct \blx@tempa, set rest of options \ifundef\blx@bibcheck @@ -6865,8 +6989,8 @@ {}} {}% \blx@rest@actives - \csxappto{blx@xml@slistsbib}{% - \blx@xml@slist{#2}{list}{\blx@tempe}{\blx@tempc}{\blx@tempd}{\csuse{blx@biber@biblistfilters@#2}}}% + \csxappto{blx@biber@slists}{% + \blx@xml@slist{\blx@refcontext@context}{list}{\blx@tempe}{\blx@tempc}{\blx@refcontext@sortingnamekey}{\blx@tempd}{\csuse{blx@biber@biblistfilters@#2}}}% \ifdefvoid\blx@tempa {\blx@warn@biblistempty{#2}\endgroup} {\blx@biblist\blx@tempa}} @@ -6961,16 +7085,52 @@ \endrefcontext} {\toggletrue{blx@refcontext}% \setkeys{blx@refcontext}{#1}% + \xdef\blx@refcontext@context{\blx@refcontext@sorting/\blx@refcontext@sortingnamekey}% \ifcsundef{blx@biber@sorting@\blx@refcontext@sorting} {\blx@err@invopt{sorting=\blx@refcontext@sorting}{}} {}}} -% Reset to global sorting when we leave a ref context (since they can't be nested) +% Reset to global sorting etc. when we leave a ref context (since they can't be nested) \protected\def\endrefcontext{% \togglefalse{blx@refcontext}% - \xdef\blx@refcontext@sorting{\blx@sorting}} + \xdef\blx@refcontext@sorting{\blx@sorting}% + \gdef\blx@refcontext@sortingnamekey{global}% + \xdef\blx@refcontext@context{\blx@refcontext@sorting/\blx@refcontext@sortingnamekey}} \define@key{blx@refcontext}{sorting}{\gdef\blx@refcontext@sorting{#1}} +\define@key{blx@refcontext}{sortingnamekeyscheme}{\gdef\blx@refcontext@sortingnamekey{#1}} + +% [refcontext keys]{<keyword1>,<keyword2>,...} +\def\assignrefcontextkeyws[#1]#2{% + \edef\blx@tempa{\blx@sorting}% + \def\blx@tempb{global}% + \setkeys{blx@assignrefcontext}{#1}% + \def\do##1{% + \listxadd\blx@assignedrefcontextkeywlist{##1}% + \csxdef{blx@assignedrefcontextkeyws@\the\c@refsection @##1}{\blx@tempa/\blx@tempb}} + \docsvlist{#2}} + +% [refcontext keys]{<category1>,<category2>,...} +\def\assignrefcontextcats[#1]#2{% + \edef\blx@tempa{\blx@sorting}% + \def\blx@tempb{global}% + \setkeys{blx@assignrefcontext}{#1}% + \def\do##1{% + \listxadd\blx@assignedrefcontextcatlist{##1}% + \csxdef{blx@assignedrefcontextcats@\the\c@refsection @##1}{\blx@tempa/\blx@tempb}} + \docsvlist{#2}} + +% [refcontext keys]{<entrykey1>,<entrykey2>,...} +\def\assignrefcontextentries[#1]#2{% + \edef\blx@tempa{\blx@sorting}% + \def\blx@tempb{global}% + \setkeys{blx@assignrefcontext}{#1}% + \def\do##1{% + \csxdef{blx@assignedrefcontextkeys@\the\c@refsection @##1}{\blx@tempa/\blx@tempb}}% + \docsvlist{#2}} + +\define@key{blx@assignrefcontext}{sorting}{\def\blx@tempa{#1}} +\define@key{blx@assignrefcontext}{sortingnamekeyscheme}{\def\blx@tempb{#1}} % Reference sections \newrobustcmd*{\newrefsection}{% @@ -7451,8 +7611,8 @@ {\blx@bibreq{*}% \global\csletcs {blx@segm@\the\c@refsection @\the\c@refsegment} - {blx@slists@\the\c@refsection @entry@\blx@refcontext@sorting}% - \ifcsvoid{blx@slists@\the\c@refsection @entry@\blx@refcontext@sorting} + {blx@slist@entry@\the\c@refsection @\blx@refcontext@context}% + \ifcsvoid{blx@slist@entry@\the\c@refsection @\blx@refcontext@context} {\blx@logreq@active{}} {}} {}} @@ -7526,7 +7686,7 @@ \multicitedelim \fi \fi - \letcs\blx@tempb{blx@slists@\the\c@refsection @entry@\blx@refcontext@sorting}% + \letcs\blx@tempb{blx@slist@centry@\the\c@refsection @\blx@refcontext@context}% \blx@thecitesort \edef\blx@tempa{\endgroup \c@citecount\z@ @@ -7564,8 +7724,32 @@ \expandafter\abx@missing\expandafter{\blx@realkey}% \advance\blx@tempcntb\@ne}} +% set refcontext for one citation key from auto-assign \assignrefcontext* +% macros, if any +% <entrykey> +\def\blx@getrefcontext#1{% + \let\blx@refcontext@context@saved\blx@refcontext@context + \ifdef\blx@assignedrefcontextkeywlist + {\def\do##1{% + \blx@imc@ifentrykeyword{#1}{##1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeyws@\the\c@refsection @##1}} + {}}% + \dolistloop\blx@assignedrefcontextkeywlist} + {}% + \ifdef\blx@assignedrefcontextcatlist + {\def\do##1{% + \blx@imc@ifentrycategory{#1}{##1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextcats@\the\c@refsection @##1}} + {}}% + \dolistloop\blx@assignedrefcontextcatlist} + {}% + \ifcsdef{blx@assignedrefcontextkeys@\the\c@refsection @#1} + {\letcs\blx@refcontext@context{blx@assignedrefcontextkeys@\the\c@refsection @#1}} + {}} + % {<entrykey>} \protected\def\blx@citeprint#1{% + \blx@getrefcontext{#1}% \advance\c@citecount\@ne \addtocounter{instcount}\@ne \ifnum\c@citecount=\@ne @@ -7602,7 +7786,8 @@ \blx@postcode \fi \blx@endlangcite - \endgroup} + \endgroup + \let\blx@refcontext@context\blx@refcontext@context@saved} % cite counter @@ -8672,7 +8857,8 @@ \def\iffootnote{\blx@TE{\iftoggle{blx@footnote}}}% \def\ifuseprefix{\blx@TE{\iftoggle{blx@useprefix}}}% \def\ifterseinits{\blx@TE{\iftoggle{blx@terseinits}}}% - \def\iffirstinits{\blx@TE{\iftoggle{blx@firstinits}}}% + \def\iffirstinits{\blx@TE{\iftoggle{blx@giveninits}}}% legacy name for \ifgiveninits + \def\ifgiveninits{\blx@TE{\iftoggle{blx@giveninits}}}% \def\ifsingletitle{\blx@TE{\iftoggle{abx@bool@singletitle}}}% \def\ifandothers#1{\blx@TE{\iftoggle{abx@bool@more#1}}}}} @@ -9137,6 +9323,22 @@ \xdef\blx@xml@nolabelwidthcount#1{% ~~~~<bcf:nolabelwidthcount value="#1"/>\blx@nl} +\xdef\blx@xml@sortingnamekey#1#2{% + ~~<bcf:sortingnamekey keyscheme="#1">\blx@nl% + #2% + ~~</bcf:sortingnamekey>\blx@nl} + +\xdef\blx@xml@sortingnamekeykeypart#1#2{% + ~~~~<bcf:keypart#1>\blx@nl + #2% + ~~~~</bcf:keypart>\blx@nl} + +\xdef\blx@xml@sortingnamekeynamepart#1#2#3{% + ~~~~~~<bcf:part type="namepart"#1#2>#3</bcf:part>\blx@nl} + +\xdef\blx@xml@sortingnamekeyliteral#1#2{% + ~~~~~~<bcf:part type="literal"#1>#2</bcf:part>\blx@nl} + \xdef\blx@xml@sorting#1#2{% ~~<bcf:sorting#1>\blx@nl% #2% @@ -9162,10 +9364,10 @@ \xdef\blx@xml@endsection{% ~~</bcf:section>} -\xdef\blx@xml@slist#1#2#3#4#5#6{% - ~~<bcf:sortlist section="#3" name="#1" type="#2" sortscheme="#4">\blx@nl +\xdef\blx@xml@slist#1#2#3#4#5#6#7{% + ~~<bcf:sortlist section="#3" name="#1" type="#2" sortscheme="#4" sortnamekeyscheme="#5">\blx@nl + #7% #6% - #5% ~~</bcf:sortlist>\blx@nl} \xdef\blx@xml@slistfilterorbegin{% ~~~~<bcf:filteror>\blx@nl} @@ -9198,18 +9400,10 @@ ~~<bcf:optionscope type="#1">\blx@nl #2% ~~</bcf:optionscope>\blx@nl} -\xdef\blx@xml@option@scope#1{% - ~~~~<bcf:option>#1</bcf:option>\blx@nl} +\xdef\blx@xml@option@scope#1#2{% + ~~~~<bcf:option datatype="#1">#2</bcf:option>\blx@nl} \endgroup -\def\blx@bcf@options@scope{% - \blx@xml@options@scope{GLOBAL}{% - \forlistloop\blx@xml@option@scope\blx@globalopts}% - \blx@xml@options@scope{PER_TYPE}{% - \forlistloop\blx@xml@option@scope\blx@typeopts}% - \blx@xml@options@scope{PER_ENTRY}{% - \forlistloop\blx@xml@option@scope\blx@entryopts}} - \def\blx@bcf@options@global{% \blx@xml@comment{GLOBAL}% \blx@xml@options{biblatex}{global}{% @@ -9300,7 +9494,7 @@ \blx@xml@toggle{debug}% \blx@xml@svalue{mincrossrefs}{\blx@mincrossrefs}% \blx@xml@toggle{sortcase}% - \blx@xml@toggle{sortfirstinits}% + \blx@xml@toggle{sortgiveninits}% \blx@xml@toggle{sortupper}% }% \blx@xml@comment{BIBLATEX OPTIONS}% @@ -9323,36 +9517,76 @@ \dolistloop\blx@opts@type} {}% % options scope + % GLOBAL + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@global{\blx@xml@option@scope{##1}{####1}}}% + \dolistcsloop{blx@globalopts@##1}% + \endgroup}% + \dolistloop\blx@globalopts@datatypes + % ENTRYTYPE + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@type{\blx@xml@option@scope{##1}{####1}}}% + \dolistcsloop{blx@typeopts@##1}% + \endgroup}% + \dolistloop\blx@typeopts@datatypes + % ENTRY + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@entry{\blx@xml@option@scope{##1}{####1}}}% + \dolistcsloop{blx@entryopts@##1}% + \endgroup}% + \dolistloop\blx@entryopts@datatypes + % NAMELIST + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@namelist{\blx@xml@option@scope{##1}{####1}}}% + \dolistcsloop{blx@namelistopts@##1}% + \endgroup}% + \dolistloop\blx@entryopts@datatypes + % NAME + \def\do##1{% + \begingroup + \def\do####1{\xappto\blx@bcf@options@scope@name{\blx@xml@option@scope{##1}{####1}}}% + \dolistcsloop{blx@nameopts@##1}% + \endgroup}% + \dolistloop\blx@entryopts@datatypes + \eappto\blx@tempa{% \blx@xml@comment{BIBLATEX OPTION SCOPE}% - \blx@bcf@options@scope} + \blx@xml@options@scope{GLOBAL}{\blx@bcf@options@scope@global}% + \blx@xml@options@scope{ENTRYTYPE}{\blx@bcf@options@scope@type}% + \blx@xml@options@scope{ENTRY}{\blx@bcf@options@scope@entry}% + \blx@xml@options@scope{NAMELIST}{\blx@bcf@options@scope@namelist}% + \blx@xml@options@scope{NAME}{\blx@bcf@options@scope@name}} % sourcemap \ifbool{sourcemap} - {\eappto\blx@tempa{% + {\eappto\blx@tempa{% \blx@xml@comment{SOURCEMAP}% \blx@xml@sourcemap{% \ifcsdef{blx@biber@sourcemap@user} - {\csuse{blx@biber@sourcemap@user}} - {}% + {\csuse{blx@biber@sourcemap@user}} + {}% \ifcsdef{blx@biber@sourcemap@style} - {\csuse{blx@biber@sourcemap@style}} - {}% + {\csuse{blx@biber@sourcemap@style}} + {}% \ifcsdef{blx@biber@sourcemap@defaults@bibtex} - {\csuse{blx@biber@sourcemap@defaults@bibtex}} - {}% + {\csuse{blx@biber@sourcemap@defaults@bibtex}} + {}% \ifcsdef{blx@biber@sourcemap@defaults@biblatexml} - {\csuse{blx@biber@sourcemap@defaults@biblatexml}} - {}% + {\csuse{blx@biber@sourcemap@defaults@biblatexml}} + {}% \ifcsdef{blx@biber@sourcemap@defaults@endnotexml} - {\csuse{blx@biber@sourcemap@defaults@endnotexml}} - {}% + {\csuse{blx@biber@sourcemap@defaults@endnotexml}} + {}% \ifcsdef{blx@biber@sourcemap@defaults@ris} - {\csuse{blx@biber@sourcemap@defaults@ris}} - {}% + {\csuse{blx@biber@sourcemap@defaults@ris}} + {}% \ifcsdef{blx@biber@sourcemap@defaults@zoterordfxml} - {\csuse{blx@biber@sourcemap@defaults@zoterordfxml}} - {}}}} - {}% + {\csuse{blx@biber@sourcemap@defaults@zoterordfxml}} + {}}}} + {}% % labelalpha template \eappto\blx@tempa{% \blx@xml@comment{LABELALPHA TEMPLATE}}% @@ -9407,6 +9641,13 @@ }% }} {}% + % sortingnamekey + \eappto\blx@tempa{\blx@xml@comment{SORTING NAME KEY}}% + \def\do##1{% + \eappto\blx@tempa{% + \blx@xml@sortingnamekey{##1}{% + \csuse{blx@biber@sortingnamekey@##1}}}}% + \dolistloop\blx@biber@sortingnamekeyspecs % sorting \def\do##1{% \eappto\blx@bcf@presort{\csuse{blx@bcf@presort@##1}}% @@ -9424,6 +9665,9 @@ \eappto\blx@tempa{% \blx@xml@comment{DATA MODEL}% \blx@xml@datamodel{% + \blx@xml@datamodel@constants{% + \blx@bcf@datamodel@constants + }% \blx@xml@datamodel@entrytypes{% \blx@bcf@datamodel@entrytypes }% @@ -9450,7 +9694,7 @@ \AfterEndDocument{% \blx@auxwrite\blx@bcfout{}{% \blx@xml@endsection\blx@nl - \csuse{blx@xml@slistsbib}% + \csuse{blx@biber@slists}% \blx@xml@endfile}% \immediate\closeout\blx@bcfout}} @@ -9602,6 +9846,8 @@ \ifstrequal{#1}{true} {\appto\blx@tempm{ map\string_overwrite="1"}} {}} +\define@key{blx@sourcemap@map}{foreach}{% characters + \eappto\blx@tempm{ map\string_foreach="#1"}} \newcommand*{\blx@sourcemap@perdatasource}[1]{% \eappto\blx@tempe{% @@ -9652,6 +9898,12 @@ \ifstrequal{#1}{true} {\appto\blx@tempf{ map\string_entry\string_null="1"}} {}} +\define@key{blx@sourcemap@step}{entrynew}{% characters + \appto\blx@tempf{ map\string_entry\string_new="#1"}} +\define@key{blx@sourcemap@step}{entrynewtype}{% characters + \appto\blx@tempf{ map\string_entry\string_newtype="#1"}} +\define@key{blx@sourcemap@step}{entrytarget}{% characters + \appto\blx@tempf{ map\string_entrytarget="#1"}} \define@key{blx@sourcemap@step}{entryclone}{% characters \appto\blx@tempf{ map\string_entry\string_clone="#1"}} \define@key{blx@sourcemap@step}{origfield}[true]{% true|false @@ -9680,8 +9932,8 @@ {\blx@biber@latem{#2}{global}} {\forcsvlist{\blx@biber@latem{#2}}{#1}}} \@onlypreamble\DeclareLabelalphaTemplate -\listadd\blx@globalopts{labelalphatemplate}% for passing to the .bcf -\listadd\blx@typeopts{labelalphatemplate}% for passing to the .bcf +\blx@collectopts{xml}{blx@globalopts}{labelalphatemplate}% for passing to the .bcf +\blx@collectopts{xml}{blx@typeopts}{labelalphatemplate}% for passing to the .bcf \def\blx@biber@latem#1#2{% \begingroup @@ -9720,8 +9972,6 @@ \eappto\blx@tempb{% \blx@xml@labelalpha@part{\blx@tempc}{#2}}} -\define@key{blx@latem@field}{lang}{% - \appto\blx@tempc{ lang="#1"}} \define@key{blx@latem@field}{uppercase}[true]{% true|false \ifstrequal{#1}{true} {\appto\blx@tempc{ uppercase="1"}} @@ -9769,7 +10019,9 @@ \define@key{blx@latem@field}{ifnames}{% \eappto\blx@tempc{ ifnamecount="#1"}} \define@key{blx@latem@field}{names}{% - \eappto\blx@tempc{ namecount="#1"}} + \eappto\blx@tempc{ namerange="#1"}} +\define@key{blx@latem@field}{noalphaothers}[true]{% + \eappto\blx@tempc{ noalphaothers="1"}} \define@key{blx@latem@field}{padchar}{% \blx@xmlsanitizeafter{\def\blx@temps}{#1}% \eappto\blx@tempc{ pad\string_char="\expandafter\regexp\expandafter{\blx@temps}"}} @@ -9841,7 +10093,7 @@ \def\blx@inherit@ii#1#2{% \eappto\blx@tempa{\blx@xml@inherit@type{#1}{#2}{}}} -\listadd\blx@globalopts{inheritance}% for passing to the .bcf +\blx@collectopts{xml}{blx@globalopts}{inheritance}% for passing to the .bcf % [<options>]{<source>}{<target>} \newcommand*{\blx@inherit@field}[3][]{% @@ -9896,6 +10148,68 @@ \def\do#1{\DeclareBiblistFilter{#1}{\filter[type=field,filter=#1]}} \abx@dolabelfields +% [<specname>]{<spec>} +\newrobustcmd*{\DeclareSortingNamekeyScheme}[2][]{% + \begingroup + \ifblank{#1} + {\def\blx@biber@snkname{global}}% default + {\def\blx@biber@snkname{#1}}% + \let\namepart\blx@sortnk@namepart + \let\keypart\blx@sortnk@keypart + \let\literal\blx@sortnk@literal + \let\blx@tempa\@empty + \blx@tempcnta\z@ + #2% + \global\cslet{blx@biber@sortingnamekey@\blx@biber@snkname}\blx@tempa + \xifinlist{\blx@biber@snkname}{\blx@biber@sortingnamekeyspecs} + {} + {\listxadd\blx@biber@sortingnamekeyspecs{\blx@biber@snkname}}% + % Add the sortnamekeyscheme to the list of sortnamekeyschemes + % so we can compare on next run + \xifinlist{\blx@biber@snkname}{\blx@sortnamekeyschemes} + {} + {\listxadd\blx@sortnamekeyschemes{\blx@biber@snkname}}% + \endgroup} +\@onlypreamble\DeclareSortingNamekeyScheme +\blx@collectopts{xml}{blx@globalopts}{sortingnamekey}% for passing to the .bcf +\DeclareEntryOption[string]{sortnamekeyscheme}{% + \def\blx@refcontext@sortingnamekey{#1}} + +% User-mode macro for checking sorting name key scheme +\def\ifsortnamekeyscheme#1{% + \expandafter\ifstrequal\expandafter{\blx@refcontext@sortingnamekey}{#1}} + +\newcommand*{\blx@sortnk@keypart}[1]{% + \advance\blx@tempcnta\@ne + \blx@tempcntb\z@ + \edef\blx@tempd{ order="\the\blx@tempcnta"}% + \let\blx@tempb\@empty + #1% + \eappto\blx@tempa{% + \blx@xml@sortingnamekeykeypart{\blx@tempd}{\blx@tempb}}} + +\newcommand*{\blx@sortnk@literal}[1]{% + \advance\blx@tempcntb\@ne + \edef\blx@tempe{ order="\the\blx@tempcntb"}% + \let\blx@tempc\@empty + \eappto\blx@tempb{% + \blx@xml@sortingnamekeyliteral{\blx@tempe}{#1}}} + +\newcommand*{\blx@sortnk@namepart}[2][]{% + \advance\blx@tempcntb\@ne + \edef\blx@tempe{ order="\the\blx@tempcntb"}% + \let\blx@tempc\@empty + \ifblank{#1} + {} + {\setkeys{blx@sortnk@namepart}{#1}}% + \eappto\blx@tempb{% + \blx@xml@sortingnamekeynamepart{\blx@tempe}{\blx@tempc}{#2}}} + +\define@key{blx@sortnk@namepart}{use}[true]{% use* option for namepart true|false + \ifstrequal{#1}{true} + {\appto\blx@tempc{ use="1"}} + {\appto\blx@tempc{ use="0"}}} + % {<name>}{<spec>} \newrobustcmd*{\DeclareSortingScheme}[3][]{% \ifblank{#1} @@ -9915,7 +10229,7 @@ \global\cslet{blx@biber@sorting@#2}\blx@tempa \endgroup} \@onlypreamble\DeclareSortingScheme -\listadd\blx@globalopts{sortscheme}% for passing to the .bcf +\blx@collectopts{xml}{blx@globalopts}{sortscheme}% for passing to the .bcf \define@key{blx@sortdef@sorting}{locale}{% locale name \def\blx@templ{#1}} @@ -9961,11 +10275,6 @@ \eappto\blx@tempb{% \blx@xml@sortitem{\blx@tempd}{#2}}} -% script form - original | translated | romanised | uniform -\define@key{blx@sortdef@field}{form}{% - \appto\blx@tempd{ form="#1"}} -\define@key{blx@sortdef@field}{lang}{% - \appto\blx@tempd{ lang="#1"}} \define@key{blx@sortdef@field}{padside}{% left|right \ifstrequal{#1}{right} {\eappto\blx@tempd{ pad\string_side="right"}} @@ -10000,9 +10309,9 @@ {\forcsvlist\blx@undefpresort{#1}}}% \endgroup} \@onlypreamble\DeclarePresort -\listadd\blx@globalopts{presort}% for passing to the .bcf -\listadd\blx@typeopts{presort}% for passing to the .bcf -\listadd\blx@entryopts{presort}% for passing to the .bcf +\blx@collectopts{string}{blx@globalopts}{presort}% for passing to the .bcf +\blx@collectopts{string}{blx@typeopts}{presort}% for passing to the .bcf +\blx@collectopts{string}{blx@entryopts}{presort}% for passing to the .bcf \def\blx@defpresort#1#2{% \csxdef{blx@bcf@presort@#2}{\blx@xml@presort{#2}{#1}}} @@ -10011,7 +10320,7 @@ \newrobustcmd*{\DeclareSortExclusion}[2]{% \forcsvlist{\blx@sortexlude{#2}}{#1}} -\listadd\blx@typeopts{sortexclusion}% for passing to the .bcf +\blx@collectopts{xml}{blx@typeopts}{sortexclusion}% for passing to the .bcf \def\blx@sortexlude#1#2{% \begingroup @@ -10041,8 +10350,8 @@ #2% \endgroup} \@onlypreamble\DeclareLabelname -\listadd\blx@globalopts{labelnamespec}% for passing to the .bcf -\listadd\blx@typeopts{labelnamespec}% for passing to the .bcf +\blx@collectopts{xml}{blx@globalopts}{labelnamespec}% for passing to the .bcf +\blx@collectopts{xml}{blx@typeopts}{labelnamespec}% for passing to the .bcf \newrobustcmd*{\DeclareLabeltitle}[2][]{% \begingroup @@ -10057,8 +10366,8 @@ #2% \endgroup} \@onlypreamble\DeclareLabeltitle -\listadd\blx@globalopts{labeltitlespec}% for passing to the .bcf -\listadd\blx@typeopts{labeltitlespec}% for passing to the .bcf +\blx@collectopts{xml}{blx@globalopts}{labeltitlespec}% for passing to the .bcf +\blx@collectopts{xml}{blx@typeopts}{labeltitlespec}% for passing to the .bcf \newrobustcmd*{\DeclareLabelyear}[2][]{% \blx@warning@noline{% @@ -10078,8 +10387,8 @@ #2% \endgroup} \@onlypreamble\DeclareLabeldate -\listadd\blx@globalopts{labeldatespec}% for passing to the .bcf -\listadd\blx@typeopts{labeldatespec}% for passing to the .bcf +\blx@collectopts{xml}{blx@globalopts}{labeldatespec}% for passing to the .bcf +\blx@collectopts{xml}{blx@typeopts}{labeldatespec}% for passing to the .bcf \newcommand*{\blx@ordered@field}[2][]{% \let\blx@tempc\@empty @@ -10122,11 +10431,6 @@ \noexpand\blx@xml@ordered{\the\blx@tempcnta}{ type="string"}{#1}}}% \expandafter\docsvlist\expandafter{\blx@tempa}}} -\define@key{blx@ordered@field}{form}{% - \appto\blx@tempc{ form="#1"}} -\define@key{blx@ordered@field}{lang}{% - \appto\blx@tempc{ lang="#1"}} - %% Package options % [<entrytype,entrytype,...>]{<options>} @@ -10174,19 +10478,19 @@ % load-time and preamble -\DeclareBibliographyOption{backend}{ +\DeclareBibliographyOption[string]{backend}{ \blx@error {'backend' is load-time only option} {The 'backend' option is load-time only and cannot be\MessageBreak set after package loading}} -\DeclareBibliographyOption{debug}[true]{% +\DeclareBibliographyOption[boolean]{debug}[true]{% \settoggle{blx@debug}{#1}} -\DeclareBibliographyOption{loadfiles}[true]{% +\DeclareBibliographyOption[boolean]{loadfiles}[true]{% \settoggle{blx@loadfiles}{#1}} -\DeclareBibliographyOption{mincrossrefs}{% +\DeclareBibliographyOption[integer]{mincrossrefs}{% \ifnum#1<\z@ \def\blx@mincrossrefs{1}% \def\blx@minxrefs{1}% @@ -10196,12 +10500,12 @@ \fi} \def\blx@minxrefs{2} -\DeclareBibliographyOption{texencoding}{% +\DeclareBibliographyOption[string]{texencoding}{% \ifstrequal{#1}{auto} {\undef\blx@texencoding} {\def\blx@texencoding{#1}}} -\DeclareBibliographyOption{bibencoding}{% +\DeclareBibliographyOption[string]{bibencoding}{% \ifcsdef{blx@bibenc@#1} {\letcs\blx@bibencoding{blx@bibenc@#1}} {\def\blx@bibencoding{#1}}} @@ -10215,11 +10519,11 @@ \abx@mapinpenc{lutf8}{utf8} \abx@mapinpenc{x-ascii}{ascii} -\DeclareBibliographyOption{safeinputenc}[true]{% +\DeclareBibliographyOption[boolean]{safeinputenc}[true]{% \settoggle{blx@safeinputenc}{#1}} \newtoggle{blx@safeinputenc} -\DeclareBibliographyOption{sorting}{% +\DeclareBibliographyOption[string]{sorting}{% \def\blx@sorting{#1}% \def\blx@refcontext@sorting{#1}} @@ -10229,79 +10533,81 @@ {\blx@err@invopt{sorting=\blx@sorting}{}% \def\blx@sorting{nty}% \def\blx@refcontext@sorting{nty}}% - \listxadd\blx@sortschemes{\blx@sorting}} + \listxadd\blx@sortschemes{\blx@sorting}% + \def\blx@refcontext@sortingnamekey{global}% + \xdef\blx@refcontext@context{\blx@refcontext@sorting/\blx@refcontext@sortingnamekey}} -\DeclareBibliographyOption{sortcase}[true]{% +\DeclareBibliographyOption[boolean]{sortcase}[true]{% \settoggle{blx@sortcase}{#1}} -\DeclareBibliographyOption{sortupper}[true]{% +\DeclareBibliographyOption[boolean]{sortupper}[true]{% \settoggle{blx@sortupper}{#1}} -\DeclareBibliographyOption{sortlos}{% +\DeclareBibliographyOption[string]{sortlos}{% \blx@warning@noline{% sortlos option is deprecated, use 'sorting' option to \string\printbiblist}} -\DeclareBibliographyOption{maxnames}{% +\DeclareBibliographyOption[integer]{maxnames}{% \numdef\blx@maxcitenames{#1}% \numdef\blx@maxbibnames{#1}} -\DeclareBibliographyOption{minnames}{% +\DeclareBibliographyOption[integer]{minnames}{% \numdef\blx@mincitenames{#1}% \numdef\blx@minbibnames{#1}} -\DeclareTypeOption{maxnames}{% +\DeclareTypeOption[integer]{maxnames}{% \numdef\blx@maxcitenames@type{#1}% \numdef\blx@maxbibnames@type{#1}% \c@maxnames#1\relax} -\DeclareTypeOption{minnames}{% +\DeclareTypeOption[integer]{minnames}{% \numdef\blx@mincitenames@type{#1}% \numdef\blx@minbibnames@type{#1}% \c@minnames#1\relax} -\DeclareEntryOption{maxnames}{% +\DeclareEntryOption[integer]{maxnames}{% \c@maxnames#1\relax} -\DeclareEntryOption{minnames}{% +\DeclareEntryOption[integer]{minnames}{% \c@minnames#1\relax} -\DeclareBibliographyOption{maxbibnames}{% +\DeclareBibliographyOption[integer]{maxbibnames}{% \numdef\blx@maxbibnames{#1}} -\DeclareBibliographyOption{minbibnames}{% +\DeclareBibliographyOption[integer]{minbibnames}{% \numdef\blx@minbibnames{#1}} -\DeclareTypeOption{maxbibnames}{% +\DeclareTypeOption[integer]{maxbibnames}{% \numdef\blx@maxbibnames@type{#1}% \iftoggle{blx@bibliography} {\c@maxnames#1\relax} {}} -\DeclareTypeOption{minbibnames}{% +\DeclareTypeOption[integer]{minbibnames}{% \numdef\blx@minbibnames@type{#1}% \iftoggle{blx@bibliography} {\c@minnames#1\relax} {}} -\DeclareEntryOption{maxbibnames}{% +\DeclareEntryOption[integer]{maxbibnames}{% \iftoggle{blx@bibliography} {\c@maxnames#1\relax} {}} -\DeclareEntryOption{minbibnames}{% +\DeclareEntryOption[integer]{minbibnames}{% \iftoggle{blx@bibliography} {\c@minnames#1\relax} {}} -\DeclareBibliographyOption{maxcitenames}{% +\DeclareBibliographyOption[integer]{maxcitenames}{% \numdef\blx@maxcitenames{#1}} -\DeclareBibliographyOption{mincitenames}{% +\DeclareBibliographyOption[integer]{mincitenames}{% \numdef\blx@mincitenames{#1}} -\DeclareTypeOption{maxcitenames}{% +\DeclareTypeOption[integer]{maxcitenames}{% \numdef\blx@maxcitenames@type{#1}% \iftoggle{blx@bibliography} {} {\c@maxnames#1\relax}} -\DeclareTypeOption{mincitenames}{% +\DeclareTypeOption[integer]{mincitenames}{% \numdef\blx@mincitenames@type{#1}% \iftoggle{blx@bibliography} {} {\c@minnames#1\relax}} -\DeclareEntryOption{maxcitenames}{% +\DeclareEntryOption[integer]{maxcitenames}{% \iftoggle{blx@bibliography} {} {\c@maxnames#1\relax}} -\DeclareEntryOption{mincitenames}{% +\DeclareEntryOption[integer]{mincitenames}{% \iftoggle{blx@bibliography} {} {\c@minnames#1\relax}} @@ -10315,19 +10621,19 @@ \appto\blx@checkoptions@entry{% \blx@maxmin@cnt{maxnames}{minnames}\c@maxnames\c@minnames} -\DeclareBibliographyOption{maxitems}{% +\DeclareBibliographyOption[integer]{maxitems}{% \numdef\blx@maxitems{#1}} -\DeclareBibliographyOption{minitems}{% +\DeclareBibliographyOption[integer]{minitems}{% \numdef\blx@minitems{#1}} -\DeclareTypeOption{maxitems}{% +\DeclareTypeOption[integer]{maxitems}{% \numdef\blx@maxitems@type{#1}% \c@maxitems#1\relax} -\DeclareTypeOption{minitems}{% +\DeclareTypeOption[integer]{minitems}{% \numdef\blx@minitems@type{#1}% \c@minitems#1\relax} -\DeclareEntryOption{maxitems}{% +\DeclareEntryOption[integer]{maxitems}{% \c@maxitems#1\relax} -\DeclareEntryOption{minitems}{% +\DeclareEntryOption[integer]{minitems}{% \c@minitems#1\relax} \appto\blx@checkoptions@global{% @@ -10337,17 +10643,17 @@ \appto\blx@checkoptions@entry{% \blx@maxmin@cnt{maxitems}{minitems}\c@maxitems\blx@minitems} -\DeclareBibliographyOption{maxalphanames}{% +\DeclareBibliographyOption[integer]{maxalphanames}{% \numdef\blx@maxalphanames{#1}} -\DeclareBibliographyOption{minalphanames}{% +\DeclareBibliographyOption[integer]{minalphanames}{% \numdef\blx@minalphanames{#1}} -\DeclareTypeOption{maxalphanames}{% +\DeclareTypeOption[integer]{maxalphanames}{% \numdef\blx@maxalphanames{#1}} -\DeclareTypeOption{minalphanames}{% +\DeclareTypeOption[integer]{minalphanames}{% \numdef\blx@minalphanames{#1}} -\DeclareEntryOption{maxalphanames}{% +\DeclareEntryOption[integer]{maxalphanames}{% \numdef\blx@maxalphanames{#1}} -\DeclareEntryOption{minalphanames}{% +\DeclareEntryOption[integer]{minalphanames}{% \numdef\blx@minalphanames{#1}} \appto\blx@checkoptions@global{% @@ -10383,7 +10689,7 @@ #3=#4} {}} -\DeclareBibliographyOption{terseinits}[true]{% +\DeclareBibliographyOption[boolean]{terseinits}[true]{% \ifstrequal{#1}{true} {\toggletrue{blx@terseinits} \renewrobustcmd*{\bibinitperiod}{} @@ -10394,26 +10700,38 @@ \renewrobustcmd*{\bibinitdelim}{\addnbspace} \renewrobustcmd*{\bibinithyphendelim}{\adddot\mbox{-}}}} -\DeclareBibliographyOption{firstinits}[true]{% - \settoggle{blx@firstinits}{#1}} +% Legacy for giveninits +\DeclareBibliographyOption[boolean]{firstinits}[true]{% + \blx@warning@noline{% + 'firstinits' option is deprecated, use 'giveninits' instead}% + \settoggle{blx@giveninits}{#1}} + +% Legacy for sortgiveninits +\DeclareBibliographyOption[boolean]{sortfirstinits}[true]{% + \blx@warning@noline{% + 'sortfirstinits' option is deprecated, use 'sortgiveninits' instead}% + \settoggle{blx@sortgiveninits}{#1}} -\DeclareBibliographyOption{sortfirstinits}[true]{% - \settoggle{blx@sortfirstinits}{#1}} +\DeclareBibliographyOption[boolean]{giveninits}[true]{% + \settoggle{blx@giveninits}{#1}} -\DeclareBibliographyOption{abbreviate}[true]{% +\DeclareBibliographyOption[boolean]{sortgiveninits}[true]{% + \settoggle{blx@sortgiveninits}{#1}} + +\DeclareBibliographyOption[boolean]{abbreviate}[true]{% \ifstrequal{#1}{true} {\def\abx@str{abx@sstr}} {\def\abx@str{abx@lstr}}} -\DeclareBibliographyOption{dateabbrev}[true]{% +\DeclareBibliographyOption[boolean]{dateabbrev}[true]{% \ifstrequal{#1}{true} {\let\abx@bibmonth\blx@imc@bibsstring} {\let\abx@bibmonth\blx@imc@biblstring}} -\DeclareBibliographyOption{sortlocale}{% +\DeclareBibliographyOption[string]{sortlocale}{% \edef\blx@sortlocale{\detokenize{#1}}} -\DeclareBibliographyOption{language}{% +\DeclareBibliographyOption[string]{language}{% \togglefalse{blx@autolangbib}% \togglefalse{blx@autolangcite}% \ifboolexpr{ @@ -10442,15 +10760,15 @@ {Language '#1' not supported} {Failed to find a matching '#1.lbx' file}}}} -\DeclareBibliographyOption{clearlang}[true]{% +\DeclareBibliographyOption[boolean]{clearlang}[true]{% \settoggle{blx@clearlang}{#1}} -\DeclareBibliographyOption{babel}{% +\DeclareBibliographyOption[string]{babel}{% \blx@warning@noline{% 'babel' option is deprecated, use 'autolang' instead}% \blx@autolang@i{#1}} -\DeclareBibliographyOption{autolang}{% +\DeclareBibliographyOption[string]{autolang}{% \blx@autolang@i{#1}} \def\blx@autolang@i#1{% @@ -10481,11 +10799,11 @@ \def\blx@hook@initlang{\@quotereset\@ne}% \def\blx@hook@endlang{\blx@postpunct}} -\DeclareBibliographyOption{indexing}[true]{% +\DeclareBibliographyOption[boolean]{indexing}[true]{% \blx@opt@index{#1}} -\DeclareTypeOption{indexing}[true]{% +\DeclareTypeOption[boolean]{indexing}[true]{% \blx@opt@index{#1}} -\DeclareEntryOption{indexing}[true]{% +\DeclareEntryOption[boolean]{indexing}[true]{% \blx@opt@index{#1}} \def\blx@opt@index#1{% \ifcsdef{blx@opt@index@#1} @@ -10504,14 +10822,14 @@ \togglefalse{blx@citeindex}% \toggletrue{blx@bibindex}} -\DeclareBibliographyOption{sortcites}[true]{% +\DeclareBibliographyOption[boolean]{sortcites}[true]{% \ifstrequal{#1}{true} {\let\blx@thecitesort\blx@citesort \let\blx@thenotecheck\blx@notecheck} {\let\blx@thecitesort\blx@citenosort \let\blx@thenotecheck\relax}} -\DeclareBibliographyOption{hyperref}[true]{% +\DeclareBibliographyOption[boolean]{hyperref}[true]{% \ifcsdef{blx@opt@hyperref@#1} {\letcs\blx@hyperref{blx@opt@hyperref@#1}} {\blx@err@invopt{hyperref=#1}{}}} @@ -10519,7 +10837,7 @@ \def\blx@opt@hyperref@true{1} \def\blx@opt@hyperref@auto{2} -\DeclareBibliographyOption{backref}[true]{% +\DeclareBibliographyOption[boolean]{backref}[true]{% \ifstrequal{#1}{true} {\let\blx@backref\blx@addbackref \let\abx@aux@backref\blx@aux@backref @@ -10528,7 +10846,7 @@ \let\abx@aux@backref\@gobblefive \boolfalse{backtracker}}} -\DeclareBibliographyOption{backrefsetstyle}{% +\DeclareBibliographyOption[string]{backrefsetstyle}{% \ifcsdef{blx@opt@backrefsetstyle@#1} {\letcs\blx@backrefsetstyle{blx@opt@backrefsetstyle@#1}} {\blx@err@invopt{backrefsetstyle=#1}{}}} @@ -10553,7 +10871,7 @@ references. 'pageanchor=true' is required}% \fi} -\DeclareBibliographyOption{block}{% +\DeclareBibliographyOption[string]{block}{% \ifcsdef{blx@opt@block@#1} {\csuse{blx@opt@block@#1}} {\blx@err@invopt{block=#1}{}}} @@ -10578,7 +10896,7 @@ \def\newblockpunct{% \unspace\penalty-9\relax\space}} -\DeclareBibliographyOption{pagetracker}[true]{% +\DeclareBibliographyOption[boolean]{pagetracker}[true]{% \ifcsdef{blx@opt@pagetracker@#1} {\csuse{blx@opt@pagetracker@#1}} {\blx@err@invopt{pagetracker=#1}{}}} @@ -10611,7 +10929,7 @@ \blx@opt@pagetracker@page \fi} -\DeclareBibliographyOption{citecounter}[true]{% +\DeclareBibliographyOption[boolean]{citecounter}[true]{% \ifcsdef{blx@opt@citecounter@#1} {\csuse{blx@opt@citecounter@#1}} {\blx@err@invopt{citecounter=#1}{}}} @@ -10633,7 +10951,7 @@ \let\abx@aux@count\@gobbletwo \let\abx@aux@fncount\@gobbletwo} -\DeclareBibliographyOption{citetracker}[true]{% +\DeclareBibliographyOption[boolean]{citetracker}[true]{% \ifcsdef{blx@opt@citetracker@#1} {\csuse{blx@opt@citetracker@#1}} {\blx@err@invopt{citetracker=#1}{}}} @@ -10664,7 +10982,7 @@ \blx@ifcitesingle{\blx@citetracker@context}{}}% \booltrue{citetracker}} -\DeclareBibliographyOption{ibidtracker}[true]{% +\DeclareBibliographyOption[boolean]{ibidtracker}[true]{% \ifcsdef{blx@opt@ibidtracker@#1} {\csuse{blx@opt@ibidtracker@#1}} {\blx@err@invopt{ibidtracker=#1}{}}} @@ -10693,7 +11011,7 @@ \let\blx@ibidreset\blx@ibidreset@context \booltrue{citetracker}} -\DeclareBibliographyOption{idemtracker}[true]{% +\DeclareBibliographyOption[boolean]{idemtracker}[true]{% \ifcsdef{blx@opt@idemtracker@#1} {\csuse{blx@opt@idemtracker@#1}} {\blx@err@invopt{idemtracker=#1}{}}} @@ -10722,7 +11040,7 @@ \let\blx@idemreset\blx@idemreset@context \booltrue{citetracker}} -\DeclareBibliographyOption{opcittracker}[true]{% +\DeclareBibliographyOption[boolean]{opcittracker}[true]{% \ifcsdef{blx@opt@opcittracker@#1} {\csuse{blx@opt@opcittracker@#1}} {\blx@err@invopt{opcittracker=#1}{}}} @@ -10751,7 +11069,7 @@ \let\blx@opcitreset\blx@opcitreset@context \booltrue{citetracker}} -\DeclareBibliographyOption{loccittracker}[true]{% +\DeclareBibliographyOption[boolean]{loccittracker}[true]{% \ifcsdef{blx@opt@loccittracker@#1} {\csuse{blx@opt@loccittracker@#1}} {\blx@err@invopt{loccittracker=#1}{}}} @@ -10780,7 +11098,7 @@ \let\blx@loccitreset\blx@loccitreset@context \booltrue{citetracker}} -\DeclareBibliographyOption{parentracker}[true]{% +\DeclareBibliographyOption[boolean]{parentracker}[true]{% \ifstrequal{#1}{true} {\let\bibopenparen\blx@bibopenparen \let\bibcloseparen\blx@bibcloseparen @@ -10791,18 +11109,18 @@ \protected\def\bibopenbracket{\bibleftbracket}% \protected\def\bibclosebracket{\bibrightbracket}}} -\DeclareBibliographyOption{maxparens}{% +\DeclareBibliographyOption[integer]{maxparens}{% \ifnumless{#1}{1} {\blx@err@invopt{maxparens=#1}{}} {\setcounter{maxparens}{#1}}} -\DeclareBibliographyOption{date}{% +\DeclareBibliographyOption[string]{date}{% \ifcsdef{mkbibrange#1} {\protected\def\blx@imc@printdate{\csuse{mkbibrange#1}{}}% \protected\def\blx@imc@printdateextra{\csuse{mkbibrange#1extra}{}}} {\blx@err@invopt{date=#1}{}}} -\DeclareBibliographyOption{datelabel}{% +\DeclareBibliographyOption[string]{datelabel}{% \ifcsdef{mkbibrange#1} {\protected\def\blx@imc@printdatelabel{% \blx@imc@iffieldundef{year} @@ -10814,31 +11132,31 @@ {\csuse{mkbibrange#1extra}{}}}} {\blx@err@invopt{datelabel=#1}{}}} -\DeclareBibliographyOption{urldate}{% +\DeclareBibliographyOption[string]{urldate}{% \ifcsdef{mkbibrange#1} {\protected\def\blx@imc@printurldate{\csuse{mkbibrange#1}{url}}} {\blx@err@invopt{urldate=#1}{}}} -\DeclareBibliographyOption{eventdate}{% +\DeclareBibliographyOption[string]{eventdate}{% \ifcsdef{mkbibrange#1} {\protected\def\blx@imc@printeventdate{\csuse{mkbibrange#1}{event}}} {\blx@err@invopt{eventdate=#1}{}}} -\DeclareBibliographyOption{origdate}{% +\DeclareBibliographyOption[string]{origdate}{% \ifcsdef{mkbibrange#1} {\protected\def\blx@imc@printorigdate{\csuse{mkbibrange#1}{orig}}} {\blx@err@invopt{origdate=#1}{}}} -\DeclareBibliographyOption{alldates}{% +\DeclareBibliographyOption[string]{alldates}{% \ExecuteBibliographyOptions{% date=#1,datelabel=#1,urldate=#1,eventdate=#1,origdate=#1}} -\DeclareBibliographyOption{datezeros}[true]{% +\DeclareBibliographyOption[boolean]{datezeros}[true]{% \ifstrequal{#1}{true} {\let\blx@imc@mkdatezeros\@firstofone} {\let\blx@imc@mkdatezeros\blx@imc@stripzeros}} -\DeclareBibliographyOption{autocite}{% +\DeclareBibliographyOption[string]{autocite}{% \ifcsundef{blx@acite@#1} {\blx@error {Autocite command '#1' undefined} @@ -10847,7 +11165,7 @@ {\letcs\autocite{blx@acite@#1}% \letcs\autocites{blx@macite@#1}}} -\DeclareBibliographyOption{notetype}{% +\DeclareBibliographyOption[string]{notetype}{% \ifcsdef{blx@opt@notetype@#1} {\blx@notetype\csuse{blx@opt@notetype@#1}} {\blx@err@invopt{notetype=#1}{}}} @@ -10855,62 +11173,62 @@ \let\blx@opt@notetype@footonly\@ne \let\blx@opt@notetype@endonly\tw@ -\DeclareBibliographyOption{autopunct}[true]{% +\DeclareBibliographyOption[boolean]{autopunct}[true]{% \ifstrequal{#1}{true} {\DeclareAutoPunctuation{.,;:!?}} {\DeclareAutoPunctuation{}}} -\DeclareBibliographyOption{punctfont}[true]{% +\DeclareBibliographyOption[boolean]{punctfont}[true]{% \ifstrequal{#1}{true} {\let\blx@ifpuncthook\@firstoftwo} {\let\blx@ifpuncthook\@secondoftwo}} -\DeclareBibliographyOption{labelnumber}[true]{% +\DeclareBibliographyOption[boolean]{labelnumber}[true]{% \settoggle{blx@labelnumber}{#1}% \iftoggle{blx@labelnumber} {} {\setkeys{blx@opt@pre}{defernumbers=false}}} -\DeclareTypeOption{labelnumber}[true]{% +\DeclareTypeOption[boolean]{labelnumber}[true]{% \settoggle{blx@labelnumber}{#1}} -\DeclareBibliographyOption{labelalpha}[true]{% +\DeclareBibliographyOption[boolean]{labelalpha}[true]{% \settoggle{blx@labelalpha}{#1}} -\DeclareTypeOption{labelalpha}[true]{% +\DeclareTypeOption[boolean]{labelalpha}[true]{% \settoggle{blx@labelalpha}{#1}} -\DeclareBibliographyOption{labeltitle}[true]{% +\DeclareBibliographyOption[boolean]{labeltitle}[true]{% \settoggle{blx@labeltitle}{#1}} -\DeclareTypeOption{labeltitle}[true]{% +\DeclareTypeOption[boolean]{labeltitle}[true]{% \settoggle{blx@labeltitle}{#1}} -\DeclareBibliographyOption{labeltitleyear}[true]{% +\DeclareBibliographyOption[boolean]{labeltitleyear}[true]{% \settoggle{blx@labeltitleyear}{#1}} -\DeclareTypeOption{labeltitleyear}[true]{% +\DeclareTypeOption[boolean]{labeltitleyear}[true]{% \settoggle{blx@labeltitleyear}{#1}} -\DeclareBibliographyOption{labeldate}[true]{% +\DeclareBibliographyOption[boolean]{labeldate}[true]{% \settoggle{blx@labeldate}{#1}} -\DeclareTypeOption{labeldate}[true]{% +\DeclareTypeOption[boolean]{labeldate}[true]{% \settoggle{blx@labeldate}{#1}} -\DeclareBibliographyOption{labelyear}[true]{% +\DeclareBibliographyOption[boolean]{labelyear}[true]{% \blx@warning@noline{% 'labelyear' option is deprecated, use 'labeldate' instead}% \settoggle{blx@labeldate}{#1}} -\DeclareTypeOption{labelyear}[true]{% +\DeclareTypeOption[boolean]{labelyear}[true]{% \blx@warning@noline{% 'labelyear' option is deprecated, use 'labeldate' instead}% \settoggle{blx@labeldate}{#1}} -\DeclareBibliographyOption{uniquelist}[true]{% +\DeclareBibliographyOption[boolean]{uniquelist}[true]{% \ifcsdef{blx@opt@uniquelist@#1} {\letcs\blx@uniquelist{blx@opt@uniquelist@#1}} {\blx@err@invopt{uniquelist=#1}{}}} -\DeclareTypeOption{uniquelist}[true]{% +\DeclareTypeOption[boolean]{uniquelist}[true]{% \ifcsdef{blx@opt@uniquelist@#1} {\letcs\blx@uniquelist{blx@opt@uniquelist@#1}} {\blx@err@invopt{uniquelist=#1}{}}} -\DeclareEntryOption{uniquelist}[true]{% +\DeclareEntryOption[boolean]{uniquelist}[true]{% \ifcsdef{blx@opt@uniquelist@#1} {\letcs\blx@uniquelist{blx@opt@uniquelist@#1}} {\blx@err@invopt{uniquelist=#1}{}}} @@ -10918,15 +11236,15 @@ \def\blx@opt@uniquelist@true{1} \def\blx@opt@uniquelist@minyear{2} -\DeclareBibliographyOption{uniquename}[true]{% +\DeclareBibliographyOption[boolean]{uniquename}[true]{% \ifcsdef{blx@opt@uniquename@#1} {\letcs\blx@uniquename{blx@opt@uniquename@#1}} {\blx@err@invopt{uniquename=#1}{}}} -\DeclareTypeOption{uniquename}[true]{% +\DeclareTypeOption[boolean]{uniquename}[true]{% \ifcsdef{blx@opt@uniquename@#1} {\letcs\blx@uniquename{blx@opt@uniquename@#1}} {\blx@err@invopt{uniquename=#1}{}}} -\DeclareEntryOption{uniquename}[true]{% +\DeclareEntryOption[boolean]{uniquename}[true]{% \ifcsdef{blx@opt@uniquename@#1} {\letcs\blx@uniquename{blx@opt@uniquename@#1}} {\blx@err@invopt{uniquename=#1}{}}} @@ -10939,12 +11257,12 @@ \def\blx@opt@uniquename@mininit{5} \def\blx@opt@uniquename@minfull{6} -\DeclareBibliographyOption{singletitle}[true]{% +\DeclareBibliographyOption[boolean]{singletitle}[true]{% \settoggle{blx@singletitle}{#1}} -\DeclareTypeOption{singletitle}[true]{% +\DeclareTypeOption[boolean]{singletitle}[true]{% \settoggle{blx@singletitle}{#1}} -\DeclareBibliographyOption{defernumbers}[true]{% +\DeclareBibliographyOption[boolean]{defernumbers}[true]{% \settoggle{blx@defernumbers}{#1}% \iftoggle{blx@defernumbers} {\setkeys{blx@opt@pre}{labelnumber}% @@ -10953,7 +11271,7 @@ {\let\blx@thelabelnumber\relax \let\abx@aux@number\@gobblefive}} -\DeclareBibliographyOption{refsection}{% +\DeclareBibliographyOption[string]{refsection}{% \ifcsdef{blx@opt@refsection@#1} {\letcs\blx@refsecreset@level{blx@opt@refsection@#1}} {\blx@err@invopt{refsection=#1}{}}} @@ -10975,7 +11293,7 @@ \blx@refpatch@sect{subsection}{\newrefsection}{2}% \fi} -\DeclareBibliographyOption{refsegment}{% +\DeclareBibliographyOption[string]{refsegment}{% \ifcsdef{blx@opt@refsegment@#1} {\letcs\blx@refsegreset@level{blx@opt@refsegment@#1}} {\blx@err@invopt{refsegment=#1}{}}} @@ -11007,7 +11325,7 @@ \blx@refpatch@sect{subsection}{\newrefsegment}{2}% \fi} -\DeclareBibliographyOption{citereset}{% +\DeclareBibliographyOption[string]{citereset}{% \ifcsdef{blx@opt@citereset@#1} {\letcs\blx@citereset@level{blx@opt@citereset@#1}} {\blx@err@invopt{citereset=#1}{}}} @@ -11029,58 +11347,58 @@ \blx@refpatch@sect{subsection}{\citereset\blx@inf@creset}{2}% \fi} -\DeclareBibliographyOption{bibwarn}[true]{% +\DeclareBibliographyOption[boolean]{bibwarn}[true]{% \ifstrequal{#1}{true} {\let\blx@bbl@thewarn\blx@bbl@warn} {\let\blx@bbl@thewarn\@gobble}} % Name field options \def\do#1{% - \DeclareBibliographyOption{use#1}[true]{% + \DeclareBibliographyOption[boolean]{use#1}[true]{% \settoggle{blx@use#1}{##1}} - \DeclareTypeOption{use#1}[true]{% + \DeclareTypeOption[boolean]{use#1}[true]{% \settoggle{blx@use#1}{##1}} - \DeclareEntryOption{use#1}[true]{% + \DeclareEntryOption[boolean]{use#1}[true]{% \settoggle{blx@use#1}{##1}}} \dolistcsloop{blx@biber@datamodel@names} % Entry options -\DeclareBibliographyOption{useprefix}[true]{% +\DeclareBibliographyOption[boolean]{useprefix}[true]{% \settoggle{blx@useprefix}{#1}} -\DeclareTypeOption{useprefix}[true]{% +\DeclareTypeOption[boolean]{useprefix}[true]{% \settoggle{blx@useprefix}{#1}} -\DeclareEntryOption{useprefix}[true]{% +\DeclareEntryOption[boolean]{useprefix}[true]{% \settoggle{blx@useprefix}{#1}} -\DeclareTypeOption{skipbib}[true]{% +\DeclareTypeOption[boolean]{skipbib}[true]{% \settoggle{blx@skipbib}{#1}} -\DeclareEntryOption{skipbib}[true]{% +\DeclareEntryOption[boolean]{skipbib}[true]{% \settoggle{blx@skipbib}{#1}} -\DeclareTypeOption{skiplos}{% +\DeclareTypeOption[boolean]{skiplos}{% \blx@warning@noline{% skiplos option is deprecated, use 'skipbiblist' instead}% \settoggle{blx@skipbiblist}{#1}} -\DeclareEntryOption{skiplos}{% +\DeclareEntryOption[boolean]{skiplos}{% \blx@warning@noline{% skiplos option is deprecated, use 'skipbiblist' instead}% \settoggle{blx@skipbiblist}{#1}} -\DeclareTypeOption{skipbiblist}[true]{% +\DeclareTypeOption[boolean]{skipbiblist}[true]{% \settoggle{blx@skipbiblist}{#1}} -\DeclareEntryOption{skipbiblist}[true]{% +\DeclareEntryOption[boolean]{skipbiblist}[true]{% \settoggle{blx@skipbiblist}{#1}} -\DeclareTypeOption{skiplab}[true]{% +\DeclareTypeOption[boolean]{skiplab}[true]{% \settoggle{blx@skiplab}{#1}} -\DeclareEntryOption{skiplab}[true]{% +\DeclareEntryOption[boolean]{skiplab}[true]{% \settoggle{blx@skiplab}{#1}} -\DeclareTypeOption{dataonly}[true]{% +\DeclareTypeOption[boolean]{dataonly}[true]{% \settoggle{blx@skipbib}{#1}% \settoggle{blx@skipbiblist}{#1}% \settoggle{blx@skiplab}{#1}} -\DeclareEntryOption{dataonly}[true]{% +\DeclareEntryOption[boolean]{dataonly}[true]{% \settoggle{blx@skipbib}{#1}% \settoggle{blx@skipbiblist}{#1}% \settoggle{blx@skiplab}{#1}} @@ -11139,7 +11457,7 @@ % Load citation and bibliography styles, configuration file -\blx@inputonce{biblatex.def}{generic definitions}{}{}{}{} +\blx@inputonce{biblatex_.def}{generic definitions}{}{}{}{} \iftoggle{blx@natbib} {\blx@inputonce{blx-natbib.def}{natbib compatibility}{}{}{}{}} {} @@ -11164,22 +11482,22 @@ \c@minnames\blx@mincitenames\relax \c@maxitems\blx@maxitems\relax \c@minitems\blx@minitems\relax - \iftoggle{blx@firstinits} + \iftoggle{blx@giveninits} {\ifnumequal\blx@uniquename\blx@opt@uniquename@full {\blx@warn@conflopt{% - 'firstinits' conflicts with 'uniquename=full'.\MessageBreak + 'giveninits' conflicts with 'uniquename=full'.\MessageBreak Setting 'uniquename=init'}% \setkeys{blx@opt@pre}{uniquename=init}} {}% \ifnumequal\blx@uniquename\blx@opt@uniquename@allfull {\blx@warn@conflopt{% - 'firstinits' conflicts with 'uniquename=allfull'.\MessageBreak + 'giveninits' conflicts with 'uniquename=allfull'.\MessageBreak Setting 'uniquename=allinit}% \setkeys{blx@opt@pre}{uniquename=allinit}} {}% \ifnumequal\blx@uniquename\blx@opt@uniquename@minfull {\blx@warn@conflopt{% - 'firstinits' conflicts with 'uniquename=minfull'.\MessageBreak + 'giveninits' conflicts with 'uniquename=minfull'.\MessageBreak Setting 'uniquename=mininit}% \setkeys{blx@opt@pre}{uniquename=mininit}} {}} @@ -11256,6 +11574,9 @@ \AtBeginDocument{% \blx@auxwrite\@mainaux{}{\string\abx@aux@sortscheme{\blx@sorting}}% + \def\do#1{% + \blx@auxwrite\@mainaux{}{\string\abx@aux@sortnamekeyscheme{#1}}} + \dolistloop\blx@sortnamekeyschemes \blx@checkencoding \if@filesw \blx@ctrlwrite@biber @@ -11277,6 +11598,7 @@ \renewcommand*{\DeclareDatamodelFields}[2][]{\blx@warn@dm{DeclareDatamodelFields}} \renewcommand*{\DeclareDatamodelEntryfields}[2][]{\blx@warn@dm{DeclareDatamodelEntryfields}} \renewcommand*{\DeclareDatamodelConstraints}[2][]{\blx@warn@dm{DeclareDatamodelConstraints}} + \renewcommand*{\DeclareDatamodelConstant}[3][]{\blx@warn@dm{DeclareDatamodelConstant}} \AtBeginDocument{% \let\do\undef \blx@dopreamblecmds diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex_legacy.def b/Master/texmf-dist/tex/latex/biblatex/biblatex_legacy.def new file mode 100644 index 00000000000..602e84205f1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/biblatex/biblatex_legacy.def @@ -0,0 +1,2262 @@ +% -*- mode: LaTeX -*- +\ProvidesFile{biblatex_legacy.def} + +% ------------------------------------------------------------------ +% FORMATTING COMMANDS +% ------------------------------------------------------------------ + +% Generic formatting commands and hooks +% ------------------------------------------------------------------ + +% Used in citations, bibliography and bibliography lists + +\newcommand*{\mkbibnamegiven}[1]{#1} +\newcommand*{\mkbibnamefirst}[1]{#1}% legacy alias +\newcommand*{\mkbibnamefamily}[1]{#1} +\newcommand*{\mkbibnamelast}[1]{#1}% legacy alias +\newcommand*{\mkbibnameprefix}[1]{#1} +\newcommand*{\mkbibnameaffix}[1]{#1} +\newcommand*{\bibellipsis}{[\textellipsis\unkern]\midsentence} + +% Delimiters used in citations, bibliography and bibliography lists + +\newcommand*{\multinamedelim}{\addcomma\space} +\newcommand*{\finalnamedelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + \addspace\bibstring{and}\space} +\newcommand*{\revsdnamedelim}{} +\newcommand*{\andothersdelim}{\addspace} + +\newcommand*{\multilistdelim}{\addcomma\space} +\newcommand*{\finallistdelim}{% + \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% + \addspace\bibstring{and}\space} +\newcommand*{\andmoredelim}{\addspace} + +% Used in citations + +\newcommand*{\multicitedelim}{\addsemicolon\space} +\newcommand*{\compcitedelim}{\addcomma\space} +\newcommand*{\supercitedelim}{\addcomma} +\newcommand*{\prenotedelim}{\addspace} +\newcommand*{\postnotedelim}{\addcomma\space} +\newcommand*{\extpostnotedelim}{\addspace} +\newcommand*{\nametitledelim}{\addcomma\space} +\newcommand*{\nameyeardelim}{\addspace} +\newcommand*{\nonameyeardelim}{\addspace} +\newcommand*{\volcitedelim}{\addcomma\space} +\newcommand*{\textcitedelim}{% + \iffinalcitedelim + {\ifnumgreater{\value{textcitetotal}}{2} + {\iftextcitepunct{\finalandsemicolon}{\finalandcomma}}{}% + \addspace\bibstring{and}} + {\iftextcitepunct{\addsemicolon}{\addcomma}}% + \space} + +% This is a provisional definition for \iffinalcitedelim{<true>}{<false>}, a +% test that should expand <true> if the next non-compact citation delimiter +% is the last one in the citation list printed by \textcite or \textcites. +\newcommand*{\iffinalcitedelim}{\@secondoftwo} + +% Expand <true> if the citation labels in the citation list printed by \textcite +% or \textcites contains the serial comma \finalandcomma +\newcommand*{\iftextcitepunct}{% + \ifboolexpr{ not test {\ifdefempty{\finalandsemicolon}} + and test {\ifnumgreater{\value{textcitemaxnames}}{2}} }} + +% Counters for the number of citation labels separated by non-compact delimiters +% in the citation list printed by \textcite or \textcites. Counter values should +% be managed by the citation style. +\newcounter{textcitecount} +\newcounter{textcitetotal} +\setcounter{textcitecount}{0} +\setcounter{textcitetotal}{0} + +% Counters for the maximum number of names among citation labels in the citation +% list printed by \textcite or \textcites. Counter value should be managed by +% the citation style. +\newcounter{textcitemaxnames} +\setcounter{textcitemaxnames}{0} + +% Used in the bibliography and bibliography lists + +\newcommand*{\newunitpunct}{\addperiod\space} +\newcommand*{\entrysetpunct}{\addsemicolon\space} +\newcommand*{\finentrypunct}{\addperiod} +\newcommand*{\labelnamepunct}{\newunitpunct} +\newcommand*{\subtitlepunct}{\newunitpunct} +\newcommand*{\intitlepunct}{\addcolon\space} +\newcommand*{\bibpagespunct}{\addcomma\space} +\newcommand*{\bibpagerefpunct}{\addspace} +\newcommand*{\revsdnamepunct}{\addcomma} +\newcommand*{\bibnamedash}{% + \ifdimless{\leftmargin}{0.75em} + {\mbox{\textemdash\space}} + {\makebox[\leftmargin][l]{% + \ifdimless{\leftmargin}{1.25em} + {\textendash} + {\textemdash}}}} +\newcommand*{\relatedpunct}{\addspace} +\newcommand*{\relateddelim}{\adddot\par\nobreak} +\newcommand{\mkrelatedstring}{\mainlang} + +% Used for indexing + +\newcommand*{\bibindexnamedelima}{ } +\newcommand*{\bibindexnamedelimb}{ } +\newcommand*{\bibindexnamedelimc}{ } +\newcommand*{\bibindexnamedelimd}{ } +\newcommand*{\bibindexnamedelimi}{ } +\newcommand*{\bibindexinitperiod}{.} +\newcommand*{\bibindexinitdelim}{ } +\newcommand*{\bibindexinithyphendelim}{.-} + +% \bibsetup is a generic hook controlling the (low-level) layout of +% the bibliography and bibliography lists. The default +% definition should work fine in most cases. + +\newcommand*{\bibsetup}{% + \interlinepenalty=5000\relax + \widowpenalty=10000\relax + \clubpenalty=10000\relax + \raggedbottom + \frenchspacing + \biburlsetup} + +% The penalties above are not specific to biblatex. These are +% low-level TeX features. \interlinepenalty is the penalty assigned +% to page breaks within a paragraph (i.e., in this case, a +% bibliography entry); \clubpenalty is an additional penalty +% assigned to page breaks after the first line of a paragraph; +% \widowpenalty is an additional penalty assigned to page breaks +% before the last line of a paragraph. Note that the value 10000 +% means 'infinite' as far as TeX is concerned. Setting a penalty to +% 10000 will unconditionally suppress the respective breakpoint. +% +% The net effect of the above settings is as follows. Breaking a +% bibliography entry across pages is discouraged, but not suppressed +% altogether. If a bibliography entry spans less than four lines, +% TeX will always keep it on one page. If it spans four or more +% lines, it may be broken across pages, provided that there are at +% least two lines on the page before and after the break. +% +% These penalties should normally be used in conjunction with +% \raggedbottom. If you don't like that and remove \raggedbottom +% from the definition of \bibsetup, make sure to provide some +% stretchability between bibliography entries by setting \bibitemsep +% to a suitable value, e.g.: +% +% \setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip} +% +% Using \frenchspacing in the bibliography is recommended. If you +% want more visual separation, try the package option 'block=space'. +% This will yield better results than \nonfrenchspacing. + +% \citesetup is a generic hook for citations. + +\newcommand*{\citesetup}{% + \biburlsetup} + +% Local setup for \url; see comments in url.sty for details. + +\newcounter{biburlnumpenalty} +\newcounter{biburlucpenalty} +\newcounter{biburllcpenalty} + +\newcommand*{\biburlsetup}{% + \Urlmuskip=0mu plus 3mu\relax + \mathchardef\UrlBigBreakPenalty=100\relax + \mathchardef\UrlBreakPenalty=200\relax + \def\UrlBigBreaks{\do\:\do\-}% + \def\UrlBreaks{% + \do\.\do\@\do\/\do\\\do\!\do\_\do\|\do\;\do\>\do\]\do\)\do\}% + \do\,\do\?\do\'\do\+\do\=\do\#\do\$\do\&\do\*\do\^\do\"}% + \ifnumgreater{\value{biburlnumpenalty}}{0} + {\def\do##1{\appto\UrlSpecials{\do##1{\mathchar`##1 \penalty\value{biburlnumpenalty}}}}% + \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0} + {}% + \ifnumgreater{\value{biburlucpenalty}}{0} + {\def\do##1{\appto\UrlSpecials{\do##1{\mathchar`##1 \penalty\value{biburlucpenalty}}}}% + \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J + \do\K\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T + \do\U\do\V\do\W\do\X\do\Y\do\Z} + {}% + \ifnumgreater{\value{biburllcpenalty}}{0} + {\def\do##1{\appto\UrlSpecials{\do##1{\mathchar`##1 \penalty\value{biburllcpenalty}}}}% + \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j + \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t + \do\u\do\v\do\w\do\x\do\y\do\z} + {}% + \let\do=\noexpand} + +% The above code allows linebreaks before numbers and letters. +% This is often the only way to break DOIs. It also allows breaks +% after hyphens and adjusts \Urlmuskip to add some stretchability +% to URLs. + +% The default font of the bibliography and the bibliography lists. +% We simply reset the current font to the global defaults. + +\newcommand*{\bibfont}{\normalfont\normalsize} + +% Some length registers which may be used to fine-tune the +% (high-level) layout of the bibliography. + +% Default \bibhang to 1em if \parindent is 0 for some reason +\setlength{\bibhang}{\ifnumequal{\parindent}{0}{1em}{\parindent}} +\setlength{\biblabelsep}{2\labelsep} +\setlength{\bibitemsep}{\itemsep} +\setlength{\bibnamesep}{0pt} +\setlength{\bibinitsep}{0pt} +\setlength{\bibparsep}{0pt} + +% Miscellaneous facilities +% ------------------------------------------------------------------ + +% The counter 'abbrvpenalty' holds the penalty used in short or +% abbreviated bibliography strings. For example, a linebreak in +% expressions such as "et al." or "ed. by" is unfortunate, but should +% still be possible to prevent overfull boxes. We use TeX's +% \hyphenpenalty (normally 50) as the default value. The idea is +% making TeX treat the whole expression as if it were a single, +% hyphenatable word as far as line-breaking is concerned. If you +% dislike such linebreaks, use a higher value. If you do not mind +% them at all, set this counter to zero. If you want to suppress them +% unconditionally, set it to 10000. +\defcounter{abbrvpenalty}{\hyphenpenalty} + +% The counter 'highnamepenalty' also holds a penalty affecting the +% line-breaking of names. This penalty is inserted between smaller +% chunks of a name, for example between the first and the middle +% name. The default value is \hyphenpenalty. If you dislike such +% linebreaks, use a higher value. If you do not mind them at all, +% set this counter to zero. If you prefer the traditional BibTeX +% behavior, set it to 10000. +\defcounter{highnamepenalty}{\hyphenpenalty} + +% The counter 'lownamepenalty' holds a penalty which affects the +% line-breaking of names. This penalty is inserted between larger +% chunks of a name, for example between the chunk consisting of all +% first names and the last name. The default value is half the +% \hyphenpenalty. If you dislike such linebreaks, use a higher +% value. If you do not mind them at all, set this counter to zero. +\defcounter{lownamepenalty}{\hyphenpenalty/2} + +% Note that default values assigned to the above counters are +% deliberately very low to prevent overfull boxes. This implies that +% you will hardly notice any effect on line-breaking if the text is +% set justified. If you set these counters to 10000 to suppress the +% respective breakpoints, you will notice their effect but you may +% also be confronted with overfull boxes. Keep in mind that +% line-breaking in the bibliography is often more difficult than in +% the body text and that you can not resort to rephrasing a +% sentence. In some cases it may be preferable to set the entire +% bibliography \raggedright (by modifying \bibsetup) to prevent +% suboptimal linebreaks. In this case, even the very low default +% penalties will make a visible difference. + +% File name prefixes for external abstracts and annotations +\newcommand*{\bibabstractprefix}{bibabstract-} +\newcommand*{\bibannotationprefix}{bibannotation-} + +% Print acronyms in small caps if possible +\newcommand*{\mkbibacro}[1]{% + \ifcsundef{\f@encoding/\f@family/\f@series/sc} + {#1} + {\textsc{\MakeLowercase{#1}}}} + +% ------------------------------------------------------------------ +% ADDITIONAL PACKAGE OPTIONS +% ------------------------------------------------------------------ + +% Style of compressed page ranges in back references + +\DeclareBibliographyOption[string]{backrefstyle}{% + \ifcsdef{abx@opt@pagerefstyle@#1} + {\letcs\abx@pagerefstyle{abx@opt@pagerefstyle@#1}} + {\PackageError{biblatex} + {Option 'backrefstyle=#1' invalid} + {The option you have supplied is invalid.\MessageBreak + See the biblatex manual for valid option keys + and possible values}}} +\newcommand*{\abx@pagerefstyle}{1} +\csdef{abx@opt@pagerefstyle@none}{-1} +\csdef{abx@opt@pagerefstyle@two}{0} +\csdef{abx@opt@pagerefstyle@three}{1} +\csdef{abx@opt@pagerefstyle@two+}{2} +\csdef{abx@opt@pagerefstyle@three+}{3} +\csdef{abx@opt@pagerefstyle@all+}{4} + +% arXiv path/format selector +% +% abs = abstract page +% ps = PostScript version +% pdf = PDF version +% format = format selector + +\DeclareBibliographyOption[string]{arxiv}{\def\abx@arxivpath{#1}} +\newcommand*{\abx@arxivpath}{abs} + +% ------------------------------------------------------------------ +% FIELD FORMATS (#1 is the value of the field) +% ------------------------------------------------------------------ + +% The fallback used by \printfield + +\DeclareFieldFormat{default}{#1} + +% The default used by \citefield + +\DeclareFieldFormat{citefield}{#1} + +% Used in citations + +\DeclareFieldFormat{citetitle}{\mkbibemph{#1}} +\DeclareFieldFormat + [article,inbook,incollection,inproceedings,patent,thesis,unpublished] + {citetitle}{\mkbibquote{#1\isdot}} +\DeclareFieldFormat + [suppbook,suppcollection,suppperiodical] + {citetitle}{#1} +% labelyear can be a localisation string to allow for "no date" etc. +\DeclareFieldFormat{labelyear}{% = the '1995' part in 'Jones 1995a' + \ifbibstring{#1}{\bibstring{#1}}{\stripzeros{#1}}} +\DeclareFieldFormat{extrayear}{% = the 'a' in 'Jones 1995a' + \iffieldnums{labelyear} + {\mknumalph{#1}} + {\mkbibparens{\mknumalph{#1}}}} +\DeclareFieldFormat{labelalpha}{#1}% = the 'Jon95' part of 'Jon95a' +\DeclareFieldFormat{extraalpha}{\mknumalph{#1}}% = the 'a' in 'Jon95a' +\DeclareFieldFormat{shorthand}{#1\isdot} +\DeclareFieldFormat{shorthandintro}{% + \ifcapital{\MakeCapital{#1}}{#1}\isdot} +% citation commands +\DeclareFieldFormat{prenote}{#1\isdot} +\DeclareFieldFormat{postnote}{\mkpageprefix[pagination]{#1}} +\DeclareFieldFormat{volcitevolume}{\bibstring{volume}\ppspace#1} +\DeclareFieldFormat{volcitepages}{\mkpageprefix[pagination]{#1}} +\DeclareFieldFormat{volcitenote}{\mkvolcitenote#1} +\newrobustcmd*{\mkvolcitenote}[2]{% + \printtext[volcitevolume]{#1}% + \ifblank{#2}{}{\volcitedelim\printtext[volcitepages]{#2}}} + +% multicite commands +\DeclareFieldFormat{multiprenote}{#1\isdot} +\DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination]{#1}} + +% Used by \citeurl + +\DeclareFieldFormat{citeurl}{\url{#1}} + +% Used in the bibliography and bibliography lists + +\DeclareFieldFormat{doi}{% + \mkbibacro{DOI}\addcolon\space + \ifhyperref + {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldFormat{edition}{% + \ifinteger{#1} + {\mkbibordedition{#1}~\bibstring{edition}} + {#1\isdot}} +\DeclareFieldFormat{eprint}{% + \iffieldundef{eprinttype} + {eprint} + {\thefield{eprinttype}}% + \addcolon\space + \ifhyperref + {\url{#1}} + {\nolinkurl{#1}}% + \iffieldundef{eprintclass} + {} + {\addspace\mkbibparens{\thefield{eprintclass}}}} +\DeclareFieldFormat{eprint:hdl}{% + HDL\addcolon\space + \ifhyperref + {\href{http://hdl.handle.net/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:HDL}{eprint:hdl} +\DeclareFieldFormat{eprint:arxiv}{% + arXiv\addcolon\space + \ifhyperref + {\href{http://arxiv.org/\abx@arxivpath/#1}{% + \nolinkurl{#1}% + \iffieldundef{eprintclass} + {} + {\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}} + {\nolinkurl{#1} + \iffieldundef{eprintclass} + {} + {\addspace\texttt{\mkbibbrackets{\thefield{eprintclass}}}}}} +\DeclareFieldAlias{eprint:arXiv}{eprint:arxiv} +\DeclareFieldFormat{eprint:jstor}{% + JSTOR\addcolon\space + \ifhyperref + {\href{http://www.jstor.org/stable/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:JSTOR}{eprint:jstor} +\DeclareFieldFormat{eprint:pubmed}{% + PMID\addcolon\space + \ifhyperref + {\href{http://www.ncbi.nlm.nih.gov/pubmed/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:PubMed}{eprint:pubmed} +\DeclareFieldFormat{eprint:googlebooks}{% + Google Books\addcolon\space + \ifhyperref + {\href{http://books.google.com/books?id=#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}} +\DeclareFieldAlias{eprint:Google Books}{eprint:googlebooks} +\DeclareFieldFormat{file}{\url{#1}} +\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space #1} +\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addcolon\space #1} +\DeclareFieldFormat{issn}{\mkbibacro{ISSN}\addcolon\space #1} +\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}} +\DeclareFieldFormat{issuetitle}{\mkbibemph{#1}} +\DeclareFieldFormat{maintitle}{\mkbibemph{#1}} +\DeclareFieldFormat{booktitle}{\mkbibemph{#1}} +\DeclareFieldFormat{chapter}{\bibstring{chapter}~#1} +\DeclareFieldFormat{month}{\mkbibmonth{#1}} +\DeclareFieldFormat{note}{#1\isdot} +\DeclareFieldFormat{number}{#1}% number in a series +\DeclareFieldFormat[article,periodical]{number}{#1}% number of a journal +\DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}} +\DeclareFieldFormat{pagetotal}{\mkpagetotal[bookpagination]{#1}} +\DeclareFieldFormat{part}{.#1}% physical part of a logical volume +\DeclareFieldFormat{series}{#1}% publication series +\DeclareFieldFormat[article,periodical]{series}{% series of a journal + \ifinteger{#1} + {\mkbibordseries{#1}~\bibstring{jourser}} + {\ifbibstring{#1}{\bibstring{#1}}{#1}}} +\DeclareFieldFormat{pubstate}{\ifbibstring{#1}{\bibstring{#1}}{#1}} +\DeclareFieldFormat{title}{\mkbibemph{#1}} +\DeclareFieldFormat + [article,inbook,incollection,inproceedings,patent,thesis,unpublished] + {title}{\mkbibquote{#1\isdot}} +\DeclareFieldFormat + [suppbook,suppcollection,suppperiodical] + {title}{#1} +\DeclareFieldFormat{type}{\ifbibstring{#1}{\bibstring{#1}}{#1}} +\DeclareFieldFormat{url}{\mkbibacro{URL}\addcolon\space\url{#1}} +\DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\space#1}} +\DeclareFieldFormat{version}{\bibstring{version}~#1} +\DeclareFieldFormat{volume}{\bibstring{volume}~#1}% volume of a book +\DeclareFieldFormat[article,periodical]{volume}{#1}% volume of a journal +\DeclareFieldFormat{volumes}{#1~\bibstring{volumes}} +\DeclareFieldFormat{related}{#1} +\DeclareFieldFormat{related:multivolume}{\par\nobreak#1} +\DeclareFieldFormat{related:origpubin}{\mkbibparens{#1}} +\DeclareFieldFormat{related:origpubas}{\mkbibparens{#1}} +\DeclareFieldFormat{relatedstring:default}{#1\printunit{\relatedpunct}} +\DeclareFieldFormat{relatedstring:reprintfrom}{#1\addspace} + +% Generic formats for \printtext and \printfield + +\DeclareFieldFormat{emph}{\mkbibemph{#1}} +\DeclareFieldFormat{bold}{\textbf{#1}} +\DeclareFieldFormat{smallcaps}{\textsc{#1}} +\DeclareFieldFormat{parens}{\mkbibparens{#1}} +\DeclareFieldFormat{brackets}{\mkbibbrackets{#1}} +\DeclareFieldFormat{bibhyperref}{\bibhyperref{#1}} +\DeclareFieldFormat{bibhyperlink}{\bibhyperlink{\thefield{entrykey}}{#1}} +\DeclareFieldFormat{bibhypertarget}{\bibhypertarget{\thefield{entrykey}}{#1}} +\DeclareFieldFormat{titlecase}{#1} +\DeclareFieldFormat{noformat}{#1} + +% ------------------------------------------------------------------ +% LITERAL LIST FORMATS (#1 is the current item) +% ------------------------------------------------------------------ + +% Formatting directives for literal lists +% ------------------------------------------------------------------ + +% The fallback used by \printlist + +\DeclareListFormat{default}{% + \usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}} + +% The default used by \citelist + +\DeclareListAlias{citelist}{default} + +% Used in the bibliography + +\DeclareListFormat{publisher}{% + \usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}} + +\DeclareListFormat{language}{% + \usebibmacro{list:delim}{% + \ifbibstring{#1} + {\bibxstring{#1}} + {\ifbibstring{lang#1} + {\bibxstring{lang#1}} + {#1}}}% + \ifbibstring{#1} + {\bibstring{#1}} + {\ifbibstring{lang#1} + {\bibstring{lang#1}} + {#1}}% + \usebibmacro{list:andothers}} + +\DeclareListFormat{location}{% + \usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}} + +\DeclareListFormat[patent]{location}{% + \usebibmacro{list:plain}% + \ifbibstring{#1}{\bibstring{#1}}{#1\isdot}% + \usebibmacro{list:andothers}} + +\DeclareListFormat{pageref}{% + \ifnumless{\abx@pagerefstyle}{0} + {\usebibmacro{list:plain}% + \ifhyperref + {\hyperlink{page.#1}{#1}} + {#1}} + {\ifnumequal{\value{listcount}}{1} + {\usebibmacro{pageref:init}} + {}% + \usebibmacro{pageref:comp}{#1}% + \ifnumequal{\value{listcount}}{\value{liststop}} + {\usebibmacro{pageref:dump}} + {}}} + +\DeclareListAlias{origlocation}{location} +\DeclareListAlias{origpublisher}{publisher} +\DeclareListAlias{institution}{default} +\DeclareListAlias{organization}{default} + +% Auxiliary macros for list formatting directives +% ------------------------------------------------------------------ + +\newbibmacro*{list:delim}[1]{% + \ifnumgreater{\value{listcount}}{\value{liststart}} + {\ifboolexpr{ + test {\ifnumless{\value{listcount}}{\value{liststop}}} + or + test \ifmoreitems + } + {\multilistdelim} + {\lbx@finallistdelim{#1}}} + {}} + +\newbibmacro*{list:plain}{% + \ifnumgreater{\value{listcount}}{\value{liststart}} + {\multilistdelim} + {}} + +\newbibmacro*{list:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmoreitems + } + {\ifnumgreater{\value{liststop}}{1} + {\finalandcomma} + {}% + \andmoredelim\bibstring{andmore}} + {}} + +\newbibmacro*{pageref:init}{% + \let\abx@range@hold=\empty + \def\abx@range@diff{0}% + \def\abx@range@prev{-1}% + \def\abx@range@this{0}% + \def\abx@range@last{-1}} + +\newbibmacro*{pageref:comp}[1]{% + \numdef\abx@range@prev{\abx@range@prev+1}% + \ifinteger{#1} + {\def\abx@range@num{#1}% + \def\abx@range@this{1}% + \ifnumequal{\abx@range@this}{\abx@range@last} + {} + {\def\abx@range@prev{-1}}} + {\ifrmnum{#1} + {\numdef\abx@range@num{\rmntonum{#1}}% + \def\abx@range@this{2}% + \ifnumequal{\abx@range@this}{\abx@range@last} + {} + {\def\abx@range@prev{-1}}} + {\undef\abx@range@num + \def\abx@range@this{0}% + \def\abx@range@prev{-1}}}% + \ifdef\abx@range@num + {\ifnumequal{\abx@range@num}{\abx@range@prev} + {\def\abx@range@hold{#1}% + \numdef\abx@range@diff{\abx@range@diff+1}} + {\usebibmacro{pageref:dump}% + \ifnumgreater{\abx@range@last}{-1} + {\multilistdelim} + {}% + \ifhyperref + {\hyperlink{page.#1}{#1}} + {#1}}% + \edef\abx@range@prev{\abx@range@num}} + {\usebibmacro{pageref:dump}% + \ifnumgreater{\abx@range@last}{-1} + {\multilistdelim} + {}% + \ifhyperref + {\hyperlink{page.#1}{#1}} + {#1}% + \def\abx@range@prev{-1}}% + \edef\abx@range@last{\abx@range@this}} + +\newbibmacro*{pageref:dump}{% + \ifnumgreater{\abx@range@diff}{0} + {\ifcase\abx@pagerefstyle\relax % two + \bibrangedash + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}% + \or % three + \ifnumless{\abx@range@diff}{2} + {\multilistdelim} + {\bibrangedash}% + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}% + \or % two+ + \ifnumless{\abx@range@diff}{2} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}} + {\bibstring{sequens}}} + {\bibrangedash + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}}% + \or % three+ + \ifnumless{\abx@range@diff}{2} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}} + {\bibstring{sequens}}} + {\ifnumless{\abx@range@diff}{3} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}} + {\bibstring{sequentes}}} + {\bibrangedash + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\abx@range@hold}} + {\abx@range@hold}}}% + \else % all+ + \ifnumless{\abx@range@diff}{2} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequens}}} + {\bibstring{sequens}}} + {\sqspace + \ifhyperref + {\hyperlink{page.\abx@range@hold}{\bibstring{sequentes}}} + {\bibstring{sequentes}}}% + \fi + \def\abx@range@diff{0}} + {}} + +% ------------------------------------------------------------------ +% NAME LIST FORMATS +% ------------------------------------------------------------------ + +% Arguments passed to formatting directives for name lists: +% +% #1 = family name(s) +% #2 = family name(s) (initials) +% #3 = given name(s) +% #4 = given name(s) (initials) +% #5 = detachable name prefix +% #6 = detachable name prefix (initials) +% #7 = detachable name suffix +% #8 = detachable name suffix (initials) + +% Formatting directives for name lists +% ------------------------------------------------------------------ + +\DeclareNameAlias{first-last}{given-family}% legacy alias +\DeclareNameFormat{given-family}{% + \ifgiveninits + {\usebibmacro{name:given-family}{#1}{#4}{#5}{#7}} + {\usebibmacro{name:given-family}{#1}{#3}{#5}{#7}}% + \usebibmacro{name:andothers}} + +\DeclareNameAlias{last-first}{family-given}% legacy alias +\DeclareNameFormat{family-given}{% + \ifgiveninits + {\usebibmacro{name:family-given}{#1}{#4}{#5}{#7}} + {\usebibmacro{name:family-given}{#1}{#3}{#5}{#7}}% + \usebibmacro{name:andothers}} + +\DeclareNameAlias{last-first/first-last}{family-given/given-family}% legacy alias +\DeclareNameFormat{family-given/given-family}{% + \ifnumequal{\value{listcount}}{1} + {\ifgiveninits + {\usebibmacro{name:family-given}{#1}{#4}{#5}{#7}} + {\usebibmacro{name:family-given}{#1}{#3}{#5}{#7}}% + \ifblank{#3#5} + {} + {\usebibmacro{name:revsdelim}}} + {\ifgiveninits + {\usebibmacro{name:given-family}{#1}{#4}{#5}{#7}} + {\usebibmacro{name:given-family}{#1}{#3}{#5}{#7}}}% + \usebibmacro{name:andothers}} + +\DeclareNameFormat{initsonly}{% + \usebibmacro{name:given-family}{#2}{#4}{#6}{#8}% + \usebibmacro{name:andothers}} + +% Fallback used by \printnames + +\DeclareNameAlias{default}{given-family} + +% Default used by \citename + +\DeclareNameAlias{citename}{default} + +% Used in some citations + +\DeclareNameFormat{labelname}{% + \ifcase\value{uniquename}% + \usebibmacro{name:family}{#1}{#3}{#5}{#7}% + \or + \ifuseprefix + {\usebibmacro{name:given-family}{#1}{#4}{#5}{#8}} + {\usebibmacro{name:given-family}{#1}{#4}{#6}{#8}}% + \or + \usebibmacro{name:given-family}{#1}{#3}{#5}{#7}% + \fi + \usebibmacro{name:andothers}} + +% Used in the bibliography + +\DeclareNameAlias{sortname}{family-given/given-family} + +\DeclareNameAlias{author}{default} +\DeclareNameAlias{bookauthor}{author} +\DeclareNameAlias{editor}{default} +\DeclareNameAlias{editora}{editor} +\DeclareNameAlias{editorb}{editor} +\DeclareNameAlias{editorc}{editor} +\DeclareNameAlias{translator}{default} + +\DeclareNameAlias{byauthor}{default} +\DeclareNameAlias{bybookauthor}{byauthor} +\DeclareNameAlias{byeditor}{default} +\DeclareNameAlias{byeditora}{byeditor} +\DeclareNameAlias{byeditorb}{byeditor} +\DeclareNameAlias{byeditorc}{byeditor} +\DeclareNameAlias{bytranslator}{default} + +\DeclareNameAlias{withcommentator}{default} +\DeclareNameAlias{withannotator}{default} +\DeclareNameAlias{withintroduction}{default} +\DeclareNameAlias{withforeword}{default} +\DeclareNameAlias{withafterword}{default} + +\DeclareFieldFormat{authortype}{#1} +\DeclareFieldFormat{editortype}{#1} + +% Auxiliary macros for name formatting directives +% ------------------------------------------------------------------ + +\newbibmacro*{name:family}[4]{% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \ifblank{#3} + {} + {\ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}}% + \mkbibnamefamily{#1}\isdot}% +\newbibmacro*{name:last}[4]{% legacy alias + \blx@warning@noline{% + 'name:last' is deprecated, please use 'name:family'}% + \usebibmacro{name:family}{#1}{#2}{#3}{#4}} + +\newbibmacro*{name:given-family}[4]{% + \usebibmacro{name:delim}{#2#3#1}% + \usebibmacro{name:hook}{#2#3#1}% + \ifblank{#2}{}{\mkbibnamegiven{#2}\isdot\bibnamedelimd}% + \ifblank{#3}{}{% + \mkbibnameprefix{#3}\isdot + \ifprefchar + {} + {\ifuseprefix{\bibnamedelimc}{\bibnamedelimd}}}% + \mkbibnamefamily{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}} +\newbibmacro*{name:first-last}[4]{% legacy alias + \blx@warning@noline{% + 'name:first-last' is deprecated, please use 'name:given-family'}% + \usebibmacro{name:given-family}{#1}{#2}{#3}{#4}} + +\newbibmacro*{name:family-given}[4]{% + \ifuseprefix + {\usebibmacro{name:delim}{#3#1}% + \usebibmacro{name:hook}{#3#1}% + \ifblank{#3}{}{% + \ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot} + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \mkbibnamefamily{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}} + {\usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \mkbibnamefamily{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifblank{#2#3}{}{\revsdnamepunct}% + \ifblank{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}% + \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}} +\newbibmacro*{name:last-first}[4]{% legacy alias + \blx@warning@noline{% + 'name:last-first' is deprecated, please use 'name:family-given'}% + \usebibmacro{name:family-given}{#1}{#2}{#3}{#4}} + +\newbibmacro*{name:hook}[1]{% + \ifnumequal{\value{listcount}}{1} + {\lbx@initnamehook{#1}} + {}} + +\newbibmacro*{name:delim}[1]{% + \ifnumgreater{\value{listcount}}{\value{liststart}} + {\ifboolexpr{ + test {\ifnumless{\value{listcount}}{\value{liststop}}} + or + test \ifmorenames + } + {\multinamedelim} + {\lbx@finalnamedelim{#1}}} + {}} + +\newbibmacro*{name:revsdelim}{% + \ifboolexpr{ + ( + test {\ifnumequal{\value{liststop}}{1}} + and + test \ifmorenames + ) + or + test {\ifnumequal{\value{liststop}}{2}} + } + {\revsdnamedelim} + {}} + +\newbibmacro*{name:andothers}{% + \ifboolexpr{ + test {\ifnumequal{\value{listcount}}{\value{liststop}}} + and + test \ifmorenames + } + {\ifnumgreater{\value{liststop}}{1} + {\finalandcomma} + {}% + \andothersdelim\bibstring{andothers}} + {}} + +% ------------------------------------------------------------------ +% INDEX FORMATS FOR FIELDS (#1 is the value of the field) +% ------------------------------------------------------------------ + +% There is no need to test if a field to be indexed is empty because +% \indexfield performs this test implicitly. + +% The fallback used by \indexfield + +\DeclareIndexFieldFormat{default}{\index{#1}} + +% Used in the bibliography and in citations + +\DeclareIndexFieldFormat{indextitle}{% + \usebibmacro{index:title}{\index}{#1}} + +\newbibmacro*{index:title}[2]{% + \usebibmacro{index:field}{#1}{\thefield{indexsorttitle}}{\emph{#2}}} + +\newbibmacro*{index:field}[3]{% + \usebibmacro{index:entry}{#1}{\mkbibindexfield{#2}{#3}}} + +% Auxiliary macros for field indexing directives +% ------------------------------------------------------------------ + +\newbibmacro*{index:entry}[2]{% + \begingroup + \protected@edef\theindexentry{\unexpanded{#1}{#2}}% + \theindexentry + \endgroup} + +\newcommand*{\mkbibindexfield}[2]{\mkbibindexentry{#1}{\unexpanded{#2}}} +\newcommand*{\mkbibindexentry}[2]{#1\actualoperator#2} + +% ------------------------------------------------------------------ +% INDEX FORMATS FOR LITERAL LISTS (#1 is the current item) +% ------------------------------------------------------------------ + +% The fallback used by \indexlist + +\DeclareIndexListFormat{default}{\index{#1}} + +% ------------------------------------------------------------------ +% INDEX FORMATS FOR NAME LISTS +% ------------------------------------------------------------------ + +% Argments passed to indexing directives for name lists: +% +% #1 = family name(s) +% #2 = family name(s) (initials) +% #3 = given name(s) +% #4 = given name(s) (initials) +% #5 = detachable name prefix +% #6 = detachable name prefix (initials) +% #7 = detachable name suffix +% #8 = detachable name suffix (initials) + +% Indexing directives for name lists +% ------------------------------------------------------------------ + +% The fallback used by \indexnames + +\DeclareIndexNameFormat{default}{% + \usebibmacro{index:name}{\index}{#1}{#3}{#5}{#7}} + +% Used in citations + +\DeclareIndexNameAlias{labelname}{default} + +% Used in the bibliography + +\DeclareIndexNameAlias{author}{default} +\DeclareIndexNameAlias{editor}{default} +\DeclareIndexNameAlias{bookauthor}{default} + +% Auxiliary macros for name indexing directives +% ------------------------------------------------------------------ + +% When generating an index entry, we need to test which parts of a +% name are actually available to prevent spurious punctuation and +% spaces. Since those parts which are not available yield an empty +% argument, we can use the \ifblank test from etoolbox.sty to analyze +% the name. +% +% Note that the standard LaTeX \index command simply writes its +% argument to the .idx file without preventing expansion. This means +% that all \ifblank tests are expanded on the way and will not end +% up in the index. The index package, however, prevents expansion. +% This would lead to \ifblank ending up in the .idx file. To avoid +% that, we preprocess the index entry inside an \edef. We use +% \unexpanded to protect the \index command and the actual data from +% expansion. This definition will work with both index.sty and the +% standard indexing facilities. +% +% We also use \ifuseprefix to ensure that the name prefix is handled +% properly. \actualoperator is the so-called actual operator, as +% defined by the 'actual' specifier in the .ist file. The makeindex +% program will use the part preceeding the \actualoperator +% delimiter for sorting. The part after the delimiter is used as the +% index is printed. Note that this is not specific to biblatex, see +% the makeindex documentation for details. + +\newcommand*{\actualoperator}{@} +\newcommand*{\subentryoperator}{!} + +\newbibmacro*{index:name}[5]{% + \usebibmacro{index:entry}{#1}{\mkbibindexname{#2}{#3}{#4}{#5}}} + +% {<family name>}{<given name>}{<given initials>}{<family name prefix>} + +\newcommand*{\mkbibindexname}[4]{% + \ifuseprefix + {\ifblank{#3}{}{#3 }% + \@firstofone #1% remove spurious braces + \ifblank{#4}{}{ #4}% + \ifblank{#2}{}{, #2}% + \actualoperator + \ifblank{#3}{}{\MakeCapital{#3} }% + #1% + \ifblank{#4}{}{ #4}% + \ifblank{#2}{}{, #2}} + {\@firstofone #1% remove spurious braces + \ifblank{#4}{}{ #4}% + \ifblank{#2#3}{}{,}% + \ifblank{#2}{}{ #2}% + \ifblank{#3}{}{ #3}}} + +% {<control sequence>}{<control sequence>} + +\newcommand*{\mkbibindexsubentry}[2]{% + \ifblank{#1}{}{\subentryoperator#1\actualoperator#2}} + +% Additional macros with subentries + +\newbibmacro*{index:name:field}[6]{% + \usebibmacro{index:name:subentry}{#1}{#2}{#3}{#4}{#5} + {\thefield{#6}}{\csfield{#6}}} + +\newbibmacro*{index:name:title}[5]{% + \usebibmacro{index:name:subentry}{#1}{#2}{#3}{#4}{#5} + {\thefield{indexsorttitle}}{\emph{\csfield{indextitle}}}} + +\newbibmacro*{index:name:subentry}[7]{% + \usebibmacro{index:entry}{#1}{% + \mkbibindexname{#2}{#3}{#4}{#5}\mkbibindexsubentry{#6}{#7}}} + +% ------------------------------------------------------------------ +% MACROS FOR LBX FILES +% ------------------------------------------------------------------ + +\newcommand*{\lbx@initnamehook}[1]{} +\newcommand*{\lbx@inittitlehook}[1]{} +\newcommand*{\lbx@finalnamedelim}[1]{\finalnamedelim} +\newcommand*{\lbx@finallistdelim}[1]{\finallistdelim} + +\newcommand*{\lbx@lfromlang}{% + \iffieldundef{origlanguage} + {\unspace} + {\biblstring{from\thefield{origlanguage}}}} + +\newcommand*{\lbx@sfromlang}{% + \iffieldundef{origlanguage} + {\unspace} + {\bibsstring{from\thefield{origlanguage}}}} + +% ------------------------------------------------------------------ +% MISCELLANEOUS +% ------------------------------------------------------------------ + +% ordinals + +\newcommand*{\mkbibordedition}{\mkbibordinal} +\newcommand*{\mkbibordseries}{\mkbibordinal} + +% american + +\newrobustcmd*{\uspunctuation}{% + \DeclareQuotePunctuation{.,}% + \DeclarePunctuationPairs{comma}{*}} +\newrobustcmd*{\stdpunctuation}{% + \DeclareQuotePunctuation{}% + \DeclarePunctuationPairs{comma}{*!?}} + +% catalan and french + +\newtoggle{smartof} +\newrobustcmd*{\smartof}{\global\toggletrue{smartof}} +\newrobustcmd*{\forceD}[1]{#1} +\newrobustcmd*{\forceDE}[1]{#1} + +\AtBeginDocument{% + \@ifpackageloaded{babel} + {\ifdef\AutoSpaceBeforeFDP + {\newrobustcmd*{\EnsureAutoSpaceBeforeFDP}{% + \iflanguage{french} + {\AutoSpaceBeforeFDP} + {}}% + \appto\bibsetup{\EnsureAutoSpaceBeforeFDP}% + \appto\citesetup{\EnsureAutoSpaceBeforeFDP}} + {}} + {}} + +% spanish + +\newcounter{smartand} +\defcounter{smartand}{1} +\newrobustcmd*{\forceY}[1]{#1} +\newrobustcmd*{\forceE}[1]{#1} + +% ------------------------------------------------------------------ +% PREDEFINED HEADINGS +% ------------------------------------------------------------------ + +\newcommand*{\abx@classtype}{0} +\@ifclassloaded{article} + {} + {\@ifclassloaded{book} + {\def\abx@classtype{1}} + {\@ifclassloaded{report} + {\def\abx@classtype{1}} + {\@ifclassloaded{scrartcl} + {\def\abx@classtype{2}} + {\@ifclassloaded{scrbook} + {\def\abx@classtype{3}} + {\@ifclassloaded{scrreprt} + {\def\abx@classtype{3}} + {\@ifclassloaded{memoir} + {\ifbool{artopt} + {\def\abx@classtype{4}} + {\def\abx@classtype{5}}} + {\ifundef\chapter + {} + {\def\abx@classtype{1}}}}}}}}} + +\defbibheading{none}{} + +\ifcase\abx@classtype\relax % article + \defbibheading{bibliography}[\refname]{% + \section*{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{biblist}[\biblistname]{% + \section*{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{bibintoc}[\refname]{% + \section*{#1}% + \addcontentsline{toc}{section}{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{biblistintoc}[\biblistname]{% + \section*{#1}% + \addcontentsline{toc}{section}{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{bibnumbered}[\refname]{% + \section{#1}% + \if@twoside\markright{\MakeUppercase{#1}}\fi} + \defbibheading{biblistnumbered}[\biblistname]{% + \section{#1}% + \if@twoside\markright{\MakeUppercase{#1}}\fi} + \defbibheading{subbibliography}[\refname]{% + \subsection*{#1}} + \defbibheading{subbibintoc}[\refname]{% + \subsection*{#1}% + \addcontentsline{toc}{subsection}{#1}} + \defbibheading{subbibnumbered}[\refname]{% + \subsection{#1}} + +\or % book/report + \defbibheading{bibliography}[\bibname]{% + \chapter*{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{biblist}[\biblistname]{% + \chapter*{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{bibintoc}[\bibname]{% + \chapter*{#1}% + \addcontentsline{toc}{chapter}{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{biblistintoc}[\biblistname]{% + \chapter*{#1}% + \addcontentsline{toc}{chapter}{#1}% + \markboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}} + \defbibheading{bibnumbered}[\bibname]{% + \chapter{#1}% + \if@twoside\markright{\MakeUppercase{#1}}\fi} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}% + \if@twoside\markright{\MakeUppercase{#1}}\fi} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \if@twoside\markright{\MakeUppercase{#1}}\fi} + \defbibheading{subbibintoc}[\refname]{% + \section*{#1}% + \addcontentsline{toc}{section}{#1}% + \if@twoside\markright{\MakeUppercase{#1}}\fi} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\or % scrartcl + \defbibheading{bibliography}[\refname]{% + \ifkomabibtotocnumbered + {\section{#1}} + {\ifkomabibtotoc + {\addsec{#1}} + {\section*{#1}}% + \markboth{#1}{#1}}} + \defbibheading{biblist}[\biblistname]{% + \ifkomabibtotocnumbered + {\section{#1}} + {\ifkomabibtotoc + {\addsec{#1}} + {\section*{#1}}% + \markboth{#1}{#1}}} + \defbibheading{bibintoc}[\refname]{% + \addsec{#1}% + \markboth{#1}{#1}} + \defbibheading{biblistintoc}[\biblistname]{% + \addsec{#1}% + \markboth{#1}{#1}} + \defbibheading{bibnumbered}[\refname]{% + \section{#1}% + \markboth{\sectionmarkformat#1}{\sectionmarkformat#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \section{#1}% + \markboth{\sectionmarkformat#1}{\sectionmarkformat#1}} + \defbibheading{subbibliography}[\refname]{% + \subsection*{#1}} + \defbibheading{subbibintoc}[\refname]{% + \subsection*{#1}% + \addcontentsline{toc}{subsection}{#1}} + \defbibheading{subbibnumbered}[\refname]{% + \subsection{#1}} + +\or % scrbook/scrreprt + \defbibheading{bibliography}[\bibname]{% + \ifkomabibtotocnumbered + {\chapter{#1}} + {\ifkomabibtotoc + {\addchap{#1}} + {\chapter*{#1}}% + \markboth{#1}{#1}}} + \defbibheading{biblist}[\biblistname]{% + \ifkomabibtotocnumbered + {\chapter{#1}} + {\ifkomabibtotoc + {\addchap{#1}} + {\chapter*{#1}}% + \markboth{#1}{#1}}} + \defbibheading{bibintoc}[\bibname]{% + \addchap{#1}% + \markboth{#1}{#1}} + \defbibheading{biblistintoc}[\biblistname]{% + \addchap{#1}% + \markboth{#1}{#1}} + \defbibheading{bibnumbered}[\bibname]{% + \chapter{#1}% + \markboth{\chaptermarkformat#1}{\chaptermarkformat#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}% + \markboth{\chaptermarkformat#1}{\chaptermarkformat#1}} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \if@twoside\markright{#1}\fi} + \defbibheading{subbibintoc}[\refname]{% + \addsec{#1}% + \markboth{#1}{#1}} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\or % memoir (article) + \ifdef\memUChead{}{\let\memUChead\MakeUppercase} + \defbibheading{bibliography}[\refname]{% + \chapter*{#1}% + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{biblist}[\biblistname]{% + \chapter*{#1}% + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{bibintoc}[\refname]{% + \chapter*{#1}% + \phantomsection + \addcontentsline{toc}{chapter}{#1}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{biblistintoc}[\biblistname]{% + \chapter*{#1}% + \phantomsection + \addcontentsline{toc}{chapter}{#1}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{bibnumbered}[\refname]{% + \chapter{#1}} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{section}{#1}} + {}% + \if@twoside\markright{\memUChead{#1}}\fi} + \defbibheading{subbibintoc}[\refname]{% + \section*{#1}% + \phantomsection + \addcontentsline{toc}{section}{#1}% + \if@twoside\markright{\memUChead{#1}}\fi} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\or % memoir (book) + \ifdef\memUChead{}{\let\memUChead\MakeUppercase} + \defbibheading{bibliography}[\bibname]{% + \chapter*{#1}% + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{biblist}[\biblistname]{% + \chapter*{#1}% + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{chapter}{#1}} + {}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{bibintoc}[\bibname]{% + \chapter*{#1}% + \phantomsection + \addcontentsline{toc}{chapter}{#1}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{biblistintoc}[\biblistname]{% + \chapter*{#1}% + \phantomsection + \addcontentsline{toc}{chapter}{#1}% + \markboth{\memUChead{#1}}{\memUChead{#1}}} + \defbibheading{bibnumbered}[\bibname]{% + \chapter{#1}% + \if@twoside\markright{\memUChead{#1}}\fi} + \defbibheading{biblistnumbered}[\biblistname]{% + \chapter{#1}% + \if@twoside\markright{\memUChead{#1}}\fi} + \defbibheading{subbibliography}[\refname]{% + \section*{#1}% + \ifmemoirbibintoc + {\phantomsection + \addcontentsline{toc}{section}{#1}} + {}% + \if@twoside\markright{\memUChead{#1}}\fi} + \defbibheading{subbibintoc}[\refname]{% + \section*{#1}% + \phantomsection + \addcontentsline{toc}{section}{#1}% + \if@twoside\markright{\memUChead{#1}}\fi} + \defbibheading{subbibnumbered}[\refname]{% + \section{#1}} + +\fi + +% ------------------------------------------------------------------ +% GENERIC CITATION COMMANDS +% ------------------------------------------------------------------ + +\DeclareCiteCommand{\fullcite} + {\usebibmacro{prenote}} + {\usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\footfullcite}[\mkbibfootnote] + {\usebibmacro{prenote}} + {\usedriver + {\DeclareNameAlias{sortname}{default}} + {\thefield{entrytype}}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeauthor} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexnames{labelname}} + {}% + \printnames{labelname}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citeauthor} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexnames{labelname}} + {}% + \printnames[][1-1]{labelname}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citetitle} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexfield{indextitle}} + {}% + \printfield[citetitle]{labeltitle}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citetitle} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\ifciteindex + {\indexfield{indextitle}} + {}% + \printfield[citetitle]{title}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeyear} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield{year}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citeyear} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield{year}\printfield{extrayear}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citedate} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printdate} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand*{\citedate} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printdateextra} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\citeurl} + {\boolfalse{citetracker}% + \boolfalse{pagetracker}% + \usebibmacro{prenote}} + {\printfield[citeurl]{url}} + {\multicitedelim} + {\usebibmacro{postnote}} + +\DeclareCiteCommand{\notecite} + {\printfield{prenote}% + \setunit*{\prenotedelim}} + {\nocite{\thefield{entrykey}}} + {} + {\printfield{postnote}} + +\DeclareCiteCommand{\pnotecite}[\mkbibparens] + {\printfield{prenote}% + \setunit*{\prenotedelim}} + {\nocite{\thefield{entrykey}}} + {} + {\printfield{postnote}} + +\DeclareCiteCommand{\fnotecite}[\mkbibfootnote] + {\printfield{prenote}% + \setunit*{\prenotedelim}} + {\nocite{\thefield{entrykey}}} + {} + {\printfield{postnote}} + +\newrobustcmd*{\volcite}{\volcitecmd\cite} +\newrobustcmd*{\pvolcite}{\volcitecmd\parencite} +\newrobustcmd*{\fvolcite}{\volcitecmd\footcite} +\newrobustcmd*{\ftvolcite}{\volcitecmd\footcitetext} +\newrobustcmd*{\svolcite}{\volcitecmd\smartcite} +\newrobustcmd*{\tvolcite}{\volcitecmd\textcite} +\newrobustcmd*{\avolcite}{\volcitecmd\autocite} + +\newrobustcmd*{\volcites}{\multivolcitecmd\cites} +\newrobustcmd*{\pvolcites}{\multivolcitecmd\parencites} +\newrobustcmd*{\fvolcites}{\multivolcitecmd\footcites} +\newrobustcmd*{\ftvolcites}{\multivolcitecmd\footcitetexts} +\newrobustcmd*{\svolcites}{\multivolcitecmd\smartcites} +\newrobustcmd*{\tvolcites}{\multivolcitecmd\textcites} +\newrobustcmd*{\avolcites}{\multivolcitecmd\autocites} + +\newrobustcmd*{\Cite}{\bibsentence\cite} +\newrobustcmd*{\Parencite}{\bibsentence\parencite} +\newrobustcmd*{\Footcite}{\footcite} +\newrobustcmd*{\Footcitetext}{\footcitetext} +\newrobustcmd*{\Smartcite}{\bibsentence\smartcite} +\newrobustcmd*{\Textcite}{\bibsentence\textcite} +\newrobustcmd*{\Citeauthor}{% + \@ifstar{\bibsentence\citeauthor*}{\bibsentence\citeauthor}} +\newrobustcmd*{\Citetitle}{\bibsentence\citetitle} + +\newrobustcmd*{\Volcite}{\volcitecmd\Cite} +\newrobustcmd*{\Pvolcite}{\volcitecmd\Parencite} +\newrobustcmd*{\Fvolcite}{\volcitecmd\Footcite} +\newrobustcmd*{\Ftvolcite}{\volcitecmd\Footcitetext} +\newrobustcmd*{\Svolcite}{\volcitecmd\Smartcite} +\newrobustcmd*{\Tvolcite}{\volcitecmd\Textcite} +\newrobustcmd*{\Avolcite}{\volcitecmd\Autocite} + +\newrobustcmd*{\Volcites}{\multivolcitecmd\Cites} +\newrobustcmd*{\Pvolcites}{\multivolcitecmd\Parencites} +\newrobustcmd*{\Fvolcites}{\multivolcitecmd\Footcites} +\newrobustcmd*{\Ftvolcites}{\multivolcitecmd\Footcitetext} +\newrobustcmd*{\Svolcites}{\multivolcitecmd\Smartcites} +\newrobustcmd*{\Tvolcites}{\multivolcitecmd\Textcites} +\newrobustcmd*{\Avolcites}{\multivolcitecmd\Autocites} + +\newrobustcmd*{\Notecite}{\bibsentence\notecite} +\newrobustcmd*{\Pnotecite}{\bibsentence\pnotecite} +\newrobustcmd*{\Fnotecite}{\fnotecite} + +\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim} +\DeclareMultiCiteCommand{\parencites}[\mkbibparens]{\parencite}{\multicitedelim} +\DeclareMultiCiteCommand{\footcites}[\mkbibfootnote]{\footcite}{\multicitedelim} +\DeclareMultiCiteCommand{\footcitetexts}[\mkbibfootnotetext] + {\footcitetext}{\multicitedelim} +\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibparens\mkbibfootnote] + {\smartcite}{\multicitedelim} +\DeclareMultiCiteCommand{\supercites}[\mkbibsuperscript] + {\supercite}{\supercitedelim} +\DeclareMultiCiteCommand{\textcites}{\textcite}{\multicitedelim} + +\newrobustcmd*{\Cites}{\bibsentence\cites} +\newrobustcmd*{\Parencites}{\bibsentence\parencites} +\newrobustcmd*{\Footcites}{\footcites} +\newrobustcmd*{\Footcitetexts}{\footcitetexts} +\newrobustcmd*{\Smartcites}{\bibsentence\smartcites} +\newrobustcmd*{\Textcites}{\bibsentence\textcites} + +\DeclareAutoCiteCommand{plain}{\cite}{\cites} +\DeclareAutoCiteCommand{inline}{\parencite}{\parencites} +%\DeclareAutoCiteCommand{footnote}[l]{\footcite}{\footcites} +\DeclareAutoCiteCommand{footnote}[f]{\smartcite}{\smartcites} +\DeclareAutoCiteCommand{superscript}[l]{\supercite}{\supercites} + +\newrobustcmd*{\Autocite}{\bibsentence\autocite} +\newrobustcmd*{\Autocites}{\bibsentence\autocites} + +% ------------------------------------------------------------------ +% GENERIC CITATION MACROS +% ------------------------------------------------------------------ + +\newbibmacro*{citeindex}{% + \ifciteindex + {\indexnames{labelname}% + \indexfield{indextitle}} + {}} + +\newbibmacro*{shorthandintro}{% + \iffieldundef{shorthandintro} + {\iffieldundef{shorthand} + {} + {\setunit{\addspace}% + \printtext[parens]{% + \bibstring{citedas}\space + \printfield{shorthand}}}} + {\setunit{\addspace}% + \printtext[parens]{\printfield{shorthandintro}}}} + +% citation commands + +\newbibmacro*{prenote}{% + \iffieldundef{prenote} + {} + {\printfield{prenote}% + \setunit{\prenotedelim}}} + +\newbibmacro*{postnote}{% + \iffieldundef{postnote} + {} + {\setunit{\postnotedelim}% + \printfield{postnote}}} + +% multicite commands + +\newbibmacro*{multiprenote}{% + \iffieldundef{multiprenote} + {} + {\printfield{multiprenote}% + \prenotedelim}} + +\newbibmacro*{multipostnote}{% + \iffieldundef{multipostnote} + {} + {\postnotedelim + \printfield{multipostnote}}} + +% ------------------------------------------------------------------ +% GENERIC BIBLIOGRAPHY MACROS +% ------------------------------------------------------------------ + +\newbibmacro*{bibindex}{% + \ifbibindex + {\indexnames{labelname}% + \indexfield{indextitle}} + {}} + +\newbibmacro*{author/editor}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{editor}}} + +\newbibmacro*{author/editor+others}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{editor+others}}} + +\newbibmacro*{author/translator}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{translator}}} + +\newbibmacro*{author/translator+others}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\usebibmacro{translator+others}}} + +\newbibmacro*{author/editor/translator}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{editor}} + {\usebibmacro{translator}}}} + +\newbibmacro*{author/editor+others/translator+others}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{author}} + {\ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\usebibmacro{editor+others}} + {\usebibmacro{translator+others}}}} + +\newbibmacro*{author}{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\printnames{author}% + \iffieldundef{authortype} + {} + {\setunit{\addcomma\space}% + \usebibmacro{authorstrg}}} + {}} + +\newbibmacro*{editor}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \setunit{\addcomma\space}% + \usebibmacro{editorstrg}% + \clearname{editor}} + {}} + +\newbibmacro*{editor+others}{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printnames{editor}% + \setunit{\addcomma\space}% + \usebibmacro{editor+othersstrg}% + \clearname{editor}} + {}} + +\newbibmacro*{translator}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\printnames{translator}% + \setunit{\addcomma\space}% + \usebibmacro{translatorstrg}% + \clearname{translator}} + {}} + +\newbibmacro*{translator+others}{% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\printnames{translator}% + \setunit{\addcomma\space}% + \usebibmacro{translator+othersstrg}% + \clearname{translator}} + {}} + +\newbibmacro*{authorstrg}{% + \iffieldundef{authortype} + {} + {\printtext[authortype]{% + \ifbibxstring{\thefield{authortype}} + {\ifboolexpr{ + test {\ifnumgreater{\value{author}}{1}} + or + test {\ifandothers{author}} + } + {\bibstring{\thefield{authortype}s}} + {\bibstring{\thefield{authortype}}}} + {\thefield{authortype}}}}} + +\newbibmacro*{editorstrg}{% + \printtext[editortype]{% + \iffieldundef{editortype} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\bibstring{editors}} + {\bibstring{editor}}} + {\ifbibxstring{\thefield{editortype}} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\bibstring{\thefield{editortype}s}} + {\bibstring{\thefield{editortype}}}} + {\thefield{editortype}}}}} + +\newbibmacro*{editor+othersstrg}{% + \iffieldundef{editortype} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\def\abx@tempa{editors}} + {\def\abx@tempa{editor}}} + {\ifboolexpr{ + test {\ifnumgreater{\value{editor}}{1}} + or + test {\ifandothers{editor}} + } + {\edef\abx@tempa{\thefield{editortype}s}} + {\edef\abx@tempa{\thefield{editortype}}}}% + \let\abx@tempb=\empty + \ifnamesequal{editor}{translator} + {\appto\abx@tempa{tr}% + \appto\abx@tempb{\clearname{translator}}} + {}% + \ifnamesequal{editor}{commentator} + {\appto\abx@tempa{co}% + \appto\abx@tempb{\clearname{commentator}}} + {\ifnamesequal{editor}{annotator} + {\appto\abx@tempa{an}% + \appto\abx@tempb{\clearname{annotator}}} + {}}% + \ifnamesequal{editor}{introduction} + {\appto\abx@tempa{in}% + \appto\abx@tempb{\clearname{introduction}}} + {\ifnamesequal{editor}{foreword} + {\appto\abx@tempa{fo}% + \appto\abx@tempb{\clearname{foreword}}} + {\ifnamesequal{editor}{afterword} + {\appto\abx@tempa{af}% + \appto\abx@tempb{\clearname{afterword}}} + {}}}% + \ifbibxstring{\abx@tempa} + {\printtext[editortype]{\bibstring{\abx@tempa}}\abx@tempb} + {\usebibmacro{editorstrg}}} + +\newbibmacro*{translatorstrg}{% + \ifboolexpr{ + test {\ifnumgreater{\value{translator}}{1}} + or + test {\ifandothers{translator}} + } + {\bibstring{translators}} + {\bibstring{translator}}} + +\newbibmacro*{translator+othersstrg}{% + \ifboolexpr{ + test {\ifnumgreater{\value{translator}}{1}} + or + test {\ifandothers{translator}} + } + {\def\abx@tempa{translators}} + {\def\abx@tempa{translator}}% + \ifnamesequal{translator}{commentator} + {\appto\abx@tempa{co}% + \clearname{commentator}} + {\ifnamesequal{translator}{annotator} + {\appto\abx@tempa{an}% + \clearname{annotator}} + {}}% + \ifnamesequal{translator}{introduction} + {\appto\abx@tempa{in}% + \clearname{introduction}} + {\ifnamesequal{translator}{foreword} + {\appto\abx@tempa{fo}% + \clearname{foreword}} + {\ifnamesequal{translator}{afterword} + {\appto\abx@tempa{af}% + \clearname{afterword}} + {}}}% + \bibstring{\abx@tempa}} + +\newbibmacro*{byauthor}{% + \ifboolexpr{ + test \ifuseauthor + or + test {\ifnameundef{author}} + } + {} + {\usebibmacro{bytypestrg}{author}{author}% + \setunit{\addspace}% + \printnames[byauthor]{author}}} + +\newbibmacro*{bybookauthor}{% + \ifnamesequal{author}{bookauthor} + {} + {\printnames{bookauthor}}} + +\newbibmacro*{byeditor}{% + \ifnameundef{editor} + {} + {\usebibmacro{bytypestrg}{editor}{editor}% + \setunit{\addspace}% + \printnames[byeditor]{editor}% + \newunit}% + \usebibmacro{byeditorx}} + +\newbibmacro*{byeditorx}{% + \ifnameundef{editora} + {} + {\usebibmacro{bytypestrg}{editora}{editor}% + \setunit{\addspace}% + \printnames[byeditora]{editora}% + \newunit}% + \ifnameundef{editorb} + {} + {\usebibmacro{bytypestrg}{editorb}{editor}% + \setunit{\addspace}% + \printnames[byeditorb]{editorb}% + \newunit}% + \ifnameundef{editorc} + {} + {\usebibmacro{bytypestrg}{editorc}{editor}% + \setunit{\addspace}% + \printnames[byeditorc]{editorc}% + \newunit}} + +\newbibmacro*{bytranslator}{% + \ifnameundef{translator} + {} + {\bibstring{bytranslator}% + \setunit{\addspace}% + \printnames[bytranslator]{translator}}} + +\newbibmacro*{byholder}{% + \printnames{holder}} + +\newbibmacro*{byeditor+others}{% + \ifnameundef{editor} + {} + {\usebibmacro{byeditor+othersstrg}% + \setunit{\addspace}% + \printnames[byeditor]{editor}% + \clearname{editor}% + \newunit}% + \usebibmacro{byeditorx}% + \usebibmacro{bytranslator+others}} + +\newbibmacro*{bytranslator+others}{% + \ifnameundef{translator} + {} + {\usebibmacro{bytranslator+othersstrg}% + \setunit{\addspace}% + \printnames[bytranslator]{translator}% + \clearname{translator}% + \newunit}% + \usebibmacro{withothers}} + +\newbibmacro*{bytypestrg}[2]{% + \iffieldundef{#1type} + {\bibstring{by#2}} + {\ifbibxstring{by\thefield{#1type}} + {\bibstring{by\thefield{#1type}}} + {\printtext{\thefield{#1type}}}}} + +\newbibmacro*{byeditor+othersstrg}{% + \iffieldundef{editortype} + {\def\abx@tempa{byeditor}} + {\edef\abx@tempa{by\thefield{editortype}}}% + \let\abx@tempb=\empty + \ifnamesequal{editor}{translator} + {\appto\abx@tempa{tr}% + \appto\abx@tempb{\clearname{translator}}} + {}% + \ifnamesequal{editor}{commentator} + {\appto\abx@tempa{co}% + \appto\abx@tempb{\clearname{commentator}}} + {\ifnamesequal{editor}{annotator} + {\appto\abx@tempa{an}% + \appto\abx@tempb{\clearname{annotator}}} + {}}% + \ifnamesequal{editor}{introduction} + {\appto\abx@tempa{in}% + \appto\abx@tempb{\clearname{introduction}}} + {\ifnamesequal{editor}{foreword} + {\appto\abx@tempa{fo}% + \appto\abx@tempb{\clearname{foreword}}} + {\ifnamesequal{editor}{afterword} + {\appto\abx@tempa{af}% + \appto\abx@tempb{\clearname{afterword}}} + {}}}% + \ifbibxstring{\abx@tempa} + {\printtext{\bibstring{\abx@tempa}}\abx@tempb} + {\usebibmacro{bytypestrg}{editor}{editor}}} + +\newbibmacro*{bytranslator+othersstrg}{% + \def\abx@tempa{bytranslator}% + \ifnamesequal{translator}{commentator} + {\appto\abx@tempa{co}% + \clearname{commentator}} + {\ifnamesequal{translator}{annotator} + {\appto\abx@tempa{an}% + \clearname{annotator}} + {}}% + \ifnamesequal{translator}{introduction} + {\appto\abx@tempa{in}% + \clearname{introduction}} + {\ifnamesequal{translator}{foreword} + {\appto\abx@tempa{fo}% + \clearname{foreword}} + {\ifnamesequal{translator}{afterword} + {\appto\abx@tempa{af}% + \clearname{afterword}} + {}}}% + \bibstring{\abx@tempa}} + +\newbibmacro*{withcommentator}{% + \ifnameundef{commentator} + {} + {\bibstring{withcommentator}% + \setunit{\addspace}% + \printnames[withcommentator]{commentator}}} + +\newbibmacro*{withannotator}{% + \ifnameundef{annotator} + {} + {\bibstring{withannotator}% + \setunit{\addspace}% + \printnames[withannotator]{annotator}}} + +\newbibmacro*{withintroduction}{% + \ifnameundef{introduction} + {} + {\bibstring{withintroduction}% + \setunit{\addspace}% + \printnames[withintroduction]{introduction}}} + +\newbibmacro*{withforeword}{% + \ifnameundef{foreword} + {} + {\bibstring{withforeword}% + \setunit{\addspace}% + \printnames[withforeword]{foreword}}} + +\newbibmacro*{withafterword}{% + \ifnameundef{afterword} + {} + {\bibstring{withafterword}% + \setunit{\addspace}% + \printnames[withafterword]{afterword}}} + +\newbibmacro*{withothers}{% + \usebibmacro{withcommentator}% + \clearname{commentator}% + \newunit + \usebibmacro{withannotator}% + \clearname{annotator}% + \newunit + \usebibmacro{withintroduction}% + \clearname{introduction}% + \newunit + \usebibmacro{withforeword}% + \clearname{foreword}% + \newunit + \usebibmacro{withafterword}% + \clearname{afterword}} + +\newbibmacro*{title}{% + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + {\printtext[title]{% + \printfield[titlecase]{title}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}% + \newunit}% + \printfield{titleaddon}} + +\newbibmacro*{booktitle}{% + \ifboolexpr{ + test {\iffieldundef{booktitle}} + and + test {\iffieldundef{booksubtitle}} + } + {} + {\printtext[booktitle]{% + \printfield[titlecase]{booktitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{booksubtitle}}% + \newunit}% + \printfield{booktitleaddon}} + +\newbibmacro*{maintitle}{% + \ifboolexpr{ + test {\iffieldundef{maintitle}} + and + test {\iffieldundef{mainsubtitle}} + } + {} + {\printtext[maintitle]{% + \printfield[titlecase]{maintitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{mainsubtitle}}% + \newunit}% + \printfield{maintitleaddon}} + +\newbibmacro*{journal}{% + \iffieldundef{journaltitle} + {} + {\printtext[journaltitle]{% + \printfield[titlecase]{journaltitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{journalsubtitle}}}} + +\newbibmacro*{periodical}{% + \iffieldundef{title} + {} + {\printtext[title]{% + \printfield[titlecase]{title}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{subtitle}}}} + +\newbibmacro*{issue}{% + \iffieldundef{issuetitle} + {} + {\printtext[issuetitle]{% + \printfield[titlecase]{issuetitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{issuesubtitle}}}} + +\newbibmacro*{in:}{% + \printtext{% + \bibstring{in}\intitlepunct}} + +\newbibmacro*{date}{\printdate} + +\newbibmacro*{url+urldate}{% + \usebibmacro{url}% + \iffieldundef{urlyear} + {} + {\setunit*{\addspace}% + \usebibmacro{urldate}}} + +\newbibmacro*{url}{\printfield{url}} +\newbibmacro*{urldate}{\printurldate} + +\newbibmacro*{pageref}{% + \iflistundef{pageref} + {} + {\printtext[parens]{% + \ifnumgreater{\value{pageref}}{1} + {\bibstring{backrefpages}\ppspace} + {\bibstring{backrefpage}\ppspace}% + \printlist[pageref][-\value{listtotal}]{pageref}}}} + +\newbibmacro*{setpageref}{% + \iflistundef{pageref} + {} + {\printtext{% + \ifnumgreater{\value{pageref}}{1} + {\bibstring{backrefpages}\ppspace} + {\bibstring{backrefpage}\ppspace}% + \printlist[pageref][-\value{listtotal}]{pageref}}}} + +\newbibmacro*{eprint}{% + \iffieldundef{eprinttype} + {\printfield{eprint}} + {\printfield[eprint:\strfield{eprinttype}]{eprint}}} + +\newbibmacro*{annotation}{% + \iffieldundef{annotation} + {\printfile[annotation]{\bibannotationprefix\thefield{entrykey}.tex}} + {\printfield{annotation}}} + +\newbibmacro*{abstract}{% + \iffieldundef{abstract} + {\printfile[abstract]{\bibabstractprefix\thefield{entrykey}.tex}} + {\printfield{abstract}}} + +\newbibmacro*{related:default}[1]{% + \entrydata*{#1}{% + \usedriver + {\ifnameundef{savedauthor} + {\ifnameundef{savededitor} + {} + {\ifnamesequal{editor}{savededitor} + {\clearname{editor}} + {}}} + {\ifnamesequal{author}{savedauthor} + {\clearname{author}} + {}}% + \renewbibmacro*{related:init}{}% + \DeclareNameAlias{sortname}{default}% + \ifbibmacroundef{date+extrayear} + {} + {\renewbibmacro*{date+extrayear}{}% + \renewbibmacro*{date}{\printdate}}% + \renewbibmacro*{pageref}{}} + {\thefield{entrytype}}}} + +\newbibmacro*{related:bytranslator}[1]{% + \entrydata{#1}{% + \renewbibmacro*{name:hook}[1]{% + \ifnumequal{\value{listcount}}{1} + {\begingroup + \mkrelatedstring% + \lbx@initnamehook{#1}% + \endgroup} + {}}% + \printnames[bytranslator]{translator}% + \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}% + \usebibmacro{title}% + \setunit{\addspace}% + \printtext[parens]{% + \printlist{location}% + \iflistundef{publisher} + {\setunit*{\addcomma\space}} + {\setunit*{\addcolon\space}}% + \printlist{publisher}% + \setunit*{\addcomma\space}% + \printdate}}} + +\newbibmacro*{related:multivolume}[1]{% + \entrydata*{#1}{% + \printtext{% + \printfield{volume}% + \printfield{part}}% + \setunit*{\addcolon\space}% + \usebibmacro{title}% + \ifboolexpr{ + test {\ifnamesequal{author}{savedauthor}} + or + test {\ifnameundef{author}} + } + {} + {\usebibmacro{bytypestrg}{author}{author}% + \setunit{\addspace}% + \printnames[byauthor]{author} + \newunit\newblock}% + \ifboolexpr{ + test {\ifnamesequal{editor}{savededitor}} + or + test {\ifnameundef{editor}} + } + {} + {\usebibmacro{byeditor+others}% + \newunit\newblock}% + \printdate}} + +\newbibmacro*{related:origpubin}[1]{% + \entrydata*{#1}{% + \printfield{year}% + \ifboolexpr{ + test {\iflistsequal{publisher}{savedpublisher}} + or + test {\iflistundef{publisher}} + } + {} + {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}% + \printlist{publisher}% + \setunit{\addcomma\space}% + \iflistsequal{location}{savedlocation} + {} + {\printlist{location}}}}} + +\newbibmacro*{related:origpubas}[1]{% + \entrydata*{#1}{% + \usebibmacro{title}% + \ifboolexpr{ + test {\iflistsequal{publisher}{savedpublisher}} + or + test {\iflistundef{publisher}} + } + {} + {\setunit{\addspace\bibstring[\mkrelatedstring]{bypublisher}\space}% + \printlist{publisher}% + \setunit{\addcomma\space}% + \iflistsequal{location}{savedlocation} + {} + {\printlist{location}}}}} + +\DeclareFieldFormat{title:hook}{% + \begingroup + \mkrelatedstring% + \lbx@inittitlehook{#1}% + \endgroup + \mkbibemph{#1}} + +\newbibmacro*{related:reprintfrom}[1]{% + \entrydata*{#1}{% + \iffieldundef{journaltitle} + {\iffieldundef{maintitle} + {\printfield[title:hook]{booktitle}} + {\printfield[title:hook]{maintitle}}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{volume} + {} + {\printfield{volume}% + \printfield{part}} + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}} + {\printfield[title:hook]{journaltitle}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \usebibmacro{note+pages}}}} + +\endinput diff --git a/Master/texmf-dist/tex/latex/biblatex/biblatex1.sty b/Master/texmf-dist/tex/latex/biblatex/biblatex_legacy.sty index 6f25355af52..11c339aef93 100644 --- a/Master/texmf-dist/tex/latex/biblatex/biblatex1.sty +++ b/Master/texmf-dist/tex/latex/biblatex/biblatex_legacy.sty @@ -1,7 +1,7 @@ % $Id: biblatex.sty,v 1.7 2011/11/13 19:09:07 lehman stable $ % Copyright (c) 2006-2011 Philipp Lehman. -% +% 2012-2016 Philip Kime, Audrey Boruvka, Joseph Wright % Permission is granted to copy, distribute and/or modify this % software under the terms of the LaTeX Project Public License % (LPPL), version 1.3. @@ -15,7 +15,7 @@ % particular purpose. \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{biblatex1} +\ProvidesPackage{biblatex_legacy} [\abx@date\space v\abx@version\space programmable bibliographies (bibtex) (PK/JW/AB)] %% Dependencies @@ -460,7 +460,7 @@ \newtoggle{blx@loadfiles} \newtoggle{blx@singletitle} \newtoggle{blx@terseinits} -\newtoggle{blx@firstinits} +\newtoggle{blx@giveninits} \newtoggle{blx@useauthor} \newtoggle{blx@useeditor} \newtoggle{blx@usetranslator} @@ -1018,13 +1018,13 @@ \newrobustcmd*{\RequireBiber}[1][2]{% \ifnumgreater{#1}\blx@reqbiber {\numgdef\blx@reqbiber{#1}} - {}} + {}% + \blx@checkbackend{style}} \@onlypreamble\RequireBiber \let\blx@reqbiber\z@ \def\blx@checkbackend#1{% - \ifnumequal\blx@backend\blx@backend@biber - {} + \ifblx@load@version@legacy {\ifcase\blx@reqbiber \or \blx@info@noline{% @@ -1039,7 +1039,8 @@ {The selected style or one of the .bib files requires backend=biber.\MessageBreak It will not work at all with any other backend}% - \fi}} + \fi} + {}} % \blx@list@active active aux files (basename) % [internal list] @@ -1070,78 +1071,32 @@ \def\blx@check@logreq{% \begingroup - \ifnum\blx@backend=\blx@backend@biber - \ltxrequest{biblatex}{{\iftoggle{blx@runltx}{1}{0}}}{% - \provides[type=dynamic]{ - \file{\jobname.bcf} - } - \requires[type=dynamic]{ - \file{\jobname.bbl} - } - \ifdef\blx@list@req@edit - {\requires[type=editable]{ - \forlistloop\file\blx@list@req@edit - }} - {} - \ifdef\blx@list@req@stat - {\requires[type=static]{ - \forlistloop\file\blx@list@req@stat - }} - {} - }% - \logrequest[package=biblatex,priority=5,active={{\iftoggle{blx@runbtx}{1}{0}}}]{% - \generic{biber} - \cmdline{ - \binary{biber} - \infile{\jobname} - } - \input{ - \file{\jobname.bcf} - } - \output{ - \file{\jobname.bbl} - } - \provides[type=dynamic]{ - \file{\jobname.bbl} - } - \requires[type=dynamic]{ - \file{\jobname.bcf} - } - \ifcsdef{blx@list@bibfiles@\jobname} - {\requires[type=editable]{ - \def\do{\file} - \dolistcsloop{blx@list@bibfiles@\jobname} - }} - {} - }% - \else - \ltxrequest{biblatex}{{\iftoggle{blx@runltx}{1}{0}}}{% - \provides[type=dynamic]{ - \def\do##1{\file{##1.aux}} - \dolistloop\blx@list@inactive - \file{\blx@ctrlfile@bibtex\blxauxsuffix.bib} - } - \requires[type=dynamic]{ - \def\do##1{\file{##1.bbl}} - \dolistloop\blx@list@inactive - } - \ifdef\blx@list@req@edit - {\requires[type=editable]{ - \forlistloop\file\blx@list@req@edit - }} - {} - \ifdef\blx@list@req@stat - {\requires[type=static]{ - \forlistloop\file\blx@list@req@stat - }} - {} - }% - \def\do##1{% - \ifinlist{##1}{\blx@list@active} - {\blx@logreq@bibtex{1}{##1}} - {\blx@logreq@bibtex{0}{##1}}}% - \dolistloop\blx@list@inactive - \fi + \ltxrequest{biblatex}{{\iftoggle{blx@runltx}{1}{0}}}{% + \provides[type=dynamic]{ + \def\do##1{\file{##1.aux}} + \dolistloop\blx@list@inactive + \file{\blx@ctrlfile@bibtex\blxauxsuffix.bib} + } + \requires[type=dynamic]{ + \def\do##1{\file{##1.bbl}} + \dolistloop\blx@list@inactive + } + \ifdef\blx@list@req@edit + {\requires[type=editable]{ + \forlistloop\file\blx@list@req@edit + }} + {} + \ifdef\blx@list@req@stat + {\requires[type=static]{ + \forlistloop\file\blx@list@req@stat + }} + {} + }% + \def\do##1{% + \ifinlist{##1}{\blx@list@active} + {\blx@logreq@bibtex{1}{##1}} + {\blx@logreq@bibtex{0}{##1}}}% + \dolistloop\blx@list@inactive \endgroup} \def\blx@logreq@bibtex#1#2{% @@ -1196,12 +1151,9 @@ } \def\blx@logreq@active#1{% - \ifnum\blx@backend=\blx@backend@biber - \else - \xifinlist{\blx@auxfile@bibtex}{\blx@list@active} - {} - {\listxadd\blx@list@active{\blx@auxfile@bibtex}}% - \fi + \xifinlist{\blx@auxfile@bibtex}{\blx@list@active} + {} + {\listxadd\blx@list@active{\blx@auxfile@bibtex}}% \ifblank{#1} {} {\@latex@warning{#1}}% @@ -1209,12 +1161,9 @@ \blx@rerun@bibtex} \def\blx@logreq@inactive{% - \ifnum\blx@backend=\blx@backend@biber - \else - \xifinlist{\blx@auxfile@bibtex}{\blx@list@inactive} - {} - {\listxadd\blx@list@inactive{\blx@auxfile@bibtex}}% - \fi} + \xifinlist{\blx@auxfile@bibtex}{\blx@list@inactive} + {} + {\listxadd\blx@list@inactive{\blx@auxfile@bibtex}}} \def\blx@rerun@latex{% \G@refundefinedtrue @@ -1278,15 +1227,9 @@ \def\blx@warn@auxlist{% \begingroup - \ifnum\blx@backend=\blx@backend@biber - \edef\blx@tempa{% - Please (re)run Biber on the file:\MessageBreak - \jobname}% - \else - \edef\blx@tempa{Please (re)run BibTeX on the file(s):}% - \def\do##1{\appto\blx@tempa{\MessageBreak##1}}% - \dolistloop\blx@list@active - \fi + \edef\blx@tempa{Please (re)run BibTeX on the file(s):}% + \def\do##1{\appto\blx@tempa{\MessageBreak##1}}% + \dolistloop\blx@list@active \blx@warning@noline{% \blx@tempa\MessageBreak and rerun LaTeX afterwards}% @@ -1309,7 +1252,7 @@ % 1009 suppress punctuation % 1010 new paragaph -\mathchardef\blx@sf@apo=1001 +\mathchardef\blx@sf@prefixchar=1001 \mathchardef\blx@sf@dot=1002 \mathchardef\blx@sf@comma=1003 \mathchardef\blx@sf@semicolon=1004 @@ -1375,12 +1318,52 @@ \sfcode`\?=3002 } +% Defining characters that count as prefices in names like d'Argent +% Code from moewe +\let\blx@prefchars\@empty + +\def\blx@defprefchars@loop#1{% + \ifx#1\relax + \else + \listadd{\blx@prefchars}{#1}% + \expandafter\blx@defprefchars@loop + \fi} + +\def\blx@defprefchars#1{% + \expandafter\blx@defprefchars@loop\detokenize{#1}\relax} + +\newrobustcmd*{\DeclarePrefChars}{% + \@ifstar + {\blx@defprefchars} + {\let\blx@prefchars\@empty + \blx@defprefchars}} +\DeclarePrefChars{'} + +\protected\def\blx@imc@ifprefchar{% + \ifhmode + \begingroup + \ifnum\spacefactor=\blx@sf@prefixchar + \endgroup + \expandafter\expandafter + \expandafter\@firstoftwo + \else + \endgroup + \expandafter\expandafter + \expandafter\@secondoftwo + \fi + \else + \expandafter\@secondoftwo + \fi} + +\blx@regimcs{\ifprefchar} + \def\blx@namecodes{% \ifnum\sfcode`\A=\@m \else \blx@setazcodes \fi - \sfcode`\'=\blx@sf@apo + \def\do##1{\sfcode`##1=\blx@sf@prefixchar}% + \dolistloop\blx@prefchars } \begingroup @@ -1523,7 +1506,7 @@ \newrobustcmd*{\DeclarePunctuationPairs}[2]{% \ifcsdef{blx@sf@\detokenize{#1}} - {\ifnum\csname blx@sf@\detokenize{#1}\endcsname>\blx@sf@apo + {\ifnum\csname blx@sf@\detokenize{#1}\endcsname>\blx@sf@prefixchar \ifnum\csname blx@sf@\detokenize{#1}\endcsname<\blx@sf@nopunct \expandafter\blx@defpunctpairs \expandafter{\the\csname blx@sf@\detokenize{#1}\endcsname}{#2}% @@ -1556,7 +1539,7 @@ \def\blx@defpair#1{% \ifx% \else - \ifnum\the\sfcode`#1>\blx@sf@apo + \ifnum\the\sfcode`#1>\blx@sf@prefixchar \ifnum\the\sfcode`#1<\blx@sf@nopunct \eappto\blx@tempb{% \cslet{blx@pp@\blx@tempa @\the\sfcode`#1}\noexpand\@empty}% @@ -1850,12 +1833,12 @@ \expandafter\noexpand\csname blx@bbx@#2\endcsname}} \@onlypreamble\DeclareBibliographyAlias +% Ignore first optional argument - only used in biblatex2.sty and biber % {<key>}[<value>]{<code>} - -\newrobustcmd*{\DeclareBibliographyOption}[1]{% +\newrobustcmd*{\DeclareBibliographyOption}[2][]{% \@ifnextchar[%] - {\blx@defbibopt{#1}} - {\blx@defbibopt{#1}[]}} + {\blx@defbibopt{#2}} + {\blx@defbibopt{#2}[]}} \long\def\blx@defbibopt#1[#2]#3{% \ifcsundef{KV@blx@opt@ldt@#1} @@ -1866,12 +1849,12 @@ {\blx@err@optdef{#1}}} {\blx@err@optdef{#1}}} +% Ignore first optional argument - only used in biblatex2.sty and biber % {<key>}[<value>]{<code>} - -\newrobustcmd*{\DeclareTypeOption}[1]{% +\newrobustcmd*{\DeclareTypeOption}[2][]{% \@ifnextchar[%] - {\blx@deftypeopt{#1}} - {\blx@deftypeopt{#1}[]}} + {\blx@deftypeopt{#2}} + {\blx@deftypeopt{#2}[]}} \long\def\blx@deftypeopt#1[#2]#3{% \ifcsundef{KV@blx@opt@typ@#1} @@ -1880,12 +1863,12 @@ {\define@key{blx@opt@typ}{#1}[#2]{#3}}} {\blx@err@optdef{#1}}} +% Ignore first optional argument - only used in biblatex2.sty and biber % {<key>}[<value>]{<code>} - -\newrobustcmd*{\DeclareEntryOption}[1]{% +\newrobustcmd*{\DeclareEntryOption}[2][]{% \@ifnextchar[%] - {\blx@defentryopt{#1}} - {\blx@defentryopt{#1}[]}} + {\blx@defentryopt{#2}} + {\blx@defentryopt{#2}[]}} \long\def\blx@defentryopt#1[#2]#3{% \ifcsundef{KV@blx@opt@ent@#1} @@ -3336,7 +3319,8 @@ \def\ifuseeditor{\iftoggle{blx@useeditor}}% \def\ifusetranslator{\iftoggle{blx@usetranslator}}% \def\ifterseinits{\iftoggle{blx@terseinits}}% - \def\iffirstinits{\iftoggle{blx@firstinits}}% + \def\iffirstinits{\iftoggle{blx@giveninits}}% legacy alias for \ifgiveninits + \def\ifgiveninits{\iftoggle{blx@giveninits}}% \def\ifsingletitle{\iftoggle{abx@bool@singletitle}}% \def\ifandothers#1{\iftoggle{abx@bool@more#1}}% \protected\def\pno{\bibstring{page}}% @@ -3871,9 +3855,7 @@ \c@liststop#2\relax \fi \fi}% - \ifnumequal\blx@backend\blx@backend@biber - {} - {\let~\bibnamedelima}% BibTeX only + \let~\bibnamedelima \blx@namecodes} \def\blx@namesetup@i#1{% @@ -5408,6 +5390,10 @@ \do{singletitle}% } +% Used in some styles but biber-only, here to prevent warnings. +\protected\long\def\abx@dointernalfields{}% +\protected\long\def\DeclareLabelalphaTemplate#1{}% + \def\do#1{% \newcounter{#1}% \newcounter{saved#1}% @@ -5480,12 +5466,7 @@ \def\item{\MessageBreak-\space}% \def\break{\MessageBreak\space\space}% \edef\blx@tempa{% - \ifnum\blx@backend=\blx@backend@biber - Biber - \else - BibTeX - \fi - reported the following issues% + BibTeX reported the following issues% \ifdef\abx@field@entrykey {\MessageBreak with '\abx@field@entrykey'} {}% @@ -5654,14 +5635,12 @@ \csxdef{blx@seti@\the\c@refsection @#1}{\the\blx@tempcnta}} % {<entrykey>} - \protected\def\blx@bbl@inset#1{% \toggletrue{blx@setonly}% \blx@bbl@fieldedef{entryset}{\detokenize{#1}}% \csxdef{blx@setc@\the\c@refsection @\abx@field@entrykey}{\detokenize{#1}}} % {<entrykey>} - \protected\def\blx@bbl@xref#1{% BibTeX only \ifcsdef{blx@refp@\the\c@refsection @\detokenize{#1}} {} @@ -5893,9 +5872,7 @@ {}% \blx@bbl@prefixnumber} {}% - \ifnumless\blx@backend\blx@backend@biber - {\blx@bbl@labelname} - {}% + \blx@bbl@labelname \blx@bbl@titles \blx@bbl@hooks \endgroup} @@ -6206,10 +6183,8 @@ {}% \blx@info@noline{Trying to load bibliographic data..}% \blx@blxinit - \ifnumequal\blx@backend\blx@backend@biber - {\blx@bblfile@biber} - {\blx@bblfile@bibtex - \blx@bblsecs@bibtex}% + \blx@bblfile@bibtex + \blx@bblsecs@bibtex \endgroup \iftoggle{blx@reencode} {\ifdef\@enablequotes @@ -7140,11 +7115,7 @@ {\let\blx@bibfiles\@empty \blx@xsanitizeafter{\forcsvlist\blx@refsection@addfile}{#1}% \forlistloop{\listadd\blx@bibfiles}\blx@bibfiles@global}% - \ifnum\blx@backend=\blx@backend@biber - \blx@refsection@biber - \else - \blx@refsection@bibtex - \fi + \blx@refsection@bibtex \fi \blx@info{Setting label 'refsection:\the\c@refsection'}% \label{refsection:\the\c@refsection}% @@ -7189,11 +7160,7 @@ \def\blx@endrefsection{% \blx@endrefsegment - \ifnum\blx@backend=\blx@backend@biber - \blx@endrefsection@biber - \else - \blx@endrefsection@bibtex - \fi + \blx@endrefsection@bibtex \global\c@refsection\z@} \def\blx@endrefsection@biber{% @@ -7535,13 +7502,11 @@ \def\blx@citation#1#2{% \ifbool{citerequest} - {\ifnumless\blx@backend\blx@backend@biber % BibTeX only - {\ifcsdef{blx@setp@\the\c@refsection @#1} - {\blx@citation@set{#1}{#2}} - {\ifcsdef{blx@setc@\the\c@refsection @#1} - {\blx@citation@inset{#1}{#2}} - {\blx@citation@entry{#1}{#2}}}} - {\blx@citation@entry{#1}{#2}}% + {\ifcsdef{blx@setp@\the\c@refsection @#1} + {\blx@citation@set{#1}{#2}} + {\ifcsdef{blx@setc@\the\c@refsection @#1} + {\blx@citation@inset{#1}{#2}} + {\blx@citation@entry{#1}{#2}}}% \ifcsdef{blx@refc@\the\c@refsection @#1}% BibTeX only {\blx@citation@xref{#1}} {}} @@ -7612,14 +7577,7 @@ {}} \protected\def\blx@bibreq#1{% - \ifnum\blx@backend=\blx@backend@biber - \begingroup - \blx@xmlsanitizeafter{\def\blx@tempa}{#1}% - \blx@auxwrite\blx@auxout{}{\blx@xml@citekey{\blx@tempa}}% - \endgroup - \else - \blx@auxwrite\blx@auxout@bibtex{}{\string\citation{#1}}% - \fi} + \blx@auxwrite\blx@auxout@bibtex{}{\string\citation{#1}}} % {<set>}{<key1,key2,key3>} @@ -7642,10 +7600,7 @@ \csuse{blx@set@\the\c@refsection @\blx@tempa}\MessageBreak new: \blx@tempa\space = \blx@tempb\MessageBreak I'm ignoring the new definition}}} - {\global\cslet{blx@set@\the\c@refsection @\blx@tempa}\blx@tempb - \edef\blx@tempa{% - \AfterPreamble{\blx@setreq{\blx@tempa}{\blx@tempb}}}% - \blx@tempa}% + {\global\cslet{blx@set@\the\c@refsection @\blx@tempa}\blx@tempb}% \endgroup \@esphack} @@ -7653,15 +7608,6 @@ \edef\blx@tempb{\blx@tempb\blx@tempc#1}% \def\blx@tempc{,}} -\protected\def\blx@setreq#1#2{% - \ifnum\blx@backend=\blx@backend@biber - \begingroup - \blx@xmlsanitizeafter{\def\blx@tempa}{#1}% - \blx@xmlsanitizeafter{\def\blx@tempb}{#2}% - \blx@auxwrite\blx@auxout{}{\blx@xml@citeset{\blx@tempa}{\blx@tempb}}% - \endgroup - \fi} - % {<entrykey>,...} \protected\def\blx@citeloop#1{% @@ -8834,7 +8780,8 @@ \def\ifuseeditor{\blx@TE{\iftoggle{blx@useeditor}}}% \def\ifusetranslator{\blx@TE{\iftoggle{blx@usetranslator}}}% \def\ifterseinits{\blx@TE{\iftoggle{blx@terseinits}}}% - \def\iffirstinits{\blx@TE{\iftoggle{blx@firstinits}}}% + \def\iffirstinits{\blx@TE{\iftoggle{blx@giveninits}}}% legacy alias for \ifgiveninits + \def\ifgiveninits{\blx@TE{\iftoggle{blx@giveninits}}}% \def\ifsingletitle{\blx@TE{\iftoggle{abx@bool@singletitle}}}% \def\ifandothers#1{\blx@TE{\iftoggle{abx@bool@more#1}}}}} @@ -9481,212 +9428,6 @@ \blx@xml@endfile}% \immediate\closeout\blx@auxout}} -%% Customization - -% [<exceptions>]{<options>} - -\newrobustcmd*{\DefaultInheritance}[2][]{% - \begingroup - \ifblank{#2} - {} - {\setkeys{blx@inherit@default}{#2}}% - \edef\blx@tempa{\space - inherit\string_all="\iftoggle{blx@inherit@all}{true}{false}"\space - override\string_target="\iftoggle{blx@inherit@override}{true}{false}"}% - \let\blx@tempb\@empty - \let\except\blx@inherit@except - #1% - \xdef\blx@biber@inherit@default{% - \blx@xml@inherit@defaults{\blx@tempa}{\blx@tempb}}% - \endgroup} -\@onlypreamble\DefaultInheritance - -\newtoggle{blx@inherit@all} -\newtoggle{blx@inherit@override} - -\define@key{blx@inherit@default}{all}[true]{% true|false - \settoggle{blx@inherit@all}{#1}} -\define@key{blx@inherit@default}{override}[true]{% true|false - \settoggle{blx@inherit@override}{#1}} - -% {<source>}{<target>}{<options>} - -\newcommand{\blx@inherit@except}[3]{% - \let\blx@tempc\@empty - \ifblank{#3} - {} - {\setkeys{blx@inherit@except}{#3}}% - \eappto\blx@tempb{% - \blx@xml@inherit@type{#1}{#2}{\blx@tempc}}} - -\define@key{blx@inherit@except}{all}[true]{% true|false - \eappto\blx@tempc{ inherit\string_all="#1"}} -\define@key{blx@inherit@except}{override}[true]{% true|false - \eappto\blx@tempc{ override\string_target="#1"}} - -% {<type,type,...>}{<type,type,...>}{<spec>} - -\newrobustcmd*{\DeclareDataInheritance}[3]{% - \begingroup - \let\blx@tempa\@empty - \forcsvlist{\blx@inherit@i{#2}}{#1}% - \let\blx@tempb\@empty - \let\inherit\blx@inherit@field - \let\noinherit\blx@inherit@block - #3% - \xappto\blx@biber@inherit@data{% - \blx@xml@inherit@data{% - \blx@tempa - \blx@tempb}}% - \endgroup} -\@onlypreamble\DeclareDataInheritance - -\def\blx@inherit@i#1#2{% - \forcsvlist{\blx@inherit@ii{#2}}{#1}} - -\def\blx@inherit@ii#1#2{% - \eappto\blx@tempa{\blx@xml@inherit@type{#1}{#2}{}}} - -% [<options>]{<source>}{<target>} - -\newcommand{\blx@inherit@field}[3][]{% - \let\blx@tempc\@empty - \ifblank{#1} - {} - {\setkeys{blx@inherit@field}{#1}}% - \eappto\blx@tempb{% - \blx@xml@inherit@field{#2}{#3}{\blx@tempc}}} - -\newcommand{\blx@inherit@block}[1]{% - \eappto\blx@tempb{\blx@xml@inherit@block{#1}}} - -\define@key{blx@inherit@field}{override}[true]{% true|false - \ifstrequal{#1}{true} - {\edef\blx@tempc{ override\string_target="true"}} - {\edef\blx@tempc{ override\string_target="false"}}} - -\newrobustcmd*{\ResetDataInheritance}{% - \global\csundef{blx@biber@inherit@data}} -\@onlypreamble\ResetDataInheritance - -% {<name>}{<spec>} - -\newrobustcmd*{\DeclareSortingScheme}[2]{% - \begingroup - \let\sort\blx@sortdef@sort - \let\name\blx@sortdef@list - \let\list\blx@sortdef@list - \let\field\blx@sortdef@field - \let\literal\blx@sortdef@literal - \def\citeorder{\blx@sortdef@field{citeorder}}% - \blx@tempcnta\z@ - \let\blx@tempa\@empty - #2% - \global\cslet{blx@biber@sorting@#1}\blx@tempa - \endgroup} -\@onlypreamble\DeclareSortingScheme - -\newcommand{\blx@sortdef@sort}[2][]{% - \advance\blx@tempcnta\@ne - \blx@tempcntb\z@ - \let\blx@tempb\@empty - \edef\blx@tempc{order="\the\blx@tempcnta"}% - \ifblank{#1} - {} - {\setkeys{blx@sortdef@sort}{#1}}% - \let\do\@firstofone - #2% - \eappto\blx@tempa{% - \blx@xml@sort{\blx@tempc}{\blx@tempb}}} - -\define@key{blx@sortdef@sort}{direction}{% ascending|descending - \ifstrequal{#1}{ascending} - {\eappto\blx@tempc{ sort\string_direction="ascending"}} - {\eappto\blx@tempc{ sort\string_direction="descending"}}} -\define@key{blx@sortdef@sort}{final}[true]{% true|false - \ifstrequal{#1}{true} - {\appto\blx@tempc{ final="1"}} - {}} -\define@key{blx@sortdef@sort}{sortcase}[true]{% true|false - \ifstrequal{#1}{true} - {\appto\blx@tempc{ sortcase="1"}} - {\appto\blx@tempc{ sortcase="0"}}} -\define@key{blx@sortdef@sort}{sortupper}[true]{% true|false - \ifstrequal{#1}{true} - {\appto\blx@tempc{ sortupper="1"}} - {\appto\blx@tempc{ sortupper="0"}}} - -\def\blx@sortdef@list#1{% - \advance\blx@tempcntb\@ne - \edef\blx@tempd{order="\the\blx@tempcntb"}% - \eappto\blx@tempb{% - \blx@xml@sortitem{\blx@tempd}{#1}}} - -\newcommand*{\blx@sortdef@field}[2][]{% - \advance\blx@tempcntb\@ne - \edef\blx@tempd{order="\the\blx@tempcntb"}% - \ifblank{#1} - {} - {\setkeys{blx@sortdef@field}{#1}}% - \eappto\blx@tempb{% - \blx@xml@sortitem{\blx@tempd}{#2}}} - -\define@key{blx@sortdef@field}{padside}{% left|right - \ifstrequal{#1}{right} - {\eappto\blx@tempd{ pad\string_side="right"}} - {\eappto\blx@tempd{ pad\string_side="left"}}} -\define@key{blx@sortdef@field}{padwidth}{% integer - \eappto\blx@tempd{ pad\string_width="#1"}} -\define@key{blx@sortdef@field}{padchar}{% character - \blx@xmlsanitizeafter{\def\blx@tempe}{#1}% - \eappto\blx@tempd{ pad\string_char="\blx@tempe"}} -\define@key{blx@sortdef@field}{strside}{% left|right - \ifstrequal{#1}{right} - {\eappto\blx@tempd{ substring\string_side="right"}} - {\eappto\blx@tempd{ substring\string_side="left"}}} -\define@key{blx@sortdef@field}{strwidth}{% integer - \eappto\blx@tempd{ substring\string_width="#1"}} - -\def\blx@sortdef@literal#1{% - \advance\blx@tempcntb\@ne - \blx@xmlsanitizeafter{\def\blx@tempe}{#1}% - \eappto\blx@tempb{% - \blx@xml@sortitem{order="\the\blx@tempcntb"}{\blx@tempe}}} - -% [<type,type,...>]{<string>} - -\newrobustcmd*{\DeclarePresort}[2][]{% - \begingroup - \blx@xmlsanitizeafter{\def\blx@tempa}{#2}% - \ifblank{#1} - {\xdef\blx@bcf@presort{\blx@xml@presort{}{\blx@tempa}}} - {\notblank{#2} - {\forcsvlist{\blx@defpresort\blx@tempa}{#1}} - {\forcsvlist\blx@undefpresort{#1}}}% - \endgroup} -\@onlypreamble\DeclarePresort - -\def\blx@defpresort#1#2{% - \csxdef{blx@bcf@presort@#2}{\blx@xml@presort{#2}{#1}}} -\def\blx@undefpresort#1{% - \global\csundef{blx@bcf@presort@#1}} - -\newrobustcmd*{\DeclareSortExclusion}[2]{% - \forcsvlist{\blx@sortexlude{#2}}{#1}} - -\def\blx@sortexlude#1#2{% - \begingroup - \ifblank{#1} - {\global\csundef{blx@bcf@exclude@#2}} - {\let\blx@tempa\@empty - \forcsvlist\blx@sortexlude@i{#1}% - \csxdef{blx@bcf@exclude@#2}{% - \blx@xml@sortexclude{#2}{\blx@tempa}}} - \endgroup} - -\def\blx@sortexlude@i#1{% - \appto\blx@tempa{\blx@xml@exclude{#1}}} - %% Package options % [<entrytype,entrytype,...>]{<options>} @@ -9740,7 +9481,6 @@ \chardef\blx@backend@bibtex=0 \chardef\blx@backend@bibtexe=1 \chardef\blx@backend@bibtexu=2 -\chardef\blx@backend@biber=3 \cslet{blx@backend@bibtex8}\blx@backend@bibtexe \DeclareBibliographyOption{loadfiles}[true]{% @@ -9792,17 +9532,10 @@ \def\blx@bibtex@sorting@debug{99} \AtEndPreamble{% - \ifnum\blx@backend=\blx@backend@biber - \ifcsdef{blx@biber@sorting@\blx@sorting} - {} - {\blx@err@invopt{sorting=\blx@sorting}{}% - \def\blx@sorting{nty}}% - \else - \ifcsdef{blx@bibtex@sorting@\blx@sorting} - {} - {\blx@err@invopt{sorting=\blx@sorting}{}% - \def\blx@sorting{nty}}% - \fi} + \ifcsdef{blx@bibtex@sorting@\blx@sorting} + {} + {\blx@err@invopt{sorting=\blx@sorting}{}% + \def\blx@sorting{nty}}} \DeclareBibliographyOption{sortcase}[true]{% \settoggle{blx@sortcase}{#1}} @@ -9981,9 +9714,15 @@ \renewrobustcmd*{\bibinitperiod}{\adddot} \renewrobustcmd*{\bibinitdelim}{\addnbspace} \renewrobustcmd*{\bibinithyphendelim}{\adddot\mbox{-}}}} - + +% Legacy for giveninits \DeclareBibliographyOption{firstinits}[true]{% - \settoggle{blx@firstinits}{#1}} + \blx@warning@noline{% + 'firstinits' option is deprecated, use 'giveninits' instead}% + \settoggle{blx@giveninits}{#1}} + +\DeclareBibliographyOption{giveninits}[true]{% + \settoggle{blx@giveninits}{#1}} \DeclareBibliographyOption{abbreviate}[true]{% \ifstrequal{#1}{true} @@ -10709,7 +10448,7 @@ % Load citation and bibliography styles, configuration file -\blx@inputonce{biblatex.def}{generic definitions}{}{}{}{} +\blx@inputonce{biblatex_legacy.def}{generic definitions}{}{}{}{} \iftoggle{blx@natbib} {\blx@inputonce{blx-natbib.def}{natbib compatibility}{}{}{}{}} {} @@ -10734,22 +10473,22 @@ \c@minnames\blx@mincitenames\relax \c@maxitems\blx@maxitems\relax \c@minitems\blx@minitems\relax - \iftoggle{blx@firstinits} + \iftoggle{blx@giveninits} {\ifnumequal\blx@uniquename\blx@opt@uniquename@full {\blx@warn@conflopt{% - 'firstinits' conflicts with 'uniquename=full'.\MessageBreak + 'giveninits' conflicts with 'uniquename=full'.\MessageBreak Setting 'uniquename=init'}% \setkeys{blx@opt@pre}{uniquename=init}} {}% \ifnumequal\blx@uniquename\blx@opt@uniquename@allfull {\blx@warn@conflopt{% - 'firstinits' conflicts with 'uniquename=allfull'.\MessageBreak + 'giveninits' conflicts with 'uniquename=allfull'.\MessageBreak Setting 'uniquename=allinit}% \setkeys{blx@opt@pre}{uniquename=allinit}} {}% \ifnumequal\blx@uniquename\blx@opt@uniquename@minfull {\blx@warn@conflopt{% - 'firstinits' conflicts with 'uniquename=minfull'.\MessageBreak + 'giveninits' conflicts with 'uniquename=minfull'.\MessageBreak Setting 'uniquename=mininit}% \setkeys{blx@opt@pre}{uniquename=mininit}} {}} @@ -10804,14 +10543,9 @@ Data encoding '\blx@bibencoding' specified.\MessageBreak No need to reencode data}% \togglefalse{blx@reencode}} - {\ifnumequal\blx@backend\blx@backend@biber - {\blx@info@noline{% - Data encoding '\blx@bibencoding' specified.\MessageBreak - Backend will reencode on the fly}% - \togglefalse{blx@reencode}} - {\blx@info@noline{% - Data encoding '\blx@bibencoding' specified.\MessageBreak - Reencoding not supported by backend.\MessageBreak + {\blx@info@noline{% + Data encoding '\blx@bibencoding' specified.\MessageBreak + Reencoding not supported by backend.\MessageBreak Falling back to reencoding with inputenc}% \@ifpackageloaded{inputenc} {\toggletrue{blx@reencode}} @@ -10822,7 +10556,7 @@ this setup. Load the 'inputenc/inputenx'\MessageBreak package or use backend=biber. 'luainputenc'\MessageBreak is not supported (use backend=biber instead)}% - \togglefalse{blx@reencode}}}}}}}} + \togglefalse{blx@reencode}}}}}}} {\def\blx@bibencoding{ascii}% \blx@info@noline{% Data encoding not specified.\MessageBreak @@ -10843,40 +10577,20 @@ {\blx@warning@noline{% Data encoding is '\blx@bibencoding'.\MessageBreak Use backend=bibtex8 or backend=biber}}}}% - \ifboolexpr{% - togl {blx@safeinputenc} - and test {\ifnumequal\blx@backend\blx@backend@biber} - and ( test {\@ifpackageloaded{inputenc}} - or - test {\@ifpackageloaded{inputenx}} ) - } - {\def\blx@texencoding{ascii}% - \blx@info@noline{% - Input encoding '\blx@texencoding' forced by\MessageBreak - 'safeinputenc' option}} - {}% } % Deferred last minute setup \AtBeginDocument{% - \blx@checkbackend{style}% \blx@checkencoding \if@filesw - \ifnum\blx@backend=\blx@backend@biber - \blx@ifsigned{\jobname}{bcf} - {\blx@ctrlwrite@biber} - {}% - \blx@bblinput - \else - \blx@auxinit@bibtex\blx@bibfiles - \blx@ifsigned{\blx@ctrlfile@bibtex\blxauxsuffix}{bib} - {\blx@ctrlwrite@bibtex} - {}% - \ifnumless\blx@reqbiber\thr@@ - {\blx@bblinput} - {}% - \fi + \blx@auxinit@bibtex\blx@bibfiles + \blx@ifsigned{\blx@ctrlfile@bibtex\blxauxsuffix}{bib} + {\blx@ctrlwrite@bibtex} + {}% + \ifnumless\blx@reqbiber\thr@@ + {\blx@bblinput} + {}% \blx@maxsection\z@ \fi \let\blx@reqbiber\z@ diff --git a/Master/texmf-dist/tex/latex/biblatex/blx-compat.def b/Master/texmf-dist/tex/latex/biblatex/blx-compat.def index 32562dc6497..dfead5ff694 100644 --- a/Master/texmf-dist/tex/latex/biblatex/blx-compat.def +++ b/Master/texmf-dist/tex/latex/biblatex/blx-compat.def @@ -22,7 +22,7 @@ % biblatex <0.9b -\DeclareBibliographyOption{defernums}[true]{% +\DeclareBibliographyOption[boolean]{defernums}[true]{% \ExecuteBibliographyOptions{defernumbers=#1}} \providecommand*{\lbx@fromlang}{% diff --git a/Master/texmf-dist/tex/latex/biblatex/blx-dm.def b/Master/texmf-dist/tex/latex/biblatex/blx-dm.def index 864c5cec58b..d5e65b6fbdb 100644 --- a/Master/texmf-dist/tex/latex/biblatex/blx-dm.def +++ b/Master/texmf-dist/tex/latex/biblatex/blx-dm.def @@ -3,13 +3,17 @@ \newbool{dmskipout}% \newbool{dmlabelfield}% -\listadd\blx@globalopts{datamodel}% for passing to the .bcf - % Data model .bcf output macros \xdef\blx@xml@datamodel#1{% ~~<bcf:datamodel>\blx@nl #1% ~~</bcf:datamodel>\blx@nl} +\xdef\blx@xml@datamodel@constants#1{% + ~~~~<bcf:constants>\blx@nl + #1% + ~~~~</bcf:constants>\blx@nl} +\xdef\blx@xml@datamodel@constant#1#2#3{% + ~~~~~~<bcf:constant type="#1" name="#2">#3</bcf:constant>\blx@nl} \xdef\blx@xml@datamodel@entrytypes#1{% ~~~~<bcf:entrytypes>\blx@nl #1% @@ -61,6 +65,7 @@ \xdef\blx@xml@datamodel@constraintfieldsub#1{% ~~~~~~~~~~<bcf:field>#1</bcf:field>\blx@nl} + % Data model specification macros \newrobustcmd*{\ResetDatamodelEntrytypes}{% \global\cslet{blx@bcf@datamodel@entrytypes}\@empty @@ -203,6 +208,20 @@ \booltrue{dmlabelfield}} {}} +\newrobustcmd*{\DeclareDatamodelConstant}[3][]{% + \begingroup + \let\blx@tempa\@empty + \ifblank{#1} + {\def\blx@tempa{string}} + {\setkeys{blx@datamodel@constant}{#1}}% + \xappto\blx@bcf@datamodel@constants{\blx@xml@datamodel@constant{\blx@tempa}{#2}{#3}}% + \csxdef{blx@datamodel@constant@#2}{#3}% + \csxdef{blx@datamodel@constanttype@#2}{\blx@tempa}% + \endgroup} + +\define@key{blx@datamodel@constant}{type}{% + \def\blx@tempa{#1}} + \newrobustcmd*{\DeclareDatamodelEntryfields}[2][]{% \begingroup \let\blx@tempa\@empty @@ -300,6 +319,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Data model specification +\DeclareDatamodelConstant[type=list]{gender}{sf,sm,sn,pf,pm,pn,pp} +\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given} +\DeclareDatamodelConstant[type=list]{optiondatatypes}{boolean,integer,string,xml} \DeclareDatamodelEntrytypes{ article, @@ -1571,7 +1593,6 @@ \DeclareDatamodelConstraints[inproceedings]{ \constraint[type=mandatory]{ \constraintfield{author} - \constraintfield{editor} \constraintfield{title} \constraintfield{booktitle} } diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx index 3e6b1c73e90..d5e5183de32 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-comp.cbx @@ -49,7 +49,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}}% + \nametitledelim\bibopenparen}}% \stepcounter{textcitecount}% \savefield{namehash}{\cbx@lasthash}}% \ifnumequal{\value{citecount}}{1} @@ -74,7 +74,7 @@ \ifnameundef{labelname} {\setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}} + \extpostnotedelim\bibopenparen}} {\setunit{\postnotedelim}}% \printfield{postnote}% \ifthenelse{\value{multicitecount}=\value{multicitetotal}} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ibid.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ibid.cbx index fcf370d48d3..2f7c68df495 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ibid.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ibid.cbx @@ -10,7 +10,7 @@ \newbool{cbx:parens} \newbool{cbx:loccit} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} @@ -42,7 +42,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}}% + \nametitledelim\bibopenparen}}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -77,7 +77,7 @@ {}} {\ifbool{cbx:parens} {\postnotedelim} - {\addspace\bibopenparen}% + {\extpostnotedelim\bibopenparen}% \printfield{postnote}\bibcloseparen}} \DeclareCiteCommand{\cite} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx index 828d44bf526..9d248a215eb 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-icomp.cbx @@ -13,7 +13,7 @@ \newbool{cbx:parens} \newbool{cbx:loccit} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} @@ -62,7 +62,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}}% + \nametitledelim\bibopenparen}}% \stepcounter{textcitecount}% \savefield{namehash}{\cbx@lasthash}}% \ifnumequal{\value{citecount}}{1} @@ -103,7 +103,7 @@ {\ifnameundef{labelname} {\setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}} + \extpostnotedelim\bibopenparen}} {\setunit{\postnotedelim}}% \printfield{postnote}}% \ifthenelse{\value{multicitecount}=\value{multicitetotal}} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-tcomp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-tcomp.cbx index 7157e5d67ef..c0e8a1fe57c 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-tcomp.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-tcomp.cbx @@ -53,7 +53,7 @@ {\printnames{labelname} \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nametitledelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -73,7 +73,7 @@ {\setunit{\postnotedelim}} {\setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}}% + \extpostnotedelim\bibopenparen}}% \printfield{postnote}% \ifthenelse{\value{multicitecount}=\value{multicitetotal}} {\setunit{}% diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-terse.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-terse.cbx index 2e3015ef651..a0f7fef85ac 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-terse.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-terse.cbx @@ -29,7 +29,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nametitledelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ticomp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ticomp.cbx index eb19b9de0ae..e485f4fadd9 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ticomp.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle-ticomp.cbx @@ -61,7 +61,7 @@ {\printnames{labelname} \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nametitledelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -83,7 +83,7 @@ {\setunit{\postnotedelim}} {\setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}}% + \extpostnotedelim\bibopenparen}}% \printfield{postnote}% \ifthenelse{\value{multicitecount}=\value{multicitetotal}} {\setunit{}% diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle.cbx index 0ba18e87837..aff0a63a496 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authortitle.cbx @@ -27,7 +27,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}}% + \nametitledelim\bibopenparen}}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -49,7 +49,7 @@ {}} {\ifbool{cbx:parens} {\postnotedelim} - {\addspace\bibopenparen}% + {\extpostnotedelim\bibopenparen}% \printfield{postnote}\bibcloseparen}} \DeclareCiteCommand{\cite} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx index a290293d0ae..966e516fafa 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx @@ -27,7 +27,7 @@ \iffieldundef{shorthand} {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} {\usebibmacro{cite:label}% - \setunit{\addspace}% + \setunit{\nonameyeardelim}% \usebibmacro{cite:labelyear+extrayear}% \usebibmacro{cite:reinit}} {\iffieldequals{namehash}{\cbx@lasthash} @@ -85,7 +85,7 @@ {\usebibmacro{cite:label}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nonameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -94,7 +94,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx index b0e6eee71b3..bf8cc731263 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-ibid.cbx @@ -10,7 +10,7 @@ \newbool{cbx:parens} \newbool{cbx:loccit} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} @@ -22,7 +22,7 @@ {\usebibmacro{cite:ibid}} {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} {\usebibmacro{cite:label}% - \setunit{\addspace}} + \setunit{\nonameyeardelim}} {\printnames{labelname}% \setunit{\nameyeardelim}}% \usebibmacro{cite:labelyear+extrayear}}} @@ -45,7 +45,7 @@ {\usebibmacro{cite:label}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nonameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -54,7 +54,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -99,7 +99,7 @@ {}} {\ifbool{cbx:parens} {\postnotedelim} - {\addspace\bibopenparen}% + {\extpostnotedelim\bibopenparen}% \printfield{postnote}\bibcloseparen}} \DeclareCiteCommand{\cite} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx index e5841f52d09..d662299bcb0 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear-icomp.cbx @@ -11,7 +11,7 @@ \newbool{cbx:parens} \newbool{cbx:loccit} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} @@ -37,7 +37,7 @@ {\usebibmacro{cite:ibid}} {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} {\usebibmacro{cite:label}% - \setunit{\addspace}% + \setunit{\nonameyeardelim}% \usebibmacro{cite:labelyear+extrayear}% \usebibmacro{cite:reinit}} {\iffieldequals{namehash}{\cbx@lasthash} @@ -97,7 +97,7 @@ {\usebibmacro{cite:label}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nonameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -108,7 +108,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx index c0ac1e0eb07..c36c9729b8a 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/authoryear.cbx @@ -11,7 +11,7 @@ \iffieldundef{shorthand} {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} {\usebibmacro{cite:label}% - \setunit{\addspace}} + \setunit{\nonameyeardelim}} {\printnames{labelname}% \setunit{\nameyeardelim}}% \usebibmacro{cite:labelyear+extrayear}} @@ -30,7 +30,7 @@ {\usebibmacro{cite:label}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nonameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -39,7 +39,7 @@ {\printnames{labelname}% \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibopenparen}% + \nameyeardelim\bibopenparen}% \ifnumequal{\value{citecount}}{1} {\usebibmacro{prenote}} {}% @@ -67,7 +67,7 @@ {}} {\ifbool{cbx:parens} {\setunit{\postnotedelim}} - {\setunit{\addspace\bibopenparen}}% + {\setunit{\extpostnotedelim\bibopenparen}}% \printfield{postnote}\bibcloseparen}} \DeclareCiteCommand{\cite} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx index 7792b77e9b0..846a0f75f38 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx @@ -19,12 +19,12 @@ \newbibmacro*{cite:full:citepages}{} \newbibmacro*{cite:postnote}{} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} -\DeclareBibliographyOption{citepages}[permit]{% +\DeclareBibliographyOption[string]{citepages}[permit]{% \ifcsdef{cbx@opt@citepages@#1} {\csuse{cbx@opt@citepages@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx index 848f3628893..df81985a88b 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-inote.cbx @@ -18,14 +18,14 @@ \newbibmacro*{cite:full:citepages}{} \newbibmacro*{cite:postnote}{} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} -\DeclareBibliographyOption{pageref}[true]{% +\DeclareBibliographyOption[boolean]{pageref}[true]{% \settoggle{cbx:pageref}{#1}} -\DeclareBibliographyOption{citepages}[permit]{% +\DeclareBibliographyOption[string]{citepages}[permit]{% \ifcsdef{cbx@opt@citepages@#1} {\csuse{cbx@opt@citepages@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx index 087ba067fb4..b22c4da3cb9 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx @@ -16,13 +16,13 @@ \newbibmacro*{cite:full:citepages}{} \newbibmacro*{cite:postnote}{} -\DeclareBibliographyOption{pageref}[true]{% +\DeclareBibliographyOption[boolean]{pageref}[true]{% \settoggle{cbx:pageref}{#1}% \iftoggle{cbx:pageref} {\ExecuteBibliographyOptions{pagetracker}} {}} -\DeclareBibliographyOption{citepages}[permit]{% +\DeclareBibliographyOption[string]{citepages}[permit]{% \ifcsdef{cbx@opt@citepages@#1} {\csuse{cbx@opt@citepages@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx index 0fb8dfbdde8..b1729fe0d91 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx @@ -17,15 +17,15 @@ \newtoggle{cbx:loccit} \newbool{cbx:noidem} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \settoggle{cbx:ibidpage}{#1}} -\DeclareBibliographyOption{strict}[true]{% +\DeclareBibliographyOption[boolean]{strict}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{ibidtracker=constrict,idemtracker=constrict}} {\ExecuteBibliographyOptions{ibidtracker=context,idemtracker=context}}} -\DeclareBibliographyOption{citepages}[permit]{% +\DeclareBibliographyOption[string]{citepages}[permit]{% \ifcsdef{cbx@opt@citepages@#1} {\csuse{cbx@opt@citepages@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx index a287832b6ee..6cdd7b1cde3 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad2.cbx @@ -22,17 +22,17 @@ \newbibmacro*{cite:full:citepages}{} \newbibmacro*{cite:postnote}{} -\DeclareBibliographyOption{ibidpage}[true]{% +\DeclareBibliographyOption[boolean]{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} -\DeclareBibliographyOption{strict}[true]{% +\DeclareBibliographyOption[boolean]{strict}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{ibidtracker=constrict,idemtracker=constrict}} {\ExecuteBibliographyOptions{ibidtracker=context,idemtracker=context}}} -\DeclareBibliographyOption{citepages}[permit]{% +\DeclareBibliographyOption[string]{citepages}[permit]{% \ifcsdef{cbx@opt@citepages@#1} {\csuse{cbx@opt@citepages@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx index 13f8d641633..5ef371196da 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad3.cbx @@ -15,12 +15,12 @@ \newtoggle{cbx:loccit} -\DeclareBibliographyOption{strict}[true]{% +\DeclareBibliographyOption[boolean]{strict}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{ibidtracker=constrict,loccittracker=constrict}} {\ExecuteBibliographyOptions{ibidtracker=context,loccittracker=context}}} -\DeclareBibliographyOption{citepages}[permit]{% +\DeclareBibliographyOption[string]{citepages}[permit]{% \ifcsdef{cbx@opt@citepages@#1} {\csuse{cbx@opt@citepages@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx index 04d65224ecc..f373895c82a 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose.cbx @@ -16,7 +16,7 @@ \newbibmacro*{cite:full:citepages}{} \newbibmacro*{cite:postnote}{} -\DeclareBibliographyOption{citepages}[permit]{% +\DeclareBibliographyOption[string]{citepages}[permit]{% \ifcsdef{cbx@opt@citepages@#1} {\csuse{cbx@opt@citepages@#1}} {\PackageError{biblatex} diff --git a/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx b/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx index 74336b003a9..298d948840b 100644 --- a/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx +++ b/Master/texmf-dist/tex/latex/biblatex/lbx/french.lbx @@ -54,12 +54,12 @@ \FDP@thinspace\abx@puncthook{?}}% \savecommand\lbx@initnamehook \savecommand\lbx@inittitlehook - \savecommand\mkbibnamelast + \savecommand\mkbibnamefamily \savecommand\mkbibordedition \savecommand\mkbibordseries \let\lbx@initnamehook=\lbx@fr@smartof \let\lbx@inittitlehook=\lbx@fr@smartof - \protected\def\mkbibnamelast#1{% + \protected\def\mkbibnamefamily#1{% \textsc{\textnohyphenation{#1}}}% \def\mkbibordedition{\mkbibfemord}% \def\mkbibordseries{\mkbibfemord}% @@ -68,7 +68,7 @@ \UndeclareBibliographyExtras{% \restorecommand\lbx@initnamehook \restorecommand\lbx@inittitlehook - \restorecommand\mkbibnamelast + \restorecommand\mkbibnamefamily \restorecommand\mkbibordedition \restorecommand\mkbibordseries } diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 723f7bc0cee..01f69e63656 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -5192,9 +5192,12 @@ sub POSTbiber { # move doc pdf. &mv_with_mkdir ("biber.pdf", $DOCDIR); + # we don't do 64-bit Windows. + &SYSTEM ("$RM biber-MSWIN64*"); + # biber uses different platform names. my %tl_platform = ( - "MSWIN" => "win32", + "MSWIN32" => "win32", "amd64-freebsd" => "amd64-freebsd", "cygwin32" => "i386-cygwin", "cygwin64" => "x86_64-cygwin", |