Я добавил эту команду в разделы ссылок (рисунки, главы и т. д.):
\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" и попробуйте сами.