Editar: esta pergunta é agoraesta solicitação de recursono TXS Github.
Pergunta muito exigente. Estou feliz em usar o TeXstudio, o pacote tcolorbox e o intelligentef. No TXS, a digitação cref
aciona um menu pop-up onde todos os rótulos disponíveis são listados, e o usuário pode escolher diretamente aquele relevante. Este sistema conveniente parece quebrado ao usar referências a caixas de teoremas.
Caso detalhado
O exemplo usa tcolorbox
, amsmath
(necessário para o intelligentef) cleveref
e a biblioteca theorems
tcolorbox (tudo é digitado no exemplo mínimo de trabalho).
O comando \newtcbtheorem
cria um novo tipo de caixa do teorema tcolorbox, como em
\newtcbtheorem[crefname={mybox}{myboxes}]{mybox}{My super theorem}{}{mybox}
Aqui, o primeiro argumento opcional []
definirá o nome do smartef, o argumento {mybox}
é o nome do ambiente da caixa, {My super theorem}
é o nome exibido no título, o argumento vazio {}
é para as opções da caixa e o último {mybox}
é o prefixo das referências. Ao criar uma caixa, por exemplo
\begin{mybox}{The title}{thelabel}
Hello
\end{mybox}
o primeiro argumento é o título da caixa e o segundo cria uma referência que podemos chamar por \cref{mybox:thelabel}
. Tudo na parte do látex funciona bem, mas o editor parece não saber que esses rótulos existem, e o usuário precisa saber de cor todos os seus rótulos ou fazer ioiô no documento.
Comportamento desejado
Para poder ver mybox:thelabel
na lista de sugestões do popup. Qualquer ajuda é apreciada!
VersõesSe for relevante, estou usando Ubuntu 22.04, TeXstudio 4.3.1, tcolorbox 5.0.2, amsmath v2.17l e intelligentef v0.21.4.
Exemplo de trabalho
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{amsmath} % required for cleverref
\usepackage{cleveref}
\tcbuselibrary{theorems}
\newtcbtheorem[crefname={mybox}{myboxes}]{mybox}{My super theorem}{}{mybox}
\begin{document}
Example of the question:
\begin{mybox}{The title}{thelabel}
Hello
\end{mybox}
This is a nice document, what a superb result we have here:
\begin{mybox}{Micchelli 1986}{micchelli}
Let $D$ be a distance matrix, i.e. $D_{ij} = d(x_i,x_j)$ for $n$ distinct points $(x_i)_{i=1}^n$ of an euclidian space. Then $D$ is invertible.
\end{mybox}
This theorem applies for equations of the type
\begin{align}\label{normalref}
\sum_{i=1}^n c_i d(x_i, x_j) = 0 \quad\quad \forall 1 \leq j \leq n,
\end{align}
and the popup correctly displays the \texttt{normalref}: indeed, \cref{normalref} was displayed. However, although \cref{mybox:micchelli} works nicely, it was not displayed.
\end{document}