创建一个标签,其值作为 \newcommand 参数传递?

创建一个标签,其值作为 \newcommand 参数传递?

我创建了一个 \newcommand,将图形添加到文本正文中,以使我的文件看起来整洁流畅。这是代码实现。

\documentclass[12pt]{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figures packages & implementation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{graphicx} %Handles images.
\usepackage[labelfont=bf]{caption} %Captions - labelfond BOLD

\newcommand{\fig}[5]{
    %%%% Figure %%%%
    \begingroup
    \setlength\belowcaptionskip{0.7\baselineskip}
    \centering
    \includegraphics[height=#2, width=#3]{Images/#1}
    \captionof{figure}{#4}
    \label{fig:#5}
    \endgroup
} %The input parameters are as such:
    % #1 - image's name in folder
    % #2 - desired height
    % #3 - desired width
    % #4 - caption
    % #5 - num of figure for labeling purposes (cref etc.)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\fig{example - image}{10cm}{10cm}{This is a cpation}{1}

\end{document}

这段代码工作正常,除了标签 {#5} 没有被设置为我发送的输入参数,而是将图形标记为 fig:#5。

这个想法是每个用户都应该能够通过输入的第 5 个参数来决定某张图片的标签是什么。我该怎么做?

*如果原来的错误没有修复,一个可接受的解决方案是将标签命名为与图片名称相同的名称(例如,文件夹中的图片名为 Pineapple,则标签将是 fig:Pineapple,

或者

*标签将根据图号自动编号。

谢谢你的帮助:>

编辑:我添加了执行命令

答案1

一个解决方案是使用easyfig包。

\documentclass[twoside]{memoir}
\usepackage{easyfig}
\usepackage{hyperref}
\hypersetup{colorlinks}
\usepackage{cleveref}

\begin{document}
    By default, label is \verb|fig:<picture name>|
    \Figure[placement=h!, width=.5\linewidth, caption={Image a}]{example-image-a}
    
    But user can specify the label.
    \Figure[placement=h!, width=.5\linewidth, caption={Image b}, label={fig:b}]{example-image-b}
    
    \Figure[placement=h!, min size={.5\linewidth}{!}, max size={!}{.7\textheight}]{example-image-c}
    
    \cref{fig:example-image-a} and \cref{fig:b}

\end{document}

相关内容