From mboxrd@z Thu Jan 1 00:00:00 1970 From: mcg Subject: Re: Help with fixing an org-mode multicolumn implementation - LaTeX special characters Date: Thu, 25 Feb 2016 12:33:21 +0100 Message-ID: <56CEE681.3050807@gmail.com> References: <56C9915D.7080408@gmail.com> <87h9h0hhk6.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58079) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYuAi-0001Jq-Jw for emacs-orgmode@gnu.org; Thu, 25 Feb 2016 06:33:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYuAf-00006r-8N for emacs-orgmode@gnu.org; Thu, 25 Feb 2016 06:33:28 -0500 Received: from mail-wm0-x230.google.com ([2a00:1450:400c:c09::230]:34923) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYuAe-00006a-Qu for emacs-orgmode@gnu.org; Thu, 25 Feb 2016 06:33:25 -0500 Received: by mail-wm0-x230.google.com with SMTP id c200so24097290wme.0 for ; Thu, 25 Feb 2016 03:33:24 -0800 (PST) Received: from [192.168.1.106] ([84.78.15.10]) by smtp.googlemail.com with ESMTPSA id m6sm7505613wje.21.2016.02.25.03.33.22 for (version=TLSv1/SSLv3 cipher=OTHER); Thu, 25 Feb 2016 03:33:23 -0800 (PST) In-Reply-To: <87h9h0hhk6.fsf@gmail.com> 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Hello Aaron, [I noticed I did not answer to the list; just writing again to add it to the list] this fix works perfect! Thank you very much. Never mind about multirow... Michael On 22/02/16 16:48, Aaron Ecay wrote: > Hi mcg, > > 2016ko otsailak 21an, mcg-ek idatzi zuen: >> I found a very nice implementation of LaTeX multicolumn functionality in >> this thread: >> https://lists.gnu.org/archive/html/emacs-orgmode/2013-02/msg00736.html > [...] > >> However, using any of the characters of the left column of my example >> table in the merged <2colc> column, I get: >> "setq: Invalid use of `\' in replacement text" > I think the function should be written (untested): > > (defun my-latex-multicolumn-filter (row backend info) > (when (org-export-derived-backend-p backend 'latex) > (while (string-match "\\(<\\([0-9]+\\)col\\([lrc]\\)?>[[:blank:]]*\\([^&]+\\)\\)" row) > (let ((columns (string-to-number (match-string 2 row))) > (start (match-end 0)) > (contents (replace-regexp-in-string "[[:blank:]]*$" "" (match-string 4 row))) > (algn (or (match-string 3 row) "l"))) > (setq row (replace-match > (format "\\multicolumn{%d}{%s}{%s}" columns algn contents) > nil t row 1)) > (while (and (> columns 1) (string-match "&" row start)) > (setq row (replace-match "" nil nil row)) > (decf columns)))) > row)) > > The change is setting the third argument (‘literal’) to ‘replace-match’ > to t, and deleting an extra backslash in the "\\multicolumn..." string. > >> >> Questions: >> - How to escape the special characters in the left column properly to be >> able to use them? (tried everything I could think of) >> or >> - How to modify the code above so that it allows for such characters. >> >> - If anyone likes the implementation and is more capable than I am, then >> the same for multirow would be really nice... > Unfortunately I think that’s more complicated, since it would necessitate > examining/modifying the whole table in one go, rather than operating one > row at a time. >