With Grep SUPERSCRİPT apply character style

I want the script with
contained in document SUPERSCRIPT
apply a character style
app.findGrepPreferences = app.changeGrepPreferences = null;      
app.findGrepPreferences.findWhat = Position.SUPERSCRIPT; //??
//app.changeGrepPreferences.changeTo = "";
app.changeGrepPreferences.appliedCharacterStyle = "myChar";
app.activeDocument.changeGrep(); 
app.findGrepPreferences = app.changeGrepPreferences = null;

Try this,
app.findGrepPreferences = app.changeGrepPreferences = null;     
app.findGrepPreferences.position = Position.SUPERSCRIPT;
app.changeGrepPreferences.appliedCharacterStyle = "myCar1";
app.activeDocument.changeGrep();
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.position = Position.SUBSCRIPT;
app.changeGrepPreferences.appliedCharacterStyle = "myCar2";
app.activeDocument.changeGrep();
app.findGrepPreferences = app.changeGrepPreferences = null;
Vandy

Similar Messages

  • InDesign crash while applying character style

    Hi all,
    A)I have problem with applying character style to selected text.
    when character style is applied to selected text indesign get crashes.
    my code snippet is as follow
    input parameters
    1.RangeData paraRange // start and end index of paragraph
    2.storyUIDRef // uidref of current story
              code snippet
              // valid text model
              InterfacePtr<ITextModel> textModel(storyUIDRef, UseDefaultIID());
              if (!textModel)
       break;
              //wax strand
              InterfacePtr<IWaxStrand> waxStrand(((IWaxStrand*)textModel->QueryStrand(kFrameListBoss, IID_IWAXSTRAND)));
              if (waxStrand == nil)
       break;
              //WaxIterator
              K2::scoped_ptr<IWaxIterator> waxIterator(waxStrand->NewWaxIterator());
              if (waxIterator == nil)
        break;
              //first wax line of paragraph
              IWaxLine* waxLine = waxIterator->GetFirstWaxLine(paraRange.Start(nil));
              //iterate each waxline
              while (waxLine != nil && (waxLine->TextOrigin() < paraRange.End()))
        //Iterate for all runs
       K2::scoped_ptr<IWaxRunIterator> waxRunIter( waxLine->QueryWaxRunIterator() ) ;
       IWaxRun * waxRun = waxRunIter->GetFirstRun();
       while (waxRun)
       int32 startPos  = waxRun->TextOrigin();
       int32 endPos = startPos + waxRun->GetCharCount();
       RangeData textRange(startPos ,endPos);
       ISelectionManager* selMgr = m_activeContext->GetContextSelection();
       if(!selMgr)
        break;
       //get valid textselection suite
      InterfacePtr<ITextSelectionSuite> suite(selMgr, UseDefaultIID());
                                  if (!suite)
       break;
                                  //select  text
      suite->SetTextSelection(storyRef, textRange, Selection::kScrollIntoView, nil);
                                  //created style from selection using  " SnpManipulate::TextStyleCreateStyleFromSelection" method.
    my code get crashed at highlighted text( int32 startPos  = waxRun->TextOrigin();).
    B)my next question is how to get textstyle ranges of a selected paragraph.
    please help me.
    Thanks
    Tahir

    A) Make sure that the all parcels of the text is composed before you iterate it, see ITextParcelListComposer. I don't quite understand what you are trying to achieve. You want to apply a character style to a range of text, but the code iterates wax lines and iterate the runs of each line  and sets the current selection to be the run on each iteration. Why not just:
    InterfacePtr<ICommand> icmd(textmodelCmds->ApplyStyleCmd(index, length,styleUID,kCharAttrStrandBoss,kFalse));
    B) Walk the kCharAttrStrands to the get information:
    InterfacePtr<IStrand> strand((IStrand*)textmodel->QueryStrand(kCharAttrStrandBoss,IStrand::kDefaultIID));
    then call stand->GetRunLength() a number of times until, you are through the selected part of the text / paragraph

  • Getting ALL applied Character Styles in a paragraph

    I'm trying to get all applied Character Styles of a paragraph in a InDesign CS2 Document.
    With myParagraph.appliedCharacterStyle I just get the first but not all applied Charcter Styles.
    Is there a possibility to get them?
    greets
    st

    If they're applied directly and not by nested style, then you should examine the appliedCharacterStyle of each TextStyleRange in the paragraph.
    If they're applied by nested style, you have to do a lot more work.
    Dave

  • Applescript-Apply Character Style to Select Words in InDesign CC

    I'm trying to apply a character style to the first several words of a paragraph. The number of words varies, but it is essentially every word before a comma.
    Here's what I have so far:
    tell application "Adobe InDesign CC 2014"
      tell document 1
      tell page 2
      tell (item 1 of page items whose label is "HabitsContent")
      tell paragraph 2
      repeat with i from 1 to count of characters
      if contents of character i = "," then
      exit repeat
      end if
      end repeat
      set applied character style of characters 1 thru i to "Italic"
      end tell
      end tell
      end tell
      end tell
    end tell
    Viewing the log of the script, it finds the comma; however, the script ends up italicizing the entire paragraph. Any ideas?

    For anyone else who has a similar question, here's what works:
    tell application "Adobe InDesign CC 2014"
    tell paragraph 2 of (item 1 of page items whose label is "HabitsContent") of page 2 of document 1
    set a to paragraph 1 as list
    set a to text item 1 of a
    set old to AppleScript's text item delimiters
    set AppleScript's text item delimiters to {","}
    set font style of characters 1 thru (count of text item 1 of a) to "Italic"
    set AppleScript's text item delimiters to old
    end tell
    end tell

  • Finding MANUALLY applied character styles

    Hi all,
    We're in the process of switching to an XML workflow, and as one of our interim steps we're applying tags to paragraph and character styles in some of our documents. I'm aware of the option to map styles to tags and this should work well for paragraph styles. However, we're looking for a way to only map the character styles that have been manually applied.
    As an example, we have a paragraph style for instructions that has a bold number nested at the beginning of each paragraph. In other places, the same character style may be used to bold a specific word, but it is applied manually. Is it possible to map to tags ONLY the character styles that were applied manually? We do not want tags identifying character styles that were applied via Nested Styles or GREP Styles.
    I am assuming this would take some sort of script, which is why I'm posting in the scripting forum. Does anyone know if this is possible?
    Thanks in advance,
    Matthew

    Another InDesign oddity!
    If you fill a frame full of placeholder text and assign a "Bold" character style to, for example, a Nested Style:1 word, and a GREP style \<\w{4,6}\>, then use regular (or GREP) Find Text to search for the character style, it'll only highlight words that are at the start of the paragraph. Now that is wrong, wrong, wrong, because
    (a) it should not find any of them -- if you click your cursor into one of these bolded words, the Character Style panel says it's [None].
    or
    (b) it should find all of them, not just those that happen to be at the start of a paragraph. (BTW -- it's not the Nested Style it picks up; when using only GREP styles it'll also find words-at-the-start).
    It is funny, if things like this tickle you, that in a script "findText" works exactly the same. However: if you 'found' bold text and then interrogate what character style it has applied, it will only return your "bold" style if it was applied manually.
    See this script -- test with a placeholder text, aforementioned Nested/GREP styles, and a few hand-picked words that you applied "bold" to yourself. It will only report the ones you marked.
    app.findTextPreferences = null;
    app.findTextPreferences.appliedCharacterStyle = "bold";
    list = app.activeDocument.findText();
    r = [];
    while (list.length)
         next = list.pop();
         if (next.appliedCharacterStyle == app.activeDocument.characterStyles.item("bold"))
              r.push (next.contents);
    alert (r.join("\r"));

  • InDesign erroneously applies character style to imported text

    For a year, I had been importing text into InDesign with little trouble until this problem starting happening and I can't figure out why.
    Let's say I have a CS3 file with defined character and paragraph styles.
    If I draw an empty text box, InDesign shows the character style "superscript" and paragraph style "ext_all" are applied. I can select "Break Link to Style," but if I import text into that box, the "superscript" character style is applied.
    The following happens whether I create a text box first or not:
    If I import a styled Word file, all the text comes in styled "superscript" until it reaches a Word character style.
    If I import an InDesign Tagged Text file, all the text comes in styled "superscript" until it reaches a character tag.
    If I import a very simple one sentence rtf file, all the text is styled "superscript."
    Anyone run into this? I've tried googling, but can't find a discussion about it. Thanks in advance!

    Perhaps you've inadvertently set those styles as the defaults? That would happen if you click on them with nothing selected. For the current document switch to the text tool and make sure there is no cursor active or text frame selected, then check to see that the character style is set to [None] and the paragraph style to what you would like to be your default. Also check the settings in the character and paragraph panels.
    To make sure this doesn't carry forward into any more new documents, if indeed that was the problem, close all documents and repeat the above steps. With no documents open your selections will become the defaults for all new work until changed.
    Peter

  • [CS5 JS] Problem in Applying character styles xml tag names

    Hi,
    e.g. 1
    <italic>This is a italic text with <sup>superscript value</sup></italic>
    e.g.2
    <sup>This is a superscript text with <bold>Bold superscript</bold></sup>
    <italic>  mapped to character style "italic" and
    <sup> mapped to character style "sup"
    In my java script I already mapped the xml tags to specific character styles. In some of the cases (see e.g.1 and e.g.2) I need to map it to other character styles.
    In e.g.1 I need to apply a new character styles "italicSup" for the text "superscript value" same way
    In e.g.2 I need to apply a new character styles "BoldSup" for the text "Bold superscript".
    Can any know how to do this?
    Green4ever

    FYI, I am using
    Win Xp-SP2, CS5 7.0.3

  • How to write script to apply character style?

    Hi,
    I'm on a Macbook pro and without a number pad so I can't assign a shortcut for the character styles. I did hear of a roundabout solution where you can assign a shortcut to a script which applies the character styles. Can anyone write this script?
    My character style is called 'Features bold'.
    I'm new to scripting, sorry if this is a dumb question.
    Cheers

    Hi,
    1. Save this code as .jsx file inside your Script Panel folder
    2. Apply a shortcut using Edit:Keyboard shortcuts... menu
    Option to choose:
    suggest to choose an option "context": "Text", so you can use more shortcuts which are busy with other contexts.
    #target indesign
    if (app.selection && app.selection[0].hasOwnProperty ("baselineShift") ) {
      var cName = "Features bold";
      var mCstyle = app.activeDocument.characterStyles.item(cName);
      if (mCstyle.isValid)
           app.selection[0].applyCharacterStyle(mCstyle);
      else
           alert ("CharStyle: " + cName + " not found");
    else
      alert ("Some text supposed to be selected...");
    Jarek

  • [JS][CS3]Applying Character Style to First Word

    I am a noob as far as Javascript  is concerned, and I was hoping for a little guidance.
    Here's my scenario: I have a book that has been typeset all in one file; the main content is all in one story. I want to select the first word of every text frame on each page and apply a character style. My goal is to utilize this character style to indicate page breaks in the XML--I'll map the style to a specific tag.
    So far I have this poor specimen:
    var myDocument = app.activeDocument;
    var myPage = myDocument.pages.item(1);
    var myTextFrame = myPage.textFrames.item(0);
    if( app.activeDocument.stories[0].paragraphs[0].words[0] != null )
    myTextFrame.paragraphs.item(0).words.item(0).appliedCharacterStyle =
    myDocument.characterStyles.item('foo');
    I know, I haven't set up any sort of loop yet (which will be trickier given the fact that there will be blank versos, etc). What I'm trying to do in this is to select the first word in the first paragraph on the second page--which it does in fact do. Problem is, the first paragraph on the second page starts on the first page, so I'm selecting that a word on the first page, not the second page.
    As I said, lots of work to do but a little help on getting to the right word would be most appreciated.

    Well, you were on the right track, but testing 'myText' fails if there is no text frame on a page because it fails one line earlier
    >var myTextFrame = myPage.textFrames.item(0);
    just before this, you should test the number of text frames:
    if (myPage.textFrames.length > 0)
      ... your stuff ..
    Only use this if you are absolutely positive there is just a single text frame on each page! A slightly better way would be to always loop over each textframe:
    for (frames=0; frames<myPage.textFrames.length; frames++)
      var myTextFrame = myPage.textFrames.item(frames);
      ..etc.
    in which case you also don't have to test its length first (the loop will not be executed if there are zero text frames).
    [Techy] Since you have only one continuous story, an even better way would be to loop over the textframes of that story alone. You have to identify the story somehow, and I usually click the text cursor in the one I need:
    myStory = app.selection[0].parentStory;
    or you can rely on the fact that the story starts in the only text frame on page 1:
    myStory = app.activeDocument.pages[0].stories[0];
    (I think that oughta work.) Then, each frame of this story up till the end can be found in the array
    myStory.textContainers
    which are usually text frames. You can loop over these using
    for (frame=0; frame<myStory.textContainers.length; frame++)
      myTextFrame = myStory.textContainers[frame];
    ..etc.

  • With GREP, is there a way to assign a character find/change to a p style?

    I'm looking for more ways to automate text styling in the magazine I produce. In InDesign, I can assign find/replace command strings in the Find/Change GREP window, but I've found no online source that tells me how to find/replace characters using GREP WITHIN a p style. It seems as if the latter GREP capability is limited to changing character styles and can't search and replace actual characters.
    Example: I have a list of recipe ingredients. I want to replace the quantity (one to three digits) at the beginning of each ingredient with a tab-digit(s)-tab combination. In Find/Change, I can enter "\d+\s" and replace with "\t$0\t" but I don't see a way to assign that capability to a p style. I want this find/change to occur automatically any time copy is added to text tagged with the Recipe Ingredients paragraph style, so I don't have to keep running a Find/Change each time we edit the page. One power user has told me it's not possible. Any insight or alternative solution would be much appreciated.

    Your power source has it right, GREP Styles can only apply character styles to the text it finds.
    And there is no easy way to have text replaced automatically -- you would still need to run a script, or press a hotkey or something.

  • How do I apply a specific character style to specific text?

    Long-time Photoshop and Illustrator user. New to Indesign.
    Fortunately, this isn't an issue of how to go about creating fractions. I've already chosen a route for that. I'm simply applying a Character Style that checks the opentype "fractions" box.
    Here's an example of the content I'm dealing with:
    Above is my styled table in Indesign, after pasting in data I'm being given data in excel spreadsheets.
    How might I quickly apply my "ptable_BODY FRACTIONS" style to only certain text, like: "1/2"  +  "1/4"  +  "1/8"  & preferably random arbitrary fractions like "34/69"?
    GREP can do some great things, but can it selectively apply character styles?
    This might be a job for a paragraph style. I'm not sure.  . .

    @ John
    That's exactly what the GREP Styles feature does. Arriving at a GREP expression that accurately targets your fractions may be another matter considering your screen shot shows your content to have no space between whole numbers and fractions.
    Right. It keeps including the whole number preceding the fraction.
    I'm dead set on there not being a space between the whole number and fraction, too.
    I'm trying to figure out how to tell Indesign to take all fractions and give them opentype fractions settings.
    I'll only be dealing with standard fractions I'm hoping, so arbitrary fractions shouldn't be necessary.
    Just halves, quarters, eighths, and sixteenths should be ok. These are likely the only fractions I'll ever need to deal with: 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16, 15/16.

  • Applying [None] character style

    I have a script that finds text with a certain character style, cuts that text from the main story and anchors it in a frame that sits in the margin.
    Everything works fine except that I'd like to have the option of removing the character style. However, when I apply the [None] character style InD shows [None] in the character style lists but the formatting for the character style that was just removed remains on the text.
    Is there a way to have it work as if the [None] was manually selected from the character style list? i.e.: where the character style formatting is removed as well?
    Thanks,
    Ken

    Hello!
    I'm trying to start understanding this javascript thing... Does anyone know how I can modify this so it will also have the option of removing all the character styles in all the text frames, or all the stories in the document? I have several documents with 10 stories each that will need to have the character styles removed before we continue formatting.
    I took a swing at it myself, but haven't been able to get it to work. I really don't know much about scripting! Here's what I tried:
    if (app.documents.length == 0) ErrorExit("Please open a document and try again.");   
    var gScriptName = "Apply character style None keeping overrides"; 
    var gScriptVersion = "1.0"; 
    var doc = app.activeDocument; 
    var sel = doc.selection[0]; 
    var all = app.documents[0].stories.everyItem()
    if (doc.selection.length != 1) ErrorExit("One text frame or some text should be selected, or the cursor should be inserted into the text."); 
    if (sel.constructor.name == "TextFrame") { // a text frame is selected 
         ApplyNone(sel.texts[0]); 
    else if (sel.constructor.name == "Character" || // some text is selected  
         sel.constructor.name == "Word" || 
         sel.constructor.name == "TextStyleRange" || 
         sel.constructor.name == "Line" || 
         sel.constructor.name == "Paragraph" || 
         sel.constructor.name == "TextColumn" || 
         sel.constructor.name == "Text") 
              ApplyNone(sel); 
    else { 
         ApplyNone(all); 
    //===================================== FUNCTIONS  ====================================== 
    function ApplyNone(sel) { 
         var noneStyle = doc.characterStyles.item("[None]"); 
         var basedOnNone = app.activeDocument.characterStyles.add({name:"None", basedOn:noneStyle}); 
         sel.applyCharacterStyle(basedOnNone); 
         basedOnNone.remove(noneStyle); 
    function ErrorExit(error, icon) { 
         alert(error, gScriptName + " - " + gScriptVersion, icon); 
         exit(); 
    I also tried this, but to no avail.
    ar gScriptName = "Apply character style None keeping overrides"; 
    var gScriptVersion = "1.0"; 
    var doc = app.activeDocument; 
    var sel = doc.selection[0]; 
    var all = app.documents[0].stories.everyItem()
    ApplyNone(all); 
    //===================================== FUNCTIONS  ====================================== 
    function ApplyNone(sel) { 
         var noneStyle = doc.characterStyles.item("[None]"); 
         var basedOnNone = app.activeDocument.characterStyles.add({name:"None", basedOn:noneStyle}); 
         all.applyCharacterStyle(basedOnNone); 
         basedOnNone.remove(noneStyle); 
    function ErrorExit(error, icon) { 
         alert(error, gScriptName + " - " + gScriptVersion, icon); 
         exit(); 
    Any thoughts? I'm thinking that app.documents[0].stories.everyItem() probably isn't right...
    Thanks for your help!

  • Break link to Character Style with JS (CS4ME)

    Hi,
    I'm wondering how to break a link to a character style in JS. By break
    link I mean removing the character style but preserving the formatting.
    Given a selected textStyleRange, say, in the UI there are two ways of
    doing this. One is to click "Break link to Style" in the flyout meny of
    the character style palette.
    The other is to right-click and select "Apply character style."
    It's a little unintuitive, because CLICKING on removes overrides,
    but right-clicking and selecting the menu option doesn't.
    So when I saw that, I said to myself aha! Probably:
    myText.appliedCharacterStyle = myCharStyle
    is equivalent to clicking on , while
    myText.applyCharacterStyle(myCharStyle)
    is equivalent to right-clicking on and choosing "Apply character
    style."
    But it isn't.
    They both apply None and remove all formatting.
    So, anyone know how to break a link to character style without removing
    formatting in JS?
    Thanks,
    Ariel

    Thanks Peter. That's interesting. After Shabbos I'll have to try figure
    out how to apply a character style without removing overrides as well.
    It may be a two-step procedure.
    Thanks,
    Ariel

  • How to specify character style to anchored objects markers depending on the objects formats?

    I have a long document contains much of anchored text frames with custom positions and want to delete them by aplying character styles to their markers.

    Create a new character style to apply it. And change the character style name in this code to yours, then execute it.
    main ();
    function main (){
        app.findGrepPreferences = NothingEnum.NOTHING;
        app.findGrepPreferences.findWhat = "~a";
        var objectsArray = app.activeDocument.findGrep();
        for (var c = 0; c < objectsArray.length; c++) {
            if (objectsArray[c].textFrames.length > 0) //The anchored object is a text frame
                var targetTextFrame = objectsArray[c].textFrames.item(0);
                var textFramePosition = targetTextFrame.anchoredObjectSettings.anchoredPosition;
                if (textFramePosition == AnchorPosition.ANCHORED) // the object have custom position
                    //Create a new charater style and change the character style name to yours. 
                    objectsArray[c].appliedCharacterStyle = app.activeDocument.characterStyles.itemByName("Delete");
    Then make a GREP search for this character style, and if you want delete them all by Change All button.

  • Automate character styles?

    Tuesday morning, I have to sit down and pop hundred and fifty summer events into a flyer. Choice A is easy - I can print them and type them. In the shower, though, I began thinking about Choice B, and I don't know whether InDesign can do what I want.
    I have control over the database where they're hosted, and it's pretty easy for me to pop them out in the format
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    Date - Time  [carriage return]
    Event name
    ~~~~~~~~~~~~~
    Date - Time  [carriage return]
    Event name
    ~~~~~~~~~~~~~
    Date - Time  [carriage return]
    Event name
    ~~~~~~~~~~~~~
    which is all the information I need on this document. On the finished product, though, I want Date and Time to have character styles applied (for color and weight). It's not that hard for me to assign hot keys to Character styles and do this by hand - just twenty minutes of tedium.
    But!
    Could I format this as
    (where the symbols are just unique symbols)
    ~~~~~~~~~~~~~
    ªDate - ∞ £ Time ¡ [carriage return]
    Event name
    ~~~~~~~~~~~~~
    and then use a Find/Replace function to tell InDesign
    -  in the case of "  ª . . . ∞  ", apply character style "Date style"
    -  in the case of "  £ . . . ¡ ", apply character style "Time style"
    and then go through and delete all instances of ª, ∞, £ and ¡
    (Extra spaces applied for ease of reading)
    Or, if I'm imagining this wrong, is there another way I can format the original data to automate the application of styles?

    I don't even think you'd need grep for this.
    I'd create two paragraph styles, one for date/time with the next style being event name and event name with the next style being date/time.
    Then create a character style for time and have the base paragraph style for date/time being the formatting you want just for date.
    The date time style would have nested style with none through the hyphen and time through the end of the paragraph.
    Place the text and then select all of it and in the paragraph styles panel right click date/time and from the contextual menu choose apply date/time and next.
    That should fully format all of your text.
    Bob

Maybe you are looking for