MWE (eigentlich nicht ganz MWE, aber ich denke, so kann man leichter erkennen, was passiert):
\documentclass{article}
\usepackage{csvsimple}
\usepackage{graphicx}
\begin{document}
\setlength\unitlength{1cm}
\csvreader[head to column names]{jobname2.csv}{}{%
\vfill
\artist
\includegraphics[height=37mm]{\filenameone}
\includegraphics[height=37mm]{\filenametwo}
\comment
}
\end{document}
Inhalt von jobname2.csv
:
artist,filenameone,filenametwo,comment
Foo,example-image-a,example-image-b,Nothing
Foobar,example-image-a,,Something
Wenn die Spalte nichts enthält filenametwo
, möchte ich, dass nichts getan wird (ich weiß nicht genau, wie ich das richtig ausdrücken soll).
Antwort1
csvsimple
bietet ein Makro \ifcsvstrequal{X}{Y}{equal}{not equal}
zur bedingten Ausführung von Code, wenn die beiden Parameter X
und Y
gleich sind oder nicht (im Grunde eine \ifx
von zwei \edef
-ed Token-Listen). Sie können dieses Makro in Ihrem Beispiel verwenden, ohne zusätzliche Pakete wie diese zu benötigen xstring
:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.csv}
artist,filenameone,filenametwo,comment
Foo,example-image-a,example-image-b,Nothing
Foobar,example-image-a,,Something
Bar,,example-image-b,Anything
\end{filecontents*}
\usepackage{csvsimple}
\usepackage{graphicx}
\begin{document}
\setlength\unitlength{1cm}
\csvreader[head to column names]{\jobname.csv}{}{%
\vfill
\artist
\ifcsvstrequal{\filenameone}{}{(no first image)}{%
\includegraphics[height=37mm]{\filenameone}
}
\ifcsvstrequal{\filenametwo}{}{(no second image)}{%
\includegraphics[height=37mm]{\filenametwo}
}
\comment
}
\end{document}