我已经设置了一个名为快速图其目的是使用一行命令插入居中图像:
\newcommand{\quickfigure}[2] {
\begin{figure}[H]
\centering
\includegraphics[width=0.6\linewidth]{#1}
\caption{#2}
\end{figure}
}
该函数使用如下;
\quickfigure{img/testImage.png}{Test image}
我希望此函数接受可选参数来定义图像的宽度和高度以及标签。希望语法类似于;
\quickfigure[width=0.6, label=img:test]{img/testImage.png}{Test image}
我该如何设置?我需要正确的方向。谢谢!
编辑:感谢大家的想法,这是我的解决方案;
\includepackage{keyval}
\includepackage{ifthen}
\newlength{\qf@width}
\define@key{quickfigure}{width}{\setlength\qf@width{#1}}
\define@key{quickfigure}{label}{\def\qf@label{#1}}
\newcommand{\quickfigure}[3][] {
\setkeys{quickfigure}{width=0.6\linewidth,label=\@empty}
\setkeys{quickfigure}{#1}
\begin{figure}[H]
\centering
\includegraphics[width=\qf@width]{#2}
\caption{#3}
\ifthenelse{\equal{\qf@label}{}}{}{\label{\qf@label}}
\end{figure}
}
答案1
或者你也可以这样做:
\documentclass{article}
\usepackage{graphicx,xparse}
\NewDocumentCommand\quickfigure{O{width=0.6\linewidth} m o m}{%
\begin{figure}[H]
\centering
\includegraphics[#1]{#2}
\caption{#4}\IfNoValueTF{#3}{\relax}{\label{#3}}%
\end{figure}}
\begin{document}
\quickfigure{example-image-a}{Test image}
\quickfigure[width=20pt, height=100pt]{example-image-a}[img:test]{Test image}
\end{document}