texstudio 宏用于下一个或上一个标签

texstudio 宏用于下一个或上一个标签

在 texstudio 中有两个菜单,可以通过它们添加 \ref{} 引用上一个或下一个标签。但是,这种命令的使用在引用方程式时更常见,这时应该使用 \eqref{}。因此,如果插入下一个或上一个标签的键会更合适。

例如,考虑以下情况:

\begin{equation} \label{ZEqnNum448683} 
\begin{array}{l} {\mathop{\min }\limits_{x} \mathop{\sum }\limits_{k}^{} |y_{k}^{+} -y_{k}^{-} |+|z_{k}^{+} -z_{k}^{-} |} 
\end{array} \end{equation} 

我需要一个快捷方式来插入键,即在该等式上方或下方写入时将 ZEqnNum448683 插入到我的文本中。

答案1

以下是一种方法:

插入下一标签的键:

%SCRIPT
var LineNo = cursor.lineNumber(), ColNo = cursor.columnNumber();
cursor.movePosition(1,cursorEnums.End, cursorEnums.KeepAnchor);
var myText = cursor.selectedText();
var regEx = /\\label{(.*)}/
var match = regEx.exec(myText);

cursor.moveTo(LineNo, ColNo);
if (match && match[1]){
    editor.insertText(match[1])
}

插入前一个标签的键:

%SCRIPT
var LineNo = cursor.lineNumber(), ColNo = cursor.columnNumber();
cursor.movePosition(1,cursorEnums.Start, cursorEnums.KeepAnchor);
var myText = cursor.selectedText();
var regEx = /\\label{(.*)}/
var match = regEx.exec(myText);

cursor.moveTo(LineNo, ColNo);
if (match && match[1]){
    editor.insertText(match[1])
}

将这些分配给各自的键盘快捷键。在下面的 gif 中,我简要展示了如何实现这两个宏。(下Macros -> Edit Macros -> Add

测试 MWE

\documentclass[]{article}

\begin{document}
\begin{equation}\label{BeforeLabel} 
    x = y
\end{equation}

% Test here:
\eqref{} % Next key
\eqref{} % Previous key

\begin{equation}\label{AfterLabel} 
    a = b
\end{equation}
\end{document}

我的动图

相关内容