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

Similar Messages

  • [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.

  • 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

  • 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

  • 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"));

  • 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

  • [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

  • 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

  • Applying Character Attributes without Selecting Text

    How do I apply a character attribute to a range of text without selecting the text? (If it's selected, I can do a ITextAttributeSuite::SetBooleanAttribute(), but I can't select the text for this particular case.)
    I tried IAttributeStrand::DoApplyOverrides() and ICommand::ApplyCmd(), but neither did anything. Maybe I'm setting up the calls wrong. I'll continue to investigate, but in the meantime, if anyone knows how to do this, please let me know. Thanks.

    You could try an unmanaged selection with the selection suite -<br /><br />InterfacePtr<ITextTarget> target((ITextTarget*)CreateObject(kTextSuiteBoss, IID_ITEXTTARGET);<br />target->SetTextUnmanaged(textModelRe, RangeData(s, e, RangeData:kLeanForward));<br /><br />Ian

  • Apply Clear Overrides after creating such character styles...

    Hi everyone,
    After importing the Word document into InDesign CS3 in some of the paragraphs there is some style overrides. The InDesign styles formatting are not intented with the paragraphs properly. Eventhough the word styles are mapped with InDesign styles exactly. If i select all the paragrahs and click the option "Clear Overrides" from the paragraph styles palette, all the InDesign styles formatting are applied properly but the character style formatting get removed. So i have planned to create script to character style for each font style and each formatting of the characters. After doing this i can clear the overrides of paragraph styles without hassle. I have created the script to create character styles for character formatting and its working fine but when i tried to run this script for 2nd time in the same document it showing some error in it. Please find my script below and it is too big,
    //To find Font styles and character formatting and replacing it with character styles
    //Script for CS3
    #target InDesign
    var myDoc = app.activeDocument;
    if (myDoc.characterStyles.item("Itl") == null){
    var Itl = myDoc.characterStyles.add({name: "Itl", fontStyle: "Italic"});}
    if (myDoc.characterStyles.item("bl") == null){
    var bl = myDoc.characterStyles.add({name: "bl", fontStyle: "Bold"});}
    if (myDoc.characterStyles.item("bItl") == null){
    var bItl = myDoc.characterStyles.add({name: "bItl", fontStyle: "BoldItalic"});}
    if (myDoc.characterStyles.item("bItal") == null){
    var bItal = myDoc.characterStyles.add({name: "bItal", fontStyle: "Bold Italic"});}
    if (myDoc.characterStyles.item("sb") == null){
    var sb = myDoc.characterStyles.add({name: "sb", fontStyle: "Semibold"});}
    if (myDoc.characterStyles.item("sbItal") == null){
    var sbItal = myDoc.characterStyles.add({name: "sbItal", fontStyle: "Semibold Italic"});}
    if (myDoc.characterStyles.item("blk") == null){
    var blk = myDoc.characterStyles.add({name: "blk", fontStyle: "Black"});}
    if (myDoc.characterStyles.item("obl") == null){
    var obl = myDoc.characterStyles.add({name: "obl", fontStyle: "Oblique"});}
    if (myDoc.characterStyles.item("li") == null){
    var li = myDoc.characterStyles.add({name: "li", fontStyle: "Light"});}
    if (myDoc.characterStyles.item("liItal") == null){
    var liItal = myDoc.characterStyles.add({name: "liItal", fontStyle: "Light Italic"});}
    if (myDoc.characterStyles.item("sup") == null){
    var sup = myDoc.characterStyles.add({name: "sup", position: Position.superscript});}
    if (myDoc.characterStyles.item("sub") == null){
    var sub = myDoc.characterStyles.add({name: "sub", position: Position.subscript});}
    app.findTextPreferences = NothingEnum.nothing;
    app.changeTextPreferences = NothingEnum.nothing;
    app.findTextPreferences = null;
    app.changeTextPreferences = null;
    app.findTextPreferences.fontStyle = "Italic";
    app.changeTextPreferences.appliedCharacterStyle = Itl;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Bold";
    app.changeTextPreferences.appliedCharacterStyle = bl;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "BoldItalic";
    app.changeTextPreferences.appliedCharacterStyle = bItl;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Bold Italic";
    app.changeTextPreferences.appliedCharacterStyle = bItal;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Semibold";
    app.changeTextPreferences.appliedCharacterStyle = sb;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Semibold Italic";
    app.changeTextPreferences.appliedCharacterStyle = sbItal;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Black";
    app.changeTextPreferences.appliedCharacterStyle = blk;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Oblique";
    app.changeTextPreferences.appliedCharacterStyle = obl;
    app.documents.item(0).changeText();
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Light";
    app.changeTextPreferences.appliedCharacterStyle = li;
    app.documents.item(0).changeText();
    app.findTextPreferences.fontStyle = "Light Italic";
    app.changeTextPreferences.appliedCharacterStyle = liItal;
    app.findTextPreferences = NothingEnum.nothing;
    app.changeTextPreferences = NothingEnum.nothing;
    app.findTextPreferences.position = Position.superscript;
    app.changeTextPreferences.appliedCharacterStyle = sup;
    app.documents.item(0).changeText();
    app.findTextPreferences.position = Position.subscript;
    app.changeTextPreferences.appliedCharacterStyle = sub;
    app.documents.item(0).changeText();
    function setupFindText(find, change, foots, hidLayers, lockedLayers, lockedStories, masters, caseSensitive) {
      app.findTextPreferences = null;
      app.changeTextPreferences = null;
      try { app.findTextPreferences.findWhat = find } catch(e) {};
      try {app.changeTextPreferences.changeTo = change } catch(e) {};
      app.findChangeTextOptions.properties = {
        includeFootnotes:(foots == null ? false : foots),
        includeHiddenLayers:(hidLayers == null ? false : hidLayers),
        includeLockedLayersForFind:(lockedLayers == null ? false : lockedLayers),
        includeLockedStoriesForFind:(lockedStories == null ? false : lockedStories),
        includeMasterPages:(masters == null ? false : masters),
        includeCaseSensitive:(caseSensitive == null ? false : caseSensitive)
    } // end setupFindText
    alert ("DONE");
    please suggest how to simply this script and make it run faster can anyone suggest me. Also suggest me to how can add this "Clear Override" syntax with this script. I want to make this script very effective. Thanks in advance to all.
    Regards
    Thiyagu

    The reason for that error is easy.
    if (myDoc.characterStyles.item("Itl") == null){
    var Itl = myDoc.characterStyles.add({name: "Itl", fontStyle: "Italic"});}
    means "if the style does not exist, create it and assign it to the variable". What happens when it does exist? (I'll let you think of an answer here.)
    Why don't overrides work? Well, let me ask you, does it work when you do the same directly in the program? No: to clear overrides, replace a style with itself. Does that mean you should run the script twice? Well, no, a brief search through the CS3 JS help reveals this tantalizing function (for any text type element):
    void clearOverrides ([overridesToClear:OverrideType=ALL])
    Clears the specified types of override.
    Parameter
    Type
    Description
    overridesToClear
    OverrideType:
    OverrideType.ALL
    OverrideType.CHARACTER_ONLY
    OverrideType.PARAGRAPH_ONLY
    The types of override to clear. (Optional) (default: ALL)
    -- and I remember someone posting this rather nifty one-liner
    myStory.paragraphs.everyItem().clearOverrides();
    The script appears a bit Frankensteinian to me. That function setupFindText is never used; you use two different ways of clearing the find and change preferences ('null' and 'nothing' -- I believe there were some strong points against using 'null', but, anyway, you only need to set them to nothing once).
    Notice it doesn't take heed of combinations of a type style and superior/inferior -- the latter will overwrite the former.
    The usual way of speeding up a script is by putting repeated elements into an array, but I doubt this will help much here. On the other hand, it's just a handful of replaces, and it should be very fast already. Even if it takes as much as 30 seconds, it's still worth that time.

  • 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!

  • 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.

  • How to apply inmath character style to fraction values

    Hi
    I try to apply inmath style to fraction values in indesign file.
    My code here:
    app.findGrepPreferences = NothingEnum.nothing;
                   app.changeGrepPreferences = NothingEnum.nothing;
                   app.findGrepPreferences.findWhat = myText;
                   app.changeGrepPreferences.appliedCharacterStyle = "Fraction Answers";
       app.changeGrep();             
    But it throws error "Invalid value for set property 'appliedCharacterStyle'
    Thanks
    Sangeetha

    Try this,
    app.findGrepPreferences = app.changeGrepPreferences = null;
    app.findGrepPreferences.fontStyle = "Bold";
    app.findGrepPreferences.appliedParagraphStyle = "myPar";
    app.changeGrepPreferences.appliedCharacterStyle = "myCar1";
    app.activeDocument.changeGrep();
    app.findGrepPreferences = app.changeGrepPreferences = null;
    Vandy

  • URGENT: Paragraph/Character style help (doing massive amounts manually)

    I'm using CS3 at work but if it's magically easier, i may have access to cs4 (less likely but possible). It's a long post but I wanted to be in  depth with my problem which at its core is simple. I have included a 2-page spread example in pdf.
    What I greatly need help with is your opinion of how I can set this up to speed up the process, unify the document, and make future edits simple instead of crazy difficult. Can I configure a paragraph style to NOT replace font style? Can that style include my preset tabs (for bullets) which list as follows?:
    number, small letter, roman numeral, bullet
    Let me start by saying I SCOUR the net and all available options before posting.  I'm cleaning up/editing a production manual for a portrait company I work for and am new to indesign but have figured many things out. I'm quite proficient with the Adobe Suite and computers. I'm using last year's indesign file and it was done very poorly. The words are right, the lines are right, the tabs are terrible and i've needed to move many pages out of order and add plenty. I also chose to disable 1 text box that flows from page to page (i see now it's helpful but they had made it impossible for me to use the existing one and I didn't have time to redo). The pictures I can add and manipulate freely but an embedded text-wrapped version would be nice as well (less important by far).
    The manual is spiral bound with text on the right page and a notes page on the left for the layout. (flipped open the left side is lines for notes and the right side is operations). It's set up with a Header at the top (in some cases a sub header almost identical right below it), a space or two, then an outline format IE:
    1)     Open job
              a) Go into G:\Location
              b) Select job code
                   i) *Note: Be sure to select the right one (etc)..
    2)      Continue
                                       |                                                    |
                                       |                                                    |
                                       |                    Picture                      |
                                       |                                                    |
                                       |______________________________|
    Page size is 8.5x11 with a .5 safe print border all around (document is 11x17). The Document is about 100 pages of written directions (so double that for indesign pages). It will be printed on a Xerox IGen3.  The whole book give or take is set up like that. Thus, a few paragraph and character styles are in order. I've been editing/cleaning up each page re-tabbing, re-laying out. It's hell and must be done in 2 days.
    I'm using Myriad Pro universally as the font.  The sizes are as follows:
    Header: 16 bold center
    Sub (if applicable): 15 bold center
    Body: 12 point
    I've gotten paragraph styles to work sort of. I tried setting up numbering and bulleting but it's been giving me so much grief that I typed those all by hand or have just adjusted existing ones (I don't have much time currently, BUT need to learn for future updates and to convert it to styles). I know styles are the way to go with a couple master pages involving bulleting and character styles... however I could not become an expert overnight unfortunately; i tried =)
    The real killer for paragraph styles have been:
    - The portions of the directions that pertain to specific menu options or clicks are in bold, occasional important info is red. Normal text including numbers/bullets are normal. There are many words repeated that need bold so perhaps some kind of search/replace script could help however im not positive.
    - When I go to apply a paragraph style it must make all type bold or not bold. It doesn't replace the color of the text which is good.
    -  Having major trouble with bullets/numbers working the way i'd like.

    It is unfortunate you only have two days, but you could play around with these suggestions below and see if they help more than they hender... (NOTE: SAVE A COPY OF THE DOCUMENT BEFORE YOU START MONKEYING AROUND IN CASE YOU HATE THE RESULTS!)
    For starters, you could certainly do the lists via stylesheet. It would require 3 lists based on your sample. Base list 2 and 3 on list 1 or all 3 on a default List paragraph style, so that you can globally control your list formatting without having to change all 3 each time you want to apply a tweak.
    List 1 would be leve 1, 1,2,3 style with indents like 3p, -1.5, 3p. Align right and don't restart numbers. If you want bold numbers, make a bold character style called List# and apply it.
    List 2 would be level 2, a,b,c style with indents like 4p, -1p, 4p. Restart on level change.
    List 3 would be level 3, i,ii,iii style with indents like 6.5p, -1.5p, 6.5p. Restart on level change.
    Tweak as necessary to match your actual text.
    Then just do a global GREP search and replace, replacing out the manual list numbers with real styles.
    List 1 replace ^\t[0-9]+\t with ~- (discretionary hyphen is a nice invisible character that won't break anything) and paragraph style of list1.
    List 2 replace ^\t\t[a-z].\t with ~- and paragraph style list2.
    List 3 replace ^\t\t\t[ivx].\t with ~- and paragraph style list3.
    The last step of list replacement would be to manually restart numbering for each new list.
    As for the keywords, unless you have a complete list of what will be bold and it will always be bold, just manually style them with character styles.
    Make a character style called "Keyword" and apply bold to the formatting.
    Make a character style called "Keyword Important" and apply bold and red formatting.
    If you know certain words are always, always the same and you have CS4, you could create a GREP style that applied Keyword character style to any words that matched.
    For example, if the keywords Left, Right, Top, Bottom always were bolded at the beginning of the paragraph, you could add the GREP style that applied Keyword to ^(Top|Bottom|Left|Right).
    In all likelihood you will be applying a lot of manual keywords too though, so make sure you put a keyboard shortcut on (like cmd-opt-1, 2, etc) on the Keyword and Keyword Important character styles. That way you can just fire through selecting text and whacking cmd-opt-1 where appropriate.

Maybe you are looking for