尝试创建标题命令

尝试创建标题命令

也许这已经完成了,在这种情况下你可以告诉我更好的方法,但我想知道我做错了什么。我想创建以下代码序列:

\begin{center}
\includegraphics[scale=1]{filename.png}
{ \small Fig. 1.54 A MOSFET is a terrible thing to waste }
\end{center}

暂时忘记了编号(我最终会喜欢它)我尝试创建一个命令使其更紧凑:

\img[1][myimage.png][railroad bridge with reinforced sides]

尝试实现此操作的命令:

\newcommand{\img}[3]{%
\begin{center}%
\includegraphics[scale = {#1}]{#2}%
{ Fig. 1.54 {#3} }%
\end{center}}

它在下一个 \end{ } 时就死掉了,所以很明显我做错了什么。

我还尝试传入 [scale=1] 而不是 1,并更改新命令:

\newcommand{\img}[3]{%
\begin{center}%
\includegraphics[{#1}]{#2}%
{ Fig. 1.54 {#3} }%
\end{center}}

正如我所说的,我想知道如何创建一个框并对它们进行编号,因此我愿意接受一个告诉我应该使用哪个包的答案,但我也希望能够解释一下我的语法出了什么问题。

答案1

我不知道有什么问题\caption,所以我在里面使用它(嗯,\captionof这里更好。

所需接口

\img[1][myimage.png][railroad bridge with reinforced sides]

强制LaTeX寻找三个可选参数,这首先不太容易,其次容易出错(使用{...}是错误的,而且参数的顺序也很难记住)

而是使用

 \img[1]{myimage.png}[railroad bridge with reinforced sides]

使用\NewDocumentCommand{\img}{O{1}m+o},其中+o允许长可选参数,并且可以使用进行查询\IfValueT

\documentclass{article}

\usepackage{graphicx}

\usepackage{xparse}
\usepackage{caption}

\NewDocumentCommand{\img}{sO{1}m+o}{%
  \begin{center}%
    \includegraphics[scale = {#2}]{#3}%
    \IfValueT{#4}{%
      \IfBooleanTF{#1}{%
        \captionof*{figure}{#4} %
      }{%
        \captionof{figure}{#4} %
      }
    }
 \end{center}
}

\begin{document}
\img[0.2]{ente}[A duck A duck A duck A duck A duck A duck A duck A duck]

\img*[0.2]{ente}[A duck A duck A duck A duck A duck A duck A duck A duck]
\end{document}

在此处输入图片描述

带星号的版本\img*省略了编号。

答案2

如果您喜欢宏形式,而不是环境形式,我会首先向您展示您的结果和 3 种带有boxhandler包的替代方案。

\documentclass[a4paper]{article}
\usepackage{boxhandler,graphicx}
\begin{document}
\begin{center}
\includegraphics[scale=.3]{example-image}\\
{\small Fig. 1.54 A MOSFET is a terrible thing to waste}
\end{center}

or

\bxfigure[ht]{A MOSFET is a terrible thing to waste}
{\includegraphics[scale=.3]{example-image}}

\captionStyle{n}{}
\bxfigure[ht]{A MOSFET is a terrible thing to waste}
{\includegraphics[scale=.3]{example-image}}

\constrainCaptionWidth{\textwidth}
\captionStyle{n}{c}
\bxfigure[ht]{A MOSFET is a terrible thing to waste}
{\includegraphics[scale=.3]{example-image}}

\end{document}

在此处输入图片描述

相关内容