在indesign中反转字符形成

时间:2016-11-09 15:03:33

标签: adobe-indesign

所以我现在正在做的是浏览文本以找到脚注的以下标记:.15并且我想将其更改为15.,其中15变成上标。有没有办法使用keybind和GREP这样做?我可以应用一个涉及grep的新段落样式,只是不知道如何让它交换位置。此外,我无法自动搜索此内容,因为还有其他不应交换.15的情况。所以我只想选择格式.number并将选择交换为number.并将数字更改为上标。

2 个答案:

答案 0 :(得分:2)

Slighty修改:

#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;
    }

在改变之前询问(“否”意味着转到下一个)。

观察条件设置==>应用paraStyle.name ==“pstyle”

答案 1 :(得分:0)

建议运行脚本,但有两个问题: 1.什么是目标(doc?选定文本?) 2.如何过滤" dotDigits"的正确实例(仅限具体的paragraf风格?)

代码可能是这样的:

#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;
    }

警告: 目前 - 上述代码的目标是在整个文档中找到的每个实例

亚雷克