我想显示系统的标题和系统的图像。用户将在 Excel 文件中选择系统。
\documentclass[a4paper,11pt]{article}
\usepackage{csvsimple}
\begin{filecontents*}{grade.csv}
selectSystem, systemName
0, Green Apple
2, Red Apple
0, Banana
\end{filecontents*}
\newcommand{\system}{\csvreader[filter equal={\csvcoli}{2}]{grade.csv}{2=\sys}{\sys}}
\begin{document}
Quote for \system \\
%\includegraphics*[viewport=80 70 980 950, scale=0.25]{figures/\system.jpg} %doesn't work
\end{document}
我收到以下错误:! Missing endcsname inserted.
我相信这是因为\csvreader
没有产生字符串。
答案1
这是扩展的问题。您无法在命令\system
内扩展宏\includegraphics
。因此,您需要使用 将值分配给另一个完全扩展的宏\edef
。
\documentclass[a4paper,11pt]{article}
\usepackage{graphicx}
\usepackage{csvsimple}
\begin{filecontents*}{grade.csv}
selectSystem, systemName
0, Green Apple
2, Red Apple
0, Banana
\end{filecontents*}
\newcommand\system{\csvreader[filter equal={\csvcoli}{2}]{grade.csv}{2=\sys}{\edef\MySystem{\sys}}}
\begin{document}
\system % chooses the system
\includegraphics*[viewport=80 70 980 950, scale=0.25]{figures/\MySystem} %now works
\end{document}