Is there a plugin or utility that converts .pages to and from LaTeX?

If not, how do we ask Apple for this sort of functionality as an enhancement request? Pages is a nice neat editing and authoring tool. I'd love for it to be extensible, and enable it to save in open formats. RTF is not an open format, by the way. M$ keep changing its behaviour.
Also: XHTML would be nice.

Hey there, this question is similar to this one. I provided a one-way solution with AppleScript from Pages > LaTeX. See original post for details.
TeXify Pages Script:
-- Creates new file on desktop to preserve original
tell application "Pages"
    set desktopPath to path to desktop folder as text
    set docName to (name of document 1) & "_texified.pages"
    tell application "System Events"
        if exists alias (desktopPath & docName) then delete alias (desktopPath & docName)
        make new file at end of folder desktopPath with properties {name:docName}
    end tell
    save document 1 in alias (desktopPath & docName)
    open (desktopPath & docName)
end tell
-- This is the actual part that does what I call "Texifying"
tell application "Pages"
    tell document 1
        get properties
        set {xpath, xname, xbodytext, paraCount} to {path, name, body text, get count of paragraphs}
        set paraSection to {"Section", "Subsection", "Subsubsection"}
        set paraInline to {"Paragraph"}
        repeat with paraStep from 1 to paraCount
            set paraStyle to name of paragraph style of paragraph paraStep
            set paraContent to text of paragraph paraStep
            if paraStyle is in paraSection then
                if (paraContent as string) does not contain "{" then
                    if paraStyle is "Section" then
                        my texifyHeading(paraContent, paraStyle, "Section", paraStep)
                    end if
                    if paraStyle is "Subsection" then
                        my texifyHeading(paraContent, paraStyle, "Subsection", paraStep)
                    end if
                    if paraStyle is "Subsubsection" then
                        my texifyHeading(paraContent, paraStyle, "Subsubsection", paraStep)
                    end if
                end if
            end if
        end repeat
        set orig_wordCount to count of words
        repeat with wordStep from 1 to orig_wordCount
            set new_wordCount to (count of words) --gets recalculated with each step
            set wordCompensator to (new_wordCount - orig_wordCount)
            set wordContent to text of word (wordStep + wordCompensator)
            set wordProps to properties of word (wordStep + wordCompensator)
            set charOffset to character offset of word (wordStep + wordCompensator)
            set preChar to character (charOffset - 1)
            set duppreventionList to {"\\", "{", "}"}
            if preChar is not in duppreventionList then
                if name of paragraph style of wordProps is not in paraSection then
                    if bold of wordProps is true then
                        my replaceWord(wordContent, "textbf", (wordStep + wordCompensator))
                        set wordCompensator to wordCompensator + 1
                    end if
                    if italic of wordProps is true then
                        my replaceWord(wordContent, "emph", (wordStep + wordCompensator))
                        set wordCompensator to wordCompensator + 1
                    end if
                end if
            end if
        end repeat
    end tell
end tell
on replaceWord(word_content, tex_style, word_num)
    tell application "Pages"
        tell document 1
            set text of word word_num to "\\" & tex_style & "{" & word_content & "}"
        end tell
    end tell
end replaceWord
on texifyHeading(para_content, pages_style, tex_style, para_num)
    set paraSection to {"Section", "Subsection", "Subsubsection"}
    set paraInline to {"Paragraph"}
    set sedFix to do shell script "echo " & para_content & "| sed \"s/$(printf '\r')\\$//\""
    tell application "Pages"
        tell document 1
            --if first character of (para_content as string) is not "\\" then
            --if tex_style is in paraSection then
            try
                if last character of (para_content as string) is (ASCII character 13) then
                    set returnText to "\\" & tex_style & "{" & sedFix & "}" & "\r"
                else
                    set returnText to "\\" & tex_style & "{" & para_content & "}"
                end if
                set text of paragraph para_num to returnText
                set paragraph style of paragraph para_num to pages_style
                --end if
            end try
        end tell
    end tell
