* lisp/org-latex.el (org-export-latex-special-chars): Fix regexp for `single' special characters and ellipsis.
Repeated special characters are exported differently depending on their position in the buffer. A "&&" string at the start of a line is exported as "&\&" whereas in the middle of a line you get "\&\&". The former is incorrect. Fix this by matching the beginning of a line before a character. While we're at it, amalgamate the regexps for the different special characters. --- Suvayu Ali wrote: > Hi Orgers, > I wanted to insert comments in the exported tex file for latex export. > Is there an standard way to do that? I found normal '%text' gets > exported as '\%text'. However I can export comments by putting > '%%text', it gets exported as '%\%text'. Although this feels like a potentially useful feature, I believe it is a bug. Doubled special characters are exported differently depending on where they are on a line: && foo => &\& foo whereas foo && => foo \&\& This is because the regexp for finding special characters prefers matching a character over the start of a line \\(.\\|^\\)\\(&\\) will set (match-string 1) to & and (match-string 2) to & if && occurs at the start of a line, although the intention is that (match-string 1) should be the empty line-start string and (match-string 2) the first ampersand. We can fix this by changing the regexp to \\(^\\|.\\)\\(&\\) as in this patch. Cheers, Lawrence lisp/org-latex.el | 8 +------- 1 files changed, 1 insertions(+), 7 deletions(-) diff --git a/lisp/org-latex.el b/lisp/org-latex.el index 605795c..30f7b4a 100644 --- a/lisp/org-latex.el +++ b/lisp/org-latex.el @@ -1684,13 +1684,7 @@ See the `org-export-latex.el' code for a complete conversion table." "\\(\\(\\\\?\\$\\)\\)" "\\([a-zA-Z0-9()]+\\|[ \t\n]\\|\\b\\|\\\\\\)\\(_\\|\\^\\)\\({[^{}]+}\\|[a-zA-Z0-9]+\\|[ \t\n]\\|[:punct:]\\|)\\|{[a-zA-Z0-9]+}\\|([a-zA-Z0-9]+)\\)" "\\(.\\|^\\)\\(\\\\\\)\\([ \t\n]\\|\\([&#%{}\"]\\|[a-zA-Z][a-zA-Z0-9]*\\)\\)" - "\\(.\\|^\\)\\(&\\)" - "\\(.\\|^\\)\\(#\\)" - "\\(.\\|^\\)\\(%\\)" - "\\(.\\|^\\)\\({\\)" - "\\(.\\|^\\)\\(}\\)" - "\\(.\\|^\\)\\(~\\)" - "\\(.\\|^\\)\\(\\.\\.\\.\\)" + "\\(^\\|.\\)\\([&#%{}~]\\|\\.\\.\\.\\)" ;; (?\< . "\\textless{}") ;; (?\> . "\\textgreater{}") ))) -- 1.7.4.rc2.18.gb20e9