Nicolas Goaziou <n.goaz...@gmail.com> writes: > Hello, > > Feng Shu <tuma...@gmail.com> writes: > >> Eric Schulte <schulte.e...@gmail.com> writes: >> >>> When exporting multiple sequential citations e.g., cite:foo cite:bar >>> etc... I would like to see something like the following (latex used for >>> this example) "\cite{foo, bar}", but instead I'm getting "\cite{foo} >>> \cite{bar}", which leads to poorly formed PDFs (a similar thing happens >>> for HTML export). >> >> May be you should use \cite{foo, bar} directly in org file. > > That was, indeed, the original way to handle citations in the former > org-export-bibtex.el. It is still supported in both LaTeX, obviously, > and HTML (which will split the above among two anchors). > > "cite" link support was added later, and is lacking in this area. > >>> My question is how best to fix this, should I write a filter function, >>> or does the export engine already have processes in place to handle >>> these sorts of export context issues? > > At the user level, a filter is definitely the way to go. >
Thanks, the following seems to be working. Perhaps the filter function should be added to ox-bibtex.el? (defun org-bibtex-group-citations (text backend info) "Convert begin/end{verbatim} to begin/end{Verbatim}. Allows use of the fancyvrb latex package." (with-temp-buffer (insert text) (goto-char (point-min)) (cond ((org-export-derived-backend-p backend 'latex) (while (re-search-forward "\\\\cite{\\([^[:space:]\n\r]+\\)}[[:space:]\n\r]*\\\\cite{" nil t) (replace-match "\\\\cite{\\1,") (goto-char (point-min)))) ((org-export-derived-backend-p backend 'html) (while (re-search-forward "\\(#[[:alnum:]]+\">[0-9]+<\/a>\\)\\][[:space:]\n\r]*\\[\\(<a href=\"#[[:alnum:]]+\">[0-9]+<\/a>\\)" nil t) (replace-match "\\1,\\2") (goto-char (point-min))))) (buffer-string))) (add-to-list 'org-export-filter-final-output-functions 'org-bibtex-group-citations) Cheers, > > Though, it is an interesting feature to implement in ox-bibtex.el. One > idea would be to write another parse-tree filter function which would > change cite links into \cite{...} commands and consecutive cite links > into \cite{..., ...} commands. > > This would also allow us to get rid of both `org-html-link' and > `org-latex-link' advices, as no more cite link would be left in the > parse tree anyway. > > What do you think? > > > Regards, -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D