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

EDIT: Это не отвечает на вопрос, как указано в комментариях. В этом ответе я объясняю, как добавлять макросы в texstudio, чтобы курсор перескакивал в определенное место в этом макросе. Совершенно другое дело, на самом деле.


Оригинальный ответ

Хотя я согласен с samcarter, для полноты картины скажу, что есть способ сделать то, что вы изначально хотели в texstudio.

Перейдите в [Макросы > Изменить макросы ...] Затем создайте новый макрос, дайте ему имя, аббревиатуру (не обязательно и совершенно бесполезно, имхо) и триггер (хороший дизайн важен для триггеров). В разделе кода вы должны добавить

 \secref{%|section%|}

Сохраните и закройте. В окне редактора введите триггер, и текст триггера будет автоматически заменен кодом макроса \secref{section}с фокусом курсора, выберите слово sectionв скобках, готовое к редактированию.

введите описание изображения здесь

Как видите, я злоупотребляю этой функцией. (На картинке много мусора, так как я тестировал то, что было мне полезно, и пока не убрал беспорядок.)


Кстати, я использую пробел в начале и в конце большинства моих триггеров, чтобы не дать texstudio преобразовать "обычный текст" в какой-нибудь макрос. Например, макрос mlбез пробелов был бы очень раздражающим, так как любое слово, содержащее последовательность "ml", получило бы макрос прямо в середине! Если бы я печатал умляут не глядя, я бы получил, U\SI{aut and the rest of the text in the braces,}{\ml}что вообще не имеет смысла. Вы можете сделать гораздо больше с триггерами и макросами, просто нажмите рядом ?со словом "Trigger" и попробуйте сами.

Связанный контент