emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Mark Elston <m_elston@comcast.net>
To: emacs-orgmode@gnu.org
Subject: Re: latex enumeration issue
Date: Wed, 03 Feb 2010 18:24:02 -0800	[thread overview]
Message-ID: <4B6A2FC2.5020908@comcast.net> (raw)
In-Reply-To: <4B69DF82.70407@comcast.net>

Carsten,

Never mind.  I had had problems in the past getting the hook function
to work because I was making it harder than it needed to be.  I just
went back to trying my hand at it and got it working pretty easily.
Sigh.

I added a hook function to org-export-preprocess-hook and removed the
blank headers that way.  That solved the problem before it even starts.
I probably don't have to do any perl post-processing at all, now.

Thanks for all the help.

Mark

P.S.  If anyone is interested here is the embarrassingly simple hook
function I came up with.  I show it not because I think anyone else
will find this thing useful but as an example of how simple it really
is to write this kind of thing.

;;; Export Hooks
(defun mee-delete-empty-org-headers ()
   (while (re-search-forward "^[*]+   [ ]+:[a-zA-Z0-9]+:$" nil t)
     (progn
       (beginning-of-line)
       (kill-line 0))))

(add-hook 'org-export-preprocess-hook
           'mee-delete-empty-org-headers)



On 2/3/2010 12:41 PM, Mark Elston wrote:
> Hi Carsten,
>
> Thanks for the reply. My responses are below:
>
> On 2/3/2010 2:34 AM, Carsten Dominik wrote:
>> Hi Mark,
>>
>> On Feb 2, 2010, at 11:08 PM, Mark Elston wrote:
>>
>>> A year ago Flavio de Souza asked a question about latex enumerations
>>> that is similar to a problem I now have. The answer given then was a
>>> workaround that doesn't apply in my case.
>>>
>>> This stems from my project of using a single file to maintain source
>>> for generating my class notes *and* student handouts for my classes.
>>> This allows me to take advantage of the common outline and common
>>> text while specifying text that should go into only one or the other
>>> document.
>>>
>>> I manage to do this by something like:
>>>
>>> * Common heading
>>>
>>> Some common text
>>>
>>> ** A common subheading
>>>
>>> More common text
>>>
>>> *** :handouts:
>>> Something for handouts only
>>>
>>> *** :both:
>>> More common text
>>>
>>> *** :notes:
>>> My class notes text
>>>
>>> *** :both:
>>> More common text
>>>
>>>
>>> I have a makefile which creates a temporary .org file by
>>> prepending a specific header on this file for each type of
>>> output (handouts or notes), exporting to a latex file, running
>>> a perl script to remove any (sub)+sections with just the
>>> tags in them, and running pdflatex to generate the output.
>>>
>>> So far, so good.
>>>
>>> However, I ran into a problem with enumerations. Sometimes I
>>> have enumerations in my original org file which are separated by
>>> the 'empty' sectioning commands. This ends the enumeration and
>>> the next enumerated item starts a new one. The result is a set
>>> of enumerations with a single element in it. I get something
>>> like:
>>>
>>> 1. Blah
>>>
>>> handout-specific text
>>>
>>> 1. More Blah
>>>
>>> etc. These should really have been 1, 2, etc.
>>
>>
>> I don't understand. Why is the text "handout-specific text" still there?
>> Do you need it between the items?
>
> Yes (see below). I have in each of these items something I want as part
> of the handouts and some additional info I want to include for myself.
>
>  > Do you want to make it part of the
>> item (indentation would solve this).
>
> It will always be a part of the item, otherwise I would have made it a
> footnote or left it to after the enumeration.
>
> Unfortunately, indentation doesn't solve this. My example above was a
> little shy on details, sorry.
>
> If I have a file with:
>
> ------------------------------------
> #+EXPORT_EXCLUDE_TAGS: notes
>
> * Common Heading
> Common Text
>
> 1) Blah
>
> ** :handouts:
> handout-specific text
> ** :notes:
> note-specific text
> ** :both:
>
> 2) More Blah
>
> ** :handouts:
> handout-specific text
> ** :notes:
> note-specific text
> ** :both:
>
> 3) Even more...
> ------------------------------------
>
> After I export to latex and post process with my perl script I
> have the following for the body of my document:
>
> ------------------------------------
>
> \section{Common Heading}
> \label{sec-1}
>
> Common Text
>
> \begin{enumerate}
> \item Blah
> \end{enumerate}
>
> handout-specific text
>
> \begin{enumerate}
> \item More Blah
> \end{enumerate}
>
> handout-specific text
>
> \begin{enumerate}
> \item Even more\ldots{}
> \end{enumerate}
> ------------------------------------
>
> This is because the 'empty' placeholder headings (tags-only)
> interrupt the enumeration processing for each item, effectively
> ending it and causing the insertion of the \end{enumeration}.
> So each item is in it's own enumeration and the number restarts
> from 1 with each item.
>
>>
>>>
>>> The only workaround I have so far is to make all these items lists
>>> instead of enumerations. This works OK but they would make much more
>>> sense as enumerations.
>>
>>
>> How does this help?
>>
>
> It eliminates the numbers and uses only list marks instead. That way
> I don't have to worry about incorrect numbering of enumerations.
> Unfortunately, the text between items is still not indented properly
> since it appears outside the list environment.
>
> It is not ideal but it is something I can live with if I have to.
>
> Mark
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>

  reply	other threads:[~2010-02-04  2:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-02 22:08 latex enumeration issue Mark Elston
2010-02-03 10:34 ` Carsten Dominik
2010-02-03 20:41   ` Mark Elston
2010-02-04  2:24     ` Mark Elston [this message]
2010-02-04  3:12       ` Mark Elston
2010-02-04  4:28         ` Dan Davison
2010-02-04  7:00         ` Mark Elston
2010-02-04 10:05       ` Eric S Fraga
2010-02-06  8:18         ` Daniel Martins
2010-02-06 19:06           ` Mark Elston

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=4B6A2FC2.5020908@comcast.net \
    --to=m_elston@comcast.net \
    --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).