\ifdefstring을 논리 연산자로 사용하는 것이 가능합니까?

\ifdefstring을 논리 연산자로 사용하는 것이 가능합니까?
        \ifdefstring{command}{str1 OR str2}{yes}{no}

위와 같은 것을 달성해야합니다. \ifdefstring의 문자열 부분에 논리 연산자를 사용할 수 있습니까?

패키지 :etoolbox

명령 = 문자열 유형

나는 추가했다etoolbox이 프로젝트에\ifdefstring 하고 소스를 사용했습니다.https://github.com/posquit0/Awesome-CV

답변1

부울 표현식을 작성할 수 있습니다.

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

여기에 이미지 설명을 입력하세요

관련 정보