emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] LaTeX export figure width, when figure comes from python?


From: Gary Oberbrunner
Subject: Re: [O] LaTeX export figure width, when figure comes from python?
Date: Sun, 31 Mar 2013 19:57:45 -0400

[I can never get the reply-all thing down on this list!  See below.]

On Sun, Mar 31, 2013 at 7:02 PM, John Hendy <address@hidden> wrote:
On Sun, Mar 31, 2013 at 11:03 AM, Gary Oberbrunner
<address@hidden> wrote:
>
> On Fri, Mar 29, 2013 at 4:53 PM, John Hendy <address@hidden> wrote:
>>
>> On Fri, Mar 29, 2013 at 3:16 PM, Gary Oberbrunner <address@hidden>
>> wrote:
>> > Now that python mode is working nicely, I'm generating lots of graphics.
>> >
>> > #+BEGIN_SRC python :session MYpython :exports results :results file
>> >   #... bunch of matplotlib stuff that produces /tmp/myfig.pdf
>> >   '/tmp/myfig.pdf'
>> > #+END_SRC
>> >
>> > This works, and the LaTeX exporter includes /tmp/mfig.pdf:
>> >
>> > \includegraphics[width=.9\linewidth]{c:/tmp/myfig.pdf}
>> >
>> > My question is, is there any way to remove the width specifier?  If the
>> > figure were coming straight from org-mode source text, I could use
>> > #+ATTR_LaTeX (well actually maybe not, because there's no way to
>> > *remove*
>> > the width, but at least I could set it as desired.)  But in the
>> > situation
>> > above, where the filename is coming from the exporter running the code
>> > block, there's no place for me to put the ATTR_LaTeX that works.
>> >
>> > Any ideas, exporter gurus?
>> >
>>
>> Does this post help at all?
>> - http://lists.gnu.org/archive/html/emacs-orgmode/2012-08/msg01225.html
>>
>> This would be if your compilation of that block is spitting out a
>> #+results block. Is that the case?
>>
>> Also, per a recent use of that same concept, I got updated advice to
>> use :wrap since the above wasn't working for me anymore:
>> - http://lists.gnu.org/archive/html/emacs-orgmode/2013-03/msg01599.html
>>
>> So, basically if you're generating plots, you can just print the
>> Org-mode include file syntax ([[filename.ext]]) into a results block
>> and should also be able to pass it the #+attr_latex stuff as well.
>> Something like:
>>
>> print("#+attr_latex: :width Xcm \n
>> [[filename.ext]]")
>
>
> That almost works.  This does:
>
> #+name: fields_chart(labels=fields[,0], vals=fields[,1])
> #+BEGIN_SRC python :session UDpython :exports results :results raw
>   fname=do_hbar('/tmp/fields.pdf', (4,.9), vals, labels) # this creates the
> actual plot in /tmp/fields.pdf
>   "#+ATTR_LaTeX: :width 4in \n[[%s]]"%fname
> #+END_SRC
>
> Notes:
>  * You have to use :results raw rather than :results org.  The latter
> prepends a comma to the #+ATTR_LaTeX line, making it unusable. (Not sure if
> that's a bug, or expected.)

I wonder if that's similar to the question I asked as a followup to
the link I sent you to:
- https://lists.gnu.org/archive/html/emacs-orgmode/2013-03/msg01583.html

>  * In session mode, you can't use :results output because the python
> interpreter prompts also are output.  But returning the string as above
> works fine.

Did you try :wrap as well? I was having issues with :results org as
well and found out that the prior recommendation to use this was
updated to :wrap org instead...

I didn't try :wrap, but I did try :results wrap (which is what that post suggested) which did nothing different as far as I could tell.
 
Out of curiosity... is the "%s" syntax related to python
(unfamiliar)... just noticed how you did that and wondered if that was
via Org/emacs/babel or via python.

That's python syntax. 

Glad you found something that worked!
John

>
> But now my graphics come out the right size!  Thanks!
>
> --
> Gary



--
Gary

reply via email to

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