is now part of CreativePro.com!

Rotate Text Inside a Frame

28

At the Seattle InDesign User group last week, someone asked me how to rotate text inside a frame. I knew the answer… I just couldn’t move it from the back of my brain to the front of my brain. Fortunately, I rediscovered the answer when I got home, so here it is for him… and you!

Note that this trick is courtesy of Ashley Mitchell at Adobe, who told Tim Cole, who wrote it up in this PDF. But it’s hard to find PDFs on our site right now, so I’m writing it up here.

Start by placing a rotated text frame over the text frame you already have (the one with the text in it). Ensure this frame is smaller than the original. The text frame should be rotated the same angle as you want the text to be rotated, of course:

rotateText1.png

Now cut the text from the original frame into the new frame:

rotateText2.png

Finally, select both text frames with the Selection tool and choose Object > Pathfinder > Add:

rotateText3.png

See, that wasn’t hard, was it?

David Blatner is the co-founder of the Creative Publishing Network, InDesign Magazine, CreativePro Magazine, and the author or co-author of 15 books, including Real World InDesign. His InDesign videos at LinkedIn Learning (Lynda.com) are among the most watched InDesign training in the world.
You can find more about David at 63p.com

Follow on LinkedIn here
  • Andreas Galster says:

    Wow that’s brilliant, thanks :)!

  • Marc Autret says:

    Hey, we can script this:


    // Rotate inside

    var tf = app.documents.length &&
    app.selection.length &&
    app.selection[0];

    var a, ep;

    if( tf && tf instanceof TextFrame &&
    null !== (a=prompt("Enter the new angle:",
    tf.rotationAngle, "RotateInside")) )
    {
    ep = tf.paths[0].entirePath;
    a = parseFloat(a);
    tf.rotationAngle = a;
    tf.paths[0].entirePath = ep;
    }

    @+
    Marc

  • Peter says:

    Wow, that’s awesome! But is the text rotation an attribute of thre resulting frame, or is it text formatting? If so, can it safely be saved as a paragraph style and re-applied? Also, is this supported by Adobe or do we have to fear that documents that use this kind of thing will break when upgrading to a new version?

  • Marc Autret says:

    > Is the text rotation an attribute of the resulting frame ?

    Yes. The rotation is applied to the frame, you cannot handle this at the paragraph style level.

    David’s trick is based on the fact that any text frame has an ?inner path? which can be changed independently from the bounding box itself. That feature is supported since InDesign 1.0 ?I believe? so there is no risk it dies out ;-)

    @+
    Marc

  • Gfx-Dzine says:

    Thanks for the tip.

    On one hand Indesign can be so cool and helpful but on the other hand at times also so very non-intuitive/over technical..

  • @Peter: As Marc said, this is not magic and is harmless. Technically, what is happening is that the result is a rotated text frame that appears unrotated. If you select it and look at the Control panel, you’ll see a value in the rotation field. In the example above, if we remove the rotation (set it to zero), the text would appear “straight” inside a diamond-shaped frame.

    @Marc: Thank you for the script! If others want to try it, they can download the jsx file here

  • Stix Hart says:

    OK that’s cool, now how do I rotate one character only within a paragraph… :)

  • Dr.Bon says:

    So if there is this inner frame in an text frame, why can’t I select that with the direct select tool. Personally I find the way to create this rotated text frame, is not very user friendly

  • First of all, there is no need to cut and paste text for this effect. Simply connect the in- and outport of the two frames and then use the pathfinder.

    Maybe inner frame or inner path are not the right words to make this clear?!

    If you select a frame with the selection tool, then you select the bounding box of this frame. If you alt-click on one of the 4 pathpoints, then you select the path of the frame.

    So another workaround could be, first select the frame with the selection tool, rotate maybe 45°, then switch to the direct selection tool, alt-click to select all path points and rotate -45°

  • Marc says:

    > So if there is this inner frame in an text frame,
    > why can?t I select that with the direct select tool.

    Actually there is no ?inner frame? within the TF, there is an ?inner path?. But this is the same TF. The Selection Tool (V) allows you to select the bounding box of the TF, while the Direct Select Tool (A) allows you to select the path points.

    > Personally I find the way to create this rotated
    > text frame, is not very user friendly.

    Try the script above. With it you don’t need to create a temporary text frame.

    1) Create a regular text frame (with any text contents);
    2) Select the TF;
    3) Run the script and change the ?rotation angle.?

    That’s it. (And you can rerun the script at any time if you need to change the angle again.)

    @+
    Marc

  • @Stix: Curiously, you can rotate individual characters in the Japanese version of InDesign, so I’m pretty sure the feature is in other versions, under the hood. But it would take a scripter or developer to uncover it. Marc? Rotate a selected character? ;)

    @Dr Bon: As Marc noted, there is no inner frame that is selectable. Yes, this is a non-intuitive solution, but that’s partly why indesignsecrets is here!

    @Marc: I think the term “inner path” is difficult for people to understand; perhaps it’s a scripting term. To me, it is simply a normal text frame with text in it, but it is rotated in such a way so that it does not appear rotated.

  • @Kai: That’s a great tip! (Rotate the frame, then select the points and rotate back… brilliant.) Note that it will work for rectangles and round frames, but not for some kinds of oddly-shaped frames, where you would still need Marc’s script or my manual method.

  • Marc says:

    @David
    > Marc? Rotate a selected character?

    Yes, this seems technically possible since ID CS5, although it sounds to me like an hidden feature. The point is that the scripting DOM implements a new property, characterRotation, which provides very interesting results. However, Harbs ?from InTools? told me that we are not supposed to use this property in latin-based text. Indeed, it causes unexpected side effects under some conditions…

    @+
    Marc

  • Marc says:

    @David
    > I think the term ?inner path? is difficult for people
    > to understand. (…) To me, it is simply a normal text
    > frame with text in it, but it is rotated in such a way so
    > that it does not appear rotated.

    We can see things that way. Actually a quite regular rotation is applied to the frame ?you can check this by selecting the whole object with the Selection Tool. But it’s important to mention that the last screenshot of your article (rotateText3.png) does not show the actual bounding box of the frame, it shows its (rectangular) ?path?. I believe this is the official term, as documented here:
    https://bit.ly/cEniWp

    @+
    Marc

  • Trevor says:

    @ Stix Hart, David & Marc

    To rotate a letter;
    Select it, then go to the type menu and select “Create Outlines” or as David would put it press Ctrl (Cmnd) + O this coverts the letter to a graphic which can be rotated to your hearts content.
    Then Cut the rotated letter and delete the original non rotated letter and re-paste the rotated letter in text mode (i.e. you should have the text cursor where you want to put the letter) so that it will be an anchored object and will move with the rest of the text.

    I would put in a screen shot but I don’t know how to.

  • Trevor says:

    I forgot to mention that one can then use Marc’s very nice script.

  • Harbs says:

    @Marc Yes. Character rotation is a feature of the J composer. It rotates individual characters. That’s very different than what is being discussed here (i.e. rotating whole lines of text). Character rotation only works correctly when using the J composer. When using the Roman or World Ready composers, the entire paragraph gets rotated using the character rotation of the first character in the paragraph…

    You CAN use it for some weird looking effects, but in most cases it’s not very nice… ;)

    Harbs

  • Harbs says:

    If someone does want to rotate individual characters, you can do that using World Tools Pro…

    (You’d select the J composer and select any arbitrary angle in the World Tools (CJK) panel…)

  • Trevor says:

    @ Harbs
    I couldn’t figure out what was wrong with my suggestion above of using the “create outlines” function which could be rotated with any composer.

    That is except for formatting the letter (Positioning functions work but size and alterations ones like underling, bold, wide don’t)

    That being said as long as the formatting is done first it seems to work well.

  • Harbs says:

    @Trevor I didn’t notice you suggestion. It’s a good one except for the fact that the text becomes non-editable…

  • Gorillamo says:

    Hi David,
    This is a very neat trick, but could you show an example of how it might be used?

  • Frances says:

    Marc, THANK YOU for that script! You’ve just saved me all sorts of manual labor rotating wide tables! My team is going to love you for this (and I already do).

  • filip mond says:

    Hey guys,
    is there any way to rotate only one letter?
    I need to use some special sign that doesn’t exist as character so I want to use bracket rotated 90°.
    I don’t want to use inserted frame.

    How can I do that? Thanks for help.

    • Gules says:

      I’ve found no means to do this outside of the J composer, so when I need to have a single rotated character, I either rely on an inserted character within a rotated subframe, an embedded graphic, or else I make the new glyph available at the font level using FontLab Studio as a packaged font alongside the document.

  • Jenna says:

    useful… BUT does anyone else find the text comes out looking kinda crooked and up and down.. like its at an angle but its not even…. :( looks messy.. any advice? i run on CS6… kinda find Photoshop makes it straight.. but can’t get the spacing between paragraphs right… HUFF

  • Amelia says:

    THANK YOU SO MUCH! This was exactly what I needed!

  • >