使用 foreach 制作字母表?

使用 foreach 制作字母表?

我正在尝试制作类似于此的字母表:有效的 XHTML

我有一组图像,预先命名为 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}

在此处输入图片描述

相关内容