emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <nicholas.dokos@hp.com>
To: Sebastien Vauban <wxhgmqzgwmuf@spammotel.com>
Cc: nicholas.dokos@hp.com, emacs-orgmode@gnu.org
Subject: Re: Controlling pagination on headings in Latex/PDF export?
Date: Thu, 16 Feb 2012 16:02:40 -0500	[thread overview]
Message-ID: <24985.1329426160@alphaville> (raw)
In-Reply-To: Message from "Sebastien Vauban" <wxhgmqzgwmuf@spammotel.com> of "Thu\, 16 Feb 2012 21\:25\:01 +0100." <807gzmr0f6.fsf@somewhere.org>

Sebastien Vauban <wxhgmqzgwmuf@spammotel.com> wrote:

> Jos'h,
> 
> Jos'h Fuller wrote:
> > OK, I'm an idiot. I forgot to put in the ":" after the "#+latex", so it
> > didn't get processed correctly.
> 
> That happens to everybody... No need to be an idiot ;-)
> 
> > However, once I did put it in, it does work to keep the headings together with
> > the table data. However... it also seems to embed the spurious word
> > "afterheading" (in italics) after most (but not all) of the top level headings
> > in the file.
> >
> > So, it totally works to keep the headings and tables together, but the
> > /afterheading/ thing is very strange.
> >
> > I've probably still done something wrong. Any ideas?
> 
> Strange. Maybe, you could send here an ECM (Minimal Complete Example) that
> shows the bug without the \mykeepwithnextpar and shows the afterheading
> problem with it...
> 
> So that one can try to reproduce your problem without loosing too much time,
> in order to help you better and quicker.
> 
> BTW, you should put \mykeepwithnextpar after the heading "DEPARTMENT A", not
> before (as I wrote)...
> 
> >> > I have written such a thing, years ago, first for LaTeX, now for Org:
> >> >
> >> > --8<---------------cut here---------------start------------->8---
> >> > % how not to have a page break with what is following?
> >> > \def\mykeepwithnextpar{\par\nobreak\@afterheading}
> >> > --8<---------------cut here---------------end--------------->8---
> >> >
> >> > and I put whereever it's needed
> >> >
> >> > --8<---------------cut here---------------start------------->8---
> >> > ** Asset
> >> > #+latex: \mykeepwithnextpar{}
> >> > *** DEPARTMENT A
> >> >     | Table | Data | Here. |
> >> >     | Table | Data | Here. |
> >> >     | Table | Data | Here. |
> >> > *** DEPARTMENT B
> >> > --8<---------------cut here---------------end--------------->8---
> 

@ is a character that is reserved for .sty files: it's basically used as
a mechanism to manufacture private names that are not going to conflict
with other names. If you want to use @ in a macro in your .tex file,
then you have to do something like this:

#+LaTeX_HEADER: \makeatletter
#+LaTeX_HEADER: \def\mykeepwithnextpar{\par\nobreak\@afterheading}
#+LaTeX_HEADER: \makeatother

However the best thing is to put the definition in a .sty file:

--8<---------------keeper.sty---------------start------------->8---
\def\mykeepwithnextpar{\par\nobreak\@afterheading}
--8<---------------keeper.sty---------------end--------------->8---

and then use

--8<---------------cut here---------------start------------->8---
#+LaTeX_HEADER: \usepackage{keeper}
--8<---------------cut here---------------end--------------->8---

in your .org file.

However, I find it exceedingly difficult to manufacture an example that
will produce the bad break that the OP reports: LaTeX seems very
reluctant to break after the headline. E.g. in the appended file, I can
vary the number of foo lines from 0 to enough to fill the page and I
cannot split the DEPARTMENT headline from the table. I also tried
various lengths for the table (not very systematically, I must admit)
and I still cannot get the default settings to misbehave. This leads me
to believe that there are those "other" factors that affect badness:
LaTeX thinks that there is something so severely out of whack in the
"other" factors that it is willing to make the supreme sacrifice of
splitting the headline from the table.

So if the OP can provide a misbehaving example, that could help clarify
things.

Nick

PS. Note that the call to \mykeewithnextpar is disabled in the file
    below. If I enable it, I actually get a foo line at the top of the
    second page before the DEPARTMENT headline, so it certainly affects
    the output, but not in a good way.

--8<---------------cut here---------------start------------->8---
#+LaTeX_HEADER: \usepackage{keeper}

* Period 2012-02-06 to 2012-02-12
** Asset
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
foo foo foo foo foo foo foo foo foo foo foo foo foo foofoo foo foo foo foo foo
##+LATEX: \mykeepwithnextpar{}
*** DEPARTMENT
    | Data        | Data | Data | Data |
    |-------------+------+------+------|
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
    |      XXXXXX |    1 |    1 |    0 |
    |      YYYYYY |    5 |    4 |    0 |
--8<---------------cut here---------------end--------------->8---

  reply	other threads:[~2012-02-16 21:03 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-16 17:45 Controlling pagination on headings in Latex/PDF export? Jos'h Fuller
2012-02-16 18:20 ` Nick Dokos
2012-02-16 18:25   ` Jos'h Fuller
2012-02-16 18:58     ` Russell Adams
2012-02-16 19:44     ` Sebastien Vauban
2012-02-16 20:09       ` Jos'h Fuller
2012-02-16 20:16         ` Jos'h Fuller
2012-02-16 20:25           ` Sebastien Vauban
2012-02-16 21:02             ` Nick Dokos [this message]
2012-02-17  8:05               ` Stefan Nobis
2012-02-17  8:13                 ` Ian Barton
2012-02-17  8:55               ` Sebastien Vauban
2012-02-17 16:40                 ` Nick Dokos
2012-02-17 16:50                   ` Sebastien Vauban
2012-02-17 17:19                     ` Nick Dokos
2012-02-17 21:48                       ` Sebastien Vauban
2012-02-16 21:12           ` Nick Dokos
2012-02-16 23:12             ` Jos'h Fuller
2012-02-17  8:50               ` Stefan Nobis
2012-02-17  9:09               ` Stefan Nobis
2012-02-17 16:42                 ` Nick Dokos

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=24985.1329426160@alphaville \
    --to=nicholas.dokos@hp.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=wxhgmqzgwmuf@spammotel.com \
    /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).