emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: [bug?, org-element] latex-environment delimiters must be at BOL
Date: Fri, 18 Jul 2014 17:49:49 +0200	[thread overview]
Message-ID: <87vbqu1xb6.fsf@gmx.us> (raw)
In-Reply-To: <87iomxjvyv.fsf@nicolasgoaziou.fr> (Nicolas Goaziou's message of "Wed, 16 Jul 2014 15:04:40 +0200")

Hi Nicolas,

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Rasmus <rasmus@gmx.us> writes:
>
>> Looking at org-element-latex-environment-parser LaTeX environments are
>> recognized as "[ \t]*\\\\begin{\\([A-Za-z0-9]+\\*?\\)}" (for start)
>> and "^[ \t]*\\\\end{%s}[ \t]*$" (for the end).
>>
>> However, for e.g. small equations one might want to write
>>
>> (*)         \begin{equation} PLACEHOLDER \end{equation},
>>
>> i.e. in one line.  This fails to be recognized as the latter regexp is
>> not satisfied.  For code generated by humans this is not an issue.
>> However, e.g. SymPy generates code in the (*) format.  Prefixing (*)
>> with "#+LATEX:" will prevent ox-html from recognizing it.
>>
>> Should org-element try to catch one-line environments as the one
>> above?  Or is it "a can of worms"?
>
> I think allowing them is possible, as long as \end{equation} ends the
> last line (with trailing whitespaces tolerated).
>
> I assume that, for simplicity, PLACEHOLDER could be longer than one
> line, too.
>
> If Bastien agrees and if you want to provide a patch, please be sure to
> include tests in test-org-element.el, and appropriate changes to "Org
> Syntax" document. The manual may need to be updated, too.

Thanks for your comments.

I changed a couple of things, and org-element now recognizes what I
wanted it to recognize.  Next step: don't break anything.

To test for immediate breakages I do:
   1. Install latest version of org (beta_8.3-15-g224105) on my /usr
      folder and start emacs -q.  Run tests as specified in
      testing/readme.  I get 12 failed (1 unexpected).
   2. Load my modified org-element.el file and rerun tests.
      The only new fail is this one, that is to be expected to fail.

          (should-not
           (eq 'latex-environment
               (org-test-with-temp-text "\\begin{env}{arg} something\nvalue\n\\end{env}"
                 (org-element-type (org-element-at-point)))))

Hence, my question is: Can I now assume that my modification are now
somewhat safe wrt. the current Org syntax?

I have a case that I worry a bit about, namely broken LaTeX code with
mismatching no. of begin/end tags:

Consider:

    #+begin_src org 
      \begin{equation} x^2_3
      \begin{equation} x^2_3 \end{equation}
    #+end_src

With my patch, this will produce (*):

    #+begin_src latex
    \begin{equation} x^2_3
    \begin{equation} x^2_3 \end{equation}
    #+end_src latex

Before it would produce

    #+begin_src latex
    \begin{equation} x\(^{\text{2}}_{\text{3}}\)
    \begin{equation} x\(^{\text{2}}_{\text{3}}\) \end{equation}
    #+end_src latex

Both will break when compiled.  With some more newlines in the
Org-code, I can get this without my patches

   #+begin_src latex
   \begin{equation} 
    x^2_3
    \begin{equation} 
    x^2_3
    \end{equation}
    #+end_src latex
 
which is identical to (*) to a LaTeX compiler.

Should I worry about such changes to behavior?


I will write some tests and review the two documents you mention and
submit a patch ASAP.

Cheers,
Rasmus

-- 
I hear there's rumors on the, uh, Internets. . .

  reply	other threads:[~2014-07-18 15:50 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-10 11:54 [bug?, org-element] latex-environment delimiters must be at BOL Rasmus
2014-07-16 13:04 ` Nicolas Goaziou
2014-07-18 15:49   ` Rasmus [this message]
2014-07-20 17:49     ` Nicolas Goaziou
2014-07-21  9:29       ` Rasmus
2014-07-22  7:54         ` Nicolas Goaziou
2014-07-22  9:08           ` Rasmus
2014-07-22 10:03             ` Nicolas Goaziou
2014-07-22 13:28               ` Rasmus
2014-07-23  8:29                 ` Nicolas Goaziou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87vbqu1xb6.fsf@gmx.us \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).