2014-06-26 15:17 GMT+02:00 Nicolas Goaziou : > Thibaut Verron writes: > > >> Now, are these "limitations of Org" really preventing it from exporting > a > >> string verbatim? That would seem like the most logical default in this > >> situation, wouldn't it? > > I disagree in the general case. The most logical default for Org is to > treat contents as plain text and ensure that the export conforms to what > appears in the buffer. As a bonus, it can leave LaTeX code as-is when it > recognizes some, which depends on Org's understanding of LaTeX syntax > (hence the limitations I'm talking about). > Of course, I did not mean it for org-mode buffers! ;) > > Now, in the context of a LaTeX buffer using orgtbl minor mode, it could > make sense in some situations to treat cell contents verbatim. I don't > think it should be the default, but there could be an option for that. > Anyway, there's a solution, see below. > > > Apparently not, the following quick attempt seems to be doing the job > fine > > enough: > > > > (defun tv/orgtbl-to-latex-verbatim (table params) > > (flet ((org-export-string-as > > (string backend &optional b e) > > string)) > > (orgtbl-to-latex table params))) > > > > However, it is extra dirty, and ignoring so many parameters in a function > > is probably not safe. :-) > > I think defining your own translator function is the way to go. For > example, the following (untested) could work: > > (defun my-orgtbl-to-latex-verbatim (table params) > (let* ((alignment (mapconcat (lambda (x) (if x "r" "l")) > org-table-last-alignment "")) > (params2 > (list > :tstart (concat "\\begin{tabular}{" alignment "}") > :tend "\\end{tabular}" > :lstart "" :lend " \\\\" :sep " & " > :efmt "%s\\,(%s)" :hline "\\hline"))) > (orgtbl-to-generic table (org-combine-plists params2 params)))) > > Indeed it does work. But, unless I am mistaken, this is exactly the definition given here: http://orgmode.org/manual/Translator-functions.html#Translator-functions and so I was not wrong, this used to work as I expected. I suspect that this change (regression?) will cause problems to a lot of other users when they will upgrade their org to the current version. Would changing the last lines of `orgtbl-to-latex` to something like this work as a long-term solution? (require 'ox-latex) (let* ((*orgtbl-verbatim* (plist-get params :verbatim)) (backend (if *orgtbl-verbatim* nil 'latex))) (orgtbl-to-generic table (org-combine-plists params2 params) backend)))) Thanks for your time, Thibaut verron