如何在个人包定义的环境中手动间隔两个图像

如何在个人包定义的环境中手动间隔两个图像

我正在尝试创建一个包,以便能够用 Ithkuil(一种人工语言)书写。为此,我需要有一个环境,\begin{ithkuil} ... \end{ithkuil}在这个环境中,要添加的字符是可以区分的,使用命令\ch{im1, im2},其中 im1.png 和 im2.png 是相互重叠的图像。换句话说,每个字符都是由几幅图像叠加而成的。使用以下代码,我设法做到了,但仍然存在问题。我不太擅长创建包;我才刚刚开始对它们有一点了解。然而,这是一项大学作业,我的时间有限。这就是为什么我试图向 ChatGPT 寻求帮助,但它似乎不理解我的问题。各种命令创建的图像在\ch{...}水平方向上相距太远,我希望有一个函数来减少这个距离,例如\begin{ithkuil}[4em][0.5em] ... \end{ithkuil}将字符的一般尺寸设置为 4em,将字符之间的水平距离设置为 0.5em。

\ProvidesPackage{ithkuil}[2023/07/29 LaTeX package for Ithkuil]

\RequirePackage{graphicx}
\RequirePackage{tikz}

\newlength{\ithkuil@imgwidth}

\newenvironment{ithkuil}[1][1em]{
  \setlength{\ithkuil@imgwidth}{#1}
  \def\ch##1{
    \begin{tikzpicture}[baseline=(current bounding box.base)]
      \foreach \imgname in {##1}{
        \node[inner sep=0pt, outer sep=0pt, anchor=base west] at (0,0) {\includegraphics[width=\ithkuil@imgwidth]{\imgname}};
        \pgfmathsetlengthmacro{\imgwidth}{\ithkuil@imgwidth+\pgfkeysvalueof{/pgf/inner xsep}}
        \path (0,0) node[minimum width=\imgwidth, inner sep=0pt, outer sep=0pt] {};
      }
    \end{tikzpicture}
  }
  \par\noindent\ignorespaces
}{
  \par\ignorespacesafterend
}

相关内容