Hi again, as a follow up: I can't believe how far behind my org version was (I suppose I was running the built-in version). Now that I have upgraded to 9.0.3, your code works like a charm. Thanks again, Sébastien
2017-01-21 6:30 GMT+01:00 Sébastien Brisard <sebastien.bris...@m4x.org>: > Hi Chuck, > thank you *very much* for this answer! > I was indeed wondering what was the entry point into the org source > for this. `org-babel-ref-resolve' is where I should start. I'm still > relatively new to emacs-lisp and do not know how to instrument the > code in order to trace all calls (which would probably have solved my > problem). > Anyway, with my version (8.2.10) of org-mode, I had to redefine > `org-babel-read' rather than `org-babel--string-to-number'. Will > update and see where it goes. > > In any case, I will consider this problem as solved! Thanks again, > Sébastien > > 2017-01-20 4:49 GMT+01:00 Charles C. Berry <ccbe...@ucsd.edu>: >> On Thu, 19 Jan 2017, Sébastien Brisard wrote: >> >>> Thanks Charles for this answer. Let me state the problem more clearly. >>> Number-like cells *are* converted to numbers (as best illustrated by >>> the example below (see the use of numberp), which might incur accuracy >>> loss (see below, the first row has a lot of significant digits). >>> I am not interested in the number representation of these cells, only >>> the string matters for my application. Due to this accuracy loss, >>> converting back the number to a string is not an option for me... >>> >>> Any ideas? Thanks! >> >> >> The usual resolution of table references will eventually use >> `org-babel--string-to-number' to do what its name suggests. >> >> You can write an elisp function to handle references as you wish and call >> them from :var arguments. >> >> A hackish way to do this for your case is to quash the action of >> `org-babel--string-to-number': >> >> #+BEGIN_SRC emacs-lisp >> (defun get-ref-strings-as-is (ref) >> (cl-letf (((symbol-function 'org-babel--string-to-number) >> (lambda (x) x))) >> (org-babel-ref-resolve ref))) >> #+END_SRC >> >> #+header: :var table=(get-ref-strings-as-is "table20170119") #+BEGIN_SRC >> emacs-lisp :colnames yes :results pp >> table >> #+END_SRC >> >> #+RESULTS: >> : (("row1" "12345678901234567890") >> : ("row2" "a") >> : ("row3" "b") >> : ("row4" "c")) >> >> You can look at `org-babel-ref-resolve' to get some ideas on how to do this >> more artfully. >> >>> Sébastien >>> >>> ===== begin example ===== >>> #+NAME: table20170119 >>> | col1 | col2 | >>> |------+----------------------| >>> | row1 | 12345678901234567890 | >>> | row2 | a | >>> | row3 | b | >>> | row4 | c | >>> >> >> HTH, >> >> Chuck