我正在尝试创建一个循环来打印出图像文件列表。所有这些图像文件都有一个这样的文件名:fa-x.jpg(其中 x 是 a - h 中的字符)。我创建了一个循环,但计数器变量没有正确转换为字符并导致错误。以下是目前的代码:
\count255 = 97
\loop
\subsection*{Part (\char\number\count255)}
\includegraphics[scale=0.7]{fa-\char\number\count255.jpg}
\hfil\break
\ifnum\count255 < 104
\advance\count255 by 1
\repeat
我得到的错误:
LaTeX Warning: File `fa-\char 97.jpg' not found on input line 77.
因此,它不会将 97 转换为字符,因为它位于 \includegraphics 参数内。请记住,在上面的循环中,\subsection 行有效并打印出字符 a - h。
答案1
既然您声称自己解决了问题,我在这里回应 cfr 的评论。以下是一些解释:
- 根据TeXBook,
\char
用于打印所需的字符。因此,\char
当\
c
h
a
r
作为{fa-\char97.jpg}
输入(但是它打印了一个“a”\subsection
,不是吗?) - 通过索引处理计数/计数器是危险的。由于只有 256 个选择,您永远不会知道该计数/计数器是否可用。事实上,
\count255
是为输出例程保留的。甚至\count123
更安全。(但仍然很危险。)
回到你的问题,如果\char
没有用,
怎么\alph
運作?
嗯,这确实是一项艰苦的工作
\ifcase #1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m\or n \or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else \@ctrerr \fi
还有其他选择吗?
当然,在输入中写^^61
上字母“ ”。 (请注意,HEX61 = DEC97。)但不起作用。它实际上是加号。两者都不起作用。a
^^\value{count}
^^\
value{count}
\expandafter^\expandafter^\value{a}
如果我需要的话该怎么办^^\value{count}
?
至少你可以将你想要的任何内容打印到文件中,然后\input
它就会打印出来。我不知道是否存在直接的方法。
答案2
答案是使用 LaTeX 计数器而不是 TeX 计数器。以下是使其工作的代码:
\documentclass[11pt, fleqn]{article}
\usepackage{graphicx}
\begin{document}
\newcounter{count}
\setcounter{count}{1}
\loop\ifnum\value{count} < 8
\subsection*{Part (\alph{count})}
\includegraphics[scale=0.7]{fa-\alph{count}.jpg}
\hfil\break
\stepcounter{count}
\repeat
\end{document}
\alph{counter} 函数可用于计数器,我用它来将字符注入文件名。如果计数器为 1,则 alph{counter} 将返回“a”。