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. -- Aaron Ecay