From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Some LaTeX Beamer / org-mode questions Date: Tue, 14 Jun 2016 14:43:33 +0200 Message-ID: <87fusg0wlm.fsf@saiph.selenimh> References: <20160530103806.30cbddd9@asaru> <87fuszuclj.fsf@gmx.us> <20160530133335.45ad8693@asaru> <8737ozu5gv.fsf@gmx.us> <20160601104419.0a52f45e@asaru> <874m9dryrk.fsf@gmx.us> <20160602103705.298b0726@asaru> <87eg8fq5tc.fsf@gmx.us> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:42547) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bCnhD-00027G-Nf for emacs-orgmode@gnu.org; Tue, 14 Jun 2016 08:43:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bCnh8-0001Hc-Ab for emacs-orgmode@gnu.org; Tue, 14 Jun 2016 08:43:55 -0400 Received: from relay4-d.mail.gandi.net ([217.70.183.196]:58324) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bCnh8-0001HW-3M for emacs-orgmode@gnu.org; Tue, 14 Jun 2016 08:43:50 -0400 In-Reply-To: <87eg8fq5tc.fsf@gmx.us> (rasmus@gmx.us's message of "Thu, 02 Jun 2016 11:49:03 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Rasmus Cc: emacs-orgmode@gnu.org Hello, Rasmus 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.=20 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. >=20=20 > ;;;; 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=3D "" 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 i= nfo)))) > - (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 =E2=80=98org-export-get-date=E2= =80=99. > + (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, --=20 Nicolas Goaziou