Skip navigation
Currently Being Moderated

How do I break (and rejoin) the thread between text boxes?

Apr 8, 2013 9:29 PM

Tags: #text_boxes

I keep right-clicking on the squares on the frame, but nothing pops up to tell me anything.

 

And when I want to re-lay the text, is there a way to automatically delete the text boxes following and connected to the text box I want to keep?

 

Thanks.

 
Replies
  • Currently Being Moderated
    Apr 9, 2013 4:57 AM   in reply to ceilr

    To break the thread, left click the outport at the last frame you want to keep in the thread and then click inside the frame. The rest of the text will be overset, and can be picked up normally and reflowed anywhere you like.

     

    If all you want to do is remove a frame someplace in the middle of a thread though, just selec the frame and delete it. ID will reflow the text in the remaining frames.

     
    |
    Mark as:
  • Currently Being Moderated
    Apr 9, 2013 6:12 AM   in reply to ceilr

    @ceilr – I agree, there is some functionality missing with threaded text frames.

     

    With a selected text frame:

     

    1. Break Story into two (or more) stories *
    2. Remove Text Frames before
    3. Remove Text Frames after
    4. Break Story for every text frame**
    5. Break Text Frame out of the story***

     

    * For that use the script "BreakStory.jsx" by Sergey Anosov at:

    https://sites.google.com/site/dtpscripting/indesign-scripts/breakstory

     

    ** For that use the script "SplitStory.jsx" (comes with every installation of InDesign)
    *** For that use the script "BreakFrame.jsx" (comes with every installation of InDesign)

     

    For #3 see the following JavaScript:

     

    //DeleteAllTextFramesAFTER.jsx
    //Uwe Laubender
     
    /**
    * @@@BUILDINFO@@@ DeleteAllTextFramesAFTER.jsx !Version! Tue Apr 09 2013 14:50:40 GMT+0200
    */
     
    //DESCRIPTION:Remove all text frames AFTER selected one
     
    app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
     
    app.doScript(_DeleteAllTextFramesAFTER, ScriptLanguage.JAVASCRIPT, [], UndoModes.ENTIRE_SCRIPT, "Delete ALL Text Frames AFTER the selected one");
     
    function _DeleteAllTextFramesAFTER(){
     
        if(app.selection.length === 0 || app.selection.length > 1 || app.selection[0].constructor.name !== "TextFrame"){
            alert("Select a SINGLE text frame. Try again!");
            exit(0);
            };
     
        var myResult = confirm("Do you REALLY want to DELETE all text frames AFTER the selected one?");
     
        if(myResult === false){/*DO NOTHING:*/exit(0)};
     
        if(myResult === true){
            
            var myTF = app.selection[0];
     
            while(myTF.endTextFrame !== myTF){
                myTF.endTextFrame.locked = false;
                myTF.endTextFrame.remove();
                };
            
            };
     
    }; //END FUNCTION
    

     

     

    And here the variant for #2:

     

    //DeleteAllTextFramesBEFORE.jsx
    //Uwe Laubender
     
    /**
    * @@@BUILDINFO@@@ DeleteAllTextFramesBEFORE.jsx !Version! Tue Apr 09 2013 15:00:20 GMT+0200
    */
     
    //DESCRIPTION:Remove all text frames BEFORE selected one
     
    app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
     
    app.doScript(_DeleteAllTextFramesBEFORE, ScriptLanguage.JAVASCRIPT, [], UndoModes.ENTIRE_SCRIPT, "Delete ALL Text Frames BEFORE the selected one");
     
    function _DeleteAllTextFramesBEFORE(){
     
        if(app.selection.length === 0 || app.selection.length > 1 || app.selection[0].constructor.name !== "TextFrame"){
            alert("Select a SINGLE text frame. Try again!");
            exit(0);
            };
     
        var myResult = confirm("Do you REALLY want to DELETE all text frames BEFORE the selected one?");
     
        if(myResult === false){/*DO NOTHING:*/exit(0)};
     
        if(myResult === true){
            
            var myTF = app.selection[0];
     
            while(myTF.startTextFrame !== myTF){
                myTF.startTextFrame.locked = false;
                myTF.startTextFrame.remove();
                };
            
            };
     
    }; //END FUNCTION
    

     

    Test the scripts with care. I tested with InDesign CS5.5 v7.5.3 on Mac OSX 10.6.8.

    However, I included the possibility to undo the whole script's action in one go.

     

    Just one additonal remark:

    if your threaded story includes text paths, the text paths are removed but not the objects that  hold them.

     

     

    Uwe

     
    |
    Mark as:
  • Currently Being Moderated
    Apr 9, 2013 5:32 PM   in reply to ceilr

    If you want to insert a new frame, click the outport of the last frame before where you want the new frame, click in the new frame, then click its outport and click where you want to continue.

     
    |
    Mark as:
  • Currently Being Moderated
    Apr 9, 2013 5:37 PM   in reply to ceilr

    1) you might want to look at using keep options to force threaded text to start a paragraph in a new frame. If that doesn't do waht you want, you'll need to split the story. I didn't read Uwe's script so I don't know waht it does, but I think there is a sample script that ships with ID that will break a story into two threads at the frame of your choice (not certain on that, but I know I have one, perhaps written by Dave Saunders). You can do it manually, too, by cutting  the text you want to move, then break the thread as described earlier, then paste into your new frame.

     

    2) This can probably be scripted, too.

     
    |
    Mark as:
  • Currently Being Moderated
    Apr 9, 2013 11:08 PM   in reply to ceilr

    @ceilr – I already answered 1) above: use the script "BreakStory.jsx" by Sergey Anosov.

     

    Or use "StorySplitter_3.0.jsx" by Adi Ravid:

     

    http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail& loc=en_us&extid=1302518&PID=3662453#

     

    Uwe

     
    |
    Mark as:
  • Currently Being Moderated
    Apr 9, 2013 11:10 PM   in reply to ceilr

    @ceilr – and for 2), that I also answered, use the first script "DeleteAllTextFramesAFTER.jsx" I posted in #2.

     

    Uwe

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points