图片来自 \csvreader 单元格

图片来自 \csvreader 单元格

我想显示系统的标题和系统的图像。用户将在 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}

相关内容