如何在 \newcommand 中命名参数?

如何在 \newcommand 中命名参数?

如何命名 \newcommand 中的参数,以便当您调用宏时它们不会显示为 {arg1}{arg2}... 等,而是每个参数代表的名称 {caption}{label}... 等。没有使用.cwl文件。

我正在尝试实现以下 \newcommand

\documentclass{article}

\usepackage{ctable}
\usepackage{mwe}

\newcommand{\qfigure}[5]{\ctable[
caption= {#1},label= fig:#2,figure, pos=H,botcap, mincapwidth= #3 mm]{c}
{}{\includegraphics[width=#4\textwidth]{#5}}}

\begin{document}

% \qfigure{arg1}{arg2}{arg3}{arg4}{arg5} % They would appear like this in Texstudio
\qfigure{An image example}{test}{70}{0.5}{example-image-a}

\end{document}

正如你所看到的每个参数分别代表标题、标签、标题的最小宽度(ctable 参数)、宽度和文件名。

在此先感谢您的帮助。

答案1

我认为这是不可能的没有一个.cwl文件。但使用一个文件来做到这一点真的很容易。.cwl.您只需使用以下代码创建一个文本文件并将其命名为mystyle.cwl.

\qfigure{caption}{label}{mincapwidth}{width}{filename}#g

#g只是向 TeXstudio 表明这是一个包含图形文件的命令(这样,如果您将鼠标悬停在命令上,图像就会弹出在您的代码上,就像 一样\includegraphics)。

mystyle.cwl与其他文件放在一起.cwl(见TeXstudio 将 hyperref 和 xspace 的 .cwl 文件存储在哪里?) 并检查mystyle.cwl选项 |​​ 配置 TeXstudio... | 完成。然后您的qfigure命令将显示在自动完成框中,其参数名称与您在 中指定的名称相同.cwl

答案2

一个“跨编辑器”的答案是,由于您正在定义该命令并且您有权命名它,因此您可以(在某些情况下)使用一些参数的首字母作为提醒您使用:

例如:

\qfigureCapLabMcWdFn{caption}{label}{mincapwidth}{width}{filename}

我知道在这个例子中这并不是一个好主意,但过去在其他情况下也使用过类似的方法,并且对我来说是合理的帮助:

缺点:

1)不需要大的命令名(但大多数编辑器可以自动完成)

2)即使有“帮助”,您仍可能会忘记首字母(但如果您确实自己创建了该命令,并且经常使用该命令,您可能会记住它们……此外,如果您不经常使用该命令……我想回去检查一两次也没什么大不了的……)

相关内容