来自 Texsudio 自动完成文件的手册:
“指定参数含义的分类器(如 c 或 i)始终适用于第一个非可选参数。这是 TXS 中 cwl 格式和 LaTeX 解析器的当前限制。例如 \ref{label}#r 和 \ref[option]{label}#r 将按预期工作,但 \ref{arg}{label}#r 会将 arg 解释为引用。我们建议在这种情况下不要指定任何类。”
这是否意味着无法使用命令的第二个参数作为 texstudio 识别的标签,或者可以“跳过类”并使用下一个参数?
例如:
\newcommand{\dplot}[3]{
\begin{figure}
\centering
\subfigure[]{\includegraphics[width=0.49\columnwidth]{Fig/#1}
\label{fig:#1}}
\hspace*{-0.01\columnwidth}
\subfigure[]{\includegraphics[width=0.49\columnwidth]{Fig/#2}
\label{fig:#2}}
\vspace*{-0.01\columnwidth}
\caption{#3}
\label{fig:#1:#2}\label{fig:#1_Full}
\end{figure}
}
我可以通过添加以下内容使用 cwl 文件来识别第一个参数:
\dplot{label}#l
我可以跳过一些内容吗:
\dplot{}{label}#l
为了使用第二个参数作为标签?
答案1
您提到的手册中的陈述已经过时了。
如果使用#l
限定符,则可以将任意参数定义为标签,但其名称必须是label
。
\dplot{arg}{label}#l
如果您想使用不同的名称或多个标签,您可以使用内联定义labeldef
。
\dplot{label1%labeldef}{label2%labeldef}
注意:您的示例仍然无法工作,因为名称标签和引用必须相同。否则 TeXstudio 无法匹配它们。您不能\dplot{mylabel}
和\ref{fig:mylabel}
。另请参阅使用用户命令定义的标签自动完成。