在 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}