Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

GREP replace retaining text overrides

New Here ,
Dec 03, 2015 Dec 03, 2015

Hello,

GREP search and replace seems to leave local overrides on the position of the text rather than transferring them with the text where they were originally associated.

Find what: (^[^~y]+) ([^\r]+)

Change to: $2~y$1


ORIGINAL: BOOK SECTION          100—TITLE, cont. (2)

REPLACED: 100—TITLE, CONT.          (2) BOOk seCTION


If the examples formatted correctly in this post, we're looking for anything that's not a right tab, followed by a right tab, and then anything not a paragraph. Then I just want to swap the captured data on either side of the tab. This paragraph style is formatted as all caps with "cont" being lowercase with local overrides. When replaced, the location of the formatting remains which is not the behavior I'd expect or looking for. My desired lowercase text is now uppercase and a new undesired portion is now formatted locally.

I know I can get around this via character styles applied or even nested GREP, but that's not always practical in this case. Is there a setting I'm missing here, or is this maybe an  undocumented bug? Thanks in advance.

TOPICS
Scripting
509
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 03, 2015 Dec 03, 2015

You're not missing anything, and it's not really a bug. Grep replacements are just text replacements. You can manipulate formatting by explicitly setting it in the Find format and Change format panels, but if you leave those panels empty InDesign simply ignores formatting. InDesign's formatting is not physically attached, so to speak, to text ranges; rather there some part in the document with information that says 'apply allcaps to characters 10-30 in story 212'. That information isn't changed when you replace text, and that's why you see the effects that you see.

You can't get around that by using character styles just likie that, only by using nested or grep styles. The only other way I know of dealing with these things is to replace formatting with text tags, do your replacements, then change the text tags back to formatting. In your case you would replace allcaps with tags so that your line would read something like

<ac>book section    100—title,</ac> cont. (2)

Then do your replacements and revert the tags to allcaps formatting. Sound very cumbersome but it's quick and easy to script.

Peter

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 04, 2015 Dec 04, 2015
LATEST

Interesting approach, Peter. I hadn't thought of text tags. It makes perfect sense that the formatting is applied to character position and not the text. As a followup, I can loop and check which characters have overrides (it's a R/O boolean property), but is it possible to determine what the specific overrides characters have applied?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines