我知道已经有人提出问题了(1,2) 关于在 TeXworks 中创建键盘快捷键。但是,这个讨论(也在提到的 Google 线程中)似乎有点过时了。
现在,可以通过文件shortcuts.ini
(关联)以及通过将.txt
文件添加到completion
文件夹来获取关键字(关联,第 23 页)。
我想要实现的是:创建一个键盘快捷键(例如,ctrl++ ) shift,v插入一个代码片段,例如\vec{#INS#}•
(它将插入代码片段\vec{}
,将光标移动到#INS#
并在处添加占位符•
)。
虽然第一部分(为某些命令创建键盘快捷键)和第二部分(创建扩展为完整代码段的关键字)可以单独执行,但我无法让组合起作用 - 我只知道如何添加列在底部的命令的快捷方式这解释。
任何有关如何执行所需任务的帮助都将不胜感激。如果我的问题不清楚,请告诉我。
答案1
我想挑战一下,回答一个没有答案或评论的古老问题。这可以通过使用 TeXWorks 中的脚本来实现(注意:我有一个TeXWorks 的自定义深色主题因此背景如下):
\vec{}
创建自定义命令(在您的情况下)映射到键盘快捷键(在您的情况下为++ Ctrl)的步骤:Shiftv
- 从文件资源管理器转到:
C:\Users\[Your User]\.texlive2022\texmf-config\texworks\scripts
在 Windows 上以及在 Linux 或 Mac 上(我只使用 Windows,所以不太清楚)。 - 您的文件夹应该与此类似(假设您还没有自定义脚本):
在其中
\.texlive2022\texmf-config\texworks\scripts
创建一个名为“自定义”或类似名称的新文件夹。打开记事本或等效的纯文本程序,命名它
vec.js
(需要是 .js、javascript。可以随意命名,只要它是唯一的)并将其保存在/scripts/Custom/
.右键单击并使用您想要的任何文本程序进行编辑
vec.js
,然后将以下内容粘贴到其中(.jsaddOrRemove
代码归功于 Jonathan Kew):
// TeXworksScript
// Title: vec
// Description: Inserts \vec{} into text
// Author: JamesT (based on work by Jonathan Kew)
// Version: 0.1
// Date: 2022-02-16
// Script-Type: standalone
// Context: TeXDocument
// Shortcut: Ctrl+Shift+v
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("\\vec{", "}•");
- 保存并关闭
vec.js
文件夹。打开 TeXWorks 并导航到Scripts
->Custom
文件夹以验证它是否已创建:
- 按Ctrl+ Shift+v来验证它已经起作用。
这就是如何在 TeXWorks 中通过键盘快捷键插入代码片段,它看起来非常有用,现在我也知道如何去做了,好问题!