仅在编译/快速构建期间在 TeXstudio 中自动插入命令(使用脚本)

仅在编译/快速构建期间在 TeXstudio 中自动插入命令(使用脚本)

我想在 中实现以下功能TeXstudio 2.12.4 (hg 6476:3e5c3afa4719)

在快速构建(构建和查看,F5 快捷键)期间,仅当我调用此命令时,我希望 TeXstudio 自动在我的 TeX 代码中插入一些(预设)行。

我举个例子。假设我的文档是这样的:

% Code 1: What I want to see as I type in my editor
\documentclass[]{article}

\begin{document}
    Hello world.
\end{document}

但是,当我按下编译(F5)时,我希望 TeXstudio 在该行后自动添加一行\documentclass,如下所示:

% Code 2: What I want the effect to be (compilation result)
\documentclass[]{article}
\usepackage{xcolor}\color{red} % This is automatically added in during compilation.

\begin{document}
    Hello world.
\end{document}

我应该得到的效果是一个全红色文本“Hello world”文档。

抓住:这里的问题是我希望该行\usepackage{xcolor}\color{red}永远不会出现在我的编辑器中,所以该行应该(暂时且自动地)由 TeXstudio 在后端添加,并在编译完成后立即删除。

总而言之,我希望看到Code 1在我的 TeXstudio 编辑器中看到(之前Code 2编译后),但是我按下编译/快速构建等之后的结果。

可能的解决方案

我了解 TeXstudio 支持使用脚本(请参阅这里),但我不确定在我的 TeX 代码中插入自定义字符串的正确语法是什么。

另一种方法可能是这个问题之前在 TeX.SE 上问过,我只希望传递一个命令TeXstudio 编译后会自动在我的 TeX 代码中插入一行,并传递一个命令编译从我的代码中删除该特定行。

这是可行/能实现的吗?

答案1

您无法将脚本绑定到“before-command-run”,因为当前没有可用的触发器。

但是,您可以编写自己的脚本,该脚本会执行工作并在某个时候调用“Build & View”。如果您愿意,您还可以在选项中为其分配“F5”快捷键。所以这基本上就是您想要的(尽管我不明白其目的)。

%SCRIPT

function onDocumentClassFound(cur) {
    cur.movePosition(1, cursorEnums.NextLine);
    cur.insertText("\\usepackage{xcolor}\\color{red}\n");   
    app.getManagedAction("main/tools/quickbuild").trigger();
    app.editUndo();
}

options = "";
scope = editor.document().cursor(0, 0, -1);
editor.search("\\documentclass", options, scope, onDocumentClassFound);

相关内容