在我的文档中,我使用两个不同的命令来添加图片。首先,我有一个命令在表格中添加图片,因为标题和说明文字必须带有彩色背景,这样看起来更美观。我为此使用了以下代码:
\newcommand{\inputpicture}[3]{
\begin{table}[ht]
\begin{tabular}{|l|}
\hline
\parbox[0pt][2em][c]{0cm}{} \textbf{\textcolor{lightgreen}{#1}} \cellcolor{lightgreen} \hspace{12cm} \\ \hline
\\
\includegraphics[width=0.6\textwidth]{#3} \\
\\\hline
\parbox[0pt][2em][c]{0cm}{}\footnotesize\textbf{\textcolor{lightgreen}{#2}}\cellcolor{lightgray}\\ \hline
\end{tabular}
\end{table}
}
第二条命令如下所示:只是一个带有图片的图形,没有表格,没有边框:
\newcommand{\inputpicsimple}[2]{
\begin{figure}[h]
\includegraphics[width=0.6\textwidth]{#2}
\caption{\footnotesize\color{lightgreen}\bf #1}
\end{figure}}
一切都运行正常,但我唯一想改变的是表格的标题。现在,标题为\inputpicsimple
每张图片添加了图 1、图 2...,我希望表格也能这样做,这样 latex 也会将图 1、图 2... 放入表格中,因为实际上它不应该是表格,而是图片,但是当我尝试将图形用于表格时,它不起作用,而且很难将表格更改为普通图形。所以最后,如果我添加两个和一,\inputpicture
例如\inputpicsimple
。那么第一个\inputpicture
应该有一个“图 1”标题,第二个应该有\inputpicture
一个“图 2”,\inputpicsimple
一个“图 3”...
感谢您的帮助 :)
答案1
我很确定还有其他方法可以实现这种特殊的背景,而无需使用cellcolor
(例如 \colorbox 或\tcolorbox
)。
如果 OP 坚持这一点,\captionsetup{type=figure}
那么实现Figure
描述的一种可能方法
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage[demo]{graphicx}
\usepackage{caption}
\newcommand{\inputpicture}[3]{%
\captionsetup{type=figure}%
\begin{table}[ht]
\begin{tabular}{|l|}
\hline
\parbox[0pt][2em][c]{0cm}{} \textbf{\textcolor{green}{#1}} \cellcolor{blue} \hspace{12cm} \\ \hline
\\
\includegraphics[width=0.6\textwidth]{#3} \\
\\\hline
\parbox[0pt][2em][c]{0cm}{}\footnotesize\textbf{\textcolor{green}{#2}}\cellcolor{lightgray}\\ \hline
\end{tabular}
\end{table}
}
\newcommand{\inputpicsimple}[2]{%
\captionsetup{type=figure}
\begin{figure}[h]
\includegraphics[width=0.6\textwidth]{#2}
\caption{\footnotesize\color{blue}\bfseries #1}
\end{figure}
}
\begin{document}
\inputpicture{Foo}{foo}{Foo again}
\caption{The fake figure}
\inputpicsimple{foo}{Foo again}
\end{document}
更新
我已切换到tcolorbox
后台命令,\inputpic
该命令具有星号变体,用于无背景的简单显示。可选的第二个参数用于背景框,可选的第 5 个参数用于下部标题框,如果使用星号变体,则该参数将被忽略
对于屏幕截图,我改变了颜色以使其更加出众。
\documentclass{article}
\usepackage[dvipsnames,svgnames,x11names]{xcolor}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage[most]{tcolorbox}
\usepackage{xparse}
\newtcolorbox{picbackbox}[1][]{%
nobeforeafter,
halign=center,
enhanced,
sharp corners,
colback=LightGreen,
colbacktitle=LightGreen,
coltitle={LightGreen},
colframe=black,
#1
}
\NewDocumentCommand{\inputpic}{sO{}mmO{}}{%
\IfBooleanTF{#1}{%
\begin{figure}[ht]
\centering% ???
\includegraphics[width=0.6\textwidth]{#3}
\caption{\footnotesize\color{LightGreen}\bfseries #4}
\end{figure}
}{%
\begin{figure}[ht]
\begin{picbackbox}[#2,width={12cm},bottomrule=0pt] %
\includegraphics[width=0.6\textwidth]{#4}
\end{picbackbox}%
\offinterlineskip
\begin{picbackbox}[colback=LightGray,width={12cm},natural height,bottom=0pt,#5]
\caption{\footnotesize\color{LightGreen}\bfseries #4}
\end{picbackbox}%
\end{figure}
}
}
\begin{document}
\inputpic{Foo}{foo}
\inputpic*{Foo}{foo}
\inputpic{Foo}{foo}[colback=yellow]
\inputpic*{Foo}{foo}
\end{document}