TeXstudio:自定义命令的“递归”自动完成

TeXstudio:自定义命令的“递归”自动完成

我添加了此命令来参考部分(图表、章节等):

\newcommand{\secref}[1]{Section~\ref{#1}}

现在 TeXstudio 自动完成功能会向我显示

在此处输入图片描述

但我缺少实际部分的自动完成功能。例如 的自动完成功能\ref{...。这可能吗?

一个不太好的解决方案是跳过\ref命令

\newcommand{\secref}[1]{Section~#1}

然后举例来说\secref{\ref{sec:setup}}

答案1

我宁愿使用,而不是重新发明轮子cleveref。这将自动插入引用标签的适当名称,并由 texstudios 自动完成支持。

例如在以下文档中

\documentclass{article}

\usepackage[capitalise, noabbrev]{cleveref}

\begin{document}

\section{test}
\label{sec:test}

\begin{figure}
\caption{bla}\label{fig:bla}
\end{figure}

\cref{fig:bla} \cref{sec:test}

\end{document}

Texstudio 将提示

在此处输入图片描述

输出将是

在此处输入图片描述

答案2

编辑:这并没有回答问题,正如评论中所述。在这个答案中,我解释了如何在 texstudio 中添加宏,以便光标跳转到该宏中的特定位置。这确实是完全不同的事情。


原始答案

虽然我同意 samcarter 的观点,但为了完整起见,有一种方法可以在 texstudio 中完成您最初想要做的事情。

转到 [宏 > 编辑宏...] 然后创建一个新宏,为其命名、缩写(不是必需的,而且在我看来没什么用)和触发器(良好的设计对于触发器很重要)。在代码部分,您将添加

 \secref{%|section%|}

保存并关闭。在编辑器窗口中,键入触发器,触发器文本将自动被宏代码替换,\secref{section}光标焦点选择section括号中的单词,即可进行编辑。

在此处输入图片描述

如您所见,我滥用了此功能。(图片中有很多垃圾,因为我正在测试对我有用的东西,但我还没有清理这些垃圾。)


顺便说一句,我在大多数触发器的开头和结尾都使用空格,以防止 texstudio 将“普通文本”转换为某些宏。例如,ml没有空格的宏会非常烦人,因为任何包含序列“ml”的单词都会在中间出现一个宏!如果我不看就输入变音符号,我会得到完全U\SI{aut and the rest of the text in the braces,}{\ml}没有意义的结果。您可以使用触发器和宏做更多的事情,只需单击?单词“触发器”旁边的并亲自尝试。

相关内容