应用 noBreak AppleScript Illustrator
Apply noBreak AppleScript Illustrator
我的目标是将 Illustrator with AppleScript 的不间断参数应用于文本框架中的两个单词。
我能够检测到字符串中的不间断 space。然后我需要将 no break 参数应用于字符 202 前后的单词,因为 Illustrator
不支持 no break space
在您的编辑器中打开此 Scriptlet:
set ourText to "Hello my friend Jon<non-breaking-space>Doe."
set findThis to (ASCII character 202)
set MW to words of ourText
repeat with aWord in MW
if findThis is in aWord then
set myWord to aWord
exit repeat
end if
end repeat
我的Word
--> 显示:Jon Doe
然后我想在文本框架中搜索 "Jon Doe" 应用不中断参数。我在 Illustrator 中手动尝试过,这可行。
您的脚本不起作用,因为您正在构建单词列表。空格(包括不间断的 spaces)是单词分隔符,因此它们不在您的单词列表 (MW) 中。
如果我们使用不间断 space 作为文本项分隔符,它将起作用:
use scripting additions
set theResult to {}
set ourText to "Hello my friends Jon Doe, Jane Doe and Joe Doe!" # Each name contains a no-break space
set findThis to character id 160 # Decimal notation of U+00A0 (no-break space)
set saveTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to findThis # The no-break space
set countTextItems to count of text items of ourText
if countTextItems > 1 then
repeat with i from 1 to countTextItems - 1
set end of theResult to word -1 of text item i of ourText & findThis & word 1 of text item (i + 1) of ourText
end repeat
else
set theResult to "[no character id " & id of findThis & " found]"
end if
set AppleScript's text item delimiters to linefeed
display dialog theResult as text
set AppleScript's text item delimiters to saveTID
输入(ourText
):
Hello my friends Jon[noBreakSpace]Doe, Jane[noBreakSpace]Doe and Joe[noBreakSpace]Doe!
输出:
请注意,在
这样的情况下这将失败
my friends J.[noBreakSpace]Doe
因为我们在重复循环中使用 word
。
如果您经常遇到这样的情况,请将 word -1
和 word 1
替换为 text -1
和 text 1
。然后输出将只包含 space 周围的两个字符,但为了搜索目的,这仍然足够了。
我的目标是将 Illustrator with AppleScript 的不间断参数应用于文本框架中的两个单词。
我能够检测到字符串中的不间断 space。然后我需要将 no break 参数应用于字符 202 前后的单词,因为 Illustrator
不支持 no break space在您的编辑器中打开此 Scriptlet:
set ourText to "Hello my friend Jon<non-breaking-space>Doe."
set findThis to (ASCII character 202)
set MW to words of ourText
repeat with aWord in MW
if findThis is in aWord then
set myWord to aWord
exit repeat
end if
end repeat
我的Word --> 显示:Jon Doe
然后我想在文本框架中搜索 "Jon Doe" 应用不中断参数。我在 Illustrator 中手动尝试过,这可行。
您的脚本不起作用,因为您正在构建单词列表。空格(包括不间断的 spaces)是单词分隔符,因此它们不在您的单词列表 (MW) 中。
如果我们使用不间断 space 作为文本项分隔符,它将起作用:
use scripting additions
set theResult to {}
set ourText to "Hello my friends Jon Doe, Jane Doe and Joe Doe!" # Each name contains a no-break space
set findThis to character id 160 # Decimal notation of U+00A0 (no-break space)
set saveTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to findThis # The no-break space
set countTextItems to count of text items of ourText
if countTextItems > 1 then
repeat with i from 1 to countTextItems - 1
set end of theResult to word -1 of text item i of ourText & findThis & word 1 of text item (i + 1) of ourText
end repeat
else
set theResult to "[no character id " & id of findThis & " found]"
end if
set AppleScript's text item delimiters to linefeed
display dialog theResult as text
set AppleScript's text item delimiters to saveTID
输入(ourText
):
Hello my friends Jon[noBreakSpace]Doe, Jane[noBreakSpace]Doe and Joe[noBreakSpace]Doe!
输出:
请注意,在
这样的情况下这将失败my friends J.[noBreakSpace]Doe
因为我们在重复循环中使用 word
。
如果您经常遇到这样的情况,请将 word -1
和 word 1
替换为 text -1
和 text 1
。然后输出将只包含 space 周围的两个字符,但为了搜索目的,这仍然足够了。