Nicolas Goaziou writes: > Hello, > > John Kitchin <jkitc...@andrew.cmu.edu> writes: > >> A block like this: >> >> #+attr_latex: :placement [H] >> >> #+caption: A test block >> #+BEGIN_SRC ipython >> >> 'hello' >> #+END_SRC >> >> exports to latex as: >> >> \begin{listing}[htbp] >> \begin{minted}[frame=lines,fontsize=\scriptsize,linenos]{ipython} >> 'hello' >> \end{minted} >> \caption{A test block} >> \end{listing} >> >> The root of this is in org-latex-src-block where (plist-get info >> :latex-default-figure-position) is being used to specify the >> placement. > > True. LaTeX back-end doesn't handle :placement attribute in source blocks. > >> It seems like a sort of easy fix, but requires a couple of changes in the >> function. >> >> I think we could replace all instances of >> >> (plist-get info :latex-default-figure-position) >> >> with >> >> (or (plist-get attributes :placement) >> (format "[%s]" >> (plist-get info :latex-default-figure-position))) > > Why (format "[%s]" ...)?
That isn't changed from what is already in ox-latex, e.g. line 2367. > >> and also replace everything like: >> >> \\begin{figure*}[%s] >> >> with >> >> \\begin{figure*}%s >> >> I don't see a way around that unless :latex-default-figure-position is >> changed from "htbp" to "[htbp]". > > I fail to see why this change is needed. org-latex-default-figure-position is defined as "htbp" where as :placement is usually defined as "[H]". One has brackets, and one doesn't. This is reflected in ox-latex too. For example in this code (line 3219. ox-latex.el) (or (plist-get attr :placement) (format "[%s]" (plist-get info :latex-default-figure-position))) it is implied that :latex-default-figure-position does not have brackets, but that (plist-get attr :placement) does since it is later used in line 3259 as: (format "\\begin{%s}%s\n" float-env placement) So, it seems like one either has to add [] to the default org-latex-default-figure-position, or put them in the template, or change how the :placement value is used. It doesn't seem like we can have it both ways without testing if there are brackets or not. It also doesn't seem right to modify org-latex-default-figure-position just to get float listings to be "[H]" for src blocks. > >> Thoughts? > > Do you want to propose a patch? The manual would need to be updated > accordingly. Do you see another way to solve this? > > Regards, -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu