Wednesday, May 16, 2012

Latex with Adobe Illustrator

I have been a linux user for a long time but last year I bought a laptop with a digitizer screen and the lack of good results in linux made me switch to Win 7. In the last year, I have learned that a lot of GPL software is ported to Windows and the switch is not painful at all. Problem is that the last update in one of my favorite page editing software: Inkscape has made my figure editing work flow (I never thought I would use this word) stall a little. So, I decided to give Adobe Illustrator a try as CS education is not so expensive. 

Basically, I need to add latex formulas to Illustrator, there's a nice script to do so here. I encountered a minor problem with this script; it seems like page frame is no longer the last element in the pdf compiled by pdflatex. Thus, the formulas generated by the script and imported into Illustrator were lacking the first element and had a full A4page frame. 

The script file is efficiently commented and a quick look into it brought me to Line 66:
for( var i=grp.pageItems[0].pageItems.length-1; --i>=0; )
After a few iterations, I found that the page frame is now the first page item and so the final modified line is:
for( var i=grp.pageItems[0].pageItems.length; --i>=1; )
This fixed my problem and now I have complete latex formulas in Illustrator with just the minimal frame around the object.

I hope this solves your issues too.

2 comments:

  1. Try this instead:
    for( var i=grp.pageItems[0].pageItems.length-1; i>0; --i)

    your doesn't render the first character. Actually someone already posted it on the original website you found the code on..

    ReplyDelete
  2. Thanks, that solved my issue.

    Updating the linked page information; in CS6 the script needs to go in (windows 7, 64)
    C:\Program Files\Adobe\Adobe Illustrator CS6 (64 Bit)\Presets\en_US\Scripts

    for it to be assessable under File -> Scripts

    ReplyDelete