16

I have an @article entry, which crossrefs a @periodical entry. I cite both of them. In my bibliography, I would like the article to refer to the periodical in the form of the citation, but i only get a more expanded form with the title included and without the date.

\documentclass[a4paper,12pt]{scrartcl}

\RequirePackage[english,germanb]{babel}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{url}
\usepackage{csquotes}

\usepackage[style=authoryear-comp]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{question.bib}

@Periodical{ journal,
title = "A Journal",
editor = "Elena Trug",
year = "2013",
issuetitle = "The theme of the issue",
}

@Article{ article1,
title = "About something",
author = "Walter Kerny",
crossref = "journal"
}

\end{filecontents}


\addbibresource{./question.bib}

\begin{document}

\cite{journal,article1}

\printbibliography


\end{document}

I get something like:

Kerny 2013; Trug 2013

References

Kerny, Walter (2013). "About something". In: The theme of the issue. Ed. by > Elena Trug.

Trug, Elena, ed. (2013). A Journal: The theme of the issue.

And I would like something like that for the article (like I had before I switched from BibTeX to biblatex):

Kerny, Walter (2013). "About something". In: Elena Trug, ed. (2013).

I hope I'm clear.


Edit: I used to manage this with BibTeX using an @incollection entry and an @book one.

4
  • A workaround for the proceedings entries was found in this answer, and switching to xref might help, too. I might try to adapt those hints to solve your problem (which interest me, btw).
    – Clément
    Commented Jul 23, 2014 at 11:07
  • I don't know if it's of any importance, but I'm using the biblatex-chicago package.
    – Mårten
    Commented Jul 23, 2014 at 12:26
  • Why do you want the date to appear twice? Just curious.
    – cfr
    Commented Jul 23, 2014 at 21:02
  • @Mårten Does tex.stackexchange.com/a/118850/39222 help? It seems to work but I'm not quite sure what the correct way is to tell biblatex to use a citation in place of anything else (which would be the most general way to do it, I guess).
    – cfr
    Commented Jul 23, 2014 at 21:50

2 Answers 2

7

I've just found a workaround for biblatex: I write the following "note" field instead of the "crossref" field in the database entry of the article:

note = "{\citereset\textcite{journal}}",
1
  • 1
    If you go this route, be careful about where the bibliography driver is used to print the note field; it may be better in some cases (depending on the style used, etc.) to use the addendum field.
    – jon
    Commented Jul 24, 2014 at 15:13
3

I'm sure that there are all kinds of things wrong with this. However, I would like to know how to do this properly so hope that my mangling will prompt somebody more knowledgeable than I to tell me how to correct it.

This code is based on Denis's answer but the mangling is, of course, my own.

\documentclass[a4paper,12pt]{scrartcl}

\RequirePackage[english,germanb]{babel}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{url}
\usepackage{csquotes}

\usepackage[style=authoryear-comp, mincrossrefs=1]{biblatex}

\newbibmacro{mycrossref}{%
  \textcite{\thefield{crossref}}}
\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  \usebibmacro{in:}%
  \ifentryinbib{\thefield{crossref}}{%
    \usebibmacro{mycrossref}%
    %\newunit% uncomment this line and the next to include pages in the crossreferences.
    %\usebibmacro{note+pages}%
 }{%
    \usebibmacro{journal+issuetitle}%
    \newunit
    \usebibmacro{byeditor+others}%
    \newunit
    \usebibmacro{note+pages}%
    \newunit\newblock
    \iftoggle{bbx:isbn}
      {\printfield{issn}}
      {}%
  }%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}

  @Article{ article1,
    title = {About something},
    author = {Kerny, Walter},
    crossref = {journal}
  }

  @article{ article2,
    title = {Another article},
    author = {Else, Someone},
    journal = {Great Stuff},
    date = 2090,
    pages = {24-34}}

  @Periodical{ journal,
    title = {A Journal},
    editor = {Trug, Elena},
    date = {2013},
    issuetitle = {The theme of the issue}
  }

\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

  \nocite{*}

  \printbibliography

\end{document}

This produces the following which isn't quite what you want but maybe closer:

Cross references

5
  • I really think this is of now the best solution, and it is similar to what the biblatex-philosophy style does. The down-side is that one has to copy and modify all the drivers, maybe there could be a solution that changes the behaviours of the macros employed in the drivers conditionally on whether there is a crossref or not; but of course that would require changes ton quite a number of macros and might not be cleaner and less code-intensive after all.
    – moewe
    Commented Jul 24, 2014 at 5:00
  • 1
    Just one or two things: Your modification of inbook prints "Shortreference" or "Complete Reference" depending on the crossref's status (is that just to demonstrate the idea?). Also I would not make the display of the pages field (note+pages) conditional on the crossref: One always wants to see the pages of an article.
    – moewe
    Commented Jul 24, 2014 at 5:03
  • @moewe Thanks for commenting. inbook is an error. I didn't mean to change inbook at all. I copied that code from the answer I linked to to use as a basis for changing the article entry and apparently forgot to delete it. I agree about the pages. I only did that because that is what the question requested. I don't think it is a good idea at all - you end up with the date twice and the pages never. Furthermore, can it really be right to use a citation command in the format of a bibliography entry? I thought there must be a cleaner way to print the label...
    – cfr
    Commented Jul 24, 2014 at 13:50
  • 2
    Ahhh, I did not read through the whole specification and just found it odd to not include the page (the OP does not seem to include any reference to pages, but I'm sure the poster would want them to appear). Regarding the \cite command in the driver: I actually think this is the most portable way to get the citation label. You could of course emulate what the actual \cite command does, or use \usebibmacro{cite}; but with the former solution one is tied to recreating the cite style, as for the second solution: one cannot be sure whether the bibmacro is defined and/or does what it should.
    – moewe
    Commented Jul 24, 2014 at 14:01
  • @moewe I've added a couple of commented lines so it is easy to add the page references in with the cross references. I definitely agree this is important information which should be there.
    – cfr
    Commented Jul 24, 2014 at 14:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .