2

I'm trying to achieve, in a BibTeX- or BibLaTeX-produced bibliography, a style used in scholarly books in conjunction with author-date citations that is exemplified by the following: bibliography excerpt The first entry of a work for a given author is a paragraph beginning flush left with hanging indentation of its second and later lines. Each entry of another work by the same author (here an 'additional entry') begins slightly indented from the left with hanging indentation of its second and later lines aligned with the second and later lines of the first work's entry. Placement of year of publication immediately after author name avails the reader in finding works cited in the form '[Author last name] [year]'. (This style can be achieved in a custom list with positive \leftmargin, negative \itemindent, and negative \listparindent in which an additional entry is created as a paragraph within the item giving the first entry.)

I am at a loss concerning how to realize this style by revising a BibTex .bst file, and would appreciate help on how to do it.

So too my predicament for BibLaTeX, although some glimpses of possibility appear. The package's author-year, verbose, and other styles use hanging indentations. A \bibhang length is specifiable by a \setlength command for hanging indentation of an entry. But how to subindent an additional entry and specify hanging indentation for it, and begin it with the year, eludes me, because the standard form of an additional entry begins with a dash flush left. A \bibnamedash command is said to allow one to specify what type of dash. I have read that this command is more complicated than it appears, but might one specify a space (e.g., \hspace{n} or \quad) by this command, and thereby achieve the equivalent of indentation? No doubt experts discern better avenues than these glimpses. I would be grateful to learn of them.


