Не предпринимайте никаких действий, если столбец CSV пуст. Как этого добиться?

Не предпринимайте никаких действий, если столбец CSV пуст. Как этого добиться?

MWE (на самом деле это не совсем MWE, но я думаю, так проще увидеть, что происходит):

\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}

Содержание jobname2.csv:

artist,filenameone,filenametwo,comment
Foo,example-image-a,example-image-b,Nothing
Foobar,example-image-a,,Something

Когда в колонке ничего нет filenametwo, я не хочу, чтобы что-то делалось (не знаю, как это правильно выразить).

решение1

csvsimpleпредоставляет макрос \ifcsvstrequal{X}{Y}{equal}{not equal}для условного выполнения кода, если два параметра Xи Yравны или нет (в основном, \ifxэто два \edefсписка токенов с -ed). Вы можете использовать этот макрос в своем примере без необходимости использования дополнительных пакетов, таких как 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}

введите описание изображения здесь

Связанный контент