From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emmanuel Charpentier Subject: Re: Problem with references to babel source blocks (possible bug). Date: Fri, 21 Dec 2018 17:29:25 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34184) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gaNgA-0005ON-MM for emacs-orgmode@gnu.org; Fri, 21 Dec 2018 11:29:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gaNg9-0000GS-RW for emacs-orgmode@gnu.org; Fri, 21 Dec 2018 11:29:38 -0500 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]:36131) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gaNg9-0000Fs-Ms for emacs-orgmode@gnu.org; Fri, 21 Dec 2018 11:29:37 -0500 Received: by mail-qt1-x836.google.com with SMTP id t13so6296967qtn.3 for ; Fri, 21 Dec 2018 08:29:37 -0800 (PST) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: John Kitchin Cc: emacs-orgmode Dear John, dear list, Indeed using minted works (at least when using labels. I have not yet tried to use #+NAME:s). See a few remarks below. Le jeu. 20 d=C3=A9c. 2018 =C3=A0 21:47, John Kitchin a =C3=A9crit : > > I guess there is some subtle point missing. For the source blocks I > usually use the minted package, which I think makes code blocks as a > listing float. In your tex file, they are verbatim environments, and you > have \captionof{figure} under them which is presumably why they are > labeled as figures. > > Try adding ("" "minted" nil) to # org-latex-packages-alist: > > and add this to an init file: (setq org-latex-listings 'minted). The mistery starts with the "Src blocks" part of ox-latex (starting line 895 in today's version of this file). In the default case (i. e. when org-latex-listing is not set), this modules exports a verbatim environment ... and a \labelof{figure} label !!! Another part of the mystery is explained in the function org-latex-keyword (starting at line 2218 of today's version of org-latex.el). This function is, among others, in charge of determining the environment of a table of contents for code snippets. This tests org-latex-listings and switches : nil --> listoffigures minted --> listoflistings otherwise --> lstlistoflitings BTW, reading this code also allows to understand why org-mode complies to #+TOC: headings, #+TOC: tables, #+TOC: listings, but NOT #+TOC: figures. I wonder why this choice has been made. Probably because this avoids the need for a latex package for source code listings. hich is indeed a bit of a quandary : * listings is obsolete, unmaintained and has serious issues with anything not strict ASCII (plays fast and loose with TeX catcodes...). * minted needs to write and read intermediate file, which is a bt of a security risk, hence not enabled by default. The choice of figures as a default environment for code snippets has a couple consequences : * Problems at exporting anywhere but latex * No way to have simultaneously a list of figures and list of listings * No list of figures bt by direct use of "\listoffigures" in LaTeX. Shouldn't we consider this a bit of a misdesign ? I dont (yet) seem a way to en hance this. Suggestions ? -- Emmanuel Charpentier > Best wishes, > > Emmanuel Charpentier writes: > > > I wish to be able to reference (i. e cross-references, lists) both some > > tables or figures AND the code producing the objects. > > > > To this effect, I added (distinct) #+caption:s to the source blocks AND > > to the results, adorned with (distinct) org-ref's labels. An example ( > > Min-Ref.org) is included in this Google Drive directory*: > > https://drive.google.com/drive/folders/1T6N_-WwphlnL2mB4f6BgX0u1K5mLnz4= i?usp=3Dsharing > > . > > > > The comparison of this source, the LaTeX code obtained by org-latex > > export-to latex (Min-Ref.tex) and the resultant PDF (Min-Ref exported > > by org-latex-export-to-pdf.pdf) show that the labels attributed to > > source blocks are mislabeled as figures. Furthermore, while the org > > source requests a list of figure, a list of table and a list of > > listings (in that order), the list of figures appears *after* the list > > of tables. > > > > I am tempted to conclude that there is some confusion between figures > > and listings. Further attempts tend to show that the problem may live n > > the core org's code, rather than any specific exporter : > > > > The ODT "native" exporter (org-odt-export-to-odt) is much less capable, > > as shown in Min-Ref exported by org-odt-export-to-odt.odt. > > > > Attempts to export via Pandoc to PDF (Min-Ref exported by org-pandoc- > > export-to-latex-pdf.pdf), ODT (Min-Ref exported by org-pandoc-export- > > to-odt.odt) and DOCX (Min-Ref.docx) show that these exporters may need > > some specific configurations in order to be even vaguely usable. > > > > Previous trials, using #+names: rather than org-ref's labels, gave > > similar failures. If needed, I can reproduce these trials. > > > > So I have a couple questions : > > > > 1) Is the confusion of source blocks and figures a bug, or do I miss a > > subtle point ? > > > > 2) Is there some introductory material to the care and feeding of ox- > > pandoc demonstrating the use of this exporter's options to enable the > > addition of the needed features (figure inclusion, tables of tables / > > figures / listings, etc...) ? The "manual" available as a README is way > > too terse to be usable without diving in the source code and pandoc's > > documentation. > > > > Sincerely, > > > -- > 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