我一直在尝试设置一个 TeXworks 脚本,该脚本会在所选内容周围添加内联数学模式符号“$”。例如,如果选择“\omega”并执行脚本,结果将是“$\omega$”。
我毫无顾忌地以 TeXworks 中构建的两个脚本为基础。可以在“脚本/Latex 样式”下找到它们。使用 Mac OS X 10.10.5 下的文本编辑器,我编写了以下脚本。最后一行是调用将两个“$”添加到所选文本的函数。
按照 TeXworks 手册,我将其存储在正确的脚本目录中,并让 TeXworks 重新读取脚本列表。瞧,我的脚本出现在菜单中,并带有正确的按键组合。但是,唉,什么也没发生。TeXworks 识别键盘上的按键组合,但不会对选定的文本执行任何操作。
任何建议都将不胜感激。谢谢。
// TeXworksScript
// Title: Toggle Math Mode
// Shortcut: Ctrl+Shift+M
// Description: Encloses the current selection in $$
(...)
// Script-Type: standalone
// Context: TeXDocument
function addOrRemove(prefix, suffix) {
var txt = TW.target.selection;
var len = txt.length;
var wrapped = prefix + txt + suffix;
var pos = TW.target.selectionStart;
if (pos >= prefix.length) {
TW.target.selectRange(pos - prefix.length, wrapped.length);
if (TW.target.selection == wrapped) {
TW.target.insertText(txt);
TW.target.selectRange(pos - prefix.length, len);
return;
}
TW.target.selectRange(pos, len);
}
TW.target.insertText(wrapped);
TW.target.selectRange(pos + prefix.length, len);
return;
};
addOrRemove(“$”, “$”);
答案1
您的脚本有两个错误:
(...)
必须删除标题中的 或用注释掉//
。- 函数调用中的引号是 ,
”
但它们应该是"
。
因此这个脚本可以工作:
// TeXworksScript
// Title: Toggle Math Mode
// Shortcut: Ctrl+Shift+M
// Description: Encloses the current selection in $$
// (...)
// Script-Type: standalone
// Context: TeXDocument
function addOrRemove(prefix, suffix) {
var txt = TW.target.selection;
var len = txt.length;
var wrapped = prefix + txt + suffix;
var pos = TW.target.selectionStart;
if (pos >= prefix.length) {
TW.target.selectRange(pos - prefix.length, wrapped.length);
if (TW.target.selection == wrapped) {
TW.target.insertText(txt);
TW.target.selectRange(pos - prefix.length, len);
return;
}
TW.target.selectRange(pos, len);
}
TW.target.insertText(wrapped);
TW.target.selectRange(pos + prefix.length, len);
return;
};
addOrRemove("$", "$");