编辑:这个问题现在是此功能请求在 TXS Github 上。
非常挑剔的问题。我很高兴使用 TeXstudio、tcolorbox 包和 cleveref。在 TXS 中,键入cref
会触发一个弹出菜单,其中列出了所有可用的标签,用户可以直接选择相关的标签。当使用定理框引用时,这个方便的系统似乎坏了。
详细案例
该示例使用了tcolorbox
(amsmath
cleveref 所需)cleveref
和 tcolorbox 库theorems
(所有内容均在最小工作示例中输入)。
该命令\newtcbtheorem
创建一个新类型的 tcolorbox 定理框,如下所示
\newtcbtheorem[crefname={mybox}{myboxes}]{mybox}{My super theorem}{}{mybox}
这里,第一个可选参数[]
将设置 cleveref 名称,参数{mybox}
是框环境的名称,{My super theorem}
是标题中显示的名称,空参数{}
是框选项,最后一个{mybox}
是引用的前缀。例如,在创建框时
\begin{mybox}{The title}{thelabel}
Hello
\end{mybox}
第一个参数是框的标题,第二个参数创建了一个引用,我们可以通过 调用它\cref{mybox:thelabel}
。latex 部分中的所有东西都运行良好,但编辑器似乎不知道这些标签的存在,用户要么需要记住所有的标签,要么在文档中溜溜球。
期望的行为
能够mybox:thelabel
在弹出窗口的建议列表中查看。任何帮助都值得感激!
版本如果相关,我正在使用 Ubuntu 22.04、TeXstudio 4.3.1、tcolorbox 5.0.2、amsmath v2.17l 和 cleveref v0.21.4。
工作示例
\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}