From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: [patch] more Beamer properties
Date: Wed, 21 Sep 2016 13:21:43 +0200 [thread overview]
Message-ID: <87wpi5sdko.fsf@pank.eu> (raw)
In-Reply-To: <87fusg0wlm.fsf@saiph.selenimh> (Nicolas Goaziou's message of "Tue, 14 Jun 2016 14:43:33 +0200")
[-- Attachment #1: Type: text/plain, Size: 3971 bytes --]
Hi,
Thanks for the suggestions.
Sorry about the slow reply... I'm lacking time ATM.
I simplified the patch to only add the short version of properties and not
include the titlegraphics.
> I didn't test your patch. However, here are some late comments about
> this suggestion.
>
>> Maybe we can have a titlegraphics like,
>>
>> #+attr_beamer: :titlegraphics t
>> [[file:link.pdf]]
>
> I think
>
> #+TITLEGRAPHICS: [[file:link.pdf]]
>
> would be cleaner.
I dropped this. One might need to add attributes to the graphic. The
#+titlegraphics approach wouldn’t allow it. I think it’s a problem that
can be pushed down the line.
>> ;;;; Plain List
>> @@ -855,21 +866,65 @@ holding export options."
>> (when (integerp sec-num)
>> (format "\\setcounter{secnumdepth}{%d}\n" sec-num)))
>> ;; Author.
>> - (let ((author (and (plist-get info :with-author)
>> - (let ((auth (plist-get info :author)))
>> - (and auth (org-export-data auth info)))))
>> - (email (and (plist-get info :with-email)
>> - (org-export-data (plist-get info :email) info))))
>> + (let* ((author (and (plist-get info :with-author)
>> + (let ((auth (plist-get info :author)))
>> + (and auth (org-export-data auth info)))))
>> + (short-author (and author (plist-get info :short-author)))
>
> Since "short-author" is `parsed', this should be wrapped within
> `org-export-data' somehow. You do it below, but it introduces some code
> duplication.
>
>> + (email (and (plist-get info :with-email)
>> + (org-export-data (plist-get info :email) info)))
>> + )
>
> You left a dangling parenthesis.
>
>> (cond ((and author email (not (string= "" email)))
>> - (format "\\author{%s\\thanks{%s}}\n" author email))
>> - ((or author email) (format "\\author{%s}\n" (or author email)))))
>> + (format "\\author%s{%s\\thanks{%s}}\n"
>> + (if short-author
>> + (format "[%s]" (org-export-data short-author info)) "")
>> + author email))
>> + ((or author email) (format "\\author%s{%s}\n"
>> + (if short-author
>> + (format "[%s]" (org-export-data short-author info)) "")
>> + (or author email)))))
>
> See above. Also, I would move the (format ...) below (or author email)
>
>> ;; Date.
>> - (let ((date (and (plist-get info :with-date) (org-export-get-date info))))
>> - (format "\\date{%s}\n" (org-export-data date info)))
>> - ;; Title
>> - (format "\\title{%s}\n" title)
>> + (let* ((date (and (plist-get info :with-date) (org-export-get-date info)))
>> + ;; TODO: add optional argument of ‘org-export-get-date’.
>> + (short-date (and date (org-export-data
>> + (org-export-get-date
>> + (plist-put info :date
>> + (plist-get info :beamer-short-date)))
>> + info))))
>> + (format "\\date%s{%s}\n" (if (org-string-nw-p short-date)
>> + (format "[%s]" short-date) "")
>
> I would put the "" below (format "[%s]" short-date): it doesn't make
> clear there is an else branch otherwise.
>
>> + (org-export-data date info)))
>> + ;; Title.
>> + (let ((short-title (and title
>> + (plist-get info :beamer-short-title))))
>> + (format "\\title%s{%s}\n"
>> + (if short-title (format "[%s]" (org-export-data short-title info)) "")
>> + title))
>
> See above.
>
>> + ;; Titlegraphics.
>> + (let ((titlegraphic-link
>> + (org-element-map (plist-get info :parse-tree) 'link
>> + (lambda (link)
>> + (when (and (org-export-inline-image-p link)
>> + (plist-get (org-export-read-attribute
>> + :attr_beamer (org-export-get-parent-element link))
>> + :titlegraphic))
>> + link))
>> + info t)))
Should all be fixed.
Thanks,
Rasmus
--
Human: An animal that complicates things more than strictly necessary
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ox-beamer-Remove-customizable-subtitle.patch --]
[-- Type: text/x-diff, Size: 2123 bytes --]
From 56737ea87fd523d2e88b732af110008b993c7310 Mon Sep 17 00:00:00 2001
From: Rasmus <rasmus@gmx.us>
Date: Thu, 2 Jun 2016 11:44:56 +0200
Subject: [PATCH 1/2] ox-beamer: Remove customizable subtitle
* lisp/ox-beamer.el (org-beamer-subtitle-format): Remove.
(:options-alist): Remove :beamer-subtitle-format.
---
doc/org.texi | 4 +---
lisp/ox-beamer.el | 11 -----------
2 files changed, 1 insertion(+), 14 deletions(-)
diff --git a/doc/org.texi b/doc/org.texi
index 56779e8..2c9cb64 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -11077,9 +11077,7 @@ can use several @code{#+KEYWORDS} if the description is is long.
@item SUBTITLE
@cindex #+SUBTITLE (Beamer)
-@vindex org-beamer-subtitle-format
-The document subtitle. This is typeset using the format string
-@code{org-beamer-subtitle-format}. It can also access via
+The document subtitle. It can also access via
@code{org-latex-hyperref-template} or typeset as part of the front
matter via @code{org-latex-title-command}.
@end table
diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el
index 2d1d53f..fc17d3e 100644
--- a/lisp/ox-beamer.el
+++ b/lisp/ox-beamer.el
@@ -134,16 +134,6 @@ You might want to put e.g. \"allowframebreaks=0.9\" here."
:group 'org-export-beamer
:type '(string :tag "Outline frame options"))
-
-(defcustom org-beamer-subtitle-format "\\subtitle{%s}"
- "Format string used for transcoded subtitle.
-The format string should have at most one \"%s\"-expression,
-which is replaced with the subtitle."
- :group 'org-export-beamer
- :version "25.1"
- :package-version '(Org . "8.3")
- :type '(string :tag "Format string"))
-
\f
;;; Internal Variables
@@ -239,7 +229,6 @@ Return overlay specification, as a string, or nil."
:options-alist
'((:headline-levels nil "H" org-beamer-frame-level)
(:latex-class "LATEX_CLASS" nil "beamer" t)
- (:beamer-subtitle-format nil nil org-beamer-subtitle-format)
(:beamer-column-view-format "COLUMNS" nil org-beamer-column-view-format)
(:beamer-theme "BEAMER_THEME" nil org-beamer-theme)
(:beamer-color-theme "BEAMER_COLOR_THEME" nil nil t)
--
2.10.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-ox-beamer-Add-short-title-metainfo-properties.patch --]
[-- Type: text/x-diff, Size: 4470 bytes --]
From 2235d17c0bb4fcb8f5b06c4330a56e2a1732162b Mon Sep 17 00:00:00 2001
From: Rasmus <rasmus@gmx.us>
Date: Thu, 2 Jun 2016 11:45:49 +0200
Subject: [PATCH 2/2] ox-beamer: Add short title metainfo properties
* lisp/ox-beamer.el: (beamer :option-alist): Add :beamer-short-title,
:beamer-short-subtitle, :beamer-short-author, :beamer-short-date,
:beamer-institute, :beamer-short-institute
(org-beamer-template): Use new properties.
---
lisp/ox-beamer.el | 70 ++++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 57 insertions(+), 13 deletions(-)
diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el
index fc17d3e..3263d75 100644
--- a/lisp/ox-beamer.el
+++ b/lisp/ox-beamer.el
@@ -236,6 +236,12 @@ Return overlay specification, as a string, or nil."
(:beamer-inner-theme "BEAMER_INNER_THEME" nil nil t)
(:beamer-outer-theme "BEAMER_OUTER_THEME" nil nil t)
(:beamer-header "BEAMER_HEADER" nil nil newline)
+ (:beamer-short-title "SHORT_TITLE" nil nil parse)
+ (:beamer-short-subtitle "SHORT_SUBTITLE" nil nil parse)
+ (:beamer-short-author "SHORT_AUTHOR" nil nil parse)
+ (:beamer-short-date "SHORT_DATE" nil nil parse)
+ (:beamer-institute "INSTITUTE" nil nil parse)
+ (:beamer-short-institute "SHORT_INSTITUTE" nil nil parse)
(: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)
@@ -852,21 +858,59 @@ holding export options."
(when (integerp sec-num)
(format "\\setcounter{secnumdepth}{%d}\n" sec-num)))
;; Author.
- (let ((author (and (plist-get info :with-author)
- (let ((auth (plist-get info :author)))
- (and auth (org-export-data auth info)))))
- (email (and (plist-get info :with-email)
- (org-export-data (plist-get info :email) info))))
- (cond ((and author email (not (string= "" email)))
- (format "\\author{%s\\thanks{%s}}\n" author email))
- ((or author email) (format "\\author{%s}\n" (or author email)))))
+ (let* ((author (and (plist-get info :with-author)
+ (let ((auth (plist-get info :author)))
+ (and auth (org-export-data auth info)))))
+ (short-author (and author
+ (let ((short-auth (plist-get info :beamer-short-author)))
+ (if short-auth
+ (format "[%s]"
+ (org-export-data short-auth info))
+ ""))))
+ (email (and (plist-get info :with-email)
+ (org-string-nw-p
+ (org-export-data (plist-get info :email) info)))))
+ (cond ((and author email)
+ (format "\\author%s{%s\\thanks{%s}}\n"
+ short-author author email))
+ ((or author email)
+ (format "\\author%s{%s}\n"
+ short-author (or author email)))))
;; Date.
- (let ((date (and (plist-get info :with-date) (org-export-get-date info))))
- (format "\\date{%s}\n" (org-export-data date info)))
- ;; Title
- (format "\\title{%s}\n" title)
+ (let* ((date (and (plist-get info :with-date) (org-export-get-date info)))
+ (short-date (and date (org-export-data
+ (org-export-get-date
+ (plist-put info :date
+ (plist-get info :beamer-short-date)))
+ info))))
+ (format "\\date%s{%s}\n" (if (org-string-nw-p short-date)
+ (format "[%s]" short-date)
+ "")
+ (org-export-data date info)))
+ ;; Title.
+ (let ((short-title (and title (plist-get info :beamer-short-title))))
+ (format "\\title%s{%s}\n"
+ (if short-title
+ (format "[%s]" (org-export-data short-title info))
+ "")
+ title))
+ ;; Subtitle.
(when (org-string-nw-p subtitle)
- (concat (format (plist-get info :beamer-subtitle-format) subtitle) "\n"))
+ (let ((short-subtitle (plist-get info :beamer-short-subtitle)))
+ (format "\\subtitle%s{%s}\n"
+ (if short-subtitle
+ (format "[%s]" (org-export-data short-subtitle info))
+ "")
+ subtitle)))
+ ;; Institute.
+ (let ((institute (plist-get info :beamer-institute))
+ (short-institute (plist-get info :beamer-short-institute)))
+ (when institute
+ (format "\\institute%s{%s}\n"
+ (if short-institute
+ (format "[%s]" (org-export-data short-institute info))
+ "")
+ (org-export-data institute info))))
;; Beamer-header
(let ((beamer-header (plist-get info :beamer-header)))
(when beamer-header
--
2.10.0
next prev parent reply other threads:[~2016-09-21 11:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-30 8:38 Some LaTeX Beamer / org-mode questions Florian Lindner
2016-05-30 9:06 ` Rainer M Krug
2016-05-30 9:19 ` Rasmus
2016-05-30 11:33 ` Florian Lindner
2016-05-30 11:53 ` Rasmus
2016-06-01 8:44 ` Florian Lindner
2016-06-01 10:26 ` Rasmus
2016-06-02 8:37 ` Florian Lindner
2016-06-02 9:49 ` Rasmus
2016-06-14 12:43 ` Nicolas Goaziou
2016-09-21 11:21 ` Rasmus [this message]
2016-09-21 20:49 ` [patch] more Beamer properties Nicolas Goaziou
2016-09-22 8:42 ` Rasmus
2016-09-22 22:51 ` 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=87wpi5sdko.fsf@pank.eu \
--to=rasmus@gmx.us \
--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).