end texifyHeading

Similar Messages

  • Is there a plugin for CS6 that I need to download to get my HP Officejet 7612 Wide Format Printer to be compatible with my MacBook Pro that is running my CS6 program?

    Is there a plugin for CS6 that I need to download to get my HP Officejet 7612 Wide Format Printer to be compatible with my MacBook Pro that is running my CS6 program?

    HP Officejet 7612 mac updated drivers. You can download link.

  • Is there a command line program that converts WAV to SWF?

    Is there a command line program that converts WAV to SWF?
    thanks

    why you want to do that? you can import your wav into the
    swf!

  • Why can't there be a simple utility that shows me which device connected to my Airport is using how much of the bandwidth in a simple graphical or stats format without requiring me to be a level 10 Black Belt or Chuck Norris' paternal tooth fairy?

    Why can't there be a simple utility that shows me which device connected to my Airport is using how much of the bandwidth in a simple graphical or stats format without requiring me to be a level 10 Black Belt or Chuck Norris' paternal tooth fairy?
    I need to see who is consuming the most bandwidth and limit that user/device. A very simple and dare I say it, legal, moral, and normal wish.

    They are not overloading the Airport. They are overwhelming the capacity of your Internet connection.
    No. It's not "shared equally". That's not how packet switched networks function.
    Most consumer grade routers do not have the ability to restrict bandwidth use on a per machine basis. You need relatively expensive (but readily available) equipment to do that.
    How many people are on the network? It can't be that hard to hunt them down.

  • Is there a life proof case that accommodates the camera and flash on the iphone 5s?

    is there a life proof case that accommodates the camera and flash on the iphone 5s?

    I think stedman1 met to say no 16g has a back camera and flash. The iPod 5 32g and 64g have both front and back cameras, and the back camera does have a flash.

  • My child got ahold of my mac book. She did something and now there is a "dialogue box" that is constantly displayed and it essentially narrates all of my actions, telling what I am doing and viewing etc. help me get rid of this, please.

    My child got ahold of my mac book. She did something and now there is a "dialogue box" that is constantly displayed and it essentially narrates all of my actions, telling me what I am doing and viewing etc. Along with it every icon I click shows a box arond it . Help me get rid of this, please.

    Choose system preferences, then under 'Personal' choose 'Universal Access''
    You will see a checkbox called 'Voice Over'' (under the seeing tab). Switch this to off.
    Good luck
    Max

  • Is there a way to ensure that data has been wiped from my iphone 3g. It shows the "connect to itunes" screen when turned on.

    Is there a way to ensure that data has been wiped from my iphone 3g. It shows the "connect to itunes" screen when turned on.

    That is how it appears brand new out of the box.

  • I have the find my ipod app on my ipod and i lost it somewhere in my home. is there a way to use that find my ipod fature from my computer? i was hoping that the loud noise would help me to look for it.

    I have the find my ipod app on my ipod and i lost it somewhere in my home. is there a way to use that find my ipod fature from my computer? i was hoping that the loud noise would help me to look for it.

    - If you previously turned on FIndMyiPod on the iPod in Settings>iCloud and wifi is on and connected go to iCloud: Find My iPhone, sign in and go to FIndMyiPhone
    - You can also have to iPod play a sound via iCloud.

  • I set up my iPhone through iCloud but assigned the wrong cell number to it so I am getting messages that don't belong to me but rather to my husband as I entered his cell number in there - how do I change that number to stop this from happening??

    I set up my iPhone through iCloud but assigned the wrong cell number to it so I am getting messages that don't belong to me but rather to my husband as I entered his cell number in there - how do I change that number to stop this from happening??

    Also, if you are sharing an Apple ID, you will get his iMessages.

  • Every time I open Mozilla Firefox, there is an annoying sound that won't stop, and it sounds kind of like pac man. I t won't stop, and I have no idea where it is coming from. I have tried everything. Any suggestions on what I should do?

    Every time I open Mozilla Firefox, there is an annoying sound that won't stop, and it sounds kind of like pac man. I t won't stop, and I have no idea where it is coming from. I have tried everything. Any suggestions on what I should do?
    == This happened ==
    Every time Firefox opened
    == I opened firefox today, and it won't stop.

    It's just the Google homepage tribute to Pacman turning 30 today. A playable game starts up automatically, use the arrow keys to move Pacman. It's fun!
    You can get Ms Pacman to appear in that game by clicking the "insert coin" button twice and using the WASD keys to move :)
    You can also just change your homepage to something other than google until tomorrow.

  • How To make certain that a page is removed from memory, silverlight

    
    Hello,
    I have a big solution with several branches. These branches was tested individually for errors and memory issues, using VS profiler and debugger. A final solution was found that at highest with animations and music peaked to 100mb, of course high but should
    not be an issue for Windows phone applications, even for low end devices. The branches was then collected to one main branch. A new test was run, and suddenly the memory spiked up towards 200mb and crashed on phones and emulators with out of memory exception.
    We at the team then tried:
    protected override void OnNavigatedTo(NavigationEventArgs e)
    if (App.RootFrame.CanGoBack)
    App.RootFrame.RemoveBackEntry();
    GC.Collect();
    base.OnNavigatedTo(e);
    This was discussed on forums to help with page memory leakage, this however did not solve the issue. We therefore wanted to investigate if pages and other elements got deconstructed and GC.Collected. This we did by implementing deconstructors:
    ~SecondScreen()
    In_Game_Crest = null;
    currentViewModel = null;
    This confirmed our fears that the pages, popups and controls did not get garbage collected, even if we sat everything to null, or
    set everything to private functions. Our code is implemented in a MVVM structure, we therefore looked to ViewModelLocator, and removed the servicelocator, as to force a new viewmodel creation for every page creation.
    This showed that the viewmodels got garbage collected upon navigation, but the views and usercontrols did not. We therefore searched around for the issue and found some links that could help us, referring to IDisposable, we therefore tried with the following
    implementation:
    private bool disposed = false;
    public void Dispose()
    Dispose(true);
    // Take yourself off the Finalization queue
    // to prevent finalization code for this object
    // from executing a second time.
    GC.SuppressFinalize(this);
    protected virtual void Dispose(bool disposing)
    // Check to see if Dispose has already been called.
    if(!this.disposed)
    // If disposing equals true, dispose all managed
    // and unmanaged resources.
    if(disposing)
    // Dispose managed resources.
    currentView = null;
    popup = null;
    Image1 = null;
    Image2 = null;
    // Release unmanaged resources. If disposing is false,
    // only the following code is executed.
    this.Content = null;
    // Note that this is not thread safe.
    // Another thread could start disposing the object
    // after the managed resources are disposed,
    // but before the disposed flag is set to true.
    // If thread safety is necessary, it must be
    // implemented by the client.
    disposed = true;
    // Use C# destructor syntax for finalization code.
    // This destructor will run only if the Dispose method
    // does not get called.
    // It gives your base class the opportunity to finalize.
    // Do not provide destructors in types derived from this class.
    ~FirstPage()
    Dispose(false);
    protected override void OnNavigatedFrom(NavigationEventArgs e)
    this.Dispose();
    base.OnNavigatedFrom(e);
    This however only increased the memory usage by 20 mb, for every call to dispose. Which hopefully would mean that we have misunderstood the use of IDisposable.
    Questions:
    Therefore quite confused, I have learned from my similar question on Stackoverflow, that I should use the VS profiler more intently to find references, but I have not succeeded in finding anything with the profiler. And I do not understand why the
    deconstructors are not fired when I know no references exists.
    Therefore would it help to implement IDisposable and how should it be done in a windows phone Silverlight context?
    Should I do something specific when I utilize the MVVM structure?Any proposals on how to force the deletion and how to do the deletion correctly?
    Or is there some other way to go about it, to ensure that pages with all information is removed.
    Hope for any help, If you want stackoverflow points I also have the following: stackoverflow.com/questions/27744091/implementing-dispose-and-finalize-for-windows-phone-silverlight-pages/

    One way i can suggest is to use 'Using' statement(obviously if not already did that) wherever it is required to work with resources such as opening a connection to database, file operations etc. With this, the resources are disposed automatically as soon
    as 'Using' block goes out of scope.
    e.g.
    using (StreamReader reader = new StreamReader("somefile.txt"))
    your code
    http://developer.nokia.com/community/wiki/Using_Crypto%2B%2B_library_with_Windows_Phone_8

  • Our Windows PC crashed with all our music on it.  There are copies of both purchased (thru iTunes store) and from our own CDs on another HD in a backup file.  They are not linked to a Media file.  Is there any way I can put this music on my new computer?

    Our Windows PC crashed with all our music on it.  There are copies of both purchased (thru iTunes store) and from our own CDs on an external HD in a backup file.  They are not linked to a Media file.  Is there any way I can put this music on my new computer?

    The syncing of music is one way, computer to phone. See this helpful document from a fellow user. Credit goes to the author.
    https://discussions.apple.com/docs/DOC-3141

  • If I buy iWork, will that include Pages, Numbers and Keynote for all my Devices?

    If I buy iWork, will that include Pages, Numbers and Keynote for all my Devices?
    It seems like purchasing Pages, Numbers and Keynote Seperately for my Mac Computers and then again for my iOS 5 Devices ads up to about $100, though iWork costs more as a whole, what would be the key advantages in purchasing iWork not from the app store?
    If i do purchase iWork not from the app store, will it still be available on all my Devices?
    -iPhone
    -iPad
    -Macbook

    ElliotDG wrote:
    my question was whether buying iWork from the apple store would defuse this restriction and make it available on all my devices
    No.

  • Is there any Enterprise Manager Utility that can help update the Hostname

    I have installed An Oracle Database 12c and further planning to install Enterprise Manager 12c CC on top of this,
    Since occassionally my system IP changes due to dhcp configuration, hence i prefer using hostnames instead of IP address and further update hosts.properties file iwthin C:\Windows\System32\drivers\etc\
    further in case if i have to change the hostname of my machine, is there any utility that will help to update the hostname across properties files of all the Enterprise Manager components ?
    Also when installing 12c EMCC, i understand there is a pre-requisite to deconfig dbcontrol.
    In my case when i run from on Oracle 12c Database home, - emca -deconfig dbcontrol db -repos drop,
    I get unkown command error.
    C:\app\Oracle\product\12.1.0\dbhome_1\BIN>emca -deconfig dbcontrol db -repos drop
    'emca' is not recognized as an internal or external command,
    operable program or batch file.
    C:\app\Oracle\product\12.1.0\dbhome_1\BIN>
    kindly guide from where do i run the deconfig command or whether is it really required or not

    Hi,
    Just an update further.
    The 12 EMCC installation of all components completed except for Agent Configuration Assistant.
    View Log of Agent Configuration Assistant :
    ~~~~
    INFO: oracle.sysman.top.agent:About to execute plug-in Agent Configuration Assistant
    INFO: oracle.sysman.top.agent:The plug-in Agent Configuration Assistant is running
    INFO: oracle.sysman.top.agent:Internal PlugIn Class: oracle.sysman.agent.config.AgentConfiguration
    INFO: oracle.sysman.top.agent:Classpath = E:\EnterpriseMgr\agent\core\12.1.0.3.0\oui\jlib\srvm.jar;E:\EnterpriseMgr\agent\core\12.1.0.3.0\jlib\agentConfig.jar;E:\EnterpriseMgr\agent\core\12.1.0.3.0\jlib\emConfigInstall.jar;E:\EnterpriseMgr\agent\core\12.1.0.3.0\sysman\jlib\emagentSDK.jar;E:\EnterpriseMgr\agent\core\12.1.0.3.0\modules\oracle.http_client_11.1.1.jar;E:\EnterpriseMgr\agent\core\12.1.0.3.0\sysman\jlib\log4j-core.jar
    INFO: oracle.sysman.top.agent:AgentConfiguration:agent configuration has been started
    INFO: oracle.sysman.top.agent:Parametes passed to agent configuration are:
    1.ORACLE_HOME=E:\EnterpriseMgr\agent\core\12.1.0.3.0
    2.AGENT_PORT=
    3.ORACLE_HOSTNAME=NTEJANI-VBOX1.in.oracle.com
    4.b_doDiscovery=true
    5.AGENT_BASE_DIR=E:\EnterpriseMgr\agent
    6.AGENT_INSTANCE_HOME=null
    7.s_hostname=NTEJANI-VBOX1.in.oracle.com
    8.OMS_HOST=NTEJANI-VBOX1.in.oracle.com
    9.b_startAgent=true
    10.b_secureAgent=true
    11.b_chainedInstall=true
    12.b_forceConfigure=false
    13.EM_UPLOAD_PORT=4899
    14.b_forceAgentDefaultPort=false
    15.s_staticPorts=
    16.PROPERTIES_FILE=
    b_skipValidation=false
    INFO: oracle.sysman.top.agent:Validating OMS_HOST and EM_UPLOAD_PORT
    INFO: oracle.sysman.top.agent:EM Protocol Switch determined: https
    INFO: oracle.sysman.top.agent:Performing free port detection..
    INFO: oracle.sysman.top.agent:Trying for host : NTEJANI-VBOX1/127.0.0.1 and port : 3872
    INFO: oracle.sysman.top.agent:Trying for host : NTEJANI-VBOX1/10.180.63.214 and port : 3872
    INFO: oracle.sysman.top.agent: Trying for host : /127.0.0.1 and port : 3872
    INFO: oracle.sysman.top.agent:** Agent Port Check completed successfully.**
    INFO: oracle.sysman.top.agent: The agent port is 3872
    INFO: oracle.sysman.top.agent:Paths after canonical format conversions are :
    1. state_dir=E:\EnterpriseMgr\agent\agent_inst
    2. agentBaseDir=E:\EnterpriseMgr\agent
    3. oraHome=E:\EnterpriseMgr\agent\core\12.1.0.3.0
    INFO: oracle.sysman.top.agent:Parent directory of agent instance home:E:\EnterpriseMgr\agent
    INFO: oracle.sysman.top.agent:AgentConfiguration:perform:AgentPortHandler for E:\EnterpriseMgr\agent\core\12.1.0.3.0 and hosts=NTEJANI-VBOX1.in.oracle.com returned Port to Use=3872
    INFO: oracle.sysman.top.agent:Instantiating emctl.template file #DEFAULT_EMSTATE# with E:\EnterpriseMgr\agent\agent_inst
    INFO: oracle.sysman.top.agent:Writing the following contents into E:\EnterpriseMgr\agent\core\12.1.0.3.0\install\oragchomelist
    INFO: oracle.sysman.top.agent:E:\EnterpriseMgr\agent\core\12.1.0.3.0:E:\EnterpriseMgr\agent\agent_inst
    INFO: oracle.sysman.top.agent:Both /etc/oragchomelist and /var/opt/oracle/oragchomelist does not exist.
    INFO: oracle.sysman.top.agent:Executing emctl deploy agent command...
    INFO: oracle.sysman.top.agent:AgentConfiguration: Executing emctl deploy agent command...
    INFO: oracle.sysman.top.agent:Executing the command: cmd /c set NEED_EXIT_CODE=1&&E:\EnterpriseMgr\agent\core\12.1.0.3.0\bin\emctl.bat deploy agent -L -o NTEJANI-VBOX1.in.oracle.com:4899 -N E:\EnterpriseMgr\agent\agent_inst NTEJANI-VBOX1.in.oracle.com:3872 NTEJANI-VBOX1.in.oracle.com
    INFO: oracle.sysman.top.agent:Creating shared install...
    INFO: oracle.sysman.top.agent:Source location: E:\EnterpriseMgr\agent\core\12.1.0.3.0
    INFO: oracle.sysman.top.agent:Destination (shared install) : E:\EnterpriseMgr\agent\agent_inst
    INFO: oracle.sysman.top.agent:Secure Mode: No
    INFO: oracle.sysman.top.agent:DeployMode : agent
    INFO: oracle.sysman.top.agent:
    INFO: oracle.sysman.top.agent:Creating directories...
    INFO: oracle.sysman.top.agent:Creating private.properties...
    INFO: oracle.sysman.top.agent:Creating blackouts.xml...
    INFO: oracle.sysman.top.agent:Creating targets.xml...
    INFO: oracle.sysman.top.agent:Creating emctl control program...
    INFO: oracle.sysman.top.agent:Creating emtgtctl control program...
    INFO: oracle.sysman.top.agent:Agent will not be secured.
    INFO: oracle.sysman.top.agent:Secure REPOSITORY_URL found. New agent should be configured for secure mode
    INFO: oracle.sysman.top.agent:Secure emdWalletSrcUrl found. New agent should be configured for secure mode
    INFO: oracle.sysman.top.agent:Oracle Enterprise Manager Cloud Control 12c Release 3 
    INFO: oracle.sysman.top.agent:Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
    INFO: oracle.sysman.top.agent:Property 'agentTZRegion' is  missing from E:\EnterpriseMgr\agent\agent_inst/sysman/config/emd.properties. Updating it...
    INFO: oracle.sysman.top.agent:An agentTZregion of 'Asia/Calcutta' is installed in E:\EnterpriseMgr\agent\agent_inst/sysman/config/emd.properties.
    INFO: oracle.sysman.top.agent:The command: cmd /c set NEED_EXIT_CODE=1&&E:\EnterpriseMgr\agent\core\12.1.0.3.0\bin\emctl.bat deploy agent -L -o NTEJANI-VBOX1.in.oracle.com:4899 -N E:\EnterpriseMgr\agent\agent_inst NTEJANI-VBOX1.in.oracle.com:3872 NTEJANI-VBOX1.in.oracle.com completed with status=0
    INFO: oracle.sysman.top.agent:Exit value -1
    INFO: oracle.sysman.top.agent:AgentUpgradeMain CreateService FAILED: The specified service already exists.
    INFO: oracle.sysman.top.agent:Failed in creating service Oracleagent12c1Agent
    SEVERE: oracle.sysman.top.agent:Agent configuration has failed
    INFO: oracle.sysman.top.agent:AgentConfiguration:agent configuration finished with status = false
    INFO: oracle.sysman.top.agent:AgentConfiguration:agent configuration finished with status = false
    INFO: oracle.sysman.top.agent:The plug-in Agent Configuration Assistant has failed its perform method
    ~~~
    I tried Starting the agent and it started successfully. But pingOMS failed and also in agent status,, it shows OMS unreachable
    below is the commands i executed
    ~~~~
    E:\EnterpriseMgr\agent\agent_inst\bin>emctl start agent
    Oracle Enterprise Manager Cloud Control 12c Release 3
    Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
    The Oracleagent12c1Agent service is starting..................
    The Oracleagent12c1Agent service was started successfully.
    E:\EnterpriseMgr\agent\agent_inst\bin>emctl pingOMS
    Oracle Enterprise Manager Cloud Control 12c Release 3
    Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
    EMD pingOMS error: An internal error has occurred at the agent: "unable to send response". Check the agent's error logs for details.
    E:\EnterpriseMgr\agent\agent_inst\bin>emctl status agent
    Oracle Enterprise Manager Cloud Control 12c Release 3
    Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
    Agent Version     : 12.1.0.3.0
    OMS Version       : (unknown)
    Protocol Version  : 12.1.0.1.0
    Agent Home        : E:/EnterpriseMgr/agent/agent_inst
    Agent Binaries    : E:\EnterpriseMgr\agent\core\12.1.0.3.0
    Agent Process ID  : 3884
    Parent Process ID : 6060
    Agent URL         : http://NTEJANI-VBOX1.in.oracle.com:3872/emd/main/
    Repository URL    : https://NTEJANI-VBOX1.in.oracle.com:4899/empbs/upload/
    Started at        : 2013-09-06 11:23:37
    Started by user   : NTEJANI-VBOX1$
    Last Reload       : (none)
    Last successful upload                       : (none)
    Last attempted upload                        : (none)
    Total Megabytes of XML files uploaded so far : 0
    Number of XML files pending upload           : 0
    Size of XML files pending upload(MB)         : 0
    Available disk space on upload filesystem    : 82.39%
    Collection Status                            : Collections enabled
    Heartbeat Status                             : OMS is unreachable
    Last attempted heartbeat to OMS              : 2013-09-06 11:25:36
    Last successful heartbeat to OMS             : (none)
    Next scheduled heartbeat to OMS              : 2013-09-06 11:26:06
    Agent is Running and Ready
    E:\EnterpriseMgr\agent\agent_inst\bin>
    ~~~
    Kindly guide.
    Regards,
    Nayan

  • Is there a plugin or script that will optimize my layout to maximize use of document space?

    I'm producing labels for museum gallery objects.  We are printing them on adhesive vinyl with peel off back (i'm not sure what the correct term is at the moment).  We pay for the labels by the sheet.  It costs the same whether I get 2 or 6 labels on an 8.5 x 11 sheet.  We get anywhere from 10 to 200+ of these labels print at a time so you can imagine it can be a challenging puzzle to maximize the use of space in order to minimize the wasted space on each sheet.  It is essentially the same issue that people using laser cutters or CNC routers run into.  The material is too expensive to let any real estate go unused unless necessary.
    Is anyone aware of a plugin or script that can process a document and move text boxes or objects around to the most economical arrangement possible?  I could also produce these labels in Illustrator if this issue cannot be addressed within InDesign.
    Thank you in advance for you advice!
    Brandon

    Well it look like Brandon lost interest when I mention the word "quote".
    Either way the basic algorithm is as below.  (lines 19 to 34 - the rest is just for decoration).
    I might put out a script on my site whenever it comes into existence that would do what Brandon is looking for, it would cost but not too much.
    This only works for fitting heights it will not make use of the horizontal spacing.
    To solve that it might be good to use what's know as the Hungarian Algorithm.  I don't have time for that to put it mildly.
    I've seen the problem referred to as the "Holy Grail" see Re: Is there a script available for arranging elements for optimal use of the printable area?
    Trevor
    // "Trevor's Fitting Algorithm" not optimized but considering the speed of the DOM operations that would be need the optimization would be pointless
    // Generate Random model of Text Frames of a range of heights to be fitted on pages of a given height
    // By Trevor www.creative-scripts.com (Still not there yet!)
    var st = +new Date, tt, frameCollection, pageN, a, aa, n, nFames, t, x, pageHeight, pageNumber = 1, safety, minFrameHeight, maxFrameHeight, xx, result;
    safety = 500; // just in case?
    nFames = 500; // The smaller this is the higher the fill % will be
    pageHeight = 210;
    minFrameHeight = 20; // The smaller this is the higher the fill % will be
    maxFrameHeight = 160;
    a = [];
    frameCollection = [];
    pageN = [];
    xx = 0;
    for (n = 0; n < nFames; n++) {a[n] = ["#" + n ,~~(Math.random() * (maxFrameHeight - minFrameHeight + 1)) + minFrameHeight];}
    a.sort(function (a,b) {return a[1] < b[1]});
    aa = a.join(", ");
    // This is the "Trevor Fitting Algorithm"
    while (a.length && safety--) {
    frameCollection =[];
    t = 0;
        for (n = 0; a[n] != undefined; n++) {
            x = a[n][1];
            if ((t + x) > pageHeight) continue;
            t += x;
            frameCollection.push(a[n]);
            a.splice(n,1);
            n--;
        a.shift();
        x = ~~(100* t / pageHeight);
        xx += x;
    pageN.push("Page [" + pageNumber++ + "] frameCollection: " + frameCollection.join(", ") +
        " \tHeight Used: " + t + ", " + x + "%")
    // Show the Results
    x = pageN.length;
    tt = "\nTook " + ((new Date - st)/1000) + " seconds\n";
    result = "\"Trevor's Fitting Algorithm\" not optimized but considering the speed of the DOM operations that would be need the optimization would be pointless\
    Generates Random model of Text Frames of a range of heights to be fitted on pages of a given height\
    By Trevor www.creative-scripts.com (Still not there yet!)\n******************************\
    A Random Collection of " + nFames + " Text Frames\nHeights Between " +
    minFrameHeight + " and " +  maxFrameHeight +
    " Whatchamacallits\nFitted on " + pageNumber +
    " Pages " + pageHeight + " Whatchamacallits Tall\nAverage Page Filling: " + ~~(xx/x) +
    "%\nThe # Before the Text Frame Number is it's Index (Would really use ID) this is followed by the Height of The Text Frame" + tt +
    "These are the Sorted Random Text Frame Heights\n\n" +
    aa + "\n\n" + pageN.join("\n") +
    "\n\nLast Page Get's the Left Overs - So Might be Quite a Low % Fill\
    Average Page Filling: " + ~~(xx/x) + tt;
    //$.writeln(result);
    var w = new Window ('dialog', '"Trevor\'s Fitting Algorithm"'),
        e = w.add('edittext', undefined, result, {multiline: true});
    /* some fun and games for muti screens */ var sc = $.screens.length, h, wd, c = 0, t; h = ($.screens[0].bottom - $.screens[0].top); wd = ($.screens[0].right - $.screens[0].left); while (sc--) {    t = $.screens[sc].bottom - $.screens[sc].top;    if (t < h) h = t;    t = ($.screens[sc].right - $.screens[sc].left);    if (t < wd) wd = t;};
    e.preferredSize = [.85 *wd, .85* h];
    w.show()

Maybe you are looking for

  • How to bind to a dynamic View in UIX

    I wish to have a UIX page access data from a dynamic View (i.e. the View is created at runtime). Since the View is not created at design time, I cannot create bindings for it in the UIX page's UIModel. Therefore, how do I reference this view in the U

  • I cannot find one specific email

    I have tried multiple times with different email searches, but generally, I am on the street using wifi trying to locate the one email that I know I saw somewhere on the computer earlier. It's either archived in a folder aka "label" if gmail or filed

  • Error URLConnection with Netscape

    I have an applet that searches html pages, it run ok with IExplorer but with Netscape I have problems. I know that the problem is in the connection with the html page. The code is: try URL url = new URL(direccion); getAppletContext().showDocument(url

  • Popup minimize problem in Firefox

    Hi everyone, I'm using JDeveloper 10.1.3.3.0.4157. I'm having problems when I try to minimize a popup window in Firefox. When I do, window minimizes and restores automatically, and it starts "bouncing" to and from the taskbar. To stop it, I must swit

  • RoboHelp Server...Whats Included?

    If I purchase RoboHelp Server, does that also include RoboHelp 6...or do I have to buy both packages? Thanks Doug