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