![是否可以自动插入相应的标签至章节、节、小节等?](https://linux22.com/image/312480/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E8%87%AA%E5%8A%A8%E6%8F%92%E5%85%A5%E7%9B%B8%E5%BA%94%E7%9A%84%E6%A0%87%E7%AD%BE%E8%87%B3%E7%AB%A0%E8%8A%82%E3%80%81%E8%8A%82%E3%80%81%E5%B0%8F%E8%8A%82%E7%AD%89%EF%BC%9F.png)
我想在完成新的章节、节、小节等时使用自动完成功能自动插入标签。本质上,我想覆盖现有的标签以执行以下操作:
假设我输入\chapter{myChapter}
,我想要一个\label{cha:myChapter}
。
对于一个部分来说它将是\section{mySection}
和\label{sec:mySection}
。
对于本节,\subsection{mySubsection}
和\label{subsec:mySubsection}
。
那么,有没有办法修改 TeXStudio 自动完成功能来执行此操作或宏,或者..?
附言:是的,我知道我太懒了。:)
答案1
结构面板中有一个用于结构元素的上下文菜单项“创建标签”。这\label{sec:a-section-title}
将为创建\section{A Section Title}
。格式不可配置。它始终sec:
(也适用于章节)后跟小写连字符版本的标题。
如果需要更多控制,可以为该任务创建脚本。请参阅TeXstudio 手册有关脚本的详细信息以及维基百科页面示例脚本。
答案2
使用我自己编写的以下脚本,并根据您的需要进行更改
%SCRIPT
function myfunc(){
linenumber = cursor.lineNumber();
txt = editor.text(linenumber);
ind = txt.search("\{");
ind2 = txt.search("\}")
key = txt.substring(ind+1,ind2)
return "\\section\{"+key+"\}\label\{sec:"+key+"\}";
}
cur = editor.document().cursor(1,0,2000)
for(i = 1;i<100;i++){
editor.replace("\\section\{\w+\}$","",cur,myfunc)
}