8 Replies Latest reply: Apr 9, 2013 11:10 PM by Laubender RSS

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

    ceilr Community Member

      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.

        • 1. Re: How do I break (and rejoin) the thread between text boxes?
          P Spier CommunityMVP

          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.

          • 2. Re: How do I break (and rejoin) the thread between text boxes?
            Laubender CommunityMVP

            @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

            • 3. Re: How do I break (and rejoin) the thread between text boxes?
              ceilr Community Member

              OK, that works, Peter!  Now suppose I found it necessary to add text in a new box in the middle of the thread.  Is there a way to join that box up between threaded boxes?  (I hope you understand what I'm saying here!)

               

              Thanks,

              • 4. Re: How do I break (and rejoin) the thread between text boxes?
                ceilr Community Member

                And two more questions:

                 

                1. Can a text box's story be "broken" so that I can start up a change of subject in a fresh-starting thread?  Or is that in all the Javascript above?

                 

                2. Left clicking the outport is helpful, but is there also an instant way to remove all the empty text boxes afterwards?  (I'm not going to use them.)  Or do I have to go through the whole doc and delete them one by one?

                 

                Thanks!

                • 5. Re: How do I break (and rejoin) the thread between text boxes?
                  P Spier CommunityMVP

                  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.

                  • 6. Re: How do I break (and rejoin) the thread between text boxes?
                    P Spier CommunityMVP

                    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.

                    • 7. Re: How do I break (and rejoin) the thread between text boxes?
                      Laubender CommunityMVP

                      @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=1302 518&PID=3662453#

                       

                      Uwe

                      • 8. Re: How do I break (and rejoin) the thread between text boxes?
                        Laubender CommunityMVP

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

                         

                        Uwe