After <i>years</i> of (on and off) discussion<sup><aid="fnr.1"class="footref"href="#fn.1"role="doc-backlink">1</a></sup>, I am elated to be able to present
Org’s new native citation syntax. Org has grown a thoroughly designed, modular,
capable citation system. At last you can refer to Org for all your attribution
needs. Special thanks must go to Nicolas Goaziou for leading the charge, John
Kitchin for paving the way with the <kbd>org-ref</kbd> package, Bruce D’Arcus for driving a
lot of careful consideration of design decisions and starting to document some
of the details — and the many other denizens of the mailing list who have
contributed to the discussion over the years.
</p>
<p>
András Simonyi’s also deserves a special mention for his work creating the Elisp
<spanclass='acr'>CSL</span> library <code>Citeproc.el</code>, which while not directly included in Org is crucial to
providing robust <spanclass='acr'>CSL</span> support, and integrates with <kbd>oc-csl.el</kbd>.
Citations have been carefully designed in such a way that users and Elisp
tinkerers will be able to easily adapt and extend it to fit their needs.
To that end, Org Cite (or <spanclass='acr'>OC</span> for short) has been split into two halves:
</p>
<ulclass="org-ul">
<li><kbd>oc.el</kbd> which defines the syntax and provides some machinery to interact with
citations</li>
<li>Citation processors which interface with <kbd>oc.el</kbd> to produce nicely-formatted
citations to be inserted in your bibliography, within the text, and even
rendered in the buffer<sup><aid="fnr.2"class="footref"href="#fn.2"role="doc-backlink">2</a></sup></li>
</ul>
<p>
There are four capabilities that Org Cite uses the processors for
</p>
<olclass="org-ol">
<li>Inserting and editing citations</li>
<li>Following citations to their definition</li>
<li>Fontifying the citations in the buffer</li>
<li>Exporting the citations</li>
</ol>
<p>
Each capability can have a particular citation processor assigned, independently
of the others. Out of the box, Org uses the <kbd>basic</kbd> processor for all of these tasks.
</p>
<p>
The <kbd>basic</kbd> citation processor is one of four currently bundled with Org:
</p>
<ulclass="org-ul">
<li><kbd>basic</kbd>, which has no dependencies and provides all four capabilities. It export
to all formats, but only provides very simple citations.</li>
<li><kbd>biblatex</kbd> and <kbd>natbib</kbd>, which provide the export capability to create citations
via <ahref="http://biblatex-biber.sourceforge.net/">Biber</a> and (to a lesser extent) <ahref="https://ctan.org/pkg/natbib">natbib</a>, but only for LaTeX.</li>
<li><kbd>csl</kbd>, which provides the export capability using the <ahref="https://citationstyles.org/">Citation Style Language</a>,
and exports to <spanclass='acr'>HTML</span>, LaTeX, Org, and plain text (with an <ahref="https://github.com/andras-simonyi/citeproc-el/issues/23">open issue</a> for <spanclass='acr'>ODT</span>)
— but depends on <ahref="https://github.com/andras-simonyi/citeproc-el">citeproc.el</a>.</li>
</ul>
<p>
This provides a solid foundation for other packages to build off, and despite
Org Cite being yet to be released or documented in the manual we are already
seeing the development of packages like <ahref="https://github.com/jkitchin/org-ref-cite">org-ref-cite</a> (by John Kitchin).
<divclass="csl-entry"><aid="citeproc_bib_item_1"></a>org, mode, Citation Syntax, Mailing List, and Time Effort. 2021. “Elegant Citations with Org-Mode.” <i>Journal of Plain Text Formats</i> 42 (1): 2–3.</div>
</div>
</div>
<p>
So, to summarise, all one needs to get started is:
</p>
<detailsid='orgb88a259'class='code'open>
<summary></summary>
<divclass='gutter'><ahref='#orgb88a259'>#</a>
<buttontitle='Copy to clipboard'onclick='copyPreToClipbord(this)'>⎘</button></div>
<captionclass="t-above"><spanclass="table-number">Table 1:</span> The current set of supported citation styles with variants, with samples generated by <code>oc-csl.el</code> and <code>citeproc.el</code>.</caption>
<colgroup>
<colclass="org-left">
<colclass="org-left">
<colclass="org-left">
<colclass="org-left">
<colclass="org-left">
</colgroup>
<thead>
<tr>
<thscope="col"class="org-left">Style</th>
<thscope="col"class="org-left">Variant</th>
<thscope="col"class="org-left">Sample</th>
<thscope="col"class="org-left">Bib(La)TeX</th>
<thscope="col"class="org-left">NatBib</th>
</tr>
</thead>
<tbody>
<tr>
<tdclass="org-left"><kbd>a</kbd> author</td>
<tdclass="org-left"><kbd>cf</kbd> caps-full</td>
<tdclass="org-left">(<ahref="#citeproc_bib_item_1">Org, Syntax, List, and Effort</a>)</td>
<tdclass="org-left">Citeauthor</td>
<tdclass="org-left"> </td>
</tr>
<tr>
<tdclass="org-left"><kbd>a</kbd> author</td>
<tdclass="org-left"><kbd>f</kbd> full</td>
<tdclass="org-left">(<ahref="#citeproc_bib_item_1">org, Syntax, List, and Effort</a>)</td>
<tdclass="org-left">citeauthor</td>
<tdclass="org-left">citeauthor*</td>
</tr>
<tr>
<tdclass="org-left"><kbd>a</kbd> author</td>
<tdclass="org-left"><kbd>c</kbd> caps</td>
<tdclass="org-left">(<ahref="#citeproc_bib_item_1">Org et al.</a>)</td>
<tdclass="org-left">Citeauthor*</td>
<tdclass="org-left">Citeauthor</td>
</tr>
<tr>
<tdclass="org-left"><kbd>a</kbd> author</td>
<tdclass="org-left"> </td>
<tdclass="org-left">(<ahref="#citeproc_bib_item_1">org et al.</a>)</td>
The style of the citations and the bibliography depend on three things:
</p>
<olclass="org-ol">
<li>The citation processor used</li>
<li>The citation style</li>
<li>The bibliography style</li>
</ol>
<p>
The citation processor is automatically selected based on
<code>org-cite-export-processors</code> based on the export format being used, but can be set
on a per-document basis via the <kbd>#+cite_export</kbd> keyword. Here, I shall use the <kbd>csl</kbd>
processor,
</p>
<detailsid='org0920610'class='code'open>
<summary></summary>
<divclass='gutter'><ahref='#org0920610'>#</a>
<buttontitle='Copy to clipboard'onclick='copyPreToClipbord(this)'>⎘</button></div>
<preclass="example"id="org0920610">
#+cite_export: csl
</pre>
</details>
<p>
With <code>org-cite-export-processors</code>, you can also set the bibliography and citation
style by giving a triplet of parameters <codeclass="src src-elisp"><spanclass="org-rainbow-delimiters-depth-1">(</span>PROCESSOR BIBLIOGRAPHY-STYLE CITATION-STYLE<spanclass="org-rainbow-delimiters-depth-1">)</span></code> instead of just the processor. You can also use this triplet of
values with the <kbd>#+cite_export</kbd> keyword
</p>
<detailsid='orgf8da086'class='code'open>
<summary></summary>
<divclass='gutter'><ahref='#orgf8da086'>#</a>
<buttontitle='Copy to clipboard'onclick='copyPreToClipbord(this)'>⎘</button></div>
There are also some more options about how the bibliography is produced. These
options are handled by the active citation processor. For example, while the <spanclass='acr'>CSL</span>
processor does not currently support any options, the BibLaTeX processor passes
options to a <codeclass="src src-LaTeX"><spanclass="org-font-latex-sedate"><spanclass="org-keyword"><spanclass="org-font-latex-warning"><spanclass="org-keyword">\</span></span></span></span><spanclass="org-font-latex-sedate"><spanclass="org-keyword"><spanclass="org-keyword">printbibliography</span></span></span></code> command, allowing for the
following:
</p>
<detailsid='org29efa9f'class='code'open>
<summary></summary>
<divclass='gutter'><ahref='#org29efa9f'>#</a>
<buttontitle='Copy to clipboard'onclick='copyPreToClipbord(this)'>⎘</button></div>
<ahref="https://github.com/andras-simonyi/citeproc-el">Citeproc</a> is currently available on <ahref="https://melpa.org/#/citeproc"><spanclass='acr'>MELPA</span></a>, and so can be installed via your
package manager of choice so long as <spanclass='acr'>MELPA</span> is included in your
<code>package-archives</code>. When available, it will be automatically loaded by
<kbd>oc-csl.el</kbd>.
</p>
<p>
It currently supports exporting to:
</p>
<ulclass="org-ul">
<li><spanclass='acr'>HTML</span></li>
<li>LaTeX</li>
<li>Org</li>
<li>Plain text</li>
</ul>
<p>
Should you be interested in other formats, know that Citeproc is designed to
easily support adding new formats (see <kbd>citeproc-formatters.el</kbd> for examples).
</p>
<p>
Citeproc can currently retrieve bibliographic information from the following
Though support for Bib(La)TeX and <ahref="https://gewhere.github.io/org-bibtex">org-bibtex</a> is rudimentary compared to <spanclass='acr'>CSL</span>-<spanclass='acr'>JSON</span>.
</p>
<p>
When exporting, you can set the style by providing a path to <spanclass='acr'>CSL</span> style files,
either absolute or relative to <code>org-cite-csl-styles-dir</code>. For example, if I
download <kbd>apa.csl</kbd> I can use it like so:
</p>
<detailsid='org678d1e6'class='code'open>
<summary></summary>
<divclass='gutter'><ahref='#org678d1e6'>#</a>
<buttontitle='Copy to clipboard'onclick='copyPreToClipbord(this)'>⎘</button></div>
<preclass="example"id="org678d1e6">
#+cite_export: csl ~/Downloads/apa.csl
</pre>
</details>
<p>
When no style is given <code>org-cite-csl--fallback-style-file</code> will be used, which
Org Cite has only just been merged in the past month, and is yet to be included
in an Org release, but we’re seeing a tremendous degree of community interest.
There are <i>already</i> promising developments with third-party packages, such as
<ahref="https://github.com/bdarcus/bibtex-actions">bibtex-actions</a> and <ahref="https://github.com/jkitchin/org-ref-cite">org-ref-cite</a>. I can’t wait to see how the ecosystem continues
There is currently an <ahref="https://github.com/andras-simonyi/org-cite-csl-activate">ongoing effort</a> to use <kbd>oc.el</kbd> and <kbd>citeproc.el</kbd> to
I’m talking about a certain company <ahref="https://moneyweek.com/505757/great-frauds-in-history-robert-maxwell">created by a British Fraudster</a> that
has a <ahref="https://www.theguardian.com/science/2017/jun/27/profitable-business-scientific-publishing-bad-for-science">40% profit margin, engages in blackmail-like practices with universities</a>,
prompted <ahref="http://thecostofknowledge.com/">19,000 researchers</a> to boycott them, <ahref="https://www.the-scientist.com/the-nutshell/elsevier-published-6-fake-journals-44160">published six fake journals</a>,
vigorously <ahref="https://web.archive.org/web/20200129202353/http://legacy.earlham.edu/~peters/fos/2007/08/publishers-launch-anti-oa-lobbying.html">lobbys against Open Access</a>, <ahref="https://rossmounce.co.uk/2017/02/14/elsevier-selling-access-to-open-access-again/">charged for Open Acess articles</a>
(repeatedly), made <ahref="https://www.michaeleisen.org/blog/?p=807">financial contributions to politicians who then tried to
prevent publicly accesible reaserch</a>, and whose reference manager <ahref="https://www.zotero.org/support/kb/mendeley_import#mendeley_database_encryption">encrypted
reaserchers’<i>own</i> databases</a>“to comply with <spanclass='acr'>GDPR</span>”.