diff options
author | Karl Berry <karl@freefriends.org> | 2018-03-19 21:49:24 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-03-19 21:49:24 +0000 |
commit | a198254d24ccfd63859b7ec9480d95775b087c4e (patch) | |
tree | 49bd922d8362e6398130515ef91e95c3550e3823 /Master/texmf-dist/doc | |
parent | d1c302ed5a53246283181ec1ab9a537ec5a6959e (diff) |
biblatex-ext (19mar18)
git-svn-id: svn://tug.org/texlive/trunk@47029 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/biblatex-ext/CHANGES.md | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/biblatex-ext/README.md | 85 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext-examples.bib | 25 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.pdf | bin | 0 -> 512047 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.tex | 1576 |
5 files changed, 1688 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/biblatex-ext/CHANGES.md b/Master/texmf-dist/doc/latex/biblatex-ext/CHANGES.md new file mode 100644 index 00000000000..1266c271260 --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex-ext/CHANGES.md @@ -0,0 +1,2 @@ +# Version 0.1 (2018-03-18) +- First public release. diff --git a/Master/texmf-dist/doc/latex/biblatex-ext/README.md b/Master/texmf-dist/doc/latex/biblatex-ext/README.md new file mode 100644 index 00000000000..7e78320e27d --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex-ext/README.md @@ -0,0 +1,85 @@ +biblatex-ext - Extended biblatex standard styles +================================================ + +The `biblatex-ext` bundle provides styles that slightly extend the standard +styles that ship with `biblatex`. The styles offered in this bundle provide +a simple interface to change some of the stylistic decisions made in the +standard styles. At the same time they stay as close to their standard +counterparts as possible, so that most customisation methods can be applied +here as well. + +The main motivation was to offer `biblatex` styles that place the editor of +`@incollection` works before the `booktitle`, yet remain close to the standard +styles in overall look and feel and customisability. The code adjustments +required for this are not particularly complicated once you get the hang of it, +but a stable and clean solution requires a rewrite of the bibliography driver, +easily amassing hundred lines of code in the preamble. Some contributed styles +already place the editor before the `booktitle` (`biblatex-apa` comes to mind), +but you may not want to buy into all the other changes that come with choosing +one of them. Styles written for the sole purpose of following a particular +style guide are not always easily modified and may have to go to great lengths +to implement the requirements of the style guide. +The styles of this bundle are intended to be a solid base for further +customisations. + +`biblatex-ext` has an extended version `ext-<style>` for each of `biblatex`'s +standard styles. + +- The base file `standard.bbx` +- The auxiliary file `ext-biblatex-aux.def` +- The `alphabetic` style family + - `ext-alphabetic.bbx` and `ext-alphabetic.cbx` + - `ext-alphabetic-verb.bbx` and `ext-alphabetic-verb.cbx` +- The `authoryear`/`authortitle` helper file `ext-dashed-common.bbx` +- The `authortitle` style family + - `ext-authortitle-common.bbx` + - `ext-authortitle.bbx` and `ext-authortitle.cbx` + - `ext-authortitle-comp.bbx` and `ext-authortitle-comp.cbx` + - `ext-authortitle-ibid.bbx` and `ext-authortitle-ibid.cbx` + - `ext-authortitle-icomp.bbx` and `ext-authortitle-icomp.cbx` + - `ext-authortitle-terse.bbx` and `ext-authortitle-terse.cbx` + - `ext-authortitle-tcomp.bbx` and `ext-authortitle-tcomp.cbx` + - `ext-authortitle-ticomp.bbx` and `ext-authortitle-ticomp.cbx` +- The `authoryear` style family + - `ext-authoryear-common.bbx` + - `ext-authoryear.bbx` and `ext-authoryear.cbx` + - `ext-authoryear-comp.bbx` and `ext-authoryear-comp.cbx` + - `ext-authoryear-ibid.bbx` and `ext-authoryear-ibid.cbx` + - `ext-authoryear-icomp.bbx` and `ext-authoryear-icomp.cbx` + - `ext-authoryear-terse.bbx` and `ext-authoryear-terse.cbx` + - `ext-authoryear-tcomp.bbx` and `ext-authoryear-tcomp.cbx` + - `ext-authoryear-ticomp.bbx` and `ext-authoryear-ticomp.cbx` +- The `numeric` style family + - `ext-numeric.bbx` and `ext-numeric.cbx` + - `ext-numeric-comp.bbx` and `ext-numeric-comp.cbx` + - `ext-numeric-verb.bbx` and `ext-numeric-verb.cbx` +- The `verbose` style family + - `ext-verbose.bbx` and `ext-verbose.cbx` + - `ext-verbose-ibid.bbx` and `ext-verbose-ibid.cbx` + - `ext-verbose-note.bbx` and `ext-verbose-note.cbx` + - `ext-verbose-inote.bbx` and `ext-verbose-inote.cbx` + - `ext-verbose-trad1.bbx` and `ext-verbose-trad1.cbx` + - `ext-verbose-trad2.bbx` and `ext-verbose-trad2.cbx` + - `ext-verbose-trad3.bbx` and `ext-verbose-trad3.cbx` + + +## Licence + +Copyright 2017-2018 Moritz Wemheuer + +This work consists of the `.bbx`, `.cbx` and `.def` files mentioned above. + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License (LPPL), either +version 1.3c of this license or (at your option) any later +version. The latest version of this license is in +http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status 'maintained'. + +The Current Maintainer of the work is Moritz Wemheuer <mwemheu@gmail.com>. + +Please report bugs at https://github.com/moewew/biblatex-ext or via email. +Suggestions for improvements and feature request are also very welcome. diff --git a/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext-examples.bib b/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext-examples.bib new file mode 100644 index 00000000000..db2841814d2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext-examples.bib @@ -0,0 +1,25 @@ +@book{appleby:civ, + author = {Humphrey Appleby}, + title = {On the Importance of the Civil Service}, + date = {1980}, +} + +@book{appleby:abl, + author = {Humphrey Appleby}, + title = {On the Ablative in Greek}, + date = {1982}, +} + +@book{elk:bronto, + author = {Elk, Anne and Hacker, James and Rumpo, Syd}, + title = {On the Theory of Brontosauruses}, + date = {1972}, + options = {maxnames=1, uniquelist=false}, +} + +@book{elk:einio, + author = {Elk, Anne and Hacker, James and Pode, Eric}, + title = {On the Theory of Einiosauruses}, + date = {1973}, + options = {maxnames=1, uniquelist=false}, +}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.pdf b/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.pdf Binary files differnew file mode 100644 index 00000000000..38fa9dd3b54 --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.pdf diff --git a/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.tex b/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.tex new file mode 100644 index 00000000000..919677aab40 --- /dev/null +++ b/Master/texmf-dist/doc/latex/biblatex-ext/biblatex-ext.tex @@ -0,0 +1,1576 @@ +\documentclass[DIV=9]{scrartcl} +\usepackage{ifxetex,ifluatex} +\newif\iffontspec +\ifxetex + \fontspectrue +\else\ifluatex + \fontspectrue +\else + \fontspecfalse +\fi\fi +\iffontspec + \usepackage{fontspec} +\else + \usepackage[T1]{fontenc} + \usepackage[utf8]{inputenc} +\fi +\usepackage[british]{babel} +\usepackage{csquotes} +\usepackage[useregional]{datetime2} +\usepackage{lmodern} +\usepackage[mono=false]{libertine} +\usepackage[libertine]{newtxmath} +\iffontspec + \setmonofont[Scale=0.78]{Bitstream Vera Sans Mono} +\else + \usepackage[scaled=0.78]{beramono} +\fi +\usepackage{microtype} +\usepackage{hyphenat} +\usepackage{bm} +\usepackage{booktabs} +\usepackage{multicol} +\usepackage[svgnames]{xcolor} +\usepackage[listings, breakable, skins]{tcolorbox}% +\usetikzlibrary{arrows.meta} +\usepackage[style=ext-authoryear-icomp, backend=biber]{biblatex} +\addbibresource{biblatex-examples.bib} +\addbibresource{biblatex-ext-examples.bib} + +\DeclareBibliographyCategory{sigfridsson} +\DeclareBibliographyCategory{introcite:opts} +\DeclareBibliographyCategory{introcite:lengths} +\addtocategory{sigfridsson}{sigfridsson} +\addtocategory{introcite:opts}{sigfridsson,knuth:ct:a,knuth:ct:b} +\addtocategory{introcite:lengths}{sigfridsson,coleridge,geer} + +\makeatletter +\iffontspec +\def\textvisiblespace{% + \raisebox{-2.2pt}{% + \mbox{\kern.04em\vrule \@height.5ex \@width.12ex}% + \vbox{\hrule \@width.2em \@height.12ex}% + \hbox{\vrule \@height.5ex \@width.12ex}% + \kern.04em}} +\fi +\makeatother + + +\usepackage{ltxdockit} +\usepackage{btxdockit} +\usepackage{cleveref} +\hypersetup{% + colorlinks=true, + allcolors=spot, + bookmarksopen=false, + bookmarksnumbered=false, + plainpages=false} + +\definecolor{highlight1}{RGB}{240, 0, 0} +\definecolor{highlight2}{RGB}{0,153, 153} +\definecolor{spot}{rgb}{0,0.2,0.6} + +\lstdefinestyle{extblxstylegeneral}{% + aboveskip = {0\p@ \@plus 6\p@}, + belowskip = {0\p@ \@plus 6\p@}, + tabsize = 2, + breaklines = true, + breakatwhitespace = true, + keepspaces = true, + escapeinside = {(*@}{@*)}, + moredelim = {[is][\ttfamily\bfseries\color{highlight1}]{|}{|}}, + moredelim = {[is][\ttfamily\bfseries\color{highlight1}]{|1}{1|}}, + moredelim = {[is][\ttfamily\bfseries\color{highlight2}]{|2}{2|}}, +} + +\lstdefinelanguage{extBibTeX}{% + morekeywords=[1]{% + @article,@artwork,@audio,@bibnote,@book,@bookinbook,@booklet,% + @collection,@commentary,@customa,@customb,@customc,@customd,% + @custome,@customf,@inbook,@incollection,@inproceedings,% + @inreference,@image,@jurisdiction,@legal,@legislation,@letter,% + @manual,@misc,@movie,@music,@mvcollection,@mvreference,% + @mvproceedings,@mvbook,@online,@patent,@performance,@periodical,% + @proceedings,@reference,@report,@review,@set,@software,@standard,% + @suppbook,@suppcollection,@suppperiodical,@thesis,@unpublished,@video% + }, + morekeywords=[2]{author,title,date}, + keywordstyle=[1]{\bfseries\spotcolor}, + keywordstyle=[2]{\spotcolor}, + sensitive=false, +} + +\lstdefinestyle{extblxstylelatex}{% + language = {[LaTeX]TeX}, + style = {extblxstylegeneral}, +} + +\lstdefinestyle{extblxstylebibtex}{% + language = {extBibTeX}, + style = {extblxstylegeneral}, +} + + +\newcommand*{\highlight}[2][1]{\textcolor{highlight#1}{#2}} +\newcommand*{\highlightbf}[2][1]{\textcolor{highlight#1}{\textbf{#2}}} +\DeclareFieldFormat{highlight1}{\textcolor{highlight1}{#1}} +\DeclareFieldFormat{highlight2}{\textcolor{highlight2}{#1}} + +\newtcolorbox{bibexample}[1][]{enhanced, + colframe=spot!75!black, colback=spot!5!white, + #1} +\newtcblisting{biblatexcode}{enhanced, + colframe=black!75!white, colback=black!5!white, + listing only, + frame hidden, + breakable, + listing style=extblxstylelatex} +\newtcblisting{bibtexfile}{enhanced, + colframe=black!75!white, colback=black!5!white, + listing only, + frame hidden, + breakable, + listing style = extblxstylebibtex} + +\newtcbinputlisting{\inputexamplebibfile}[2][]{% + listing file={#2}, + enhanced, + colframe=black!75!white, colback=black!5!white, + listing only, + frame hidden, + breakable, + listing style = extblxstylebibtex, + #1} + +\makeatletter +\AtUsedriver*{% + \let\newblock\relax + \let\abx@macro@bibindex\@empty + \let\abx@macro@pageref\@empty} + + +% this is taken from ltxdockit.cls, which is not loaded +\newrobustcmd*{\fnurl}[1][]{\hyper@normalise\ltd@fnurl{#1}} +\def\ltd@fnurl#1#2{\footnote{#1\hyper@linkurl{\Hurl{#2}}{#2}}} + +\newrobustcmd*{\email}{\hyper@normalise\ltd@email} +\def\ltd@email#1{\href{mailto:#1}{#1}} + +% title +\providecommand*{\titlepage}{} +\providecommand*{\titlefont}{} +\renewrobustcmd*{\titlepage}[1]{\setkeys{ltd@ttp}{#1}} +\renewcommand*{\titlefont}{\bfseries} +\define@key{ltd@ttp}{title}{\def\ltd@title@title{#1}} +\define@key{ltd@ttp}{subtitle}{\def\ltd@title@subtitle{#1}} +\define@key{ltd@ttp}{url}{\def\ltd@title@url{#1}} +\define@key{ltd@ttp}{author}{\def\ltd@title@author{#1}} +\define@key{ltd@ttp}{link}{\def\ltd@title@link{#1}} +\define@key{ltd@ttp}{revision}{\def\ltd@title@revision{#1}} +\define@key{ltd@ttp}{date}{\def\ltd@title@date{#1}} + +\providecommand*{\printtitlepage}{} +\renewrobustcmd*{\printtitlepage}{% + \begingroup + \centering\titlefont + \begingroup\LARGE + \ifundef\ltd@title@url + {\ltd@title@title} + {\href{\ltd@title@url}{\ltd@title@title}}% + \par + \endgroup + \vspace{0.25\baselineskip} + \begingroup\large + \ltd@title@subtitle\par + \endgroup + \vspace{0.25\baselineskip} + \begin{multicols}{2} + \raggedleft + \ltd@title@author\par + \expandafter\email\expandafter{\ltd@title@link}\par + \raggedright + Version \ltd@title@revision\par\ltd@title@date + \end{multicols} + \endgroup} + +\BeforeStartingTOC[toc]{\begin{multicols}{2}} +\AfterStartingTOC[toc]{\end{multicols}} + +\newrobustcmd*{\tex}{TeX} +\newrobustcmd*{\etex}{\mbox{e-TeX}} +\newrobustcmd*{\pdftex}{pdf\-\tex} +\newrobustcmd*{\xetex}{Xe\-\tex} +\newrobustcmd*{\luatex}{Lua\-\tex} +\newrobustcmd*{\latex}{La\kern-0.07em TeX} +\newrobustcmd*{\pdflatex}{pdf\-\latex} +\newrobustcmd*{\xelatex}{Xe\-\latex} +\newrobustcmd*{\lualatex}{Lua\-\latex} +\newrobustcmd*{\bibtex}{Bib\kern-0.07em TeX} +\newrobustcmd*{\lppl}{\latex{} Project Public License} +\newrobustcmd*{\pdf}{\acr{PDF}} +\newrobustcmd*{\utf}{\mbox{\acr{UTF}-8}} + +\pdfstringdefDisableCommands{% + \def\tex{TeX}% + \def\etex{e-TeX}% + \def\xetex{XeTeX}% + \def\latex{LaTeX}% + \def\xelatex{XeLaTeX}% + \def\bibtex{BibTeX}% + \def\lppl{LaTeX Project Public License}% + \def\pdf{PDF}% + \def\utf{UTF-8}% +} + +\let\accentcolour\spotcolor + +\addtokomafont{section}{\accentcolour} +\addtokomafont{subsection}{\accentcolour} +\addtokomafont{subsubsection}{\accentcolour} + +\renewcommand*{\verbatimfont}{\ttfamily} +\renewcommand*{\displayverbfont}{\ttfamily} +\renewcommand*{\marglistfont}{\accentcolour\sffamily\small} +\renewcommand*{\margnotefont}{\sffamily\small} +\renewcommand*{\optionlistfont}{\accentcolour\sffamily\displayverbfont} +\renewcommand*{\ltxsyntaxfont}{\ttfamily} +\renewcommand*{\ltxsyntaxlabelfont}{\accentcolour\displayverbfont} +\renewcommand*{\changelogfont}{\normalfont} +\renewcommand*{\changeloglabelfont}{\accentcolour\sffamily\bfseries} +\newcommand*{\stylelistfont}{\accentcolour\sffamily\small} + +\newenvironment*{stylelist} + {\list{}{% + \setlength{\labelwidth}{\marglistwidth}% + \setlength{\labelsep}{\marglistsep}% + \setlength{\leftmargin}{0pt}% + \renewcommand*{\makelabel}[1]{\hss\stylelistfont##1}}% + \def\styleitem##1{% + \item[{##1}]% + \ltd@pdfbookmark{##1}{##1}}} + {\endlist} + +\newenvironment*{keymarglistbook} + {\marglist + \setlength{\itemsep}{0pt}% + \raggedright + \let\@@item\item + \def\item[##1]{% + \@@item[{##1}]% + \ltd@pdfbookmark{##1}{##1}}} + {\endmarglist} + +% modified for correct measurements +\def\ltd@option@i#1#2#3#4[#5]{% + \item[#2]% + \ltd@pdfbookmark{#1}{#1}% + \begingroup\raggedright + \ltd@textverb{=}% + \settowidth\@tempdimb{\ltd@textverb{=}}% + \settowidth\@tempdimc{\optionlistfont#2}% + \ifdim\@tempdimc>\marglistwidth + \@tempdimc=\dimexpr\@tempdimc-\marglistwidth\relax + \else + \@tempdimc=0pt + \fi + \@tempdima=\dimexpr\linewidth-\@tempdimb-\@tempdimc\relax + \ifblank{#4} + {} + {\settowidth\@tempdimb{default: #4}% + \@tempdima=\dimexpr\@tempdima-\@tempdimb-2em\relax}% + \parbox[t]{\@tempdima}{\raggedright #3}% + \ifblank{#4} + {} + {\hfill default:~#4}% + \ifblank{#5} + {} + {\marginpar{\margnotefont #5}}% + \par\endgroup + \nobreak\vspace{\itemsep}} + +\blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex}{}{}{}{} +\newcommand*{\biblatexversion}{\extblx@requiredbiblatexversion} +\newcommand*{\biblatexdate}{\extblx@requiredbiblatexdate} + +\AtEndPreamble{% + \deflength{\marglistwidth}{(\oddsidemargin+2cm)*85/100}} +\makeatother + +% By Stefan Kottwitz, see https://tex.stackexchange.com/a/799/35864 +\newcommand*\justify{% + \fontdimen2\font=0.4em% interword space + \fontdimen3\font=0.2em% interword stretch + \fontdimen4\font=0.1em% interword shrink + \fontdimen7\font=0.1em% extra space + \hyphenchar\font=`\-% allowing hyphenation +} + +% no \mbox here, we may have to break things +\renewrobustcmd*{\sty}[1]{{\verbatimfont\justify #1}} +\renewrobustcmd*{\bibfield}[1]{\sty{#1}} +\renewrobustcmd*{\opt}[1]{\sty{#1}} +\newrobustcmd*{\bibmacro}[1]{\sty{#1}} +\renewrobustcmd*{\bibtype}[1]{\sty{@#1}} +\renewrobustcmd*{\cmd}[1]{\sty{\textbackslash #1}} + + +\newcommand*{\gitbaseurl}{https://github.com/moewew/biblatex-ext} +\newcommand*{\extblxversion}{0.1} +\newcommand*{\biber}{Biber} +\newcommand*{\gitissuelink}[1]{% + \href{\gitbaseurl/issues/#1}{issue \##1 on github}} + +\titlepage{% + title = {The \sty{biblatex-ext} Bundle}, + subtitle = {Extensions for the \sty{biblatex} standard styles}, + url = {\gitbaseurl}, + author = {Moritz Wemheuer}, + link = {mwemheu@gmail.com},% + revision = {\extblxversion}, + date = {\DTMDate{2018-03-18}}, +} + +\hypersetup{% + pdftitle = {The biblatex-ext Bundle}, + pdfsubject = {Extensions for the \sty{biblatex} standard styles}, + pdfauthor = {Moritz Wemheuer}, + pdfkeywords = {latex, biblatex, bibtex, bibliography, references, citation}, +} + +\hyphenation{% + star-red + un-star-red + bib-lio-gra-phy + white-space + bib-open-paren + bib-close-paren + bib-open-bracket + bib-close-bracket +} + +\begin{document} + +\printtitlepage +\tableofcontents + +\section{Introduction}\label{sec:int} +\subsection{About} +The \sty{biblatex-ext} bundle provides an extended version of the standard +styles that come with \sty{biblatex}. +For each standard style this bundle provides a style with the same name +prefixed with \texttt{ext-} which can be used as a drop-in replacement for the +standard style -- for example, the replacement for \sty{authoryear-icomp} +is called \sty{ext-authoryear-icomp}. + +The aim of the styles of this bundle is to offer a simple interface to change +some of the stylistic decisions made for the standard styles that would +otherwise need cumbersome and tedious redefinitions. +Additionally, some customisation features that were not deemed appropriate +for inclusion in the \sty{biblatex} kernel are provided. +Other than that the styles are as close to the standard styles as possible. +They do not attempt to offer options or commands for customisations that +are already fairly simple to achieve with the tools provided by the standard +styles.\footnote{Please be gentle and allow for a lot of wiggle room for what +exactly \enquote{simple} means. And don't get mad if the principle is not +followed at all times and the occasional solution for things that already are +\enquote{simple enough} pop up here and there.} + +The initial motivation for this bundle was what has now become the option +\opt{in\-name\-before\-title}. +It is fairly straighforward to print the name of the editor of an +\bibtype{incollection} before the \bibfield{booktitle}. +But if one does not want to resort to clever tricks,% +\footnote{See \url{https://tex.stackexchange.com/q/122218/} and +\url{https://tex.stackexchange.com/q/173638/} for example.} +the modifications needed to do this in a stable, safe and clean manner by +redefining the bibliography drivers can easily amass hundred lines of code -- +code you may not want to see in your preamble. +Some contributed \sty{biblatex} styles already place the editor in the +desired position, but you may not want to commit to the other changes implied +by switching to one of those styles. +Especially styles written for the sole purpose of implementing the requirements +of a particular style guide may have to go to great lengths to do so and are +therefore not as easily modified as the standard styles. +The styles of this bundle, on the other hand, try to stay as close to the +standard styles as possible both in output and implementation to allow you +to customise the styles with minimum additional effort over the standard styles. + + +A few words of warning: +The styles of this bundle are only really useful if you want to use one of their +features to avoid having to go through the lengthy and tedious redefinitions the +standard styles would require. +Before you get involved in modifying the standard styles or one of the styles +of this bundle, you may want to have a look at the host of other styles +available for \sty{biblatex},\fnurl{https://www.ctan.org/topic/biblatex} +maybe you are lucky and the style you are looking for has already been +implemented by someone else. +As was the intention, most methods to modify the standard styles are also +applicable to the styles of this bundle, but you may break some of their +features if you happen to modify something that the \sty{ext-} styles redefine +themselves. +While many contributed \sty{biblatex} styles are examples of good \sty{biblatex} +style coding, this can not be said of all of the files included in this bundle. +Especially the citation styles for compact citations have to work harder +to implement the citation delimiter feature properly. +So if you want to get inspired for your \sty{biblatex} coding, be warned that +terrible things lurk in the \sty{.cbx} files. +The standard \sty{.cbx} files will give you a much better impression of how +things should be done. + + +\subsection{Requirements}\label{sec:req} +The use of the styles requires a current version of the \sty{biblatex} package. +At the time of writing the latest version of \sty{biblatex} is +\biblatexversion{} (dated \biblatexdate), +that version is required for the styles to work properly. +A warning will be issued if you use an older version. +You may choose to ignore that warning, but the styles can not be guaranteed to +work properly in that case: +you might get other warnings, errors or some features of the style might just +fail silently. + +Use of the \biber{} backend is strongly encouraged. +Most of the new features of this bundle do not require \biber{} explicitly in +their implementation, but many \sty{biblatex} standard features only work +properly with \biber{}. + +\subsection{License}\label{sec:license} +Permission is granted to copy, distribute and\slash or modify this software +under the terms of the \lppl, version 1.3c% +\fnurl{https://www.latex-project.org/lppl/lppl-1-3c.txt} +or (at your option) any later version% +\fnurl{https://www.latex-project.org/lppl.txt}. +This bundle is maintained by Moritz Wemheuer (\textcopyright 2017--2018). + + +\subsection{Feedback}\label{sec:feedback} +You can use the \sty{biblatex-ext} project page on GitHub% +\footnote{\url{\gitbaseurl}} to report bugs and +submit suggestions and feature requests, or you can do so via email. + +If you do not want to report a bug or request a feature, but are simply in need +of assistance, you might want to consider posting your question on the +\texttt{comp.text.tex} newsgroup or \tex{} -- \latex{} Stack Exchange.% +\fnurl{https://tex.stackexchange.com/questions/tagged/biblatex} + +\section{Use}\label{sec:use} +The \sty{biblatex-ext} bundle is a collection of \sty{biblatex} style files. +You can load the styles exactly as you would load the standard styles: +\begin{biblatexcode} +\usepackage[style=(*@$\langle$\normalfont\emph{style}$\rangle$@*)]{biblatex} +\end{biblatexcode} +The naming of the styles follows the scheme +\mbox{\texttt{ext-}$\langle$\emph{standard style}$\rangle$}, e.g., +the style corresponding to \sty{authoryear-icomp} is called +\sty{ext-authoryear-icomp}. + +\section{Styles}\label{sec:styles} +This bundle provides an extended version of each standard style as well as a +few new styles. +\subsection{Standard styles}\label{sec:styles:standard} +Please refer to the \sty{biblatex} documentation% +\fnurl{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf} +and the style examples% +\fnurl{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/examples/} +for a more detailed description of each standard style. +The relations between the styles are exactly as in their standard counterparts. +The \texttt{ext-} styles only build on top of the standard files. +\begin{stylelist} +\styleitem{ext-numeric} +An extended version of the standard \sty{numeric} style for citations with +numeric labels. +\begin{bibexample}[] +[1, 2, 3, 5, 6, 7] +\end{bibexample} + +\styleitem{ext-numeric-comp} +An extended version of the standard \sty{numeric-comp} style. +Similar to \sty{ext-numeric}, but citation labels are +compressed to give \enquote{[1--3, 5--7]} instead of +\enquote{[1, 2, 3, 5, 6, 7]}. +\begin{bibexample}[] +[1--3, 5--7] +\end{bibexample} + +\styleitem{ext-numeric-verb} +An extended version of the standard \sty{numeric-verb} style. +This style is similar to the \sty{numeric} style, but each citation label +is in its own set of brackets: \enquote{[1], [2], [3]}. +\begin{bibexample}[] +[1], [2], [3], [5], [6], [7] +\end{bibexample} + +\styleitem{ext-alphabetic} +An extended version of the standard \sty{alphabetic} style for citations with +alphabetic labels derived from author name and year. +\begin{bibexample}[] +[SR98, Knu86c] +\end{bibexample} + +\styleitem{ext-alphabetic-verb} +An extended version of the standard \sty{alphabetic-verb} style. +This style is based on \sty{ext-alphabetic}, but like +\sty{ext-numeric-verb} places each citation label in its own pair of +brackets: \enquote{[SR98], [Knu86c]}. +\begin{bibexample}[] +[SR98], [Knu86c] +\end{bibexample} + +\styleitem{ext-authoryear} +An extended version of the standard \sty{authoryear} style for citations +using author name and year. +\begin{bibexample} +Sigfridsson and Ryde 1998 +\end{bibexample} + +\styleitem{ext-authoryear-comp} +An extended version of the standard \sty{authoryear-comp} style. +The style is based on the author-year citations of \sty{ext-authoryear}, +but several works by the same author are compressed by not displaying the +author multiple times: \enquote{Knuth 1984, 1986} instead of +\enquote{Knuth 1984; Knuth 1986}. +\begin{bibexample} +Knuth 1984, 1986 +\end{bibexample} + +\styleitem{ext-authoryear-ibid} +An extended version of the standard \sty{authoryear-ibid} style. +This style is similar to \sty{ext-authoryear}, but repeated citations are +replaced with \enquote{ibidem}. +\begin{bibexample} +Knuth 1984\quad ibid. +\end{bibexample} + +\styleitem{ext-authoryear-icomp} +An extended version of the standard \sty{authoryear-icomp} style. +This style combines the two styles \sty{ext-authoryear-comp} and +\sty{ext-authoryear-ibid}. +\begin{bibexample} +Knuth 1984, 1986 \quad Sigfridsson and Ryde 1998 \quad ibid. +\end{bibexample} + +\styleitem{ext-authortitle} +An extended version of the standard \sty{authortitle} style for citations +by author and title. +\begin{bibexample} +Maron, \emph{Animal Triste} +\end{bibexample} + +\styleitem{ext-authortitle-comp} +An extended version of the standard \sty{authortitle-comp} style. +This style is based on \sty{ext-authortitle} and compresses several citations +by the same author just like \sty{ext-author\-year-comp}: +\enquote{Aristotle, \emph{Physics}, \emph{Poetics}} instead of +\enquote{Aristotle, \emph{Physics}; Aristotle, \emph{Poetics}}. +\begin{bibexample} +Aristotle, \emph{Physics}, \emph{Poetics} +\end{bibexample} + +\styleitem{ext-authortitle-ibid} +An extended version of the standard \sty{authortitle-ibid} style. +This style is similar to \sty{ext-authortitle}, but replaces repeated +citations of the same work with \enquote{ibidem}. +\begin{bibexample} +Maron, \emph{Animal Triste}\quad ibid. +\end{bibexample} + +\styleitem{ext-authortitle-icomp} +An extended version of the standard \sty{authortitle-icomp} style. +This style combines \sty{ext-authortitle-comp} and +\sty{ext-authortitle-ibid}. +\begin{bibexample} +Aristotle, \emph{Physics}, \emph{Poetics}\quad Maron, \emph{Animal Triste}\quad +ibid. +\end{bibexample} + +\styleitem{ext-authortitle-terse} +An extended version of the standard \sty{authortitle-terse} style. +This style is similar to \sty{ext-authortitle}, but the title is omitted in +citations if there is only one work by the relevant author. +\begin{bibexample} +Sigfridsson and Ryde \quad Aristotle, \emph{Physics}; Aristotle, \emph{Poetics} +\end{bibexample} + +\styleitem{ext-authortitle-tcomp} +An extended version of the standard \sty{authortitle-tcomp} style. +This style combines \sty{ext-authortitle-terse} and +\sty{ext-authortitle-comp}. +\begin{bibexample} +Sigfridsson and Ryde \quad Aristotle, \emph{Physics}, \emph{Poetics} +\end{bibexample} + +\styleitem{ext-authortitle-ticomp} +An extended version of the standard \sty{authortitle-ticomp} style. +This style combines \sty{ext-authortitle-terse}, +\sty{ext-authortitle-comp} and \sty{ext-authortitle-ibid}. +\begin{bibexample} +Aristotle, \emph{Physics}, \emph{Poetics} \quad Sigfridsson and Ryde \quad ibid. +\end{bibexample} + +\styleitem{ext-verbose} +An extended version of the standard \sty{verbose} style. +This style shows the full bibliographic reference the first time a work is +cited. + +\styleitem{ext-verbose-ibid} +An extended version of the standard \sty{verbose-ibid} style. +Based on \sty{ext-verbose}, repeated citations to the same work are replaced +with \enquote{ibidem}. + +\styleitem{ext-verbose-note} +An extended version of the standard \sty{verbose-note} style. +Based on \sty{ext-verbose} and intended for use in footnotes, subsequent +citations link back to the footnote the entry was cited at first and in full. + +\styleitem{ext-verbose-inote} +An extended version of the standard \sty{verbose-inote} style. +Similar to \sty{verbose-note}, but repeated citations to the same work are +replaced with \enquote{ibidem}. + +\styleitem{ext-verbose-trad1} +An extended version of the standard \sty{verbose-trad1} style. +This style makes extensive use of scholarly abbreviations and is otherwise +similar to \sty{ext-verbose}. + +\styleitem{ext-verbose-trad2} +An extended version of the standard \sty{verbose-trad2} style. +The style is similar to \sty{ext-verbose-inote} and +uses scholarly abbreviations to shorten citations. + +\styleitem{ext-verbose-trad3} +An extended version of the standard \sty{verbose-trad3} style. +This style is similar to \sty{ext-verbose-trad2}. +\end{stylelist} + +\subsection{New styles}\label{sec:styles:new} +The following styles are not mere extensions of a particular standard style, +instead they implement new combinations of the concepts available in the +standard styles. +\begin{stylelist} +\styleitem{ext-authoryear-terse} +An author-year citation style that suppresses years for author lists with only +one work in the bibliography. +This style is like \sty{ext-authortitle-terse}, but it is based on +\sty{ext-authoryear} and not on \sty{ext-authortitle}. +\begin{bibexample} +Sigfridsson and Ryde \quad Knuth 1984 \quad Knuth 1986 +\end{bibexample} + +\styleitem{ext-authoryear-tcomp} +A compact author-year citation style that suppresses years for author lists +with only one work in the bibliography. +This style is like \sty{ext-authortitle-tcomp}, but it is based on +\sty{ext-authoryear} and not on \sty{ext-authortitle}. +\begin{bibexample} +Sigfridsson and Ryde \quad Knuth 1984, 1986 +\end{bibexample} + +\styleitem{ext-authoryear-ticomp} +A compact author-year citation style with \enquote{ibidem} function that +suppresses years for author lists with only one work in the bibliography. +This style is like \sty{ext-authortitle-ticomp}, but it is based on +\sty{ext-authoryear} and not on \sty{ext-authortitle}. +\begin{bibexample} +Sigfridsson and Ryde \quad ibid. \quad Knuth 1984, 1986 +\end{bibexample} + +\end{stylelist} + + +\section{Options}\label{sec:opt} +All options of the \sty{biblatex} package are supported and each style supports +the options of its standard counterpart. + +\subsection{General options}\label{sec:opt:gen} +Additionally, all styles support the following options in global, per-type and +per-entry scope. +The default values are such that the styles can be used as drop-in replacement +for the standard files without significant changes in output. + +\begin{optionlist} +\boolitem[true]{articlein} +Whether or not to display \enquote{in:} before the journal information in +\bibtype{article} entries. +All other entry types are not affected by this option. + +\begin{bibexample}[title={\kvopt{articlein}{true}}] +\makeatletter +\togglefalse{bbx:doi} +\renewbibmacro*{in:}{% + \blx@begunit\blx@endunit + \printtext[highlight1]{% + \printtext{% + \bibstring{in}\intitlepunct}}} +\toggletrue{bbx:articlein}\fullcite{sigfridsson} +\renewbibmacro*{in:}{% + \blx@begunit\blx@endunit + \printtext[highlight2]{% + \printtext{% + \bibstring{in}\intitlepunct}}} +\smallskip\par\fullcite{brandt} +\makeatother +\end{bibexample} + +\begin{bibexample}[title={\kvopt{articlein}{false}}] +\togglefalse{bbx:doi} +\togglefalse{bbx:articlein}\fullcite{sigfridsson} +\makeatletter +\renewbibmacro*{in:}{% + \blx@begunit\blx@endunit + \textcolor{highlight2}{% + \printtext{% + \bibstring{in}\intitlepunct}}} +\smallskip\par\fullcite{brandt} +\makeatother +\end{bibexample} + +\boolitem[false]{citeinxref} +This option controls if \bibtype{inbook}, \bibtype{incollection} and +\bibtype{inproceedings} entries that are tied to a parent entry with +\bibfield{xref} or \bibfield{crossref} should cite their parent in the +bibliography if the parent is listed in the bibliography as a separate entry. +With the default setting \kvopt{citeinxref}{false} the parent is not cited, the +entry is shown as in the standard styles. If the option is set to +\opt{true}, the block following the \enquote{in:} is replaced by a citation +to the parent entry. +The option itself does \emph{not} cause the parent entry to be added to the +bibliography, this needs to happen either explicitly by citing the parent +(this includes \cmd{nocite}) or implicitly via the \opt{minxrefs} or +\opt{mincrossrefs} option. + +\nocite{westfahl:frontier} +\begin{bibexample}[title={\kvopt{citeinxref}{true}}] +\makeatletter +\renewbibmacro*{crosscite}[1]{% + \printtext[highlight1]{% + \iftoggle{bbx:citeinxref} + {\iffieldundef{crossref} + {\iffieldundef{xref} + {\usebibmacro{#1}} + {\printtext{\bbx@cite@inxref{\thefield{xref}}}}} + {\printtext{\bbx@cite@inxref{\thefield{crossref}}}}} + {\usebibmacro{#1}}}} +\makeatother +\toggletrue{bbx:citeinxref}\fullcite{westfahl:space} +\end{bibexample} + +\begin{bibexample}[title={\kvopt{citeinxref}{false}}] +\makeatletter +\renewbibmacro*{crosscite}[1]{% + \printtext[highlight1]{% + \iftoggle{bbx:citeinxref} + {\iffieldundef{crossref} + {\iffieldundef{xref} + {\usebibmacro{#1}} + {\printtext{\bbx@cite@inxref{\thefield{xref}}}}} + {\printtext{\bbx@cite@inxref{\thefield{crossref}}}}} + {\usebibmacro{#1}}}} +\makeatother +\togglefalse{bbx:citeinxref}\fullcite{westfahl:space} +\end{bibexample} + +\boolitem[false]{innamebeforetitle} +Whether or not the \bibfield{editor} should be moved before the +\bibfield{booktitle} field for \bibtype{inbook}, \bibtype{incollection} and +\bibtype{inproceedings} entries. + +\begin{bibexample}[title={\kvopt{innamebeforetitle}{true}}] +\makeatletter +\renewbibmacro*{bbx:in:editor}[1]{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printtext[highlight1]{% + \ifboolexpr{togl {bbx:innameidem} and test {\bbx@ineditoridem}} + {\bibstring[\mkibid]{idem\thefield{gender}}} + {\printnames[ineditor]{editor}}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{#1}}% + \clearname{editor}} + {}} +\makeatother +\toggletrue{bbx:innamebeforetitle}\fullcite{pines} +\end{bibexample} + +\begin{bibexample}[title={\kvopt{innamebeforetitle}{false}}] +\renewbibmacro*{byeditor+others}{% + \ifnameundef{editor} + {} + {\printtext[highlight1]{% + \usebibmacro{byeditor+othersstrg}% + \setunit{\addspace}% + \printnames[byeditor]{editor}% + \newunit} + \clearname{editor}}% + \usebibmacro{byeditorx}% + \usebibmacro{bytranslator+others}} +\togglefalse{bbx:innamebeforetitle}\fullcite{pines} +\end{bibexample} + +\boolitem[false]{innameidem} +Whether or not the \bibfield{editor} of the \bibfield{booktitle} +for the entry types \bibtype{inbook}, \bibtype{incollection} and +\bibtype{inproceedings} is replaced by \enquote{idem} in case the +\bibfield{editor} and \bibfield{author} name lists coincide. +This option only has an effect if \opt{innamebeforetitle} is set to \opt{true}. + +\begin{bibexample}[title={\kvopt{innameidem}{true}}] +\togglefalse{bbx:isbn} +\makeatletter +\renewbibmacro*{bbx:in:editor}[1]{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printtext[highlight1]{% + \ifboolexpr{togl {bbx:innameidem} and test {\bbx@ineditoridem}} + {\bibstring[\mkibid]{idem\thefield{gender}}} + {\printnames[ineditor]{editor}}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{#1}% + \clearname{editor}}} + {}} +\makeatother +\toggletrue{bbx:innamebeforetitle}\toggletrue{bbx:innameidem} +\fullcite{gaonkar:in} +\end{bibexample} + +\begin{bibexample}[title={\kvopt{innameidem}{false}}] +\togglefalse{bbx:isbn} +\makeatletter +\renewbibmacro*{bbx:in:editor}[1]{% + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\printtext[highlight1]{% + \ifboolexpr{togl {bbx:innameidem} and test {\bbx@ineditoridem}} + {\bibstring[\mkibid]{idem\thefield{gender}}} + {\printnames[ineditor]{editor}}% + \setunit{\printdelim{editortypedelim}}% + \usebibmacro{#1}% + \clearname{editor}}} + {}} +\makeatother +\toggletrue{bbx:innamebeforetitle}\togglefalse{bbx:innameidem} +\fullcite{gaonkar:in} +\end{bibexample} + + +\boolitem[false]{maintitleaftertitle} +Whether or not the \bibfield{maintitle} is printed after the +\bibfield{title} or \bibfield{booktitle} of the work. +If \opt{maintitleaftertitle} is \opt{true}, the \bibfield{volume} field will be +printed with the \bibfield{volumeof} format. + +\begingroup +\makeatletter +\renewbibmacro*{maintitle+title}{% + \blx@begunit\blx@endunit + \iftoggle{bbx:maintitleaftertitle} + {} + {\iffieldsequal{maintitle}{title} + {\clearfield{maintitle}% + \clearfield{mainsubtitle}% + \clearfield{maintitleaddon}} + {\printtext[highlight1]{% + \iffieldundef{maintitle} + {} + {\usebibmacro{maintitle}% + \newunit\newblock + \iffieldundef{volume} + {} + {\printfield{volume}% + \printfield{part}% + \setunit{\maintitletitledelim}}}}}}% + \printtext[highlight2]{\usebibmacro{title}\blx@begunit\blx@endunit}% + \printunit{}% + \iftoggle{bbx:maintitleaftertitle} + {\iffieldsequal{maintitle}{title} + {\clearfield{maintitle}% + \clearfield{mainsubtitle}% + \clearfield{maintitleaddon}} + {\iffieldundef{maintitle} + {} + {\setunit{\titlemaintitledelim}% + \printtext[highlight1]{% + \iffieldundef{volume} + {} + {\printfield[volumeof]{volume}% + \printfield{part}% + \setunit{\addspace}% + \bibstring{ofseries}% + \setunit{\addspace}}% + \usebibmacro{maintitle}}}} + {}}% + \newunit}% +\renewcommand*{\maintitletitledelim}{\highlight{\addcolon\space}} +\makeatother +\begin{bibexample}[title={\kvopt{maintitleaftertitle}{true}}] +\togglefalse{bbx:isbn} +\toggletrue{bbx:maintitleaftertitle} +\fullcite{knuth:ct:a} +\end{bibexample} + +\begin{bibexample}[title={\kvopt{maintitleaftertitle}{false}}] +\togglefalse{bbx:isbn} +\togglefalse{bbx:maintitleaftertitle} +\fullcite{knuth:ct:a} +\end{bibexample} +\endgroup +\end{optionlist} + +\subsection{Style-specific options}\label{sec:opt:style} +The \opt{dashed} option of the \sty{authoryear}- and \sty{authortitle}-like +bibliography styles allows for finer control over the dashes now. +\begin{optionlist} +\optitem[false]{dashed}{\opt{true}, \opt{false}, \opt{fullhash}, + \opt{bibnamehash}} + +This option controls whether or not recurring lists of authors/editors in the +bibliography are replaced with a dash. +The standard values \opt{true} and \opt{false} are still valid and give the +exact same output as in the standard styles. +This means that the output is fully compatible with the standard styles. +The new values \opt{fullhash} and \opt{bibnamehash} differ in how exactly they +determine if a list of authors/editors is the same as the previous. +\begin{valuelist} +\item[true] An alias for \opt{fullhash}. +\item[false] Disable this feature. +\item[bibnamehash] Replace recurring name lists with a dash. + Compare name lists using \bibfield{bib\-name\-hash}, taking + into account only names that are actually listed in the + bibliography account. +\item[fullhash] Replace recurring name lists with a dash. + Compare name lists using \bibfield{fullhash}, taking into + account all names in the list, even those that are truncated + and do not appear in the bibliography. +\end{valuelist} + + +\begin{refsection} +\makeatletter +Assuming \kvopt{maxnames}{1} and no name list disambiguation +(\kvopt{uniquelist}{false}), the four entries +\inputexamplebibfile[listing options={linerange={1-16,18-23,25}, + style = extblxstylebibtex}] + {biblatex-ext-examples.bib} +give +\renewcommand*{\bibnamedash}{\textbf{\textemdash\addspace}} +\DeclareFieldFormat{dasheshighlight}{% + \iffieldequalstr{entrykey}{elk:einio} + {\highlight[1]{#1}} + {\iffieldequalstr{entrykey}{appleby:abl} + {\highlight[2]{#1}} + {#1}}} +\renewbibmacro*{author}{% + \printtext[dasheshighlight]{% + \ifboolexpr{ + test \ifuseauthor + and + not test {\ifnameundef{author}} + } + {\usebibmacro{bbx:dashcheck} + {\printtext{\bibnamedash}} + {\usebibmacro{bbx:savehash}% + \printnames{author}}% + \iffieldundef{authortype} + {\setunit{\printdelim{nameyeardelim}}} + {\setunit{\printdelim{authortypedelim}}}% + \iffieldundef{authortype} + {} + {\usebibmacro{authorstrg}% + \setunit{\printdelim{nameyeardelim}}}}% + {\global\undef\bbx@lasthash + \usebibmacro{labeltitle}% + \setunit*{\printdelim{nonameyeardelim}}}}% + \usebibmacro{date+extradate}} +\let\ExecuteBibliographyOptions\@gobble +\nocite{elk:bronto,elk:einio,appleby:abl,appleby:civ} +\begin{bibexample}[title={\kvopt{dashed}{false}}] +\csuse{extblx@opt@dashed@false} +\printbibliography[heading=none] +\end{bibexample} + +\begin{bibexample}[title={\kvopt{dashed}{bibnamehash}}] +\csuse{extblx@opt@dashed@bibnamehash} +\printbibliography[heading=none] +\end{bibexample} + +\begin{bibexample}[title={\kvopt{dashed}{fullhash}}] +\csuse{extblx@opt@dashed@fullhash} +\printbibliography[heading=none] +\end{bibexample} +\makeatother +\end{refsection} +With \kvopt{dashed}{bibnamehash} the dash replaces the name list if they are +indistinguishable in the bibliography, while with \kvopt{dashed}{fullhash} the +lists are only replaced if they are indistinguishable in the data source. + + +The \opt{introcite} option is available for the bibliography styles of the +\sty{authoryear} and \sty{authortitle} family. +It can not be used with citation styles of the \sty{verbose} family. +\optitem[false]{introcite}{\opt{false}, \opt{plain}, \opt{label}} + +This option controls whether or not the citation label is repeated in the +bibliography. +There are two possible output formats. +\begin{valuelist} +\item[false] Do not show the citation label in the bibliography. +\item[plain] Show the citation label at the beginning of an entry. +\item[label] Show the citation label as the label of a list similar to the + \sty{numeric} or \sty{alphabetic} styles. +\end{valuelist} + +The difference between \opt{plain} and \opt{label} is that the former simply +prints the citation label at the beginning of the entry, while the latter +prints the citation label similar to the item labels in a list or the numeric +labels in a \sty{numeric} bibliography. + +\begingroup +\togglefalse{bbx:doi} +\setlength{\introcitewidth}{5.8\biblabelsep} +\DeclareFieldFormat{bbx:introcite}{\highlight{#1}} +\renewcommand*{\introcitepunct}{\highlight{\addcolon}\space} +\makeatletter +\begin{bibexample}[title={\kvopt{introcite}{false}}] +\csuse{extblx@opt@dashed@false} +\csletcs{extblx@introcite}{extblx@opt@introcite@false} +\printbibliography[heading=none, category=introcite:opts] +\end{bibexample} + +\begin{bibexample}[title={\kvopt{introcite}{plain}}] +\csuse{extblx@opt@dashed@false} +\csletcs{extblx@introcite}{extblx@opt@introcite@plain} +\printbibliography[heading=none, category=introcite:opts] +\end{bibexample} + +\begin{bibexample}[title={\kvopt{introcite}{label}}] +\csuse{extblx@opt@dashed@false} +\csletcs{extblx@introcite}{extblx@opt@introcite@label} +\printbibliography[heading=none, category=introcite:opts] +\end{bibexample} +\makeatother +\endgroup + +\begin{ltxsyntax} +\csitem{introcitepunct} The \opt{plain} option inserts the punctuation +given in \cmd{introcitepunct} between the label and the rest of the entry. +The default value is a colon followed by a space. + + +\begin{bibexample} +\togglefalse{bbx:doi} +\renewcommand*{\introcitepunct}{\highlight{\textbf{\addcolon}\textvisiblespace}} +\csuse{extblx@opt@dashed@false} +\csletcs{extblx@introcite}{extblx@opt@introcite@plain} +\printbibliography[heading=none, category=sigfridsson] +\end{bibexample} + +The \opt{label} option can be configured to not allow the label to run into +the remaining bibliography entry thus creating the appearance of a tabular-like +bibliography. +The citation label is not broken across lines, instead it moves the entry text +into the next line with \cmd{introcitebreak} if the width of the citation label +plus the buffer length \len{introcitesep} is greater than \len{introcitewidth}. + + +\lenitem{introcitewidth} This length controls the margin of the bibliography. + The initial value is 8 times \len{biblabelsep}. +\lenitem{introcitesep} This length sets the minimal space between the end of the + citation label and the beginning of the rest of the entry. + If the citation label does not leave at least \len{introcitesep} to the + beginning of the entry, the entry is broken to the next line by inserting + \cmd{introcitebreak}. + The initial value is half of \len{biblabelsep}. +\end{ltxsyntax} + +\makeatletter +\togglefalse{bbx:doi} +\begingroup +\setlength{\introcitewidth}{8\biblabelsep} +\setlength{\introcitesep}{3.8\biblabelsep} +\begin{bibexample}[enhanced, title={Lengths for \kvopt{introcite}{label}}, +overlay={% + \draw[highlight1, line width=.24mm,|-|] (frame.west)++(16pt,-2.47cm) -- + node [midway,below=2pt] {\len{introcitewidth}} ++ (\introcitewidth-1pt,0); + \draw[highlight2, line width=.24mm,|-|] (frame.west)++(16pt,-.8mm)++ + (\introcitewidth-1pt,0) -- node [above=4pt,at end] {\len{introcitesep}} ++ + (-\introcitesep,0); + \draw[highlight2, line width=.24mm,|-|] (frame.west)++(16pt,2.32cm)++ + (\introcitewidth-1pt,0) -- ++ (-\introcitesep,0); +} +] +\csuse{extblx@opt@dashed@false} +\csletcs{extblx@introcite}{extblx@opt@introcite@label} +\printbibliography[heading=none, category=introcite:lengths] +\end{bibexample} +\endgroup + +\begin{bibexample}[enhanced, title={\kvopt{introcite}{label} with + $\len{introcitesep}=-\len{introcitewidth}$}] +\setlength{\introcitewidth}{27mm} +\setlength{\introcitesep}{-\introcitewidth} +\csuse{extblx@opt@dashed@false} +\csletcs{extblx@introcite}{extblx@opt@introcite@label} +\printbibliography[heading=none, category=introcite:lengths, nottype=article] +\end{bibexample} + +\begin{bibexample}[enhanced, title={\kvopt{introcite}{label} with + $\len{introcitesep}=\len{introcitewidth}=\len{bibhang}$}] +\setlength{\introcitewidth}{\bibhang} +\setlength{\introcitesep}{\bibhang} +\csuse{extblx@opt@dashed@false} +\csletcs{extblx@introcite}{extblx@opt@introcite@label} +\printbibliography[heading=none, category=introcite:lengths, nottype=book] +\end{bibexample} +\makeatother + +The appearance of the citation label can be customised mostly as if it were +produced by a true citation command called \cmd{bbx:introcite}. +The delimiter context is \sty{bbx:introcite}, the inner citation delimiters +can be accessed as \sty{bbx:introcite} as well. +The label does not have outer citation delimiters, you can use the wrapper +field format \sty{bbx:introcite} instead. In fact this approach is more +versatile than the outer citation delimiter feature (see the dicsussion in +\cref{sec:opt:citedelims}). +\end{optionlist} + +\section{Further Customisations}\label{sec:opt:cust} +\subsection{Field formats}\label{sec:opt:field} +In a few places where the standard styles employ hard-coded formatting +directives the styles of this bundle offer customisable formats instead. +Field formats can be modified with \cmd{DeclareFieldFormat}. + +\begin{keymarglistbook} +\item[bib(list)labeldate] The format for the labeldate in the bibliography or + a bibliography list for \sty{authoryear}-like styles. The default is to wrap + the date in round brackets. + \begin{bibexample} + \togglefalse{bbx:doi} + \DeclareFieldFormat{biblabeldate}{\highlight{\bibopenparen}\highlight[2]{#1}% + \highlight{\bibcloseparen}} + \fullcite{sigfridsson} + \end{bibexample} + +\item[issuedate] The format of the \bibfield{issue} and \bibfield{date} + information for \bibtype{article}s. By default this block is wrapped in + round brackets. + \begin{bibexample} + \makeatletter\bbx@opt@mergedate@false\makeatother + \togglefalse{bbx:doi} + \DeclareFieldFormat{issuedate}{\highlight{\bibopenparen}\highlight[2]{#1}% + \highlight{\bibcloseparen}} + \fullcite{sigfridsson} + \end{bibexample} + +\item[volumeof] The format for the \bibfield{volume} of a \bibfield{maintitle} + used when \kvopt{maintitleaftertitle}{true}. + \begin{bibexample} + \togglefalse{bbx:isbn}\toggletrue{bbx:maintitleaftertitle} + \DeclareFieldFormat{volumeof}{\highlight{\bibstring{volume}}~% + \highlight[2]{#1}} + \fullcite{knuth:ct:a} + \end{bibexample} +\end{keymarglistbook} + +\DeclareFieldFormat{issuedate}{\mkbibparens{#1}} + +\subsection{Punctuation}\label{sec:opt:punct} +The package provides the following commands to modify the delimiters and +punctuation between fields. +The punctuation commands should be redefined with \cmd{renewcommand}. +\begin{ltxsyntax} +\csitem{maintitletitledelim} +The punctuation between the \bibfield{maintitle} and \bibfield{title} or +\bibfield{booktitle} of a work if \opt{maintitleaftertitle} is \opt{false}. +The default is a colon followed by a space. +\begin{bibexample} +\togglefalse{bbx:isbn} +\renewcommand*{\maintitletitledelim}{\highlight{\textbf{\addcolon}% + \textvisiblespace}} +\fullcite{knuth:ct:a} +\end{bibexample} + +\csitem{titlemaintitledelim} +The punctuation between the \bibfield{title} or \bibfield{booktitle} and +\bibfield{maintitle} of a work if \opt{maintitleaftertitle} is \opt{true}. +The default is \cmd{newunitpunct}. +\begin{bibexample} +\togglefalse{bbx:isbn} +\toggletrue{bbx:maintitleaftertitle} +\renewcommand*{\titlemaintitledelim}{\highlight{\textbf{\addperiod}% + \textvisiblespace}\bibsentence} +\fullcite{knuth:ct:a} +\end{bibexample} + +\csitem{volnumdatedelim} +The delimiter between the \bibfield{volume}, \bibfield{number} block and the +date information for \bibtype{article}. +The default is a space. +\begin{bibexample} +\togglefalse{bbx:doi} +\renewcommand*{\volnumdatedelim}{\highlight{\textvisiblespace}} +\makeatletter\bbx@opt@mergedate@false\makeatother +\fullcite{sigfridsson} +\end{bibexample} + + +\csitem{volnumdelim} +The delimiter between \bibfield{volume} and \bibfield{number} for +\bibtype{article}. +The default is a dot. +\begin{bibexample} +\togglefalse{bbx:doi} +\renewcommand*{\volnumdelim}{\highlightbf{\adddot}} +\fullcite{sigfridsson} +\end{bibexample} + +\csitem{sernumdelim} +The delimiter between \bibfield{series} and \bibfield{number}. +The default is a space. +\begin{bibexample} +\renewcommand*{\sernumdelim}{\highlight{\textvisiblespace}} +\fullcite{coleridge} +\end{bibexample} + +\csitem{locdatedelim} +The delimiter between \bibfield{location} and \bibfield{date}. +The default is a comma followed by a space. +\begin{bibexample} +\renewcommand*{\locdatedelim}{\highlight{\textbf{\addcomma}\textvisiblespace}} +\makeatletter\bbx@opt@mergedate@false\makeatother +\fullcite{jaffe} +\end{bibexample} + +\csitem{locpubdelim} +The delimiter between \bibfield{location} and \bibfield{publisher}\slash% +\bibfield{organization}\slash\bibfield{institution}. +The default is a colon followed by a space. +\begin{bibexample} +\makeatletter\bbx@opt@mergedate@false\makeatother +\renewcommand*{\locpubdelim}{\highlight{\textbf{\addcolon}\textvisiblespace}} +\fullcite{knuth:ct:a} +\end{bibexample} + + +\csitem{publocdelim} +The delimiter between \bibfield{publisher}\slash\bibfield{organization}\slash +\bibfield{institution} and \bibfield{location}. +The default is a comma followed by a space. +This delimiter is not used by the default style, since the standard order of +fields is \bibfield{location}, \bibfield{publisher}\slash +\bibfield{organization}\slash\bibfield{institution}, \bibfield{date}. +You could use \cs{publocdelim} if you changed the order of these fields to +\bibfield{publisher}\slash\bibfield{organization}\slash\bibfield{institution}, +\bibfield{location} \bibfield{date} with +\begin{biblatexcode} +\renewbibmacro*{pubinstorg+location+date}[1]{% + \printlist{#1}% + \setunit*{|1\publocdelim1|}% + \printlist{location}% + \setunit*{|2\locdatedelim2|}% + \usebibmacro{date}% + \newunit} +\end{biblatexcode} +\begin{bibexample} +\renewcommand*{\publocdelim}{\highlight[1]{\textbf{\addcomma}\textvisiblespace}} +\renewcommand*{\locdatedelim}{\highlight[2]{% + \textbf{\addcomma}\textvisiblespace}} +\renewbibmacro*{pubinstorg+location+date}[1]{% + \printlist{#1}% + \setunit*{\publocdelim}% + \printlist{location}% + \setunit*{\locdatedelim}% + \usebibmacro{date}% + \newunit} +\makeatletter\bbx@opt@mergedate@false\makeatother +\fullcite{knuth:ct:a} +\end{bibexample} + + +\csitem{pubdatedelim} +The delimiter between \bibfield{publisher}\slash\bibfield{organization}\slash +\bibfield{institution} and \bibfield{date}. +The default is a comma followed by a space. +\begin{bibexample} +\renewcommand*{\pubdatedelim}{\highlight{\textbf{\addcomma}\textvisiblespace}} +\makeatletter\bbx@opt@mergedate@false\makeatother +\fullcite{knuth:ct:a} +\end{bibexample} + +\csitem{extradateonlycompcitedelim} +Similar to \cmd{compcitedelim}, but indended for use between compressed +citations where the second is an \bibfield{extradate} only. +The default is a comma (\emph{not} followed by a space). +\end{ltxsyntax} +\begin{bibexample} +\renewcommand*{\extradateonlycompcitedelim}{\highlightbf{\addcomma}} +\cite{knuth:ct:b,knuth:ct:c} +\end{bibexample} + + +\subsection{Delimiters for citation commands}\label{sec:opt:citedelims} +The delimiters for citation commands provided by the styles of this bundle +offer a simple way to customise the bracketing of citation commands. + +The citation commands \cmd{cite}, \cmd{parencite} and \cmd{textcite} come with +two sets of delimiters: A pair of \emph{outer delimiters} wrapped around the +resulting citation in its entirety and a pair of \emph{inner delimiters} that +sets off certains bits of the citation label from other information. +An example for outer delimiters would be the round brackets of \cmd{parencite} +for \sty{authoryear}-like styles or the square brackets of \cmd{cite} for +\sty{numeric}- or \sty{alphabetic}-like styles. +Inner delimiters would be the round brackets in \cmd{textcite} around +the year for \sty{authoryear} or around the title for \sty{authortitle}. +See \cref{tab:citationdelims} for more details. + +The delimiters are set up to work as paired delimiters, but you are free to +use non-matching pairs or to leave the opening or closing delimiter empty. +If you want to add punctuation, the context-sensitive delimiters +\sty{nameyeardelim}, \sty{nametitledelim} and friends as well as +the context-insensitive \cmd{postnotedelim} and friends are more approriate. +Although the outer delimiters can be set up using \cmd{DeclareCiteCommand}'s +optional \prm{wrapper} argument for most styles, this is not possible for all +styles. Inner delimiters can be set up with \cmd{DeclareFieldFormat} in some +styles, but other styles need more intricate implementations. +This means that the commands discussed here can be used to place the citations +between delimiters, but not natively to pass the result of a citation to a +wrapper command as an argument. + +\begin{table}[bthp] +\centering +\caption[Outer and inner citation delimiters by style]{\highlight[1]{Outer} and +\highlight[2]{inner} citation delimiters by style. If the style does not use +the delimiters by default, $\langle$ and $\rangle$ are substituted in the +appropriate place.} +\label{tab:citationdelims} +\begin{tabular}{@{}llll@{}} +\toprule + & \multicolumn{3}{c}{Citation command}\\ + \cmidrule(lr){2-4} +Style family & \cmd{cite} & \cmd{parencite} & \cmd{textcite}\\ +\midrule +\sty{alphabetic} & \highlightbf[1]{[}Knu84\highlightbf[1]{]} & + \highlightbf[1]{[}Knu84\highlightbf[1]{]} & \highlight[1]{$\bm{\langle}$}Knuth + \highlightbf[2]{[}2\highlightbf[2]{]}\highlight[1]{$\bm{\rangle}$}\\ +\sty{numeric} & \highlightbf[1]{[}2\highlightbf[1]{]} & + \highlightbf[1]{[}2\highlightbf[1]{]} & \highlight[1]{$\bm{\langle}$}Knuth + \highlightbf[2]{[}2\highlightbf[2]{]}\highlight[1]{$\bm{\rangle}$}\\ +\sty{authortitle} & \highlight[1]{$\bm{\langle}$}Knuth, + \highlight[2]{$\bm{\langle}$}\emph{\TeX book}\highlight[2]{$\bm{\rangle}$}% + \highlight[1]{$\bm{\rangle}$} & \highlightbf[1]{(}Knuth, + \highlight[2]{$\bm{\langle}$}\emph{\TeX book}\highlight[2]{$\bm{\rangle}$}% + \highlightbf[1]{)} & \highlight[1]{$\bm{\langle}$}Knuth \highlightbf[2]{(}% + \emph{\TeX book}\highlightbf[2]{)}\highlight[1]{$\bm{\rangle}$}\\ +\sty{authoryear} & \highlight[1]{$\bm{\langle}$}Knuth + \highlight[2]{$\bm{\langle}$}1984\highlight[2]{$\bm{\rangle}$}% + \highlight[1]{$\bm{\rangle}$} & \highlightbf[1]{(}Knuth + \highlight[2]{$\bm{\langle}$}1984\highlight[2]{$\bm{\rangle}$}% + \highlightbf[1]{)} & \highlight[1]{$\bm{\langle}$}Knuth + \highlightbf[2]{(}1984\highlightbf[2]{)}\highlight[1]{$\bm{\rangle}$}\\ +\bottomrule +\end{tabular} +\end{table} + +\begin{ltxsyntax} +\cmditem{DeclareOuterCiteDelim}{cite command}{opening delimiter} + {closing delimiter} + +Sets up the outer delimiters for the citation command +\cmd{$\langle$\emph{cite command}$\rangle$}. The name of the \prm{cite command} +is given without leading backslash in the argument, it normally corresponds to +the delimiter context. + +You may use almost any input for \prm{opening delimiter} and +\prm{closing delimiter} as long as typesetting of +\enquote{\prm{opening delimiter}text\prm{closing delimiter}} does not lead to +errors when arbitrary grouping such as +\enquote{\{\prm{opening delimiter}\allowbreak text\}\allowbreak +\prm{closing delimiter}} +or \enquote{\prm{opening delimiter}\allowbreak text\allowbreak +\{\prm{closing delimiter}\}} +is introduced. +It can not be guaranteed that the opening and closing delimiters are executed +at the same level of grouping, let alone in the same group. +As mentioned above, this approach is not suitable to wrap the citation up in a +wrapper command, i.e.\ to pass the entire output of the citation command as +argument to a macro. + +Instead of hard-coded \texttt{(}, \texttt{)}, \texttt{[} and \texttt{]} their +\sty{biblatex} counterparts \cmd{bibopenparen}, \cmd{bibcloseparen}, +\cmd{bibopenbracket} and \cmd{bibclosebracket} are preferable, since these +commands respond to nesting and check if opening brackets are always closed. + +\cmditem{DeclareOuterCiteDelimAlias}{cite alias}{cite command} +\cmditem*{DeclareOuterCiteDelimAlias*}{cite alias}{cite command} + +Use the outer delimiters of \cmd{$\langle$\emph{cite command}$\rangle$} for +\cmd{$\langle$\emph{cite alias}$\rangle$} as well. +The unstarred version uses \cmd{def} assignment while the starred version uses +\cmd{let}. This means that the starred version copies the values of the +definitions at the time of executing the aliasing command, +whereas the alias created by the unstarred version will only evaluate the +delimiters whenever the citation command is called. + +\cmditem{UndeclareOuterCiteDelim}{cite command} + +Completely remove the definitions of the outer delimiters for +\cmd{$\langle$\emph{cite command}$\rangle$}. + +\cmditem{DeclareInnerCiteDelim}{cite command}{opening delimiter} + {closing delimiter} + +Sets up the inner delimiters for the citation command +\cmd{$\langle$\emph{cite command}$\rangle$}. + +This command is similar to \cmd{DeclareOuterCiteDelim} and the same +restrictions for the arguments apply. + +\cmditem{DeclareInnerCiteDelimAlias}{cite alias}{cite command} +\cmditem*{DeclareInnerCiteDelimAlias*}{cite alias}{cite command} + +Use the inner delimiters of \cmd{$\langle$\emph{cite command}$\rangle$} for +\cmd{$\langle$\emph{cite alias}$\rangle$} as well. +The unstarred version uses \cmd{def} assignment while the starred version uses +\cmd{let}. This means that the starred version copies the values of the +definitions at the time of executing the aliasing command, +whereas the alias created by the unstarred version will only evaluate the +delimiters whenever the citation command is called. + +\cmditem{UndeclareInnerCiteDelim}{cite command} + +Completely remove the definitions of the inner delimiters for +\cmd{$\langle$\emph{cite command}$\rangle$}. + +The \sty{authoryear} and \sty{authortitle} styles have \cmd{parencite}, +e.g.\ \parencite{knuth:ct:a}, \parencite{sigfridsson}, set up with +\begin{biblatexcode} +\DeclareOuterCiteDelim{parencite}{\bibopenparen}{\bibcloseparen} +\DeclareInnerCiteDelim{parencite}{}{} +\end{biblatexcode} +and \cmd{textcite}, e.g.\ \textcite{knuth:ct:a}, \textcite{sigfridsson}, with +\begin{biblatexcode} +\DeclareOuterCiteDelim{textcite}{}{} +\DeclareInnerCiteDelim{textcite}{\bibopenparen}{\bibcloseparen} +\end{biblatexcode} +If you wanted \cmd{parencite} of \sty{authoryear} to look like +\enquote{[Sigfridsson and Worman (1998)]} you would use +\begin{biblatexcode} +\DeclareOuterCiteDelim{parencite}{|1\bibopenbracket1|}{|1\bibclosebracket1|} +\DeclareInnerCiteDelim{parencite}{|2\bibopenparen2|}{|2\bibcloseparen2|} +\end{biblatexcode} +\citereset +\begin{bibexample} +\DeclareOuterCiteDelim{parencite}{\highlightbf[1]{\bibopenbracket}}{% + \highlightbf[1]{\bibclosebracket}} +\DeclareInnerCiteDelim{parencite}{\highlightbf[2]{\bibopenparen}}{% + \highlightbf[2]{\bibcloseparen}} +\parencite{sigfridsson}\quad\parencite{worman,geer}\quad +\parencite{knuth:ct:a,knuth:ct:b,knuth:ct:c} +\end{bibexample} +\end{ltxsyntax} + +\subsection{Selected bibliography macros}\label{sec:opt:bibmacros} +The following macros are defined in \texttt{ext-standard.bbx} and may make +certain things easier to customise. +Many of these macros are replacements for bare \cmd{printfield} or +\cmd{printlist} in the bibliography drivers, or pack a frequently-used +sequence of commands into one central place. + +\begin{keymarglistbook} +\item[barevolume+volumes] +A bibliography macro to print the \bibfield{volume}, \bibfield{part} and +\bibfield{volumes} fields for \bibtype{mvbook}-, \bibtype{book}- and +\bibtype{inbook}-like entry types. +If \bibfield{maintitle} is defined, the \bibfield{volume} and \bibfield{part} +fields will be printed by \bibmacro{maintitle+title} or +\bibmacro{maintitle+booktitle} instead. + +\begin{bibexample} +\renewbibmacro*{barevolume+volumes}{% + \printtext[highlight1]{% + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}}} +\fullcite{knuth:ct} +\smallskip\par +\fullcite{matuz:doody} +\end{bibexample} + +\item[edition] +A bibliography macro to print the \bibfield{edition} field, this avoids a direct +\lstinline|\printfield{edition}| in the bibliography drivers. + +\item[in:editor(+others)] +The bibliography macro to print the \bibfield{editor} before the +\bibfield{booktitle} for \bibtype{inbook}, \bibtype{incollection} and +\bibtype{inproceedings} when \opt{innamebeforetitle} is set to \opt{true}. +The \cmd{printname} uses the name format \bibfield{ineditor}. + +\item[language] +A bibliography macro to print the \bibfield{language} field, this avoids a +direct \lstinline|\printlist{language}| in the bibliography drivers. + +\item[note] +A bibliography macro to print the \bibfield{note} field, this avoids a direct +\lstinline|\printfield{note}| in the bibliography drivers. + +\item[pubinstorg+location+date] +A general-purpose bibliography macro to catch +\bibmacro{publisher+location+date}, +\bibmacro{institution+location+date} and \bibmacro{organization+location+date}. +This bibliography macro has one mandatory argument: the name of a list field, +sensible values are \bibfield{publisher}, \bibfield{institution} and +\bibfield{organization}. + +\begin{biblatexcode} +\newbibmacro*{pubinstorg+location+date}[1]{% + \printlist{location}% + \iflistundef{|#1|} + {\setunit*{\locdatedelim}} + {\setunit*{\locpubdelim}}% + \printlist{|#1|}% + \setunit*{\pubdatedelim}% + \usebibmacro{date}% + \newunit} + +\renewbibmacro*{|publisher|+location+date}{% + \usebibmacro{pubinstorg+location+date}{|publisher|}} + +\renewbibmacro*{|institution|+location+date}{% + \usebibmacro{pubinstorg+location+date}{|institution|}} + +\renewbibmacro*{|organization|+location+date}{% + \usebibmacro{pubinstorg+location+date}{|organization|}} +\end{biblatexcode} + +\item[type+number] +A bibliography macro to print the \bibfield{type} and \bibfield{number} fields. +\end{keymarglistbook} + +\section{Revision History}\label{sec:log} +The GitHub repository of this project uses release tags, so you can compare +the changes in source code there.\footnote{\url{\gitbaseurl/compare/}} +See also \sty{CHANGES.md}. +\begin{changelog} +\begin{release}{0.1}{2018-03-18} +\item First public release. +\end{release} +\end{changelog} + +\begin{bibexample}[breakable] +\printbibliography +\end{bibexample} + +\end{document} +\endinput |