emacs-orgmode
[Top][All Lists]
Advanced

[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



reply via email to

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