Search code examples
csl

How to modify a style to cite a classical work in CSL


I am using CSL (pandoc with the citeproc option), and I need to cite works like Aristotle’s Physics, which are usually cited simply as a standard abbreviation followed by the locator (i.e. pages in Bekker’s edition).

(Yes, I am aware that BibLaTeX already supports what I want, but it does not easily support exporting the footnotes to Word, which for the moment is necessary.)

For example, a citation using a footnote style might look like this:

  1. Phys. 201a10–11.

Ideally, I would also like to have the option of omitting the title altogether, if I am commenting repeatedly on the same work:

  1. 201b1–10.

At the moment, I have come up with a “kludge” of a solution. Since I never use either the annote or note fields, I have repurposed them. If the annote field is filled with anything, the citation will display only the locator (as in footnote 2). If the note field is filled (and the annote field is blank, it prints the citation as in footnote 1: abbreviation + locator.

Here is how I have modified the <citation> element:

<citation et-al-min="4" et-al-use-first="1" disambiguate-add-names="true">
  <layout suffix="." delimiter="; ">
    <!--
      If "annote" is defined, cite only the work's locator.
      If "note" is defined, cite the work as a classical work.
      "Annote" overrides "note".
    -->
    <choose>
      <if variable="annote">
        <text variable="locator"/>
      </if>
      <else-if variable="note">
        <group delimiter=" ">
          <text variable="citation-key"/>
          <text variable="locator"/>
        </group>
      </else-if>
      <else>
        <!-- Normal layout -->
      </else>
    </choose>
  </layout>
</citation>

This solution produces the desired output. However, it seems awkward.

Any suggestions for how this could be improved? Or is this the best that can be done given the limitations of CSL?


Solution

  • CSL now has (and pandoc supports) a classic item type which is designed for this and you can properly adapt (likely with title-short; you could maybe use position="ibid" for using just the locator). There isn't, afaik, any existing style that you can use as a template. You'll also need to use either CSL-JSON or CSL-YAML as input for pandoc -- I don't believe this is converted into by pandoc from any BibLaTeX item type.