Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-12 Thread Nicolas Goaziou
Matthew Gidden gid...@wisc.edu writes:

 Updated patch with updated commit message attached.

Thank you.

 Subject: [PATCH] org-beamer.el: Enable custom beamer input before
  \begin{document}

ox-beamer. Also the summary is too long.

 * lisp/ox-beamer.el (`beamer-header'): Move BEAMER_HEADER injection to
   final part of preamble (after themes, title, etc.). Allows for
   custom short titles, etc., with #+BEAMER_HEADER: \title[Short]{Long}.

 Previously, TITLE was being injected after BEAMER_HEADER, so short
 titles (and related) could not be added. BEAMER_HEADER now serves as a
 final preamble injection point.

Two spaces are required after sentences.

Otherwise, the patch looks good.

Could you add a footnote about this change at (info (org) Beamer
export), close to #+BEAMER_HEADER reference, in org.texi?


Regards,



Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-12 Thread Matthew Gidden
Updated patch attached

On Tue, Mar 10, 2015 at 10:44 AM, Nicolas Goaziou m...@nicolasgoaziou.fr
wrote:

 Matthew Gidden gid...@wisc.edu writes:

  Updated patch with updated commit message attached.

 Thank you.

  Subject: [PATCH] org-beamer.el: Enable custom beamer input before
   \begin{document}

 ox-beamer. Also the summary is too long.

  * lisp/ox-beamer.el (`beamer-header'): Move BEAMER_HEADER injection to
final part of preamble (after themes, title, etc.). Allows for
custom short titles, etc., with #+BEAMER_HEADER: \title[Short]{Long}.
 
  Previously, TITLE was being injected after BEAMER_HEADER, so short
  titles (and related) could not be added. BEAMER_HEADER now serves as a
  final preamble injection point.

 Two spaces are required after sentences.

 Otherwise, the patch looks good.

 Could you add a footnote about this change at (info (org) Beamer
 export), close to #+BEAMER_HEADER reference, in org.texi?


 Regards,




-- 
Matthew Gidden
Ph.D. Candidate, Nuclear Engineering
The University of Wisconsin -- Madison
Ph. 225.892.3192
From 08f163ee4891e49d8884e7c43418b9091badfb11 Mon Sep 17 00:00:00 2001
From: Matthew Gidden matthew.gid...@gmail.com
Date: Mon, 9 Mar 2015 16:25:15 -0500
Subject: [PATCH] ox-beamer.el: Update BEAMER_HEADER placement

* lisp/ox-beamer.el (`beamer-header'): Move BEAMER_HEADER injection to
  final part of preamble (after themes, title, etc.).  Allows for
  custom short titles, etc., with #+BEAMER_HEADER:
  \title[Short]{Long}.

* doc/org.texi: Updated BEAMER_HEADER entry with a relevant footnote.

Previously, TITLE, etc., was being injected after BEAMER_HEADER, so
short titles (and related) could not be added.  BEAMER_HEADER now
serves as a final preamble injection point.

TINYCHANGE
---
 doc/org.texi  |  8 +---
 lisp/ox-beamer.el | 23 +--
 2 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/doc/org.texi b/doc/org.texi
index edb6cf0..6c72302 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -11038,9 +11038,11 @@ Beamer export introduces a number of keywords to insert code in the
 document's header.  Four control appearance of the presentation:
 @code{#+BEAMER_THEME}, @code{#+BEAMER_COLOR_THEME},
 @code{#+BEAMER_FONT_THEME}, @code{#+BEAMER_INNER_THEME} and
-@code{#+BEAMER_OUTER_THEME}.  All of them accept optional arguments
-within square brackets.  The last one, @code{#+BEAMER_HEADER}, is more
-generic and allows you to append any line of code in the header.
+@code{#+BEAMER_OUTER_THEME}.  All of them accept optional arguments within
+square brackets.  The last one, @code{#+BEAMER_HEADER}, is more generic and
+allows you to append any line of code in the header@footnote{Lines are
+appended at the end of the header/preamble, allowing for any final
+customization such as the inclusion of short titles}.
 
 @example
 #+BEAMER_THEME: Rochester [height=20pt]
diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el
index e10d36c..359ccdc 100644
--- a/lisp/ox-beamer.el
+++ b/lisp/ox-beamer.el
@@ -239,7 +239,7 @@ Return overlay specification, as a string, or nil.
 (:beamer-font-theme BEAMER_FONT_THEME nil nil t)
 (:beamer-inner-theme BEAMER_INNER_THEME nil nil t)
 (:beamer-outer-theme BEAMER_OUTER_THEME nil nil t)
-(:beamer-header-extra BEAMER_HEADER nil nil newline)
+(:beamer-header BEAMER_HEADER nil nil newline)
 (:beamer-environments-extra nil nil org-beamer-environments-extra)
 (:beamer-frame-default-options nil nil org-beamer-frame-default-options)
 (:beamer-outline-frame-options nil nil org-beamer-outline-frame-options)
@@ -825,8 +825,7 @@ holding export options.
 	 (concat (org-element-normalize-string
 		  (plist-get info :latex-header))
 		 (org-element-normalize-string
-		  (plist-get info :latex-header-extra))
-		 (plist-get info :beamer-header-extra)
+		  (plist-get info :latex-header-extra))
 	  info)))
  ;; 3. Insert themes.
  (let ((format-theme
@@ -866,16 +865,20 @@ holding export options.
(format \\date{%s}\n (org-export-data date info)))
  ;; 7. Title
  (format \\title{%s}\n title)
- ;; 8. Hyperref options.
+ ;; 8. Beamer-header
+ (let ((beamer-header (plist-get info :beamer-header)))
+   (when beamer-header
+	 (format %s\n (plist-get info :beamer-header
+ ;; 9. Hyperref options.
  (when (plist-get info :latex-hyperref-p)
(format \\hypersetup{\n  pdfkeywords={%s},\n  pdfsubject={%s},\n  pdfcreator={%s}}\n
 	   (or (plist-get info :keywords) )
 	   (or (plist-get info :description) )
 	   (if (not (plist-get info :with-creator)) 
 		 (plist-get info :creator
- ;; 9. Document start.
+ ;; 10. Document start.
  \\begin{document}\n\n
- ;; 10. Title command.
+ ;; 11. Title command.
  (org-element-normalize-string
   (cond ((not (plist-get info :with-title)) nil)
 	((string=  title) nil)
@@ -884,7 +887,7 @@ holding export options.
 			   

Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-10 Thread Nicolas Goaziou
Matthew Gidden gid...@wisc.edu writes:

 Another option would be to simply move BEAMER_HEADER to inject code where I
 have implemented BEAMER_HEADER_EXTRA. That would provide the same
 functionality with a reasonable name. I still need to better format my
 commit message (I forgot to before submitting), so I can make any other
 updates that are deemed necessary.

Fair enough. We can insert BEAMER_HEADER lines later and use
LATEX_HEADER for early lines.

Regards,



Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-10 Thread Matthew Gidden
On Tue, Mar 10, 2015 at 9:44 AM, Nicolas Goaziou m...@nicolasgoaziou.fr
wrote:

 Matthew Gidden gid...@wisc.edu writes:

  Another option would be to simply move BEAMER_HEADER to inject code
 where I
  have implemented BEAMER_HEADER_EXTRA. That would provide the same
  functionality with a reasonable name. I still need to better format my
  commit message (I forgot to before submitting), so I can make any other
  updates that are deemed necessary.

 Fair enough. We can insert BEAMER_HEADER lines later and use
 LATEX_HEADER for early lines.

I was writing a longer email confirming that I think this is the best way
forward. I'll update the source and commit message and reply to this with a
new patch. Let me know if I should make a new mail instead.

Cheers,
Matt


 Regards,




-- 
Matthew Gidden
Ph.D. Candidate, Nuclear Engineering
The University of Wisconsin -- Madison
Ph. 225.892.3192


Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-10 Thread Matthew Gidden
Updated patch with updated commit message attached.

On Tue, Mar 10, 2015 at 9:45 AM, Matthew Gidden gid...@wisc.edu wrote:



 On Tue, Mar 10, 2015 at 9:44 AM, Nicolas Goaziou m...@nicolasgoaziou.fr
 wrote:

 Matthew Gidden gid...@wisc.edu writes:

  Another option would be to simply move BEAMER_HEADER to inject code
 where I
  have implemented BEAMER_HEADER_EXTRA. That would provide the same
  functionality with a reasonable name. I still need to better format my
  commit message (I forgot to before submitting), so I can make any other
  updates that are deemed necessary.

 Fair enough. We can insert BEAMER_HEADER lines later and use
 LATEX_HEADER for early lines.

 I was writing a longer email confirming that I think this is the best way
 forward. I'll update the source and commit message and reply to this with a
 new patch. Let me know if I should make a new mail instead.

 Cheers,
 Matt


 Regards,




 --
 Matthew Gidden
 Ph.D. Candidate, Nuclear Engineering
 The University of Wisconsin -- Madison
 Ph. 225.892.3192




-- 
Matthew Gidden
Ph.D. Candidate, Nuclear Engineering
The University of Wisconsin -- Madison
Ph. 225.892.3192
From dd0ac869afb9f13ce4d893bb34599864a9d43253 Mon Sep 17 00:00:00 2001
From: Matthew Gidden matthew.gid...@gmail.com
Date: Mon, 9 Mar 2015 16:25:15 -0500
Subject: [PATCH] org-beamer.el: Enable custom beamer input before
 \begin{document}

* lisp/ox-beamer.el (`beamer-header'): Move BEAMER_HEADER injection to
  final part of preamble (after themes, title, etc.). Allows for
  custom short titles, etc., with #+BEAMER_HEADER: \title[Short]{Long}.

Previously, TITLE was being injected after BEAMER_HEADER, so short
titles (and related) could not be added. BEAMER_HEADER now serves as a
final preamble injection point.

TINYCHANGE
---
 lisp/ox-beamer.el | 23 +--
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el
index e10d36c..359ccdc 100644
--- a/lisp/ox-beamer.el
+++ b/lisp/ox-beamer.el
@@ -239,7 +239,7 @@ Return overlay specification, as a string, or nil.
 (:beamer-font-theme BEAMER_FONT_THEME nil nil t)
 (:beamer-inner-theme BEAMER_INNER_THEME nil nil t)
 (:beamer-outer-theme BEAMER_OUTER_THEME nil nil t)
-(:beamer-header-extra BEAMER_HEADER nil nil newline)
+(:beamer-header BEAMER_HEADER nil nil newline)
 (:beamer-environments-extra nil nil org-beamer-environments-extra)
 (:beamer-frame-default-options nil nil org-beamer-frame-default-options)
 (:beamer-outline-frame-options nil nil org-beamer-outline-frame-options)
@@ -825,8 +825,7 @@ holding export options.
 	 (concat (org-element-normalize-string
 		  (plist-get info :latex-header))
 		 (org-element-normalize-string
-		  (plist-get info :latex-header-extra))
-		 (plist-get info :beamer-header-extra)
+		  (plist-get info :latex-header-extra))
 	  info)))
  ;; 3. Insert themes.
  (let ((format-theme
@@ -866,16 +865,20 @@ holding export options.
(format \\date{%s}\n (org-export-data date info)))
  ;; 7. Title
  (format \\title{%s}\n title)
- ;; 8. Hyperref options.
+ ;; 8. Beamer-header
+ (let ((beamer-header (plist-get info :beamer-header)))
+   (when beamer-header
+	 (format %s\n (plist-get info :beamer-header
+ ;; 9. Hyperref options.
  (when (plist-get info :latex-hyperref-p)
(format \\hypersetup{\n  pdfkeywords={%s},\n  pdfsubject={%s},\n  pdfcreator={%s}}\n
 	   (or (plist-get info :keywords) )
 	   (or (plist-get info :description) )
 	   (if (not (plist-get info :with-creator)) 
 		 (plist-get info :creator
- ;; 9. Document start.
+ ;; 10. Document start.
  \\begin{document}\n\n
- ;; 10. Title command.
+ ;; 11. Title command.
  (org-element-normalize-string
   (cond ((not (plist-get info :with-title)) nil)
 	((string=  title) nil)
@@ -884,7 +887,7 @@ holding export options.
 			   org-latex-title-command)
 	 (format org-latex-title-command title))
 	(t org-latex-title-command)))
- ;; 11. Table of contents.
+ ;; 12. Table of contents.
  (let ((depth (plist-get info :with-toc)))
(when depth
 	 (concat
@@ -896,16 +899,16 @@ holding export options.
 	(format \\setcounter{tocdepth}{%d}\n depth))
 	  \\tableofcontents\n
 	  \\end{frame}\n\n)))
- ;; 12. Document's body.
+ ;; 13. Document's body.
  contents
- ;; 13. Creator.
+ ;; 14. Creator.
  (let ((creator-info (plist-get info :with-creator)))
(cond
 	((not creator-info) )
 	((eq creator-info 'comment)
 	 (format %% %s\n (plist-get info :creator)))
 	(t (concat (plist-get info :creator) \n
- ;; 14. Document end.
+ ;; 15. Document end.
  \\end{document})))
 
 
-- 
1.9.1



Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-10 Thread Nicolas Goaziou
Matthew Gidden gid...@wisc.edu writes:

 Updated patch attached

Applied. Thank you.


Regards,



[O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-09 Thread Matthew Gidden
Hi folks,

I ran into the issue that many others have cited: an inability to add short
titles, etc., to org-mode-generated Beamer presentations [1, 2, 3]. This
patch allows such capability through a BEAMER_HEADER_EXTRA tag, which is
placed after title, author, etc., but before `\begin{document}`.  Short
titles, for example, can now be added via

```
#+BEAMER_HEADER_EXTRA: \title[A Short Title]{ \inserttitle }
```

Something like this appears to have been in the original org-beamer.el, but
was not present in the current master HEAD ox-beamer.el. If the
community/BD deems this to be worthy, I'd be happy to clean it up as needed.

Cheers,
Matt

[1] http://comments.gmane.org/gmane.emacs.orgmode/57450
[2] https://lists.gnu.org/archive/html/emacs-orgmode/2011-01/msg00176.html
[3]
http://stackoverflow.com/questions/26760125/org-mode-beamer-how-to-create-a-short-title-author-date


-- 
Matthew Gidden
Ph.D. Candidate, Nuclear Engineering
The University of Wisconsin -- Madison
Ph. 225.892.3192
From e666fc06512dad866a10dd763c3d42117dfff31f Mon Sep 17 00:00:00 2001
From: Matthew Gidden matthew.gid...@gmail.com
Date: Mon, 9 Mar 2015 16:25:15 -0500
Subject: [PATCH] adds a BEAMER_HEADER_EXTRA tag that can be used to inject
 code after title, author, etc. but before \begin{document}

---
 lisp/ox-beamer.el | 23 ++-
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el
index e10d36c..d15e5b0 100644
--- a/lisp/ox-beamer.el
+++ b/lisp/ox-beamer.el
@@ -239,7 +239,8 @@ Return overlay specification, as a string, or nil.
 (:beamer-font-theme BEAMER_FONT_THEME nil nil t)
 (:beamer-inner-theme BEAMER_INNER_THEME nil nil t)
 (:beamer-outer-theme BEAMER_OUTER_THEME nil nil t)
-(:beamer-header-extra BEAMER_HEADER nil nil newline)
+(:beamer-header BEAMER_HEADER nil nil newline)
+(:beamer-header-extra BEAMER_HEADER_EXTRA nil nil newline)
 (:beamer-environments-extra nil nil org-beamer-environments-extra)
 (:beamer-frame-default-options nil nil org-beamer-frame-default-options)
 (:beamer-outline-frame-options nil nil org-beamer-outline-frame-options)
@@ -826,7 +827,7 @@ holding export options.
 		  (plist-get info :latex-header))
 		 (org-element-normalize-string
 		  (plist-get info :latex-header-extra))
-		 (plist-get info :beamer-header-extra)
+		 (plist-get info :beamer-header)
 	  info)))
  ;; 3. Insert themes.
  (let ((format-theme
@@ -866,16 +867,20 @@ holding export options.
(format \\date{%s}\n (org-export-data date info)))
  ;; 7. Title
  (format \\title{%s}\n title)
- ;; 8. Hyperref options.
+ ;; 8. Beamer-header-extras
+ (let ((beamer-header-extra (plist-get info :beamer-header-extra)))
+   (when beamer-header-extra
+	 (format %s\n (plist-get info :beamer-header-extra
+ ;; 9. Hyperref options.
  (when (plist-get info :latex-hyperref-p)
(format \\hypersetup{\n  pdfkeywords={%s},\n  pdfsubject={%s},\n  pdfcreator={%s}}\n
 	   (or (plist-get info :keywords) )
 	   (or (plist-get info :description) )
 	   (if (not (plist-get info :with-creator)) 
 		 (plist-get info :creator
- ;; 9. Document start.
+ ;; 10. Document start.
  \\begin{document}\n\n
- ;; 10. Title command.
+ ;; 11. Title command.
  (org-element-normalize-string
   (cond ((not (plist-get info :with-title)) nil)
 	((string=  title) nil)
@@ -884,7 +889,7 @@ holding export options.
 			   org-latex-title-command)
 	 (format org-latex-title-command title))
 	(t org-latex-title-command)))
- ;; 11. Table of contents.
+ ;; 12. Table of contents.
  (let ((depth (plist-get info :with-toc)))
(when depth
 	 (concat
@@ -896,16 +901,16 @@ holding export options.
 	(format \\setcounter{tocdepth}{%d}\n depth))
 	  \\tableofcontents\n
 	  \\end{frame}\n\n)))
- ;; 12. Document's body.
+ ;; 13. Document's body.
  contents
- ;; 13. Creator.
+ ;; 14. Creator.
  (let ((creator-info (plist-get info :with-creator)))
(cond
 	((not creator-info) )
 	((eq creator-info 'comment)
 	 (format %% %s\n (plist-get info :creator)))
 	(t (concat (plist-get info :creator) \n
- ;; 14. Document end.
+ ;; 15. Document end.
  \\end{document})))
 
 
-- 
1.9.1



Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-09 Thread Nicolas Goaziou
Hello,

Matthew Gidden gid...@wisc.edu writes:

 I ran into the issue that many others have cited: an inability to add short
 titles, etc. to org-mode-generated Beamer presentations [1, 2, 3]. This
 patch allows such capability through a BEAMER_HEADER_EXTRA tag, which is
 placed after title, author, etc., but before `\begin{document}`.  Short
 titles, for example, can now be added via

 ```
 #+BEAMER_HEADER_EXTRA: \title[A Short Title]{ \inserttitle }
 ```

Thanks for the patch. 

BEAMER_HEADER_EXTRA is not a good name, as LATEX_HEADER_EXTRA means
something entirely different. If it's just about short titles, we could
add a BEAMER_SHORT_TITLE keyword.

However what is in the etc. above?


Regards,

-- 
Nicolas Goaziou



Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-09 Thread Rasmus
Hi Matthew,

Matthew Gidden gid...@wisc.edu writes:

Thanks for the patch.

 I ran into the issue that many others have cited: an inability to add short
 titles, etc., to org-mode-generated Beamer presentations [1, 2, 3]. This
 patch allows such capability through a BEAMER_HEADER_EXTRA tag, which is
 placed after title, author, etc., but before `\begin{document}`.  Short
 titles, for example, can now be added via

 ```
 #+BEAMER_HEADER_EXTRA: \title[A Short Title]{ \inserttitle }
 ```

From you patch, it seems that you want to adds something akin
to #+LATEX_HEADER or #+LATEX_HEADER_EXTRA.  IOW there's no formatting
going on and these lines expect raw latex code.

Could you not get the same by using org-latex-classes?  Or at the latex
level solution could presumably be archived with etoolbox.  Anyway,
another keyword doesn't hurt anybody.

—Rasmus

-- 
It was you, Jezebel, it was you




Re: [O] [PATCH] Adding a BEAMER_HEADER_EXTRA tag, allows short titles, etc.

2015-03-09 Thread Matthew Gidden
HI Nic,



On Mon, Mar 9, 2015 at 6:19 PM, Nicolas Goaziou m...@nicolasgoaziou.fr
wrote:

 Hello,

 Matthew Gidden gid...@wisc.edu writes:

  I ran into the issue that many others have cited: an inability to add
 short
  titles, etc. to org-mode-generated Beamer presentations [1, 2, 3]. This
  patch allows such capability through a BEAMER_HEADER_EXTRA tag, which is
  placed after title, author, etc., but before `\begin{document}`.  Short
  titles, for example, can now be added via
 
  ```
  #+BEAMER_HEADER_EXTRA: \title[A Short Title]{ \inserttitle }
  ```

 Thanks for the patch.

 BEAMER_HEADER_EXTRA is not a good name, as LATEX_HEADER_EXTRA means
 something entirely different. If it's just about short titles, we could
 add a BEAMER_SHORT_TITLE keyword.

 However what is in the etc. above?

In many outerthemes (i.e., the beamer header and footer formatting), the
short version of title, author, institution, and date are used. While
this is the (my) primary use case I can think of, the positioning
something other thanBEAMER_HEADER_EXTRA serves as final preamble
injection point. I just reread your discussion with Sebastien [1] and agree
the proposed name is bad.

From what I can tell, the current ox-beamer.el does not support beamer's
institution macor or the short version of title, author, institution or
date. I can think of two options to get around this:

   - do not use #+Title, etc., and simply use BEAMER_HEADER or similar
   - use #+Title plus something like this patch to inject fixes *after*
   \title

As a user, I prefer the latter, because it maximizes the portability of my
code (so I can use something like org-reveal [2]).

Another option would be to simply move BEAMER_HEADER to inject code where I
have implemented BEAMER_HEADER_EXTRA. That would provide the same
functionality with a reasonable name. I still need to better format my
commit message (I forgot to before submitting), so I can make any other
updates that are deemed necessary.

Let me know what you (and others) think.

Cheers,
Matt

[1] http://comments.gmane.org/gmane.emacs.orgmode/78582
[2]
http://orgmode.org/worg/org-tutorials/non-beamer-presentations.html#sec-6



 Regards,

 --
 Nicolas Goaziou




-- 
Matthew Gidden
Ph.D. Candidate, Nuclear Engineering
The University of Wisconsin -- Madison
Ph. 225.892.3192