emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Pedro Andres Aranda Gutierrez <paaguti@gmail.com>
To: Ihor Radchenko <yantar92@posteo.net>
Cc: Org Mode List <emacs-orgmode@gnu.org>
Subject: Re: PATCH allow explicit style= in #+cite_export: biblatex
Date: Thu, 25 Apr 2024 07:34:56 +0200	[thread overview]
Message-ID: <CAO48Bk-uG-n1tyyP7PrhgQRVpgGmqSDdonQJkHPNqV0=iF9bDA@mail.gmail.com> (raw)
In-Reply-To: <87h6fqn117.fsf@localhost>


[-- Attachment #1.1: Type: text/plain, Size: 2405 bytes --]

Hopefully all remarks addressed..
Best, /PA

On Wed, 24 Apr 2024 at 19:05, Ihor Radchenko <yantar92@posteo.net> wrote:

> Pedro Andres Aranda Gutierrez <paaguti@gmail.com> writes:
>
> > Oops, you are right. My local copy got a bit messed up.
> >
> > Here is a hopefully clean patch. I have tried it out on a local
> test-patch
> > branch of current main and it applied.
>
> Thanks!
> May you also add NEWS entry?
>
> Also, a few comments inline.
>
> > Subject: [PATCH] Allow biblatex package options natively
>
> Please, prefix the first line with oc-biblatex library name.
>
> > lisp/oc-biblatex.el: detect and allow biblatex package options
> >   in key=val,key=val,... format. <style>,key=val,key=val,...
> >   continues to be supported and both formats are distinguished
> > doc/org-manual.org: mention that biblatex options in 'native'
> >   format are also supported.
>
> The changelog entries are not correctly formatted. See
> https://orgmode.org/worg/org-contribute.html#commit-messages
>
> Also, please start sentences from capital letter.
>
> > --- a/doc/org-manual.org
> > +++ b/doc/org-manual.org
> > @@ -17631,7 +17631,9 @@ your LaTeX installation, it won't export to
> anything but PDF.
> >  specifies the =biblatex= export processor with the default =numeric=
> >  style and the =bibtex= backend. Always define the style first and then
> >  the rest of load-time options for the =biblatex=
> > -package. Alternatively, use the ~org-cite-biblatex-options~ variable
> > +package. Alternatively, you can use the ~key=val,key=val~ format for
> > +the options as documented in the =biblatex= package documentation, which
> > +is also used for  the ~org-cite-biblatex-options~ variable
> >  in your Emacs configuration. It will only export to PDF, since it
> >  relies on the ~biblatex~ processor of your LaTeX installation;
>
> It would be nice to add an example demonstrating the described behaviour.
>
> --
> Ihor Radchenko // yantar92,
> Org mode contributor,
> Learn more about Org mode at <https://orgmode.org/>.
> Support Org development at <https://liberapay.com/org-mode>,
> or support my work at <https://liberapay.com/yantar92>
>


-- 
Fragen sind nicht da, um beantwortet zu werden,
Fragen sind da um gestellt zu werden
Georg Kreisler

Headaches with a Juju log:
unit-basic-16: 09:17:36 WARNING juju.worker.uniter.operation we should run
a leader-deposed hook here, but we can't yet

[-- Attachment #1.2: Type: text/html, Size: 3808 bytes --]

[-- Attachment #2: 0001-Allow-native-biblatex-options-in-CITE_EXPORT.patch --]
[-- Type: text/x-patch, Size: 4136 bytes --]

From 2d2610b602b1a0ab073cbdd5e283e89f696a433d Mon Sep 17 00:00:00 2001
From: "Pedro A. Aranda" <paaguti@gmail.com>
Date: Thu, 25 Apr 2024 07:21:45 +0200
Subject: oc-biblatex: Allow native biblatex options in CITE_EXPORT

* lisp/oc-biblatex.el: (org-cite-biblatex--package-options) Add support
for options in the native biblatex package format.
* doc/org-manual.org: Document the added format and add an example
* etc/ORG-NEWS: Announce new format for #+cite_export biblatex options

---
 doc/org-manual.org  | 11 ++++++++---
 etc/ORG-NEWS        |  6 ++++++
 lisp/oc-biblatex.el | 23 +++++++++++++----------
 3 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index a285aa4e5..786248af9 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -17631,9 +17631,14 @@ your LaTeX installation, it won't export to anything but PDF.
 specifies the =biblatex= export processor with the default =numeric=
 style and the =bibtex= backend. Always define the style first and then
 the rest of load-time options for the =biblatex=
-package. Alternatively, use the ~org-cite-biblatex-options~ variable
-in your Emacs configuration. It will only export to PDF, since it
-relies on the ~biblatex~ processor of your LaTeX installation;
+package. Alternatively, you can use the ~key=val,key=val~ format for
+the options as documented in the =biblatex= package documentation:
+
+: #+cite_export: biblatex backend=bibtex,style=numeric
+
+The ~org-cite-biblatex-options~ variable in your Emacs configuration
+uses this format. It will only export to PDF, since it relies on the
+~biblatex~ processor of your LaTeX installation.
 
 ** Bibliography printing
 
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index fc2ff9e00..c4264e152 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -1011,6 +1011,12 @@ The option can be customized either by
    group or
 2. by setting the file local keyword =LATEX_FOOTNOTE_COMMAND=
 
+*** Options for ~#+cite_export: biblatex~ can use the package's option syntax
+
+When using =biblatex= to export bibliographies, you can use the format
+as specified in the =biblatex= package documentation as
+=key=val,key=val,...=
+
 ** New features
 *** ~org-paste-subtree~ now handles =C-u= and =C-u C-u= prefix arguments specially
 
diff --git a/lisp/oc-biblatex.el b/lisp/oc-biblatex.el
index 36c0ee7e5..97f10710c 100644
--- a/lisp/oc-biblatex.el
+++ b/lisp/oc-biblatex.el
@@ -190,20 +190,23 @@ INITIAL is an initial style of comma-separated options, as a string or nil.
 STYLE is the style definition as a string or nil.
 
 Return a string."
-  (let ((options-no-style
-         (and initial
-              (let ((re (rx string-start (or "bibstyle" "citestyle" "style"))))
+  (let* ((options-no-style
+          (and initial
+               (let ((re (rx string-start (or "bibstyle" "citestyle" "style"))))
                 (seq-filter
                  (lambda (option) (not (string-match re option)))
                  (split-string (org-unbracket-string "[" "]" initial)
                                "," t " \t")))))
-        (style-options
-         (cond
-          ((null style) nil)
-          ((not (string-match "/" style)) (list (concat "style=" style)))
-          (t
-           (list (concat "bibstyle=" (substring style nil (match-beginning 0)))
-                 (concat "citestyle=" (substring style (match-end 0))))))))
+         ;; Check whether the string is in key=val,...
+         (biblatex-options-p (and (stringp style) (string-match-p "\\`[^,=]+=[^,]+\\(,[^=]+=[^,]+\\)\\'" style)))
+         (style-options
+          (cond
+           ((null style) nil)
+           ;; assume it is a valif options string for biblatex if it is in key=val,... format
+           ((not (string-match "/" style)) (list (if biblatex-options-p style (concat "style=" style))))
+           (t
+            (list (concat "bibstyle=" (substring style nil (match-beginning 0)))
+                  (concat "citestyle=" (substring style (match-end 0))))))))
     (if (or options-no-style style-options)
         (format "[%s]"
                 (mapconcat #'identity
-- 
2.34.1


  reply	other threads:[~2024-04-25  5:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-13  7:14 PATCH allow explicit style= in #+cite_export: biblatex Pedro Andres Aranda Gutierrez
2024-04-13 14:33 ` Ihor Radchenko
2024-04-14  5:22   ` Pedro Andres Aranda Gutierrez
2024-04-14  5:30     ` Pedro Andres Aranda Gutierrez
2024-04-14  7:16       ` Pedro Andres Aranda Gutierrez
2024-04-17  6:22         ` Pedro Andres Aranda Gutierrez
2024-04-17  7:00           ` Pedro Andres Aranda Gutierrez
2024-04-17 15:45             ` Pedro Andres Aranda Gutierrez
2024-04-21 13:21             ` Ihor Radchenko
2024-04-21 15:38               ` Pedro Andres Aranda Gutierrez
2024-04-22 19:46                 ` Ihor Radchenko
     [not found]                   ` <CAO48Bk_2xjGrN9Qgfe7hpnDnw=do5geKe3XnEA8wJr_dn8SZYg@mail.gmail.com>
     [not found]                     ` <87ttjspaor.fsf@localhost>
     [not found]                       ` <CAO48Bk91MjUAi-AUbhKfKEZGQcJbb1yZWCNoM8U+cObUCH0bVw@mail.gmail.com>
2024-04-24 17:06                         ` Ihor Radchenko
2024-04-25  5:34                           ` Pedro Andres Aranda Gutierrez [this message]
2024-04-26 12:24                             ` Ihor Radchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAO48Bk-uG-n1tyyP7PrhgQRVpgGmqSDdonQJkHPNqV0=iF9bDA@mail.gmail.com' \
    --to=paaguti@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=yantar92@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).