TeXworks 自动完成

TeXworks 自动完成

TeXworks 自动完成功能不完整、混乱且不可预测。有没有办法将 TeXStudio 自动完成数据迁移到 TeXworks?

答案1

TeXstudio 和 TeXworks 在自动完成信息方面采取了略有不同的方法,至少部分原因是这两个程序的目的略有不同(TeXstudio 是 LaTeX 编辑器,TeXworks 是 TeX 编辑器,因此至少在核心中 LaTeX 特定部分较少)。话虽如此,使用 TeXstudio 的自动完成信息来增强或替换 TeXworks 中的自动完成信息当然是可能的。

TeXstudio 将自动完成信息按包逐个存储在一系列.cwl文件中。这些是简单的纯文本文件,并且可从 SourceForge 获取(您必须选择 SVN 修订版本:在链接中,我选择了撰写本文时的最新版本)。信息似乎没有以纯文本格式保存在发布代码中:大概是“嵌入”到二进制文件/库中。示例文件是数组.cwl

# mode: array.sty
# dani/2006-02-18
\extrarowheight
\extratabsurround
\firsthline
\lasthline
\newcolumntype{name}{argument}
\showcols

TeXworks 将补全数据存储在一系列名为的文件中,tw-<name>.txt这些文件位于 TeXworks 配置树中(系统相关位置是另一个问题)。以下摘录tw-basic.txttw-latex.txt显示了以下格式:

%%!TEX encoding = UTF-8 Unicode
xa:=\alpha
\xa:=\alpha
\bigskip#RET#
\hskip
ncm:=\newcommand{#INS#}{•}#RET#

第一行存在于所有文件中tw-<name>.txt,并且很可能是必需的。此后,每行都是一个自动完成条目。格式为:

  • 行以要匹配的(部分)文本开头,例如 xa\hskip。这是唯一必需的部分。
  • A:=将“短文本”与“完成结果”分开,但如果两者相同,则不需要
  • #RET#代表回车符
  • #INS#表示自动完成后光标停留的位置
  • 是一个允许光标“快速”移动的标记。

正如您所看到的,TeXstudio 格式实际上比 TeXworks 格式简单。因此,转换似乎需要以下步骤:

  • 下载.cwl您想要的文件
  • 重命名为tw-<name>.txt
  • 添加初始%%!TEX encoding = UTF-8 Unicode行(假设您将它们全部保存为 UTF-8)
  • 删除前两行,或者至少将其替换#%注释
  • 将新文件放入 TeXworkscompletion文件夹中
  • 重新启动 TeXworks

另外:TeXworks 自动完成材料源自 TeXShop,我相信或多或少是逐字逐句的。TeXworks 开发人员几乎肯定会欢迎这方面的改进,因此值得考虑与他们讨论这个问题。例如,允许选择单个自动完成文件的界面将使 TeXworks 在自动完成方面非常接近 TeXstudio(可以使用脚本自动启用完成文件)。

相关内容