如何将两个参数传递给 \newenvironment?

如何将两个参数传递给 \newenvironment?

我已经定义了这个新环境来处理文档中的图像,我想传递两个参数:#1 表示图像文件的路径名;#2 表示我想传递给标签的字符串

 \newenvironment{insertmyimages}[2][,]%
 {
 \begin{figure}[!h]
 \centering
 \includegraphics[width=\textwidth]{#1}%
 \caption{Fig. #2}
 \end{figure}
 }

 \insertmyimages{./Image.gif, 17}

我希望将上述图像置于中心并标记此图。 17。我该怎么做呢?

答案1

这似乎是一个有点奇怪的要求 - 你确定不想LaTeX为你生成数字吗?

如果你真的想这样做,那么这里有一种方法 - 注意

  • 我已经\newenvironment改为\newcommand
  • 我已删除,[,]其含义与你的意图不同
  • 我曾经将\setcounter图号改为你想要的

以下是完整的 MWE

% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}

\usepackage[demo]{graphicx}

\newcommand{\insertmyimages}[2]{%
    \setcounter{figure}{\numexpr#2-1\relax}
    \figure[!htb]
    \centering
    \includegraphics[width=\textwidth]{#1}%
    \caption{}
    \endfigure
}

\begin{document}
\insertmyimages{./Image.gif}{17}
\end{document}

也许你可能想要

\newcommand{\insertmyimages}[2]{%
    \figure[!htb]
    \centering
    \includegraphics[width=\textwidth]{#1}%
    \caption{}
     \label{#2}
    \endfigure
}

用作,例如

\insertmyimages{./Image.gif}{mylabel}

相关内容