Code Monkey home page Code Monkey logo

citeproc-el's People

Contributors

andras-simonyi avatar ashiklom avatar quintus avatar titaniumbones avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

citeproc-el's Issues

When using the "new" org-mode citation system, citations in exponents are nor correctly exported.

Almost all is the title : in styles prescribing citation calls by numbers in exponents, these citation calls are incorrectly rendered :

  • in ODT, they are rendered by a caret followed by the number wrapped in brackets : ^{xx} ;
  • the same rendering appears in LaTeX, giving a switch to math mode starting with the first citation.

See the example (.org, .tex, .pdf and .odt)

A quick fix would be to wrap such citations in text math delimiters (\(...\) or dollars).

Issue #23 may be related...

TstOrgCsl.zip

New citation mode: possessive cite or so

When using in-text citation you sometimes may want to have the author of a paper in the possessive form:

I'm talking about Doe's (2020) concept of ...

Should this be supported?
Related pandoc issue: jgm/pandoc#7385

Should be much easier to support this with the new org syntax than with pandoc's design philosophy in mind.

position="first" match not properly evaluated

Hi there,

since I suppose it's an issue in citeproc.el rather than org-mode, I'll re-post my original org-mode ml posting below:


the CSL style I use has footnotes. When a book is cited, it is once
cited with the full bibliographic information, and later footnotes then
reference the footnote in which this information first appeared,
shortening the later footnotes to the format "Author, (o. Fn. ),
...". (the spurious comma I will look into later, it's probably an error
in the CSL file). Now take this org file:

#+TITLE: Test
#+AUTHOR: testauthor
#+LANGUAGE: de
#+cite_export: csl  /tmp/mwe/juristische-schulung.csl
#+bibliography: /tmp/mwe/mwe.bib

Das ist ein Test mit dem ersten Zitat [cite:@knuth1997tacp1 p. 55].
Dasselbe Zitat mit einer anderen Seite [cite:@knuth1997tacp1 p. 70].

mwe.bib:

@Book{knuth1997tacp1,
author       = {Donald E. Knuth},
maintitle        = {The Art of Computer Programming},
title = {Fundamental Algorithms},
year      = {1997},
edition   = {3},
publisher = {Addison-Wesley},
location  = {Reading, Harlow, Menlo Park, Berkeley, Don Mills, Sydney, Bonn, Amsterdam, Tokyo, Mexico City},
langid    = {english},
volume    = {1}}

juristische-schulung.csl is https://github.com/citation-style-language/styles/blob/e22b8a566bad9b4c7f52720f60dd875057a5d210/juristische-schulung.csl

Exporting this gives these two footnotes:

1 Knuth, The Art of Computer Programming, 3. Aufl. (1997), 55
2 Knuth, , 70

The second footnote is incomplete. It lacks the "o. Fn." mark and the
footnote referenced. If I export the equivalent pandoc-markdown document
with pandoc:

---
title: Test
author: Testauthor
lang: de
---

Das ist ein Test mit dem ersten Zitat [@knuth1997tacp1, p. 55].
Dasselbe Zitat mit einer anderen Seite [@knuth1997tacp1, p. 70].

Then both footnotes are proper:

1. Knuth, The Art of Computer Programming, 3. Aufl. (1997), p. 55
2. Knuth, (o. Fn. 1), p. 70

So it’s not an error in the CSL file. The CSL file uses this construct
to differenciate the two cases:

<text macro="autor-editor-note" suffix=", "/>
<choose>
  <if match="none" position="first">
    <group delimiter=" " prefix="(" suffix="), ">
      <text value="o. Fn."/>
      <text variable="first-reference-note-number"/>
    </group>
  </if>
  <else>
    <text variable="title" form="short" suffix=", "/>
    <text macro="edition"/>
  </else>
</choose>

This is probably a bug.

Org mode version 9.5 (release_9.5-104-g2b1fc6 @ /home/quintus/.emacs.d/org-mode/lisp/)
citeproc.el at 34e6658

-quintus

Missing date bug?

I've mentioned this before, but am confirming with the merged version.

Source:

#+language: en
#+cite_export: csl
#+bibliography: test.bib

[cite:@low2001]

#+print_bibliography:

Output:

(Low, n.d.)

