2016-11-09 6 views
0

Also was ich gerade mache, ist das Surfen im Text, um das folgende Zeichen für Fußnoten zu finden: .15 und ich möchte es in 15. ändern, wo 15 hochgestellt wird. Gibt es eine Möglichkeit, dies mit einer Tastenkombination und möglicherweise GREP zu tun? Ich kann einen neuen Absatzstil anwenden, der grep beinhaltet, aber ich bin mir nicht sicher, wie ich die Standorte tauschen kann. Außerdem kann ich dies nicht automatisch suchen, da es andere Instanzen gibt, in denen .15 nicht ausgetauscht werden sollte. Ich möchte also nur das Format .number auswählen und die Auswahl auf number. setzen und die Zahl in Hochstellung ändern.Umgekehrte Zeichenbildung in Indesign

Antwort

2

Slighty geändert:

#target indesign 
app.findGrepPreferences = app.changeGrepPreferences = null; 
app.findGrepPreferences.findWhat = "(\\.)(\\d+)"; 
app.changeGrepPreferences.changeTo = "$2$1"; 
var 
    mTarget = app.activeDocument, 
    mFound = mTarget.findGrep(), 
    cText; 
// 
while (cText = mFound.pop()) 
    if (checkCondition(cText)) 
     doJob(cText); 

alert ("No more found. Done."); 
app.findGrepPreferences = app.changeGrepPreferences = null; 
// 
function checkCondition (testText) { 
    if (testText.appliedParagraphStyle.name == "pstyle") 
    return true; 
    else return false; 
    } 
function doJob (testText) { 
    testText.showText(); 
    if (!confirm("Replace?")) return; 
    testText.changeGrep(); 
    testText.characters.itemByRange(0,-2).position = Position.SUPERSCRIPT; 
    } 

Es wird vor der Änderung zu fragen ("Nein" bedeutet zum nächsten gehen).

Uhr Bedingung Set ==> angewendet paraStyle.name == "pstyle"

+0

Aye, das funktioniert wie ein Zauber, danke! –

+0

Wird 'changeGrep' in' doJob' nicht * alles * im gesamten Dokument ändern? – usr2564301

+1

Nein. Das Ziel für diese Methode ist eine bestimmte gefundene Instanz. – Cashmirek

0

vorschlagen, ein Skript auszuführen, aber es gibt zwei Fragen: 1. was ein Ziel (? Doc ausgewählten Text?) 2. wie richtige Instanzen von „dotDigits“ filtern

(spezifischem paragraf Stil nur?)

-Code könnte so aussehen:

#target indesign 
app.findGrepPreferences = app.changeGrepPreferences = null; 
app.findGrepPreferences.findWhat = "(\\.)(\\d+)"; 
app.changeGrepPreferences.changeTo = "$2$1"; 
var 
    mTarget = app.activeDocument, 
    mFound = mTarget.findGrep(), 
    cText; 
// iterate through found texts 
while (cText = mFound.pop()) 
    if (checkCondition(cText)) doJob(cText); 
// 
app.findGrepPreferences = app.changeGrepPreferences = null; 
// 
function checkCondition (testText) { 
    var mRes = true; 
    // how to filter proper instances of found text? 
    return mRes; 
    } 
function doJob (testText) { 
    testText.changeGrep(); 
    testText.characters.itemByRange(0,-2).position = Position.SUPERSCRIPT; 
    } 

Warnung:Vorerst - ein Ziel für die oben genannten Code ist jede Instanz in gesamten doc

Jarek

+0

Hey jarek, danke für die Antwort. Grundsätzlich, wenn ich "dotDigit" finde und doppelt klicke, wird immer beides ausgewählt, also wäre target selection. Die "dotDigit" Formation wird immer in dem Stil gefunden, den wir "pstyle" nennen können. Ich würde es vorziehen, wenn ich dieses Skript mit einem Hotkey auf der Auswahl allein auslösen könnte? Sicherer so. Prost! –