andras-simonyi / citeproc-el

A CSL 1.0.2 Citation Processor for Emacs.
GNU General Public License v3.0
85 stars 9 forks source link

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

Closed Quintus closed 2 years ago

Quintus commented 2 years ago

Forwarded from https://list.orgmode.org/87o885mb8h.fsf@nicolasgoaziou.fr/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 )

bdarcus commented 2 years ago

I did a little test, and see the same error (though no crashing), but only with your bib entry, though I can't see anything wrong or out-of-the-ordinary with it.

andras-simonyi commented 2 years ago

Thanks for the report -- I've just merged a pull request which hopefully fixes the issue. Could you check?

Quintus commented 2 years ago

I can confirm that it does not crash anymore. Thanks for the quick fix!

-quintus

Quintus commented 2 years ago

I did a little test, and see the same error (though no crashing)

For clarification: Emacs did not crash. It only gave this error. I simply used "crash" and "error" as synonyms. Apologies for any confusion this caused.