Low, Setha M. n.d. “The Edge and the Center: Gated Communities and the
Discourse of Urban Fear.” /American Anthropologist/ 103
(1):45–58. [https://doi.org/10.1525/aa.2001.103.1.45].


[https://doi.org/10.1525/aa.2001.103.1.45]
<https://doi.org/10.1525/aa.2001.103.1.45>

Biblatex file:

@article{low2001,
  author = {Low, Setha M.},
  title = {The Edge and the Center: Gated Communities and the Discourse
    of Urban Fear},
  journal = {American Anthropologist},
  volume = {103},
  number = {1},
  pages = {45-58},
  date = {2001-03-01},
  urldate = {2016-02-18},
  doi = {10.1525/aa.2001.103.1.45},
  issn = {1548-1433},
  langid = {en}
}

Add links on doi, pmid, etc.

Another non-essential-nice-to-have feature to consider.

See this commit.

The option would just allow this in HTML export:

https://doi.org/10.1525/aa.2001.103.1.45

... or this:

doi:10.1525/aa.2001.103.1.45

.... to be:

<a href="https://doi.org/10.1525/aa.2001.103.1.45" class="biblink">https://doi.org/10.1525/aa.2001.103.1.45</a>

... or:

<a href="https://doi.org/10.1525/aa.2001.103.1.45" class="biblink">doi:10.1525/aa.2001.103.1.45</a>

Locator treated as prefix

Dear all,

take this org file mwe.org:

#+TITLE: Test
#+AUTHOR: Testauthor
#+LANGUAGE: de
#+bibliography: /tmp/mwe/mwe.bib
#+cite_export: csl /tmp/mwe/juristische-schulung.csl

Das ist ein Test [cite:@redeker2020itr Kap. A Rn. 72, Suffixtext hier]

with this mwe.bib Biblatex file:

@Book{redeker2020itr,
author       = {Helmut Redeker},
title        = {IT-Recht},
year      = {2020},
edition   = {7},
publisher = {C.H. Beck},
location  = {München},
langid    = {ngerman}}

juristische-schulung.el is https://github.com/citation-style-language/styles/blob/e22b8a566bad9b4c7f52720f60dd875057a5d210/juristische-schulung.csl

When this is exported to HTML, the locator Kap. A Rn. 72 is split and partly taken as the prefix. It exports to this:

1 Kap. A Rn.  Redeker, IT-Recht, 7. Aufl. (2020), 72 Suffixtext hier

This is incorrect; it should export to:

1 Redeker, IT-Recht, 7. Aufl. (2020), Kap. A Rn. 72 Suffixtext hier

Org mode version 9.5 (release_9.5-214-gced2b3 @ /home/quintus/.emacs.d/org-mode/lisp/)

citeproc.el at 38e70c0

Citations: exporting with csl crashes [9.5 (9.5-g0a86ad @ /home/quintus/.emacs.d/elpa/org-9.5/)]

Forwarded from https://list.orgmode.org/[email protected]/T/#t


Remember to cover the basics, that is, what you expected to happen and
what in fact did happen. You don't know how to make a good report? See

 https://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org mailing list.

Hi there,

I've been trying to use the new citation facilities in the just-released
9.5 version of org for a simple test document with my preferred CSL
style (the one usually used in German law discipline in one way or
another), but did not have luck with it so far. That being said,
exporting with the default "bare" citation processor appears to be fine.
With the "csl" processor, I receive this error when I export to LaTeX
with `org-latex-export-as-latex':

Debugger entered--Lisp error: (wrong-type-argument sequencep splice)
  citeproc-rt--cquote-pstns-1(splice 15)
  citeproc-rt--cquote-pstns-1((nil (nil (nil (((font-style . "italic")) (((rendered-var . author) (rendered-names)) ((...) (nil "Goldsmith")) "/" ((...) (nil "Wu"))))) ", ") splice (nil ", " (((rendered-var . locator)) #("83" 0 2 (:parent (citation-reference (:key "goldsmith-wu2008netctrl" :begin 162 :end 192 :post-blank 0 :suffix ... :parent ...))))))) 1)
  citeproc-rt--cquote-pstns((nil (nil (nil (((font-style . "italic")) (((rendered-var . author) (rendered-names)) ((...) (nil "Goldsmith")) "/" ((...) (nil "Wu"))))) ", ") splice (nil ", " (((rendered-var . locator)) #("83" 0 2 (:parent (citation-reference (:key "goldsmith-wu2008netctrl" :begin 162 :end 192 :post-blank 0 :suffix ... :parent ...))))))))
  citeproc-rt-punct-in-quote((nil (nil (nil (((font-style . "italic")) (((rendered-var . author) (rendered-names)) ((...) (nil "Goldsmith")) "/" ((...) (nil "Wu"))))) ", ") splice (nil ", " (((rendered-var . locator)) #("83" 0 2 (:parent (citation-reference (:key "goldsmith-wu2008netctrl" :begin 162 :end 192 :post-blank 0 :suffix ... :parent ...))))))))
  citeproc-rt-finalize((nil (nil (nil (((font-style . "italic")) (((rendered-var . author) (rendered-names)) ((...) (nil "Goldsmith")) "/" ((...) (nil "Wu"))))) ", ") splice (nil ", " (((rendered-var . locator)) #("83" 0 2 (:parent (citation-reference (:key "goldsmith-wu2008netctrl" :begin 162 :end 192 :post-blank 0 :suffix ... :parent ...))))))) t)
  citeproc-citation--render(#s(citeproc-citation :cites ((... ... ... ... ... ... ... ...)) :note-index nil :mode nil :suppress-affixes nil :capitalize-first nil :ignore-et-al nil :grouped nil) #s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t) :bib-layout (lambda ... ...) :cite-opts (... ... ...) :cite-note t :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1568bbba2a35>) :itemdata #<hash-table equal 1/65 0x1568bbb4b625> :citations #s(queue :head (...) :tail (...)) :names #<hash-table equal 2/65 0x1568bbb7832d> :finalized t) t)
  citeproc-citation--render-formatted-citation(#s(citeproc-citation :cites ((... ... ... ... ... ... ... ...)) :note-index nil :mode nil :suppress-affixes nil :capitalize-first nil :ignore-et-al nil :grouped nil) #s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t) :bib-layout (lambda ... ...) :cite-opts (... ... ...) :cite-note t :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1568bbba2a35>) :itemdata #<hash-table equal 1/65 0x1568bbb4b625> :citations #s(queue :head (...) :tail (...)) :names #<hash-table equal 2/65 0x1568bbb7832d> :finalized t) latex t)
  #f(compiled-function (it) #<bytecode 0x1568bbda87cd>)(#s(citeproc-citation :cites (((position . first) (itd . #s(citeproc-itemdata :varvals ((citation-number . "1") (label . "page") (publisher-place . "New York") (publisher . "Oxford University Press") (title . "Who Controls the Internet?") (issued ...) (type . "book") (author ... ...) (ISBN . "978-0-19-534064-8")) :rawcite nil :rc-uptodate nil :sort-key ("Goldsmith, Jack/ Wu, Tim" "70080000") :occurred-before t :disamb-pos first)) (id . "goldsmith-wu2008netctrl") (prefix) (suffix) (locator . #("83" 0 2 (:parent (citation-reference ...)))) (label . "page") (location . #("p. 83" 0 5 (:parent (citation-reference ...)))))) :note-index nil :mode nil :suppress-affixes nil :capitalize-first nil :ignore-et-al nil :grouped nil))
  mapcar(#f(compiled-function (it) #<bytecode 0x1568bbda87cd>) (#s(citeproc-citation :cites (((position . first) (itd . #s(citeproc-itemdata :varvals (... ... ... ... ... ... ... ... ...) :rawcite nil :rc-uptodate nil :sort-key ("Goldsmith, Jack/ Wu, Tim" "70080000") :occurred-before t :disamb-pos first)) (id . "goldsmith-wu2008netctrl") (prefix) (suffix) (locator . #("83" 0 2 (:parent ...))) (label . "page") (location . #("p. 83" 0 5 (:parent ...))))) :note-index nil :mode nil :suppress-affixes nil :capitalize-first nil :ignore-et-al nil :grouped nil)))
  citeproc-render-citations(#s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t) :bib-layout (lambda ... ...) :cite-opts (... ... ...) :cite-note t :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1568bbba2a35>) :itemdata #<hash-table equal 1/65 0x1568bbb4b625> :citations #s(queue :head (...) :tail (...)) :names #<hash-table equal 2/65 0x1568bbb7832d> :finalized t) latex t)
  org-cite-csl--rendered-citations((:export-options nil :back-end #s(org-export-backend :name latex :parent nil :transcoders (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :options (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :filters (... ... ... ...) :blocks nil :menu (108 "Export to LaTeX" ...)) :translate-alist ((bold . org-latex-bold) (center-block . org-latex-center-block) (clock . org-latex-clock) (code . org-latex-code) (drawer . org-latex-drawer) (dynamic-block . org-latex-dynamic-block) (entity . org-latex-entity) (example-block . org-latex-example-block) (export-block . org-latex-export-block) (export-snippet . org-latex-export-snippet) (fixed-width . org-latex-fixed-width) (footnote-definition . org-latex-footnote-definition) (footnote-reference . org-latex-footnote-reference) (headline . org-latex-headline) (horizontal-rule . org-latex-horizontal-rule) (inline-src-block . org-latex-inline-src-block) (inlinetask . org-latex-inlinetask) (italic . org-latex-italic) (item . org-latex-item) (keyword . org-latex-keyword) (latex-environment . org-latex-latex-environment) (latex-fragment . org-latex-latex-fragment) (line-break . org-latex-line-break) (link . org-latex-link) (node-property . org-latex-node-property) (paragraph . org-latex-paragraph) ...) :exported-data #<hash-table eq 3/4001 0x1568bbcbf9e5> :input-buffer "mwe.org" :input-file "/tmp/mwe/mwe.org" :latex-class "article" :latex-class-options nil :latex-header nil :latex-header-extra nil :description nil :keywords nil :subtitle nil ...))
  org-cite-csl-render-citation((citation (:style nil :begin 156 :post-blank 0 :end 193 :contents-begin 162 :contents-end 192 :parent (footnote-reference ... #1)) (citation-reference (:key "goldsmith-wu2008netctrl" :begin 162 :end 192 :post-blank 0 :suffix ... :parent #1))) (nil) #s(org-export-backend :name latex :parent nil :transcoders ((bold . org-latex-bold) (center-block . org-latex-center-block) (clock . org-latex-clock) (code . org-latex-code) (drawer . org-latex-drawer) (dynamic-block . org-latex-dynamic-block) (entity . org-latex-entity) (example-block . org-latex-example-block) (export-block . org-latex-export-block) (export-snippet . org-latex-export-snippet) (fixed-width . org-latex-fixed-width) (footnote-definition . org-latex-footnote-definition) (footnote-reference . org-latex-footnote-reference) (headline . org-latex-headline) (horizontal-rule . org-latex-horizontal-rule) (inline-src-block . org-latex-inline-src-block) (inlinetask . org-latex-inlinetask) (italic . org-latex-italic) (item . org-latex-item) (keyword . org-latex-keyword) (latex-environment . org-latex-latex-environment) (latex-fragment . org-latex-latex-fragment) (line-break . org-latex-line-break) (link . org-latex-link) (node-property . org-latex-node-property) (paragraph . org-latex-paragraph) ...) :options ((:latex-class "LATEX_CLASS" nil org-latex-default-class t) (:latex-class-options "LATEX_CLASS_OPTIONS" nil nil t) (:latex-header "LATEX_HEADER" nil nil newline) (:latex-header-extra "LATEX_HEADER_EXTRA" nil nil newline) (:description "DESCRIPTION" nil nil parse) (:keywords "KEYWORDS" nil nil parse) (:subtitle "SUBTITLE" nil nil parse) (:latex-active-timestamp-format nil nil org-latex-active-timestamp-format) (:latex-caption-above nil nil org-latex-caption-above) (:latex-classes nil nil org-latex-classes) (:latex-default-figure-position nil nil org-latex-default-figure-position) (:latex-default-table-environment nil nil org-latex-default-table-environment) (:latex-default-quote-environment nil nil org-latex-default-quote-environment) (:latex-default-table-mode nil nil org-latex-default-table-mode) (:latex-diary-timestamp-format nil nil org-latex-diary-timestamp-format) (:latex-footnote-defined-format nil nil org-latex-footnote-defined-format) (:latex-footnote-separator nil nil org-latex-footnote-separator) (:latex-format-drawer-function nil nil org-latex-format-drawer-function) (:latex-format-headline-function nil nil org-latex-format-headline-function) (:latex-format-inlinetask-function nil nil org-latex-format-inlinetask-function) (:latex-hyperref-template nil nil org-latex-hyperref-template t) (:latex-image-default-scale nil nil org-latex-image-default-scale) (:latex-image-default-height nil nil org-latex-image-default-height) (:latex-image-default-option nil nil org-latex-image-default-option) (:latex-image-default-width nil nil org-latex-image-default-width) (:latex-images-centered nil nil org-latex-images-centered) ...) :filters ((:filter-options . org-latex-math-block-options-filter) (:filter-paragraph . org-latex-clean-invalid-line-breaks) (:filter-parse-tree org-latex-math-block-tree-filter org-latex-matrices-tree-filter org-latex-image-link-filter) (:filter-verse-block . org-latex-clean-invalid-line-breaks)) :blocks nil :menu (108 "Export to LaTeX" (... ... ... ...))) (:export-options nil :back-end #s(org-export-backend :name latex :parent nil :transcoders (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :options (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :filters (... ... ... ...) :blocks nil :menu (108 "Export to LaTeX" ...)) :translate-alist ((bold . org-latex-bold) (center-block . org-latex-center-block) (clock . org-latex-clock) (code . org-latex-code) (drawer . org-latex-drawer) (dynamic-block . org-latex-dynamic-block) (entity . org-latex-entity) (example-block . org-latex-example-block) (export-block . org-latex-export-block) (export-snippet . org-latex-export-snippet) (fixed-width . org-latex-fixed-width) (footnote-definition . org-latex-footnote-definition) (footnote-reference . org-latex-footnote-reference) (headline . org-latex-headline) (horizontal-rule . org-latex-horizontal-rule) (inline-src-block . org-latex-inline-src-block) (inlinetask . org-latex-inlinetask) (italic . org-latex-italic) (item . org-latex-item) (keyword . org-latex-keyword) (latex-environment . org-latex-latex-environment) (latex-fragment . org-latex-latex-fragment) (line-break . org-latex-line-break) (link . org-latex-link) (node-property . org-latex-node-property) (paragraph . org-latex-paragraph) ...) :exported-data #<hash-table eq 3/4001 0x1568bbcbf9e5> :input-buffer "mwe.org" :input-file "/tmp/mwe/mwe.org" :latex-class "article" :latex-class-options nil :latex-header nil :latex-header-extra nil :description nil :keywords nil :subtitle nil ...))
  org-cite-export-citation((citation (:style nil :begin 156 :post-blank 0 :end 193 :contents-begin 162 :contents-end 192 :parent (footnote-reference ... #1)) (citation-reference (:key "goldsmith-wu2008netctrl" :begin 162 :end 192 :post-blank 0 :suffix ... :parent #1))) nil (:export-options nil :back-end #s(org-export-backend :name latex :parent nil :transcoders (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :options (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :filters (... ... ... ...) :blocks nil :menu (108 "Export to LaTeX" ...)) :translate-alist ((bold . org-latex-bold) (center-block . org-latex-center-block) (clock . org-latex-clock) (code . org-latex-code) (drawer . org-latex-drawer) (dynamic-block . org-latex-dynamic-block) (entity . org-latex-entity) (example-block . org-latex-example-block) (export-block . org-latex-export-block) (export-snippet . org-latex-export-snippet) (fixed-width . org-latex-fixed-width) (footnote-definition . org-latex-footnote-definition) (footnote-reference . org-latex-footnote-reference) (headline . org-latex-headline) (horizontal-rule . org-latex-horizontal-rule) (inline-src-block . org-latex-inline-src-block) (inlinetask . org-latex-inlinetask) (italic . org-latex-italic) (item . org-latex-item) (keyword . org-latex-keyword) (latex-environment . org-latex-latex-environment) (latex-fragment . org-latex-latex-fragment) (line-break . org-latex-line-break) (link . org-latex-link) (node-property . org-latex-node-property) (paragraph . org-latex-paragraph) ...) :exported-data #<hash-table eq 3/4001 0x1568bbcbf9e5> :input-buffer "mwe.org" :input-file "/tmp/mwe/mwe.org" :latex-class "article" :latex-class-options nil :latex-header nil :latex-header-extra nil :description nil :keywords nil :subtitle nil ...))
  org-cite-process-citations((:export-options nil :back-end #s(org-export-backend :name latex :parent nil :transcoders (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :options (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :filters (... ... ... ...) :blocks nil :menu (108 "Export to LaTeX" ...)) :translate-alist ((bold . org-latex-bold) (center-block . org-latex-center-block) (clock . org-latex-clock) (code . org-latex-code) (drawer . org-latex-drawer) (dynamic-block . org-latex-dynamic-block) (entity . org-latex-entity) (example-block . org-latex-example-block) (export-block . org-latex-export-block) (export-snippet . org-latex-export-snippet) (fixed-width . org-latex-fixed-width) (footnote-definition . org-latex-footnote-definition) (footnote-reference . org-latex-footnote-reference) (headline . org-latex-headline) (horizontal-rule . org-latex-horizontal-rule) (inline-src-block . org-latex-inline-src-block) (inlinetask . org-latex-inlinetask) (italic . org-latex-italic) (item . org-latex-item) (keyword . org-latex-keyword) (latex-environment . org-latex-latex-environment) (latex-fragment . org-latex-latex-fragment) (line-break . org-latex-line-break) (link . org-latex-link) (node-property . org-latex-node-property) (paragraph . org-latex-paragraph) ...) :exported-data #<hash-table eq 3/4001 0x1568bbcbf9e5> :input-buffer "mwe.org" :input-file "/tmp/mwe/mwe.org" :latex-class "article" :latex-class-options nil :latex-header nil :latex-header-extra nil :description nil :keywords nil :subtitle nil ...))
  (progn (run-hook-with-args 'org-export-before-processing-hook (progn (or (and (memq (type-of backend) cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list 'org-export-backend backend))) (aref backend 1))) (org-export-expand-include-keyword) (org-export--delete-comment-trees) (org-macro-initialize-templates org-export-global-macros) (org-macro-replace-all org-macro-templates parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp) (if org-export-use-babel (progn (org-babel-exp-process-buffer) (org-macro-replace-all '(("results" . "$1")) parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp))) (goto-char (point-min)) (save-excursion (run-hook-with-args 'org-export-before-parsing-hook (progn (or (and (memq (type-of backend) cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list 'org-export-backend backend))) (aref backend 1)))) (org-set-regexps-and-options) (org-update-radio-target-regexp) (setq info (org-combine-plists info (org-export-get-environment backend subtreep ext-plist))) (org-cite-store-bibliography info) (org-cite-store-export-processor info) (let ((--dolist-tail-- (append (org-export-get-all-options backend) org-export-options-alist))) (while --dolist-tail-- (let ((entry (car --dolist-tail--))) (if (consp entry) (let* ((x316 ...) (x317 ...)) (if (consp x317) (let* ... ...) nil)) nil) (setq --dolist-tail-- (cdr --dolist-tail--))))) (setq info (org-export-install-filters info)) (let ((backend-name (progn (or (and (memq ... cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list ... backend))) (aref backend 1)))) (let ((--dolist-tail-- (plist-get info :filter-options))) (while --dolist-tail-- (let ((filter (car --dolist-tail--))) (let ((result ...)) (if result (progn ...))) (setq --dolist-tail-- (cdr --dolist-tail--)))))) (setq tree (org-element-parse-buffer nil visible-only)) (org-export--prune-tree tree info) (org-export--remove-uninterpreted-data tree info) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-export--collect-tree-properties tree info)) (org-cite-process-citations info) (org-cite-process-bibliography info) (let* ((body (org-element-normalize-string (or (org-export-data tree info) ""))) (inner-template (cdr (assq 'inner-template (plist-get info :translate-alist)))) (full-body (org-export-filter-apply-functions (plist-get info :filter-body) (if (not (functionp inner-template)) body (funcall inner-template body info)) info)) (template (cdr (assq 'template (plist-get info :translate-alist)))) (output (if (or (not (functionp template)) body-only) full-body (funcall template full-body info)))) (setq output (org-cite-finalize-export output info)) (org-no-properties (org-export-filter-apply-functions (plist-get info :filter-final-output) output info))))
  (save-current-buffer (set-buffer --buf-copy) (goto-char (point-min)) (progn (run-hook-with-args 'org-export-before-processing-hook (progn (or (and (memq (type-of backend) cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list 'org-export-backend backend))) (aref backend 1))) (org-export-expand-include-keyword) (org-export--delete-comment-trees) (org-macro-initialize-templates org-export-global-macros) (org-macro-replace-all org-macro-templates parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp) (if org-export-use-babel (progn (org-babel-exp-process-buffer) (org-macro-replace-all '(("results" . "$1")) parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp))) (goto-char (point-min)) (save-excursion (run-hook-with-args 'org-export-before-parsing-hook (progn (or (and (memq ... cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list ... backend))) (aref backend 1)))) (org-set-regexps-and-options) (org-update-radio-target-regexp) (setq info (org-combine-plists info (org-export-get-environment backend subtreep ext-plist))) (org-cite-store-bibliography info) (org-cite-store-export-processor info) (let ((--dolist-tail-- (append (org-export-get-all-options backend) org-export-options-alist))) (while --dolist-tail-- (let ((entry (car --dolist-tail--))) (if (consp entry) (let* (... ...) (if ... ... nil)) nil) (setq --dolist-tail-- (cdr --dolist-tail--))))) (setq info (org-export-install-filters info)) (let ((backend-name (progn (or (and ... t) (signal ... ...)) (aref backend 1)))) (let ((--dolist-tail-- (plist-get info :filter-options))) (while --dolist-tail-- (let ((filter ...)) (let (...) (if result ...)) (setq --dolist-tail-- (cdr --dolist-tail--)))))) (setq tree (org-element-parse-buffer nil visible-only)) (org-export--prune-tree tree info) (org-export--remove-uninterpreted-data tree info) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-export--collect-tree-properties tree info)) (org-cite-process-citations info) (org-cite-process-bibliography info) (let* ((body (org-element-normalize-string (or (org-export-data tree info) ""))) (inner-template (cdr (assq 'inner-template (plist-get info :translate-alist)))) (full-body (org-export-filter-apply-functions (plist-get info :filter-body) (if (not ...) body (funcall inner-template body info)) info)) (template (cdr (assq 'template (plist-get info :translate-alist)))) (output (if (or (not ...) body-only) full-body (funcall template full-body info)))) (setq output (org-cite-finalize-export output info)) (org-no-properties (org-export-filter-apply-functions (plist-get info :filter-final-output) output info)))))
  (unwind-protect (save-current-buffer (set-buffer --buf-copy) (goto-char (point-min)) (progn (run-hook-with-args 'org-export-before-processing-hook (progn (or (and (memq ... cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list ... backend))) (aref backend 1))) (org-export-expand-include-keyword) (org-export--delete-comment-trees) (org-macro-initialize-templates org-export-global-macros) (org-macro-replace-all org-macro-templates parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp) (if org-export-use-babel (progn (org-babel-exp-process-buffer) (org-macro-replace-all '(...) parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp))) (goto-char (point-min)) (save-excursion (run-hook-with-args 'org-export-before-parsing-hook (progn (or (and ... t) (signal ... ...)) (aref backend 1)))) (org-set-regexps-and-options) (org-update-radio-target-regexp) (setq info (org-combine-plists info (org-export-get-environment backend subtreep ext-plist))) (org-cite-store-bibliography info) (org-cite-store-export-processor info) (let ((--dolist-tail-- (append (org-export-get-all-options backend) org-export-options-alist))) (while --dolist-tail-- (let ((entry ...)) (if (consp entry) (let* ... ...) nil) (setq --dolist-tail-- (cdr --dolist-tail--))))) (setq info (org-export-install-filters info)) (let ((backend-name (progn (or ... ...) (aref backend 1)))) (let ((--dolist-tail-- (plist-get info :filter-options))) (while --dolist-tail-- (let (...) (let ... ...) (setq --dolist-tail-- ...))))) (setq tree (org-element-parse-buffer nil visible-only)) (org-export--prune-tree tree info) (org-export--remove-uninterpreted-data tree info) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-export--collect-tree-properties tree info)) (org-cite-process-citations info) (org-cite-process-bibliography info) (let* ((body (org-element-normalize-string (or ... ""))) (inner-template (cdr (assq ... ...))) (full-body (org-export-filter-apply-functions (plist-get info :filter-body) (if ... body ...) info)) (template (cdr (assq ... ...))) (output (if (or ... body-only) full-body (funcall template full-body info)))) (setq output (org-cite-finalize-export output info)) (org-no-properties (org-export-filter-apply-functions (plist-get info :filter-final-output) output info))))) (and (buffer-live-p --buf-copy) (progn (save-current-buffer (set-buffer --buf-copy) (restore-buffer-modified-p nil)) (kill-buffer --buf-copy))))
  (let ((--buf-copy (org-export-copy-buffer))) (unwind-protect (save-current-buffer (set-buffer --buf-copy) (goto-char (point-min)) (progn (run-hook-with-args 'org-export-before-processing-hook (progn (or (and ... t) (signal ... ...)) (aref backend 1))) (org-export-expand-include-keyword) (org-export--delete-comment-trees) (org-macro-initialize-templates org-export-global-macros) (org-macro-replace-all org-macro-templates parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp) (if org-export-use-babel (progn (org-babel-exp-process-buffer) (org-macro-replace-all '... parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp))) (goto-char (point-min)) (save-excursion (run-hook-with-args 'org-export-before-parsing-hook (progn (or ... ...) (aref backend 1)))) (org-set-regexps-and-options) (org-update-radio-target-regexp) (setq info (org-combine-plists info (org-export-get-environment backend subtreep ext-plist))) (org-cite-store-bibliography info) (org-cite-store-export-processor info) (let ((--dolist-tail-- (append ... org-export-options-alist))) (while --dolist-tail-- (let (...) (if ... ... nil) (setq --dolist-tail-- ...)))) (setq info (org-export-install-filters info)) (let ((backend-name (progn ... ...))) (let ((--dolist-tail-- ...)) (while --dolist-tail-- (let ... ... ...)))) (setq tree (org-element-parse-buffer nil visible-only)) (org-export--prune-tree tree info) (org-export--remove-uninterpreted-data tree info) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-export--collect-tree-properties tree info)) (org-cite-process-citations info) (org-cite-process-bibliography info) (let* ((body (org-element-normalize-string ...)) (inner-template (cdr ...)) (full-body (org-export-filter-apply-functions ... ... info)) (template (cdr ...)) (output (if ... full-body ...))) (setq output (org-cite-finalize-export output info)) (org-no-properties (org-export-filter-apply-functions (plist-get info :filter-final-output) output info))))) (and (buffer-live-p --buf-copy) (progn (save-current-buffer (set-buffer --buf-copy) (restore-buffer-modified-p nil)) (kill-buffer --buf-copy)))))
  (let* ((org-export-current-backend (progn (or (and (memq (type-of backend) cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list 'org-export-backend backend))) (aref backend 1))) (info (org-combine-plists (org-export--get-export-attributes backend subtreep visible-only body-only) (org-export--get-buffer-attributes))) (parsed-keywords (delq nil (mapcar #'(lambda (o) (and ... ...)) (append (org-export-get-all-options backend) org-export-options-alist)))) tree) (let ((--buf-copy (org-export-copy-buffer))) (unwind-protect (save-current-buffer (set-buffer --buf-copy) (goto-char (point-min)) (progn (run-hook-with-args 'org-export-before-processing-hook (progn (or ... ...) (aref backend 1))) (org-export-expand-include-keyword) (org-export--delete-comment-trees) (org-macro-initialize-templates org-export-global-macros) (org-macro-replace-all org-macro-templates parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp) (if org-export-use-babel (progn (org-babel-exp-process-buffer) (org-macro-replace-all ... parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp))) (goto-char (point-min)) (save-excursion (run-hook-with-args 'org-export-before-parsing-hook (progn ... ...))) (org-set-regexps-and-options) (org-update-radio-target-regexp) (setq info (org-combine-plists info (org-export-get-environment backend subtreep ext-plist))) (org-cite-store-bibliography info) (org-cite-store-export-processor info) (let ((--dolist-tail-- ...)) (while --dolist-tail-- (let ... ... ...))) (setq info (org-export-install-filters info)) (let ((backend-name ...)) (let (...) (while --dolist-tail-- ...))) (setq tree (org-element-parse-buffer nil visible-only)) (org-export--prune-tree tree info) (org-export--remove-uninterpreted-data tree info) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-export--collect-tree-properties tree info)) (org-cite-process-citations info) (org-cite-process-bibliography info) (let* ((body ...) (inner-template ...) (full-body ...) (template ...) (output ...)) (setq output (org-cite-finalize-export output info)) (org-no-properties (org-export-filter-apply-functions ... output info))))) (and (buffer-live-p --buf-copy) (progn (save-current-buffer (set-buffer --buf-copy) (restore-buffer-modified-p nil)) (kill-buffer --buf-copy))))))
  (save-restriction (cond ((org-region-active-p) (narrow-to-region (region-beginning) (region-end))) (subtreep (org-narrow-to-subtree) (goto-char (point-min)) (org-end-of-meta-data) (narrow-to-region (point) (point-max)))) (let* ((org-export-current-backend (progn (or (and (memq ... cl-struct-org-export-backend-tags) t) (signal 'wrong-type-argument (list ... backend))) (aref backend 1))) (info (org-combine-plists (org-export--get-export-attributes backend subtreep visible-only body-only) (org-export--get-buffer-attributes))) (parsed-keywords (delq nil (mapcar #'(lambda ... ...) (append (org-export-get-all-options backend) org-export-options-alist)))) tree) (let ((--buf-copy (org-export-copy-buffer))) (unwind-protect (save-current-buffer (set-buffer --buf-copy) (goto-char (point-min)) (progn (run-hook-with-args 'org-export-before-processing-hook (progn ... ...)) (org-export-expand-include-keyword) (org-export--delete-comment-trees) (org-macro-initialize-templates org-export-global-macros) (org-macro-replace-all org-macro-templates parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp) (if org-export-use-babel (progn ... ... ... ...)) (goto-char (point-min)) (save-excursion (run-hook-with-args ... ...)) (org-set-regexps-and-options) (org-update-radio-target-regexp) (setq info (org-combine-plists info ...)) (org-cite-store-bibliography info) (org-cite-store-export-processor info) (let (...) (while --dolist-tail-- ...)) (setq info (org-export-install-filters info)) (let (...) (let ... ...)) (setq tree (org-element-parse-buffer nil visible-only)) (org-export--prune-tree tree info) (org-export--remove-uninterpreted-data tree info) (setq tree (org-export-filter-apply-functions ... tree info)) (setq info (org-export--collect-tree-properties tree info)) (org-cite-process-citations info) (org-cite-process-bibliography info) (let* (... ... ... ... ...) (setq output ...) (org-no-properties ...)))) (and (buffer-live-p --buf-copy) (progn (save-current-buffer (set-buffer --buf-copy) (restore-buffer-modified-p nil)) (kill-buffer --buf-copy)))))))
  (save-excursion (save-restriction (cond ((org-region-active-p) (narrow-to-region (region-beginning) (region-end))) (subtreep (org-narrow-to-subtree) (goto-char (point-min)) (org-end-of-meta-data) (narrow-to-region (point) (point-max)))) (let* ((org-export-current-backend (progn (or (and ... t) (signal ... ...)) (aref backend 1))) (info (org-combine-plists (org-export--get-export-attributes backend subtreep visible-only body-only) (org-export--get-buffer-attributes))) (parsed-keywords (delq nil (mapcar #'... (append ... org-export-options-alist)))) tree) (let ((--buf-copy (org-export-copy-buffer))) (unwind-protect (save-current-buffer (set-buffer --buf-copy) (goto-char (point-min)) (progn (run-hook-with-args ... ...) (org-export-expand-include-keyword) (org-export--delete-comment-trees) (org-macro-initialize-templates org-export-global-macros) (org-macro-replace-all org-macro-templates parsed-keywords) (org-set-regexps-and-options) (org-update-radio-target-regexp) (if org-export-use-babel ...) (goto-char ...) (save-excursion ...) (org-set-regexps-and-options) (org-update-radio-target-regexp) (setq info ...) (org-cite-store-bibliography info) (org-cite-store-export-processor info) (let ... ...) (setq info ...) (let ... ...) (setq tree ...) (org-export--prune-tree tree info) (org-export--remove-uninterpreted-data tree info) (setq tree ...) (setq info ...) (org-cite-process-citations info) (org-cite-process-bibliography info) (let* ... ... ...))) (and (buffer-live-p --buf-copy) (progn (save-current-buffer ... ...) (kill-buffer --buf-copy))))))))
  org-export-as(latex nil nil nil nil)
  (let ((output (org-export-as backend subtreep visible-only body-only ext-plist)) (buffer (get-buffer-create buffer)) (encoding buffer-file-coding-system)) (if (and (org-string-nw-p output) (org-export--copy-to-kill-ring-p)) (progn (org-kill-new output))) (save-current-buffer (set-buffer buffer) (erase-buffer) (setq buffer-file-coding-system encoding) (insert output) (goto-char (point-min)) (and (functionp post-process) (funcall post-process))) (if org-export-show-temporary-export-buffer (progn (switch-to-buffer-other-window buffer))) buffer)
  (if async (org-export-async-start (let ((cs buffer-file-coding-system)) #'(lambda (output) (save-current-buffer (set-buffer (get-buffer-create buffer)) (erase-buffer) (setq buffer-file-coding-system cs) (insert output) (goto-char (point-min)) (org-export-add-to-stack (current-buffer) backend) (condition-case nil (progn ...) (error nil))))) (list 'org-export-as (list 'quote backend) subtreep visible-only body-only (list 'quote ext-plist))) (let ((output (org-export-as backend subtreep visible-only body-only ext-plist)) (buffer (get-buffer-create buffer)) (encoding buffer-file-coding-system)) (if (and (org-string-nw-p output) (org-export--copy-to-kill-ring-p)) (progn (org-kill-new output))) (save-current-buffer (set-buffer buffer) (erase-buffer) (setq buffer-file-coding-system encoding) (insert output) (goto-char (point-min)) (and (functionp post-process) (funcall post-process))) (if org-export-show-temporary-export-buffer (progn (switch-to-buffer-other-window buffer))) buffer))
  org-export-to-buffer(latex "*Org LATEX Export*" nil nil nil nil nil (closure ((ext-plist) (body-only) (visible-only) (subtreep) (async) t) nil (LaTeX-mode)))
  org-latex-export-as-latex(nil nil nil nil)
  funcall(org-latex-export-as-latex nil nil nil nil)
  (save-excursion (if arg (progn (if (eq (marker-buffer org-export-dispatch-last-position) (org-base-buffer (current-buffer))) (goto-char org-export-dispatch-last-position) (move-marker org-export-dispatch-last-position nil)))) (funcall action (and (memq 'async optns) t) (and (memq 'subtree optns) t) (and (memq 'visible optns) t) (and (memq 'body optns) t)))
  (cond ((eql action 'template) (org-export-insert-default-template nil optns)) ((eql action 'stack) (org-export-stack)) ((eql action 'publish-current-file) (org-publish-current-file (memq 'force optns) (memq 'async optns))) ((eql action 'publish-current-project) (org-publish-current-project (memq 'force optns) (memq 'async optns))) ((eql action 'publish-choose-project) (org-publish (assoc (completing-read "Publish project: " org-publish-project-alist nil t) org-publish-project-alist) (memq 'force optns) (memq 'async optns))) ((eql action 'publish-all) (org-publish-all (memq 'force optns) (memq 'async optns))) (t (save-excursion (if arg (progn (if (eq (marker-buffer org-export-dispatch-last-position) (org-base-buffer ...)) (goto-char org-export-dispatch-last-position) (move-marker org-export-dispatch-last-position nil)))) (funcall action (and (memq 'async optns) t) (and (memq 'subtree optns) t) (and (memq 'visible optns) t) (and (memq 'body optns) t)))))
  (let* ((input (cond ((equal arg '(16)) '(stack)) ((and arg org-export-dispatch-last-action)) (t (let ((wconfig ...)) (unwind-protect (progn ...) (set-window-configuration wconfig)))))) (action (car input)) (optns (cdr input))) (if (memq 'subtree optns) nil (move-marker org-export-dispatch-last-position nil)) (cond ((eql action 'template) (org-export-insert-default-template nil optns)) ((eql action 'stack) (org-export-stack)) ((eql action 'publish-current-file) (org-publish-current-file (memq 'force optns) (memq 'async optns))) ((eql action 'publish-current-project) (org-publish-current-project (memq 'force optns) (memq 'async optns))) ((eql action 'publish-choose-project) (org-publish (assoc (completing-read "Publish project: " org-publish-project-alist nil t) org-publish-project-alist) (memq 'force optns) (memq 'async optns))) ((eql action 'publish-all) (org-publish-all (memq 'force optns) (memq 'async optns))) (t (save-excursion (if arg (progn (if (eq ... ...) (goto-char org-export-dispatch-last-position) (move-marker org-export-dispatch-last-position nil)))) (funcall action (and (memq 'async optns) t) (and (memq 'subtree optns) t) (and (memq 'visible optns) t) (and (memq 'body optns) t))))))
  org-export-dispatch(nil)
  funcall-interactively(org-export-dispatch nil)
  call-interactively(org-export-dispatch nil nil)
  command-execute(org-export-dispatch)

This is the test document:

#+TITLE: Test
#+AUTHOR: Testauthor
#+LANGUAGE: de
#+bibliography: /tmp/mwe/test.bib
#+cite_export: csl /tmp/mwe/juristische-schulung.csl

Das ist ein Test [cite:@goldsmith-wu2008netctrl p. 83].

I stored it in /tmp/mwe/mwe.org. This is the entirety of test.bib:

@Book{goldsmith-wu2008netctrl,
	author = {Jack Goldsmith and Tim Wu},
	title = {Who Controls the Internet?},
	year = {2008},
	langid = {english},
	publisher = {Oxford University Press},
	location = {New York},
	isbn = {978-0-19-534064-8},
    signature = {I/R/5}
}

The used CSL style juristische-schulung.csl has been copied verbatim
from the CSL repository here:
https://github.com/citation-style-language/styles/blob/e22b8a566bad9b4c7f52720f60dd875057a5d210/juristische-schulung.csl

Steps to reproduce:

  1. Create /tmp/mwe/mwe.org, /tmp/mwe/test.bib, and
    /tmp/mwe/juristische-schulung.csl with the aforementioned contents.

  2. Visit /tmp/mwe/mwe.org.

  3. Export to LaTeX with C-c C-e l L

  4. Observe the above error.

What was expected: that it does not crash and exports fine.

-quintus

Emacs : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0)
of 2021-03-28, modified by Debian
Package: Org mode version 9.5 (9.5-g0a86ad @ /home/quintus/.emacs.d/elpa/org-9.5/)

current state:

(setq
org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
org-link-shell-confirm-function 'yes-or-no-p
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function
org-odt-format-headline-function 'org-odt-format-headline-default-function
org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
org-mode-hook '((closure
(org--rds reftex-docstruct-symbol visual-fill-column-width org-clock-history
org-with-time org-defdecode org-def org-read-date-inactive org-ans2 org-ans1
org-columns-current-fmt-compiled org-clock-current-task org-clock-effort
org-end-time-was-given org-time-was-given org-blocked-by-checkboxes org-state
org-agenda-headline-snapshot-before-repeat buffer-face-mode-face org-struct-menu
org-last-state org-id-track-globally org-clock-start-time texmathp-why
remember-data-file iswitchb-temp-buflist calc-embedded-open-mode
calc-embedded-open-formula calc-embedded-close-formula align-mode-rules-list
crm-separator org-id-overriding-file-name org-indent-indentation-per-level
org-inlinetask-min-level t)
nil (add-hook 'change-major-mode-hook 'org-show-all 'append 'local))
(closure (this org-babel-confirm-evaluate-answer-no t) nil
(add-hook 'change-major-mode-hook #'org-babel-show-result-all 'append 'local))
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-show-all append local] 5]
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-babel-show-result-all append local] 5]
org-babel-result-hide-spec org-babel-hide-all-hashes)
org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"]
org-archive-hook '(org-attach-archive-delete-maybe)
org-confirm-elisp-link-function 'yes-or-no-p
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-metaup-hook '(org-babel-load-in-session-maybe)
org-bibtex-headline-format-function #[257 "\300\236A\207" [:title] 3 "\n\n(fn ENTRY)"]
org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"]
org-babel-pre-tangle-hook '(save-buffer)
org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand)
org-ascii-format-drawer-function #[771 "\207" [] 4 "\n\n(fn NAME CONTENTS WIDTH)"]
org-agenda-loop-over-headlines-in-active-region nil
org-occur-hook '(org-first-headline-recenter)
org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate)
org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function
org-export-before-parsing-hook '(org-attach-expand-links)
org-confirm-shell-link-function 'yes-or-no-p
org-link-parameters '(("attachment" :follow org-attach-follow :complete org-attach-complete-link)
("id" :follow org-id-open)
("eww" :follow org-eww-open :store org-eww-store-link)
("rmail" :follow org-rmail-open :store org-rmail-store-link)
("mhe" :follow org-mhe-open :store org-mhe-store-link)
("irc" :follow org-irc-visit :store org-irc-store-link :export org-irc-export)
("info" :follow org-info-open :export org-info-export :store
org-info-store-link)
("gnus" :follow org-gnus-open :store org-gnus-store-link)
("docview" :follow org-docview-open :export org-docview-export :store
org-docview-store-link)
("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete
org-bbdb-complete-link :store org-bbdb-store-link)
("w3m" :store org-w3m-store-link)
("doi" :follow org-link-doi-open :export org-link-doi-export)
("bibtex" :follow org-bibtex-open :store org-bibtex-store-link)
("elfeed" :follow elfeed-link-open :store elfeed-link-store-link) ("file+sys")
("file+emacs") ("shell" :follow org-link--open-shell)
("news" :follow
#[514 "\301\300\302Q"\207" ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("mailto" :follow
#[514 "\301\300\302Q"\207" ["mailto" browse-url ":"] 6
"\n\n(fn URL ARG)"]
)
("https" :follow
#[514 "\301\300\302Q"\207" ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"]
)
("http" :follow
#[514 "\301\300\302Q"\207" ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("ftp" :follow
#[514 "\301\300\302Q"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL ARG)"])
("help" :follow org-link--open-help :store org-link--store-help)
("file" :complete org-link-complete-file)
("elisp" :follow org-link--open-elisp))
org-latex-format-headline-function 'org-latex-format-headline-default-function
org-link-elisp-confirm-function 'yes-or-no-p
org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function
org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"]
org-html-format-headline-function 'org-html-format-headline-default-function
)

Example of rendering an isolated reference

[Edit] This would be interesting to see, but as you can see in issue #49 and #50, I figured out a way to basically do what I needed, which is see how a standalone citation exports.

Is there an example of https://github.com/andras-simonyi/citeproc-el#rendering-isolated-references?

Something like


#+name: bib-json
#+BEGIN_EXAMPLE
{
   "citationItems": [
  {
    "DOI": "10.1371/journal.pone.0010676",
    "URL": "http://dx.doi.org/10.1371/journal.pone.0010676",
    "author": [
      {
        "family": "Williams",
        "given": "Jeffrey T."
      },
      {
        "family": "Carpenter",
        "given": "Kent E."
      },
      {
        "family": "Tassell",
        "given": "James L. Van"
      },
      {
        "family": "Hoetjes",
        "given": "Paul"
      },
      {
        "family": "Toller",
        "given": "Wes"
      },
      {
        "family": "Etnoyer",
        "given": "Peter"
      },
      {
        "family": "Smith",
        "given": "Michael"
      }
    ],
    "container-title": "PLoS ONE",
    "editor": [
      {
        "family": "Gratwicke",
        "given": "Brian"
      }
    ],
    "id": "Williams_2010",
    "issue": "5",
    "issued": {
      "date-parts": [
        [
          2010,
          5
        ]
      ]
    },
    "page": "e10676",
    "publisher": "Public Library of Science (PLoS)",
    "title": "Biodiversity Assessment of the Fishes of Saba Bank Atoll, Netherlands Antilles",
    "type": "article-journal",
    "volume": "5"
  }
]
}
#+END_EXAMPLE

#+BEGIN_SRC emacs-lisp :var data=bib-json
(let* ((proc (citeproc-create-style "csl-styles/apa-5th-edition.csl"
				    (citeproc-locale-getter-from-dir "csl-locales")))
       (item-data (json-parse-string data :object-type 'alist :array-type 'list)))

 (citeproc-render-item item-data proc 'cite 'plain))
#+END_SRC

#+RESULTS:
: n.d.

Best practices for spaces and punctuation in prefix, suffix, etc.

Suppose (using org-cite syntax) I have [cite:See @key on page 1, for example]

I guess this would look like this. My question is, should there be a space in the prefix at the end or should it be trimmed (it doesn't seem to matter, but...), similarly if there is space in the suffix at the beginning, should it be trimmed or not (likewise, it seems like it doesn't matter, in these?

I gather that the label must be trimmed because " page " does not match somewhere, and the p. is lost if there are spaces before or after the label.

#+BEGIN_SRC emacs-lisp :var tangled=(org-babel-tangle)
(let* ((proc (citeproc-create "apa-5th-edition.csl"
			      (citeproc-itemgetter-from-bibtex "test.bib")
			      (citeproc-locale-getter-from-dir ".")
			      "en-US"))
       (cites (list (citeproc-citation-create :cites '(((id . "kitchin-2015-examp-effec")
							(prefix . "See ")
							(suffix . ", for example")
							(locator . "1")
							(label . "page")
							(suppress-author)))
					      :mode 'nil
					      :capitalize-first nil
					      :suppress-affixes nil)))
       (rendered-citations (progn (citeproc-append-citations cites proc)
				  (citeproc-render-citations proc 'plain nil))))
  (car rendered-citations))
#+END_SRC

#+RESULTS:
: (See Kitchin, 2015, p. 1 , for example)

Also , You can see there is an extra space after the locator, and before the , that I put in the suffix. Is that a bug? It disappears if I take out the comma.

Error messages on initial installation from melpa

I got these error messages when installing citeproc 20210809.1416 from melpa in emacs 26.3 on ubuntu 20.04.2 ("Datei oder Verzeichnis nicht gefunden" is "file not found":

In toplevel form:
citeproc-biblatex.el:28:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc-itemgetters.el:41:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc-test-human.el:36:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc.el:48:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc-org-setup.el:29:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc-org.el:45:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc-biblatex.el:28:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc-itemgetters.el:41:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc-test-human.el:36:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

In toplevel form:
citeproc.el:48:1:Error: Cannot open load file: Datei oder Verzeichnis nicht gefunden, iso8601

Should they happen? Are they important?

Error when name contains brackets

When the bibtex value contains brackets (or escape sequences?), citeproc-el emits error:

Debugger entered--Lisp error: (wrong-type-argument listp #<hash-table equal 44535/64414 0x1feb87b0a7a1>)
  assoc-default("LATIN SMALL LETTER S CEDILLA" #<hash-table equal 44535/64414 0x1feb87b0a7a1>)
  citeproc-bt--to-ucs("c" "s")
  #f(compiled-function (x) #<bytecode 0x1feb8ae76c59>)("\\c{s}")
  replace-regexp-in-string("\\\\\\(?1:[\"'.=^`~]\\)[[:space:]]*\\(?2:[[:alpha:]]\\)\\|..." #f(compiled-function (x) #<bytecode 0x1feb8ae76c59>) "Agirre, Eneko and Alfonseca, Enrique and Hall, Kei...")
  citeproc-bt--decode("Agirre, Eneko and Alfonseca, Enrique and Hall, Kei...")
  citeproc-bt--to-csl("\"Agirre, Eneko and Alfonseca, Enrique and Hall, Ke...")
  citeproc-bt-entry-to-csl((("=type=" . "inproceedings") ("=key=" . "agirre-2009-study-similarity") ("title" . "\"A study on similarity and relatedness using distr...") ("author" . "\"Agirre, Eneko and Alfonseca, Enrique and Hall, Ke...") ("booktitle" . "\"Proceedings of Human Language Technologies: The 2...") ("pages" . "\"19-27\"") ("year" . "2009") ("organization" . "\"Association for Computational Linguistics\"")))
  #f(compiled-function (key beg end) #<bytecode 0x1feb8b9ed355>)("agirre-2009-study-similarity" 156024 #<marker (moves after insertion) at 156664 in  *temp*>)
  bibtex-map-entries(#f(compiled-function (key beg end) #<bytecode 0x1feb8b9ed355>))
  #f(compiled-function (itemids) #<bytecode 0x1feb82cf6dc1>)(("tang-2005-email" "wei-2019-eda" "sennrich-2015-improv" "xie-2019-uda" "cubuk-2019-randaugment" "papineni-2002-bleu" "luong-2014-addres-rare" "wang-2015-learn-natur" "huang-2015-bidirect-lstm-crf" "sun-2019-how-fine" "yang-2019-bert-ad-hoc-doc" "wang-2019-multi-passage-bert" "ganitkevitch-2013-ppdb" "hill-2014-simlex" "agirre-2009-study-similarity" "weston-2015-towar-ai" "rajpurkar-2016-squad" "nguyen-2016-ms-marco" "fader-2013-parap" "bowman-2015-large-annotated" "bach-2017-learn-struc" "ratner-2016-data-progr" "ratner-2017-snorkel"))
  citeproc-proc-put-items-by-id(#s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t t) :bib-layout (lambda ... ...) :cite-opts (... ... ... ...) :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (... ... ...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1feb82cf6dc1>) :itemdata #<hash-table equal 0/65 0x1feb8ae12add> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x1feb8ae128ad> :finalized t) ("tang-2005-email" "wei-2019-eda" "sennrich-2015-improv" "xie-2019-uda" "cubuk-2019-randaugment" "papineni-2002-bleu" "luong-2014-addres-rare" "wang-2015-learn-natur" "huang-2015-bidirect-lstm-c..." "sun-2019-how-fine" "yang-2019-bert-ad-hoc-doc" "wang-2019-multi-passage-be..." "ganitkevitch-2013-ppdb" "hill-2014-simlex" "agirre-2009-study-similari..." "weston-2015-towar-ai" "rajpurkar-2016-squad" "nguyen-2016-ms-marco" "fader-2013-parap" "bowman-2015-large-annotate..." "bach-2017-learn-struc" "ratner-2016-data-progr" "ratner-2017-snorkel"))
  citeproc-append-citations((#s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (... ...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (... ...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil) #s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil)) #s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t t) :bib-layout (lambda ... ...) :cite-opts (... ... ... ...) :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (... ... ...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1feb82cf6dc1>) :itemdata #<hash-table equal 0/65 0x1feb8ae12add> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x1feb8ae128ad> :finalized t))
  citeproc-org--append-and-render-citations(((:elt ... :elt-no 0 :cite-no 0 :fn-no nil :new-fn nil) (:elt ... :elt-no 1 :cite-no 1 :fn-no nil :new-fn nil) (:elt ... :elt-no 2 :cite-no 2 :fn-no nil :new-fn nil) (:elt ... :elt-no 3 :cite-no 3 :fn-no nil :new-fn nil) (:elt ... :elt-no 4 :cite-no 4 :fn-no nil :new-fn nil) (:elt ... :elt-no 5 :cite-no 5 :fn-no nil :new-fn nil) (:elt ... :elt-no 6 :cite-no 6 :fn-no nil :new-fn nil) (:elt ... :elt-no 7 :cite-no 7 :fn-no nil :new-fn nil) (:elt ... :elt-no 8 :cite-no 8 :fn-no nil :new-fn nil) (:elt ... :elt-no 9 :cite-no 9 :fn-no nil :new-fn nil) (:elt ... :elt-no 10 :cite-no 10 :fn-no nil :new-fn nil) (:elt ... :elt-no 11 :cite-no 11 :fn-no nil :new-fn nil) (:elt ... :elt-no 12 :cite-no 12 :fn-no nil :new-fn nil) (:elt ... :elt-no 13 :cite-no 13 :fn-no nil :new-fn nil) (:elt ... :elt-no 14 :cite-no 14 :fn-no nil :new-fn nil) (:elt ... :elt-no 15 :cite-no 15 :fn-no nil :new-fn nil) (:elt ... :elt-no 16 :cite-no 16 :fn-no nil :new-fn nil) (:elt ... :elt-no 17 :cite-no 17 :fn-no nil :new-fn nil) (:elt ... :elt-no 18 :cite-no 18 :fn-no nil :new-fn nil) (:elt ... :elt-no 19 :cite-no 19 :fn-no nil :new-fn nil) ...) #s(citeproc-proc :style #s(citeproc-style :info ... :opts ... :bib-opts ... :bib-sort ... :bib-sort-orders ... :bib-layout ... :cite-opts ... :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout ... :cite-layout-attrs ... :locale-opts ... :macros ... :terms ... :uses-ys-var nil :date-text ... :date-numeric ...) :getter #f(compiled-function (itemids) #<bytecode 0x1feb82cf6dc1>) :itemdata #<hash-table equal 0/65 0x1feb8ae12add> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x1feb8ae128ad> :finalized t) html link nil)
  citeproc-org-render-references(html)
  run-hook-with-args(citeproc-org-render-references html)
  org-export-as(html nil nil nil (:output-file "/Users/user/org/public_html/notes/202004081953..." :base-directory "/Users/user/org/notes" :base-extension "org" :publishing-directory "/Users/user/org/public_html/notes/" :publishing-function (org-html-publish-to-html) :recursive t :auto-sitemap t :sitemap-title "Notes" :sitemap-filename "index.org" :sitemap-file-entry-format "%d - %t" :sitemap-sort-files anti-chronologically :sitemap-style list :sitemap-function org-publish-org-sitemap :sitemap-format-entry org-publish-org-sitemap-format :html-head-include-default-style nil :html-head-include-scripts nil :html-link-use-abs-url nil :crossrefs nil :filter-final-output (org-publish--store-crossrefs org-publish-collect-index)))
  org-export-to-file(html "/Users/user/org/public_html/notes/202004081953..." nil nil nil nil (:base-directory "/Users/user/org/notes" :base-extension "org" :publishing-directory "/Users/user/org/public_html/notes/" :publishing-function (org-html-publish-to-html) :recursive t :auto-sitemap t :sitemap-title "Notes" :sitemap-filename "index.org" :sitemap-file-entry-format "%d - %t" :sitemap-sort-files anti-chronologically :sitemap-style list :sitemap-function org-publish-org-sitemap :sitemap-format-entry org-publish-org-sitemap-format :html-head-include-default-style nil :html-head-include-scripts nil :html-link-use-abs-url nil :crossrefs nil :filter-final-output (org-publish--store-crossrefs org-publish-collect-index)))
  org-publish-org-to(html "/Users/user/org/notes/20200408195303-natural_l..." ".html" (:base-directory "/Users/user/org/notes" :base-extension "org" :publishing-directory "/Users/user/org/public_html/notes/" :publishing-function (org-html-publish-to-html) :recursive t :auto-sitemap t :sitemap-title "Notes" :sitemap-filename "index.org" :sitemap-file-entry-format "%d - %t" :sitemap-sort-files anti-chronologically :sitemap-style list :sitemap-function org-publish-org-sitemap :sitemap-format-entry org-publish-org-sitemap-format :html-head-include-default-style nil :html-head-include-scripts nil :html-link-use-abs-url nil) "/Users/user/org/public_html/notes/")
  org-html-publish-to-html((:base-directory "/Users/user/org/notes" :base-extension "org" :publishing-directory "/Users/user/org/public_html/notes/" :publishing-function (org-html-publish-to-html) :recursive t :auto-sitemap t :sitemap-title "Notes" :sitemap-filename "index.org" :sitemap-file-entry-format "%d - %t" :sitemap-sort-files anti-chronologically :sitemap-style list :sitemap-function org-publish-org-sitemap :sitemap-format-entry org-publish-org-sitemap-format :html-head-include-default-style nil :html-head-include-scripts nil :html-link-use-abs-url nil) "/Users/user/org/notes/20200408195303-natural_l..." "/Users/user/org/public_html/notes/")
  org-publish-file("/Users/user/org/notes/20200408195303-natural_l..." ("notes-source" :base-directory "/Users/user/org/notes" :base-extension "org" :publishing-directory "/Users/user/org/public_html/notes/" :publishing-function (org-html-publish-to-html) :recursive t :auto-sitemap t :sitemap-title "Notes" :sitemap-filename "index.org" :sitemap-file-entry-format "%d - %t" :sitemap-sort-files anti-chronologically :sitemap-style list :sitemap-function org-publish-org-sitemap :sitemap-format-entry org-publish-org-sitemap-format :html-head-include-default-style nil :html-head-include-scripts nil :html-link-use-abs-url nil) t)
  org-publish-projects((("notes" :components ("notes-source" "notes-static"))))
  org-publish(("notes" :components ("notes-source" "notes-static")) nil)
  funcall-interactively(org-publish ("notes" :components ("notes-source" "notes-static")) nil)
  call-interactively(org-publish record nil)
  command-execute(org-publish record)
  counsel-M-x-action("org-publish")
  ivy-call()
  ivy-read("M-x " ("toggle-debug-on-error" "find-library" "text-mode" "customize-group" "describe-char" "hs-hide-all" "visual-line-mode" "find-function" "ivy-bibtex" "profiler-start" "tree-sitter-hl-mode" "straight-pull-package" "run-python" "org-cliplink" "org-ref-webib-arxiv-get-pdf-add-bibtex-entry-from-..." "dired-rsync" "counsel-colors-emacs" "shell" "bibtex-entry-rename-key-at-point" "customize-face" "set-buffer-file-coding-system" "gitignore" "load-theme" "man" "flush-lines" "org-pandoc-export-to-markdown_strict" "recentf-cleanup" "find-function-on-key" "org-mode" "org-store-link" "view-mode" "delete-char" "find-variable" "explain-pause-mode" "org-roam-find-file" "lsp-ui-peek-find-references" "org-version" "emacs-version" "add-dir-local-variable" "org-roam-db-build-cache" "lsp" "csv-mode" "describe-face" "json-mode" "org-roam-mode" "company-diag" "presentation-mode" "org-ref-webib-acl-get-pdf-add-bibtex-entry-from-fi..." "spell-fu-mode" "list-faces-display" ...) :predicate #f(compiled-function (x) #<bytecode 0x1feb86a14abd>) :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
  counsel-M-x()
  funcall-interactively(counsel-M-x)
  call-interactively(counsel-M-x nil nil)
  command-execute(counsel-M-x)

Related bibtex item:

@inproceedings{agirre-2009-study-similarity,
  title        = "A study on similarity and relatedness using distributional
                  and wordnet-based approaches",
  author       = "Agirre, Eneko and Alfonseca, Enrique and Hall, Keith and
                  Kravalova, Jana and Pa{\c{s}}ca, Marius and Soroa, Aitor",
  booktitle    = "Proceedings of Human Language Technologies: The 2009 Annual
                  Conference of the North American Chapter of the Association
                  for Computational Linguistics",
  pages        = "19-27",
  year         = 2009,
  organization = "Association for Computational Linguistics"
}

Error with handling `translator` field in Org HTML export

Hi. I'm having a problem when trying to export to HTML with the new citation syntax in Org. The backtrace suggest that the error should be reported here, and I don't know how to further investigate.

I try to reproduce with a minimal example:

#+TITLE: Test
#+cite_export: csl chicago-author-date.csl
#+bibliography: "./test.bib"

[cite:@trinhGiaDinhThanh2004]

#+print_bibliography:

with the following bibtex entry:

@book{trinhGiaDinhThanh2004,
  title = {{Gia Định thành thông chí}},
  author = {Trịnh, Hoài Đức},
  year = {2004},
  publisher = {{Nhà xuất bản Tổng hợp Đồng Nai}},
  keywords = {Vietnam},
  language = {vi},
  original-author = {Trịnh Hoài Đức},
  original-date = {1902/1920},
  translator = {Lý, Việt Dũng}
}

and the backtrace

Debugger entered--Lisp error: (wrong-type-argument listp 76)
  -remove(#f(compiled-function (x) #<bytecode -0x1433a958906075b2>) 76)
  #f(compiled-function (it) #<bytecode 0x156fb7d3ec264710>)(76)
  mapcar(#f(compiled-function (it) #<bytecode 0x156fb7d3ec264710>) "Lý, Việt Dũng")
  citeproc-proc--parse-csl-var-val("Lý, Việt Dũng" translator #s(citeproc-proc :style #s(citeproc-style :info ((title nil "Chicago Manual of Style 17th edition (author-date)") (id nil "http://www.zotero.org/styles/chicago-author-date") ... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ... ... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t t) :bib-layout (lambda ... ...) :cite-opts (... ... ... ... ... ... ... ... ... ...) :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (... ... ...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1f1d058310e0013d>) :itemdata #<hash-table equal 0/65 0x156b9649f2b5> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x156b96493295> :finalized t))
  #f(compiled-function (it) #<bytecode -0x793a6a67ced66fb>)((translator . "Lý, Việt Dũng"))
  mapcar(#f(compiled-function (it) #<bytecode -0x793a6a67ced66fb>) ((issued (date-parts (2004))) (translator . "Lý, Việt Dũng") (original-date . "1902/1920") (original-author . "Trịnh Hoài Đức") (language . "vi") (keyword . "Vietnam") (publisher . "Nhà xuất bản Tổng hợp Đồng Nai") (author ((family . "Trịnh") (given . "Hoài Đức"))) (title . "Gia Định thành thông chí") (citation-label . "trinhGiaDinhThanh2004") (type . "book")))
  citeproc-proc--internalize-item(#s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ... ... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t t) :bib-layout (lambda ... ...) :cite-opts (... ... ... ... ... ... ... ... ... ...) :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (... ... ...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1f1d058310e0013d>) :itemdata #<hash-table equal 0/65 0x156b9649f2b5> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x156b96493295> :finalized t) ((issued (date-parts ...)) (translator . "Lý, Việt Dũng") (original-date . "1902/1920") (original-author . "Trịnh Hoài Đức") (language . "vi") (keyword . "Vietnam") (publisher . "Nhà xuất bản Tổng hợp Đồng...") (author (... ...)) (title . "Gia Định thành thông chí") (citation-label . "trinhGiaDinhThanh2004") (type . "book")))
  citeproc-proc--put-item(#s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ... ... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t t) :bib-layout (lambda ... ...) :cite-opts (... ... ... ... ... ... ... ... ... ...) :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (... ... ...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1f1d058310e0013d>) :itemdata #<hash-table equal 0/65 0x156b9649f2b5> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x156b96493295> :finalized t) ((issued (date-parts ...)) (translator . "Lý, Việt Dũng") (original-date . "1902/1920") (original-author . "Trịnh Hoài Đức") (language . "vi") (keyword . "Vietnam") (publisher . "Nhà xuất bản Tổng hợp Đồng...") (author (... ...)) (title . "Gia Định thành thông chí") (citation-label . "trinhGiaDinhThanh2004") (type . "book")) "trinhGiaDinhThanh2004")
  citeproc-proc-put-items-by-id(#s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ... ... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t t) :bib-layout (lambda ... ...) :cite-opts (... ... ... ... ... ... ... ... ... ...) :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (... ... ...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1f1d058310e0013d>) :itemdata #<hash-table equal 0/65 0x156b9649f2b5> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x156b96493295> :finalized t) ("trinhGiaDinhThanh2004"))
  citeproc-append-citations((#s(citeproc-citation :cites (...) :note-index nil :capitalize-first nil :suppress-affixes nil :grouped nil)) #s(citeproc-proc :style #s(citeproc-style :info (... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :opts (... ... ... ... ...) :bib-opts (... ... ... ... ... ...) :bib-sort (lambda ... ...) :bib-sort-orders (t t t) :bib-layout (lambda ... ...) :cite-opts (... ... ... ... ... ... ... ... ... ...) :cite-note nil :cite-sort nil :cite-sort-orders nil :cite-layout (lambda ... ...) :cite-layout-attrs (... ... ...) :locale-opts (... ...) :macros (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :terms (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :uses-ys-var nil :date-text (... ... ... ...) :date-numeric (... ... ... ...)) :getter #f(compiled-function (itemids) #<bytecode 0x1f1d058310e0013d>) :itemdata #<hash-table equal 0/65 0x156b9649f2b5> :citations #s(queue :head nil :tail nil) :names #<hash-table equal 0/65 0x156b96493295> :finalized t))
  org-cite-csl--rendered-citations((:export-options nil :back-end #s(org-export-backend :name html :parent nil :transcoders ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) (plain-list . org-html-plain-list) (plain-text . org-html-plain-text) (planning . org-html-planning) (property-drawer . org-html-property-drawer) (quote-block . org-html-quote-block) (radio-target . org-html-radio-target) ...) :options ((:html-doctype "HTML_DOCTYPE" nil org-html-doctype) (:html-container "HTML_CONTAINER" nil org-html-container-element) (:html-content-class "HTML_CONTENT_CLASS" nil org-html-content-class) (:description "DESCRIPTION" nil nil newline) (:keywords "KEYWORDS" nil nil space) (:html-html5-fancy nil "html5-fancy" org-html-html5-fancy) (:html-link-use-abs-url nil "html-link-use-abs-url" org-html-link-use-abs-url) (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) (:html-link-up "HTML_LINK_UP" nil org-html-link-up) (:html-mathjax "HTML_MATHJAX" nil "" space) (:html-equation-reference-format "HTML_EQUATION_REFERENCE_FORMAT" nil org-html-equation-reference-format t) (:html-postamble nil "html-postamble" org-html-postamble) (:html-preamble nil "html-preamble" org-html-preamble) (:html-head "HTML_HEAD" nil org-html-head newline) (:html-head-extra "HTML_HEAD_EXTRA" nil org-html-head-extra newline) (:subtitle "SUBTITLE" nil nil parse) (:html-head-include-default-style nil "html-style" org-html-head-include-default-style) (:html-head-include-scripts nil "html-scripts" org-html-head-include-scripts) (:html-allow-name-attribute-in-anchors nil nil org-html-allow-name-attribute-in-anchors) (:html-divs nil nil org-html-divs) (:html-checkbox-type nil nil org-html-checkbox-type) (:html-extension nil nil org-html-extension) (:html-footnote-format nil nil org-html-footnote-format) (:html-footnote-separator nil nil org-html-footnote-separator) (:html-footnotes-section nil nil org-html-footnotes-section) (:html-format-drawer-function nil nil org-html-format-drawer-function) (:html-format-headline-function nil nil org-html-format-headline-function) (:html-format-inlinetask-function nil nil org-html-format-inlinetask-function) (:html-home/up-format nil nil org-html-home/up-format) (:html-indent nil nil org-html-indent) (:html-infojs-options nil nil org-html-infojs-options) (:html-infojs-template nil nil org-html-infojs-template) ...) :filters ((:filter-options . org-html-infojs-install-script) (:filter-parse-tree . org-html-image-link-filter) (:filter-final-output . org-html-final-function)) :blocks nil :menu (104 "Export to HTML" (... ... ...))) :translate-alist ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) (plain-list . org-html-plain-list) (plain-text . org-html-plain-text) (planning . org-html-planning) (property-drawer . org-html-property-drawer) (quote-block . org-html-quote-block) (radio-target . org-html-radio-target) ...) :exported-data #<hash-table eq 1/4001 0x156b917632fb> :input-buffer "test.org" :input-file "/home/hieuphay/Desktop/test-cite..." :html-doctype "xhtml-strict" :html-container "div" :html-content-class "content" :description nil :keywords nil :html-html5-fancy nil :html-link-use-abs-url nil :html-link-home "" :html-link-up "" :html-mathjax "" ...))
  org-cite-csl-render-citation((citation (:style nil :begin 88 :post-blank 0 :end 117 :contents-begin 94 :contents-end 116 :parent (paragraph ... #1 ...)) (citation-reference (:key "trinhGiaDinhThanh2004" :begin 94 :end 116 :post-blank 0 :parent #1))) (nil) #s(org-export-backend :name html :parent nil :transcoders ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) ...) :options ((:html-doctype "HTML_DOCTYPE" nil org-html-doctype) (:html-container "HTML_CONTAINER" nil org-html-container-element) (:html-content-class "HTML_CONTENT_CLASS" nil org-html-content-class) (:description "DESCRIPTION" nil nil newline) (:keywords "KEYWORDS" nil nil space) (:html-html5-fancy nil "html5-fancy" org-html-html5-fancy) (:html-link-use-abs-url nil "html-link-use-abs-url" org-html-link-use-abs-url) (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) (:html-link-up "HTML_LINK_UP" nil org-html-link-up) (:html-mathjax "HTML_MATHJAX" nil "" space) (:html-equation-reference-format "HTML_EQUATION_REFERENCE_FO..." nil org-html-equation-reference-format t) (:html-postamble nil "html-postamble" org-html-postamble) (:html-preamble nil "html-preamble" org-html-preamble) (:html-head "HTML_HEAD" nil org-html-head newline) (:html-head-extra "HTML_HEAD_EXTRA" nil org-html-head-extra newline) (:subtitle "SUBTITLE" nil nil parse) (:html-head-include-default-style nil "html-style" org-html-head-include-default-style) (:html-head-include-scripts nil "html-scripts" org-html-head-include-scripts) (:html-allow-name-attribute-in-anchors nil nil org-html-allow-name-attribute-in-anchors) (:html-divs nil nil org-html-divs) (:html-checkbox-type nil nil org-html-checkbox-type) (:html-extension nil nil org-html-extension) (:html-footnote-format nil nil org-html-footnote-format) (:html-footnote-separator nil nil org-html-footnote-separator) (:html-footnotes-section nil nil org-html-footnotes-section) (:html-format-drawer-function nil nil org-html-format-drawer-function) ...) :filters ((:filter-options . org-html-infojs-install-script) (:filter-parse-tree . org-html-image-link-filter) (:filter-final-output . org-html-final-function)) :blocks nil :menu (104 "Export to HTML" (... ... ...))) (:export-options nil :back-end #s(org-export-backend :name html :parent nil :transcoders (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :options (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :filters (... ... ...) :blocks nil :menu (104 "Export to HTML" ...)) :translate-alist ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) ...) :exported-data #<hash-table eq 1/4001 0x156b917632fb> :input-buffer "test.org" :input-file "/home/hieuphay/Desktop/tes..." :html-doctype "xhtml-strict" :html-container "div" :html-content-class "content" :description nil :keywords nil :html-html5-fancy nil :html-link-use-abs-url nil ...))
  org-cite-export-citation((citation (:style nil :begin 88 :post-blank 0 :end 117 :contents-begin 94 :contents-end 116 :parent (paragraph ... #1 ...)) (citation-reference (:key "trinhGiaDinhThanh2004" :begin 94 :end 116 :post-blank 0 :parent #1))) nil (:export-options nil :back-end #s(org-export-backend :name html :parent nil :transcoders (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :options (... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) :filters (... ... ...) :blocks nil :menu (104 "Export to HTML" ...)) :translate-alist ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) ...) :exported-data #<hash-table eq 1/4001 0x156b917632fb> :input-buffer "test.org" :input-file "/home/hieuphay/Desktop/tes..." :html-doctype "xhtml-strict" :html-container "div" :html-content-class "content" :description nil :keywords nil :html-html5-fancy nil :html-link-use-abs-url nil ...))
  org-cite-process-citations((:export-options nil :back-end #s(org-export-backend :name html :parent nil :transcoders ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) (plain-list . org-html-plain-list) (plain-text . org-html-plain-text) (planning . org-html-planning) (property-drawer . org-html-property-drawer) (quote-block . org-html-quote-block) (radio-target . org-html-radio-target) ...) :options ((:html-doctype "HTML_DOCTYPE" nil org-html-doctype) (:html-container "HTML_CONTAINER" nil org-html-container-element) (:html-content-class "HTML_CONTENT_CLASS" nil org-html-content-class) (:description "DESCRIPTION" nil nil newline) (:keywords "KEYWORDS" nil nil space) (:html-html5-fancy nil "html5-fancy" org-html-html5-fancy) (:html-link-use-abs-url nil "html-link-use-abs-url" org-html-link-use-abs-url) (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) (:html-link-up "HTML_LINK_UP" nil org-html-link-up) (:html-mathjax "HTML_MATHJAX" nil "" space) (:html-equation-reference-format "HTML_EQUATION_REFERENCE_FORMAT" nil org-html-equation-reference-format t) (:html-postamble nil "html-postamble" org-html-postamble) (:html-preamble nil "html-preamble" org-html-preamble) (:html-head "HTML_HEAD" nil org-html-head newline) (:html-head-extra "HTML_HEAD_EXTRA" nil org-html-head-extra newline) (:subtitle "SUBTITLE" nil nil parse) (:html-head-include-default-style nil "html-style" org-html-head-include-default-style) (:html-head-include-scripts nil "html-scripts" org-html-head-include-scripts) (:html-allow-name-attribute-in-anchors nil nil org-html-allow-name-attribute-in-anchors) (:html-divs nil nil org-html-divs) (:html-checkbox-type nil nil org-html-checkbox-type) (:html-extension nil nil org-html-extension) (:html-footnote-format nil nil org-html-footnote-format) (:html-footnote-separator nil nil org-html-footnote-separator) (:html-footnotes-section nil nil org-html-footnotes-section) (:html-format-drawer-function nil nil org-html-format-drawer-function) (:html-format-headline-function nil nil org-html-format-headline-function) (:html-format-inlinetask-function nil nil org-html-format-inlinetask-function) (:html-home/up-format nil nil org-html-home/up-format) (:html-indent nil nil org-html-indent) (:html-infojs-options nil nil org-html-infojs-options) (:html-infojs-template nil nil org-html-infojs-template) ...) :filters ((:filter-options . org-html-infojs-install-script) (:filter-parse-tree . org-html-image-link-filter) (:filter-final-output . org-html-final-function)) :blocks nil :menu (104 "Export to HTML" (... ... ...))) :translate-alist ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) (plain-list . org-html-plain-list) (plain-text . org-html-plain-text) (planning . org-html-planning) (property-drawer . org-html-property-drawer) (quote-block . org-html-quote-block) (radio-target . org-html-radio-target) ...) :exported-data #<hash-table eq 1/4001 0x156b917632fb> :input-buffer "test.org" :input-file "/home/hieuphay/Desktop/test-cite..." :html-doctype "xhtml-strict" :html-container "div" :html-content-class "content" :description nil :keywords nil :html-html5-fancy nil :html-link-use-abs-url nil :html-link-home "" :html-link-up "" :html-mathjax "" ...))
  #<subr org-export-as>(html nil nil nil (:output-file "test.html"))
  apply(#<subr org-export-as> (html nil nil nil (:output-file "test.html")))
  (let ((old-async-init-file org-export-async-init-file) (org-export-async-init-file (make-temp-file "doom-org-async-export"))) (let ((temp-file org-export-async-init-file) (temp-buffer (generate-new-buffer " *temp file*" t))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (prin1 (list 'progn (list ... ... ... ... ...) (cons ... ...)) (current-buffer))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (apply orig-fn args))
  +org--fix-async-export-a(#<subr org-export-as> html nil nil nil (:output-file "test.html"))
  apply(+org--fix-async-export-a #<subr org-export-as> (html nil nil nil (:output-file "test.html")))
  org-export-as(html nil nil nil (:output-file "test.html"))
  #<subr org-export-to-file>(html "test.html" nil nil nil nil nil nil)
  apply(#<subr org-export-to-file> (html "test.html" nil nil nil nil nil))
  (let (before-save-hook after-save-hook) (apply orig-fn args))
  +org--dont-trigger-save-hooks-a(#<subr org-export-to-file> html "test.html" nil nil nil nil nil)
  apply(+org--dont-trigger-save-hooks-a #<subr org-export-to-file> (html "test.html" nil nil nil nil nil))
  #f(advice-wrapper :around #<subr org-export-to-file> +org--dont-trigger-save-hooks-a)(html "test.html" nil nil nil nil nil)
  apply(#f(advice-wrapper :around #<subr org-export-to-file> +org--dont-trigger-save-hooks-a) (html "test.html" nil nil nil nil nil))
  (let ((old-async-init-file org-export-async-init-file) (org-export-async-init-file (make-temp-file "doom-org-async-export"))) (let ((temp-file org-export-async-init-file) (temp-buffer (generate-new-buffer " *temp file*" t))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (prin1 (list 'progn (list ... ... ... ... ...) (cons ... ...)) (current-buffer))) (save-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (apply orig-fn args))
  +org--fix-async-export-a(#f(advice-wrapper :around #<subr org-export-to-file> +org--dont-trigger-save-hooks-a) html "test.html" nil nil nil nil nil)
  apply(+org--fix-async-export-a #f(advice-wrapper :around #<subr org-export-to-file> +org--dont-trigger-save-hooks-a) (html "test.html" nil nil nil nil nil))
  org-export-to-file(html "test.html" nil nil nil nil nil)
  org-html-export-to-html(nil nil nil nil)
  org-export-dispatch(nil)
  #<subr funcall-interactively>(org-export-dispatch nil)
  apply(#<subr funcall-interactively> (org-export-dispatch nil))
  funcall-interactively(org-export-dispatch nil)
  #<subr call-interactively>(org-export-dispatch nil nil)
  apply(#<subr call-interactively> (org-export-dispatch nil nil))
  explain-pause--wrap-call-interactively(#<subr call-interactively> org-export-dispatch nil nil)
  apply(explain-pause--wrap-call-interactively #<subr call-interactively> (org-export-dispatch nil nil))
  call-interactively(org-export-dispatch nil nil)
  command-execute(org-export-dispatch)

Any help is appreciated. Thanks!

Names with name particles

Dear Andras,

take this Biblatex bibliography:

@Article{vhellfeld1989alg,
  author       = {Axel von Hellfeld},
  title        = {Sind Algorithmen schutzfähig?},
  journaltitle = {Gewerblicher Rechtsschutz und Urheberrecht},
  shortjournal = {GRUR},
  year      = {1989},
  pages     = {471-485},
  langid    = {german}}

This person's name has what CSL calls a non-dropping name particle (von, a German “Adelsprädikat”). If I read the CSL 1.0.1 specification correctly, then

<names variable="author" font-style="italic">
  <name form="short" delimiter="/"/>
</names>

in the XML should evaluate to von Hellfeld, but it does not. It always yields Hellfeld. Below is an adapted version of juristische-schulung.xml using this construct in the author-note macro referenced by the formatting rule for article-journal. The original juristische-schulung.xml uses

<names variable="author" font-style="italic">
  <name form="short" delimiter="/" name-as-sort-order="all"/>
</names>

But that doesn't seem to cut it either; it also yields Hellfeld rather than von Hellfeld. Is this a bug or do I misinterpret the CSL specification?

There's a second problem buried in here, which is that in German we shorten von to v. in citations, but before I can think about that one the von needs to be displayed at all.


<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="note" default-locale="de-DE">
  <info>
    <title>Juristische Schulung (Deutsch)</title>
    <title-short>JuS</title-short>
    <id>http://www.zotero.org/styles/juristische-schulung</id>
    <link href="http://www.zotero.org/styles/juristische-schulung" rel="self"/>
    <link href="http://www.zotero.org/styles/neue-juristische-wochenschrift" rel="template"/>
    <link href="http://rsw.beck.de/rsw/upload/JuS/jusautorenhinweise.pdf" rel="documentation"/>
    <author>
      <name>Reto Mantz</name>
    </author>
    <category citation-format="note"/>
    <category field="law"/>
    <issn>0022-6939</issn>
    <summary>JuS
    Style for articles in German law journal JuS
    - based on style Neue Juristische Wochenschrift (NJW) http://www.zotero.org/styles/neue-juristische-wochenschrift
    - Commentaries and handbooks should use publication type "entry-encyclopedia". See details for different citations below.
    - If a book or entry-encyclopedia is cited for the 2nd time (or more), "title and edition" are substituted by (o. Fn. ...)
      (see footnote ...)
    - see more details below in the comments</summary>
    <updated>2014-12-09T13:38:27+00:00</updated>
    <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
  </info>
  <!-- set date to format 8. 8. 2014 -->
  <locale xmlns="http://purl.org/net/xbiblio/csl" xml:lang="de-DE">
    <date form="numeric">
      <date-part name="day" form="numeric" suffix=". "/>
      <date-part name="month" form="numeric" suffix=". "/>
      <date-part name="year"/>
    </date>
  </locale>
  <macro name="author">
    <names variable="author" font-style="italic">
      <name delimiter="/ " name-as-sort-order="all" sort-separator=", " form="long"/>
      <label form="short" prefix=" (" suffix=")"/>
      <substitute>
        <names variable="editor"/>
      </substitute>
    </names>
  </macro>
  <macro name="author-note">
      <names variable="author" font-style="italic">
          <name form="short" delimiter="/"/>
      </names>
  </macro>
  <macro name="author-commentary">
    <choose>
      <if variable="collection-editor">
        <names variable="collection-editor">
          <name form="short" delimiter="/" name-as-sort-order="all"/>
        </names>
      </if>
      <else>
        <names variable="author editor">
          <name form="short" delimiter="/" name-as-sort-order="all"/>
        </names>
      </else>
    </choose>
  </macro>
  <macro name="locator-with-label">
    <group delimiter=" ">
      <label variable="locator" form="symbol"/>
      <text variable="locator"/>
    </group>
  </macro>
  <macro name="autor-editor-note">
    <names variable="author" font-style="italic">
      <name form="short" delimiter="/" sort-separator=""/>
      <substitute>
        <names variable="editor"/>
      </substitute>
    </names>
  </macro>
  <macro name="author-chapter">
    <names variable="container-author">
      <name delimiter="/ " name-as-sort-order="all" sort-separator=", " form="short"/>
      <label form="short" prefix=" (" suffix=")"/>
    </names>
  </macro>
  <macro name="journalname-year">
    <group delimiter=" ">
      <text variable="container-title-short"/>
      <date date-parts="year" form="text" variable="issued"/>
    </group>
  </macro>
  <macro name="firstpage-locator">
    <text variable="page-first"/>
    <text variable="locator" prefix=" (" suffix=")"/>
  </macro>
  <macro name="edition">
    <choose>
      <if match="any" is-numeric="edition">
        <group delimiter=" ">
          <number vertical-align="baseline" suffix=" " variable="edition" form="ordinal"/>
          <text term="edition" form="short" suffix="."/>
          <date date-parts="year" form="text" variable="issued" prefix=" (" suffix=")"/>
        </group>
      </if>
      <else-if variable="edition">
        <text variable="edition" form="short"/>
        <date date-parts="year" form="text" variable="issued" prefix=" (" suffix=")"/>
      </else-if>
      <!-- display year without brackets if this is the first edition (aka variable edition is not set) -->
      <else>
        <date date-parts="year" form="text" variable="issued" prefix=" "/>
      </else>
    </choose>
  </macro>
  <citation et-al-min="5" et-al-use-first="1">
    <layout delimiter="; ">
      <choose>
        <!-- Journal article
             Style: <authors italic>, <journalname short> <journal-year>, <first-page>, <locator/cited page(s)>    
        -->
        <if type="article-journal">
          <group delimiter=", ">
            <text macro="author-note"/>
            <text macro="journalname-year"/>
            <text macro="firstpage-locator"/>
          </group>
        </if>
        <else-if type="article-newspaper">
          <text macro="author-note" suffix=", "/>
          <text variable="container-title"/>
          <date form="numeric" variable="issued" prefix=" v. "/>
          <text variable="URL" prefix=", "/>
        </else-if>
        <!-- Book
             Style: <authors italic>, <title short>, [<edition>. Aufl. ]<year>, <locator/cited page(s)>    
        -->
        <else-if type="book">
          <text macro="autor-editor-note" suffix=", "/>
          <choose>
            <if match="none" position="first">
              <group delimiter=" " prefix="(" suffix="), ">
                <text value="o. Fn."/>
                <text variable="first-reference-note-number"/>
              </group>
            </if>
            <else>
              <text variable="title" form="short" suffix=", "/>
              <text macro="edition"/>
            </else>
          </choose>
          <choose>
              <!-- "S." as a locator is ommited. Many books however are instead cited by § plus margin number. The § has to appear. -->
              <if locator="page">
                  <text variable="locator" prefix=", "/>
              </if>
              <else>
                  <label variable="locator" form="symbol" prefix=", "/>
                  <text variable="locator" prefix=" "/>
              </else>
          </choose>
        </else-if>
        <!-- Legal commentary or handbook should be of publication type "entry-encyclopedia"
        - The term "Bearbeiter" (author of a certain chapter) in the following examples should be added by you and is not governed by this stylesheet
        
        Style:
        - if container-title (=Zotero.encyclopediaTitle) is NOT set: <editor non-italic>, <title short>, [<edition>. Aufl. ]<year>, <locator/cited page(s)>
        -.- i.e. Bearbeiter, in: Taeger/Gabel, BDSG, 2. Aufl. 2013, ... (where you should add "Bearbeiter, in: " yourself)
        - else <container-title>, [<edition>. Aufl. ]<year>, <locator/cited page(s)>
        -.- i.e. Bearbeiter, in: BeckTKG, 4. Auflage 2013, ... (where you should add "Bearbeiter, in: " yourself)
        
        if there is at least one series-editor (CSL.collection-editor) set: <collection-editor>, [<edition>. Aufl. ]<year>, <locator/cited page(s)> 
        -.- i.e. Bearbeiter, in: Palandt, BGB, 73. Aufl. 2014, ... (where you should add "Bearbeiter, in: " yourself)
        -->
        <else-if type="entry-encyclopedia">
          <choose>
            <if variable="container-title">
              <text variable="container-title" suffix=", "/>
            </if>
            <else>
              <text macro="author-commentary" suffix=", "/>
              <choose>
                <if match="none" position="first">
                  <group delimiter=" " prefix="(" suffix="), ">
                    <text value="o. Fn."/>
                    <text variable="first-reference-note-number"/>
                  </group>
                </if>
                <else>
                  <text variable="title" suffix=", " form="short"/>
                </else>
              </choose>
            </else>
          </choose>
          <choose>
            <if match="any" position="first">
              <text macro="edition"/>
            </if>
          </choose>
          <text variable="locator" prefix=", "/>
        </else-if>
        <!-- Chapter
        Style: <author italic>, in: <book-author>, <title short>, [<edition>. Aufl.] <year>, <page> (<locator>)
        e.g.: Mantz in Spindler, Rechtliche Rahmenbedingungen von Open Access-Publikationen, 2006, 55 (57)
        -->
        <else-if type="chapter">
          <text macro="autor-editor-note" suffix=", in: "/>
          <text macro="author-chapter" suffix=", "/>
          <text variable="container-title" suffix=", "/>
          <text macro="edition"/>
          <text macro="firstpage-locator" prefix=", "/>
        </else-if>
        <!-- Legal case
        Style:
        if case is published in journal:  <court> <journal> <journal-year>, <first-page>, <locator> [ <en-dash> <case name>]
        otherwise:                        <court>, <type of decision> v. <dated-decided> <en-dash> <docketnumber> [ <en-dash> <case name>]   (type of decision is saved in field "note")
        -->
        <else-if type="legal_case" match="any">
          <choose>
            <!-- is the case published in a journal? -->
            <if variable="container-title">
              <text variable="authority" suffix=" "/>
              <text variable="container-title" form="short" suffix=" "/>
              <text variable="volume" suffix=", "/>
              <text macro="firstpage-locator"/>
            </if>
            <else>
              <text variable="authority" suffix=", "/>
              <text variable="genre" suffix=" v. "/>
              <date form="numeric" variable="issued" suffix=" &#8211; "/>
              <text variable="number"/>
            </else>
          </choose>
          <choose>
            <if variable="title-short">
              <text variable="title-short" prefix=" &#8211; "/>
            </if>
          </choose>
        </else-if>
        <else>
          <group delimiter=", ">
            <text macro="author-note"/>
            <text variable="title"/>
            <text macro="locator-with-label"/>
          </group>
        </else>
      </choose>
    </layout>
  </citation>
  <bibliography>
    <sort>
      <key macro="author"/>
      <key variable="issued"/>
    </sort>
    <layout>
      <choose>
        <if type="article-journal">
          <group delimiter=", ">
            <text macro="author-note"/>
            <text variable="title"/>
            <text macro="journalname-year"/>
            <text macro="firstpage-locator"/>
          </group>
        </if>
        <else-if type="book">
          <text macro="autor-editor-note" suffix=", "/>
          <text variable="title" form="short" suffix=", "/>
          <text macro="edition"/>
        </else-if>
        <else-if type="article-newspaper">
          <text macro="author-note" suffix=", "/>
          <text variable="title" suffix=", "/>
          <text variable="container-title"/>
          <date form="numeric" variable="issued" prefix=" v. "/>
          <text variable="URL" prefix=", "/>
        </else-if>
        <else-if type="entry-encyclopedia">
          <choose>
            <if variable="container-title">
              <text variable="container-title" suffix=", "/>
            </if>
            <else>
              <text macro="author-commentary" suffix=", "/>
              <text variable="title" suffix=", " form="short"/>
            </else>
          </choose>
          <text macro="edition"/>
        </else-if>
        <else-if type="chapter">
          <text macro="autor-editor-note" suffix=", in: "/>
          <text macro="author-chapter" suffix=", "/>
          <text variable="container-title" suffix=", "/>
          <text macro="edition"/>
          <text variable="page-first" prefix=", "/>
        </else-if>
      </choose>
    </layout>
  </bibliography>
</style>

Support Biblatex extended name specifications

Dear Andras,

Biblatex supports making name parts explicit, see § 3.4 of the Biblatx manual. This looks like this:

@Article{vhellfeld1989alg,
  author       = {given=Axel, prefix=von, family=Hellfeld},
  title        = {Sind Algorithmen schutzfähig?},
  journaltitle = {Gewerblicher Rechtsschutz und Urheberrecht},
  shortjournal = {GRUR},
  year      = {1989},
  pages     = {471-485},
  langid    = {german}}

Pandoc appearently supports this, as

---
title: Test
author: Testauthor
lang: de
---

Das ist ein Test [@vhellfeld1989alg, p. 480].

with juristische-schulung.csl yields

1. Hellfeld, GRUR 1989, 471, p. 480↩︎

Somewhat surprising is that pandoc does not print the non-dropping particle von -- maybe a bug in pandoc or me misinterpreting the CSL specification (see #74). But it does recognise the family name as the family name, whereas this org file:

#+TITLE: Test
#+AUTHOR: Testauthor
#+LANGUAGE: de
#+bibliography: /tmp/mwe/mwe.bib
#+cite_export: csl /tmp/mwe/juristische-schulung.csl

Das ist ein Test. [cite:@vhellfeld1989alg p. 480]

with the same CSL file yields:

1 given=Axel, GRUR 1989, 471 (480)

which is in any case wrong.

citeproc.el at e6b3f16. Org mode version 9.5 (release_9.5-225-g494c20 @ /home/quintus/.emacs.d/org-mode/lisp/).

Add new vars for CSL 1.0.2

I'm going to open a PR to add new variables that will be added in CSL 1.0.2. Is it correct that citeproc-el does not define regular variables? I've found the definitions for names, dates and numbers, but nothing for regular variables. Is that correct?

% not escaped in LaTeX exports

I'm trying to export a citation with a few % chars in the URL, and looking at the generated .tex it seems like they're not escaped 🙁.

Citations: non-page locators placed in front of citation

I seem to have a talent in triggering unusual edge cases -- anyway, forwarded from https://list.orgmode.org/[email protected]/T/ by suggestion of Nicolas:


Dear all,

apologies for my frequent e-mails. It’s just that I am evaluating the
citations facility for me.

This time it’s about non-page locators. Take the following document:

#+TITLE: Test
#+AUTHOR: testauthor
#+LANGUAGE: de
#+bibliography: /tmp/mwe/mwe.bib
#+cite_export: csl /tmp/mwe/juristische-schulung.csl

Das ist ein Test [cite:@saenger2013gsr § 12 Rn. 488].

juristische-schulung.csl is
https://github.com/citation-style-language/styles/blob/e22b8a566bad9b4c7f52720f60dd875057a5d210/juristische-schulung.csl.

This is mwe.bib:

@Book{saenger2013gsr,
  author       = {Ingo Saenger},
  title        = {Gesellschaftsrecht},
  year      = {2013},
  edition   = {2},
  publisher = {Franz Vahlen},
  location  = {München},
  langid    = {ngerman}}

Note how this work is not cited by page, but instead (which is common
among German judicial literature) by section number (§) plus margin number
(Rn.). Exporting this e.g. to HTML yields in Footnote 1:

§  Saenger, Gesellschaftsrecht, 2. Aufl. (2013), 12 Rn. 488

That is rather unexpected. It has pulled the § sign in front of the
citation. The citation should have looked like this:

Saenger, Gesellschaftsrecht, 2. Aufl. (2013), § 12 Rn. 488

If I replace the citation in the document with

Das ist ein Test [cite:@saenger2013gsr p. 245].

then it produces the expected

Saenger, Gesellschaftsrecht, 2. Aufl. (2013), 245

(the page locator label, "S." in German, is intentionally suppressed by
the CSL style, so this is not a bug. However, the § locator has to
appear and is not suppressed by the CSL style).

If I export with the default "bare" processor, the citation comes out
fine as "(Ingo Saenger, 2013 § 12 Rn. 488)".

I conclude from this that org somehow mistreats the locator if it is not
a page number. I used org 9.5 from MELPA and Citeproc.el from commit
34e6658.

Is it a bug or (again) my error?

-quintus

How does the "label" work

I am not sure I am doing this right. Suppose I have this org-file, which tangles the test.bib file out, and has chicago-author-date-16th-edition.csl and locales-en-US.xml in the same directory.

#+BEGIN_SRC bibtex :tangle test.bib
@article{kitchin-2015-examp-effec,
  author =	 {John R. Kitchin},
  title =	 {Examples of Effective Data Sharing in Scientific Publishing},
  journal =	 {ACS Catalysis},
  volume =	 5,
  number =	 6,
  pages =	 {3894-3899},
  year =	 2015,
  doi =		 {10.1021/acscatal.5b00538},
  url =		 {https://doi.org/10.1021/acscatal.5b00538},
  DATE_ADDED =	 {Fri Jan 18 09:54:51 2019},
}
#+END_SRC


#+BEGIN_SRC emacs-lisp :var tangled=(org-babel-tangle)
(let* ((proc (citeproc-create "chicago-author-date-16th-edition.csl"
			      (citeproc-itemgetter-from-bibtex "test.bib")
			      (citeproc-locale-getter-from-dir ".")
			      "en-US"))
       (cites (list (citeproc-citation-create :cites '(((id . "kitchin-2015-examp-effec")
							(prefix . "See ")
							(suffix . "")
							(locator . "2")
							(label . "page")
							(suppress-author)))
					      :mode 'nil
					      :capitalize-first nil
					      :suppress-affixes nil)))
       (rendered-citations (progn (citeproc-append-citations cites proc)
				  (citeproc-render-citations proc 'plain nil))))
  (car rendered-citations))
#+END_SRC

#+RESULTS:
: (See Kitchin 2015, 2)

I would have thought this would render as (See Kitchin 2015, pg. 2), but it doesn't. Am I doing something wrong with the label? or does it depend on the style used?

[EDIT]: I see it does depend on the style. With apa-5th-edition.csl, it renders as (See Kitchin, 2015, p. 2), but only when you use "page" as the label, if you use "pg." or "p." or "p" then it renders as (See Kitchin, 2015, 2). Is that intentional, or documented somewhere?

[EDIT 2]: I can further see that in oc-csl.el, it has an alist to standardize the label in those cases I mentioned to page. That seems like an ok thing to do. If that is the answer, feel free to close this.

Singular vs. plural section locators not recognised properly

As per this and this post on the org-mode ML:


There appears to be a problem with the § locator not properly finding out when singular and when plural labels should be used for the locator:

With »Org mode version 9.5 (release_9.5-104-g2b1fc6 @ /home/quintus/.emacs.d/org-mode/lisp/)«

Das ist ein Test [cite:@saenger2013gsr § 12 Rn. 488].

(which references section 12, margin number 488) gives:

Saenger, Gesellschaftsrecht, 2. Aufl. (2013), §§ 12 Rn. 488

This uses double §§ instead of a single §, that is, it treats the citation as a plural one whereas it should be a singular one. The same happens with

Das ist ein Test [cite:@saenger2013gsr section 12 Rn. 488].

Interestingly, the input

Das ist ein Test [cite:@saenger2013gsr § 12].

(which has no suffix) does correctly export to

Saenger, Gesellschaftsrecht, 2. Aufl. (2013), § 12

with only one § sign. Then, a real multi-section citation like this:

Das ist ein Test [cite:@saenger2013gsr §§ 12 ff.].

instead incorrectly yields a single §:

Saenger, Gesellschaftsrecht, 2. Aufl. (2013), § 12 ff.

This one however:

Das ist ein Test [cite:@saenger2013gsr §§ 12-14].

is correct again:

Saenger, Gesellschaftsrecht, 2. Aufl. (2013), §§ 12-14

-quintus

Add a "full-author-list" parameter

Related to #15, and from list discussion, this would allow support for the org-cite "full" variants.

It's probably lower priority than #15, but would be good to have?

textual citations

@ebouna and I realized today that textual citations aren't supported yet. Any chance they'll be added soon? Anything I can do to help here?

Improve suppress author behavior

Am I correct the behavior we discussed in this and subsequent two posts is not implemented here?

https://lists.gnu.org/archive/html/emacs-orgmode/2021-04/msg00554.html

Explained with examples here:

https://lists.gnu.org/archive/html/emacs-orgmode/2021-04/msg00572.html

Though updated syntax would be:

[cite/noauthor:@doe20; @doe21]
[cite/noauthor:@doe20; see also @smith19]
[cite/text:@doe20; see also @smith19]

From your explanation in that first post above @andras-simonyi, it sounds like you implement it in citeproc-org, but not here, which seems the more obvious place.

And I guess to do that, you need to add a parameter to the citation, whereas now it's on the individual cites?

Obviously this will also relate to #15.

cc @denismaier

Add subtitle field

As discussed here citeproc-el should probably support a distinct subtitle field. (Perhaps it might also be possible to support subtitles for journal titles and booktitles.)

Unexpected doi output in plain text export

Per list, I'm finding in this case a doi is getting output as an http link when using plain text export, and it makes no sense to me.

Details.

  1. chicago-note-bibliography-16th-edition.csl
  2. this json file

citeproc-el output:

Low, Setha M. “The Edge and the Center: Gated Communities and the
Discourse of Urban Fear.” /American Anthropologist/ 103, no. 1 (March 1,
2001): 45–58. <https://doi.org/10.1525/aa.2001.103.1.45>.

pandoc output:

Low, Setha M. “The Edge and the Center: Gated Communities and the
Discourse of Urban Fear.” American Anthropologist 103, no. 1 (March 1,
2001): 45–58. doi:10.1525/aa.2001.103.1.45.

My reading of the style (see here, in particular) says the latter is correct, but I really can't understand why the former.

This is also what I see with the default chicago-author-date style, which does specify this sort of formatting:

Low, Setha M. 2001. “The Edge and the Center: Gated Communities and the
Discourse of Urban Fear.” /American Anthropologist/ 103
(1):45–58. <https://doi.org/10.1525/aa.2001.103.1.45>.

Clearly they are different styles.

I also wondered if it was something about the export backend, but confirmed the same with HTML. (edit: sorry; made a mistake here)

Any other ideas?

Or can someone else confirm I'm not crazy (or maybe just over-tired!) here?

Edit: looking at this again next day, still doesn't seem right, but am still unsure why (I note, for example "doi" doesn't show up in the code base at all).

cc @denismaier

Missing biblatex entry types

Biblatex uses thesis entry type, but only phdthesis and mastersthesis are supported. Report is also not supported. I get NO_ITEM_DATA:key for those.

Add support for "author" and "text" styles

With the announcement of oc-csl, it seems this package is where the focus should be (and would be anyway for new styles support).

Of note: if you add support for the "author" style, it's a small step to "text" too, which is just "author/bare" + "suppress author" (which you already support).

Map `type` to `genre` for `@jurisdiction`

Dear all,

I would like to request that for @jurisdiction entries in Biblatex .bib files (-> legal_case in CSL) the type key is mapped to CSL's genre variable. The CSL style juristische-schulung.csl uses genre to differenciate the two major kinds of court decisions we have in German process law (“Urteil”, meaning there has been an oral hearing before the decision, and “Beschluss”, meaning there was none).

Currently I am abusing the note key with a custom adapted version of juristische-schulung.csl, but that doesn't quite cut it. genre seems much more sensible.

-quintus

breaks with single page citations

From @dcherian on March 19, 2018 4:38

Example bibtex entry

@article{Dyson2004,
  title = {A Meeting with {{Enrico Fermi}}},
  volume = {427},
  issn = {0028-0836, 1476-4679},
  doi = {10.1038/427297a},
  number = {6972},
  journal = {Nature},
  author = {Dyson, Freeman},
  month = jan,
  year = {2004},
  pages = {297--297},}

citeproc-prange--end-significant throws an error saying Wrong argument

Copied from original issue: andras-simonyi/citeproc-org#1

Hyprref configuration question: PDF links

Maybe something for the wiki if we can get it working right.

With a note style, in particular, default rendering of links with hyprref is horrible.

Screenshot from 2021-06-03 07-33-21

Adding colorlinks = true is an improvement, but still less-than-ideal, as the note text is then just red.

Screenshot from 2021-06-03 07-27-36

Anyone know how to address this?

cc @denismaier

LaTeX citation styling.

Hello,

I thought it would be nice to give CSL-generated LaTeX citations the same look as those generated by biblatex et. al.
I asked the hyperref folks if it would be possible to apply the same styling, and they got back to me 🙂 (see latex3/hyperref#197).

So, the following should accomplish this:

\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks}

\makeatletter
\newcommand{\citeprocitem}[2]{\hyper@linkstart{cite}{#1}#2\hyper@linkend}
\makeatother

\begin{document}

\citeprocitem{citeproc_bib_item_foo}{foo}

\hypertarget{citeproc_bib_item_foo}{Foo, the journal of Foo...}

\end{document}

Though I'd also be tempted to shorten things like so:

\newcommand{\citeprocitem}[2]{\hyper@linkstart{cite}{citeproc_bib_item_#1}#2\hyper@linkend}

Thoughts?

Problem with specific CSL styles

Hello.
When I try to export to html using these two csl files:

https://www.zotero.org/styles/associacao-brasileira-de-normas-tecnicas

https://www.zotero.org/styles/associacao-brasileira-de-normas-tecnicas-ufrgs

The first one gives the error wrong type argument: sequencep, splice
The second one: Wrong type argument: listp, "[NO BIBLIOGRAPHY LAYOUT IN CSL STYLE]"

They are specific to these styles, since when I used an Astronomy style https://www.zotero.org/styles/annual-review-of-astronomy-and-astrophysics it worked fine.

Org mode version 9.4 (9.4-27-g47bf60-elpaplus @ /home/cadr/.emacs.d/elpa/org-plus-contrib-20201026/)

GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.22, cairo version 1.17.3) of 2020-08-28

citeproc-org installed with use-package and updated

Add support for biblatex-like multi-bibs

I don't know if you want to do this (I'm not sure how much work it is, for example), but it's something that came up in discussions of org-cite, and has come up in CSL discussions before.

From Nicolas, explaining the support for this in oc-biblatex:

Bibliography is printed using "\printbibliography" command. Additional
options may be passed to it through a property list attached to the
"print_bibliography" keyword. E.g.,

#+print_bibliography: :section 2 :heading subbibliography

Values including spaces must be surrounded with double quotes. If you need
to use a key multiple times, you can separate its values with commas, but
without any space in-between:

#+print_bibliography: :keyword abc,xyz :title "Primary Sources"

So ideally, the same would be compatible in citeproc.

Primary use cases that I'm aware of:

  1. multiple sections in one bibliography (the example above, where you filter by keyword, type, etc.; primary sources vs everything else, legal documents vs everything else, discographies vs everything else)
  2. a bibliography per chapter, etc.

cc @denismaier

Support *relative* CSL file names

My usage of citeproc-el is nowaday mostly via the [cite:...] feature of org-mode. My suggestion might be in org-mode territory. Or I might bark up the wrong tree...

In this implementation, the CSL style file must be an absolute file reference. This might be a pain if the relevant file has a long path. It might even be impossible (e. g. : acceding a file "in the Cloud", such as a Google drive, or a SMB/CIFS file with no drive letter in Windows).

Could citeproc accept relative references, such as (Linux examples, I don't have enough Windows fu to create correct examples) :

#+cite_export: MyLocal.csl
#+cite_export: MySubdir/MyLocal.csl
#+cite_export: $MyProject/utils/MyCustom.csl
#+cite_export: cifs://myserver/Myservice/MyUtils//MyCustom.csl

Having to specify an absolute path is but an annoyance, but not a minor one...

Cordially,

Biblatex custom fields, @incollection vs. @inbook or querying a variable value in CSL

Dear all,

this is more of a question than as a bug report or feature request, but I would like the raise the issue nonetheless. Regretably, CSL does not have an equivalent to Biblatex's @incollection type, which I use quite heavily; both @incollection and @inbook are mapped to the CSL chapter, while I need to distinguish the two. In German law scientific literature, it is common to honour established scientists with books consisting of collected articles, which we call "Festschrift" (celebrating someone's typically higher-age birthday) or "Gedächtnisschrift" (when the book was collected at the occasion of the recipient's passing away). These books are cited significantly differently from other books with collected works like handbooks; for the former, I use @incollection while for the latter I use @inbook.

That being said, I have not found an ideal way to properly represent all metadata in Biblatex either. These celebrational collections are typically cited as “(article author), in: (type of collection) (last name of recipient), (publishing year), (first page of article)”, even though these books typically (not always) do have an actual booktitle (i.e. the booktitle is not cited). The type of collection is a journal-specific short term for "Festschrift" or "Gedächtnisschrift" -- the JuS journal shortens to "FS" resp. "GS", but some other journals use "Festschr."/"Gedächtnisschr." or write it out fully as "Festschrift"/"Gedächtnisschrift". I would need a CSL term for that. To my knowledge, this kind of work is not properly represented by any existing judicial CSL style either, so I am trying to adapt my personal CSL style to them for the moment.

Take this as an incomplete example:

@InCollection{bklehmann1995cpvr,
	author = {Michael Lehmann},
	title = {Das Urhebervertragsrecht der Softwareüberlassung},
	pages = {543-569},
	booktitle = {Urhebervertragsrecht},
	booksubtitle = {Festgabe für Gerhard Schricker zum 60. Geburtstag},
	year = {1995},
	editor = {Friedrich-Karl Beier and Horst-Peter Götting and Michael Lehmann and Rainer Moufang},
	publisher = {C.H. Beck},
	location = {München},
	langid = {german}
}

This thing should be cited in the JuS journal as “Lehmann, in: FS Schricker, 1995, 543". How should I proceed to get the required metadata into that entry? I see that CSL has a variable recipient which I could leverage in the CSL file, but there appears to be no corresponding Biblatex field for recipient. Biblatex however provides something called /custom fields/ (Biblatex manual § 2.2.4), which sounds like a good candidate; in this case, I could just use the namea custom field. For differenciating the two kinds of these works I could use the new type/genre mapping, which would at least allow me to specify one possible writing of the kind of work. This would result in the following entry (new fields at the end):

@InCollection{bklehmann1995cpvr,
	author = {Michael Lehmann},
	title = {Das Urhebervertragsrecht der Softwareüberlassung},
	pages = {543-569},
	booktitle = {Urhebervertragsrecht},
	booksubtitle = {Festgabe für Gerhard Schricker zum 60. Geburtstag},
	year = {1995},
	editor = {Friedrich-Karl Beier and Horst-Peter Götting and Michael Lehmann and Rainer Moufang},
	publisher = {C.H. Beck},
	location = {München},
	langid = {german},
        namea = {Gerhard Schricker},
        type = {Festschrift}
}

However, apart from the fact that I have no idea how I should access the namea custom field from within the CSL style file or map it into CSL's recipient variable, it falls short of allowing me to use the journal-specific variants of "Festschrift" (e.g. "FS" for the JuS journal). At least, I have not found a way in the CSL 1.0.1 specification to query the value of a text variable inside an if declaration. I would need something like

<choose>
    <if variable="type" value="Festschrift">
    </if>
    <else>
    </else>
</choose>

, but CSL does not provide that.

So instead, I thought I could use CSL's container-title-short variable, which at least alleviates for the problem that I cannot query namea from the CSL file. I can put shortjournal into the entry (as Biblatex for whatever reason does not have a bookshorttitle field) and it will show up in the CSL variable container-title-short:

@InCollection{bklehmann1995cpvr,
	author = {Michael Lehmann},
	title = {Das Urhebervertragsrecht der Softwareüberlassung},
	pages = {543-569},
	booktitle = {Urhebervertragsrecht},
	booksubtitle = {Festgabe für Gerhard Schricker zum 60. Geburtstag},
	year = {1995},
	editor = {Friedrich-Karl Beier and Horst-Peter Götting and Michael Lehmann and Rainer Moufang},
	publisher = {C.H. Beck},
	location = {München},
	langid = {german},
        shortjournal = {FS Schricker}
}

But that falls short of the requirements as well, because the CSL file has no possibility to find out whether the editors need to be cited or not. They are not to be cited for an @Incollection (Festschrift/Gedächtnisschrift), but they are to be cited if this work is an @Inbook (any other collective work). At that point, I gave up and wrote this ticket. Is there a way to query from the CSL XML if I am dealing with an @Incollection or an @inbook?

Or, any other ideas how I properly represent that work? As said, if it was a singular example, I would file it under @misc and deal with it somehow, but these kinds of works are frequent in the German judicial science, so I need to work it out properly.

-quintus

Package cannot be found

M-x package-list-packages F failed to show citeproc-el.

Emacs version: 26.2 (9.0)

Settings:

(require 'package)
(setq package-archives
      '(("melpa" . "https://melpa.org/packages/")
	("melpa-stable" . "https://stable.melpa.org/packages/")
        ("gnu" . "https://elpa.gnu.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))
(package-initialize)

JSON problems

To be clear, I do not know if the problem here is with citeproc-el, oc-csl, or me, but figured I'd start here.

Input:

#+language: en
#+bibliography: "~/org/bib/newer.json"
#+cite_export: csl

two cites, same author: [cite/noauthor:@low2017;@low2001]

two cites, different author: [cite/noauthor:@low2017;@kohn2013]

#+print_bibliography:

Output:


two cites, same author: (NO_ITEM_DATA:low2017, NO_ITEM_DATA:low2001)

two cites, different author: (NO_ITEM_DATA:low2017,
NO_ITEM_DATA:kohn2013)

NO_ITEM_DATA:low2017

NO_ITEM_DATA:low2001

NO_ITEM_DATA:kohn2013

The csl json file is generated with Better BibTeX, and should be correct (edit: per below, I also tested with a json file converted using pandoc, with same results).

I don't know whether:

  1. citeproc can't find the file (doubtful)
  2. can't read the file (?)

... and if 2, why.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.