所以我现在正在做的是浏览文本以找到脚注的以下标记:.15
并且我想将其更改为15.
,其中15变成上标。有没有办法使用keybind和GREP这样做?我可以应用一个涉及grep的新段落样式,只是不知道如何让它交换位置。此外,我无法自动搜索此内容,因为还有其他不应交换.15
的情况。所以我只想选择格式.number
并将选择交换为number.
并将数字更改为上标。
答案 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;
}
警告: 目前 - 上述代码的目标是在整个文档中找到的每个实例
亚雷克