//@target illustrator
alert ( superscriptSecondChar ( 'm', '2', 0 ) );
function superscriptSecondChar ( char1, char2, textFrameNum ) {
var txtFrame = activeDocument.textFrames[ textFrameNum ];
var charCount = txtFrame.textRange.characters.length;
for ( var i = 0, j = 0; i < charCount; i++ ) {
if ( txtFrame.textRange.characters[ i ].contents == char1 && txtFrame.textRange.characters[ i + 1 ].contents == char2 ) {
if ( txtFrame.textRange.characters[ i + 1 ].characterAttributes.baselinePosition != FontBaselineOption.SUPERSCRIPT ) {
txtFrame.textRange.characters[ i + 1 ].characterAttributes.baselinePosition = FontBaselineOption.SUPERSCRIPT;
i++;
j++;
}
}
}
return 'сделано ' + j + ' замен в текстовом блоке из ' + charCount + ' cимволов';
}
C "м2" вариант прошел сразу. Спасибо. Но с ® не хочет. А мне еще массу сносок в суперскрипт переводить ((( Получается только перетащив через clipboard в InDesign все заменить, и также вернуть обратно в готовом виде, но это не решение — слишком много фреймов ((Как вариант найти в глифах двойку как показатель степени и заменить м2 на м<2 как степень>. Но как цифра этот символ пропадет.
К сожалению с вариантами двоек придется поиграться — не все вставляются копипастом в строку замены как надо, тупо сбрасываются на обычную двойку. В Myriad Pro <U+00b2> проходит.
superscriptOneChar('®', activeDocument.textFrames[0])
function superscriptOneChar ( latter, txtFrame ) {
var date = new Date ();
var charCount = txtFrame.textRange.characters.length;
for ( var i = 0, j = 0; i < charCount; i++ ) {
if ( txtFrame.textRange.characters[ i ].contents == latter ) {
if ( txtFrame.textRange.characters[ i ].characterAttributes.baselinePosition != FontBaselineOption.SUPERSCRIPT ) {
txtFrame.textRange.characters[ i ].characterAttributes.baselinePosition = FontBaselineOption.SUPERSCRIPT;
j++;
}
}
}
return [ j, charCount, new Date () - date ];
}
Да, это, наверное, уже посложнее. А как выглядят эти сноски и по каким признакам (характерным только для этих сносок) их можно распознать?массу сносок