以下 applescript 作为我经常使用的较大程序的一部分运行:
on run {viewer, path_to_pdf}
if viewer is "Skim" then
display notification "Skim opened: " & viewer & "!!!"
tell application "Skim"
revert (documents whose path is path_to_pdf as text)
end tell
else if viewer is "TeXShop" then
display notification "TexShop opened: " & viewer & "!!!"
tell application "TeXShop"
tell documents whose path is path_to_pdf as text to refreshpdf
end tell
end if
end run
我目前已将查看器设置为在此较大的程序中浏览,因此当此脚本运行时,我会收到通知“Skim 已打开:Skim!!!”并且 skim 会像预期的那样刷新我的 pdf。 但是TeXShop也开了!
我相信这是导致 TeXShop 打开的代码,因为如果我tell application "TeXShop" ... end tell
从代码中删除,然后 skim 会按预期刷新,并且 TeXShop没有打开。我很困惑,因为我从来没有收到 TeXShop 正在打开的显示通知。此脚本每次运行只调用一次,并且根据通知,它会被传递“Skim”作为参数,因此该代码块不会被执行……但它仍然对系统有影响??
谁能解释一下这里发生了什么?