我怎样才能使 \if 条件可重复使用?

我怎样才能使 \if 条件可重复使用?

这和我之前的一个问题有关,如何在条件语句中使用列表

我正在使用那里提供的答案来包含不同的代码片段,当它们的原始库包含在不同的文档中时。现在我想对其他库/文档执行相同的操作,而不必每次都编写新的 \if。换句话说,我想让条件本身可重复使用。

到目前为止,我已经使用过 \IfSubStr,但我无法弄清楚如何将新的 \if 打包到可重复使用的宏中。

为了说明我所说的内容,这是我对常规文本使用条件的方式(效果很好):

\NewDocumentCommand{\ifjobnamecontains}{ m +m +m }{%     
   \IfSubStr{\jobname}{\detokenize{#1}}%       
    {#2}%  
    {#3}%
    }

>>>>

\ifjobnamecontains{<DOCUMENTA>}{Here is text that goes in Document A.}
  {Here is text that goes in all documents that are not Document A.}

但是,我不能将这种类型的条件用于代码片段。有没有办法让以下 MWE 中的 \if 条件同样可重复使用?(注意:此 MWE 中的文档名称为 MWE.tex)。

\documentclass[a4paper]{article}

\newif\ifmwe
\usepackage{listings}
\usepackage{xstring}

\lstset{basicstyle=\ttfamily,breaklines=true}

\begin{document}

Here is lstlisting within a conditional:

\IfSubStr{\jobname}{\detokenize{MWE}}%
  {\mwetrue}%true
  {\mwefalse}%false
  
\ifmwe
  \begin{lstlisting}
      This is sample code. 
     \end{lstlisting}  
\else
 fasle
\fi 

相关内容