[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Some LaTeX Beamer / org-mode questions
From: |
Nicolas Goaziou |
Subject: |
Re: [O] Some LaTeX Beamer / org-mode questions |
Date: |
Tue, 14 Jun 2016 14:43:33 +0200 |
Hello,
Rasmus <address@hidden> writes:
> Re the beamer manual 10.1, we could add the following keywords,
> #+short_title, #+short_subtitle, #+short_date , #+institute and
> #+short_institute.
Thank you for your work.
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.
> ;; Otherwise, use `latex' back-end.
> - (t (org-export-with-backend 'latex link contents info)))))
> + (t (cond ((and (org-export-inline-image-p link)
> + (plist-get (org-export-read-attribute
> + :attr_beamer (org-export-get-parent-element
> link))
> + :titlegraphic))
> + "")
> + (t (org-export-with-backend 'latex link contents info)))))))
The last `cond' could be merged with the one above. It looks like
there's unnecessary branching here.
Anyway, it probably should not be included per suggestion above.
>
> ;;;; 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)))
See above.
Regards,
--
Nicolas Goaziou