Tikz 루프 \foreach 요소는 세트 A에는 있지만 세트 B에는 없습니다.

Tikz 루프 \foreach 요소는 세트 A에는 있지만 세트 B에는 없습니다.

Ti의 "not in the set" 명령이 무엇인지 아는 사람이 있습니까?케이지? 내가 원하는 것은세트가 되고~의 부분집합이 되다. Ti의 명령은 무엇입니까?케이Z는 다음과 같이 말합니다. “각각~에하지만 안에는 없어?

나는 다음과 같은 것이 필요합니다 :

foreach i in A
  if i is in the set B do THIS, else do THAT

답변1

무차별 접근 방식.

\documentclass{article}
\usepackage{tikz}

\def\setA{1,2,3,4,5}
\def\setB{2,4}

\newif\ifmatch

\begin{document}

\let\setC=\empty
\foreach \x in \setA {\matchfalse
  \foreach \y in \setB {\ifnum\x=\y\relax \global\matchtrue \fi}%
  \ifmatch\else
    \ifx\empty\setC\relax
      \xdef\setC{\x}%
    \else
      \xdef\setC{\setC,\x}%
    \fi
  \fi}

\setC% should contain 1,3,5

\end{document}

답변2

(순서가 지정된) 집합을 쉼표로 구분된 목록으로 나타낼 수 있습니다.

\documentclass{article}

\ExplSyntaxOn

\NewDocumentCommand{\foreachnot}{mm+m+m}
 {% #1 = main list, #2 = exclusion list,
  % #3 = to do if item is in main list but not in the exclusion list
  % #4 = to do if item is in the main list and in the exclusion list
  \erdos_forachnot:nnnn { #1 } { #2 } { #3 } { #4 }
 }
\NewDocumentCommand{\definelist}{mm}
 {
  \clist_clear_new:c { l__erdos_list_#1_clist }
  \clist_set:cn { l__erdos_list_#1_clist } { #2 }
 }

\cs_new_protected:Nn \erdos_forachnot:nnnn
 {
  \cs_set_protected:Nn \__erdos_foreachnot_true:n { #3 }
  \cs_set_protected:Nn \__erdos_foreachnot_false:n { #4 }
  \clist_map_inline:cn { l__erdos_list_#1_clist }
   {
    \clist_if_in:cnTF { l__erdos_list_#2_clist } { ##1 }
     {% item is in main list and in the exclusion list
      \__erdos_foreachnot_false:n { ##1 }
     }
     {% item is in main list but not in the exclusion list
      \__erdos_foreachnot_true:n { ##1 }
     }
   }
 }

% initialize the two scratch functions
\cs_new_protected:Nn \__erdos_foreachnot_true:n {}
\cs_new_protected:Nn \__erdos_foreachnot_false:n {}

\ExplSyntaxOff

\begin{document}

\definelist{A}{1,2,3,4,5}
\definelist{B}{2,4}

\foreachnot{A}{B}{Item #1 is in A but not in B\par}{Item #1 is in A and in B\par}

\end{document}

세 번째와 네 번째 인수는 현재 항목이 으로 표시되는 템플릿입니다 #1.

이러한 루프를 중첩해야 하는 경우 더 많은 작업이 필요합니다.

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

관련 정보