我正在尝试制作类似于此的字母表:
我有一组图像,预先命名为 pic1.png、pic2.png。我能够让 forloop 工作以使一组图像出现在文档中,但当我尝试将其粘贴到表格中时,事情并没有按计划进行。对于下面的代码,在开始寻找更困难的解决方案(如图表)之前,我只想测试将图像和文本放在每一行上:
\begin{table}[H]
\caption[Letterforms]{Letterforms}
\begin{tabular}{ c c }
\toprule
Letter & Spelling \\
\foreach \x/\picname in {4/pic1.png,8/pic2.png,15/pic3.png}
{ \lipsum[\x]
\midrule
\includegraphics[width=1in]{\picname} & \x \\
}
\bottomrule
\end{tabular}
\end{table}
基本上,我只需要每张图片出现在居中网格中的一些文本上方。我每次都会针对不同的文档执行此操作,每次包含的图片数量也不同,因此如果可能的话,我更喜欢动态解决方案。如果有帮助的话,我还使用了 kaobook 模板。
答案1
我可以建议一个解决方案,在 foreach 循环中嵌入子标题。我制作了 12 个 png(名称:1.png、2.png 等),其中包含字母 A 到 L。运行代码后,将绘制一个 4x4(或可调)图形并标注。
\documentclass{article}
\usepackage{subcaption}
\usepackage{tikz}
\usepackage{lipsum}
\begin{document}
\begin{figure*}
\foreach \w/\x/\y/\z in {1/2/3/4,5/6/7/8,9/10/11/12}{
\begin{subfigure}[b]{.2\textwidth}\centering
\includegraphics[width=3cm,height=3cm]{\w.png}
\centering \caption{No. \w}\label{fig:Label1}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}[b]{.2\textwidth}\centering
\includegraphics[width=3cm,height=3cm]{{\x}.png}
\centering \caption{No. \x}\label{fig:Label1}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}[b]{.2\textwidth}\centering
\includegraphics[width=3cm,height=3cm]{{\y}.png}
\centering \caption{No. \y}\label{fig:Label1}
\end{subfigure}
\hspace*{\fill}
\begin{subfigure}[b]{.2\textwidth}\centering
\includegraphics[width=3cm,height=3cm]{{\z}.png}
\centering \caption{No. \z}\label{fig:Label1}
\end{subfigure}
\par\bigskip
}
\caption{\lipsum[1]}
\end{figure*}
\end{document}