From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:8:6d80::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id GOfDFLCKgGCzNAAAgWs5BA (envelope-from ) for ; Wed, 21 Apr 2021 22:27:28 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id EBF0ELCKgGAsJwAA1q6Kng (envelope-from ) for ; Wed, 21 Apr 2021 20:27:28 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 9917524F26 for ; Wed, 21 Apr 2021 22:27:27 +0200 (CEST) Received: from localhost ([::1]:59802 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lZJRV-00026L-8k for larch@yhetil.org; Wed, 21 Apr 2021 16:27:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55972) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZJQw-00026F-0T for emacs-orgmode@gnu.org; Wed, 21 Apr 2021 16:26:50 -0400 Received: from mail-qv1-xf2d.google.com ([2607:f8b0:4864:20::f2d]:35412) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lZJQt-0000jF-I7 for emacs-orgmode@gnu.org; Wed, 21 Apr 2021 16:26:49 -0400 Received: by mail-qv1-xf2d.google.com with SMTP id x27so20993457qvd.2 for ; Wed, 21 Apr 2021 13:26:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:references:user-agent:from:to:cc:subject:in-reply-to :message-id:date:mime-version; bh=fX7xM+j8gmGrTVFePBAPY0FvQHerOLv3tMgB5dKQu4c=; b=nFwUrFVUSLEhYjvUJOMl9sibsdnBqek0rgCHzEn4cSPA8Ij5KVkK+0V7d0rR7oClQ8 E9FBWk8JjuF260dJCNyYC3H0gNM99wn+HMZVcvZN9VKPFDDlwzAWwatd0y0h/0WoSMk7 2iW+APKPtVSGDPHI/TrX1oTv9Pkxq6KzEKWDNPeeBdhrW4lusFtruQSi46FVEufDNQ71 dqxfPwWxoGDhcMFgAbAYGxymfLwbthq8ooM5xYYcJi5O1la5+KwvL9HkLbKooG3ihkDW tYuDCLew5VSVp4Meddrkez4rOafVtWkxQThtO1tSFViRBWeOZoJ4mx0OiAxXOJKOOwIA DWLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:references:user-agent:from:to:cc:subject :in-reply-to:message-id:date:mime-version; bh=fX7xM+j8gmGrTVFePBAPY0FvQHerOLv3tMgB5dKQu4c=; b=TBfp1mO0hLQaLFViTP3K3tThG4ugvphaUbovilrsHJXpZPpu/Ln1Pq1Kc6cdKkxslr tr22BU7lj2/A4eiwaEoeo7F2xFBbfNLSd9NpT9MJDhhfW7t1JWJuBTH4ZHjunMhUYYJ9 vdSMPE7C8MsnCveiarSLhgaK64o2l/cA8mRAX5LkKSK6EF0fvODWx0SloItahRmoEMVK FcaAGaSTFvSMMD+7TZKzoWfSUwKnO9nVmE7QB43eOrnjA/D769WDSKkF53ZhUNnVTXpm 52mhCCpxXUYSnxxwvg57LtykCC8KFdsCnPJshVx/dwsNw024gpHf+G4d65V5Xm1JtJ36 disw== X-Gm-Message-State: AOAM532rtVV2cfgTH2lURyzObfCELZCRrxjhQgSng17hCD2zTg/fWBVk xMBDi1jtrNuyY6QnyvFDMLaed5e+kYIbog== X-Google-Smtp-Source: ABdhPJxBi0Lq+Znv/qF239FKU8hpmLK7oy5/p9HbkxTP1nbG5EIy86nuTypYqwn7HiyFSsCHJkg6Ig== X-Received: by 2002:a0c:a0c6:: with SMTP id c64mr33883126qva.57.1619036804578; Wed, 21 Apr 2021 13:26:44 -0700 (PDT) Received: from Johns-iMac.local ([2601:547:901:1830:e967:6cdb:7932:f333]) by smtp.gmail.com with ESMTPSA id l71sm441272qke.27.2021.04.21.13.26.43 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 21 Apr 2021 13:26:44 -0700 (PDT) References: <874ktu8gr9.fsf@nicolasgoaziou.fr> <87mu5xpm4x.fsf@gnu.org> <87img81ad7.fsf@gnu.org> <20210324182751.GA8721@atlantis> <87czuzprmh.fsf@nicolasgoaziou.fr> <87sg3neo0k.fsf@nicolasgoaziou.fr> User-agent: mu4e 1.4.15; emacs 27.1 From: John Kitchin To: Nicolas Goaziou Subject: Re: wip-cite status question and feedback In-reply-to: <87sg3neo0k.fsf@nicolasgoaziou.fr> Message-ID: Date: Wed, 21 Apr 2021 16:26:42 -0400 MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::f2d; envelope-from=johnrkitchin@gmail.com; helo=mail-qv1-xf2d.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org, Bruce D'Arcus , =?utf-8?Q?Andr=C3=A1s?= Simonyi Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1619036847; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=fX7xM+j8gmGrTVFePBAPY0FvQHerOLv3tMgB5dKQu4c=; b=D8XwDBMQ3JaTtqnW2L/hU/fiqvR7EMaEt2hgH/lFngCKHu6agpNAdH/1xajyYBGl8H+dd3 r0R/MIqnQAjT1pvP5+d6ttoiuZhnuYpncSMBQcCvsWuL3LYs7pQEEZ3S2oQxAakaoB9j6+ Wc6Bg0XDUeKul2weEIC4uK7gbsKaPhLxI2qRuSKS4bpqWTKouZjSHJDyEx/3D4pcG0GRdX KZq9oU+Sk3ZEBUxez5sOuOUwf6mlEd6X3O+u0EgIYRGE0ulQCSvFNH1I8Jq5QxEWVw7xQb ZN/v9j1kyNVMP3ztfwMTIf1Nc3y+nW08IJgOOp9DTPxph2lb6NsQWKfbSDFy7Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1619036847; a=rsa-sha256; cv=none; b=gX+/UCNPz6QUluS0rcEGEbVHpoI4wkkU1Fplpw7VIlgxYlsAmab5JT6pErXP/1n/FAid4k LNh+r+U9hrcJv92f1dPNGGdo4qfjHTUyekbhvQilQxRrS49DwotCB9jwx+Tm+OP2f8tj5t ZztR6BvBskZcO0SLrXCnyBRwBAYFJrJTziG3zR6AoUyiAEiDD6NhPyX8/M0cc//KHvYRf4 0dhgUcabt6AEa/UKNwfAO0RdwPYXx34wIAk3rbeM664UjiIm7hZlXj/Aoqyi/IQYndoTks 0LN6o0imNuV9fjWCp5qBWd8cRASxlbtp37vPxuHoXpUyy8p1yOtXIM8zT7PpFw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=nFwUrFVU; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Spam-Score: 0.16 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=nFwUrFVU; dmarc=fail reason="SPF not aligned (relaxed)" header.from=andrew.cmu.edu (policy=none); spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Queue-Id: 9917524F26 X-Spam-Score: 0.16 X-Migadu-Scanner: scn0.migadu.com X-TUID: +gM0b8vMSnLV >>> - "fontification" is meant to give full access to face selection, what >>> is really displayed, additional keymaps, all using a single >>> function. >> >>> At the moment, I have no idea about what arguments would be useful. >>> I think John Kitchin gave ideas about this already on this ML. >>> I have to re-read his posts on the subject. In any case, feedback >>> welcome. For fontification in an org-file, what I currently find helpful in org-ref: 1. the citations have a face that makes them stand out (it is usually a green color, unless the key is not found in the bibfiles, and then it is red). I have a way to turn that off though, because it can cause performance issues in large documents with large bibliographies. 2. There is a tooltip that shows a lightly formatted reference. The tooltip is fairly crude, and not related to any particular bibliography style. It would be great if it did, but so far the effort to achieve that has been too high. With an integrated citation processor it might be better, but I am skeptical they will ever look quite like they would in a latex export, especially if you use latex code in your bibtex files. This tooltip only needs to be good enough in my opinion to tell what the key is representing at that point. 3. I like having keymaps on the citations. The most common use for me is to press S-up to sort a sequence of citations by year, followed by S-left and S-right to transpose citations in a sequence, followed by M-left/right to navigate across citations. 4. I tend to have my follow function launch a hydra menu, which provides many action choices. I think this is easier than trying to remember a lot of different commands that also work at the citation at point. I started this with helm, then ivy and now hydra. I can't tell if a new generation of approaches like selectrum, or the package bibtex-actions will eventually replace these. This isn't quite fontification, but since you can put keymaps on with fontification, it isn't fully indpendent either. 5. I mostly think the citations should be displayed as plain text, i.e. not replaced by a numbered overlay, or equivalent. I could see hiding the [], but also guess that would be more confusing than beneficial. >> >> I'm thinking about implementing a "fontification" solution which would >> use citeproc-el with a standard style to produce nice preview-like >> representations of the citations in the buffer. This would require >> basically the same pieces of information as citation export I think, >> although it might be made strictly local, working only with the >> single citation object plus the bibliography information. > > OK. Citation object and list of bibliography files as arguments are > a starting point. > >>> A citation processor does not need to provide integration in all these >>> areas. Users may be able to mix and match processors. This is another >>> (minor) point which is yet to be designed. How is a user supposed to >>> select a processor for each integration area? It could be done through >>> three variables, e.g., >>> >>> (setq org-cite-display-processor 'org-ref) >>> (setq org-cite-export-processor 'citeproc) >>> (setq org-cite-follow-processor 'default) >>> >>> I think it is unlikely for a user to locally select "display" and >>> "follow" processors. However, we need a way to use a local export >>> processor for a given document. I may need to introduce >>> a #+citation_processor keyword during export. Any other idea? >> >> All of these solutions seem to be good starting points. As for >> setting the "display" and "follow" processors locally, this leads to a >> question which probably has to be addressed at a certain point: that >> of bibliography formats. The Emacs world is currently rather BibTeX >> centered, but biblatex is an important (and rather different) >> alternative, and there is CSL as well which I expect to become more >> and more relevant (it's citeproc-el's native format). Moreover, these >> formats have some variants, e.g., for BibTeX there is also org-bibtex, >> for CSL there is CSL-JSON and a CSL-YAML etc. If different "display" >> and "follow" processors will be able to handle different formats then >> the users might want to change those settings locally as well, based >> on the bibliography format, but I'm not sure what kind of >> infrastructure would be the best way of supporting this. (E.g., >> registering format support information about the processors and >> choosing on this basis?) > > I don't have an idea about it either. This is not a blocker, tho. We can > revisit it later, once we have "something" working. This suggests that there is an API of required functions that have a defined interface for these. That is sort of what org-ref does to support helm, and a few ivy backends for completion. It is mostly done by defining some variables that point to functions in those backend libraries, and the variables are funcalled in a core library. for example in the follow processor there would be a function that takes a key, and some bibliography source information, and it would be responsible for doing what you mean by follow. export is trickier, but same idea. > > Thanks for your feedback. > > Regards, -- 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