使用 Tikz 填充维恩图中的析取补集

使用 Tikz 填充维恩图中的析取补集

我知道有很多关于使用 tikz 绘制维恩图的讨论,但我找不到这个具体案例。我想填充 p 和 q 的析取的补集。从图形上看,这将是矩形中除两个圆圈(应该是白色的)之外的所有内容。我有一个工作示例,我首先填充矩形和 p 和 q 的合取,然后用白色填充合取。但是,这似乎不必要地人为,所以我觉得可能有更好的方法。(它是隐式完成的这里但我的 tikz 不太好,所以我理解得不是很清楚。而且它看起来有点超出我的需要)

我的代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\pagestyle{empty}
\begin{document}

\begin{tikzpicture}

\def\bigrectangle{(-2,-2) rectangle (3,2)}
\def\firstcircle{(0,0) circle (1)}
\def\secondcircle{(1,0) circle (1)}

% fill rectangle and conjunction
\scope
    \clip \firstcircle \secondcircle \bigrectangle;
    \fill[blue] \bigrectangle;
\endscope

% fill conjunction white
\scope
    \clip \secondcircle;
    \fill[white] \firstcircle;
\endscope

% outline
\draw \firstcircle (0,1) node [text=black,above] {$p$}
      \secondcircle (1,1) node [text=black,above] {$q$}
      \bigrectangle node [text=black,above] {$U$};

\end{tikzpicture}

\end{document}

结果如下:

看起来正确,但代码很奇怪

答案1

在此处输入图片描述

\documentclass{article}

\usepackage{venndiagram}


\begin{document}
\begin{venndiagram2sets}
\fillNotAorB
\end{venndiagram2sets}
\end{document}

您可以轻松更改颜色、标签等,如包文档中所述。

相关内容