emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] customizing org-beamer--format-frame


From: Seb Frank
Subject: Re: [O] customizing org-beamer--format-frame
Date: Sun, 27 Apr 2014 10:14:06 -0400

Thanks so much! I was trying to get a bit more flexibility with that separate slide (e.g., have the title in the centre of the page and no toc). So I took inspiration from your great solution and defined a latex macro

#+begin_src latex
\newcommand{\singleslide}[1]{{%
    \usebeamerfont{title}
    \begin{frame}[plain,c]
      \begin{center}
        \begin{minipage}[h]{.75\textwidth}
          \centering
          \textcolor{title}{\Large#1}
      \end{minipage}
      \end{center}
    \end{frame}
}}
#+end_src

and a latex class

#+begin_src emacs-lisp
(add-to-list 'org-latex-classes
                  '("my-org-beamer"
                    "\\documentclass{beamer}

("\\singleside{%s}" . "\\singleslide{%s}")))))
#+end_src

which did the job.

Best,
  Seb

On Sat, Apr 26, 2014 at 9:05 AM, Eric S Fraga <address@hidden> wrote:
On Friday, 25 Apr 2014 at 08:24, Seb Frank wrote:
> Hi there,
>
> I have customized org-beamer--format-frame to change the way headlines are
> treated (as I want a separate slide with only the headline in the center
> and plain frames not showing headlines after that). The way I currently do
> this is by redefining the function itself (using "defun
> org-beamer--format-frame"). This works, but is there any way to make this
> more modular, i.e. tell org-mode somewhere to use a different function
> (e.g., my-org-beamer--format-frame) to format a frame, so that it's easy to
> switch back and forth between different ones, as well as to revert to the
> default?
>
> Thanks,
>   Seb

As you haven't explained why you want this, it's difficult to understand
the actual use case.  So, guessing at your intent, I wonder whether you
have thought about making use of section headings as well as frame
headings to accomplish what you want?

Assuming you are using org v8.x and not something older, if you set
option H:2, second level headings define frames and top level headings
define sections.  You can then have section headings appear as a
separate slide using code such as this:

#+begin_src org
  ,#+latex_header: \AtBeginSection[]{\begin{frame}<beamer>\frametitle{Topic}\tableofcontents[currentsection]\end{frame}}
#+end_src

In this case, any time a section heading is encountered (i.e. top level
org heading), you'll get a slide with a table of contents with that
heading emphasised.  You can obviously do something different which more
closely matches what you want.

If you don't want individual frames to have headings, simply don't put
any text in the headline for that frame.

This way, you do not need to manipulate how beamer displays frames.  An
example set of slides with two sections and two out of four slides
having no headline would look like this:

#+begin_src org
  ,#+options: H:2
  ,#+latex_header: \AtBeginSection[]{\begin{frame}<beamer>\frametitle{Topic}\tableofcontents[currentsection]\end{frame}}
  ,* Introduction
  ,** First slide
  some text on the first slide
  ,**
  some text on the second slide which has no heading
  ,* Results
  ,**
  some third slide text, also on a slide with no heading
  ,** conclusions
  This was a great talk.
#+end_src

HTH,
eric
--
: Eric S Fraga (0xFFFCF67D), Emacs 24.4.50.2, Org release_8.2.5h-1027-g4c0a29


reply via email to

[Prev in Thread] Current Thread [Next in Thread]