From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: [PATCH] (update) Add :caption attribute to #+ATTR_LATEX property Date: Mon, 01 Jul 2013 23:38:15 +0200 Message-ID: <8761wuq7ug.fsf@gmail.com> References: <878v1rstwt.fsf@gmail.com> <87sizzrzsi.fsf@bzg.ath.cx> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37497) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtlnR-0008DB-Ec for emacs-orgmode@gnu.org; Mon, 01 Jul 2013 17:38:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UtlnQ-0006iz-Ek for emacs-orgmode@gnu.org; Mon, 01 Jul 2013 17:38:05 -0400 In-Reply-To: (feng shu's message of "Mon, 1 Jul 2013 07:08:55 +0800") 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: feng shu Cc: Bastien , emacs-orgmode@gnu.org Hello, feng shu writes: > Thanks for your help. This is V4 patch. Thanks for the update. More comments below. > +@item :caption > +By default, you should use @code{#+caption} keyword to add a table caption. > +If you want to add caption with complex or special latex commands, you can use > +@code{:caption} attribute. It will precedence over @code{#+caption} keyword. > +It should be set with raw latex command and nothing in it will be > +interpreted by Org. You need to use upper cases for keywords: @code{#+CAPTION}. Also, sentences are expected to end with two spaces and latex should be typed @LaTeX{}. Here is a suggestion (note that I'm not a wording expert): @code{#+CAPTION} keyword is the simplest way to set a caption for a table (@pxref{Images and tables}). If you need more advanced commands for that task, you can use @code{:caption} attribute instead. Its value should be raw @LaTeX{} code. It has precedence over @code{#+CAPTION}. > +When export the below example to latex, the table caption will be set > +with latex command @code{\bicaption@{Heading A@}@{Heading B@}} instead of > +@code{#+CAPTION} keywords. In the example below, @LaTeX{} command @code{\bicaption@{Heading A@}@{Heading B@}} will set the caption. (I think you can drop the rest of the sentence). > -@code{:width} and @code{:height} attributes. It is also possible to add any > -other option with the @code{:options} attribute, as shown in the following > -example: > +@code{:width} and @code{:height} attributes. If you want to set image > +caption with special latex command, you can use @code{:caption} attribute, > +for example: Besides the missing two spaces at the end of the sentence, I suggest the following: You can specify specify image width or height with, respectively, @code{:width} and @code{:height} attributes. It is also possible to add any other option with the @code{:options} attribute, as shown in the following example: EXAMPLE If you need a specific command for the caption, use @code{:caption} attribute. It will override standard @code{#+CAPTION} value, if any. EXAMPLE? Also, you don't seem to document the feature for special blocks. > - (short (org-export-get-caption element t))) > - (cond > - ((and (not main) (equal label-str "")) "") > - ((not main) (concat label-str "\n")) > - ;; Option caption format with short name. > - (short (format "\\caption[%s]{%s%s}\n" > - (org-export-data short info) > - label-str > - (org-export-data main info))) > - ;; Standard caption format. > - (t (format "\\caption{%s%s}\n" label-str (org-export-data main info)))))) > + (short (org-export-get-caption element t)) > + (caption-from-attr-latex (org-export-read-attribute :attr_latex element :caption))) > + (cond ((org-string-nw-p caption-from-attr-latex) > + (concat caption-from-attr-latex "\n")) > + ((and (not main) (equal label-str ""))) Why do you drop the return value (empty string) here? Regards, -- Nicolas Goaziou