emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: James Harkins <jamshark70@gmail.com>
To: Nicolas Goaziou <n.goaziou@gmail.com>
Cc: Emacs-orgmode@gnu.org
Subject: Re: Beamer title is (incorrectly?) outside of a frame
Date: Sat, 11 Jan 2014 14:39:32 +0800	[thread overview]
Message-ID: <CAFniQ7XW2rYJSj0uswE=BfX9+m+TM9_SKiyET1pyLbpNbhMXQQ@mail.gmail.com> (raw)
In-Reply-To: <bc14736f-f98c-4112-8f54-b35dcb5416a9@dewdrop-world.net>


[-- Attachment #1.1: Type: text/plain, Size: 1165 bytes --]

On Monday, December 23, 2013 4:25:50 PM HKT, Nicolas Goaziou wrote:
>
> James Harkins <jamshark70@gmail.com> writes:
>
>> One question, though: How would I determine the LaTeX document class
>> programmatically?
>
>
>   (plist-get info :latex-class)

Patch attached. The patch is based on release_8.2.4 (as noted in my bug
report from a few minutes ago, I can't perform any Beamer export against
current master). If it doesn't apply against master, I'll be happy to tweak
it, once the other bug is fixed.

Let me know if there are any other problems, say, LISP style errors. I
wrapped my change in a (let...) to isolate it from other bits of the code.

Tests:

- Export to beamer, presentation mode, without ignorenonframetext option:
Title appears in its own frame, exactly as before.

- Export to beamer, presentation mode, *with* ignorenonframetext option:
Title appears in its own frame. Without the patch, the title frame was
missing.

- Export to beamer, using article class and the beamerarticle package:
Title appears, without begin/end{frame} (same behavior as without the
patch).

I haven't signed FSF papers, though... I guess I should get on that.

hjh

[-- Attachment #1.2: Type: text/html, Size: 1455 bytes --]

[-- Attachment #2: 0001-ox-beamer-Wrap-the-title-command-in-a-frame-for-beam.patch --]
[-- Type: text/x-patch, Size: 1858 bytes --]

From 1f70f3f41b266da204abd8dbcdddfefe648868eb Mon Sep 17 00:00:00 2001
From: James Harkins <jamshark70@dewdrop-world.net>
Date: Sat, 11 Jan 2014 11:59:32 +0800
Subject: [PATCH] ox-beamer: Wrap the title command in a frame for "beamer"
 class

This supports an option, described in the beamer user guide, for
supporting material using the beamerarticle package.

1. Write presentation contents in slides.
2. Write content /outside/ of slides for the print version.
3. To make #2 invisible in the slideshow, include "ignorenonframetext"
   in the LaTeX class options.

The problem was that Beamer export writes the title command outside of
a frame. So, the title frame disappears when using
ignorenonframetext. But, you don't want the title inside a frame for
article export.

The patch tests :latex-class. If it's "beamer," it adds \begin{frame}
before and \end{frame} after the title command.
---
 lisp/ox-beamer.el |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el
index 2868944..9f8624f 100644
--- a/lisp/ox-beamer.el
+++ b/lisp/ox-beamer.el
@@ -871,13 +871,16 @@ holding export options."
      ;; 9. Document start.
      "\\begin{document}\n\n"
      ;; 10. Title command.
-     (org-element-normalize-string
+     (let ((titlecmd (org-element-normalize-string
       (cond ((string= "" title) nil)
 	    ((not (stringp org-latex-title-command)) nil)
 	    ((string-match "\\(?:[^%]\\|^\\)%s"
 			   org-latex-title-command)
 	     (format org-latex-title-command title))
-	    (t org-latex-title-command)))
+	    (t org-latex-title-command)))))
+       (if (string= (plist-get info :latex-class) "beamer")
+	   (format "\\begin{frame}%s\\end{frame}" titlecmd)
+	 titlecmd))
      ;; 11. Table of contents.
      (let ((depth (plist-get info :with-toc)))
        (when depth
-- 
1.7.9.5


  parent reply	other threads:[~2014-01-11  6:39 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-22 10:38 Beamer title is (incorrectly?) outside of a frame James Harkins
2013-12-22 10:42 ` James Harkins
2013-12-22 13:36   ` Nicolas Goaziou
2013-12-23  3:33     ` James Harkins
2013-12-23  8:25       ` Nicolas Goaziou
2013-12-26  5:50         ` James Harkins
     [not found]         ` <bc14736f-f98c-4112-8f54-b35dcb5416a9@dewdrop-world.net>
2014-01-11  6:39           ` James Harkins [this message]
2014-01-11  8:44             ` Nicolas Goaziou
2014-01-11  8:49               ` 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='CAFniQ7XW2rYJSj0uswE=BfX9+m+TM9_SKiyET1pyLbpNbhMXQQ@mail.gmail.com' \
    --to=jamshark70@gmail.com \
    --cc=Emacs-orgmode@gnu.org \
    --cc=jamshark70@dewdrop-world.net \
    --cc=n.goaziou@gmail.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).