Editar: esta pregunta es ahoraesta solicitud de característicaen TXS Github.
Pregunta muy delicada. Estoy felizmente usando TeXstudio, el paquete tcolorbox y Cleveref. En TXS, al escribir cref
se activa un menú emergente donde se enumeran todas las etiquetas disponibles y el usuario puede elegir directamente la relevante. Este conveniente sistema parece no funcionar cuando se utilizan referencias a cuadros de teoremas.
Caso detallado
El ejemplo utiliza tcolorbox
, amsmath
(requerido para Cleveref) cleveref
y la biblioteca theorems
de tcolorbox (todo está escrito en el ejemplo de trabajo mínimo).
El comando \newtcbtheorem
crea un nuevo tipo de cuadro de teorema de tcolorbox, como en
\newtcbtheorem[crefname={mybox}{myboxes}]{mybox}{My super theorem}{}{mybox}
Aquí, el primer argumento opcional []
establecerá el nombre de Cleveref, el argumento {mybox}
es el nombre del entorno del cuadro, {My super theorem}
es el nombre que se muestra en el título, el argumento vacío {}
es para las opciones del cuadro y el último {mybox}
es el prefijo de referencias. Al crear una caja, por ejemplo
\begin{mybox}{The title}{thelabel}
Hello
\end{mybox}
el primer argumento es el título del cuadro y el segundo crea una referencia a la que podemos llamar \cref{mybox:thelabel}
. Todo en la parte de látex funciona bien, pero el editor no parece saber que estas etiquetas existen, y el usuario necesita saber todas sus etiquetas de memoria o hacer yoyo en el documento.
Comportamiento deseado
Para poder ver mybox:thelabel
en la lista de sugerencias del popup. ¡Cualquier ayuda es apreciada!
VersionesSi es relevante, estoy usando Ubuntu 22.04, TeXstudio 4.3.1, tcolorbox 5.0.2, amsmath v2.17l y Cleveref v0.21.4.
Ejemplo de trabajo
\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}