使用 venndiagram2sets 删除一个圆的相交线

使用 venndiagram2sets 删除一个圆的相交线

问题:

我希望删除圆 A(左)的相交线。

最小工作示例(MWE):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds,positioning}
\usepackage{venndiagram}
\usepackage{float}
\usepackage{showframe}

\begin{document}

\begin{figure}[H]
    \centering
    \begin{minipage}[t]{0.45\textwidth}
        \begin{venndiagram2sets}[radius=1.3cm,labelA=,labelB=]
            \fillOnlyA
            \setpostvennhook
            {
                \draw (labelA) node[below=6ex] {A\textbackslash B};
                \draw (labelB) node[below=6ex] {B};
            }
        \end{venndiagram2sets}
        \caption{$\mathbf{A}$\textbackslash$\mathbf{B}$}
        \label{fig:venncup}
    \end{minipage}
\end{figure}

\end{document}

电流输出:

在此处输入图片描述

期望输出:

要删除左侧圆圈的右侧线条 - 或者用白色填充圆圈 B(右侧)以覆盖该线条。

在此处输入图片描述

答案1

venndiagram包写得很好,因此很容易定制。我添加了一种样式interior B(以及interior A),可以按如下方式使用:

\fill[white,interior B];

这样就将右边的圆圈填充为白色。如果需要,还可以添加其他几种类似的样式。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds,positioning}
\usepackage{venndiagram}
\usepackage{float}
\usepackage{showframe}
\makeatletter
\tikzset{interior A/.style={insert path={
 (\@venn@Ax,\@venn@Ay) circle[radius=\@venn@radius-\pgflinewidth/2]}},
 interior B/.style={insert path={
 (\@venn@Bx,\@venn@By) circle[radius=\@venn@radius-\pgflinewidth/2]}}}
\makeatother
\begin{document}

\begin{figure}[H]
    \centering
    \begin{minipage}[t]{0.45\textwidth}
        \begin{venndiagram2sets}[radius=1.3cm,labelA=,labelB=]
            \fillOnlyA
            \setpostvennhook
            {
                \fill[white,interior B];
                \draw (labelA) node[below=6ex] {A\textbackslash B};
                \draw (labelB) node[below=6ex] {B};
            }
        \end{venndiagram2sets}
        \caption{$\mathbf{A}$\textbackslash$\mathbf{B}$}
        \label{fig:venncup}
    \end{minipage}
\end{figure}

\end{document}

在此处输入图片描述

答案2

使用“plain”的解决方案tikz

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds,positioning}
\usepackage{float}
\usepackage{showframe}

\begin{document}

\begin{figure}[H]
    \centering
    \begin{minipage}[t]{0.45\textwidth}
        \begin{tikzpicture}[scale=0.6]
                \draw (-4,-3)rectangle (6,3);
                \fill[gray,draw=black] (0,0)  circle (2cm); 
                \node at (0,0){A\textbackslash B};
                \fill[white,draw=black] (3cm,0) circle  (2cm);
                \node at (3cm,0) {B};
        \end{tikzpicture}
        \caption{$\mathbf{A}$\textbackslash$\mathbf{B}$}
        \label{fig:venncup}
    \end{minipage}
\end{figure}

\end{document}

在此处输入图片描述

相关内容