\ifdefstring{command}{str1 OR str2}{yes}{no}
etwas wie oben muss erreicht werden. Ist es möglich, einen logischen Operator für den String-Teil von \ifdefstring zu verwenden?
Paket :etoolbox
Befehl = Zeichenfolgetyp
Ich habe etoolbox
zu diesem Projekt Folgendes hinzugefügt und \ifdefstring
die Quelle verwendet:https://github.com/posquit0/Awesome-CV
Antwort1
Sie können einen Booleschen Ausdruck erstellen:
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\newcommand{\ifdefstringor}[2]{%
\begingroup\edef\x{\endgroup
\noexpand\ifboolexpr{
test {\noexpand\ifdefstring{\noexpand#1}{\@firstoftwo#2}}
or
test {\noexpand\ifdefstring{\noexpand#1}{\@secondoftwo#2}}
}%
}\x
}
\makeatother
\newcommand{\fooA}{str1}
\newcommand{\fooB}{str2}
\newcommand{\fooC}{str3}
\begin{document}
\ifdefstringor{\fooA}{{str1}{str2}}{yes}{no}
\ifdefstringor{\fooB}{{str1}{str2}}{yes}{no}
\ifdefstringor{\fooC}{{str1}{str2}}{yes}{no}
\ifdefstringor{\fooD}{{str1}{str2}}{yes}{no}
\end{document}