Thanks very much to @moewe for this solution. I'm puzzled as to how the \setlength{\bibhang}{2\bibhang} command succeeds as it does, since it seems to define a length as a multiple of itself. I'd also be grateful to know about ext-authoryear or some part of it, which (with \DeclareField . . ., so I gather) perfectly places the year. I appreciate your alert (and that of @David Purton) about trying in BibLaTeX to capture multiple component works of a one-author collection within one entry. There are many occasions when that organization is needed (e.g., a writer would avoid the otiose appearance of listing separately ten works of Aristotle published in a definitive collected works volume). It seems that one could put titles of two works into the title field by writing, e.g., {Speaking of Objects'' and ``Natural Kinds} in which internal quotes are supplied knowing that enclosing quotes for the string are automatic. One could insert in the pages field two page number intervals, as in {1-25, 114-138} for works in order of their listing. (Showing the page intervals in the entry avails concision: e.g., 'Quine 1969, p. 120' without more unambiguously identifies a work within the collection.) Would the foregoing cause trouble in various ways that I don't glimpse? I respect your point that difficulty looms. It's also impressive from BibLaTeX's manual to see the attentiveness shown, in composing the package, to multitudinous scholarly conventions. Hence I'm hopeful that a route lies to this one.

  • 2
    Doing most of what you want in biblatex is straight forward. But combining multiple titles into one entry is not so easy since it is assumed that there will be only one title per entry. You could specify fake titles, but quotes and punctuation would no longer be automatically handled. Perhaps something with related entries could be done. – David Purton Oct 8 '18 at 1:58
  • Being a Q&A site rather than a linear forum, TeX.SX does not really lend itself to forum-like discussions and heavily relies on a clear-cut question that can have a good answer. As such I suggest you try to split your question about the multiple entries off into a new question and make sure that this question here is about the hanging indent stuff only. I'll try to answer the questions regarding my answer in an edit, but I would urge you to move the other points to a different question. – moewe Oct 9 '18 at 20:03
  • I posed only a question of indentation formatting. Your answer posed the challenge of rendering one type of entry, on which I've sought understanding in response. Your forthcoming remarks may provide that understanding and conclude the exchange. Otherwise I'd be happy to initiate a separate query. (The challenge remains to render the content of several other types of entries not exemplified in the posted excerpt, on which I haven't yet completed my own attempts.) I'm pleased that you raised the challenge that you did, as it has illuminated probably the most difficult of such. – Louis Oct 10 '18 at 7:14
  • Yes, it might have been an error of judgement on my part to comment on the other aspect of your style in my answer. If we want to discuss the topic of the combined entries further a new question is definitely more appropriate, though. And even if you don't want to discuss this further a new question might be interesting for other people. I have no idea how to solve this yet and I doubt I can find a good answer in due time, but maybe someone else can come up with a workable solution. – moewe Oct 10 '18 at 8:01
1

The sub-indent issue can be solved pretty much as you say. biblatex knows the length \bibhang to control the hanging indent of subsequent lines in the bibliography item. You can then set \bibnamedash to insert a space half the size of \bibhang instead of the author name at the beginning of each subsequent entry with the same author.

In the MWE I doubled the usual size of \bibhang to show the effect more clearly, I also used my ext-authoryear style to get rid of the round brackets around the year more easily.

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{ebgaramond}
\usepackage{csquotes}

\usepackage[style=ext-authoryear, backend=biber]{biblatex}

\DeclareFieldFormat{biblabeldate}{#1}

\setlength{\bibhang}{2\bibhang}

\renewcommand*{\bibnamedash}{%
  \hspace{.5\bibhang}}

\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,knuth:ct:a,knuth:ct:b}
\printbibliography
\end{document}

The MWE shows a bibliography with hanging indent. The year of works with the same author is indented by half the hanging indent.

In response to the questions in your edit.

  • \setlength{\bibhang}{2\bibhang} works (perhaps surprisingly for anyone who ever tried the - at first glance - syntactically similar \renewcommand{\foo}{2\foo}) because the new value is evaluated before it is assigned. It is similar to the variable assignment in imperative languages like C, where x = x+1, x += 1 or x++ assign to x the value that results from adding one to the old value of x.
  • biblatex-ext's ext-authoryear was only used to get rid of the parentheses around the year in the bibliography with \DeclareFieldFormat{biblabeldate}{#1}. It is not integral to the whole sub-indent thing which is purely handled by redefining the standard macro \bibnamedelim. If you wanted to go with style=authoryear you would have to do slightly more to get rid of the parentheses: How to (properly) remove the parentheses around the year in authoryear style? (v3). You can find out more about the features of the style in the bundle documentation.

The screenshot shows another very interesting aspect of your intended style: Several works by the same author from the same containing work are listed in the same entry (for example two @incollection chapters of the same @collection). This is not something that biblatex lets you do easily.

Each .bib entry normally refers to one specific work and thus has only one title. And each .bib entry is normally one separate item in the bibliography. While it is possible with crossref and related to model a parent-child relationship as in @collection $X$ contains paper @incollection $X_1$, it is a different task altogether to group several different entries with different data into one entry and show the data together and not one after another.

  • Indeed I do not understand a general expression defining a variable as a multiple of itself. Is there was some prior value of bibhang whose double is by this command declared to replace it? I would appreciate learning whether trouble lurks in my ventured resolution of the challenge of an entry embracing multiple works in a collection. On parentheses, I'll have to study your cited posting, thank you. – Louis Oct 10 '18 at 7:39
  • @Louis The variable \bibhang will always have had a value before the line \setlength{\bibhang}{2\bibhang}, and then the new value is just twice the old value. Don't think of this in terms of the mathematical $x=2x$, but think of it in terms of an imperative assignment that says: Take whatever was in $x$, double it and assign that new value to $x$. This is similar to what other programming languages allow you to do with i = i+1 or i+=1 or i++, see en.wikipedia.org/wiki/Augmented_assignment and en.wikipedia.org/wiki/Increment_and_decrement_operators – moewe Oct 10 '18 at 7:54
  • @Louis For the other issue I would urge you to open a new question, that makes the discussion more focussed and easier to follow. On first glance your proposed idea would probably work, but it has the (in my view string) conceptual disadvantage that one has to combine these works manually, which means that one can not have one entry for each natural work (one chapter/paper), but instead needs to combine several natural works into a collection of works manually. .... – moewe Oct 10 '18 at 8:04
  • ... In the example picture suppose you drop the citation to 'On What There Is', then you'd have to manually remove the title and the page range from the artificial Quine 1961 entry, while it would automatically be removed if it were a .bib entry in its own right. Another minor thing is that you would have to manually format the titles in your artificial entry and could not rely on biblatex doing that for you. – moewe Oct 10 '18 at 8:06
  • Now I understand the code. Do you know the prior `bibhang' value? A search in the BibLaTex manual reveals no indication of a default value for the variable. I gather that such value here effectively becomes a unit of measure multipliable by any decimal factor. Indeed manual creation and removal of those concatenated entries would be required, and automation would be superior. I gather that you're not aware of how to automate it. I could pose that question separately as you suggest. I gather also that you don't see collateral trouble threatened by the manual method, so it's at least a fallback. – Louis Oct 10 '18 at 17:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.