我创建了这样一个新命令:
\newcommand{\longref}[1]{{\ref{#1} (\nameref{#1})}}
它按预期工作 - 它打印了章节号和名称。太棒了。
现在我正在使用 Texstudio,当我输入 -command 时,它总是显示可用标签的列表\ref
。使用我自己的命令时,它不再这样做。
有什么方法可以让我使用自己的命令自动完成?
答案1
对于 OP 来说可能已经太晚了,但根据记录:
为了让 TeXstudio 知道您的命令包含什么类型的字段,您必须在文件中告诉它.cwl
,用于自动完成。
它们的默认位置是%appdata%\texstudio\completion\
或.config/texstudio/completion/
。
mycmds.cwl
对于您自己的命令,您可以在该文件夹中创建一个名为的文件,user
然后写入以下行
\longref{label%ref}#r
重新启动 TeXstudio 后,完成应该按您希望的方式进行:
另请参阅我的回答这里。
答案2
我使用 TexStudio,它是我最喜欢的编辑器。我还没有特别尝试过你在这里尝试做的事情,但这是我在最新版本的 TexStudio 中观察到的。当你在 TexStudio 中加载文件时,它会尝试检测哪个是父文件(特别是如果文档中包含多个文件,例如使用subfiles
包)。TexStudio 所做的是它还会加载你可以访问的那些文件中的资源。例如,如果你在序言中加载\usepackage{biblatex}
参考书目文件\bibliography{ref.bib}
,你将获得文件中参考文献的自动完成建议ref.bib
。因此,如果你开始输入,\textcite{
你会看到一个建议列表(很可能按字母顺序排列),你可以从中选择参考文献。我猜这是你正在寻找的功能。
如果是这样,那么根据 TexStudio 的工作方式,我认为自定义命令不会获得自动完成功能(至少就我所见而言)。我可能是错的,因为这只是我的观察,但可能就是这样。希望这能帮助您了解您的情况。