emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: citeproc-org and org-ref 3


From: John Kitchin
Subject: Re: citeproc-org and org-ref 3
Date: Thu, 02 Dec 2021 12:35:47 -0500
User-agent: mu4e 1.6.8; emacs 28.0.60

Glad to hear it is working again for you! Best wishes,

Joseph Vidal-Rosset <joseph@vidal-rosset.net> writes:

> Dear all,
>
>
> I just succeeded in solving my problem.
>
> l-210-235 of myblogexporter.el, I changed the code for:
>
> (defun org-export-head-export-headers (directory-name backend)
>    "Exports each heading to directory-name using backend"
>    (if (equal backend "html")
>        (org-export-head--run-on-each-heading
>         #'(lambda ()
>             (org-set-property
>              "EXPORT_FILE_NAME"
>              (concat directory-name (org-export-head--escaped-headline)))
>             (deactivate-mark)
>             (let ((org-export-before-parsing-hook
> '(org-ref-csl-preprocess-buffer)))
>                  (cl-letf (((symbol-function 'org-export-get-reference)
> (symbol-function 'org-export-get-reference-custom)))
>                    (if org-export-head-click-toc-h2
>                        (cl-letf ((
>                                   ;(symbol-function 'org-html-toc)
>                                   (symbol-function
> 'org-export-head--custom-toc)))
>                          (org-html-export-to-html nil t)))))
>             (set-buffer-modified-p t)) "-noexport-noreexport"))
>    (if (equal backend "pdf")
>        (org-export-head--run-on-each-heading
>         #'(lambda ()
>             (org-set-property
>              "EXPORT_FILE_NAME"
>              (concat directory-name (org-export-head--escaped-headline)))
>             (deactivate-mark)
>             (org-latex-export-to-pdf nil t)
>             (set-buffer-modified-p t)) "-noexport-noreexport")))
>
> and it works with org-ref 3.
>
> Best wishes,  I attach myblogexporter.el
>
> Jo.
>
> Le 02/12/2021 à 14:17, Joseph Vidal-Rosset a écrit :
>> Dear John (cc. Ivan),
>>
>> First, thanks for your help and for your patience, that's very kind of you.
>>
>> The good news is that indeed, org-ref 3 exports nicely the  html
>> bibliography with my CSL file, it works well with your org file and your
>> bibliography. My error was simple: I did not use the specific org-ref
>> keys but the ordinary h-o keys.. A stupid mistake.
>>
>> The bad news is that this new function for exporting with org-ref 3 is
>> not included in org-export-head, a nice org mode to blog exporter, made
>> by Ivan Tadeu Ferreira Antunes Filho, which converts each header to a
>> different file, I find this exporter very convenient. I had no problem
>> with this org-ref 2 to use this blog-exporter, but it org-ref 3 is
>> unfortunately not still adapted to its use. Nevertheless, I believe that
>> it should be possible to find the lines to include this function
>> (let  ((org-export-before-parsing-hook '(org-ref-csl-preprocess-buffer)))
>>       (org-open-file  (org-html-export-to-html)))
>> in org-export-head. I tried, but without success, because I am simply
>> not expert enough. I see the best, that is to export both with org-ref 3
>> (i.e. "r h") and org-export-head, but I am unable to code it.
>>
>> No doubt that it should be for you and Ivan a piece of cake, but please
>> do it only if you think that it is interesting and if you find the time
>> to do it.
>>
>> Best wishes,
>>
>> Jo.
>>
>> PS in attachment, myblogexporter.el in my ~/.emacs.d/personal  (usual
>> path with Prelude Emacs).
>>
>> Le 01/12/2021 à 23:16, John Kitchin a écrit :
>>>
>>> Joseph Vidal-Rosset <joseph@vidal-rosset.net> writes:
>>>
>>>> Dear Andras,
>>>>
>>>> You are very probably right. I will have a look on this entry in my
>>>> default bibliography file.
>>>>
>>>> The code
>>>>
>>>> (let  ((org-export-before-parsing-hook '(org-ref-csl-preprocess-buffer)))
>>>>           (org-open-file  (org-html-export-to-html)))
>>>>
>>>> put in .emacs.d/personal/preload/myorgexport.el
>>>>
>>> This code should not go in your init file. It is executed each time, and
>>> not what you want. I usually put it a src block at the end in a section
>>> tagged noexport and run it from there.
>>>
>>> Alternatively, if this is the only preprocessing you do, I think you can
>>> do C-c C-e rh to export to html (this runs the org-ref html exporter.
>>>
>>> Finally, if you really want something in your init file it should be
>>> like this:
>>>
>>> (defun my-html ()
>>>     (interactive)
>>>     (let  ((org-export-before-parsing-hook 
>>> '(org-ref-csl-preprocess-buffer)))
>>>       (org-open-file  (org-html-export-to-html))))
>>>
>>> and then later you run it with M-x my-html
>>>
>>>
>>>> provokes the request of opening a html file, when emacs --daemon is
>>>> started; therefore I conclude that it should not be used as I did...
>>>>
>>>> Anyway, every  tentative  to export in a bibliography in html fails at
>>>> the moment, even with a new bibliography file...  :(
>>>
>>> See of the one at
>>> https://github.com/jkitchin/org-ref/blob/master/examples/basic-csl.org
>>> works. The bib file is in
>>> https://github.com/jkitchin/org-ref/blob/master/org-ref.bib.
>>>
>>>
>>>
>>>>
>>>> Best wishes,
>>>>
>>>> Le 01/12/2021 à 17:33, András Simonyi a écrit :
>>>>> Dear Joseph,
>>>>>
>>>>> based on the error message there seems to be a problem with the
>>>>> 'curley-nil-on-bennet-spinoz' bibliography entry, is it possible that
>>>>> it contains a 'year = nil' row? If yes then I don't think that is
>>>>> well-formed, at least citeproc-el cannot currently parse it. Anyhow,
>>>>> apparently I need to improve/add citeproc-el error messages about
>>>>> bib(la)tex parsing, because several parsing problems have surfaced
>>>>> lately and the current error messages aren't helpful at all.
>>>>>
>>>>> best wishes,
>>>>> András
>>>>>
>>>>> On Wed, 1 Dec 2021 at 16:50, Joseph Vidal-Rosset
>>>>> <joseph@vidal-rosset.net> wrote:
>>>>>>
>>>>>> Dear John,
>>>>>>
>>>>>> I must say that to export references in html with org-ref 3, I meet a
>>>>>> lot of problems (with LaTeX, it's fine).
>>>>>>
>>>>>> I am using prelude emacs and  GNU Emacs 29.0.50 .
>>>>>>
>>>>>> Starting emacs --daemon, the code
>>>>>>
>>>>>> (let  ((org-export-before-parsing-hook '(org-ref-csl-preprocess-buffer)))
>>>>>>         (org-open-file  (org-html-export-to-html)))
>>>>>>
>>>>>> in my setup provokes this unwanting effect:
>>>>>>
>>>>>> [Prelude] Loading personal configuration files in
>>>>>> /home/joseph/.emacs.d/personal/preload...
>>>>>> Loading /home/joseph/.emacs.d/personal/preload/myorgexport.el (source)...
>>>>>> Output file:
>>>>>>
>>>>>> and with Enter :
>>>>>>
>>>>>> [Prelude] Loading personal configuration files in
>>>>>> /home/joseph/.emacs.d/personal/preload...
>>>>>> Loading /home/joseph/.emacs.d/personal/preload/myorgexport.el (source)...
>>>>>> Output file:
>>>>>> Warning (initialization): An error occurred while loading
>>>>>> ‘/home/joseph/.emacs.d/init.el’:
>>>>>>
>>>>>> Wrong type argument: stringp, nil
>>>>>>
>>>>>> To ensure normal operation, you should investigate and remove the
>>>>>> cause of the error in your initialization file.  Start Emacs with
>>>>>> the ‘--debug-init’ option to view a complete error backtrace. Disable
>>>>>> showing Disable logging
>>>>>> Starting Emacs daemon.
>>>>>>
>>>>>> With --debug-init, I get:
>>>>>>
>>>>>> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
>>>>>>       string-to-number(nil)
>>>>>>       citeproc-bt--to-csl-date("nil" nil)
>>>>>>       citeproc-blt-entry-to-csl((("Url" .
>>>>>> "http://dx.doi.org/10.1163/9789004246638_005";) ("Doi" .
>>>>>> "10.1163/9789004246638_005") ("Date_added" . "Mon May 16 19:09:37 2016")
>>>>>> ("Booktitle" . "Spinoza: Issues and Directions") ("Series" . "Spinoza:
>>>>>> Issues and Directions") ("Year" . "nil") ("Publisher" . "Brill Academic
>>>>>> Publishers") ("Pages" . "39-52") ("Author" . "Edwin Curley") ("Title" .
>>>>>> "ON BENNETTS SPINOZA: THE ISSUE OF TELEOLOGY") ("=type=" . "InBook")
>>>>>> ("=key=" . "curley-nil-on-bennet-spinoz")) nil nil)
>>>>>>       #f(compiled-function (key entry) #<bytecode
>>>>>> -0x7fcb46b5c8e80b3>)("curley-nil-on-bennet-spinoz" (("Url" .
>>>>>> "http://dx.doi.org/10.1163/9789004246638_005";) ("Doi" .
>>>>>> "10.1163/9789004246638_005") ("Date_added" . "Mon May 16 19:09:37 2016")
>>>>>> ("Booktitle" . "Spinoza: Issues and Directions") ("Series" . "Spinoza:
>>>>>> Issues and Directions") ("Year" . "nil") ("Publisher" . "Brill Academic
>>>>>> Publishers") ("Pages" . "39-52") ("Author" . "Edwin Curley") ("Title" .
>>>>>> "ON BENNETTS SPINOZA: THE ISSUE OF TELEOLOGY") ("=type=" . "InBook")
>>>>>> ("=key=" . "curley-nil-on-bennet-spinoz")))
>>>>>>       maphash(#f(compiled-function (key entry) #<bytecode
>>>>>> -0x7fcb46b5c8e80b3>) #<hash-table equal 665/730 0x156f8acb26b7>)
>>>>>>       citeproc-hash-itemgetter-from-any(("~/Dropbox/Orgzly/reforg.bib"))
>>>>>>       org-ref-process-buffer(html)
>>>>>>       org-ref-csl-preprocess-buffer(html)
>>>>>>       run-hook-with-args(org-ref-csl-preprocess-buffer html)
>>>>>>       org-export-as(html nil nil nil (:output-file "~/test.html"))
>>>>>>       org-export-to-file(html "~/test.html" nil nil nil nil nil)
>>>>>>       org-html-export-to-html()
>>>>>>       (org-open-file (org-html-export-to-html))
>>>>>>       (let ((org-export-before-parsing-hook
>>>>>> '(org-ref-csl-preprocess-buffer))) (org-open-file
>>>>>> (org-html-export-to-html)))
>>>>>>       eval-buffer(#<buffer  *load*-634240> nil
>>>>>> "/home/joseph/.emacs.d/personal/preload/myorgexport..." nil t)  ;
>>>>>> Reading at buffer position 3196
>>>>>>
>>>>>> load-with-code-conversion("/home/joseph/.emacs.d/personal/preload/myorgexport..."
>>>>>> "/home/joseph/.emacs.d/personal/preload/myorgexport..." nil nil)
>>>>>>       load("/home/joseph/.emacs.d/personal/preload/myorgexport...")
>>>>>>       mapc(load 
>>>>>> ("/home/joseph/.emacs.d/personal/preload/myorgexport..."))
>>>>>>       (progn (message "[Prelude] Loading personal configuration files in
>>>>>> ..." prelude-personal-preload-dir) (mapc 'load (directory-files
>>>>>> prelude-personal-preload-dir 't "^[^#.].*el$")))
>>>>>>       (if (file-exists-p prelude-personal-preload-dir) (progn (message
>>>>>> "[Prelude] Loading personal configuration files in ..."
>>>>>> prelude-personal-preload-dir) (mapc 'load (directory-files
>>>>>> prelude-personal-preload-dir 't "^[^#.].*el$"))))
>>>>>>       eval-buffer(#<buffer  *load*> nil "/home/joseph/.emacs.d/init.el" 
>>>>>> nil
>>>>>> t)  ; Reading at buffer position 4489
>>>>>>       load-with-code-conversion("/home/joseph/.emacs.d/init.el"
>>>>>> "/home/joseph/.emacs.d/init.el" t t)
>>>>>>       load("/home/joseph/.emacs.d/init" noerror nomessage)
>>>>>>       startup--load-user-init-file(#f(compiled-function () #<bytecode
>>>>>> 0xec639179d6199fa>) #f(compiled-function () #<bytecode
>>>>>> -0x1f3c686ddc0dc635>) t)
>>>>>>       command-line()
>>>>>>       normal-top-level()
>>>>>>
>>>>>> It's too complicated for me.
>>>>>> org-ref version 2 with citeproc-org by Andras worked well, but now I am
>>>>>> afraid that to downgrade to org-ref 2 is not necessarily the best
>>>>>> solution. I am lost.
>>>>>>
>>>>>> Best wishes, and thanks for your help.
>>>>>>
>>>>>> Jo.
>>>>>>
>>>>>>
>>>>>> Le 30/11/2021 à 18:31, John Kitchin a écrit :
>>>>>>> See https://www.youtube.com/watch?v=rRR-5NSpKyE
>>>>>>> <https://www.youtube.com/watch?v=rRR-5NSpKyE> for an overview of what to
>>>>>>> do. basically you need a csl file that provides the style you want, and
>>>>>>> you specify it like this in the org file or in default settings. You may
>>>>>>> also need a locale file if you are not blogging in english.
>>>>>>>
>>>>>>> #+csl-style: apa-5th-edition.csl
>>>>>>>
>>>>>>> #+csl-locale: en-US
>>>>>>>
>>>>>>>
>>>>>>> You can find a basic example org file for html export with CSL at
>>>>>>> https://github.com/jkitchin/org-ref/blob/master/examples/basic-csl.org
>>>>>>> <https://github.com/jkitchin/org-ref/blob/master/examples/basic-csl.org>
>>>>>>>
>>>>>>> Here is a minimal way to export your blog file I suppose.
>>>>>>>
>>>>>>> (let  ((org-export-before-parsing-hook 
>>>>>>> '(org-ref-csl-preprocess-buffer)))
>>>>>>>       (org-open-file  (org-html-export-to-html)))
>>>>>>>
>>>>>>>
>>>>>>> John
>>>>>>>
>>>>>>> -----------------------------------
>>>>>>> Professor John Kitchin (he/him/his)
>>>>>>> Doherty Hall A207F
>>>>>>> Department of Chemical Engineering
>>>>>>> Carnegie Mellon University
>>>>>>> Pittsburgh, PA 15213
>>>>>>> 412-268-7803
>>>>>>> @johnkitchin
>>>>>>> http://kitchingroup.cheme.cmu.edu <http://kitchingroup.cheme.cmu.edu>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Nov 30, 2021 at 12:16 PM András Simonyi
>>>>>>> <andras.simonyi@gmail.com <mailto:andras.simonyi@gmail.com>> wrote:
>>>>>>>
>>>>>>>        Dear Joseph,
>>>>>>>
>>>>>>>        unfortunately, my note on the `citeproc-org` page has become 
>>>>>>> kind of
>>>>>>>        misleading and has to be updated because org-ref didn't switch 
>>>>>>> to the
>>>>>>>        new org-cite citation syntax after all, although this was the 
>>>>>>> plan for
>>>>>>>        a while. I think if you wish to use org-ref 3 then you should 
>>>>>>> simply
>>>>>>>        remove citeproc-org entirely -- if I understand correctly the 
>>>>>>> latest
>>>>>>>        version of org-ref supports the old syntax as well and is 
>>>>>>> capable of
>>>>>>>        CSL-based export (among others) on its own.
>>>>>>>
>>>>>>>        best regards,
>>>>>>>        András
>>>>>>>
>>>>>>>        On Tue, 30 Nov 2021 at 18:00, Joseph Vidal-Rosset
>>>>>>>        <joseph@vidal-rosset.net <mailto:joseph@vidal-rosset.net>> wrote:
>>>>>>>         >
>>>>>>>         >
>>>>>>>         > Dear John, and dear Andras,
>>>>>>>         >
>>>>>>>         > Having updated my org-ref to the last version, I see that the 
>>>>>>> html
>>>>>>>         > export of bibliography does not work any longer for my blog.
>>>>>>>         >
>>>>>>>         > Reading Andras's note here
>>>>>>>         > https://github.com/andras-simonyi/citeproc-org
>>>>>>>        <https://github.com/andras-simonyi/citeproc-org>
>>>>>>>         > I confess that I am lost.
>>>>>>>         >
>>>>>>>         > What have I to do to not waste too much time with this 
>>>>>>> problem?
>>>>>>>         >
>>>>>>>         > Best wishes,
>>>>>>>         >
>>>>>>>         > Jo.
>>>>>>>         >
>>>>>>>
>>>>>>
>>>
>>>
>>> --
>>> Professor John Kitchin
>>> Doherty Hall A207F
>>> Department of Chemical Engineering
>>> Carnegie Mellon University
>>> Pittsburgh, PA 15213
>>> 412-268-7803
>>> @johnkitchin
>>> http://kitchingroup.cheme.cmu.edu
>>> Pronouns: he/him/his
>>>
>
> [2. text/x-emacs-lisp; myblogexporter.el]...


-- 
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu
Pronouns: he/him/his



reply via email to

[Prev in Thread] Current Thread [Next in Thread]