我正在尝试创建一个包,以便能够用 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
}