emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Chris Gray <chrismgray@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: markup in environments in latex export
Date: Sun, 19 Apr 2009 21:55:20 +0200	[thread overview]
Message-ID: <87r5zoo1uf.fsf@gmail.com> (raw)
In-Reply-To: 550FAA9A-10B7-4DED-A712-77D381F68748@gmail.com

Hi Carsten,

I took up your challenge and made a patch that does what I want.  It
does what I suggested in my previous email in that it allows one to
put #+begin_foo and #+end_foo tags in the body of an org file.  These
tags allow you to change the environment of the text between them.
What that means is left up to the exporter.  For example, in LaTeX,
the tags are expanded to \begin{foo} and \end{foo}, whereas in HTML, I
have the tags being expanded to <div class="foo"> and </div>.  (I am
not sure if that is the right thing to do in HTML...)  The text
between the tags is not protected, and thus it is interpreted for
markup just as the rest of the file.

I have left the old cases in place, so blockquote, verse, and center
should still have the same behaviour as before.  The only behaviour
that changes is with #+begin_quote in HTML.  This no longer generates
a blockquote, but a <div class="quote">.  It would be easy to revert
this to the old behaviour if many people were using #+begin_quote with
HTML export.

I have put the patches up in a github repository (basically because I
wanted to play with github), so you should be able to pull them from
the general-cookies branch of git://github.com/chrismgray/org-mode.git

Cheers,
Chris

Carsten Dominik wrote:

> Hi Chris,

> no, this is really by design the way it is.  Org-mode has its own
> markup.  As a bonus to people used to LaTeX, it allows certain
> LaTeX constructs to be intermingled into the file.  For LaTeX
> export, it will export these *literally*, the entire construct.
> For HTML export, you can arrange for these snippets to be
> processed by LaTeX as well and then included as images,
> this is useful for formulas and some other constructs.

> Here is a way to fool it:

> \nop{}\begin{center}

> - /a/ this is a
> - /b/ this is b

> \begin{itemize}
> \item \emph{a} this is a
> \item \emph{b} this is b
> \end{itemize}

> \nop{}\end{center}

> - /a/ this is a
> - /b/ this is b


> Why does it fool it?  Because it recognized full environments to be
> included
> by \begin ... \end, wit these macros at the beginning of the line.

> If I were to allow what you propose, it would quickly become hard to
> know
> what should be LaTeX and what not.  I think.

> Feel free to try to make a patch that will convince me of the opposite.

> - Carsten



> On Apr 16, 2009, at 3:09 PM, Chris Gray wrote:

>> Carsten Dominik wrote:

>>> Hi Chris,

>>> you can't have the cake and eat it.

>>> if you insert a LaTeX environment, the entire environment
>>> will be protected.  After all, you rely on this quoting with your
>>> itemize environment!

>> Hi Carsten,

>> I don't really understand this.  I can see it for things like the
>> verbatim environment, but that might be a special case.

>>> However, you can do this:

>>> #+begin_center

>> I should have chosen a different example I suppose.  What I am really
>> using, rather than center, are the theorem, lemma, and proof
>> environments.  I thought it would be safer for my example to use an
>> environment that is included by default in LaTeX.  Unfortunately,
>> center
>> is already a special case in org.  But I tried #+begin_proof and that
>> did not work.

>>> This works by the protection being done first, and only
>>> then #+begin_center is turned into \begin{center}

>> Perhaps that could be generalized so that #+begin_foo means "do the
>> regular org parsing and then turn on \begin{foo}"?  Other exporters
>> would be free to ignore these commands.

>> I really like doing my work in org mode, and I can certainly convert
>> my
>> markup commands to regular LaTeX, but doing that really seems like a
>> second-best solution.

>> Cheers,
>> Chris



>> _______________________________________________
>> Emacs-orgmode mailing list
>> Remember: use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode



> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2009-04-19 19:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-16  8:49 markup in environments in latex export Chris Gray
2009-04-16 12:21 ` Carsten Dominik
2009-04-16 13:09   ` Chris Gray
2009-04-16 20:47     ` Carsten Dominik
2009-04-19 19:55       ` Chris Gray [this message]
2009-04-20  6:04         ` Carsten Dominik
2009-05-02  7:27         ` Carsten Dominik
2009-05-04  7:52           ` Chris Gray
2009-05-04 14:28             ` Carsten Dominik
2009-05-06 14:01               ` Chris Gray

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=87r5zoo1uf.fsf@gmail.com \
    --to=chrismgray@gmail.com \
    --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).