0

I am using the package venndiagram2sets and I was able to use patterns for most cases:

\documentclass[10pt,twoside,openright]{memoir}
\usepackage[latin1]{inputenc}
\usepackage[english]{babel}
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usepackage{venndiagram}

\begin{document}

\begin{venndiagram2sets} [tikzoptions={scale=.7, thick},labelNotAB={},labelA={},labelB={},shade={}, showframe=False] \begin{scope}[every path/.append style={pattern=north east lines}] \fillA \end{scope} \begin{scope}[every path/.append style={pattern=north west lines}] \fillB \end{scope} \draw (0,2.7) node {{A}}; \draw (5,2.7) node {{B}}; \draw (2.5,0) node {{AB}}; \end{venndiagram2sets} \begin{venndiagram2sets} [tikzoptions={scale=.7, thick},labelNotAB={},labelA={},labelB={},shade={}, showframe=False] \begin{scope}[every path/.append style={pattern=north east lines}] \fillANotB \end{scope} \draw (0,2.7) node {{A}}; \draw (5,2.7) node {{B}}; \draw (2.5,0) node {{AB}};

\end{venndiagram2sets} \begin{venndiagram2sets} [tikzoptions={scale=.7, thick},labelNotAB={},labelA={},labelB={},shade={}, showframe=False] \begin{scope}[every path/.append style={pattern=north west lines}] \fillBNotA \end{scope} \draw (0,2.7) node {{A}}; \draw (5,2.7) node {{B}}; \draw (2.5,0) node {{AB}};

\end{venndiagram2sets} % \begin{venndiagram2sets} % [tikzoptions={scale=.7, thick},labelNotAB={},labelA={},labelB={},shade={}, showframe=False] % \begin{scope}[every path/.append style={pattern=north east lines}] % \fillACapB % \end{scope} % \draw (0,2.7) node {{A}}; % \draw (5,2.7) node {{B}}; % \draw (2.5,0) node {{AB}};

% \end{venndiagram2sets}

\end{document}

But it does not work for the last case:

\begin{venndiagram2sets}
    [tikzoptions={scale=.7, thick},labelNotAB={},labelA={},labelB={},shade={}, showframe=False]
    \begin{scope}[every path/.append style={pattern=crosshatched}]
        \fillACapB
    \end{scope}
    \draw (2.5,0) node {{AB}};
  \end{venndiagram2sets}

Error:

! Package tikz Error: Extra options not allowed for clipping path command..

See the tikz package documentation for explanation. Type H <return> for immediate help. ...

l.700 \fillACapB

How can I add a crosshatched pattern to the intersection in venndiagram?

Fred Guth
  • 156

1 Answers1

0

I add a first step without a label following the code of a previous question...

Venn Diagrams and Patterns

You can see that \ofillACapB work. I leave to you to put a nice lable using \begin{tikzpicture} and \end{tikzpicture} out the enviroment {venndiagram2sets}. At the end you can use in math mode $\scriptstyle a=B$ instead of \tiny typical in text mode.

%% Compile and read me!
\documentclass[a4paper,12pt]{article}
\usepackage{venndiagram,tikz}
\usepackage{amsmath}
\usetikzlibrary{patterns}

\newcommand*\wrapscope[1]{% \expandafter\newcommand\csname o#1\endcsname[1][]{% \begin{scope}[##1] \csname #1\endcsname \end{scope} }% }%

\wrapscope{fillA} \wrapscope{fillACapB}

\makeatletter \tikzset{ clip/.append code={% \let\tikz@options=\pgfutil@empty \tikz@addmode\tikz@mode@fillfalse% \tikz@addmode\tikz@mode@drawfalse% \tikz@addmode\tikz@mode@doublefalse% \tikz@addmode\tikz@mode@boundaryfalse% \tikz@addmode\tikz@mode@fade@pathfalse% \tikz@addmode\tikz@mode@fade@scopefalse% } } \makeatother

\begin{document} \begin{venndiagram2sets}[tikzoptions={scale=.7, thick},labelNotAB={},labelA={},labelB={},shade={}, showframe=False] \begin{scope}[every path/.append style={pattern=north east lines}] \ofillACapB \end{scope} \end{venndiagram2sets}

\end{document}

enter image description here

Sebastiano
  • 54,118