preface of a book and author of the book

Hello

I'm having a problem with Zotero for quoting a book preface. I would like to cite it as follows:
Author-of-the-preface, “Preface”, in Author-of-the-book, Title-of-the-book.
E.g.: Raymond Boudon, “Preface”, in Daniel Bell, The end of ideology...
In Zotero, Boudon is “author” of the book chapter and Bell is “author of the book” (he is not the director or editor, but the author).
However, I can't display Bell's name and the reference appears as follows: “Raymond Boudon, ‘Preface’, in The end of ideology.
Is there any way of displaying the name of the book's author? Am I missing a variable?

Many thanks in advance for your help
Théo

Translated with DeepL.com (free version)
  • I would treat this just like a book chapter.
    So switch the book author to "editor"
  • Thanks for your reply, but it doesn't work: the reference becomes
    Raymond Boudon, “Preface”, in Daniel Bell (ed.), The end of ideology...
    But Daniel Bell is not the editor or director but the sole author of the book...
    Thank you
  • edited March 5, 2025
    You'd need to edit the citation style. No way around it without manually editing.
    The "Book Author" variable in Zotero is the "container-author" variable CSL. You'd add that as a subsitute to the names element that calls the editors for book chapters.
    https://www.zotero.org/support/dev/citation_styles/style_editing_step-by-step
  • edited March 5, 2025
    thank you very much, it's very clear.
    I guess I'll have to put in my author macro something like :
    <*if variable=“container-author”>

    <*names variable=“container-author”>
    <*name form=“long” and=“text” delimiter-precedes-last=“never” sort-separator=“ ‘ font-style=’normal”>
    <*name-part name=“family” font-variant=“small-caps”/>

    <*label form=“short” prefix=“ ”/>

    < /if>

    I'm starting out in CSL and so far it's not working: either I have the author of the preface, or I have the author of the book. Could you tell me if this piece of code is right and where exactly I should put it?

    Thanks a lot!

  • <* if variable=“container-author”>





  • To show short bits of code, wrap them in code tags like so: <code>asdf</code>
    I'd prefer if you shared your full code via pastebin.com though. It's not clear what style you're using.
  • Replace your editor macro with this:
    <macro name="editor">
    <names variable="editor">
    <name form="long" and="text" delimiter-precedes-last="never" sort-separator=" " font-style="normal">
    <name-part name="family" font-variant="small-caps"/>
    </name>
    <label form="short" prefix="&#160;"/>
    <substitute>
    <names variable="container-author"/>
    </substitute>
    </names>
    </macro>
  • its working thank you !!
Sign In or Register to comment.